/* =========================================================
   01. tokens / reset
========================================================= */
:root {
	--header-h: 62px; /* ←ヘッダーの高さ（必要なら 58/64 に調整） */
	--pad: 20px;
	--radius: 16px;
	--radius-sm: 12px;
	--pill: 999px;
	--shadow: 0 10px 26px rgba(0, 0, 0, 0.12);

	--text: #111;
	--bg: #fff;
	--line: rgba(0, 0, 0, 0.12);

	/* カンプ寄せ色（近似） */
	--mint: #30b090;
	--green: #68b828;
	--orange: #e85000;
	--blue: #0058a8;
	--mustard: #aa7322;
	--red: #e80018;
	--turquoise: #00a8c6;
	--indigo: #3071b9;
	--pine-green: #4d9d7a;

	--lead-bg: #ececec;
	--lead-border: rgba(0, 88, 168, 0.18);
	--lead-text: #0b3b66;

	--GR_U3: #009b00;
	--color-icon-routeno: var(--GR_U3);

	--fz-body: 15px;
	--fz-x-small: 12px;
	--fz-small: 13px;
	--fz-title: 18px;
	--fz-section: 16px;
	--fz-band: 20px;
	--fz-large: 22px;
}

.menu4 {
	font-size: var(--fz-x-small);
}
.card__text,
.sayBlock__text,
.sayBlock__bubble,
.leadBox__text,
.featureHead__text,
.infoCarousel__caption,
.safety__title,
.localCampaignPlan__leadText {
	font-size: var(--fz-body);
}

.caption,
.topic__band__suffix {
	font-size: var(--fz-small);
}

.card__title,
.featureHead__title {
	font-size: var(--fz-title);
}

.section__title {
	font-size: var(--fz-section);
}

.topic__band {
	font-size: var(--fz-band);
}
.cta__text--large {
	font-size: var(--fz-large);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}
html,
body {
	height: 100%;
}

body {
	margin: 0;
	font-family:
		system-ui,
		-apple-system,
		'Hiragino Sans',
		'Noto Sans JP',
		'Yu Gothic',
		'Meiryo',
		sans-serif;
	color: var(--text);
	background: var(--bg);
	line-height: 1.65;
	-webkit-text-size-adjust: 100%;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}
a {
	color: inherit;
	text-decoration: none;
}
p {
	margin: 0 0 12px;
}
h1,
h2,
h3,
h4 {
	margin: 0;
	line-height: 1.25;
}

/* =========================================================
   02. layout
========================================================= */

#lp-main {
	/* LPのコンテンツをここに配置 */
	min-height: 60vh;
}

/* -------- mv2026 -------- */
.mv2026__logo {
	display: none;
}
.mv2026 {
	position: relative;
	width: 100%;
	background: #fff;
	overflow: hidden;
	aspect-ratio: 375 / 450;
	display: grid;
	place-items: center;
}

.mv2026__bg {
	position: absolute;
	left: 0;
	right: 0;
	top: var(--header-h);
	bottom: 0;

	background-color: #fff;
	background-image: url('../image/mv_sp.jpg?v=0');
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	z-index: 0;
}

