@charset "utf-8";
/**
 * テストTOP（page-tstindex.php）専用 — デザインカンプ再現用
 * 他ページへ影響しないよう body.tstindex-lp 配下にスコープ
 */

:root {
	--lp-green: #44aa4b;
	--lp-green-dark: #2e7d32;
	--lp-teal: #00929f;
	--lp-gradient: linear-gradient(90deg, #00af39 0%, #008fa4 100%);
	/* STEP タブ：カンプは上から緑→下へティールの縦グラデ */
	--lp-step-head-gradient: linear-gradient(180deg, #00af39 0%, #008fa4 100%);
	--lp-orange: #ee760a;
	--lp-orange-dark: #c45f00;
	--lp-cream: #fffcf1;
	/* ご利用の流れ STEP 枠・タブ（カンプのティール） */
	--lp-step-teal: #009698;
	/* STEP2 カンプ色 */
	--lp-step2-teal: #009b8e;
	--lp-step2-grass: #00a651;
	--lp-step2-orange: #e8823a;
	--lp-step2-red: #d32f2f;
}

body.tstindex-lp {
	text-align: left;
	background: #fff;
	color: #333;
	font-family: "Noto Sans JP", sans-serif;
}

/*
 * 背景の固定YouTube（style.css #youtube-area / z-index:1）が本文より手前に来る対策。
 * 本番TOPは mov_box より前のコンテンツが .container00（z-index:3）内だが、
 * テストTOPは header～minnano が .container00 外のため、ここで前面化する。
 */
body.tstindex-lp main > header,
body.tstindex-lp main > section:not(.mov_box),
body.tstindex-lp main > div:not(#page-top):not(.container00) {
	position: relative;
	z-index: 2;
}

body.tstindex-lp main > .container00 {
	background: transparent;
	position: relative;
	z-index: 3;
}

body.tstindex-lp main > footer.lp-footer {
	position: relative;
	z-index: 3;
}

body.tstindex-lp main > .mov_box {
	position: relative;
	z-index: 1;
	isolation: isolate;
	/* 以前（style.css: 60vh）より大きくしすぎない */
	height: 60vh !important;
	min-height: 420px !important;
	max-height: 720px !important;
	height: 60svh !important;
}

/* テストTOPだけ、背景YouTubeを画面いっぱい（固定）にする */
body.tstindex-lp #youtube-area {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	height: 100svh !important;
	overflow: hidden !important;
	z-index: 1 !important;
}

/* テストTOPだけ：YouTubeプレイヤー(iframe)を必ず画面いっぱいにカバーさせる */
body.tstindex-lp #youtube {
	position: absolute !important;
	top: 50% !important;
	left: 50% !important;
	transform: translate(-50%, -50%) !important;
	width: 177.77777778vh !important; /* 16:9 */
	height: 56.25vw !important; /* 16:9 */
	min-width: 100% !important;
	min-height: 100% !important;
	z-index: 1 !important;
}

body.tstindex-lp #youtube iframe {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	pointer-events: none !important;
	z-index: 1 !important;
}

body.tstindex-lp #youtube-mask {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 9999 !important;
	pointer-events: auto !important;
	background: transparent !important;
}

body.tstindex-lp a.noneline,
body.tstindex-lp .lp-nav a,
body.tstindex-lp .lp-btn-reserve,
body.tstindex-lp .lp-footer__cta {
	border-bottom: none !important;
}

/* ========== ヘッダー・ヒーロー ========== */
.lp-header {
	position: relative;
}