.mv2026__layer {
	position: relative;
	z-index: 1;
	margin: 0 30px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* 青ロゴ */
.mv2026__mark {
	width: 135px;
	height: auto;
	display: block;
	margin: 3VW 0 10px;
}

/* タイトルSVG（お客さま〜2026まで） */
.mv2026__titleSvg {
	width: 520px; /* カンプに合わせて微調整 */
	max-width: 80%;
	height: auto;
	display: block;
	margin: 0 0 10px;
}

.mv2026__titleSvg--pc {
	display: none;
}
.mv2026__head {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.mv2026__texts {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.mv2026__copy {
	margin: 0;
	text-align: center;
}

/* コピー（テキスト） */
.mv2026__lead,
.mv2026__sub {
	display: block;
	margin: 0;
	letter-spacing: 0.18em;
	line-height: 1.25;
}

/* 余白の調整 */
.mv2026__lead {
	margin-top: 6px;
}
.mv2026__sub {
	margin-top: 8px;
}

/* -------- menuSection -------- */
.menuSection {
	background: #e9e9e9;
	padding: 28px 6% 0px;
}

/* 見出し */
.menuSection__heading {
	margin: 0 0 18px;
	text-align: center;
	letter-spacing: 0.45em;
}

.menu4 {
	margin-top: 0;
	background: #e9e9e9;
	padding: 0px 0px 50px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.menu4__label {
	display: block;
	text-align: center;
	letter-spacing: -0.1em;
}
.topic {
	padding: 50px var(--pad);
	/*応急処置*/
	padding-top: 100px;
	/*応急処置*/
}

#pa2.topic {
    padding-top: 25px;
}
.detour-discount__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

.detour-discount__item .media {
	margin: 0;
}

.detour-discount__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.detour-discount__badge {
	width: 90px;
	height: auto;
	flex: 0 0 auto;
}

.detour-discount__title {
	margin: 0;
	color: var(--blue);
	font-weight: 700;
	line-height: 1.3;
}

.detour-discount__notes {
	margin-top: 16px;
}

.detour-discount__notes .caption {
	margin: 0;
}

.detour-discount__notes .caption + .caption {
	margin-top: 6px;
}
.misguideGrid {
	display: grid;
	gap: 24px;
	margin: 0 0 50px;
}

.misguideCol .card,
.misguideCol .media-group {
	width: 100% !important;
	margin: 0 0 24px 0 !important;
}

.misguideCol .media-group:last-child,
.misguideCol .card:last-child {
	margin-bottom: 0 !important;
}
.media-group--pa-main,
.media-group--pa-2col,
.media-group--pa-message {
	margin: 0 auto 30px;
}
.media-group--detour {
	margin-bottom: 30px;
}

.detourImages {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}

.detourImages__item {
	margin: 0;
}

.detourImages__caption {
	margin-top: 12px;
}
.congestion-2col {
	width: 100%;
}

.congestion-2col__item .card,
.congestion-2col__item .media-group {
	width: 100%;
	margin: 0;
}

.congestion-2col__item .media + .media {
	margin-top: 20px;
}

.congestion-2col__item .card {
	margin-bottom: 20px;
}

/* ---- local campaign ---- */
.localCampaignCard {
	margin: 0 auto 40px;
}

.localCampaignCard__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}

.localCampaignCard__year {
	flex: 0 0 auto;
	width: 76px;
	height: 76px;
	margin: 0;
	display: grid;
	place-content: center;
	border-radius: 999px;
	background: var(--pine-green);
	color: #fff;
	line-height: 1.2;
	text-align: center;
}

.localCampaignCard__title {
	margin: 0;
	line-height: 1.45;
	letter-spacing: -0.01em;
}

.localCampaignCard__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 14px;
	align-items: center;
}

.localCampaignCard__main,
.localCampaignCard__coupon {
	margin: 0;
}

.localCampaignCard__main {
	width: 100%;
}

.localCampaignCard__main img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.localCampaignCard__coupon img {
	display: block;
	width: 100%;
	height: auto;
}

/* ---- local campaign plan ---- */
.localCampaignPlan {
	margin: 0 0 36px;
}

.localCampaignPlan__lead {
	position: relative;
	margin: 0 0 18px;
	padding: 10px 10px 10px 50px;
	min-height: 65px;
	display: flex;
	align-items: center;
	background: linear-gradient(90deg, #51ab84 0%, var(--pine-green) 100%);
	color: #fff;
	outline: none;
	text-shadow: none;
	-webkit-text-stroke: 0;
}

.localCampaignPlan__leadText {
	display: block;
	width: 100%;
	text-align: center;
	color: #fff;
	text-shadow: none;
	-webkit-text-stroke: 0;
	outline: none;
	-webkit-font-smoothing: antialiased;
	font-weight: bold;
}

.localCampaignPlan__badge {
	position: absolute;
	/*left: -15px;
	top: 50%;
	transform: translateY(-85%);
	width: 80px;*/
	top: 4px;
	left: 2%;
	width: 18%;
}

.localCampaignPlan__badge img {
	display: block;
	width: 100%;
	height: auto;
}

.localCampaignPlan__ticket {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 10px;
	min-width: 120px;
	border: 2px solid #11a890;
	background: #fff;
	text-align: center;
}

.localCampaignPlan__list {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1;
}

.localCampaignPlan__list li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.localCampaignPlan__list li + li {
	margin-top: 4px;
}

.localCampaignPlan__num {
	display: inline-block;
	flex: 0 0 auto;
	color: #11a890;
	text-align: center;
	font-size: 25px;
}

/* =========================================================
   03. shared components
========================================================= */
/* -------- media -------- */
.media__img--pc {
	display: none;
}

/* -------- caption -------- */
.caption {
	/* margin-top: 5px; */
}
.caption--right {
	text-align: right;
}
.section__title {
	position: relative;
	z-index: 3;
	font-weight: bold;
}

.iconTitle {
	position: relative;
	display: inline-block;
	width: 70px;
}
.iconTitle img {
	position: absolute;
	bottom: -30px;
	border: 3px solid #fff;
	border-radius: 10px;
}
/* -------- topic__band -------- */
.topic__band {
	margin: 10px calc(var(--pad) * -1) 0px;
	padding: 25px var(--pad);
	color: #fff;
	font-weight: 500;
	text-align: center;
	position: relative;
	z-index: 1;
	font-weight: bold;
}
.topic__band__suffix {
	margin-left: 5px;
}
.topic__band--mint {
	background: var(--mint);
}
.topic__band--green {
	background: var(--green);
}
.topic__band--orange {
	background: var(--orange);
}
.topic__band--blue {
	background: var(--blue);
}
.topic__band--mustard {
	background: var(--mustard);
}
.topic__band--turquoise {
	background: var(--turquoise);
}
.topic__band--pine-green {
	background: var(--pine-green);
}
/* -------- Media -------- */
.media {
	margin: 12px 0;
}
.media img {
	width: 100%;
}

/* -------- leadBox -------- */
.leadBox {
	margin: 12px 0;
	padding: 14px;
	display: flex;
	align-items: center;
	gap: 14px;
}
.leadBox__text {
	margin: 0;
}
.leadBox--gray {
	background: var(--lead-bg);
}
.leadBox__illust {
	width: 100px;
	height: auto;
	flex: 0 0 auto;
	display: block;
}

/* -------- CTA -------- */
.ctaBlock {
	margin: 16px 0 0px; /* 上下余白を統一 */
	font-weight: bold;
}

.cta {
	display: block;
	margin: 16px 0 0;
	padding: 18px 16px;
	border-radius: 20px;
	text-align: center;
	text-decoration: none;
	line-height: 1.4;
}
#info .cta {
	padding: 33px 16px;
}
.cta--red {
	background: var(--red);
	color: #fff;
}
.cta--blue {
	background: var(--blue);
	color: #fff;
}
/* CTA：矢印付き */
.cta--arrow {
	position: relative;
	padding-right: 40px; /* 右の矢印スペース */
}
/* 右矢印 */
.cta__icon {
	position: absolute;
	right: 18px;
	top: 50%;
	width: 28px;
	transform: translateY(-50%);
	font-size: 28px; /* 矢印サイズ */
	line-height: 1;
	opacity: 0.95;
	background: url(../image/icn_blank.svg) center top no-repeat;
}
.cta__icon__blank {
	background: url('../image/icn_blank.svg') center top no-repeat;
}
.fa-chevron-right::before {
	content: '' !important;
}

/* -------- card -------- */
.card {
	margin: 14px 0;
	background: #fff;
	position: relative;
}
.card__outline--green {
	border: 2px solid var(--green);
}
.card__outline--orange {
	border: 2px solid var(--orange);
}
.card__outline--mustard {
	border: 2px solid var(--mustard);
}
.card__outline--turquoise {
	border: 2px solid var(--turquoise);
}
.card__outline--indigo {
	border: 2px solid var(--indigo);
}
.card__title {
	color: #fff;
	padding: 10px 15px;
	text-align: center;
	font-weight: bold;
}
.card__title--withBadge {
	padding-left: 65px;
}
.card__title--green {
	background-color: var(--green);
}
.card__title--orange {
	background-color: var(--orange);
}
.card__title--mustard {
	background-color: var(--mustard);
}
.card__title--blue {
	background-color: var(--blue);
}
.card__title--turquoise {
	background-color: var(--turquoise);
}
.card__title--indigo {
	background-color: var(--indigo);
}
.card__title--pine-green {
	background-color: var(--pine-green);
}

.card__text {
	margin: 0;
}
.card__text--full {
	width: 100%;
	text-align: center;
	font-weight: 700;
}
.card__text--padded {
	padding: 15px 20px;
}

/* アイコン付きカードタイトルだけ横並びにする */
.card__title--withNum {
	display: flex;
	align-items: center; /* 先頭行に合わせたいなら flex-start */
	justify-content: flex-start;
	gap: 10px;

	text-align: left; /* 元のcenterを上書き */
	padding-left: 12px; /* 左余白（好みで） */
	padding-right: 12px;
}

/* 数字アイコン */
.card__title--withNum .card__num {
	flex: 0 0 auto;
	width: 20px; /* カンプに合わせて調整 */
}
.card__title--withNum .card__num img {
	width: 100%;
	height: auto;
	display: block;
}
.badge {
	position: absolute;
	top: 8px;
	left: 1%;
	width: 70px;
	display: grid;
}
#congestion .badge {
	top: -7px;
}

.badge--orange {
	background: var(--orange);
}

.sp-only {
	display: inline;
}

@media screen and (min-width: 768px) {
	#congestion .badge {
		top: -17px;
	}
	.sp-only {
		display: none;
	}
}
.pc-only {
	display: none;
}

@media screen and (min-width: 1024px) {
	.pc-only {
		display: inline;
	}
}
/* =========================================================
   04. section components
========================================================= */

/* ---- sayBlock ---- */
.sayBlock {
	margin: 0px calc(var(--pad) * -1) 40px;
	z-index: 2;
	position: relative;
}

.sayBlock--blue {
	background: #dfeaf8;
	padding: 10px;
}
.sayBlock--gray {
	background: #dfe1e2;
	padding: 10px;
}
.sayBlock--pad-left {
	margin-left: 0px;
	margin-right: 0px;
}
/* 上段：横並び */
.sayBlock__top {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	position: relative;
	z-index: 2;
}

/* イラスト */
.sayBlock__illust {
	width: 25%;
	flex-shrink: 0; /* 縮まないように */
	z-index: 3;
}
.sayBlock__illust--shokuin {
	position: absolute;
	right: 0;
	bottom: -15px;
	z-index: 3;
}
.sayBlock__illust--okyakusama {
	position: absolute;
	left: 0;
	bottom: 0px;
	width: 18%;
	z-index: 3;
}
.sayBlock__illust--okyakusama--02 {
	width: 13%;
}
.sayBlock__illust--okyakusama--03 {
	width: 18%;
}
.sayBlock__illust--okyakusama--04 {
	width: 23%;
}
.sayBlock__illust--okyakusama--05 {
	width: 18%;
}
.sayBlock__illust--okyakusama--07 {
	width: 23%;
}
.sayBlock__illust--okyakusama--08 {
	width: 18%;
}
.sayBlock__illust--okyakusama--10 {
	width: 25%;
}

.sayBlock__image {
	width: 100px;
	height: auto;
	display: block;
	max-width: 45%;

	position: absolute;
	right: 12px;
	bottom: 12px;
}

/* 吹き出し */
.sayBlock__bubble {
	margin: 0;
	background: #fff;
	border-radius: 10px;
	padding: 10px 15px;
	position: relative;
	width: 270px;
	z-index: 2;
}
/* テキストが画像に被らないように余白を作る */
.sayBlock__text {
	padding: 10px; /* 画像高さの目安（調整） */
	line-height: 1.6;
}
.sayBlock__text--christmas {
	padding: 5px 0px;
}
.sayBlock__bubble--okyakusama {
	line-height: 1.4;
	padding: 10px 30px;
}

.sayBlock__bubble--gray {
	background: #ececec;
	color: #005bac; /* グレー吹き出しの文字色 */
	padding: 15px 20px;
}

/* 吹き出し：右 */
.sayBlock__bubble--left {
	margin-left: auto;
	transform: translateY(-20px);
	font-weight: bold;
}
.sayBlock__bubble--right {
	font-weight: bold;
}
/* しっぽ：左 */
.sayBlock__bubble--left::before {
	content: '';
	position: absolute;
	left: -12px;
	top: 10px;
	width: 0;
	height: 0;
	border-right: 16px solid #fff;
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
}

/* しっぽ：右 */
.sayBlock__bubble--right::before {
	content: '';
	position: absolute;
	right: -12px;
	top: 26px;
	width: 0;
	height: 0;
	border-left: 16px solid #fff;
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
}
.sayBlock__bubble--rightGray::before {
	border-left: 16px solid #ececec;
}

/* -------- paFair -------- */
.paFair {
	margin: 0 0 30px;
}
.paFair__title {
	margin: 0;
}
.paFair .media {
	margin: 0 0 10px;
}

/* -------- paSouvenir -------- */
.paSouvenir {
	margin: 14px 0;
}
.paSouvenir__title {
	margin: 0 0 0px;
}
.paSouvenir__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

.paSouvenir__item {
	margin: 0;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 6px;
	overflow: hidden;
}

.paSouvenir__item img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover; /* 縦横比が違う場合も“同じ高さ”に揃う */
	aspect-ratio: 3 / 4; /* ←カンプは縦長。ここを微調整 */
}
.paSouvenir .media {
	margin: 0 0 30px;
}
.paSouvenir .paSouvenir__single {
	grid-column: 1 / -1;
	justify-self: center;
	width: calc((100% - 12px) / 2);
	margin: 0 auto 30px;
}

/* -------- action2026 -------- */
.action2026 {
	margin: 16px 0 0;
}

/* 上：青い帯＋箇条書き */
.action2026__note {
	background: #fff;
	margin-bottom: 20px;
}

.action2026__list {
	margin: 0;
	padding: 0;
	list-style: none; /* 標準の●は消す */
}

.action2026__list li {
	position: relative;
	padding-left: 1.7em; /* ●の分の余白 */
}
/* 項目間の余白（均等にする） */
.action2026__list li + li {
	margin-top: 5px; /* 8〜12pxで調整 */
}