.lp-hero {
	/* カンプ：単色の緑（右画像）。top_bg.png は top_image の街並みと二重になるため使わない */
	background-color: #5aad7a;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

/* top.svg：ロゴ＋電話案内（カンプのガイドに合わせ lp-nav と同じ最大幅で中央寄せ） */
.lp-hero__brand-row {
	background-color: transparent;
	min-height: 0;
	max-width: 1100px;
	margin: 0 auto;
	width: 100%;
	box-sizing: border-box;
	padding: clamp(16px, 3vw, 24px) clamp(16px, 4vw, 28px) clamp(8px, 1.6vw, 12px);
	display: flex;
	justify-content: center;
	align-items: center;
}

/*
 * style.css の h1（font-size 3.6rem 等）が当たり行高・位置がずれるため打ち消し
 * top.svg viewBox 667.22×96.71 に合わせて横いっぱい（上限でカンプ相当の大きさ）
 */
body.tstindex-lp .lp-hero__brand-row .lp-hero__h1 {
	margin: 0 auto !important;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	font-weight: inherit;
	text-align: center;
	width: 100%;
	max-width: min(100%, 760px);
	box-sizing: border-box;
}

body.tstindex-lp .lp-hero__brand {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
	aspect-ratio: 667.22 / 96.71;
}

.lp-hero__scene {
	line-height: 0;
	width: 100%;
	overflow: hidden;
	/* topimage.png は透過背景のためヒーロー緑が見える */
	background: transparent;
}

.lp-hero__scene img {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto;
	vertical-align: bottom;
}

/* 白ナビ（カンプ：緑文字リンク） */
.lp-nav {
	background: #fff;
	border-bottom: 3px solid var(--lp-teal);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.lp-nav ul {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 1100px;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
}

.lp-nav li {
	border-left: 2px dotted var(--lp-orange);
	margin: 0;
}

.lp-nav li:last-child {
	border-right: 2px dotted var(--lp-orange);
}

.lp-nav a {
	display: block;
	padding: 1.1rem 1.15rem;
	color: var(--lp-green-dark) !important;
	font-weight: 700;
	font-size: clamp(0.85rem, 1.6vw, 1rem);
	text-decoration: none;
	transition: background 0.2s, color 0.2s;
}

.lp-nav a:hover {
	background: #e8f5e9;
	opacity: 1;
}

@media screen and (max-width: 768px) {
	.lp-nav ul {
		flex-direction: column;
	}
	.lp-nav li {
		border-left: none;
		border-right: none;
		border-bottom: 2px dotted #ff6e00;
	}
	.lp-nav li:last-child {
		border-right: none;
		border-bottom: none;
	}
}

/* ========== リニューアル告知（カンプ：クリーム地・枠なし・余白リズム） ========== */
.lp-announce {
	background: var(--lp-cream);
	/* セクション全体の余白（参考のガイド内バランスに近づける） */
	padding: clamp(44px, 7vw, 76px) clamp(22px, 6vw, 56px);
}

.lp-announce__inner {
	max-width: 1040px;
	margin: 0 auto;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	/* 見出し → 帯 → 4カラム の縦リズム */
	gap: clamp(28px, 4.2vw, 44px);
}

.lp-announce__row {
	line-height: 0;
	margin: 0;
	box-sizing: border-box;
}

/* カンプ：下の4カラムが最も幅広、緑帯は一段細く、見出しはその中間 */
.lp-announce__row--head {
	width: min(100%, 94%);
}
.lp-announce__row--banner {
	width: min(100%, 86%);
}
.lp-announce__row--features {
	width: 100%;
}

.lp-announce__row img {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto;
	margin: 0;
}

/* ========== DOMOSUとは（グラデ＋白文字） ========== */
.lp-about {
	background: var(--lp-gradient);
	color: #fff;
	padding: clamp(48px, 8vw, 72px) 20px clamp(56px, 8vw, 80px);
	text-align: center;
}

.lp-about__van {
	max-width: min(420px, 88vw);
	margin: 0 auto 28px;
	display: block;
	filter: drop-shadow(0 10px 28px rgba(0, 0, 0, 0.18));
}

.lp-about h2 {
	font-size: clamp(1.85rem, 4.5vw, 3.2rem);
	font-weight: 900;
	margin: 0 0 22px;
	line-height: 1.2;
	color: #fff;
}

/* 直下のリード文のみ（白カード内の p は子セレクタにしない） */
.lp-about > p {
	max-width: 640px;
	margin: 0 auto;
	text-align: left;
	font-size: 1.05rem;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.96);
}

.lp-about > p + p {
	margin-top: 16px;
}

/* 「のりあい交通」のイメージ（白カード＋noriai01画像＋タクシー違いリスト）—カンプ準拠の階層・余白 */
.lp-about__noriai {
	/* 文字サイズトークン（区切りラベル＝緑5ボックスは同じ値で統一） */
	--noriai-size-title: clamp(1.32rem, 3.1vw, 1.78rem);
	--noriai-size-lead: clamp(1.18rem, 2.45vw, 1.38rem);
	--noriai-size-label-box: clamp(0.92rem, 1.65vw, 1.04rem);
	--noriai-size-foot: clamp(1.1rem, 2.35vw, 1.28rem);
	max-width: min(960px, 100%);
	margin: clamp(36px, 6vw, 56px) auto 0;
	padding: clamp(32px, 4.8vw, 48px) clamp(22px, 3.8vw, 40px) clamp(36px, 5vw, 52px);
	background: #fff;
	border-radius: 20px;
	box-sizing: border-box;
	color: #222;
	text-align: center;
}

.lp-about__noriai-title {
	font-size: var(--noriai-size-title);
	font-weight: 900;
	color: var(--lp-green-dark);
	margin: 0 0 clamp(28px, 4.2vw, 36px);
	line-height: 1.32;
	letter-spacing: 0.03em;
}

.lp-about__noriai-lead {
	max-width: min(720px, 100%);
	margin: 0 auto clamp(30px, 4.2vw, 42px);
	padding: 0;
	text-align: center;
	font-size: var(--noriai-size-lead);
	font-weight: 900;
	line-height: 1.88;
	color: #000;
	letter-spacing: 0.04em;
}

.lp-about__noriai-em {
	color: #e53935;
	font-weight: 900;
}

.lp-about__noriai-em--mark {
	text-decoration: underline;
	text-decoration-color: var(--lp-green);
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.lp-about__noriai-figure {
	margin: 0;
	line-height: normal;
}

.lp-about__noriai-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.lp-about__noriai-img {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: auto;
	margin: 0;
}

/* 一般タクシーとの違い（5カラム）— カンプ：白太字・緑地・区切りラベルとトーンを揃える */
.lp-about__noriai-figure--diff {
	width: 100%;
	color: inherit;
}

.lp-about__taxi-diff {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 6px;
	text-align: center;
}

.lp-about__taxi-diff li {
	background: var(--lp-green);
	color: #fff;
	font-weight: 900;
	font-size: var(--noriai-size-label-box);
	line-height: 1.52;
	padding: clamp(14px, 2vw, 18px) 4px;
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	min-height: 4.85em;
	letter-spacing: 0.02em;
	word-break: keep-all;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
}

@media screen and (max-width: 820px) {
	.lp-about__taxi-diff {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.lp-about__taxi-diff li:last-child {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 420px) {
	.lp-about__taxi-diff {
		grid-template-columns: 1fr;
	}
	.lp-about__taxi-diff li:last-child {
		grid-column: auto;
	}
}

/* タクシー違いリスト直下のライン（上の区切りと同系色） */
.lp-about__noriai-line-below {
	width: 100%;
	height: 2px;
	background: var(--lp-green);
	border-radius: 1px;
	margin: clamp(22px, 3.2vw, 32px) 0 0;
}

.lp-about__noriai-divider {
	display: flex;
	align-items: center;
	gap: clamp(8px, 2vw, 14px);
	margin: clamp(26px, 3.8vw, 36px) 0;
	width: 100%;
}

.lp-about__noriai-divider-line {
	flex: 1;
	min-width: 12px;
	height: 2px;
	background: var(--lp-green);
	border-radius: 1px;
}

.lp-about__noriai-divider-label {
	flex-shrink: 0;
	box-sizing: border-box;
	border: 2px solid var(--lp-green);
	background: #fff;
	padding: 12px 20px;
	font-size: var(--noriai-size-label-box);
	font-weight: 900;
	color: var(--lp-green-dark);
	line-height: 1.35;
	letter-spacing: 0.06em;
}

.lp-about__noriai-foot {
	margin: clamp(24px, 3.5vw, 34px) 0 0;
	font-size: var(--noriai-size-foot);
	font-weight: 800;
	color: var(--lp-green-dark);
	text-align: center;
	max-width: none;
	line-height: 1.45;
}

/* minnano 画像2枚を左右中央に（背景・タイトルは付けない） */
body.tstindex-lp .minnano-center {
	text-align: center;
	background-color: #fff;
}



/* ========== ご利用の流れ ========== */
/* 見本画像の階層：見出し（最大）→ STEPタブ（枠幅の約1/3）→ リード → ピル（最小） */
.lp-flow {
	--flow-title-size: clamp(1.75rem, 4vw, 2.5rem);
	--flow-icon-size: clamp(44px, 9vw, 56px);
	--flow-tab-fs: clamp(1.125rem, 2.35vw, 1.375rem);
	--flow-lead-fs: clamp(1.0625rem, 2.05vw, 1.125rem);
	--flow-dd-fs: 1rem;
	--flow-pill-fs: 0.875rem;
	padding: clamp(56px, 8vw, 96px) 16px 48px;
	background: #fff;
}

.lp-section-title {
	text-align: center;
	font-size: clamp(1.5rem, 3.5vw, 2.1rem);
	font-weight: 900;
	color: var(--lp-green-dark);
	margin: 0 0 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* ご利用の流れ：見本どおり黒太字＋バンアイコン（見出しを一段大きく） */
.lp-flow .lp-section-title--flow {
	color: #111;
	font-size: var(--flow-title-size);
	gap: clamp(12px, 2.2vw, 20px);
	margin: 0 0 16px;
	line-height: 1.2;
}

.lp-section-title img {
	width: auto !important;
	max-width: none !important;
	max-height: 38px;
	margin: 0 !important;
	vertical-align: middle;
}

.lp-flow .lp-section-title--flow img {
	width: auto !important;
	height: auto !important;
	max-height: var(--flow-icon-size);
	max-width: var(--flow-icon-size);
	object-fit: contain;
}

/* 見出し直下の STEP（導入文なしのときの余白） */
.lp-flow .lp-section-title--flow + .lp-step {
	margin-top: clamp(24px, 4vw, 40px);
}

/* STEP：ティール枠＋上に乗るタブ（STEP黄／見出し白） */
.lp-step {
	max-width: 960px;
	margin: 0 auto;
	padding-top: 22px;
	box-sizing: border-box;
}

/* 外枠：中程度の角丸（見本 12px 前後） */
.lp-step__frame {
	position: relative;
	border: 3px solid var(--lp-step-teal);
	border-radius: 12px;
	background: #fff;
	margin: 0;
	/* タブ分の上余白（見本どおりタブ下に十分な白） */
	padding: clamp(46px, 5.5vw, 56px) clamp(22px, 3.8vw, 36px) clamp(28px, 3.8vw, 40px);
	box-sizing: border-box;
}

/* STEP タブ：幅は枠の約1/3・文字はリードより大きく（見本比率） */
.lp-step__head {
	position: absolute;
	left: 50%;
	top: 0;
	transform: translate(-50%, -50%);
	z-index: 3;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	margin: 0;
	padding: 12px 24px;
	background: var(--lp-step-head-gradient);
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
	font-size: var(--flow-tab-fs);
	font-weight: 900;
	line-height: 1.25;
	text-align: center;
	box-sizing: border-box;
	/* 見本：メイン枠幅のおおよそ 1/3 */
	width: 33.333%;
	min-width: 240px;
	max-width: 360px;
	white-space: nowrap;
}

.lp-step__num {
	color: #ffeb3b;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.12);
}

.lp-step__label {
	color: #fff;
}

.lp-step__body {
	padding: 0;
	text-align: left;
}

.lp-step__lead {
	text-align: center;
	margin: 0 auto clamp(22px, 3.2vw, 30px);
	max-width: min(720px, 100%);
}

.lp-step__lead p {
	margin: 0 0 0.65em;
	font-size: var(--flow-lead-fs);
	font-weight: 700;
	color: #111;
	line-height: 1.7;
}

.lp-step__lead p:last-child {
	margin-bottom: 0;
}

.lp-flow .lp-step__body > p {
	margin-top: 0;
	font-size: var(--flow-dd-fs);
	line-height: 1.85;
	color: #111;
	font-weight: 500;
}

.lp-step__body p + p {
	margin-top: 14px;
}

.lp-step__body .min {
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	color: #555;
}

/* dl：2列グリッドで「ピル｜本文」を行単位で固定（カンプの横並び） */
body.tstindex-lp .lp-step__body dl {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: clamp(14px, 2.2vw, 22px);
	row-gap: clamp(20px, 2.8vw, 28px);
	align-items: start;
	width: 100%;
	max-width: 100%;
	margin: clamp(8px, 1.5vw, 14px) 0 0;
	font-size: 0.95rem;
}

body.tstindex-lp .lp-step__body dt {
	margin: 0;
	width: auto;
	min-width: 0;
	max-width: none;
}

body.tstindex-lp .lp-step__body dd {
	margin: 0;
	min-width: 0;
	padding: 0.28em 0 0;
	box-sizing: border-box;
}

/* ピル：カプセル＋14px 前後（タブ・リードより一段小さい） */
body.tstindex-lp .lp-step__body dt p {
	margin: 0 0 8px;
	background: var(--lp-step-teal);
	border: none;
	border-radius: 999px;
	color: #fff;
	padding: 9px 18px;
	font-size: var(--flow-pill-fs) !important;
	font-weight: 800;
	text-align: center;
}

@media screen and (min-width: 781px) {
	body.tstindex-lp .lp-step__body dt p {
		white-space: nowrap;
	}
}


body.tstindex-lp .lp-step__body dd p {
	margin: 0;
	font-size: var(--flow-dd-fs) !important;
	line-height: 1.75;
	padding-left: 4px;
	color: #111;
	font-weight: 500;
}

body.tstindex-lp .lp-step__body dd a {
	color: var(--lp-green-dark);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.tstindex-lp .lp-step__body dd a:hover {
	opacity: 0.85;
}

body.tstindex-lp .lp-step__body .yo_con {
	border: 3px solid #0091a2;
	border-radius: 16px;
	margin: 20px 0;
	overflow: hidden;
	max-width: 100%;
}

body.tstindex-lp .lp-step__body .yo_con h5 {
	width: 100% !important;
	max-width: none !important;
	margin: 0;
	border-radius: 0;
	box-sizing: border-box;
}

body.tstindex-lp .lp-step__body .yo_con ul {
	max-width: none;
	padding: 16px 20px 20px;
}

body.tstindex-lp .lp-step__body h6 {
	font-size: 1.05rem;
	font-weight: 900;
	color: var(--lp-green-dark);
	margin: 24px 0 12px;
	text-align: left;
}

.lp-btn-reserve {
	display: block;
	width: 100%;
	max-width: 520px;
	margin: 24px auto 0;
	text-align: center;
	background: var(--lp-orange);
	color: #fff !important;
	font-weight: 900;
	font-size: 1.08rem;
	padding: 18px 28px;
	border-radius: 999px;
	box-shadow: 0 5px 0 var(--lp-orange-dark);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.lp-btn-reserve:hover {
	transform: translateY(2px);
	box-shadow: 0 3px 0 var(--lp-orange-dark);
	opacity: 1;
	color: #fff !important;
}

body.tstindex-lp .destination_box {
	margin-top: 20px;
	border-left-width: 6px;
}

body.tstindex-lp .ryokin_price {
	margin-top: 20px;
}

body.tstindex-lp .ryokin_img {
	text-align: center;
	margin-top: 20px;
}

body.tstindex-lp .ryokin_img img {
	max-width: 90%;
	width: auto;
	margin: 0 auto;
}

/* ========== STEP3 乗車（カンプ：中央の3行リード＋料金は price.png） ========== */
body.tstindex-lp .lp-step--3 .lp-step__body {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(24px, 4vw, 40px);
}

body.tstindex-lp .lp-step--3 .lp-step3-lead {
	margin: 0 auto;
	max-width: min(42em, 100%);
	text-align: center;
}

body.tstindex-lp .lp-step--3 .lp-step3-lead p {
	margin: 0 0 0.85em;
	font-size: clamp(1rem, 2.05vw, 1rem);
	font-weight: 500;
	line-height: 1.85;
	color: #111;
}

body.tstindex-lp .lp-step--3 .lp-step3-lead p + p {
	margin-top: 0;
}

body.tstindex-lp .lp-step--3 .lp-step3-lead p:last-child {
	margin-bottom: 0;
}

body.tstindex-lp .lp-step--3 .lp-step3-price {
	margin: 0;
	padding: 0;
	width: 100%;
	text-align: center;
}

body.tstindex-lp .lp-step--3 .lp-step3-price__img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	vertical-align: bottom;
}

/* ========== STEP4 お帰り（中央3行・草緑で強調） ========== */
body.tstindex-lp .lp-step--4 .lp-step4-lead {
	margin: 0 auto;
	max-width: min(42em, 100%);
	text-align: center;
}

body.tstindex-lp .lp-step--4 .lp-step4-lead p {
	margin: 0 0 0.85em;
	font-size: clamp(1rem, 2.05vw, 1rem);
	font-weight: 500;
	line-height: 1.85;
	color: #111;
}

body.tstindex-lp .lp-step--4 .lp-step4-lead p + p {
	margin-top: 0;
}

body.tstindex-lp .lp-step--4 .lp-step4-lead p:last-child {
	margin-bottom: 0;
}

body.tstindex-lp .lp-step--4 .lp-step4-em {
	color: var(--lp-step2-grass);
	font-weight: 700;
}

/* ========== STEP2 利用予約（本文はご利用方法ブロックと同程度の可読サイズ） ========== */
/* 項目ごとの縦余白：子要素を縦並び＋一定 gap（注釈2行だけ下で詰める） */
body.tstindex-lp .lp-step--2 .lp-step__body {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(28px, 4.2vw, 44px);
}

/* 汎用 .lp-step__body p+p の余白を打ち消し（flex gap に一本化） */
body.tstindex-lp .lp-step--2 .lp-step__body > p + p {
	margin-top: 0;
}

body.tstindex-lp .lp-step--2 .lp-step__body > .lp-step2-foot + .lp-step2-foot--warn {
	margin-top: calc(clamp(10px, 1.5vw, 14px) - clamp(28px, 4.2vw, 44px));
}

body.tstindex-lp .lp-step--2 .lp-step2-intro {
	text-align: center;
	font-size: clamp(1.0625rem, 2.15vw, 1.1875rem);
	font-weight: 600;
	line-height: 1.8;
	color: #111;
	margin: 0 auto;
	max-width: 40em;
	width: 100%;
	align-self: center;
}

/* 電話：左右ティール縦線の中で「ピル＋番号／受付」ブロックを中央寄せ（カンプ準拠） */
body.tstindex-lp .lp-step--2 .lp-step2-tel-wrap {
	margin: 0;
	padding: clamp(16px, 2.5vw, 22px) 0;
	display: flex;
	justify-content: center;
	align-items: center;
	box-sizing: border-box;
	max-width: 100%;
}

/* 汎用 .lp-step__body dl グリッドを打ち消し：横並び・内容幅・中央 */
body.tstindex-lp .lp-step--2 dl.lp-step2-tel {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center !important;
	justify-content: center;
	gap: clamp(20px, 3.2vw, 30px) !important;
	row-gap: 14px !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
	grid-template-columns: unset !important;
	font-size: inherit !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-tel dt {
	margin: 0 !important;
	flex-shrink: 0;
	width: auto !important;
}

/* 汎用 dt p の margin-bottom:8px を無効化 */
body.tstindex-lp .lp-step--2 .lp-step2-tel dt p {
	margin: 0 !important;
	background: var(--lp-step2-teal) !important;
	border: none !important;
	border-radius: 999px;
	color: #fff !important;
	padding: clamp(12px, 2.2vw, 15px) clamp(20px, 3.5vw, 28px) !important;
	font-size: clamp(0.9375rem, 2vw, 1.0625rem) !important;
	font-weight: 800 !important;
	text-align: center !important;
	white-space: nowrap;
	line-height: 1.25 !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-tel dd {
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0;
	flex: 0 1 auto;
	text-align: left;
}

body.tstindex-lp .lp-step--2 .lp-step2-tel .lp-step2-tel__num {
	font-size: clamp(1.95rem, 5vw, 2.65rem) !important;
	font-weight: 900 !important;
	color: var(--lp-step2-grass) !important;
	margin: 0 0 4px !important;
	line-height: 1.1 !important;
	letter-spacing: 0.03em;
	text-align: left !important;
	font-family: "Noto Sans JP", sans-serif;
}

body.tstindex-lp .lp-step--2 .lp-step2-tel .lp-step2-tel__hours {
	font-size: clamp(1.02rem, 2.1vw, 1.125rem) !important;
	font-weight: 700 !important;
	color: #111 !important;
	margin: 0 !important;
	line-height: 1.45 !important;
	text-align: left !important;
	padding-left: 0 !important;
}

/* 緑ボックス：汎用 .yo_con（ティール枠・h5固定幅）を打ち消し、カンプどおり一本の草緑枠＋角丸 */
body.tstindex-lp .lp-step--2 .lp-step__body .yo_con.lp-step2-yo {
	border: 2px solid var(--lp-step2-grass) !important;
	border-radius: 12px !important;
	margin: 0 !important;
	overflow: hidden !important;
	background: #fff !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
}

/* 見出し：本文より一段大きく（カンプは緑帯内で主張が強い） */
body.tstindex-lp .lp-step--2 .lp-step__body .yo_con.lp-step2-yo h5 {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: clamp(12px, 2.2vw, 16px) clamp(12px, 2.5vw, 20px) !important;
	background: var(--lp-step2-grass) !important;
	background-color: var(--lp-step2-grass) !important;
	color: #fff !important;
	font-size: clamp(1.2rem, 2.5vw, 1.4rem) !important;
	font-weight: 800 !important;
	text-align: center !important;
	line-height: 1.4 !important;
	border-radius: 0 !important;
	letter-spacing: 0.03em;
	box-sizing: border-box !important;
}

/* 白エリア：行は左揃え・余白はコンパクトに */
body.tstindex-lp .lp-step--2 .lp-step2-yo__body {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: stretch;
	padding: clamp(14px, 2.5vw, 20px) clamp(14px, 3vw, 22px) clamp(16px, 2.8vw, 22px);
	text-align: left;
	box-sizing: border-box;
	width: 100%;
	min-height: 0;
}

body.tstindex-lp .lp-step--2 .lp-step2-yo__line {
	margin: 0 0 0.65em;
	width: 100%;
	/* max-width: min(26em, 100%); */
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(0.9375rem, 1.85vw, 1.1rem);
	line-height: 1.65;
	font-weight: 600;
	color: #111;
	word-break: keep-all;
	overflow-wrap: break-word;
	text-align: left;
}

body.tstindex-lp .lp-step--2 .lp-step2-yo__line:last-child {
	margin-bottom: 0;
}

/* 赤：キーワード／黒太字：発着地のみ（カンプ） */
body.tstindex-lp .lp-step--2 .lp-step2-yo__em {
	color: var(--lp-step2-red);
	font-weight: 800;
}

body.tstindex-lp .lp-step--2 .lp-step2-yo__kw {
	color: #111;
	font-weight: 800;
}

body.tstindex-lp .lp-step--2 .lp-step2-yo__dot {
	display: inline-block;
	color: var(--lp-step2-grass);
	font-weight: 700;
	margin-right: 0.2em;
	vertical-align: 0.05em;
}

/* 具体的な予約例（カンプ準拠：左＝利用者・緑枠白／右＝オペレーター・オレンジ枠白・しっぽ付き） */
body.tstindex-lp .lp-step--2 .lp-step2-chat-title {
	font-size: clamp(1.125rem, 2.2vw, 1.1875rem);
	font-weight: 900;
	color: #111 !important;
	text-align: center;
	margin: 0 !important;
	padding: 0 0 16px;
	border-bottom: 1px solid #bdbdbd;
	letter-spacing: 0.03em;
}

/* 枠内パディングを打ち消して横幅いっぱいにし、左＝利用者／右＝受付の位置をはっきりさせる */
body.tstindex-lp .lp-step--2 .lp-step2-chat-figure {
	margin: 24px calc(-1 * clamp(22px, 3.8vw, 36px)) 0;
	padding: 20px;
	width: auto;
	max-width: none;
	box-sizing: border-box;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat {
	--lp-chat-green: #00a040;
	--lp-chat-orange: #e68531;
	--lp-chat-avatar-bg: #f9d835;
	list-style: none;
	margin: 0;
	padding: 0 clamp(4px, 1.2vw, 12px);
	display: flex;
	flex-direction: column;
	gap: clamp(22px, 3vw, 28px);
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row {
	margin: 0;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--user {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	gap: clamp(16px, 2.2vw, 20px);
	width: 100%;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--op {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	gap: clamp(16px, 2.2vw, 20px);
	width: 100%;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__icon-wrap {
	flex-shrink: 0;
	width: clamp(88px, 11vw, 104px);
	height: clamp(88px, 11vw, 104px);
	border-radius: 50%;
	background: var(--lp-chat-avatar-bg);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-sizing: border-box;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__icon {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: contain;
	display: block;
	margin: 0;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__bubble {
	position: relative;
	z-index: 1;
	flex: 0 1 auto;
	min-width: 0;
	max-width: min(100%, 580px);
	background: #fff;
	border-radius: 16px;
	box-sizing: border-box;
	overflow: visible;
}

/* 利用者：緑枠・左しっぽ（外側＝枠色／内側＝白で 3px 相当を再現） */
body.tstindex-lp .lp-step--2 .lp-step2-chat__row--user .lp-step2-chat__bubble {
	border: 3px solid var(--lp-chat-green);
	padding: clamp(18px, 2.2vw, 22px) clamp(20px, 2.5vw, 28px);
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--user .lp-step2-chat__bubble::before {
	content: "";
	position: absolute;
	left: -13px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 11px 13px 11px 0;
	border-color: transparent var(--lp-chat-green) transparent transparent;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--user .lp-step2-chat__bubble::after {
	content: "";
	position: absolute;
	left: -7px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 9px 8px 0;
	border-color: transparent #fff transparent transparent;
}

/* オペレーター：オレンジ枠・右しっぽ */
body.tstindex-lp .lp-step--2 .lp-step2-chat__row--op .lp-step2-chat__bubble {
	border: 3px solid var(--lp-chat-orange);
	padding: clamp(18px, 2.2vw, 22px) clamp(20px, 2.5vw, 28px);
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--op .lp-step2-chat__bubble::before {
	content: "";
	position: absolute;
	right: -13px;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	z-index: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 11px 0 11px 13px;
	border-color: transparent transparent transparent var(--lp-chat-orange);
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__row--op .lp-step2-chat__bubble::after {
	content: "";
	position: absolute;
	right: -7px;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 9px;
	border-color: transparent transparent transparent #fff;
}

body.tstindex-lp .lp-step--2 .lp-step2-chat__text {
	margin: 0;
	padding: 0;
	font-size: clamp(1.02rem, 2.35vw, 1.125rem);
	line-height: 1.68;
	font-weight: 800;
	color: #111;
	text-align: left;
	letter-spacing: 0.02em;
	word-break: break-word;
	overflow-wrap: break-word;
}

/* オレンジCTA */
body.tstindex-lp .lp-step--2 .lp-step2-cta-dest {
	display: block;
	width: 100%;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 0;
	margin-bottom: 0;
	padding: 18px 24px;
	text-align: center;
	background: var(--lp-step2-orange);
	color: #fff !important;
	font-weight: 900;
	font-size: clamp(1.0625rem, 2vw, 1.125rem);
	border-radius: 12px;
	box-shadow: 0 4px 0 #c96a2a;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

body.tstindex-lp .lp-step--2 .lp-step2-cta-dest:hover {
	transform: translateY(2px);
	box-shadow: 0 2px 0 #c96a2a;
	opacity: 1;
	color: #fff !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-note {
	text-align: center;
	font-size: clamp(1rem, 2vw, 1.0625rem);
	line-height: 1.8;
	color: #111;
	font-weight: 500;
	margin: 0 auto;
	max-width: 40em;
	padding: 0 6px;
}

/* 電話以外での予約（見出し＝草緑文字＋左右の太い斜めバー／カンプ準拠） */
body.tstindex-lp .lp-step--2 .lp-step2-alt {
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(20px, 3.2vw, 28px);
}

body.tstindex-lp .lp-step--2 .lp-step2-alt__label {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	column-gap: clamp(14px, 2.8vw, 22px);
	row-gap: 12px;
	margin: 0;
	padding: clamp(16px, 3vw, 28px) clamp(12px, 3vw, 20px);
	border: none;
	color: var(--lp-step2-grass);
	font-size: clamp(1.05rem, 2.1vw, 1.6rem);
	line-height: 1.35;
	text-align: center;
}

body.tstindex-lp .lp-step--2 .lp-step2-alt__label-text {
	margin: 0;
	font-size: inherit;
	font-weight: 800;
	color: inherit;
	line-height: 1.35;
	text-align: center;
	max-width: min(100%, 22em);
	letter-spacing: 0.04em;
}

/* 文字より高い太い斜め線（左 \ ・右 /） */
body.tstindex-lp .lp-step--2 .lp-step2-alt__deco {
	display: block;
	width: clamp(5px, 0.9vw, 7px);
	height: 1.55em;
	min-height: 26px;
	background: var(--lp-step2-grass);
	border-radius: 3px;
	flex-shrink: 0;
	align-self: center;
	transform-origin: center center;
}

body.tstindex-lp .lp-step--2 .lp-step2-alt__deco--left {
	transform: rotate(-26deg);
}

body.tstindex-lp .lp-step--2 .lp-step2-alt__deco--right {
	transform: rotate(26deg);
}

/* Eメール／FAX：他CSSの dd p { font-size:!important } 等に負けないよう詳細度＋!important */
body.tstindex-lp .lp-step--2 .lp-step2-alt .lp-step2-alt__rows {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 3.5vw, 36px);
	max-width: min(680px, 100%);
	margin: 0 auto;
	font-size: clamp(1.125rem, 2.35vw, 1.35rem) !important;
	line-height: 1.5;
}

body.tstindex-lp .lp-step--2 .lp-step2-alt .lp-step2-alt__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(16px, 2.8vw, 24px) clamp(18px, 3vw, 28px);
}

body.tstindex-lp .lp-step--2 .lp-step2-alt .lp-step2-alt__rows .lp-step2-pill {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	background: var(--lp-step2-teal) !important;
	color: #fff !important;
	font-size: clamp(1.0625rem, 2.2vw, 1.28rem) !important;
	font-weight: 800 !important;
	padding: clamp(12px, 2.2vw, 16px) clamp(22px, 3.8vw, 32px) !important;
	border-radius: 999px;
	white-space: nowrap;
	flex-shrink: 0;
	line-height: 1.35 !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-alt .lp-step2-alt__rows p.lp-step2-alt__val {
	margin: 0 !important;
	padding-left: 0 !important;
	font-size: clamp(1.1875rem, 2.5vw, 1.8rem) !important;
	color: #111 !important;
	line-height: 1.55 !important;
	font-weight: 600 !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-alt .lp-step2-alt__rows .lp-step2-alt__val strong {
	font-weight: 900 !important;
	font-size: inherit !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-cta-web {
	background: linear-gradient(180deg, #f59a4a 0%, var(--lp-step2-orange) 100%);
	border-radius: 12px;
	box-shadow: 0 4px 0 #c96a2a;
	margin-top: 0 !important;
	margin-left: auto;
	margin-right: auto;
	font-size: clamp(1.0625rem, 2vw, 1.125rem) !important;
	padding: 18px 24px !important;
}

body.tstindex-lp .lp-step--2 .lp-step2-foot {
	text-align: center;
	font-size: clamp(0.9375rem, 1.9vw, 1rem);
	line-height: 1.75;
	color: #333;
	margin: 0 auto;
	max-width: 40em;
}

body.tstindex-lp .lp-step--2 .lp-step2-foot--warn {
	font-size: clamp(0.875rem, 1.75vw, 0.9375rem);
	color: #555;
	margin: 0 auto;
}

@media screen and (max-width: 780px) {
	body.tstindex-lp .lp-step--2 .lp-step2-yo__body {
		padding: 14px 12px 16px;
	}
	body.tstindex-lp .lp-step--2 .lp-step2-tel-wrap {
		padding: 14px 0;
	}
	body.tstindex-lp .lp-step--2 dl.lp-step2-tel {
		flex-direction: column !important;
		align-items: center !important;
		text-align: center;
	}
	body.tstindex-lp .lp-step--2 .lp-step2-tel .lp-step2-tel__num,
	body.tstindex-lp .lp-step--2 .lp-step2-tel .lp-step2-tel__hours {
		text-align: center !important;
	}
	body.tstindex-lp .lp-step--2 .lp-step2-alt__row {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ステップ間：オレンジ三角（カンプ） */
.lp-flow__arrow {
	width: 0;
	height: 0;
	border-left: 26px solid transparent;
	border-right: 26px solid transparent;
	border-top: 22px solid var(--lp-orange);
	margin: 18px auto;
	filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.1));
}

/* ========== 料金例カード ========== */
.lp-pricing {
	background: var(--lp-cream);
	padding: clamp(48px, 7vw, 80px) 16px 56px;
	border-top: 3px solid var(--lp-teal);
}

.lp-price-grid {
	max-width: 1000px;
	margin: 40px auto 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: clamp(20px, 4vw, 36px);
}

body.tstindex-lp .lp-price-grid__item {
	margin: 0;
	padding: 0;
	width: 100%;
	min-width: 0;
}

body.tstindex-lp .lp-price-grid__img {
	display: block;
	width: 100% !important;
	height: auto;
	max-width: 100%;
	vertical-align: bottom;
}

/* 料金例①：riyou01.png 相当のレイアウト／図版のみ riyou001.png */
body.tstindex-lp .lp-riyou-card {
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	min-width: 0;
}

body.tstindex-lp .lp-riyou-card__frame {
	position: relative;
	margin-top: clamp(22px, 4vw, 32px);
	/* 上辺にバッジが半分かぶさる分：バッジ下半分＋リードまでの余白（2行折り返しでも重ならない） */
	padding: clamp(3rem, 11vw + 1.15rem, 3.75rem) clamp(14px, 2vw, 20px) clamp(20px, 3vw, 28px);
	background: #fff;
	border: 3px solid #0091a2;
	border-radius: 14px;
	box-sizing: border-box;
	min-width: 0;
}

/* 枠の上辺をまたぐ配置（見本どおり）。下と重ならないよう上 padding で確保 */
body.tstindex-lp .lp-riyou-card__badge {
	position: absolute;
	left: 8px;
	right: 8px;
	top: 0;
	transform: translateY(-50%);
	z-index: 2;
	display: block;
	margin: 0;
	padding: clamp(12px, 2vw, 16px) clamp(8px, 2vw, 18px);
	background: var(--lp-step-head-gradient);
	line-height: 1.45;
	text-align: center;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
	box-sizing: border-box;
	overflow-wrap: anywhere;
	word-break: keep-all;
}

/* 黄色＝「自宅と目的地の往復」／白＝（例：…）— inline で折り返し自然に */
body.tstindex-lp .lp-riyou-card__badge-em {
	display: inline;
	font-size: clamp(0.78rem, 3.6vw, 1.55rem);
	font-weight: 900;
	letter-spacing: 0.02em;
	color: #ffeb3b !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

body.tstindex-lp .lp-riyou-card__badge-txt {
	display: inline;
	font-size: clamp(0.72rem, 3.2vw, 1.38rem);
	font-weight: 800;
	letter-spacing: 0.02em;
	color: #fff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

@media screen and (min-width: 600px) {
	body.tstindex-lp .lp-riyou-card__badge {
		left: 12px;
		right: 12px;
		padding-left: clamp(14px, 2vw, 22px);
		padding-right: clamp(14px, 2vw, 22px);
	}
	body.tstindex-lp .lp-riyou-card__frame {
		padding-top: clamp(2.65rem, 5vw + 1.5rem, 3.35rem);
	}
	body.tstindex-lp .lp-riyou-card__badge-em {
		font-size: clamp(0.82rem, 4.2vw, 1.65rem);
	}
	body.tstindex-lp .lp-riyou-card__badge-txt {
		font-size: clamp(0.76rem, 3.75vw, 1.45rem);
	}
}

body.tstindex-lp .lp-riyou-card__lead {
	margin: 0 0 clamp(14px, 2.2vw, 22px);
	text-align: center;
	font-size: clamp(1rem, 2.25vw, 1.2rem);
	font-weight: 600;
	line-height: 1.75;
	color: #222;
}

body.tstindex-lp .lp-riyou-card__mid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(10px, 2vw, 18px);
	width: 100%;
	max-width: 52rem;
	margin-left: auto;
	margin-right: auto;
}

body.tstindex-lp .lp-riyou-card__illus {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
}

body.tstindex-lp .lp-riyou-card__diagram {
	display: block;
	width: 100%;
	max-width: min(420px, 100%);
	height: auto;
	margin: 0 auto;
}

body.tstindex-lp .lp-riyou-card__reserve {
	border: 2px solid #0091a2;
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	min-width: 0;
}

body.tstindex-lp .lp-riyou-card__reserve-title {
	margin: 0;
	padding: clamp(10px, 1.8vw, 14px) clamp(14px, 2.2vw, 18px);
	background: #0091a2;
	color: #fff !important;
	font-size: clamp(1.02rem, 2.35vw, 1.22rem);
	font-weight: 900;
	text-align: center;
	letter-spacing: 0.06em;
	text-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
}

body.tstindex-lp .lp-riyou-card__reserve-text {
	margin: 0;
	padding: clamp(14px, 2.5vw, 20px) clamp(14px, 2.5vw, 20px);
	font-size: clamp(0.98rem, 2.05vw, 1.12rem);
	font-weight: 600;
	line-height: 1.8;
	color: #111;
	text-align: left;
}

/* 見本：1行・緑ピル／金額／オレンジ角丸バッジ／括弧注釈・縦は center */
body.tstindex-lp .lp-riyou-card__price-row {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin-top: clamp(14px, 2.5vw, 22px);
	padding: 0 clamp(2px, 1vw, 6px);
	text-align: center;
	min-width: 0;
	font-feature-settings: "palt" 1;
}

body.tstindex-lp .lp-riyou-card__price-pill {
	margin-right: clamp(6px, 1.2vw, 10px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	min-height: 2.35rem;
	padding: 0 14px;
	background: var(--lp-green-dark);
	color: #fff !important;
	font-size: clamp(0.82rem, 1.75vw, 1rem);
	font-weight: 900;
	border-radius: 999px;
	white-space: nowrap;
	letter-spacing: 0.02em;
	line-height: 1.15;
}

body.tstindex-lp .lp-riyou-card__price-num-wrap {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	flex-shrink: 0;
	white-space: nowrap;
	margin-right: clamp(12px, 2.2vw, 12px);
	line-height: 1;
}

body.tstindex-lp .lp-riyou-card__price-num {
	display: inline-block;
	font-size: clamp(1.65rem, 4vw, 2.35rem);
	font-weight: 900;
	color: #111;
	letter-spacing: 0.02em;
	line-height: 1;
	font-feature-settings: "palt" 1, "tnum" 1;
}

body.tstindex-lp .lp-riyou-card__price-yen {
	display: inline-block;
	font-size: 0.56em;
	font-weight: 900;
	margin-left: 0.06em;
	letter-spacing: 0;
	line-height: 1;
	vertical-align: baseline;
}

/* オレンジの角丸バッジ（白文字） */
body.tstindex-lp .lp-riyou-card__price-disc {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-sizing: border-box;
	min-height: 2.35rem;
	padding: 0 10px;
	background: var(--lp-orange);
	color: #fff !important;
	font-size: clamp(0.8rem, 1.85vw, 0.98rem);
	font-weight: 700;
	line-height: 1.15;
	border-radius: 5px;
	white-space: nowrap;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
	margin-right: clamp(4px, 1vw, 8px);
}

body.tstindex-lp .lp-riyou-card__price-disc-strong {
	font-weight: 900;
	margin-right: 0.28em;
}

body.tstindex-lp .lp-riyou-card__price-disc-sub {
	font-weight: 700;
}

body.tstindex-lp .lp-riyou-card__price-note {
	display: inline-flex;
	align-items: center;
	flex-shrink: 1;
	min-width: 0;
	font-size: clamp(0.82rem, 1.85vw, 1rem);
	font-weight: 500;
	color: #111;
	line-height: 1.2;
	letter-spacing: 0;
}

/* 料金例③：ピル＋2行（メイン／内訳）・水色ピル */
body.tstindex-lp .lp-riyou-card__price-block {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: clamp(8px, 1.5vw, 14px);
	margin-top: clamp(14px, 2.5vw, 22px);
	min-width: 0;
}

body.tstindex-lp .lp-riyou-card__price-pill--teal {
	background: #0091a2;
	color: #fff !important;
}

body.tstindex-lp .lp-riyou-card__price-main {
	flex: 1 1 12rem;
	min-width: 0;
	text-align: left;
}

body.tstindex-lp .lp-riyou-card__price-line1 {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.45em;
	row-gap: 0.2em;
	margin: 0 0 0.35em;
}

body.tstindex-lp .lp-riyou-card__price-block .lp-riyou-card__price-num-wrap {
	margin-right: 0;
}

body.tstindex-lp .lp-riyou-card__price-bracket-disc {
	font-size: clamp(1.05rem, 2.65vw, 1.4rem);
	font-weight: 800;
	color: #cc6634;
	line-height: 1;
	white-space: nowrap;
}

body.tstindex-lp .lp-riyou-card__price-breakdown {
	margin: 0;
	font-size: clamp(0.84rem, 1.95vw, 1rem);
	font-weight: 600;
	line-height: 1.55;
	color: #111;
}

body.tstindex-lp .lp-riyou-card__price-breakdown-disc {
	font-weight: 800;
	color: #cc6634;
}

/* バス利用例：緑枠・水色見出し・2列・ボックス内左右分割 */
body.tstindex-lp .lp-riyou-bus {
	margin-top: clamp(16px, 2.5vw, 24px);
}

body.tstindex-lp .lp-riyou-bus__frame {
	border: 2px solid var(--lp-green);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	box-sizing: border-box;
}

body.tstindex-lp .lp-riyou-bus__title {
	margin: 0;
	padding: clamp(12px, 2vw, 14px) clamp(12px, 2.2vw, 16px);
	background: #0091a2;
	color: #fff !important;
	font-size: clamp(1rem, 2.15vw, 1.15rem);
	font-weight: 900;
	text-align: center;
	letter-spacing: 0.03em;
	line-height: 1.35;
}

body.tstindex-lp .lp-riyou-bus__body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(14px, 2.4vw, 22px);
	padding: clamp(14px, 2.2vw, 18px);
	align-items: start;
}

body.tstindex-lp .lp-riyou-bus__col {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}

body.tstindex-lp .lp-riyou-bus__subhead {
	margin: 0 0 8px;
	font-size: clamp(0.95rem, 2.05vw, 1.08rem);
	font-weight: 900;
	color: #0091a2;
	line-height: 1.4;
}

body.tstindex-lp .lp-riyou-bus__lead {
	margin: 0 0 12px;
	font-size: clamp(0.85rem, 1.85vw, 0.98rem);
	font-weight: 600;
	color: #333;
	line-height: 1.5;
}

body.tstindex-lp .lp-riyou-bus__box {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-start;
	gap: clamp(8px, 1.8vw, 12px);
	padding: clamp(11px, 1.9vw, 14px) clamp(10px, 1.8vw, 12px);
	border-radius: 8px;
	font-weight: 700;
	line-height: 1.4;
}

body.tstindex-lp .lp-riyou-bus__box--dark {
	background: #008557;
	color: #fff !important;
}

body.tstindex-lp .lp-riyou-bus__box--light {
	background: #8cc152;
	color: #fff !important;
}

body.tstindex-lp .lp-riyou-bus__box-label {
	flex: 1 1 auto;
	min-width: 0;
	font-size: clamp(0.88rem, 1.85vw, 1rem);
	text-align: left;
}

body.tstindex-lp .lp-riyou-bus__box-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
	gap: 3px;
	flex: 0 1 auto;
	font-size: clamp(0.82rem, 1.75vw, 0.95rem);
}

body.tstindex-lp .lp-riyou-bus__box-line {
	display: block;
	white-space: nowrap;
}

body.tstindex-lp .lp-riyou-bus__arrow {
	width: 0;
	height: 0;
	margin: 8px auto;
	border-style: solid;
	border-width: 11px 8px 0 8px;
	border-color: var(--lp-orange) transparent transparent transparent;
	flex-shrink: 0;
}

@media screen and (max-width: 640px) {
	body.tstindex-lp .lp-riyou-bus__body {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 420px) {
	body.tstindex-lp .lp-riyou-bus__box {
		flex-direction: column;
		align-items: flex-start;
	}
	body.tstindex-lp .lp-riyou-bus__box-meta {
		align-items: flex-start;
		text-align: left;
		width: 100%;
	}
	body.tstindex-lp .lp-riyou-bus__box-line {
		white-space: normal;
	}
}

@media screen and (max-width: 480px) {
	body.tstindex-lp .lp-riyou-card__price-block {
		flex-direction: column;
		align-items: stretch;
	}
	body.tstindex-lp .lp-riyou-card__price-block .lp-riyou-card__price-pill--teal {
		align-self: center;
	}
	body.tstindex-lp .lp-riyou-card__price-main {
		text-align: center;
	}
	body.tstindex-lp .lp-riyou-card__price-line1 {
		justify-content: center;
	}
}

@media screen and (max-width: 380px) {
	body.tstindex-lp .lp-riyou-card__price-row {
		flex-wrap: wrap;
		row-gap: 8px;
		column-gap: 6px;
		justify-content: center;
	}
	body.tstindex-lp .lp-riyou-card__price-pill,
	body.tstindex-lp .lp-riyou-card__price-num-wrap,
	body.tstindex-lp .lp-riyou-card__price-disc {
		margin-right: 0;
	}
}

body.tstindex-lp .lp-riyou-card__sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ========== お知らせ（既存クラス上書き） ========== */
body.tstindex-lp .sp_news.lp-news {
	border-top: 3px solid var(--lp-green);
	border-bottom: 3px solid var(--lp-orange);
	background-image: url("../img/bg_news.png");
	background-color: #ffffff;
	background-position: bottom;
	background-size: cover;
	padding: clamp(56px, 8vw, 96px) 16px;
	margin: 0;
}

body.tstindex-lp .sp_news.lp-news h2 {
	color: var(--lp-green-dark);
}

/* ========== よくある質問 ========== */
.lp-faq {
	padding: clamp(48px, 7vw, 72px) 16px 64px;
	background: #fff;
}

body.tstindex-lp .top_con06.lp-faq-list {
	float: none;
	max-width: 800px !important;
	margin: 0 auto;
	padding: 0 12px;
}

body.tstindex-lp .item_06 p {
	text-indent: 0;
	padding-left: 0;
	font-size: clamp(0.95rem, 2vw, 1.05rem);
}

/* Q / A：アイコン右隣のテキスト列を左揃え（折り返し2行目以降もアイコンの右端に揃える） */
body.tstindex-lp .top_con06.lp-faq-list .item_06 p {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 12px;
	align-items: start;
	text-align: left;
}

body.tstindex-lp .top_con06.lp-faq-list .item_06 p img {
	margin-bottom: 0 !important;
	margin-right: 0 !important;
}

body.tstindex-lp .top_con06.lp-faq-list .lp-faq__q-text,
body.tstindex-lp .top_con06.lp-faq-list .lp-faq__a-text {
	min-width: 0;
	text-align: left;
}

body.tstindex-lp .txt_orange {
	color: var(--lp-orange);
}

/* ========== フッター（CTA＋俯瞰写真） ========== */
.lp-footer {
	margin: 0;
	padding: 0;
	position: relative;
	z-index: 2;
}

.lp-footer__cta-section {
	background: #eeeeee;
	padding: 48px 20px 36px;
	text-align: center;
}

.lp-footer__cta-link {
	display: inline-block;
	background: var(--lp-orange);
	color: #fff !important;
	font-weight: 900;
	font-size: clamp(1.15rem, 3vw, 1.45rem);
	padding: 20px min(56px, 8vw);
	border-radius: 999px;
	box-shadow: 0 6px 20px rgba(238, 118, 10, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	text-decoration: none !important;
	letter-spacing: 0.04em;
}

.lp-footer__cta-link:hover {
	transform: translateY(2px);
	box-shadow: 0 4px 14px rgba(238, 118, 10, 0.35);
	opacity: 1;
	color: #fff !important;
}

.lp-footer__visual {
	min-height: clamp(180px, 28vw, 320px);
	background-image: url("../img/AdobeStock_410027832.jpeg");
	background-position: center;
	background-size: cover;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: clamp(28px, 5vw, 56px) 16px clamp(32px, 6vw, 48px);
	box-sizing: border-box;
}

.lp-footer__visual-inner {
	width: 100%;
	text-align: center;
}

.lp-footer__visual-title {
	margin: 0 0 10px;
	font-size: clamp(1.05rem, 2.4vw, 1.4rem);
	font-weight: 900;
	color: #111;
	line-height: 1.45;
	letter-spacing: 0.02em;
	text-shadow:
		0 0 1px #fff,
		0 0 12px rgba(255, 255, 255, 0.95),
		0 1px 3px rgba(255, 255, 255, 0.9);
}

.lp-footer__visual-address {
	margin: 0;
	font-size: clamp(0.78rem, 1.65vw, 0.95rem);
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.75;
	letter-spacing: 0.02em;
	text-shadow:
		0 0 1px #fff,
		0 0 10px rgba(255, 255, 255, 0.92),
		0 1px 2px rgba(255, 255, 255, 0.85);
}

/* ページトップボタン位置調整 */
body.tstindex-lp #page-top {
	z-index: 50;
}

@media screen and (max-width: 720px) {
	body.tstindex-lp .lp-riyou-card__mid {
		grid-template-columns: 1fr;
	}
}

/* 780px以下：dlは1列（ラベル→本文の順） */
@media screen and (max-width: 780px) {
	body.tstindex-lp .lp-step__body dl {
		grid-template-columns: 1fr;
		row-gap: 6px;
	}
	body.tstindex-lp .lp-step__body dd {
		padding: 0 0 18px;
		margin: 0 0 8px;
		border-bottom: 1px solid #e0e0e0;
	}
	body.tstindex-lp .lp-step__body dl dd:last-of-type {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: none;
	}
	body.tstindex-lp .lp-step__head {
		white-space: normal;
		width: calc(100% - 24px);
		min-width: 0;
		max-width: none;
		text-align: center;
	}
}

/* style.css の SP 向け `img { width:90% }` を打ち消し */
@media screen and (max-width: 599px) {
	body.tstindex-lp .lp-hero__brand-row .lp-hero__h1 {
		max-width: 100%;
	}
	body.tstindex-lp .lp-hero__brand {
		width: 100% !important;
		max-width: 100%;
	}
	body.tstindex-lp .lp-hero__scene img {
		width: 100% !important;
		max-width: 100%;
	}
	body.tstindex-lp .lp-announce__inner {
		gap: clamp(20px, 5vw, 32px);
	}
	body.tstindex-lp .lp-announce__row--head,
	body.tstindex-lp .lp-announce__row--banner,
	body.tstindex-lp .lp-announce__row--features {
		width: 100%;
	}
	body.tstindex-lp .lp-announce__row img {
		width: 100% !important;
		max-width: 100%;
	}
	body.tstindex-lp .lp-about__noriai-img {
		width: 100% !important;
		max-width: 100%;
	}
	body.tstindex-lp .lp-price-grid__img,
	body.tstindex-lp .lp-step3-price__img,
	body.tstindex-lp .lp-riyou-card__diagram {
		width: 100% !important;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}
	body.tstindex-lp .lp-about__van {
		width: 88% !important;
		max-width: 420px;
	}
	body.tstindex-lp .lp-flow__arrow {
		border-left-width: 22px;
		border-right-width: 22px;
		border-top-width: 18px;
	}
	body.tstindex-lp .minnano-center .minnano,
	body.tstindex-lp .minnano-center .minnano_btm {
		width: 100% !important;
		max-width: 100%;
	}
	body.tstindex-lp .lp-step--2 .lp-step2-chat__icon-wrap {
		width: clamp(76px, 20vw, 88px);
		height: clamp(76px, 20vw, 88px);
	}
	body.tstindex-lp .lp-step--2 .lp-step2-chat__row--user .lp-step2-chat__bubble,
	body.tstindex-lp .lp-step--2 .lp-step2-chat__row--op .lp-step2-chat__bubble {
		padding: 16px 18px;
	}
	body.tstindex-lp .lp-step--2 .lp-step2-chat {
		gap: 18px;
		padding: 0 2px;
	}
}