/* 青の大きめ● */
.action2026__list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.25em; /* 行の中央に寄せる（微調整OK） */
	width: 17px;
	height: 17px;
	border-radius: 999px;
	background: #0b63b6; /* カンプの青に合わせて調整 */
}
/* 3つ目（サニタリー〜）だけ行間を詰める */
.action2026__list li:nth-child(3) {
	line-height: 1.25; /* 例：通常より詰める（1.25〜1.45で調整） */
}
/* 3つ目だけ：青丸を1行目に合わせる */
.action2026__list li:nth-child(3)::before {
	top: 0.02em; /* ←上に寄せる（0〜0.15emで微調整） */
}

/* 2行目（括弧）の上余白も詰める */
.action2026__list li:nth-child(3) .action2026__sub {
	margin-top: 2px; /* 4px→2px / 0でもOK */
}
.action2026__sub {
	display: block;
}
/* バッジ位置の基準を作る */
.action2026__media {
	position: relative;
}

/* 左上に固定（写真の上に重ねる） */
.action2026__badge {
	position: absolute;
	left: 14px; /* 位置微調整 */
	top: 14px;
	z-index: 5; /* 写真より前に */
	width: 96px; /* バッジの見た目サイズ */
	height: auto;
}

.action2026__badge img {
	width: 80px;
	height: auto;
	display: block;
}
.action2026__photo {
	margin-bottom: 30px;
}
/* safety */
.safety__title {
	margin: 0;
}
.safety .media {
	margin: 0 0 30px;
}

/* -------- infoCarousel -------- */
.infoCarousel {
	position: relative;
	margin-left: calc(var(--pad) * -1);
	margin-right: calc(var(--pad) * -1);
	padding-left: 0;
	padding-right: 0;
}

.infoCarousel__viewport {
	overflow: hidden;
	border-radius: 12px;
}

.infoCarousel__track {
	display: flex;
	transition: transform 0.35s ease;
	will-change: transform;
}

.infoCarousel__slide {
	flex: 0 0 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 30px;
}

/* 画像枠 */
.infoCarousel__media {
	width: 100%;
	max-width: 650px;
	margin: 0 auto;
}

/* 同サイズ書き出し前提 */
.infoCarousel__media img {
	width: 100%;
	height: auto;
	display: block;
}

.infoCarousel__caption {
	margin: 14px 0 0;
	text-align: center;
	line-height: 1.55;
	letter-spacing: 0.02em;
	min-height: 4.5em;
}

/* 矢印ボタン（左右の丸） */
.infoCarousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 40px; /* 半円の直径 */
	height: 64px;
	border: none;
	background: rgba(0, 0, 0, 0.12);
	display: grid;
	place-items: center;
	cursor: pointer;
	z-index: 5;
}

/* 左：左半円 */
.infoCarousel__nav--prev {
	left: 0;
	border-radius: 0 999px 999px 0; /* ←右側だけ丸く */
}

/* 右：右半円 */
.infoCarousel__nav--next {
	right: 0;
	border-radius: 999px 0 0 999px; /* ←左側だけ丸く */
}

/* 矢印の見た目 */
.infoCarousel__nav i {
	font-size: 30px; /* 好みで */
	line-height: 1;
}

/* 無効状態 */
.infoCarousel__nav:disabled {
	opacity: 0.25;
	cursor: default;
}

/* ドット */
.infoCarousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 10px;
}

.infoCarousel__dot {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	border: none;
	background: rgba(0, 0, 0, 0.25);
	cursor: pointer;
}

.infoCarousel__dot[aria-current='true'] {
	background: rgba(0, 0, 0, 0.65);
}

/* -------- hashireGoMedia -------- */
.hashireGoMedia {
	display: grid;
	grid-template-columns: 1fr 180px; /* 左：情報 / 右：スマホ */
	grid-template-areas:
		'badge phone'
		'main  phone';
	gap: 14px 16px;
	align-items: start;
	margin-top: 50px;
}

.hashireGoMedia .media {
	margin: 0;
}
.hashireGoMedia .media img {
	width: 100%;
	height: auto;
	display: block;
}

.hashireGoMedia__circle {
	position: relative;
}

/* バッジを左上に重ねる */
.hashireGoMedia__badge {
	position: absolute;
	left: -5px; /* 円からはみ出す感じ（調整） */
	top: -30px;
	width: 70px; /* 見た目サイズ（調整） */
	z-index: 2;
}

.hashireGoMedia__badge img {
	width: 100%;
	height: auto;
	display: block;
}

/* 1枚目：左下（はしれGOメイン） */
.hashireGoMedia__logo {
	grid-area: main;
}

/* 2枚目：左上（丸枠＋バッジ） */
.hashireGoMedia__circle {
	grid-area: badge;
	max-width: 320px; /* 伸びすぎ防止 */
}

/* 3枚目：右（スマホ） */
.hashireGoMedia__sp {
	grid-area: phone;
	justify-self: end;
	width: 180px;
}

/* -------- featureHead -------- */
.featureHead {
	display: flex;
	align-items: flex-start;
	/* gap: 14px; */
	margin: 10px 0;
}

.featureHead__icon {
	width: 50px;
	height: auto;
	flex: 0 0 auto;
	display: block;
}

.featureHead__body {
	flex: 1 1 auto;
	min-width: 0; /* 長文折り返し用 */
}

.featureHead__title {
	margin: 0;
	color: #e80018;
	font-weight: 800;
}

.featureHead__text {
	margin: 0;
	line-height: 1.4;
}
/* -------- featureList -------- */
.featureList__item {
	margin: 0;
}
.featureList__item:last-child {
	margin-bottom: 0;
}

.featureList {
	list-style: none;
	padding: 0;
	margin: 14px 0 50px;
	display: grid;
	gap: 10px;
}
.featureList li {
	/* padding: 12px 12px; */
	font-weight: 500;
}
.featureList__head {
	margin: 20px 0 10px;
}

.icon-routeno {
	fill: var(--color-icon-routeno);
}
/* =========================================================
   05. utilities
========================================================= */

.em-red {
	color: var(--red);
}
/* 文中の番号SVG（ルート番号バッジ） */
.rNo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	vertical-align: middle; /* 文章の中央に */
	margin: 0 0.25em; /* 前後の余白 */
}

.rNo img {
	width: 1.35em; /* 文字サイズ基準で拡縮 */
	height: auto;
	display: block;
}
.sayBlock__bubble--rightGray {
	/* グレー吹き出しの余白 */
	padding: 10px 20px 0;
	line-height: 1.4;
}

@media screen and (max-width: 767px) {
	.l-hdr__ttl {
		width: 100% !important;
	}
	.l-hdr__spBtn {
		/*display: none;*/
	}
}
/* =========================================================
   06. responsive (pc)
========================================================= */

/* ------------------------tablet------------------------ */
@media screen and (min-width: 768px) {
	:root {
		--fz-body: 15px;
		--fz-small: 13px;
		--fz-title: 16px;
		--fz-section: 22px;
		--fz-band: 19px;
	}

	.card__text,
	.sayBlock__text,
	.sayBlock__bubble,
	.leadBox__text,
	.featureHead__text,
	.infoCarousel__caption,
	.cta,
	.paFair__title,
	.paSouvenir__title,
	.menuSection__heading,
	.card__text--full,
	.action2026__list,
	.localCampaignCard__title,
	.localCampaignPlan {
		font-size: var(--fz-body);
	}

	.caption,
	.topic__band__suffix,
	.menu4 {
		font-size: var(--fz-small);
	}

	.card__title,
	.featureHead__title,
	.localCampaignPlan__leadText {
		font-size: var(--fz-title);
	}
	.card__title br {
		display: none;
	}

	.section__title,
	.mv2026__copy {
		font-size: var(--fz-section);
	}

	.topic__band,
	.sayBlock__bubble {
		font-size: var(--fz-band);
	}
	.detour-discount__head {
		gap: 18px;
		margin: 32px 0 14px;
	}

	.detour-discount__badge {
		width: 130px;
	}

	.detour-discount__title {
		font-size: 34px;
	}

	header.l-hdr {
		/*display: none;*/
	}
	#lp-main {
		max-width: 640px;
		margin: 0 auto;
	}
	#survey .media-group,
	#pa .media-group,
	#safety .media-group,
	.leadBox,
	.ctaBlock,
	.card,
	.action2026__media,
	.action2026__note,
	.card__title--box {
		width: 840px;
		margin: 0 auto;
	}
	#local .localCampaignCard {
		width: 540px;
		margin: 0 auto 40px;
	}
	#local .localCampaignPlan {
		width: 540px;
		margin: 0 auto 40px;
	}
	.localCampaignCard__body {
		grid-template-columns: 1fr 1fr;
		gap: 18px;
		align-items: center;
	}
	.localCampaignCard__main {
		max-width: none;
	}

	.localCampaignCard__year {
		width: 88px;
		height: 88px;
	}
	.localCampaignPlan__lead {
		padding: 16px 16px 16px 128px;
		min-height: 102px;
		font-size: 18px;
	}
	.localCampaignPlan__badge {
		width: 104px;
	}
	.localCampaignPlan__ticket {
		min-width: 260px;
	}
	.localCampaignPlan__list li {
		gap: 10px;
	}
	.localCampaignPlan__num {
		min-width: 1.6em;
	}
	.mv2026__bg {
		top: 0;
	}
	.menuSection {
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding: 36px 0 60px;
		background: #e9e9e9;
	}

	.menu4 {
		max-width: 540px;
		margin: 0 auto;
		padding: 0;
		gap: 32px;
		grid-template-columns: repeat(6, 1fr);
	}

	.card,
	.action2026__note {
		margin-bottom: 50px;
	}

	.sayBlock--blue {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		padding: 14px 0;
		background: transparent;
		z-index: 2;
	}

	.sayBlock--blue::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		background: #dfeaf8;
		z-index: -1;
	}
	.sayBlock--gray {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		padding: 14px 0;
		background: transparent;
		z-index: 2;
	}
	.sayBlock--gray::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		background: #dfe1e2;
		z-index: -1;
	}
	.sayBlock--centerText .sayBlock__text {
		max-width: 700px;
		margin-left: auto;
		margin-right: auto;
		text-align: left;
	}
	.sayBlock__text--christmas br {
		display: none;
	}
	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) {
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
		gap: 28px;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__image {
		position: static;
		width: 180px;
		max-width: none;
		height: auto;
		flex: 0 0 180px;
		margin: 0;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__text--christmas {
		flex: 1 1 auto;
		margin: 0;
		padding: 0;
		color: #005bac;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__text--christmas br {
		display: none;
	}
	/* 右側の人イラストのサイズ共通 */
	.sayBlock__illust {
		width: 16%;
	}
	.sayBlock__illust--okyakusama {
		width: 18%;
		bottom: -80px;
		transform: translateX(-15px);
	}
	.sayBlock__illust--okyakusama--02 {
		width: 10%;
		transform: translateX(25px);
		bottom: -55px;
	}
	.sayBlock__illust--okyakusama--03 {
		width: 15%;
		bottom: -55px;
	}
	.sayBlock__illust--okyakusama--04 {
		width: 23%;
		transform: translateX(-25px);
		bottom: -80px;
	}
	.sayBlock__illust--okyakusama--05 {
		width: 19%;
		bottom: -80px;
	}
	.sayBlock__illust--okyakusama--06 {
		width: 16%;
		bottom: -56px;
	}
	.sayBlock__illust--okyakusama--07 {
		width: 19%;
		bottom: -56px;
	}
	.sayBlock__illust--okyakusama--08 {
		width: 18%;
		bottom: -79px;
	}
	.sayBlock__illust--okyakusama--10 {
		width: 22%;
		bottom: -79px;
	}
	.sayBlock__bubble {
		width: 500px;
	}
	.sayBlock__bubble--right::before {
		top: 4px;
	}
	.sayBlock__text {
		margin-left: 110px;
		margin-top: 5px;
		padding: 0;
	}
	.topic__band {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		background: transparent;
		z-index: 1;
	}
	.topic__band--leftMargin {
		padding-left: 20px;
	}

	.topic__band::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		z-index: -1;
	}

	.topic__band--mint::before {
		background: var(--mint);
	}
	.topic__band--green::before {
		background: var(--green);
	}
	.topic__band--orange::before {
		background: var(--orange);
	}
	.topic__band--mustard::before {
		background: var(--mustard);
	}
	.topic__band--turquoise::before {
		background: var(--turquoise);
	}
	.topic__band--blue::before {
		background: var(--blue);
	}
	.topic__band--pine-green::before {
		background: var(--pine-green);
	}
	.iconTitle {
		width: 90px;
		z-index: 1;
	}
	.iconTitle img {
		border: 4px solid #fff;
		bottom: -40px;
	}
	.hashireGoMedia {
		width: 440px;
		margin: 0 auto;
	}
	.hashireGoMedia__circle {
		width: 200px;
	}
	.hashireGoMedia__logo {
		width: 200px;
	}
	.hashireGoMedia__sp {
		width: 200px;
	}
	.sayBlock__bubble--rightGray {
		padding: 10px 20px 0;
	}
	#pa .media-group--pa-main {
		width: 100%;
		max-width: 540px;
		margin: 0 auto 30px;
	}

	#pa .media-group--pa-main .media {
		margin: 0;
	}

	#pa .media-group--pa-2col {
		width: 100%;
		max-width: 540px;
		margin: 0 auto 30px;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 20px;
		align-items: start;
	}

	#pa .media-group--pa-2col .paFair,
	#pa .media-group--pa-2col .paSouvenir {
		margin: 0;
	}

	#pa .media-group--pa-message {
		width: 100%;
		max-width: 540px;
		margin: 0 auto 36px;
	}
}

/* ------------------------pc start------------------------ */
@media screen and (min-width: 1024px) {
	:root {
		--fz-body: 18px;
		--fz-read: 20px;
		--fz-small: 14px;
		--fz-title: 22px;
		--fz-section: 24px;
		--fz-band: 28px;
	}

	.card__text,
	.sayBlock__bubble,
	.leadBox__text,
	.featureHead__text,
	.cta,
	.menuSection__heading,
	.hashireGoCap {
		font-size: var(--fz-body);
	}
	
	.sayBlock__text {
		font-size: var(--fz-read);
	}

	.caption,
	.topic__band__suffix,
	.menu4,
	.infoCarousel__caption {
		font-size: var(--fz-small);
	}

	.card__title,
	.featureHead__title,
	.sayBlock__bubble {
		font-size: var(--fz-title);
	}

	.section__title,
	.card__text--full {
		font-size: var(--fz-section);
	}

	.topic__band {
		font-size: var(--fz-band);
	}
	.cta__text--large {
		font-size: var(--fz-section);
	}

	#info .featureList__head {
		font-size: var(--fz-title);
	}

	#lp-main {
		max-width: 840px;
		margin: 0 auto;
	}
	.mv2026 {
		/*aspect-ratio: 1600 / 900;*/
		height: 560px;
	}
	.mv2026__logo {
		display: block;
		position: absolute;
		top: 20px;
		left: 20px;
		width: 140px;
		height: auto;
		z-index: 2;
	}

	.mv2026__bg {
		top: 0;
		background-image: url('../image/mv_pc.jpg'); /* PC背景 */
		background-repeat: no-repeat;
		background-position: center top;
		background-size: contain;
	}

	.mv2026__titleSvg--sp {
		display: none;
	}

	.mv2026__titleSvg--pc {
		display: block;
		width: 760px;
		max-width: 100%;
		height: auto;
		margin: 0;
	}

	.mv2026__head {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 28px;
	}
	.mv2026__texts {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}
	.mv2026__mark {
		width: 170px;
		margin: 0;
		flex: 0 0 auto;
	}

	.mv2026__copy {
		margin-top: 14px;
		text-align: left;
		white-space: nowrap;
	}

	.mv2026__lead,
	.mv2026__sub {
		display: inline;
		line-height: 1.6;
		letter-spacing: 0.1em;
	}
	.topic {
		padding: 70px 0;
	}
	#pa2 {
		padding-top: 0!important;
	}
	.topic__band {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		padding: 24px 0;
		background: transparent;
		z-index: 1;
		font-weight: bold;
	}
	.topic__band::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		z-index: -1;
	}

	.topic__band--mint::before {
		background: var(--mint);
	}
	.topic__band--green::before {
		background: var(--green);
	}
	.topic__band--orange::before {
		background: var(--orange);
	}
	.topic__band--blue::before {
		background: var(--blue);
	}
	.topic__band--mustard::before {
		background: var(--mustard);
	}
	.topic__band--turquoise::before {
		background: var(--turquoise);
	}
	#survey .media-group,
	#pa .media-group,
	#pa .action2026__note,
	#pa .action2026__media,
	#safety .media-group {
		width: 700px;
		margin: 0 auto;
	}

	#local .localCampaignCard {
		width: 840px;
		margin: 0 auto 50px;
	}
	#local .localCampaignPlan {
		width: 500px;
		margin: 0 auto 50px;
	}
	.localCampaignCard__head {
		gap: 18px;
		margin-bottom: 20px;
	}
	.localCampaignCard__year {
		width: 80px;
		height: 80px;
	}

	.localCampaignCard__body {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 30px;
	}
	.localCampaignPlan__lead {
		padding: 0;
		min-height: 85px;
	}
	.localCampaignPlan__badge {
		left: 18px;
		top: -9px;
		width: 100px;
	}
	.localCampaignPlan__ticket {
		width: 100%;
		padding: 14px 26px;
	}
	.localCampaignPlan__list li {
		gap: 12px;
	}
	.localCampaignPlan__num {
		min-width: 1.7em;
	}

	.menuSection {
		background: #e9e9e9;
		padding: 36px 0 60px;
		box-shadow: 0 0 0 100vmax #e9e9e9;
		clip-path: inset(0 -100vmax);
	}

	.menuSection__heading {
		margin: 0 auto 24px;
		text-align: center;
		letter-spacing: 0.36em;
	}

	.menu4 {
		max-width: 800px;
		margin: 0 auto;
		padding: 0;
		gap: 36px;
		grid-template-columns: repeat(6, 1fr);
	}

	.menu4__item {
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.menu4__icon {
		width: 100%;
		max-width: 132px;
		height: auto;
	}

	.menu4__label {
		margin-top: 10px;
		line-height: 1.45;
		letter-spacing: -0.03em;
	}

	.mv2026__layer {
		margin: 0 48px;
	}

	.mv2026__titleSvg {
		width: 620px;
		max-width: 100%;
	}
	.sayBlock--blue {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		padding: 14px 0;
		background: transparent;
		z-index: 2;
	}
	.sayBlock--blue::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		background: #dfeaf8;
		z-index: -1;
	}
	.sayBlock--gray {
		position: relative;
		margin-left: 0;
		margin-right: 0;
		padding: 14px 0;
		background: transparent;
		z-index: 2;
	}
	.sayBlock--gray::before {
		content: '';
		position: absolute;
		inset: 0;
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		background: #dfe1e2;
		z-index: -1;
	}

	.sayBlock__bubble {
		width: 700px;
		padding: 20px 50px;
	}
	.sayBlock__illust {
		width: 14%;
	}
	.sayBlock__illust--okyakusama {
		width: 14%;
		bottom: -79px;
	}
	#local .sayBlock__illust--okyakusama {
		width: 17%;
		bottom: -73px;
	}
	.sayBlock__illust--okyakusama--02 {
		width: 9%;
		transform: translateX(45px);
		bottom: -73px;
	}
	.sayBlock__illust--okyakusama--03 {
		width: 12%;
	}
	.sayBlock__illust--okyakusama--04 {
		width: 18%;
		transform: translateX(-25px);
		bottom: -100px;
	}
	.sayBlock__illust--okyakusama--05 {
		width: 14%;
		bottom: -72px;
	}
	.sayBlock__illust--okyakusama--06 {
		width: 14%;
		bottom: -72px;
	}
	.sayBlock__illust--okyakusama--07 {
		width: 16%;
		bottom: -72px;
	}
	.sayBlock__illust--okyakusama--08 {
		width: 15%;
		bottom: -72px;
	}
	.sayBlock__bubble--left {
		transform: translateY(0);
	}
	.sayBlock__text {
		margin-left: 140px;
		margin-top: 14px;
		padding: 0;
	}

	.sayBlock__text--christmas br {
		display: none;
	}
	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) {
		display: flex;
		flex-direction: row-reverse;
		align-items: center;
		gap: 20px;
		padding: 14px 20px;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__image {
		position: static;
		width: 120px;
		max-width: none;
		height: auto;
		flex: 0 0 120px;
		margin: 0;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__text--christmas {
		flex: 1 1 auto;
		margin: 0;
		padding: 0;
		color: #005bac;
		line-height: 1.5;
	}

	.sayBlock__bubble--rightGray:has(.sayBlock__text--christmas) .sayBlock__text--christmas br {
		display: none;
	}
	.sayBlock__bubble--rightGray {
		padding: 20px 20px 0;
	}
	.sayBlock__bubble--rightGray p {
		margin-bottom: 20px;
	}
	.iconTitle {
		width: 100px;
		z-index: 1;
		margin-right: 0.5em;
	}
	.iconTitle img {
		border: 4px solid #fff;
		bottom: -40px;
	}
	#survey .media-group--survey-top {
		display: flex;
		justify-content: center;
		align-items: flex-start;
		gap: 32px;
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
	}

	#survey .media-group--survey-top .media {
		flex: 1 1 0;
		width: auto;
		margin: 0;
	}

	#survey .media-group--survey-top .media:first-child {
		max-width: 50%;
	}

	#survey .media-group--survey-top .media:last-child {
		max-width: 50%;
	}
	#survey .media--survey-bar-label {
		width: 100%;
		max-width: 700px;
		margin: 24px auto 0!important;
		/*応急処置\
		max-width: 1200px;
		width: 1200px;
		transform: translateX(-180px);
		応急処置*/
	}

	#survey .media--survey-bar-label .media__img--sp {
		display: none;
	}

	#survey .media--survey-bar-label .media__img--pc {
		display: block;
		width: 100%;
		height: auto;
	}
	#survey .media-group--survey-bottom {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
	}

	#survey .media-group--survey-bottom .media {
		margin: 0;
	}

	#survey .media-group--survey-bottom .media + .media {
		margin-top: 24px;
	}

	.leadBox {
		padding: 30px;
	}
	.ctaBlock {
		width: 700px;
		margin: 0 auto 50px;
	}
	.card {
		margin-bottom: 50px;
	}
	.card__text {
		padding: 20px;
	}
	.card__text--full {
		margin-bottom: 50px;
	}
	.card__title--withNum {
		justify-content: center;
	}
	.card__title--withNum .card__num {
		width: 25px;
	}
	.badge {
		width: 100px;
		top: -30px;
		left: 5px;
	}
	#pa .action2026__note {
		margin-bottom: 30px;
	}
	#pa .media-group--pa-main {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 36px;
	}

	#pa .media-group--pa-main .media {
		margin: 0;
		margin-bottom: 15px;
	}

	#pa .media-group--pa-2col {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 36px;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 32px;
		align-items: start;
	}

	#pa .media-group--pa-2col .paFair,
	#pa .media-group--pa-2col .paSouvenir {
		margin: 0;
	}

	#pa .media-group--pa-2col .paFair .media:last-child,
	#pa .media-group--pa-2col .paSouvenir .media:last-child {
		margin-bottom: 0;
	}

	#pa .media-group--pa-message {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 40px;
	}

	#congestion .card {
		margin-bottom: 50px;
	}
	#congestion .card__title--box {
		margin-bottom: 50px;
	}
	#congestion .media-group:last-child {
		/* margin-bottom: 100px; */
		max-width: 840px;
	}

	#info .media-group,
	#info .featureList {
		width: 500px;
		margin: 0 auto;
	}

	.hashireGoMedia {
		width: 440px;
		margin: 0 auto;
	}
	.hashireGoMedia__circle {
		width: 220px;
	}
	.hashireGoMedia__logo {
		width: 220px;
	}
	.hashireGoMedia__sp {
		width: 220px;
	}
	.hashireGoCap {
		margin-top: 20px;
	}
	.detour-discount__badge {
		width: 150px;
	}

	.detour-discount__title {
		font-size: 44px;
	}
	.infoCarousel {
		margin-left: 0;
		margin-right: 0;
	}

	.infoCarousel__viewport {
		overflow: visible;
	}

	.infoCarousel__track {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		transform: none !important;
		transition: none !important;
	}

	.infoCarousel__slide {
		flex: none;
		padding: 0;
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.infoCarousel__media {
		max-width: none;
	}

	.infoCarousel__caption {
		margin-top: 14px;
		min-height: auto;
		font-size: 16px;
		line-height: 1.6;
	}

	.infoCarousel__nav,
	.infoCarousel__dots {
		display: none;
	}
	.cards-group {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 32px 20px;
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
	}

	.cards-group > .card {
		width: calc(50% - 10px);
		margin: 0;
	}

	.cards-group > .card .media {
		margin: 0;
	}

	.cards-group > .card .card__text--padded {
		padding: 20px;
	}

	.cards-group > .card .caption {
		margin-top: 12px;
		font-size: 14px;
		line-height: 1.5;
	}

	.cards-group > .card__text--full {
		width: 100%;
		margin: 0;
		text-align: center;
	}
	#safety .media-group--safety-2col {
		/*display: grid;
		grid-template-columns: 1fr 1fr;*/
		gap: 28px 24px;
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
		align-items: start;
	}
	#safety .media-group--safety-2col-2 {
		gap: 28px 24px;
		width: 62%;
		max-width: 840px;
		margin: 0 auto 50px;
		align-items: start;
	}
	#safety .media-group--safety-2col-2 .caption {
		text-align: right;
		padding-right: 8.7%;
	}

	.media-group--safety-2col > .media {
		margin: 0;
	}

	.media-group--safety-2col > .media img {
		width: 100%;
		height: auto;
		display: block;
	}

	.media-group--safety-2col > .media .caption {
		margin-top: 12px;
		line-height: 1.6;
	}

	.media-group--safety-2col > .sayBlock {
		grid-column: 1 / -1;
		margin-top: 8px;
	}
	.media-group--safety-840 {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 40px;
	}

	.media-group--safety-840 .media {
		margin: 0;
	}
	.misguideGrid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 28px;
		width: 100%;
		max-width: 1000px;
		margin: 0 auto 50px;
		align-items: start;
	}

	.misguideCol {
		display: flex;
		flex-direction: column;
	}

	.misguideCol > .card {
		display: flex;
		flex-direction: column;
		height: 100%;
		min-height: 174px; /* ここは見ながら微調整 */
	}

	.misguideCol > .card .card__text {
		flex: 1 1 auto;
		display: flex;
		align-items: center; /* 中の本文を上下中央寄せ */
	}
	.misguideCol > .card .card__title {
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 12px 18px;
		font-size: 16px;
		line-height: 1.2;
		letter-spacing: -0.05em;
		text-align: left;
		white-space: nowrap;
	}

	.misguideCol > .card .card__title .card__num {
		flex: 0 0 auto;
		width: 26px;
	}

	.misguideCol > .card .card__title .card__num img {
		width: 100%;
		height: auto;
		display: block;
	}
	.detourImages {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
		align-items: start;
	}

	.detourImages__caption {
		margin-top: 16px;
		text-align: left;
	}
	.detour-discount {
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
	}

	.detour-discount__grid {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
		align-items: start;
	}

	.detour-discount__badge {
		width: 96px;
	}

	.detour-discount__title {
		font-size: 20px;
	}

	.detour-discount__notes {
		margin-top: 18px;
	}
	.congestion-2col {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 36px;
		width: 100%;
		max-width: 840px;
		margin: 0 auto 50px;
		align-items: start;
	}

	.congestion-2col__item {
		display: flex;
		flex-direction: column;
		gap: 20px;
	}
	.congestion-2col__item:only-child {
		grid-column: 1 / -1;
		width: 100%;
		max-width: 840px;
		margin: 0 auto;
	}
	.congestion-2col__item:only-child .card {
		width: 840px;
		max-width: 100%;
		margin-left: auto;
		margin-right: auto;
	}

	.congestion-2col__item .card {
		margin-bottom: 0;
	}

	.congestion-2col__item .media-group {
		margin: 0;
	}
}


/*フロートバナー*/
@media only screen and (max-width: 767px) {
	.ban__fix__sp {
		position: fixed;
		width: 92%;
		left: 4%;
		bottom: 3vw;
		z-index: 9999;
	}
	.ban__fix__sp img {
		width: 100%;
		height: auto;
	}
	.ban__fix__inner {
		position: relative;
		width: 100%;
	}
	/*#closebanner-sp {
        position: absolute;
        top:-10px;
        right: -10px;
        display: block;
        height: 30px;
        width: 30px;
        background: url('../image/float_close.png') no-repeat 0 0;
		background-size: 30px;
        cursor: pointer;
        text-indent: -9000px;
        z-index: 10;
    }*/
	.ban__fix {
		display: none;
	}
	.l-ftr__cpy {
		padding-bottom: 15vw;
	}
}
@media only screen and (min-width: 768px) {
	.ban__fix {
		position: fixed;
		width: 80px;
		height: 300px;
		bottom: 100px;
		right: 0px;
		display: block;
		z-index: 9999;
	}
	.ban__fix__inner {
		position: relative;
		width: 80px;
	}
	/*#closebanner {
        position: absolute;
        top:-7px;
        right: -7px;
        display: block;
        height: 20px;
        width: 20px;
        background: url('../image/float_close.png') no-repeat 0 0;
		background-size: 20px;
        cursor: pointer;
        text-indent: -9000px;
        z-index: 10;
    }*/
	.ban__fix__sp {
		display: none;
	}
}
/*フロートバナー*/

/* =========================================================
   07. 調整
========================================================= */

.mb150 {
	margin-bottom: 150px !important;
}
@media screen and (max-width: 768px) {
	.mb150 {
		margin-bottom: 25vw !important;
	}
}

#survey .topic-content > p {
	text-align: center;
	margin-top: 50px;
	font-size:12px;
}

/* ハンバーガーメニュー：「+」を「>」に変更 */
@media screen and (max-width: 768px) {
	.js-already-flexBox .l-hdr__navTtl::after {
		top: 55%;
    	transform: translateY(-50%) rotate(-30deg);!important;
		right: 15rem;
  	}
	.js-already-flexBox .l-hdr__navTtl::before {
		top: 45%;
    	transform: translateY(-50%) rotate(30deg);!important;
		right: 15rem;
  	}
	.l-hdr__nav {
    	margin-top: 0!important;
  	}
}


.mv2026__head,
.mv2026__copy {
	opacity: 0;
	transform: translateY(18px);
	animation: heroFadeUp 0.8s ease forwards;
}

.mv2026__copy {
	animation-delay: 0.18s;
}

@keyframes heroFadeUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {

	.mv2026__head,
	.mv2026__copy {
		opacity: 1;
		transform: none;
		animation: none;
	}
}

.red {
	color: #f00;
}
