/* =========================================================
   ファインモータースクール  -  lower.css
   3階層目ページ固有スタイル（外注コーディング範囲）
   規約：BEM（block__element--modifier）× lower_snake_case
   ・ブロック名はページ略称を接頭辞にする（例 .rakueco_intro, .csr_gallery__item）
   ・共通パーツ（common.css のクラス）は名前を変えずそのまま使用
   ・元フラグメント: _dev/_css_*.css（統合は _dev/_merge_lower_css.py）
   ========================================================= */


/* =========================================================
   ▼▼▼ グループ: ui（_css_ui.css） ▼▼▼
   ========================================================= */

/* モーダル基盤は css/common.css へ移動（全ページ共通UIのため） */

/* ===== 車種の料金ページ ⇄ ご入校の流れ の相互リンク（共通小部品） ===== */
.cross_link {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin: 0;
}
.cross_link a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 2px solid var(--orange);
	border-radius: 999px;
	color: var(--orange);
	font-weight: 700;
	font-size: 1.5rem;
	padding: 14px 32px;
}
.cross_link a::after {
	content: "";
	width: 7px;
	height: 7px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
}
.cross_link a:hover {
	background: var(--orange);
	color: #fff;
}
.cross_link_sec {
	padding-block: 0 48px;
}

@media (max-width: 767px) {
	.cross_link_sec a {
		width: 100%;
		justify-content: space-between;
	}
}


/* =========================================================
   ▼▼▼ グループ: aboutus（_css_aboutus.css） ▼▼▼
   ========================================================= */

/* =========================================================
   aboutus系 3階層ページ用CSS（_css_aboutus.css）
   対象: aboutus_rakueco / aboutus_csr / aboutus_instructor /
         aboutus_service
   ※ Figmaデザイン（SP 440px）準拠。PCは既存2階層目の文法で拡張
   ※ 色・余白は common.css の :root トークンを使用
   ========================================================= */

/* ▼ aboutus共通：英字ブロックラベル（Figmaはピンクの縦棒＋英字） */
.block-label--pink::before {
	background: var(--pink);
}
.block-label--pink span {
	font-family: var(--font-en);
}

/* ▼ aboutus共通：導入（Point）セクション */
.intro_section {
	padding-top: 40px;
	padding-bottom: 100px;
}

.intro_section .container::before{
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
}
/* ▼ 楽エコ教習（aboutus_rakueco） */

/* --- 導入（Point） --- */
.rakueco_intro {
	padding-top: 40px;
	padding-bottom: 0;
}
.rakueco_intro .block-label{
	margin-top: 0;
}
.rakueco_intro .container {
	position: relative;
}

.rakueco_intro .container > * {
	position: relative;
}
.rakueco_intro__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 4rem;
	line-height: 1.4;
	color: var(--ink);
	margin-top: 20px;
}
.rakueco_intro__lead {
	margin-top: 40px;
	max-width: 800px;
	font-size: 1.5rem;
	line-height: 1.9;
	padding-bottom: 100px;
}
.rakueco_intro__lead p{
	font-weight: 500;
}
.rakueco_intro__lead p + p {
	margin-top: 20px;
}

/* --- ファインの おもいやり＝楽エコ / 楽エコを学ぶには --- */
.rakueco_omoiyari {
	padding-bottom: 80px;
}

.rakueco_omoiyari,
.rakueco_learn {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 56px;
}
.rakueco_omoiyari__img {
	width: 400px;
	max-width: 100%;
	height: auto;
	flex-shrink: 0;
}
.rakueco_learn__img {
	width: 420px;
	max-width: 100%;
	height: auto;
	flex-shrink: 0;
	margin-top: 25px;
}
.rakueco_omoiyari__body,
.rakueco_learn__body {
	flex: 1;
	font-size: 1.5rem;
	line-height: 1.9;
}

.rakueco_omoiyari__body p {
	font-weight: 500;
}

.rakueco_omoiyari__body p + p,
.rakueco_learn__body p + p {
	margin-top: 20px;
}
.rakueco_omoiyari__title {
	font-family: var(--font-zen);
	font-weight: 400;
	font-size: 3.6rem;
	line-height: 1.3;
	color: var(--orange);
	margin-bottom: 28px;
}
.rakueco_omoiyari__title span {
	display: block;
	font-size: 2.4rem;
	color: var(--ink);
	font-weight: 400;
}
.rakueco_learn__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--orange);
	margin-bottom: 28px;
}

/* --- Check（35,000人突破） --- */
.rakueco_check {
	position: relative;
	max-width: 800px;
	margin: 80px auto 0;
	padding: 0 24px 32px;
	border: 2px solid var(--orange-2);
	background: var(--bg);
}
.rakueco_check__label {
	position: absolute;
	top: -16px;
	left: 14px;
	padding: 2px 10px;
	background: var(--bg);
	font-family: var(--font-en);
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.2;
	color: var(--orange);
}
.rakueco_check > img {
	width: 100%;
	height: auto;
}
.rakueco_check .center {
	margin-top: 32px;
}
.rakueco_check__btn {
	padding: 16px 44px;
}

/* --- 楽エコ10か条（横並びカード・カルーセル） --- */
.rakueco_point {
	padding-top: 70px;
	padding-bottom: 0;
}
.rakueco_point .block-label.block-label--pink{
	margin-top: 0;
}
.rakueco_point__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--ink);
}
.rakueco_point__title b {
	font-size: 6.4rem;
	color: var(--orange);
}
.rakueco_point__lead {
	margin-top: 24px;
	font-size: 1.6rem;
	line-height: 1.7;
}
.rakueco_point__slider {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 20px;
}
.rakueco_point__list {
	display: flex;
	gap: 30px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	list-style: none;
	padding: 70px 4px 30px;
}
.rakueco_point__card {
	position: relative;
	flex: 0 0 300px;
	scroll-snap-align: start;
	background: var(--bg);
	border: 1px solid var(--orange-2);
	border-radius: var(--radius-lg);
	padding: 40px 20px 30px;
	box-shadow: var(--shadow-sm);
}
.rakueco_point__ghost {
	position: absolute;
	top: -52px;
	right: 6px;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 20rem;
	line-height: 1;
	color: #eee;
}
.rakueco_point__badge,
.rakueco_point__head,
.rakueco_point__text {
	position: relative;
}
.rakueco_point__badge {
	display: inline-block;
	background: var(--ink);
	color: var(--white);
	font-size: 1.1rem;
	line-height: 1;
	padding: 6px 10px;
	border-radius: 999px;
	margin-bottom: 32px;
}
.rakueco_point__head {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	line-height: 1.3;
	color: var(--ink);
	margin-bottom: 28px;
}
.rakueco_point__head em {
	font-style: normal;
	color: var(--orange);
}
.rakueco_point__text {
	font-size: 1.3rem;
	line-height: 1.9;
}
.rakueco_point__text em {
	font-style: normal;
	color: var(--orange);
}
.rakueco_point__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	margin-top: 10px;
}
.rakueco_point__arrow {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: var(--bg);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
	color: var(--ink);
	font-size: 20px;
	cursor: pointer;
	transition: .2s;
}
.rakueco_point__arrow:hover {
	color: var(--orange);
}
.rakueco_point__dots {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--bg);
	border-radius: 999px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .3);
	padding: 14px 22px;
}
.rakueco_point__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: #ddd;
	cursor: pointer;
	transition: .2s;
}
.rakueco_point__dot.is-active {
	background: var(--muted);
}

/* --- 楽エコのメリット --- */
.rakueco_merit {
	padding-top: 70px;
	padding-bottom: 0;
}
.rakueco_merit .block-label {
	margin-top: 0;
}
.rakueco_merit p{
	font-weight: 500;
}

.rakueco_merit__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--ink);
}
.rakueco_merit__title em {
	font-style: normal;
	color: var(--orange);
	font-weight: bold;
}
.rakueco_merit__list {
	display: flex;
	flex-direction: column;
	gap: 80px;
	margin-top: 40px;
}
.rakueco_merit__item {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 48px;
}
.rakueco_merit__item::before {
	content: "";
	position: absolute;
	right: -20px;
	top: 50%;
	transform: translateY(-50%);
	width: 90%;
	height: 300px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
}
.rakueco_merit__item:nth-child(even) {
	flex-direction: row-reverse;
}
.rakueco_merit__img {
	position: relative;
	width: 46%;
	aspect-ratio: 600 / 390;
	object-fit: cover;
	border-radius: 8px;
	flex-shrink: 0;
}
.rakueco_merit__body {
	position: relative;
	flex: 1;
	font-size: 1.5rem;
	line-height: 1.9;
}
.rakueco_merit__body > p + p {
	margin-top: 16px;
}
.rakueco_merit__head {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.4;
	color: var(--ink);
	margin-bottom: 32px;
}
.rakueco_merit__head em {
	font-style: normal;
	color: var(--orange);
	font-weight: bold;
}

@media (max-width: 1023px) {
	.rakueco_intro__title {
		font-size: 3.6rem;
	}
	.rakueco_omoiyari,
	.rakueco_learn {
		flex-direction: column;
		align-items: center;
		gap: 40px;
	}
	.rakueco_omoiyari__body,
	.rakueco_learn__body {
		width: 100%;
	}
	.rakueco_merit__item,
	.rakueco_merit__item:nth-child(even) {
		flex-direction: column;
		gap: 32px;
	}
	.rakueco_merit__img {
		width: 100%;
	}
}
@media (max-width: 767px) {
	.intro_section .container::before {
		top: 30px;
		right: 0;
		width: 85%;
		height: 400px;
	}
	.rakueco_intro{
		padding-top: 20px;
	}
	.rakueco_intro .block-label--pink {
		margin-top: 0;
	}
	.rakueco_intro__title {
		font-size: 3.2rem;
		line-height: 1.3;
	}
	.rakueco_intro__lead {
		margin-top: 32px;
		font-size: 1.4rem;
		padding-bottom: 100px;
	}
	.rakueco_omoiyari__title {
		margin-bottom: 20px;
	}
	.rakueco_omoiyari__body,
	.rakueco_learn__body {
		font-size: 1.4rem;
	}
	.rakueco_omoiyari__body,
	.rakueco_learn__body p{
		font-weight: 500;
	}
	.rakueco_check {
		margin-top: 56px;
		padding: 30px 10px 24px;
		margin-bottom: 80px;
	}
	.rakueco_point {
		padding-top: 0;
		padding-bottom: 0;
	}
	.rakueco_point .block-label.block-label--pink{
		margin-top: 0;
	}
	.rakueco_point .container {
		margin-bottom: 50px;
	}
	.rakueco_point__slider {
		margin-bottom: 80px;
	}
	.rakueco_point__lead {
		font-size: 1.5rem;
	}
	.rakueco_point__list {
		gap: 20px;
		padding-top: 42px;
	}
	.rakueco_merit {
		padding: 0;
	}
	.rakueco_merit__list {
		gap: 60px;
	}
	.rakueco_merit__item::before {
		width: 95%;
		height: 500px;
		bottom: 0;
	}
	.rakueco_merit__head {
		margin-bottom: 20px;
	}
	.rakueco_merit__body {
		font-size: 1.4rem;
	}
}

/* ▼ ファインの取り組み（aboutus_csr） */

/* --- 導入（Point） --- */
.csr_intro .container {
	position: relative;
}
.csr_intro .container > * {
	position: relative;
}
.csr_intro__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 4rem;
	line-height: 1.4;
	color: var(--ink);
	margin-top: 20px;
}
.csr_intro__lead {
	margin-top: 40px;
	max-width: 800px;
	font-size: 1.5rem;
	line-height: 1.9;
}
.csr_intro__lead p {
	font-weight: 500;
}
.csr_intro__lead p + p {
	margin-top: 20px;
}
.csr_intro__lead em {
	font-style: normal;
	color: var(--orange);
}
.csr_intro__circles {
	width: 100%;
	max-width: 560px;
	height: auto;
	margin: 56px auto 0;
}

/* --- カテゴリ共通（横並びカード） --- */
.csr_cat {
	padding-top: 0;
	padding-bottom: 50px;
}
.csr_cat .block-label--pink{
	margin-top: 0;
	margin-bottom: 26px;
}
.csr_cat__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 40px;
}
.csr_cat__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.4;
	color: var(--ink);
}
.csr_cat__title em {
	font-style: normal;
	color: var(--orange);
	font-size: 3.6rem;
}
.csr_cat__icon {
	height: 90px;
	width: auto;
}
.csr_cards {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 20px;
}
.csr_cards__list {
	display: flex;
	align-items: stretch; /* 行内のカード高さを統一 */
	gap: 30px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	list-style: none;
	padding: 46px 4px 24px;
}
.csr_card {
	flex: 0 0 320px;
	display: flex;
	flex-direction: column;
	background: var(--bg);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	scroll-snap-align: start;
}
/* 画像＋下からの白グラデにタイトルが重なる構造（校舎案内カード同等の見た目） */
.csr_card__pic {
	position: relative;
}
.csr_card__pic::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100px;
	background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
}
.csr_card__img {
	width: 100%;
	height: 216px;
	object-fit: cover;
	display: block;
}
.csr_card__img--contain {
	object-fit: contain;
	background: var(--bg-soft);
}
.csr_card__body {
	position: relative;
	display: flex;
	flex-direction: column;
	flex: 1;
	margin-top: -22px;
	padding: 0 17px 26px;
}
.csr_card__en {
	font-family: var(--font-en);
	font-weight: 700;
	font-size: 1.4rem;
	letter-spacing: .04em;
	line-height: 1.2;
	color: var(--orange);
	margin-bottom: 8px;
}
.csr_card__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	line-height: 1.3;
	color: var(--ink);
	margin-bottom: 14px;
}
.csr_card__text {
	flex: 1;
	font-size: 1.3rem;
	line-height: 1.9;
	font-weight: 500;
}
.csr_card__btn {
	align-self: flex-start;
	margin-top: 24px;
	padding: 12px 34px;
}

/* --- 受賞歴 --- */
.csr_award_sec__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--orange);
}
.csr_award {
	position: relative;
	margin-top: 48px;
}
.csr_award_sec {
	padding-top: 0;
}
.csr_award_sec .block-label {
	margin-top: 0;
	margin-bottom: 54px;
}
.csr_award.is-collapsed {
	max-height: 620px;
	overflow: hidden;
}
.csr_award.is-collapsed::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 160px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--bg) 90%);
}
.csr_award__list {
	list-style: none;
	position: relative;
	padding-left: 40px;
}
.csr_award__list::before {
	content: "";
	position: absolute;
	left: 3px;
	top: 8px;
	bottom: 8px;
	width: 1px;
	background: var(--line);
}
.csr_award__item {
	position: relative;
	padding-bottom: 30px;
}
.csr_award__item:last-child {
	padding-bottom: 0;
}
.csr_award__item::before {
	content: "";
	position: absolute;
	left: -40px;
	top: 8px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--orange);
}
.csr_award__year {
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.4;
	margin-bottom: 8px;
}
.csr_award__body {
	font-size: 1.4rem;
	line-height: 1.9;
}
.csr_award__body a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.csr_award__body a:hover {
	color: var(--orange);
}
.csr_award__more {
	padding: 14px 44px;
}

@media (max-width: 1023px) {
	.csr_intro__title {
		font-size: 3.6rem;
	}
	.csr_cat__icon {
		height: 80px;
	}
}
@media (max-width: 767px) {
	.section.csr_intro.intro_section {
		padding-bottom: 36px;
	}
	.csr_intro__title {
		font-size: 3.2rem;
		line-height: 1.3;
	}
	.csr_intro__lead {
		margin-top: 32px;
		font-size: 1.4rem;
	}
	.csr_intro__circles {
		margin-top: 40px;
	}
	.csr_cat__head {
		justify-content: space-between;
		gap: 16px;
	}
	.csr_cat__title {
		font-size: 2.4rem;
	}
	.csr_cat__icon {
		height: 70px;
	}
	.csr_cards__list {
		gap: 20px;
	}
	.csr_award {
		margin-top: 32px;
	}
	.csr_award_sec{
		padding-bottom: 0;
	}
	.csr_award.is-collapsed {
		max-height: 560px;
	}
}

/* ▼ 質の高いサポーター（aboutus_instructor） */

/* --- Pick up（サポーター横並びカード） --- */
.instructor_pickup .block-label {
	margin-top: 0;
}
.instructor_pickup__wrap {
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 20px;
}
.instructor_pickup__list {
	display: flex;
	gap: 29px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	list-style: none;
	padding: 4px 4px 24px;
}
.instructor_pickup__card {
	position: relative;
	flex: 0 0 240px;
	height: 330px;
	border-radius: var(--radius-lg);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 22px 17px;
	scroll-snap-align: start;
}
.instructor_pickup__card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, rgba(0, 0, 0, .5) 20%, rgba(0, 0, 0, 0) 44%);
}
.instructor_pickup__body {
	position: relative;
	color: var(--white);
}
.instructor_pickup__badge {
	display: inline-block;
	background: var(--white);
	color: var(--ink);
	font-family: var(--font-en);
	font-size: 1rem;
	line-height: 1.3;
	padding: 3px 8px;
	border-radius: 999px;
}
.instructor_pickup__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.3;
	margin-top: 6px;
	text-shadow: 0 0 4px rgba(0, 0, 0, .25);
}
.instructor_pickup__award {
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.6;
	margin-top: 12px;
	text-shadow: 0 0 4px rgba(0, 0, 0, .25);
}

/* --- サポーター紹介 --- */
.instructor_intro {
	max-width: 800px;
}
.instructor_intro__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--ink);
}
.instructor_intro__text {
	margin-top: 24px;
	font-size: 1.5rem;
	line-height: 1.9;
	font-weight: 500;
}
.instructor_intro__btns {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}
.instructor_intro__btn {
	justify-content: space-between;
	min-width: 275px;
	padding: 16px 30px;
}
.instructor_intro__btn::after{
	content: "";
	background-image: url(../images/icons/ic-arrow.svg);
	width: 6px;
	height: 14px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* --- こんな不安はありませんか？ --- */
.instructor_worry {
	padding-top: 0;
}
.instructor_worry .container {
	position: relative;
}
.instructor_worry .container::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
}
.instructor_worry .container > * {
	position: relative;
}
.instructor_worry__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.3;
	color: var(--ink);
	margin-top: 16px;
}
.instructor_worry__list {
	list-style: none;
	max-width: 800px;
	margin-top: 28px;
	padding: 24px 28px;
	background: #f3f3f3;
	border-radius: var(--radius-lg);
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.4;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-weight: bold;
}
.instructor_worry__answer {
	max-width: 800px;
	margin-top: 28px;
	font-size: 1.5rem;
	line-height: 1.9;
	font-weight: 500;
}

/* --- point（特長4つ） --- */
.instructor_point {
	padding-top: 0;
}
.instructor_point .block-label--pink {
	margin-top: 0;
}
.instructor_point__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 64px 48px;
}
.instructor_point__img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 10px;
}
.instructor_point__body {
	margin-top: 20px;
	font-size: 1.5rem;
	line-height: 1.9;
}
.instructor_point__body  p {
	font-weight: 500;
}
.instructor_point__body > p + p {
	margin-top: 10px;
}
.instructor_point__head {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.4;
	color: var(--ink);
	margin: 12px 0 20px;
}
.instructor_point__head--two span {
	display: block;
	font-size: 2rem;
}

@media (max-width: 1023px) {
	.instructor_point__list {
		gap: 48px 32px;
	}
	.instructor_point__head {
		font-size: 2.4rem;
	}
	.instructor_point__head--two span {
		font-size: 1.8rem;
	}
}
@media (max-width: 767px) {
	.instructor_pickup {
		padding-top: 40px;
		padding-bottom: 80px;
	}
	.instructor_pickup__list {
		gap: 20px;
	}
	.instructor_intro__text {
		font-size: 1.4rem;
	}
	.instructor_pickup__wrap {
		margin-bottom: 70px;
	}
	.instructor_worry .container::before {
		top: 200px;
		right: 0;
		width: 85%;
		height: 450px;
		z-index: -1;
	}
	.instructor_worry__list {
		padding: 20px;
		font-size: 1.4rem;
	}
	.instructor_worry__answer {
		font-size: 1.4rem;
	}
	.instructor_point__list {
		grid-template-columns: 1fr;
		gap: 48px;
	}
	.instructor_point__body {
		font-size: 1.4rem;
	}
	.instructor_point__head {
		font-size: 2.8rem;
	}
	.instructor_point__head--two {
		font-size: 3.2rem;
	}
	.instructor_point__head--two span {
		font-size: 2rem;
	}
}

/* ▼ 安心のサービス（aboutus_service） */

/* --- 導入（support） --- */
.service_intro .container {
	position: relative;
	padding-bottom: 73px;
}
.service_intro .container::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 200px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
}
.service_point .block-label--pink {
	margin-top: 0;
	margin-bottom: 36px;
}
.service_intro .container > * {
	position: relative;
}
.service_intro__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--ink);
	margin-top: 16px;
}
.service_intro__lead {
	margin-top: 28px;
	max-width: 800px;
	font-size: 1.5rem;
	line-height: 1.9;
}

/* --- point（サービス一覧） --- */
.service_point {
	padding-top: 0;
}
.service_point__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 64px 48px;
}
.service_point__imgwrap {
	position: relative;
}
.service_point__img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	border-radius: 10px;
}
.service_point__hot {
	position: absolute;
	top: -36px;
	right: 6px;
	display: grid;
	place-items: center;
	width: 86px;
	height: 86px;
	border-radius: 50%;
	background: var(--orange);
	color: var(--white);
	font-family: var(--font-en);
	font-weight: 700;
	font-size: 1.8rem;
	letter-spacing: .05em;
}
.service_point__body {
	margin-top: 20px;
	font-size: 1.5rem;
	line-height: 1.9;
}
.service_point__body  p {
	font-weight: 500;
}
.service_point__head {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.4;
	color: var(--ink);
	margin: 12px 0 20px;
}
.service_point__head--two span {
	display: block;
	font-size: 2rem;
}
.service_point__btn {
	margin-top: 24px;
	min-width: 220px;
	justify-content: space-between;
	padding: 16px 30px;
}

.service_point__btn::after{
	content: "";
	background-image: url(../images/icons/ic-arrow.svg);
	width: 8px;
	height: 16px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

@media (max-width: 1023px) {
	.service_point__list {
		gap: 48px 32px;
	}
	.service_point__head {
		font-size: 2.4rem;
	}
	.service_point__head--two span {
		font-size: 1.8rem;
	}
}
@media (max-width: 767px) {
	.service_intro {
		padding-top: 40px;
		padding-bottom: 40px;
	}
	.service_intro .container {
		padding-bottom: 0;
	}
	.service_intro .container::before {
		top: 30px;
		right: 0;
		width: 85%;
		height: 400px;
	}
	.service_intro__lead {
		font-size: 1.4rem;
	}
	.service_point__list {
		grid-template-columns: 1fr;
		gap: 56px;
	}
	.service_point__body {
		font-size: 1.4rem;
	}
	.service_point__head {
		font-size: 2.8rem;
	}
	.service_point__head--two span {
		font-size: 2rem;
	}
	.service_point__btn {
		min-width: 200px;
	}
}

/* ▼ 楽エコ10か条 No.6 注意事項（クライアント要望7/21: ポップアップ表示） */
.rakueco_point__note_btn {
	margin-top: 12px;
	background: none;
	border: none;
	padding: 0;
	color: var(--orange);
	font-size: 1.3rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
}
.rakueco_point__note_modal h3 {
	font-size: 1.8rem;
	font-weight: 700;
	margin-bottom: 16px;
}
.rakueco_point__note_modal p {
	font-size: 1.4rem;
	line-height: 1.8;
	margin-bottom: 12px;
}
.rakueco_point__note_modal ul {
	margin: 0 0 16px;
	padding-left: 1.2em;
}
.rakueco_point__note_modal ul li {
	list-style: disc;
	font-size: 1.4rem;
	line-height: 1.8;
	margin-bottom: 6px;
}


/* =========================================================
   ▼▼▼ グループ: csr_detail（_css_csr_detail.css） ▼▼▼
   ========================================================= */

/* =========================================================
   ファインの取り組み 詳細ページ用CSS（_css_csr_detail.css）
   対象: csr_festival / csr_finecup / csr_forest / csr_marubai /
         csr_athletesupport / csr_marukuru / csr_youpure / csr_50thevent
   規約: BEM×lower_snake_case・PC基準（max-widthで縮小）
   ※ 色・余白は common.css の :root トークンを使用
   ========================================================= */

/* ▼ 共通（csrd_ = csr detail 共通部品） */
.csrd_intro {
	padding-top: 40px;
	padding-bottom: 0;
}
.csrd_intro .block-label {
	margin-top: 0;
}
.csrd_intro__lead {
	font-size: 1.5rem;
	line-height: 2;
	max-width: 800px;
}
.csrd_intro__lead + .csrd_intro__lead {
	margin-top: 16px;
}
.csrd_main_img {
	display: block;
	max-width: 740px;
	width: 100%;
	margin: 40px auto 0;
}
.csrd_title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1.4;
	color: var(--ink);
	margin-bottom: 24px;
}
.csrd_note {
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--ink-2);
	margin-top: 12px;
}

/* 概要テーブル（開催概要・戦績など） */
.csrd_table_wrap {
	overflow-x: auto;
}
.csrd_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.4rem;
	line-height: 1.8;
	background: #fff;
}
.csrd_table th,
.csrd_table td {
	border: 1px solid var(--line);
	padding: 14px 18px;
	text-align: left;
	vertical-align: top;
}
.csrd_table th {
	background: var(--bg-soft);
	font-weight: 700;
	white-space: nowrap;
	width: 180px;
}
.csrd_table table {
	width: 100%;
	border-collapse: collapse;
}
.csrd_table table th,
.csrd_table table td {
	border: 1px solid var(--line);
	padding: 8px 12px;
	width: auto;
	white-space: normal;
}

/* 写真ギャラリー */
.csrd_photos {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-top: 40px;
}
.csrd_photos li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* お問い合わせ・お申し込みボックス */
.csrd_contact {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 32px 40px;
	margin-top: 40px;
	text-align: center;
}
.csrd_contact__title {
	font-weight: 700;
	font-size: 1.8rem;
	margin-bottom: 16px;
}
.csrd_contact__tel {
	display: block;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 2.8rem;
	color: var(--orange);
	margin: 8px 0;
}
.csrd_contact p {
	font-size: 1.4rem;
	line-height: 1.9;
}
.csrd_contact .btn {
	margin-top: 8px;
}

/* 一覧へ戻る */
.csrd_back {
	padding-top: 0;
}
.csrd_back .btn {
	padding: 14px 60px;
}

/* ▼ 親子交通安全フェスティバル（csr_festival） */
.festival_school {
	padding-top: 0;
}
.festival_school__grid {
	display: flex;
	gap: 32px;
	align-items: flex-start;
}
.festival_school__main {
	flex: 1;
	min-width: 0;
}
.festival_school__photo {
	width: 180px;
	flex-shrink: 0;
}
.festival_school__photo img {
	width: 100%;
}
.festival_dl {
	margin-top: 8px;
}
.festival_dl > div {
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
	font-size: 1.4rem;
	line-height: 1.9;
}
.festival_dl dt {
	font-weight: 700;
}
.festival_dl__img {
	max-width: 408px;
	width: 100%;
	margin-top: 8px;
}
.festival_access {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-top: 24px;
}
.festival_access__map iframe {
	width: 292px;
	height: 168px;
	border: 0;
}
.festival_access__tel {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 2.4rem;
	color: var(--orange);
	line-height: 1.2;
}
.festival_access__addr {
	font-size: 1.4rem;
	line-height: 1.9;
	margin-top: 8px;
}

/* ▼ ファインカップ（csr_finecup） */
.finecup_logo {
	display: block;
	max-width: 600px;
	width: 100%;
	margin: 0 auto 40px;
}

/* ▼ 森づくりプロジェクト（csr_forest） */
.forest_message {
	padding-top: 0;
}
.forest_message__body {
	display: flex;
	gap: 40px;
	align-items: flex-start;
}
.forest_message__body p {
	flex: 1;
	font-size: 1.5rem;
	line-height: 2;
}
.forest_message__img {
	max-width: 400px;
	width: 40%;
}

/* ▼ まるごとバイクフェスティバル（csr_marubai） */
.marubai_mv img {
	display: block;
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
}
.marubai_events {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}
.marubai_event {
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	display: flex;
	flex-direction: column;
}
/* 画像＋下からの白グラデにタイトルが重なる構造（校舎案内カード同等の見た目） */
.marubai_event__pic {
	position: relative;
	aspect-ratio: 3 / 2;
}
.marubai_event__pic img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.marubai_event__pic::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100px;
	background: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
}
.marubai_event__title {
	color: var(--ink);
	font-weight: 700;
	font-size: 1.7rem;
	line-height: 1.5;
}
.marubai_event__body {
	position: relative;
	margin-top: -22px;
	padding: 0 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}
.marubai_event__text {
	font-size: 1.4rem;
	line-height: 1.8;
}
.marubai_event__caption {
	font-size: 1.2rem;
	line-height: 1.7;
	color: var(--ink-2);
}
.marubai_event__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: auto;
}
.marubai_tag {
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var(--pink);
	color: var(--pink);
}
.marubai_tag--fill {
	background: var(--pink);
	color: #fff;
}
/* 詳細モーダル（dialog / 共通 .modal を土台に拡張） */
.marubai_detail_btn {
	align-self: flex-start;
	background: none;
	border: none;
	padding: 0;
	color: var(--orange);
	font-size: 1.3rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.marubai_detail_modal {
	width: min(640px, calc(100vw - 40px));
}
.marubai_detail_modal__inner h3 {
	font-size: 1.8rem;
	font-weight: 700;
	margin-bottom: 16px;
	padding-right: 36px;
}
.marubai_detail_modal__inner p {
	font-size: 1.4rem;
	line-height: 1.8;
}
.marubai_detail_modal__inner p + p {
	margin-top: 12px;
}
.marubai_players {
	display: flex;
	gap: 16px;
	justify-content: center;
}
.marubai_player {
	flex: 1;
	min-width: 0;
	text-align: center;
}
.marubai_player img {
	max-width: 180px;
	width: 100%;
}
.marubai_player__name {
	font-weight: 700;
	font-size: 1.4rem;
	margin-top: 10px;
}
.marubai_player__name span {
	display: block;
	font-size: 1.1rem;
	font-weight: 500;
	color: var(--ink-2);
}
.marubai_reserve {
	text-align: center;
	margin-top: 48px;
}
.marubai_reserve__caption {
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.8;
}
.marubai_reserve__caption em {
	color: var(--pink);
	font-style: normal;
}
.marubai_reserve .btn {
	margin-top: 16px;
	padding: 16px 60px;
}
.marubai_org {
	padding-top: 0;
}
.marubai_org__group + .marubai_org__group {
	margin-top: 40px;
}
.marubai_org__title {
	font-weight: 700;
	font-size: 1.6rem;
	border-bottom: 2px solid var(--ink);
	padding-bottom: 8px;
	margin-bottom: 16px;
}
.marubai_org__list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	font-size: 1.4rem;
	line-height: 1.9;
}
.marubai_org__list a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.marubai_org__list a:hover {
	color: var(--orange);
}
.marubai_place__addr {
	font-size: 1.5rem;
	line-height: 2;
	margin-top: 8px;
}
.marubai_place__tel {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 2.6rem;
	color: var(--orange);
}
.marubai_place__attention {
	border: 2px solid var(--pink);
	border-radius: 8px;
	padding: 16px 24px;
	margin-top: 24px;
	font-size: 1.4rem;
	line-height: 1.9;
}
.marubai_place__attention a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ▼ プロスポーツ選手支援（csr_athletesupport） */
.athlete_about {
	padding-top: 0;
}
.athlete_about__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.2rem;
	margin-bottom: 12px;
}
.athlete_about p {
	font-size: 1.5rem;
	line-height: 2;
}
.athlete_about a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.athlete {
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--shadow-sm);
	padding: 40px;
	margin-top: 32px;
}
/* プロフィール（顔写真＋スペック表＋紹介文）を左、アクション写真を右に配置 */
.athlete__profile {
	display: flex;
	gap: 32px;
	align-items: flex-start;
}
.athlete__profile_main {
	flex: 1;
	min-width: 0;
}
.athlete__bike {
	width: 280px;
	flex-shrink: 0;
	margin: -56px -64px 0 0;
}
.athlete__bike img {
	width: 100%;
	display: block;
}
.athlete__class {
	display: inline-block;
	font-weight: 700;
	font-size: 1.3rem;
	color: var(--pink);
	border: 1px solid var(--pink);
	border-radius: 999px;
	padding: 4px 14px;
	margin-bottom: 12px;
}
.athlete__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1.3;
}
.athlete__name ins {
	text-decoration: none;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.4rem;
	color: var(--ink-2);
	margin-left: 12px;
}
.athlete__intro {
	display: flex;
	gap: 24px;
	align-items: flex-start;
	margin-top: 20px;
}
.athlete__face {
	width: 190px;
	flex-shrink: 0;
}
.athlete__intro .csrd_table_wrap {
	flex: 1;
	min-width: 0;
}
.athlete__intro .csrd_table th {
	width: 110px;
}
.athlete__text {
	font-size: 1.4rem;
	line-height: 1.9;
	margin-top: 20px;
}
.athlete__sub {
	font-weight: 700;
	font-size: 1.6rem;
	border-left: 4px solid var(--orange);
	padding-left: 10px;
	margin: 28px 0 14px;
}
.athlete__record {
	max-height: 420px;
	overflow-y: auto;
}
.athlete__comment {
	font-size: 1.4rem;
	line-height: 1.9;
	background: var(--bg-soft);
	border-radius: 6px;
	padding: 20px 24px;
}
.athlete_schedule {
	padding-top: 0;
}
.athlete_schedule__note {
	font-size: 1.4rem;
	margin-top: 16px;
}
.athlete_schedule__note a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.athlete_schedule .csrd_table {
	min-width: 560px;
}
.athlete_schedule .csrd_table th,
.athlete_schedule .csrd_table td {
	text-align: center;
	white-space: normal;
	width: auto;
}
.athlete_schedule .csrd_table td.l {
	text-align: left;
}

/* ▼ GoGo！クルマフェスティバル（csr_marukuru） */
.marukuru_partners {
	max-width: 520px;
	margin: 20px auto 0;
	text-align: center;
}
.marukuru_partners__label {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--muted);
	margin-bottom: 8px;
}
.marukuru_partners__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 18px;
	font-size: 1.3rem;
}
.marukuru_partners__list a {
	color: var(--orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.marukuru_main img {
	max-width: 520px;
}
.marukuru_privilege {
	margin-top: 16px;
}
.marukuru_privilege > div {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 20px 28px;
	font-size: 1.4rem;
	line-height: 1.9;
}
.marukuru_privilege > div + div {
	margin-top: 16px;
}
.marukuru_privilege dt {
	font-weight: 700;
	font-size: 1.6rem;
	color: var(--orange);
	margin-bottom: 6px;
}
.marukuru_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 24px;
}
.marukuru_grid img {
	width: 100%;
	display: block;
}
.marukuru_grid__wide {
	grid-column: 1 / -1;
}
.marukuru_service {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 24px;
}
.marukuru_service dl {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 20px 24px;
	font-size: 1.4rem;
	line-height: 1.8;
}
.marukuru_service dt {
	font-weight: 700;
	margin-bottom: 4px;
}
.marukuru_service dd {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--orange);
}
.marukuru_finepic {
	background: #fff;
	border: 2px solid var(--orange);
	border-radius: 8px;
	padding: 28px 32px;
	margin-top: 32px;
	display: flex;
	gap: 32px;
	align-items: flex-start;
}
.marukuru_finepic__main {
	flex: 1;
}
.marukuru_finepic__main img {
	max-width: 391px;
	width: 100%;
}
.marukuru_finepic__jouken {
	font-size: 1.4rem;
	line-height: 1.9;
	margin-top: 16px;
}
.marukuru_finepic__jouken span {
	display: block;
	font-size: 1.2rem;
	color: var(--ink-2);
	margin-top: 6px;
}
.marukuru_finepic__syumoku {
	width: 220px;
	flex-shrink: 0;
	background: var(--bg-soft);
	border-radius: 8px;
	padding: 16px 20px;
	font-weight: 700;
	font-size: 1.4rem;
}
.marukuru_finepic__syumoku p {
	font-weight: 500;
	line-height: 1.9;
	margin-top: 8px;
}

/* ▼ フリーマガジンへの寄稿（csr_youpure） */
.youpure_intro__note {
	font-size: 1.4rem;
	line-height: 1.9;
	margin-top: 16px;
}
.youpure_box {
	background: #fff;
	border-radius: 8px;
	box-shadow: var(--shadow-sm);
	padding: 32px 40px;
	margin-top: 40px;
	display: flex;
	gap: 40px;
	align-items: flex-start;
}
.youpure_box__body {
	flex: 1;
	font-size: 1.4rem;
	line-height: 1.9;
}
.youpure_box__title {
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.5;
	margin-bottom: 12px;
}
.youpure_box__body a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.youpure_box__org {
	margin-top: 16px;
}
.youpure_box__cover {
	width: 201px;
	flex-shrink: 0;
	text-align: center;
	font-size: 1.3rem;
	line-height: 1.8;
}
.youpure_box__cover img {
	width: 100%;
}
.youpure_box__cover a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.youpure_back {
	padding-top: 0;
}
.youpure_back__list {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 24px 16px;
	margin-top: 8px;
}
.youpure_back__item {
	text-align: center;
	font-size: 1.2rem;
	line-height: 1.7;
}
.youpure_back__item img {
	width: 100%;
	max-width: 133px;
}
.youpure_back__item p {
	margin-top: 6px;
}
.youpure_back__item a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.youpure_back__item a:hover {
	color: var(--orange);
}

/* ▼ 創立50周年記念イベント（csr_50thevent） */
.event50_main img {
	display: block;
	max-width: 640px;
	width: 100%;
	margin: 0 auto;
}

/* ▼ レスポンシブ */
@media (max-width: 1023px) {
	.marubai_events {
		grid-template-columns: repeat(2, 1fr);
	}
	.youpure_back__list {
		grid-template-columns: repeat(4, 1fr);
	}
	.athlete {
		padding: 20px;
	}
	.athlete__profile {
		gap: 24px;
	}
	.athlete__intro {
		flex-direction: column;
	}
	.athlete__bike {
		width: 220px;
		margin: -24px -40px 0 0;
	}
}
@media (max-width: 767px) {
	.csrd_title {
		font-size: 2.1rem;
	}
	.csrd_table th,
	.csrd_table td {
		display: block;
		width: auto;
		border-top: 0;
	}
	.csrd_table tr:first-child th {
		border-top: 1px solid var(--line);
	}
	.csrd_table table th,
	.csrd_table table td {
		display: table-cell;
		border: 1px solid var(--line);
	}
	.csrd_photos {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}
	.csrd_contact {
		padding: 24px 20px;
	}
	.festival_school__grid {
		flex-direction: column;
	}
	.festival_school__photo {
		width: 60%;
		margin: 0 auto;
	}
	.festival_access {
		flex-direction: column;
	}
	.festival_access__map iframe {
		width: 100%;
	}
	.forest_message__body {
		flex-direction: column;
	}
	.forest_message__img {
		width: 100%;
		margin: 0 auto;
	}
	.marubai_events {
		grid-template-columns: 1fr;
	}
	/* プロフィールはSPも横並び（顔写真は小さく左） */
	.athlete__intro {
		flex-direction: row;
		gap: 14px;
	}
	.athlete__face {
		width: 110px;
		margin: 0;
	}
	.athlete__profile {
		flex-direction: column;
	}
	.athlete__bike {
		width: 60%;
		max-width: 240px;
		margin: 0 auto;
	}
	.marukuru_grid,
	.marukuru_service {
		grid-template-columns: 1fr;
	}
	.marukuru_finepic {
		flex-direction: column;
		padding: 20px;
	}
	.marukuru_finepic__syumoku {
		width: 100%;
	}
	.youpure_box {
		flex-direction: column;
		padding: 24px 20px;
	}
	.youpure_box__cover {
		margin: 0 auto;
	}
	.youpure_back__list {
		grid-template-columns: repeat(3, 1fr);
	}
}


/* =========================================================
   ▼▼▼ グループ: school（_css_school.css） ▼▼▼
   ========================================================= */

/* ▼ 校舎案内リニューアル版（Figma準拠）
   ・access_* … 校舎案内3ページ共通（school_ageo / school_nishiomiya / school_omiya）
   ・旧 school_* 系（_css_school_bus.css）とは独立。クラス名の重複なし */

/* ▼ about（導入）：見出し＋リード＋ドット背景 */
.access_about {
	position: relative;
	padding-top: 70px;
	padding-bottom: 80px;
}
.access_about::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
	z-index: -1;
}
.access_about .container {
	position: relative;
}
.access_about__catch {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.6rem;
	line-height: 1.4;
	color: var(--ink);
	margin: 16px 0 28px;
}
.access_about__lead {
	font-size: 1.5rem;
	line-height: 1.9;
	max-width: 900px;
	font-weight: 500;
}
.access_about__lead + .access_about__lead {
	margin-top: 1em;
}
/* SPのみ改行（Figmaの4行組み） */
.access_about__br {
	display: none;
}
/* 見出し内の強調（西大宮校：「さいたま市西区」をオレンジに） */
.access_about__em {
	color: var(--orange);
}

/* ▼ 取り扱いコース：白カード（オレンジ枠・角丸10px） */
.access_course .block-label {
	margin-top: 0;
}
.access_course__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.access_course__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 160px;
	padding: 14px 16px;
	background: #fff;
	border: 2px solid var(--orange);
	border-radius: 10px;
	transition: .2s;
	box-shadow: 0 3.429px 12px 0 rgba(0, 0, 0, 0.25);
}
.access_course__card:hover {
	background: #fff7f2;
}
.access_course__card img {
	width: 60px;
	height: 60px;
}
.access_course__name {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: .1em;
	color: var(--orange);
	white-space: nowrap;
	position: relative;
	padding-right: 16px;
}
.access_course__name::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	width: 4px;
	height: 9px;
	background-color: var(--orange);
	-webkit-mask-image: url(../images/icons/ic-arrow.svg);
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-image: url(../images/icons/ic-arrow.svg);
	mask-position: center;
	mask-size: contain;
	mask-repeat: no-repeat;
}

/* ▼ セクション共通の下余白 */
.access_course,
.access_school,
.access_contact,
.access_route,
.access_bus {
	padding-bottom: 40px;
}
.access_bus,
.access_route--last {
	padding-bottom: 96px;
}
.access_route {
	padding-bottom: 0;
}
.access_course{
	padding-bottom: 60px;
}

.access_school {
	padding-bottom:0;
}
.access_school .block-label {
	margin-top: 0;
}
.access_contact {
	padding-bottom: 0;
}


/* ▼ グレーボックス（校舎情報／お問い合わせ／アクセス／送迎バスで共通） */
.access_box {
	background: #f3f3f3;
	border-radius: 10px;
	padding: 30px 28px;
}
.access_box__row {
	display: flex;
	align-items: baseline;
	gap: 16px;
	padding-block: 20px;
}
.access_box__row:first-child {
	padding-top: 0;
}
.access_box__row:last-child {
	padding-bottom: 0;
}
.access_box__row + .access_box__row {
	border-top: 1px solid #d9d9d9;
}
.access_box__key {
	flex-shrink: 0;
	width: 180px;
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 20px;
	color: var(--ink);
}
.access_box__val {
	flex: 1;
	font-size: 1.4rem;
	line-height: 20px;
	color: var(--ink);
}
.access_box__val p {
	margin-bottom: 8px;
}
.access_box__note {
	display: inline-block;
	margin-top: 4px;
	font-size: 1.1rem;
	line-height: 1.6;
	color: var(--ink);
}
.access_box__list {
	list-style: disc;
	padding-left: 21px;
}
.access_box__list li {
	line-height: 20px;
	padding-block: 2px;
}
/* 公共交通機関（大宮校）：太字リスト＋下車案内のサブ行 */
.access_box__list--strong > li {
	font-weight: 700;
	padding-block: 4px;
}
.access_box__sub {
	font-weight: 400;
}
.access_box__lead {
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 20px;
	color: var(--ink);
	margin-bottom: 10px;
}
.access_box__tel {
	color: var(--ink);
}

/* ▼ お問い合わせ：ピンクの丸ボタン */
.access_contact__btnwrap {
	text-align: center;
	margin-top: 20px;
}
.access_contact__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 40px;
	min-width: 300px;
	padding: 18px 30px;
	background: var(--pink);
	border-radius: 50px;
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.2;
	color: #fff;
	transition: .2s;
	position: relative;
}
.access_contact__btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
	background-image: url(../images/icons/ic-arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
.access_contact__btn:hover {
	opacity: .85;
}

/* ▼ 地図（Googleマイマップ埋め込み） */
.access_map {
	margin-bottom: 16px;
	border-radius: 10px;
	overflow: hidden;
}
.access_map iframe {
	display: block;
	width: 100%;
	height: 480px;
	border: 0;
}

/* ▼ 送迎バス：路線リスト＋案内ボタン（白地・オレンジ枠） */
.access_bus__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 480px;
	margin-top: 20px;
	padding: 22px 30px;
	background: #fff;
	border: 2px solid var(--orange);
	border-radius: 40px;
	transition: .2s;
	position: relative;
}
.access_bus__btn:hover {
	background: #fff7f2;
}
.access_bus__btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
	background-color: var(--pink);
	-webkit-mask-image: url(../images/icons/ic-arrow.svg);
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-image: url(../images/icons/ic-arrow.svg);
	mask-position: center;
	mask-size: contain;
	mask-repeat: no-repeat;
}
.access_bus__btn_label {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--orange);
}
.access_bus__btn_label b {
	font-size: 1.8rem;
}
.access_bus__btn_label img {
	width: 28px;
	height: 28px;
}
/* 西大宮校はピンク配色 */
.access_bus__btn--pink {
	border-color: var(--pink);
}
.access_bus__btn--pink:hover {
	background: #fdf2f8;
}
.access_bus__btn--pink::after {
	color: var(--pink);
}
.access_bus__btn--pink .access_bus__btn_label {
	color: var(--pink);
}

/* =========================================================
   ▼ 入校説明会（school_schedule）… orient_*
   ========================================================= */
.orient_flow {
	padding-bottom: 65px;
}
.orient_flow__title,
.orient_cal__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1.4;
	color: var(--ink);
	margin-bottom: 8px;
}
.orient_flow__head {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--orange);
	margin: 28px 0 12px;
}
.orient_flow__head i {
	font-size: 22px;
	flex-shrink: 0;
}
.orient_flow__box {
	background: #f3f3f3;
	border-radius: 10px;
	padding: 22px 24px;
	font-size: 1.4rem;
	line-height: 1.8;
	max-width: 900px;
}
.orient_flow__case {
	font-weight: 700;
}
.orient_flow__case:not(:first-child) {
	margin-top: 14px;
}

/* ▼ スケジュール（校舎切替はラジオ＋CSSのみ） */
.orient_cal {
	padding-bottom: 40px;
}
.orient_cal .block-label {
	margin-top: 0;
}
.orient_cal__note {
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--orange);
	margin-bottom: 20px;
}
.orient_cal__radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.orient_cal__tabs {
	display: flex;
	gap: 28px;
	margin-bottom: 20px;
}
.orient_cal__tabs label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 1.4rem;
	color: var(--ink);
	cursor: pointer;
}
.orient_cal__mark {
	width: 18px;
	height: 18px;
	border: 2px solid #b5b5b5;
	border-radius: 50%;
	position: relative;
	flex-shrink: 0;
}
.orient_cal__mark::after {
	content: '';
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--orange);
	opacity: 0;
}
#orient_school_ageo:checked ~ .orient_cal__tabs label[for="orient_school_ageo"] .orient_cal__mark,
#orient_school_nishi:checked ~ .orient_cal__tabs label[for="orient_school_nishi"] .orient_cal__mark {
	border-color: var(--orange);
}
#orient_school_ageo:checked ~ .orient_cal__tabs label[for="orient_school_ageo"] .orient_cal__mark::after,
#orient_school_nishi:checked ~ .orient_cal__tabs label[for="orient_school_nishi"] .orient_cal__mark::after {
	opacity: 1;
}
.orient_cal__panel {
	display: none;
	background: #f3f3f3;
	border-radius: 10px;
	padding: 24px 20px;
}
#orient_school_ageo:checked ~ .orient_cal__panel--ageo,
#orient_school_nishi:checked ~ .orient_cal__panel--nishi {
	display: block;
}
.orient_cal__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 4px 14px;
	border-bottom: 1px solid #d9d9d9;
	margin-bottom: 4px;
}
.orient_cal__nav button {
	background: none;
	border: 0;
	font-size: 1.4rem;
	font-weight: 500;
	color: var(--ink);
	cursor: pointer;
	padding: 4px 6px;
}
.orient_cal__nav button:hover {
	color: var(--orange);
}
.orient_cal__month {
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--ink);
}
.orient_cal__scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.orient_cal__table {
	border-collapse: collapse;
	table-layout: fixed;
	width: max-content;
	min-width: 100%;
}
.orient_cal__table th,
.orient_cal__table td {
	min-width: 54px;
	padding: 14px 6px;
	text-align: center;
	font-size: 1.4rem;
	line-height: 1.3;
	color: var(--ink);
	border-left: 1px solid #d9d9d9;
}
.orient_cal__table th:first-child,
.orient_cal__table td:first-child {
	border-left: 0;
}
.orient_cal__table tbody tr {
	border-top: 1px solid #d9d9d9;
}
.orient_cal__table thead tr {
	border-top: 0;
}
.orient_cal__time_head,
.orient_cal__time {
	min-width: 76px;
	text-align: left;
	font-weight: 400;
	white-space: nowrap;
	position: sticky;
	left: 0;
	background: #f3f3f3;
}
.orient_cal__day {
	display: block;
	font-weight: 700;
}
.orient_cal__wd {
	display: block;
	font-size: 1.1rem;
	font-weight: 400;
}
.orient_cal__legend {
	margin-top: 18px;
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--ink);
}

/* ▼ まずはWeb申し込み（CTA） */
.orient_cta {
	padding-bottom: 50px;
}
.orient_cta__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0;
}
.orient_cta__body {
	flex-basis: 50%;
}
.orient_cta__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.6rem;
	line-height: 1.4;
	color: var(--orange);
	margin-bottom: 12px;
}
.orient_cta__text {
	font-size: 1.4rem;
	line-height: 1.8;
	margin-bottom: 24px;
}
.orient_cta__btns {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 16px;
}
.orient_cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 100%;
	max-width: 320px;
	padding: 16px 28px;
	border-radius: 50px;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.2;
	transition: .2s;
}
.orient_cta__btn ion-icon {
	font-size: 20px;
	flex-shrink: 0;
}
.orient_cta__btn--web {
	background: #fff;
	border: 1.5px solid var(--pink);
	color: var(--pink);
}
.orient_cta__btn--web:hover {
	background: var(--pink);
	color: #fff;
}
.orient_cta__btn--trial {
	background: var(--orange);
	color: #fff;
}
.orient_cta__btn--trial:hover {
	background: #d05a26;
}
.orient_cta__photo {
	width: 40%;
	height: auto;
	object-fit: contain;
}

/* =========================================================
   ▼ 教習無料体験（school_free_trial）… taiken_*
   ========================================================= */
/* 導入の不安チェックリスト（白カード） */
.taiken_check {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 560px;
	margin-top: 36px;
	padding: 28px 30px;
	background: #fff;
	border-radius: 10px;
	box-shadow: var(--shadow-sm);
}
.taiken_check li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--ink);
}
.taiken_check ion-icon {
	font-size: 22px;
	color: var(--orange);
	flex-shrink: 0;
}

/* 山本さん指摘②: チェックリスト直下のマゼンタCTA（Figma準拠） */
.taiken_intro__cta {
	margin-top: 28px;
	text-align: center;
}
.taiken_intro__cta a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 280px;
	padding: 16px 40px;
	background: var(--pink);
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	border-radius: 999px;
}
.taiken_intro__cta a ion-icon {
	font-size: 16px;
}

/* 体験セクション（01 普通自動車／02 自動二輪車） */
.taiken_sec {
	padding-bottom: 64px;
}
.taiken_sec .block-label {
	margin-top: 0;
}
.taiken_sec--last {
	padding-bottom: 96px;
}
.taiken_sec__photo {
	display: block;
	width: 100%;
	max-width: 900px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 20px;
	margin-bottom: 28px;
}
.taiken_head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 24px;
}
.taiken_head__num {
	font-family: var(--font-en);
	font-weight: 400;
	font-size: 6.4rem;
	line-height: 1;
	color: var(--orange);
}
.taiken_head__titles h2 {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.3;
	color: var(--ink);
}
.taiken_head__titles p {
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.3;
	color: var(--orange);
	margin-top: 10px;
}
.taiken_sec__notice {
	max-width: 900px;
	margin-bottom: 20px;
	padding: 14px 18px;
	border: 1.5px solid var(--pink);
	border-radius: 8px;
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1.7;
	color: var(--pink);
	background: #fdf2f8;
}
.taiken_sec__lead {
	font-size: 1.5rem;
	line-height: 1.9;
	max-width: 900px;
	margin-bottom: 36px;
}
.taiken_sec__case + .taiken_sec__case {
	margin-top: 14px;
}
.taiken_sec__btnwrap {
	text-align: center;
	margin-top: 32px;
}
.taiken_sec__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 40px;
	width: 100%;
	max-width: 420px;
	padding: 18px 30px;
	background: var(--orange);
	border-radius: 50px;
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.2;
	color: #fff;
	transition: .2s;
	position: relative;
}
.taiken_sec__btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
	background-image: url(../images/icons/ic-arrow.svg);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
.taiken_sec__btn:hover {
	background: #d05a26;
}

/* ▼ タブレット以下 */
@media (max-width: 1023px) {
	.access_course__cards {
		grid-template-columns: repeat(2, 1fr);
	}
	.access_about__catch {
		font-size: 3.2rem;
	}
}

/* ▼ スマホ（Figma 440px 基準） */
@media (max-width: 767px) {
	.access_about {
		padding-block: 48px 40px;
	}
	.access_about::before {
		top: 30px;
		right: 0;
		width: 85%;
		height: 400px;
	}
	.access_about__catch {
		font-size: 3rem;
		line-height: 1.3;
		margin-bottom: 50px;
	}
	.access_about__br {
		display: inline;
	}
	.access_about__lead {
		font-size: 1.4rem;
	}
	.access_course {
		padding-bottom: 48px;
	}
	.access_course__cards {
		gap: 10px;
	}
	.access_course__name {
		font-size: 1.4rem;
	}
	.access_box {
		padding: 30px 20px;
	}
	.access_box__row {
		flex-direction: column;
		gap: 1px;
	}
	.access_box__key {
		width: auto;
		font-size: 1.2rem;
	}
	.access_box__note {
		font-size: 1rem;
	}
	.access_map iframe {
		height: auto;
		aspect-ratio: 348 / 432;
	}
	.access_map--tall iframe {
		aspect-ratio: 347 / 499;
	}
	.access_contact .block-label{
		margin-top: 40px;
		margin-bottom: 16px;
	}
	
	.access_route .block-label{
		margin-top: 40px;
		margin-bottom: 16px;
	}
	.access_bus {
		padding-bottom: 30px;
	}
	.access_bus .block-label{
		margin-top: 40px;
		margin-bottom: 16px;
	}
	.access_contact__btn {
		min-width: 0;
		width: 100%;
		max-width: 320px;
	}
	.access_bus__btn {
		max-width: none;
	}
	.access_bus__btn_label {
		font-size: 1.3rem;
	}
	.access_bus__btn_label b {
		font-size: 1.7rem;
	}
	.orient_flow__title,
	.orient_cal__title {
		font-size: 2.2rem;
	}
	.orient_flow .block-label{
		margin-top: 0;
	}
	.orient_cta__inner {
		position: relative;
		display: block;
	}
	/* 人物はテキストの背面（背景扱い）で右上に配置 */
	.orient_cta__photo {
		position: absolute;
		top: -10px;
		right: -16px;
		width: min(58%, 260px);
		z-index: 0;
	}
	.orient_cta__body {
		position: relative;
		z-index: 1;
	}
	/* 人物と重ならないよう、見出しは1行に収まるサイズ・テキストは左側で折り返す */
	.orient_cta__title {
		font-size: 2.3rem;
		white-space: nowrap;
	}
	.orient_cta__text {
		max-width: 55%;
	}
	/* SPはボタン縦積み・幅は人物にかからない長さに制限 */
	.orient_cta__btns {
		flex-direction: column;
	}
	.orient_cta__btn {
		width: 100%;
		max-width: 320px;
	}
	.taiken_head__num {
		font-size: 5.6rem;
	}
	.taiken_head__titles h2 {
		font-size: 2rem;
	}
	.taiken_sec__lead {
		font-size: 1.4rem;
	}
	.taiken_sec--last {
		padding-bottom: 40px;
	}
}


/* =========================================================
   ▼▼▼ グループ: bus_lines（_css_bus_lines.css） ▼▼▼
   ========================================================= */

/* ===============================================
   3階層目 送迎案内ページ（busline_*）
   対象: bus_nishiomiya / bus_ageo
   規約: BEM × lower_snake_case ／ PC基準 ＋ @media(1023px/767px)
   路線カラーは modifier（--violet 等）で --busline_color を切替
   =============================================== */

/* ▼ 路線カラー（Figma実測値） */
.busline_acc--violet,
.busline_stopmodal--violet {
	--busline_color: #814fc0;
}
.busline_acc--blue,
.busline_stopmodal--blue {
	--busline_color: #35a5ca;
}
.busline_acc--green,
.busline_stopmodal--green {
	--busline_color: #32aa80;
}
.busline_acc--orange,
.busline_stopmodal--orange {
	--busline_color: #f79e37;
}
.busline_acc--vermilion,
.busline_stopmodal--vermilion {
	--busline_color: #e1491f;
}
.busline_acc--purple,
.busline_stopmodal--purple {
	--busline_color: #8851aa;
}
.busline_acc--red,
.busline_stopmodal--red {
	--busline_color: #e04245;
}

/* ▼ 導入 */
.busline_intro .container {
	max-width: 920px;
}
.busline_intro__lead {
	font-size: 1.6rem;
	line-height: 2;
}

/* ▼ セクション見出し（バスアイコン＋オレンジ） */
.busline_head {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	color: var(--orange-2);
	margin-bottom: 28px;
}
.busline_head img {
	width: 34px;
	flex-shrink: 0;
}

/* ▼ 主な送迎エリア */
.busline_area .container,
.busline_allmap .container,
.busline_routes .container,
.busline_confirm .container,
.busline_cta .container {
	max-width: 920px;
}
.busline_area__inner {
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	padding: 48px 0;
}
.busline_area .container {
	position: relative;
}
.busline_area .container::before {
	content: "";
	position: absolute;
	top: -100px;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
	z-index: -1;
}
.busline_area__list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
}
.busline_area__list li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--orange-2);
	color: #fff;
	border-radius: 40px;
	padding: 12px 23px;
	font-size: 1.4rem;
	font-weight: 500;
}
.busline_area__list li img {
	width: 10px;
}
.busline_area__note {
	margin-top: 20px;
	font-size: 1.3rem;
	line-height: 1.8;
}

/* ▼ 全体送迎ルートマップ */
.busline_allmap__inner {
	border-bottom: 1px solid var(--line);
	padding: 48px 0;
}
.busline_allmap__img img {
	display: block;
	width: min(100%, 560px);
	margin: 0 auto;
	border-radius: 8px;
	box-shadow: var(--shadow-sm);
}

/* ▼ 送迎ルートマップ一覧（路線アコーディオン） */
.busline_routes {
	padding: 48px 0 64px;
}
.busline_routes__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.busline_acc {
	background: #fff;
	border: 2px solid var(--busline_color);
	border-radius: 40px;
}
.busline_acc[open] {
	border-radius: 30px;
}
.busline_acc__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 22px;
	cursor: pointer;
	list-style: none;
}
.busline_acc__head::-webkit-details-marker {
	display: none;
}
/* アイコン類はインラインSVG＋currentColorで塗り分け（外部SVGマスクは環境差で不表示が起きたため廃止） */
.busline_acc__icon {
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	color: var(--busline_color);
}
.busline_acc__titles {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
	min-width: 0;
}
.busline_acc__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.2;
	color: var(--busline_color);
}
.busline_acc__sub {
	font-size: 1.2rem;
	line-height: 1.5;
	color: var(--ink);
}
.busline_acc__chev {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	padding: 1px 4px;
	color: var(--busline_color);
	transform: rotate(90deg);
	transition: transform .25s;
}
.busline_acc[open] .busline_acc__chev {
	transform: rotate(-90deg);
}
.busline_acc__body {
	padding: 8px 22px 26px;
}
.busline_acc__body > * + * {
	margin-top: 16px;
}
.busline_acc__notice {
	background: var(--bg-soft);
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 1.3rem;
	line-height: 1.8;
}
.busline_acc__notice a {
	color: var(--busline_color);
	text-decoration: underline;
}
.busline_acc__map iframe {
	display: block;
	width: 100%;
	height: 480px;
	border: 0;
	border-radius: 8px;
}
.busline_acc__gmap {
	margin-top: 6px;
	text-align: right;
}
.busline_acc__gmap a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 1.3rem;
	font-weight: 500;
	color: var(--busline_color);
	text-decoration: underline;
}
.busline_acc__gmap_icon {
	width: 20px;
	height: 20px;
	color: var(--busline_color);
}
.busline_acc__stops_label {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--busline_color);
	margin-bottom: 12px;
}
.busline_stop_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.busline_stop_list__item button {
	display: flex;
	width: 100%;
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	text-align: left;
	cursor: pointer;
}
.busline_stop_list__item,
.busline_stop_list__item button {
	align-items: center;
	gap: 8px;
}
.busline_stop_list__item {
	display: flex;
}
.busline_stop_list__num {
	font-size: 2rem;
	line-height: 1;
	color: var(--busline_color);
	flex-shrink: 0;
}
.busline_stop_list__name {
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.3;
}
.busline_stop_list__photo {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid var(--busline_color);
	object-fit: cover;
	margin-left: auto;
	flex-shrink: 0;
}
.busline_acc__stops_note {
	margin-top: 14px;
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--busline_color);
}
/* 時刻表ボタン（黒）と仮申込みボタン（路線色） */
.busline_acc__ttbtn,
.busline_acc__apply {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 50px;
	border: 0;
	border-radius: 999px;
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: opacity .2s;
}
.busline_acc__ttbtn {
	background: var(--ink);
	font-size: 1.5rem;
}
.busline_acc__apply {
	background: var(--busline_color);
	font-size: 1.8rem;
}
.busline_acc__ttbtn::after,
.busline_acc__apply::after {
	content: "";
	position: absolute;
	right: 28px;
	top: 50%;
	width: 8px;
	height: 8px;
	margin-top: -5px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: rotate(45deg);
}
.busline_acc__ttbtn:hover,
.busline_acc__apply:hover {
	opacity: .85;
}

/* ▼ ご利用前にご確認ください */
.busline_confirm {
	padding-bottom: 24px;
}
.busline_confirm__head {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 2rem;
	font-weight: 700;
	color: var(--orange);
	margin-bottom: 14px;
}
.busline_confirm__head ion-icon {
	font-size: 30px;
	color: var(--pink);
	flex-shrink: 0;
}
.busline_confirm__list {
	background: #f3f3f3;
	border-radius: 10px;
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	gap: 15px;
}
.busline_confirm__list li {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: 1.4rem;
	line-height: 1.6;
	font-weight: 500;
}
/* 文中のbrはSP専用（PCは1行で流す） */
.busline_confirm__list li br {
	display: none;
}
.busline_confirm__list li img {
	width: 17px;
	flex-shrink: 0;
	margin-top: 3px;
}

/* ▼ 通学をご検討の方へ（CTAカード） */
.busline_cta .container {
	border-top: 1px solid var(--line);
	padding-top: 48px;
}
.busline_cta__card {
	max-width: 720px;
	margin: 0 auto;
	background: #fff;
	border-radius: 20px;
	box-shadow: var(--shadow);
	overflow: hidden;
}
.busline_cta__photo {
	position: relative;
}
.busline_cta__photo img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
}
.busline_cta__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0) 45%, #fff 92%);
}
.busline_cta__title {
	position: absolute;
	left: 16px;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}
.busline_cta__title span {
	display: inline-block;
	background: var(--orange-2);
	color: #fff;
	padding: 8px 6px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.3;
}
.busline_cta__body {
	padding: 24px 32px 32px;
	display: flex;
	flex-direction: column;
	gap: 16px;
	align-items: center;
}
.busline_cta__text {
	font-size: 1.4rem;
	line-height: 1.6;
	align-self: flex-start;
}
.busline_cta__school {
	max-width: 100%;
	width: 100%;
}
.busline_cta__row {
	display: flex;
	gap: 8px;
	width: 100%;
}
.busline_cta__row .btn {
	flex: 1;
	font-size: 1.7rem;
}

/* ▼ 時刻表モーダル（dialog / 共通 .modal を土台に拡張） */
.busline_modal {
	width: min(760px, calc(100vw - 40px));
}
.busline_modal__inner {
	padding: 44px 20px 32px;
}
.busline_tt__tabs {
	display: flex;
	gap: 6px;
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid var(--line);
}
.busline_tt__tabs button {
	border: 1px solid var(--orange);
	background: #fff;
	color: var(--orange);
	border-radius: 40px;
	padding: 10px 20px;
	font-size: 1.5rem;
	font-weight: 500;
	cursor: pointer;
	transition: .2s;
}
.busline_tt__tabs button.is-active {
	background: var(--orange);
	color: #fff;
}
.busline_tt__panel {
	display: none;
}
.busline_tt__panel.is-active {
	display: block;
}
.busline_tt__scroll {
	background: #f3f3f3;
	border-radius: 16px;
	padding: 12px;
	overflow: auto;
	max-height: 56vh;
}
.busline_tt__table {
	border-collapse: collapse;
	white-space: nowrap;
	margin: 0 auto;
}
.busline_tt__table th,
.busline_tt__table td {
	border: 1px solid #dfdcd6;
	padding: 10px 14px;
	font-size: 1.3rem;
	text-align: center;
}
.busline_tt__table th {
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.4;
}
.busline_tt__table tbody th,
.busline_tt__table tr > th:first-child {
	font-size: 1.4rem;
}
.busline_modal__notes {
	margin-top: 14px;
	font-size: 1.2rem;
	line-height: 1.9;
}

/* ▼ 停留所詳細モーダル */
.busline_stopmodal {
	width: min(480px, calc(100vw - 40px));
	border: 1px solid var(--busline_color);
}
.busline_stop_list__item button:hover .busline_stop_list__name {
	color: var(--busline_color);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.busline_stopmodal__name {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--busline_color);
}
.busline_stopmodal__num {
	font-size: 2rem;
	line-height: 1;
}
.busline_stopmodal__photo {
	display: block;
	width: 100%;
	border-radius: 10px;
	margin: 14px 0;
}
.busline_stopmodal__loc_label {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--busline_color);
	margin: 16px 0 10px;
}
.busline_stopmodal__loc_list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
}
.busline_stopmodal__loc_list li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--busline_color);
	color: #fff;
	border-radius: 40px;
	padding: 10px 16px;
	font-size: 1.3rem;
}
.busline_stopmodal__loc_list li img {
	width: 10px;
}

/* ▼ タブレット以下 */
@media (max-width: 1023px) {
	.busline_acc__map iframe {
		height: 420px;
	}
	.busline_cta__photo img {
		height: 260px;
	}
}

/* ▼ スマホ */
@media (max-width: 767px) {
	.busline_area .container::before {
		top: -30px;
		right: 0;
		width: 85%;
		height: 550px;
	}
	.busline_intro {
		padding-top: 35px;
		padding-bottom: 33px;
	}
	.busline_intro__lead {
		font-size: 1.5rem;
	}
	.busline_head {
		font-size: 2rem;
		margin-bottom: 20px;
	}
	.busline_head img {
		width: 30px;
	}
	.busline_area__inner,
	.busline_allmap__inner {
		padding: 36px 0;
	}
	.busline_routes {
		padding: 36px 0 48px;
	}
	.busline_acc__head {
		padding: 10px 16px;
	}
	.busline_acc__icon {
		width: 38px;
		height: 38px;
	}
	.busline_acc__name {
		font-size: 1.6rem;
	}
	.busline_acc__sub {
		font-size: 1.1rem;
	}
	.busline_acc__body {
		padding: 6px 16px 22px;
	}
	.busline_acc__map iframe {
		height: 360px;
	}
	.busline_stop_list__name {
		font-size: 1.5rem;
	}
	.busline_acc__apply {
		font-size: 1.6rem;
	}
	.busline_confirm__head {
		font-size: 1.7rem;
	}
	.busline_confirm {
		padding-bottom: 36px;
	}
	.busline_confirm__list li {
		font-size: 1.3rem;
	}
	.busline_confirm__list li br {
		display: inline;
	}
	.busline_cta {
		padding-top: 0;
		padding-bottom: 30px;
	}
	.busline_cta .container {
		padding-top: 36px;
	}
	.busline_cta__title span {
		font-size: 2.4rem;
	}
	.busline_cta__body {
		padding: 20px 20px 26px;
	}
	.busline_tt__scroll {
		max-height: 52vh;
	}
	.busline_modal__inner {
		padding: 40px 14px 26px;
	}
}

/* ▼ 全体送迎ルートマップ（路線タブ切替のMy Maps表示） */
.busline_allmap__note {
	font-size: 1.3rem;
	color: var(--muted);
	margin-bottom: 12px;
}
.busline_allmap__tabs {
	flex-wrap: wrap;
	margin-bottom: 16px;
}
.busline_allmap__panel {
	display: none;
}
.busline_allmap__panel.is-active {
	display: block;
}
.busline_allmap__panel iframe {
	width: 100%;
	aspect-ratio: 16 / 10;
	border: 1px solid var(--line);
	border-radius: 12px;
}
@media (max-width: 767px) {
	.busline_allmap__panel iframe {
		aspect-ratio: 4 / 5;
	}
}


/* =========================================================
   ▼▼▼ グループ: flow（_css_flow.css） ▼▼▼
   ========================================================= */

/* ▼ 入校フロー（ご入校の流れ）4ページ共通（Figma準拠・接頭辞 flow_）
   ・school_flow_ordinary / school_flow_semi_medium / school_flow_medium / school_flow_motorcycle
   ・4ページとも同一構造（イントロ／手続き／受付場所／資格条件／持ち物／取得までの流れ／CTA）
   ・文言・データはSP版Figma＋既存サイト照合済みが正。PCレイアウトはPC版Figma（HPページ・幅1728）で答え合わせ済み
   　（PC基準＋@media 1023px/767px。詳細は _dev/_notes_flow_pc.md） */

/* ▼ 共通：セクション見出し（block-label 直下の h2） */
.flow_title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.4;
	color: var(--ink);
	margin-bottom: 63px;
}

/* ▼ intro：車種名（縦書き）＋写真＋リード＋概要カード */
.flow_intro {
	position: relative;
	padding-block: 72px 0;
}
.flow_intro::before {
	content: '';
	position: absolute;
	top: 32px;
	right: 0;
	width: min(44%, 620px);
	height: 400px;
	background: url('../images/bg-dots.png') repeat;
	background-size: 200px;
	opacity: .5;
	pointer-events: none;
}
.flow_intro .container {
	position: relative;
}
.flow_intro__grid {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 56px;
}
/* 写真（丸枠）＋車両（飛び出し）をFigma座標比で絶対配置、車種名はHTMLテキスト。
   基準値は普通自動車（Group67）。他3ページは body.page_school_flow_* で座標を上書き */
.flow_intro__figure {
	flex: 0 0 46%;
	position: relative;
	z-index: 1;
	aspect-ratio: 375 / 346.44;
}
.flow_intro__photo {
	position: absolute;
	top: 0;
	left: 14.96%;
	width: 84.64%;
	height: auto;
}
.flow_intro__vehicle {
	position: absolute;
	top: 2.82%;
	left: 2.59%;
	width: 97.41%;
	height: auto;
}
/* 縦書き車種名（Figma実測：JA 24px #e56c36 行送り1.04／EN 8px #362f2f 縦回転） */
.flow_intro__vert {
	position: absolute;
	top: 4.9%;
	left: 0;
	writing-mode: vertical-rl;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.04;
	color: var(--orange);
}
.flow_intro__vert_en {
	margin-block-start: 12px;
	font-family: var(--font-jp);
	font-weight: 500;
	font-size: 0.8rem;
	letter-spacing: .02em;
	color: var(--ink);
}
/* 準中型 */
.page_school_flow_semi_medium .flow_intro__figure {
	aspect-ratio: 369.06 / 325.96;
}
.page_school_flow_semi_medium .flow_intro__photo {
	left: 13.67%;
	width: 86.33%;
}
.page_school_flow_semi_medium .flow_intro__vehicle {
	top: 4.51%;
	left: 7.33%;
	width: 87.99%;
}
.page_school_flow_semi_medium .flow_intro__vert {
	top: 10.15%;
}
/* 中型 */
.page_school_flow_medium .flow_intro__figure {
	aspect-ratio: 369.15 / 318.65;
}
.page_school_flow_medium .flow_intro__photo {
	left: 13.68%;
	width: 86.32%;
}
.page_school_flow_medium .flow_intro__vehicle {
	top: 4.62%;
	left: 7.24%;
	width: 85.36%;
}
.page_school_flow_medium .flow_intro__vert {
	top: 10.39%;
}
/* 自動二輪 */
.page_school_flow_motorcycle .flow_intro__figure {
	aspect-ratio: 369.05 / 318.71;
}
.page_school_flow_motorcycle .flow_intro__photo {
	left: 13.69%;
	width: 86.31%;
}
.page_school_flow_motorcycle .flow_intro__vehicle {
	top: 0;
	left: 7.89%;
	width: 92.1%;
}
.page_school_flow_motorcycle .flow_intro__vert {
	top: 9.99%;
}
.flow_intro__body {
	flex: 1;
	padding-top: 16px;
}
.flow_intro__lead {
	font-size: 1.8rem;
	line-height: 2;
	margin-bottom: 40px;
	font-weight: 500;
}
.flow_intro__lead_note {
	display: inline-block;
	font-size: .72em;
	line-height: 1.6;
	margin-top: 6px;
}
/* PC版Figma：4カード横一列（イントロ全幅）。タブレット以下は従来の2列 */
.flow_intro {
	margin-bottom: 70px;
}
.flow_intro::before {
	top: 30px;
	right: 0;
	width: 90%;
	height: 400px;
}
.flow_intro__cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin-top: 48px;
}
.flow_intro__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 180px;
	padding: 20px 12px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 20px;
	text-align: center;
}
.flow_intro__card ion-icon,
.flow_intro__card i {
	font-size: 44px;
	color: var(--orange);
}
.flow_intro__card_label {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--orange);
}
.flow_intro__card_value {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--ink);
}

/* ▼ proc：入校手続きについて（step1〜3） */
.flow_proc {
	padding-top: 0;
}
.flow_proc .block-label {
	margin-top: 0;
	margin-bottom: 46px;
}
.flow_proc__steps {
	display: flex;
	align-items: center;
	gap: 8px;
	max-width: 1100px;
}
/* PC版Figma：丸アイコンもテキストも左寄せ（SPは従来どおり中央揃えの横並び） */
.flow_proc__step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	text-align: left;
}
.flow_proc__icon {
	flex: none;
	width: 200px;
	height: 200px;
	border-radius: 50%;
	background: #f1f1f1;
	display: grid;
	place-items: center;
	margin: 0 auto;
}
.flow_proc__icon ion-icon,
.flow_proc__icon i {
	font-size: 52px;
	color: var(--orange);
}
.flow_proc__num {
	font-weight: 700;
	font-size: 1.4rem;
	color: var(--pink);
	margin-bottom: 8px;
}
.flow_proc__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	color: var(--ink);
	margin-bottom: 10px;
}
.flow_proc__desc {
	font-size: 1.4rem;
	line-height: 1.6;
	color: var(--orange);
}
/* PC版Figma：矢印は丸アイコンの中心高さに合わせる（丸123px・矢印30px → 46px） */
.flow_proc__arrow {
	flex: none;
	align-items: center;
	display: grid;
	place-items: center;
	list-style: none;
}
.flow_proc__arrow ion-icon {
	font-size: 30px;
	color: var(--ink);
	transform: rotate(-90deg);
}
.flow_proc__note {
	max-width: 1100px;
	margin-top: 35px;
	padding: 10px 16px;
	background: #eee;
	font-size: 1.4rem;
}

/* ▼ place：受付場所（校舎カード） */
.flow_place {
	padding-top: 0;
}
.flow_place .block-label {
	margin-top: 0;
	margin-bottom: 56px;
}
.flow_place__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 28px;
	max-width: 1100px;
}
.flow_place__card .btn--dark {
	position: relative;
	width: 200px;
	padding: 14px 0;
	padding-right: 30px;
}
.flow_place__card .btn--dark::after{
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	background-image: url('../images/icons/ic-arrow.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	width: 4px;
	height: 8px;
}
.flow_place__card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 12px;
	padding: 24px 20px 28px;
}
.flow_place__map {
	width: 100%;
	height: 220px;
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 20px;
}
.flow_place__map iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.flow_place__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	color: var(--orange-2);
	margin-bottom: 4px;
}
.flow_place__addr {
	font-size: 1.4rem;
	margin-bottom: 20px;
}

/* ▼ req：入校資格・条件（PC版Figma：2カラム。タブレット以下は従来の1カラム） */
.flow_req {
	padding-top: 0;
}
.flow_req .block-label {
	margin-top: 0;
	margin-bottom: 39px;
}
.flow_req__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 64px;
	row-gap: 28px;
	max-width: 1100px;
}
.flow_req__item {
	display: flex;
	align-items: flex-start;
	gap: 20px;
}
.flow_req__icon {
	width: 90px;
	height: 90px;
	color: var(--orange);
	text-align: center;
	line-height: 1.2;
}
/* 画像型アイコン（聴力=ic-ear.svg。フォントアイコンに無いものはimgで差し替え可能にする） */
img.flow_req__icon {
	height: 90px;
	object-fit: contain;
}
.fa-solid.fa-ear-listen.flow_req__icon::before {
	font-size: 72px;
	line-height: 1;
	display: inline-block;
}

.flow_req__body {
	flex: 1;
}
.flow_req__head {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--orange);
	padding-bottom: 6px;
	border-bottom: 1px solid #727171;
	margin-bottom: 8px;
}
.flow_req__head sup {
	font-size: .65em;
	vertical-align: super;
}
.flow_req__text {
	font-size: 1.4rem;
}
.flow_req__notes {
	max-width: 880px;
	margin-top: 48px;
	padding: 20px;
	border: 1px solid var(--orange);
	color: var(--orange);
	font-size: 1.3rem;
	line-height: 1.7;
}
.flow_req__notes a {
	color: inherit;
	text-decoration: underline;
}
.flow_req__notes a:hover {
	opacity: .7;
}

/* ▼ duo：手続きに必要なもの＋入校から免許取得までの流れ（PC版Figma：2カラム並列） */
.flow_duo {
	padding-top: 0;
	padding-bottom: 50px;
}
.flow_duo .block-label {
	margin-top: 0;
	margin-bottom: 40px;
}
.flow_duo__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 64px;
	align-items: start;
}

/* ▼ bring：手続きに必要なもの（PC版Figma：3列×2段） */
.flow_bring__cards {
	display: grid;
	grid-template-columns: repeat(3, calc((100% - 28px) / 3));
	gap: 14px;
	max-width: 700px;
	margin: 0 auto;
}
.flow_bring__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	aspect-ratio: 1;
	padding: 16px 8px;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 10px;
	text-align: center;
}
.flow_bring__card ion-icon,
.flow_bring__card i {
	font-size: 40px;
	color: var(--ink);
}
.flow_bring__card p {
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.4;
	color: var(--orange);
}
.flow_bring__note {
	max-width: 1100px;
	margin-top: 20px;
	padding: 10px 18px;
	border: 1px solid var(--orange);
	border-radius: 6px;
	color: var(--orange);
	font-size: 1.4rem;
	text-align: center;
}
.flow_bring__cta {
	margin-top: 40px;
	text-align: center;
	max-width: 1100px;
}
.flow_bring__cta .btn {
	font-size: 1.6rem;
	border: none;
}

/* ▼ needs：入校時に必要なもの（モーダル中身／dialog.modal を流用） */
.flow_needs section + section {
	margin-top: 28px;
}
.flow_needs h3 {
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--orange);
	margin-bottom: 8px;
}
.flow_needs p {
	font-size: 1.4rem;
	line-height: 1.5;
}
.flow_needs p + p {
	margin-top: 1em;
}
.flow_needs small {
	font-size: 1rem;
	line-height: 1.6;
	display: block;
}
.flow_needs a {
	color: inherit;
	text-decoration: underline;
}
.flow_needs a:hover {
	opacity: .7;
}
.flow_needs__cancel_head {
	color: var(--orange);
	margin-bottom: 12px;
}

/* ▼ road：入校から免許取得までの流れ */
/* PC版Figma：見出し「入校から免許取得までの流れ」は1行（タブレット以下は従来の2行） */
.flow_road .flow_title br {
	display: none;
}
.flow_road__list {
	display: flex;
	flex-direction: column;
	gap: 30px;
	max-width: 720px;
}
.flow_road__item {
	display: flex;
	align-items: center;
	gap: 16px;
}
.flow_road__num {
	flex: none;
	min-width: 30px;
	display: flex;
	flex-direction: column;
	align-items: center;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1rem;
	letter-spacing: .1em;
	line-height: 1.1;
	color: var(--pink);
	text-transform: lowercase;
}
.flow_road__num b {
	font-weight: 600;
	font-size: 2.2rem;
	letter-spacing: .05em;
}
.flow_road__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--ink);
}
.flow_road__name small {
	font-size: .72em;
	font-weight: 700;
	margin-left: 10px;
}
.flow_road__mt {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 10px 24px;
	background: var(--orange);
	border-radius: 999px;
	color: #fff;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.5;
}
.flow_road__mt i {
	flex: none;
	font-size: 18px;
}

/* 中型・自動二輪：ステップ名の注記マーク（※1 等）と欄外注記 */
.flow_road__mark {
	color: var(--orange);
	font-size: .72em;
	margin-left: 8px;
}
.flow_road__notes {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 720px;
	margin-top: 40px;
	color: var(--muted);
	font-size: 1.2rem;
	line-height: 1.7;
}
.flow_road__notes p {
	display: flex;
	gap: 8px;
}
.flow_road__notes span {
	flex: none;
}

/* 自動二輪・準中型：所持免許別パターンのタブ切替（common.css .tabs＋script.js .js-tabs を流用） */
/* ボタン（ピル）型タブ・下線なし（2026-07 レスポンシブでの縦積み対策） */
.flow_road__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	max-width: 720px;
	margin-bottom: 28px;
	border-bottom: none;
}
.flow_road__tabs button {
	font-size: 1.3rem;
	line-height: 1.5;
	padding: 10px 18px;
	text-align: center;
	border: 1.5px solid var(--orange);
	border-radius: 999px;
	background: #fff;
	color: var(--orange);
	font-weight: 700;
	transition: .2s;
}
.flow_road__tabs button.is-active {
	background: var(--orange);
	color: #fff;
}
.flow_road__panel {
	display: none;
}
.flow_road__panel.is-active {
	display: block;
}

/* ▼ cta：まずはWEB申し込み */
.flow_cta {
	padding-block: 40px 96px;
	padding-top: 85px;
	padding-bottom: 40px;
}
.flow_cta__body {
	position: relative;
	z-index: 2;
	margin-right: -50px;
} 
.flow_cta__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	border-top: 1px solid var(--line);
	padding-top: 30px;
}
.flow_cta__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3rem;
	color: var(--orange);
	margin-bottom: 10px;
}
.flow_cta__text {
	font-size: 1.5rem;
	line-height: 1.9;
	max-width: 460px;
	margin-bottom: 36px;
}
/* PC版Figma：ボタンは横並び（SPは従来の縦積み） */
.flow_cta__btns {
	display: flex;
	flex-direction: row;
	gap: 16px;
}
.flow_cta__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	padding: 14px 24px;
	border-radius: 999px;
	font-size: 1.6rem;
	font-weight: 700;
	transition: .2s;
	flex-basis: 50%;
}
.flow_cta__btn ion-icon {
	font-size: 24px;
}
.flow_cta__btn--web {
	border: 2px solid var(--orange);
	color: var(--orange);
	background: #fff;
}
.flow_cta__btn--web:hover {
	background: #fdf2f8;
}
.flow_cta__btn--trial {
	border: 2px solid var(--orange);
	background: var(--orange);
	color: #fff;
}
.flow_cta__btn--trial:hover {
	background: #d05a26;
	border-color: #d05a26;
}
.flow_cta__photo {
	width: 280px;
	flex: none;
}

/* ---------- タブレット ---------- */
@media (max-width: 1023px) {
	.flow_title {
		font-size: 2.8rem;
	}
	.flow_intro__grid {
		flex-direction: column;
		gap: 0;
	}
	.flow_intro__figure {
		flex: none;
		width: 100%;
		max-width: 560px;
	}
	.flow_intro__body {
		padding-top: 0;
	}
	/* 以下、PC専用レイアウトを解除して従来のタブレット/SP表示に戻す */
	.flow_intro__cards {
		grid-template-columns: repeat(2, 1fr);
		max-width: 560px;
		margin-top: 0;
	}
	.flow_req__list {
		grid-template-columns: 1fr;
		row-gap: 15px;
	}
	.flow_duo__grid {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 32px; /* 旧2セクションの上下padding（PC .section 80px+80px）相当 */
	}
	.flow_road .flow_title br {
		display: inline;
	}
	.flow_cta__inner {
		gap: 32px;
	}
}

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
	.flow_title {
		font-size: 2.4rem;
		margin-bottom: 50px;
	}
	.flow_intro {
		padding-block: 40px 0;
		margin-bottom: 40px;
	}
	.flow_intro__lead {
		font-size: 1.6rem;
		margin-bottom: 27px;
		margin-top: 20px;
	}
	.flow_intro__cards {
		max-width: none;
	}
	.flow_intro__card {
		min-height: 150px;
	}
	/* Figma（SP）：丸アイコン左・テキスト右の縦積み */
	.flow_proc {
		padding-bottom: 70px;
	}
	.flow_proc .block-label {
		margin-top: 0;
		margin-bottom: 40px;
	}
	.flow_proc__steps {
		flex-direction: column;
		gap: 0;
	}
	.flow_proc__step {
		flex-direction: row;
		align-items: center;
		gap: 24px;
		text-align: left;
		width: 100%;
	}
	.flow_proc__icon {
		width: 123px;
		height: 123px;
	}
	.flow_proc__body {
		flex: 1;
	}
	.flow_proc__num {
		margin-bottom: 4px;
	}
	.flow_proc__name {
		margin-bottom: 6px;
	}
	.flow_proc__arrow {
		align-self: center;
		margin-top: 0;
		padding-block: 4px;
	}
	.flow_proc__arrow ion-icon {
		transform: none;
	}
	.flow_proc__note {
		margin-top: 28px;
	}
	.flow_place {
		padding-bottom: 76px;
	}
	.flow_place .block-label {
		margin-bottom: 40px;
	}
	.flow_place__cards {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.flow_place__map {
		height: 170px;
	}
	.flow_req__item {
		gap: 16px;
		align-items: center;
	}
	.flow_req__icon {
		width: 52px;
		font-size: 44px;
	}
	img.flow_req__icon {
		height: 48px;
	}
	.flow_req__notes {
		margin-top: 36px;
		padding: 16px;
	}
	.flow_bring__note {
		text-align: left;
		font-size: 1.3rem;
		margin-top: 14px;
	}
	.flow_duo {
		padding-bottom: 34px;
	}
	.flow_duo__grid {
		row-gap: 32px; /* 旧2セクションの上下padding（SP .section 56px+56px）相当 */
	}
	.flow_road__list {
		gap: 26px;
	}
	.flow_road__name {
		font-size: 1.6rem;
	}
	.flow_road__name small {
		display: block;
		margin-left: 0;
	}
	.flow_road__mt {
		font-size: 1.2rem;
		padding: 10px 18px;
	}
	.flow_road__tabs {
		gap: 8px;
	}
	.flow_road__tabs button {
		font-size: 1.2rem;
		padding: 8px 14px;
	}
	.flow_cta {
		padding-top: 34px;
	}
	.flow_cta__inner {
		flex-direction: row;
		align-items: flex-end;
		gap: 0;
		padding-top: 48px;
		position: relative;
		min-height: 350px;
	}
	.flow_cta__body {
		flex: 1;
		position: relative;
		z-index: 1;
	}
	.flow_cta__title {
		font-size: 2.4rem;
	}
	.flow_cta__text {
		font-size: 1.4rem;
		max-width: 220px;
	}
	.flow_cta__btns {
		flex-direction: column;
		gap: 14px;
		max-width: 250px;
	}
	.flow_bring__cta {
		margin-top: 50px;
	}
	.flow_cta__photo {
		width: 75%;
		position: absolute;
		right: -40px;
		bottom: 0;
		max-height: 320px;
		object-fit: contain;
	}
}
@media (max-width: 500px) {
	.flow_bring__cards {
		display: grid;
		grid-template-columns: repeat(2, calc((100% - 28px) / 2));
		gap: 14px;
		max-width: 700px;
		margin: 0 auto;
	}
}


/* =========================================================
   ▼▼▼ グループ: company（_css_company.css） ▼▼▼
   ========================================================= */

/* =========================================================
   会社情報系 3階層目ページ（company_*）固有スタイル
   規約：BEM（block__element--modifier）× lower_snake_case
   対象：company_overview / company_award / company_award_2014 /
         company_award_2015 / company_coolchoice_2019 /
         company_recruit / company_recruit_childcare /
         company_recruit_driver / company_recruit_instructor /
         company_recruit_reception / company_recruit_person
   ========================================================= */

/* ▼ 共通調整：各ページ先頭セクションの block-label 上余白を詰める
   （style.css の .page-company .company-outline .block-label と同じ手法） */
.overview_company .container > .block-label:first-child,
.award_article .container > .block-label:first-child,
.recruit_index .container > .block-label:first-child {
	margin-top: 0;
}

/* ▼ 会社概要（company_overview） */
.overview_dl {
	max-width: 720px;
}
.overview_dl__row {
	border-top: 1px solid var(--line);
	padding: 18px 0;
}
.overview_dl__row:last-child {
	border-bottom: 1px solid var(--line);
}
.overview_dl__row dt {
	font-size: 1.3rem;
	color: var(--ink-2);
}
.overview_dl__row dd {
	margin: 4px 0 0;
	font-size: 2rem;
	font-weight: 500;
}
.overview_dl__row dd.overview_dl__small {
	font-size: 1.5rem;
}
.overview_schools {
	padding-block: 0 80px;
}
.overview_schools__panel {
	display: none;
	background: var(--bg-soft);
	border-radius: 0 0 var(--radius) var(--radius);
	padding: 32px 28px;
}
.overview_schools__panel.is-active {
	display: block;
}
.overview_schools__panel dl > div {
	border-bottom: 1px solid var(--line);
	padding: 16px 0;
}
.overview_schools__panel dl > div:last-child {
	border-bottom: none;
}
.overview_schools__panel dt {
	font-size: 1.3rem;
	color: var(--ink-2);
	margin-bottom: 4px;
}
.overview_schools__panel dd {
	margin: 0;
	font-size: 1.5rem;
}
.overview_schools__panel dd li {
	padding-left: 1em;
	text-indent: -1em;
}
.overview_schools__panel dd li::before {
	content: "・";
}
@media (max-width: 767px) {
	.overview_dl__row dd {
		font-size: 1.7rem;
	}
	.overview_schools__panel {
		padding: 24px 16px;
	}
}

/* ▼ 受賞歴 共通（company_award / company_award_2014 / company_award_2015 / company_coolchoice_2019） */
.award_article__head {
	margin-bottom: 32px;
}
.award_article__year {
	display: inline-block;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.4rem;
	letter-spacing: .08em;
	color: #fff;
	background: var(--orange);
	border-radius: 999px;
	padding: 4px 18px;
	margin-bottom: 14px;
}
.award_article__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.5;
	color: var(--ink);
}
.award_article__intro {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	margin-bottom: 56px;
}
.award_article__lead {
	flex: 1;
}
.award_article__lead p {
	font-size: 1.6rem;
	line-height: 2;
	margin-bottom: 1em;
}
.award_article__lead p:last-child {
	margin-bottom: 0;
}
.award_article__cert {
	flex-shrink: 0;
	max-width: 300px;
	text-align: center;
}
.award_article__cert img {
	width: 100%;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: #fff;
}
.award_article__cert figcaption {
	margin-top: 8px;
	font-size: 1.3rem;
	color: var(--muted);
}
.award_article__cert--wide {
	max-width: 740px;
	margin: 0 auto 56px;
}
.award_article__cert--wide img {
	border: none;
}
.award_article__section {
	margin-bottom: 56px;
}
.award_article__section:last-child {
	margin-bottom: 0;
}
.award_article__text {
	font-size: 1.5rem;
	line-height: 2;
	margin-bottom: 1em;
}
.award_article__gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	margin-bottom: 24px;
}
.award_article__gallery--two {
	grid-template-columns: repeat(2, 1fr);
	max-width: 900px;
}
.award_article__gallery li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 8px;
}
.award_article__figure {
	max-width: 640px;
	margin-bottom: 24px;
}
.award_article__figure img {
	width: 100%;
	border-radius: 8px;
}
.award_article__figure figcaption {
	margin-top: 8px;
	font-size: 1.3rem;
	color: var(--muted);
}
.award_article__links {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 24px;
}
.award_article__links:last-child {
	margin-bottom: 0;
}
/* 受賞テーマ */
.award_article__themes {
	display: flex;
	flex-direction: column;
	gap: 32px;
	margin-bottom: 56px;
}
.award_article__theme {
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 32px;
	margin-bottom: 56px;
}
.award_article__themes .award_article__theme {
	margin-bottom: 0;
}
.award_article__theme_name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	color: var(--orange);
	margin-bottom: 8px;
}
.award_article__theme_copy {
	font-weight: 700;
	font-size: 1.6rem;
	color: var(--ink);
	border-bottom: 1px solid var(--line);
	padding-bottom: 14px;
	margin-bottom: 20px;
}
.award_article__theme_body {
	display: flex;
	align-items: flex-start;
	gap: 28px;
}
.award_article__theme_body img {
	flex-shrink: 0;
	max-width: 280px;
	width: 34%;
	border-radius: 8px;
}
.award_article__theme_body p {
	flex: 1;
	font-size: 1.5rem;
	line-height: 2;
}
/* メッセージ（帯） */
.award_article__message {
	background: var(--bg-soft);
	border-radius: var(--radius);
	padding: 36px 32px;
	margin-bottom: 56px;
}
.award_article__message h3 {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	color: var(--ink);
	margin-bottom: 16px;
}
.award_article__message p {
	font-size: 1.5rem;
	line-height: 2;
	margin-bottom: 1em;
}
.award_article__message p:last-child {
	margin-bottom: 0;
}
/* 取り組みカード */
.award_article__topics {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
	margin-bottom: 56px;
}
.award_topic {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 24px;
}
.award_topic img {
	width: 100%;
	max-height: 220px;
	object-fit: cover;
	border-radius: 8px;
	margin-bottom: 16px;
}
.award_topic__title {
	font-weight: 700;
	font-size: 1.7rem;
	color: var(--orange);
	margin-bottom: 10px;
}
.award_topic p {
	font-size: 1.4rem;
	line-height: 1.9;
}
.award_topic .link-arrow {
	display: inline-block;
	margin-top: 12px;
}
/* その他の受賞歴ナビ */
.award_nav {
	padding-block: 0 80px;
}
.award_nav__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.award_nav__list a {
	display: flex;
	align-items: center;
	gap: 16px;
	background: #fff;
	box-shadow: var(--shadow-sm);
	border-radius: 999px;
	padding: 16px 28px;
	font-weight: 700;
	font-size: 1.5rem;
}
.award_nav__list a:hover {
	background: #fff7f2;
}
.award_nav__year {
	flex-shrink: 0;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.3rem;
	color: var(--orange);
}
@media (max-width: 1023px) {
	.award_article__title {
		font-size: 2.2rem;
	}
	.award_article__topics {
		gap: 16px;
	}
}
@media (max-width: 767px) {
	.award_article__title {
		font-size: 1.9rem;
	}
	.award_article__intro {
		flex-direction: column;
		gap: 24px;
	}
	.award_article__cert {
		margin-inline: auto;
	}
	.award_article__gallery {
		grid-template-columns: 1fr;
	}
	.award_article__gallery--two {
		grid-template-columns: 1fr;
	}
	.award_article__theme {
		padding: 20px 16px;
	}
	.award_article__theme_body {
		flex-direction: column;
	}
	.award_article__theme_body img {
		width: 100%;
		max-width: none;
	}
	.award_article__message {
		padding: 24px 16px;
	}
	.award_article__topics {
		grid-template-columns: 1fr;
	}
	.award_nav__list a {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		border-radius: 24px;
	}
}

/* ▼ 採用情報（company_recruit） */
.recruit_card_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
.recruit_card a {
	display: flex;
	align-items: center;
	gap: 20px;
	height: 100%;
	background: #fff;
	box-shadow: var(--shadow-sm);
	border-radius: var(--radius);
	padding: 24px 28px;
}
.recruit_card a:hover {
	background: #fff7f2;
}
.recruit_card__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--bg-soft);
	color: var(--orange);
}
.recruit_card__icon ion-icon {
	font-size: 32px;
}
.recruit_card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.recruit_card__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--ink);
}
.recruit_card__desc {
	font-size: 1.3rem;
	line-height: 1.7;
	color: var(--ink-2);
}
.recruit_card__desc b {
	display: block;
	color: var(--pink);
	font-weight: 700;
}
.recruit_entry {
	padding-block: 0 8px;
}
.recruit_entry__box {
	display: flex;
	align-items: center;
	gap: 32px;
	background: var(--bg-soft);
	border-radius: var(--radius-lg);
	padding: 32px;
}
.recruit_entry__box > img {
	flex-shrink: 0;
	width: 38%;
	max-width: 420px;
	border-radius: var(--radius);
}
.recruit_entry__body {
	flex: 1;
	text-align: center;
}
.recruit_entry__body p {
	font-size: 1.6rem;
	font-weight: 500;
	margin-bottom: 20px;
}
.recruit_news {
	padding-block: 0 80px;
}
.recruit_news__banners {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.recruit_news__banners img {
	width: 348px;
	max-width: 100%;
	border: 1px solid var(--line);
	border-radius: 6px;
	transition: .2s;
}
.recruit_news__banners a:hover img {
	opacity: .8;
}
@media (max-width: 1023px) {
	.recruit_card_list {
		gap: 14px;
	}
	.recruit_card a {
		padding: 20px;
	}
}
@media (max-width: 767px) {
	.recruit_card_list {
		grid-template-columns: 1fr;
	}
	.recruit_entry__box {
		flex-direction: column;
		gap: 20px;
		padding: 24px 16px;
	}
	.recruit_entry__box > img {
		width: 100%;
		max-width: none;
	}
	.recruit_news__banners {
		flex-direction: column;
	}
}

/* ▼ 採用情報 職種詳細 共通（company_recruit_childcare / driver / instructor / reception） */
.recruit_detail__job {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.6rem;
	color: var(--ink);
}
.recruit_detail__type {
	font-family: var(--font-jp);
	font-weight: 700;
	font-size: 1.3rem;
	color: #fff;
	background: var(--orange);
	border-radius: 999px;
	padding: 4px 16px;
}
.recruit_detail__type--closed {
	background: var(--muted);
}
.recruit_detail__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1.5rem;
	line-height: 1.9;
}
.recruit_detail__table th,
.recruit_detail__table td {
	border: 1px solid var(--line);
	padding: 18px 22px;
	text-align: left;
	vertical-align: top;
}
.recruit_detail__table th {
	width: 220px;
	background: var(--bg-soft);
	font-weight: 700;
}
.recruit_detail__table td p {
	margin-bottom: 1em;
}
.recruit_detail__table td p:last-child {
	margin-bottom: 0;
}
.recruit_detail__table td ul li {
	padding-left: 1em;
	text-indent: -1em;
}
.recruit_detail__table td ul li::before {
	content: "・";
}
.recruit_detail__step_head {
	font-weight: 700;
	color: var(--orange);
}
.recruit_detail__steps {
	counter-reset: step;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 1em;
}
.recruit_detail__steps li {
	counter-increment: step;
	position: relative;
	padding-left: 34px;
}
.recruit_detail__steps li::before {
	content: counter(step);
	position: absolute;
	left: 0;
	top: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--orange);
	color: #fff;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.3rem;
	line-height: 1;
}
/* 採用の流れ（ステップ） */
.recruit_detail__flow {
	display: flex;
	flex-direction: column;
	max-width: 720px;
}
.recruit_detail__flow li {
	position: relative;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 8px;
	padding: 16px 24px;
	margin-bottom: 28px;
	font-size: 1.5rem;
	line-height: 1.8;
}
.recruit_detail__flow li:last-child {
	margin-bottom: 0;
}
.recruit_detail__flow li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -20px;
	transform: translateX(-50%);
	border: 7px solid transparent;
	border-top: 12px solid var(--orange);
}
.recruit_detail__flow li b {
	display: block;
	font-weight: 700;
	color: var(--ink);
}
.recruit_detail__flow li span {
	display: block;
	font-size: 1.4rem;
	color: var(--ink-2);
}
/* 説明会・お問い合わせ */
.recruit_detail__dl > div {
	border-bottom: 1px solid var(--line);
	padding: 16px 0;
}
.recruit_detail__dl > div:first-child {
	border-top: 1px solid var(--line);
}
.recruit_detail__dl dt {
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--orange);
	margin-bottom: 4px;
}
.recruit_detail__dl dd {
	font-size: 1.5rem;
	line-height: 1.9;
}
.recruit_detail__dl dd a {
	color: var(--orange);
	text-decoration: underline;
}
.recruit_detail__text {
	font-size: 1.5rem;
	line-height: 2;
}
.recruit_detail__contact {
	background: var(--bg-soft);
	border-radius: var(--radius);
	padding: 28px 32px;
	font-size: 1.5rem;
	line-height: 2;
}
.recruit_detail__address {
	margin-top: 16px;
	font-weight: 500;
}
.recruit_detail__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	margin-top: 48px;
}
@media (max-width: 1023px) {
	.recruit_detail__job {
		font-size: 2.2rem;
	}
	.recruit_detail__table th {
		width: 180px;
	}
}
@media (max-width: 767px) {
	.recruit_detail__job {
		font-size: 1.9rem;
	}
	.recruit_detail__table,
	.recruit_detail__table tr,
	.recruit_detail__table th,
	.recruit_detail__table td {
		display: block;
		width: 100%;
	}
	.recruit_detail__table tr {
		border: 1px solid var(--line);
		border-bottom: none;
	}
	.recruit_detail__table tr:last-child {
		border-bottom: 1px solid var(--line);
	}
	.recruit_detail__table th,
	.recruit_detail__table td {
		border: none;
		padding: 12px 16px;
	}
	.recruit_detail__table th {
		padding-bottom: 8px;
	}
	.recruit_detail__table td {
		padding-top: 0;
	}
	.recruit_detail__contact {
		padding: 20px 16px;
	}
}

/* ▼ 先輩スタッフの声（company_recruit_person） */
.recruit_voice__article {
	max-width: 980px;
	margin-inline: auto;
}
.recruit_voice__header {
	display: flex;
	align-items: center;
	gap: 40px;
	background: var(--bg-soft);
	border-radius: var(--radius-lg);
	padding: 40px;
	margin-bottom: 56px;
}
.recruit_voice__intro {
	flex: 1;
}
.recruit_voice__label {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.4rem;
	letter-spacing: .12em;
	color: var(--orange);
	margin-bottom: 12px;
}
.recruit_voice__catch {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.6;
	color: var(--ink);
	margin-bottom: 18px;
}
.recruit_voice__meta {
	font-size: 1.4rem;
	line-height: 1.8;
	color: var(--ink-2);
}
.recruit_voice__name {
	font-weight: 700;
	font-size: 1.7rem;
	color: var(--ink);
}
.recruit_voice__photo {
	flex-shrink: 0;
	width: 42%;
	max-width: 420px;
	border-radius: var(--radius);
}
.recruit_voice__section {
	margin-bottom: 48px;
}
.recruit_voice__section p {
	font-size: 1.5rem;
	line-height: 2;
	margin-bottom: 1em;
}
.recruit_voice__section p:last-child {
	margin-bottom: 0;
}
.recruit_voice__section--media {
	display: flex;
	align-items: flex-start;
	gap: 32px;
}
.recruit_voice__section_text {
	flex: 1;
}
.recruit_voice__section--media > img {
	flex-shrink: 0;
	width: 36%;
	max-width: 380px;
	border-radius: var(--radius);
	margin-top: 8px;
}
.recruit_voice__actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	margin-top: 48px;
}
@media (max-width: 1023px) {
	.recruit_voice__catch {
		font-size: 2rem;
	}
}
@media (max-width: 767px) {
	.recruit_voice__header {
		flex-direction: column;
		gap: 24px;
		padding: 24px 16px;
	}
	.recruit_voice__photo {
		width: 100%;
		max-width: none;
	}
	.recruit_voice__section--media {
		flex-direction: column;
	}
	.recruit_voice__section--media > img {
		width: 100%;
		max-width: none;
	}
}


/* =========================================================
   ▼▼▼ グループ: course（_css_course.css） ▼▼▼
   ========================================================= */

/* =========================================================
   コース・料金 下層5ページ（course_ordinary_car / course_medium_car /
   course_motorcycle / course_stepup / course_benefit）
   Figmaデザイン準拠（コース紹介＝アコーディオン方式・通常すべて閉）
   規約：BEM（block__element--modifier）× lower_snake_case
   共有ブロック：course_lead / course_acc / course_point / course_notebox /
   price_group / price_card / price_table / info_table / course_cta_btn /
   fee_box / course_select
   ========================================================= */

/* ▼ コース系ページ共通：PC版フレームのコンテンツ幅は1076px（+ .container の左右padding 20px） */
.course_lead .container,
.course_acc_list .container,
.course_fee .container,
.course_select .container,
.benefit_eligible .container,
.benefit_payment .container,
.benefit_flow .container,
.benefit_courses .container,
.corporate_page .container {
	max-width: 1116px;
}

/* ▼ コース共通：導入（ヒーロー直下） */
.course_lead {
	position: relative;
	padding-bottom: 71px;
}
.course_lead .container {
	position: relative;
}
.course_lead .container::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
}
.course_lead__title {
	position: relative;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.4rem;
	line-height: 1.5;
	color: var(--ink);
	margin-top: 16px;
}
.course_lead__text {
	position: relative;
	max-width: 860px;
	font-size: 1.5rem;
	line-height: 2;
	margin-top: 20px;
	font-weight: 500
}
.course_lead__alerts {
	position: relative;
	margin-top: 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.course_lead__alerts li {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--pink);
	line-height: 1.7;
}

/* ▼ コース共通：アコーディオン一覧 */
.course_acc_list {
	padding-top: 8px;
	padding-bottom: 0;
}

/* ▼ アコーディオン（details/summary・通常すべて閉） */
.course_acc {
	position: relative;
	background: #fff;
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}
.course_acc + .course_acc {
	margin-top: 28px;
}
.course_acc__head {
	position: relative;
	display: block;
	padding: 32px 96px 28px 32px;
	cursor: pointer;
	list-style: none;
}
.course_acc__head::-webkit-details-marker {
	display: none;
}
.course_acc__name {
	display: block;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.2rem;
	line-height: 1.4;
	color: var(--ink);
}
.course_acc__desc {
	display: block;
	margin-top: 10px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.7;
	color: var(--orange);
}
.course_acc__schools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}
.course_acc__schools_label {
	font-size: 1.4rem;
	color: var(--ink);
}
.course_acc__tag {
	display: inline-block;
	padding: 4px 15px;
	border-radius: 999px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}
.course_acc__tag--ageo {
	background: #2ea7e0;
}
.course_acc__tag--nishiomiya {
	background: #f9a4d0;
}
.course_acc__stopnote {
	display: block;
	margin-top: 12px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--pink);
	text-align: right;
}
/* バッジ（人気／期間限定） */
.course_acc__badge {
	position: absolute;
	top: -14px;
	right: 24px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--orange);
	color: #fff;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}
.course_acc__badge--limited {
	background: var(--pink);
	font-size: 1.3rem;
}
/* 開閉アイコン（＋／−はCSSで切替） */
.course_acc__toggle {
	position: absolute;
	top: 50%;
	right: 36px;
	width: 22px;
	height: 22px;
	transform: translateY(-50%);
}
.course_acc__toggle::before,
.course_acc__toggle::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--ink);
	transform: translate(-50%, -50%);
	transition: transform .25s ease;
}
.course_acc__toggle::before {
	width: 100%;
	height: 2px;
}
.course_acc__toggle::after {
	width: 2px;
	height: 100%;
}
.course_acc[open] .course_acc__toggle::after {
	transform: translate(-50%, -50%) scaleY(0);
}
.course_acc__body {
	margin: 0 32px;
	padding: 32px 0 40px;
	border-top: 1px solid var(--line);
}
.course_acc__cta {
	text-align: center;
	margin-top: 24px;
}

/* ▼ コースのポイント（丸アイコン＋番号。SPは横スクロール）
   ※PC＝コンテンツ幅1076px時代の5個並び（約200px×5・詰めゆとり）に合わせgapを縮小 */
.course_point {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	padding: 16px 4px 8px;
	-webkit-overflow-scrolling: touch;
}
.course_point__item {
	position: relative;
	flex: 1 1 190px;
	max-width: 240px;
	text-align: center;
}
.course_point__no {
	position: absolute;
	top: -12px;
	left: 4px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--orange);
	color: #fff;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.7rem;
	line-height: 1;
}
.course_point__no small {
	font-size: .9rem;
	font-weight: 500;
	margin-bottom: 2px;
}
.course_point__circle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 124px;
	height: 124px;
	margin: 0 auto;
	border-radius: 50%;
	background: #f1f1f1;
	color: var(--orange);
	font-size: 4.6rem;
}
.course_point__circle ion-icon {
	font-size: 5rem;
}
.course_point__title {
	margin-top: 18px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--orange);
}
.course_point__text {
	margin-top: 8px;
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--ink);
	text-align: left;
}

/* ▼ 注意書きボックス（グレー地） */
.course_notebox {
	margin-top: 28px;
	padding: 20px 24px;
	background: #f3f3f3;
	border-radius: 4px;
}
.course_notebox li {
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.9;
	color: var(--ink);
}

/* ▼ 料金グループ（所持免許種類ごと） */
.price_group {
	margin-top: 40px;
}
.price_group__head {
	display: flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.9rem;
	color: var(--orange);
}
.price_group__head i {
	font-size: 2.4rem;
}

/* ▼ 料金カード（丸バッジAT/MT＋期間別料金） */
.price_card_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-top: 20px;
}
.price_card {
	display: flex;
	align-items: center;
	gap: 24px;
	padding: 22px 26px;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}
.price_card__badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	color: #fff;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 2.1rem;
	line-height: 1.2;
	text-align: center;
}
.price_card__badge small {
	font-family: var(--font-jp);
	font-size: .9rem;
	font-weight: 700;
	line-height: 1.2;
}
.price_card__badge--at {
	background: var(--pink);
}
.price_card__badge--mt {
	background: var(--orange);
}
.price_card__rows {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.price_card__period {
	display: block;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--orange);
}
.price_card__price {
	display: block;
	margin-top: 4px;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ink);
}
.price_card__price small {
	font-size: 1.2rem;
	font-weight: 500;
}

/* ▼ 料金グループ横並び（PC版デザイン準拠：所持免許種類ごとに左右2カラム＋中央縦罫線。
     カラム内はAT/MTカードを縦積み。SPは従来どおり縦積み） */
.price_group_grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 60px;
	margin-top: 24px;
	padding-top: 36px;
	border-top: 1px solid var(--line);
}
.price_group_grid::before {
	content: '';
	position: absolute;
	top: 36px;
	bottom: 0;
	left: 50%;
	width: 1px;
	background: var(--line);
}
.price_group_grid .price_group {
	margin-top: 0;
}
.price_group_grid .price_card_list {
	grid-template-columns: 1fr;
	gap: 14px;
}

/* ▼ 料金・予定表テーブル（SP横スクロールラッパー） */
.price_table_wrap {
	margin-top: 20px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.price_table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	background: #fff;
}
.price_table th,
.price_table td {
	border: 1px solid var(--line);
	padding: 14px 16px;
	font-size: 1.4rem;
	line-height: 1.6;
	text-align: center;
	vertical-align: middle;
}
.price_table thead th {
	background: var(--orange);
	color: #fff;
	font-weight: 700;
}
.price_table tbody th {
	background: var(--bg-soft);
	font-weight: 700;
}
.price_table__cell--em {
	font-weight: 700;
	white-space: nowrap;
}
.price_table__cell--em small {
	display: block;
	font-weight: 500;
	font-size: 1.2rem;
	color: var(--muted);
}

/* ▼ 情報テーブル（見出し＋値の2列） */
.info_table_wrap {
	margin-top: 20px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.info_table {
	width: 100%;
	max-width: 680px;
	border-collapse: collapse;
	background: #fff;
}
.info_table th,
.info_table td {
	border: 1px solid var(--line);
	padding: 12px 18px;
	font-size: 1.4rem;
	line-height: 1.6;
	text-align: left;
}
.info_table th {
	width: 40%;
	background: var(--bg-soft);
	font-weight: 700;
	white-space: nowrap;
}

/* ▼ アコーディオン内CTAボタン（オレンジピル） */
.course_cta_btn {
	position: relative;
	display: block;
	width: 100%;
	margin: 0 auto;
	padding: 18px 48px;
	border-radius: 999px;
	background: var(--orange);
	color: #fff;
	font-size: 1.6rem;
	font-weight: 700;
	text-align: center;
	transition: opacity .25s ease;
}
.course_cta_btn::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateY(-50%) rotate(45deg);
}
.course_cta_btn::before {
	left: 24px;
}
.course_cta_btn::after {
	right: 24px;
}
.course_cta_btn:hover {
	opacity: .8;
}

.cross_link_sec {
	padding-bottom: 0;
}

/* ▼ 追加料金・解約について */
.course_fee {
	padding-top: 0;
}
.fee_boxes {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}
.fee_box {
	padding: 28px 32px;
	background: #f3f3f3;
	border-radius: var(--radius);
}
.fee_box__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.7rem;
	color: var(--ink);
	padding-bottom: 12px;
	border-bottom: 1px solid #ddd;
}
.fee_box__list {
	margin-top: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.fee_box__list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	font-size: 1.4rem;
	line-height: 1.7;
}
.fee_box__list b {
	font-weight: 700;
	white-space: nowrap;
}
.fee_box__text {
	margin-top: 16px;
	font-size: 1.4rem;
	line-height: 1.9;
}

/* ▼ 選択項目（車種・コースの相互リンク） */
.course_select {
	padding-top: 0;
}
.course_select__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}
.course_select__card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	padding: 36px 16px 30px;
	background: #fff;
	border: 1px solid var(--orange);
	border-radius: 6px;
	transition: background .25s ease;
}
.course_select__card:hover {
	background: var(--bg-soft);
}
.course_select__card img {
	width: 60px;
	height: 60px;
}
.course_select__label {
	position: relative;
	padding-right: 16px;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--orange);
}
.course_select__label::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	width: 7px;
	height: 7px;
	border-top: 2px solid var(--orange);
	border-right: 2px solid var(--orange);
	transform: translateY(-50%) rotate(45deg);
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- タブレット以下 -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 1023px) {
	.course_lead__title {
		font-size: 2.8rem;
	}
	/* ポイント並びはSPデザイン準拠（従来値）へ戻す */
	.course_point {
		gap: 28px;
	}
	.course_point__item {
		flex: 1 0 190px;
	}
	/* 料金グループ横並びはPCのみ。タブレット以下は従来の縦積みへ戻す */
	.price_group_grid {
		display: block;
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}
	.price_group_grid::before {
		content: none;
	}
	.price_group_grid .price_group {
		margin-top: 40px;
	}
	.price_group_grid .price_card_list,
	.price_card_list {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.fee_boxes {
		grid-template-columns: 1fr;
	}
	.course_select__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- スマホ -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 767px) {
	.course_lead {
		padding-top: 40px;
		padding-bottom: 60px;
	}
	.course_lead .container::before {
		top: 30px;
		right: 0;
		width: 85%;
		height: 550px;
	}
	.course_lead__title {
		font-size: 2.4rem;
	}
	.course_lead__text {
		font-size: 1.4rem;
	}
	.course_acc__head {
		padding: 26px 64px 22px 20px;
	}
	.course_acc__name {
		font-size: 1.9rem;
	}
	.course_acc__desc {
		font-size: 1.3rem;
	}
	.course_acc__stopnote {
		font-size: 1.05rem;
	}
	.course_acc__badge {
		right: 16px;
		width: 54px;
		height: 54px;
		font-size: 1.4rem;
	}
	.course_acc__badge--limited {
		font-size: 1.2rem;
	}
	.course_acc__toggle {
		right: 22px;
		width: 18px;
		height: 18px;
	}
	.course_acc__body {
		margin: 0 20px;
		padding: 26px 0 32px;
	}
	.course_point {
		gap: 20px;
	}
	.course_point__item {
		flex: 0 0 172px;
	}
	.course_point__title {
		font-size: 1.3rem;
	}
	.price_card {
		padding: 18px 20px;
		gap: 18px;
	}
	.price_card__badge {
		width: 64px;
		height: 64px;
		font-size: 1.8rem;
	}
	.price_card__price {
		font-size: 1.8rem;
	}
	.price_card__price small {
		display: block;
		margin-top: 2px;
	}
	.course_cta_btn {
		max-width: none;
	}
	.course_fee {
		padding-bottom: 40px;
	}
	.fee_box {
		padding: 22px 20px;
	}
	.fee_box__list li {
		flex-direction: column;
		gap: 2px;
	}
	.course_select__card {
		padding: 28px 12px 24px;
	}
	.course_select__label {
		font-size: 1.3rem;
	}
}

/* =========================================================
   追加分：course_medium_car（準中型・中型）
   vehicle_head / school_pill / price_card__hours / corp_*（法人限定） / spec_*
   ========================================================= */

/* ▼ 車種見出し（区切り線＋タイトル＋スペック＋取扱校） */
.vehicle_head {
	margin: 72px 0 8px;
	padding-top: 48px;
	border-top: 1px solid var(--line);
}
.course_acc_list .container > .vehicle_head:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.vehicle_head__title {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.4;
	color: var(--ink);
}
.vehicle_head__title--sub {
	margin-top: 24px;
	font-size: 2.2rem;
	color: var(--orange);
}
.vehicle_head__en {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.2rem;
	letter-spacing: .05em;
	color: var(--ink);
}
.vehicle_head__spec {
	margin-top: 16px;
	font-size: 1.5rem;
	line-height: 1.9;
}
.vehicle_head__schools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 19px;
}
.vehicle_head__schools_label {
	font-size: 1.4rem;
	color: var(--ink);
}
.vehicle_head + .course_acc {
	margin-top: 24px;
}

/* ▼ 車種2カラム（PC版デザイン準拠：左右に車種ブロック＋中央縦罫線。SPは従来の縦一列） */
.vehicle_grid {
	position: relative;
	display: grid;
	/* カラム内の横スクロールテーブル（reserve_table等）でカラム幅が崩れないよう minmax(0,1fr) */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 60px;
	align-items: start;
}
.vehicle_grid::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 1px;
	background: var(--line);
}
.vehicle_grid .vehicle_head {
	margin: 0 0 8px;
	padding-top: 0;
	border-top: 0;
}
.vehicle_grid + .vehicle_grid {
	margin-top: 64px;
	padding-top: 56px;
	border-top: 1px solid var(--line);
}
/* 2カラム時は料金カードをカラム幅いっぱいの1列に */
.vehicle_grid .price_card_list {
	grid-template-columns: 1fr;
}

/* ▼ 校舎ピル（vehicle_head・法人プラン内で使用） */
.school_pill {
	display: inline-block;
	padding: 4px 15px;
	border-radius: 999px;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
}
.school_pill--ageo {
	background: #2ea7e0;
}
.school_pill--nishiomiya {
	background: #f9a4d0;
}

/* ▼ 料金カード：教習時限バッジ（技能＝ピンク／学科＝オレンジ・重ね円） */
.price_card__hours {
	display: flex;
	flex-shrink: 0;
}
.price_card__hour {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
	border-radius: 50%;
	color: #fff;
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.3;
	text-align: center;
}
.price_card__hour small {
	font-size: .9rem;
	font-weight: 700;
}
.price_card__hour--skill {
	background: var(--pink);
	z-index: 1;
}
.price_card__hour--class {
	background: var(--orange);
	margin-left: -10px;
}

/* ▼ アコーディオンバッジ：法人限定（ダーク） */
.course_acc__badge--corp {
	background: var(--ink);
	font-size: 1.3rem;
}

/* ▼ 法人限定：お悩みチェックボックス */
/* FV下のページタイトル（ABOUT + 法人限定特別プラン） */
.corp_page_title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 4rem;
	line-height: 1.4;
	margin: 8px 0 28px;
}
@media (max-width: 767px) {
	.corp_page_title {
		font-size: 2.8rem;
		margin-top: 38px;
		margin-bottom: 29px;
	}
}

.corp_check {
	padding: 26px 28px;
	background: #f3f3f3;
	border-radius: 6px;
}
.corp_check__list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.corp_check__list li {
	position: relative;
	padding-left: 30px;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
	color: var(--ink);
}
.corp_check__list li::before {
	content: '';
	background: url('../images/icons/ic-check-corp.svg') no-repeat center / contain;
	width: 19px;
	height: 17px;
	position: absolute;
	left: 0;
	top: 0;
	color: var(--pink);
	font-size: 1.7rem;
}
.corp_check__lead {
	margin-top: 24px;
	font-size: 1.5rem;
	line-height: 2;
	padding-bottom: 40px;
}

/* ▼ 法人限定：ポイント（大きな番号＋ピルラベル。PC版デザイン＝2カラム横並び） */
.corp_point {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px 60px;
	margin-top: 13px;
}
.corp_point__item {
	display: flex;
	gap: 20px;
}
.corp_point__item:nth-child(2) .corp_point__title::first-line {
	color: var(--orange);
}
.corp_point__no {
	flex-shrink: 0;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 7.2rem;
	line-height: 1;
	color: var(--orange-2);
}
.corp_point__label {
	display: inline-block;
	padding: 5px 16px;
	border-radius: 999px;
	background: var(--orange);
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
}
.corp_point__title {
	margin-top: 8px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2rem;
	line-height: 1.5;
	color: var(--ink);
}
.corp_point__title mark {
	background: none;
	color: var(--pink);
}
.corp_point__text {
	margin-top: 12px;
	font-size: 1.5rem;
	line-height: 1.9;
	font-weight: 500;
}
.corp_point__note {
	margin-top: 8px;
	font-size: 1rem;
	line-height: 1.8;
	color: var(--muted);
	margin-bottom: 20px;
}

/* ▼ 法人限定：中見出し */
.corp_headline {
	margin-top: 100px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.5;
	color: var(--ink);
	margin-top: 26px;
}

/* ▼ 法人限定：取り扱い車種（写真＋スペックカード） */
.corp_vehicle {
	margin-top: 32px;
}
/* PC版デザイン＝車種2カラム（準中型車｜中型車）。カラム内スペックカードは2×2 */
.corp_vehicle_grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 60px;
	align-items: start;
	margin-top: 45px;
	padding-bottom: 10px;
}
.corp_vehicle_grid .corp_vehicle {
	margin-top: 0;
}
.corp_vehicle_grid .spec_grid {
	grid-template-columns: repeat(2, 1fr);
}
/* 左右の写真高さを揃える（PC版デザインは同寸の横位置写真） */
.corp_vehicle_grid .corp_vehicle__photo img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}
.corp_vehicle__photo img {
	width: 100%;
	max-width: 720px;
	border-radius: var(--radius);
}
.spec_grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 18px;
}
.spec_card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 13px;
	padding: 28px 12px 24px;
	background: #fff;
	border-radius: 25px;
	text-align: center;
	border: 1px solid var(--line);
}
.spec_card i,
.spec_card ion-icon {
	font-size: 3.6rem;
	color: var(--orange);
}
img.spec_card__icon {
	width: 36px;
	height: 36px;
	object-fit: contain;
}
.spec_card__label {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--orange);
}
.spec_card__value {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--ink);
}

/* ▼ 法人限定：教習開始までの流れ（PC版デザイン＝左に見出し・右にフロー一式の2カラム） */
.corporate_page {
	padding-top: 60px;
}
.corporate_page .container {
	position: relative;
}
.corporate_page .container::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 350px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
	z-index: -1;
}
.corp_flow_grid {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	/* ラベルはグリッドの外（上）に出したため間隔を圧縮 */
	margin-top: 24px;
}
.corp_flow_head {
	flex-basis: 34%;
}
.corp_flow_box {
	flex-basis: 60%;
	border-radius: 30px;
	background: #FFF;
	box-shadow: 2px 5px 10px 0 rgba(105, 92, 92, 0.25);
	padding: 40px 30px;
}
.corp_flow_grid .corp_headline {
	margin-top: 0;
}
.corp_flow_grid .corp_flow {
	margin-top: 0;
}

/* ▼ 法人限定：教習開始までの流れ */
.corp_flow {
	margin-top: 24px;
	padding: 8px 0;
	display: flex;
	flex-direction: column;
}
.corp_flow__step {
	position: relative;
	padding-bottom: 44px;
}
.corp_flow__step::after {
	content: '';
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-top: 12px solid var(--ink);
}
.corp_flow__label {
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.5rem;
	color: var(--pink);
}
.corp_flow__title {
	margin-top: 4px;
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--ink);
}
.corp_flow__text {
	margin-top: 6px;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.8;
	color: var(--orange);
}
.corp_flow__goal {
	text-align: center;
	border-bottom: 1px solid var(--line);
	padding-bottom: 25px;
}
.corp_flow__goal span {
	display: inline-block;
	width: 100%;
	padding: 16px 40px;
	border: 2px solid var(--pink);
	border-radius: 999px;
	color: var(--pink);
	font-size: 1.7rem;
	font-weight: 700;
	text-align: center;
}

/* ▼ 解約ボックスを全幅に */
.fee_box--wide {
	grid-column: 1 / -1;
}
.fee_box__note {
	margin-top: 14px;
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--muted);
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- タブレット以下（追加分） -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 1023px) {
	/* 車種2カラムはPCのみ。タブレット以下は従来の縦一列＋車種見出しの区切り罫線へ戻す */
	.vehicle_grid {
		display: block;
	}
	.vehicle_grid::before {
		content: none;
	}
	.vehicle_grid .vehicle_head {
		margin: 72px 0 8px;
		padding-top: 48px;
		border-top: 1px solid var(--line);
	}
	.vehicle_grid:first-child .vehicle_col:first-child > .vehicle_head:first-child {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}
	.vehicle_grid + .vehicle_grid {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}
	.vehicle_head__title {
		font-size: 2.4rem;
	}
	.spec_grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.fee_box--wide {
		grid-column: auto;
	}
	/* 法人限定：2カラム化はPCのみ。タブレット以下は従来の縦積みへ戻す */
	.corp_point {
		display: flex;
		flex-direction: column;
		gap: 40px;
	}
	.corp_vehicle_grid {
		display: block;
		margin-top: 0;
	}
	.corp_vehicle_grid .corp_vehicle {
		margin-top: 45px;
	}
	.corp_vehicle_grid .corp_vehicle__photo img {
		width: 100%;
		height: 274px;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: bottom;
	}
	.corp_flow_grid {
		display: block;
		margin-top: 0;
	}
	.corp_flow_grid .corp_headline {
		margin-top: 0;
		margin-bottom: 22px;
	}
	.corp_flow_grid .corp_flow {
		margin-top: 0;
		
	}
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- スマホ（追加分） -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 767px) {
	.vehicle_head {
		margin-top: 56px;
		padding-top: 40px;
	}
	.vehicle_head__title {
		font-size: 2.1rem;
	}
	.vehicle_head__title--sub {
		font-size: 3.2rem;
	}
	.vehicle_head__spec {
		font-size: 1.4rem;
	}
	.price_card__hour {
		width: 60px;
		height: 60px;
		font-size: 1.4rem;
	}
	.corporate_page {
		padding-bottom: 40px;
	}
	.corporate_page .container .block-label {
		margin-top: 52px;
		margin-bottom: 26px;
	}
	.corp_point__no {
		font-size: 4.2rem;
	}
	.corp_point__title {
		font-size: 1.8rem;
	}
	.corp_check__lead {
		font-size: 1.6rem;
		padding-bottom: 0;
	}
	.corp_headline {
		font-size: 2.8rem;
	}
	.corp_flow__goal span {
		min-width: 0;
		width: 100%;
	}
	.corp_flow__title {
		margin-top: 0;
		font-size: 1.9rem;
	}
	.corp_flow_box {
		padding: 40px 20px;
	}
}

/* =========================================================
   追加分：course_motorcycle（自動二輪車）
   vehicle_head__sub / course_acc__intro / price_card__license / reserve_table
   ========================================================= */

/* ▼ 車種見出しの排気量表記 */
.vehicle_head__sub {
	font-size: 1.8rem;
	font-weight: 700;
}

/* ▼ アコーディオン内の説明文 */
.course_acc__intro {
	font-size: 1.5rem;
	line-height: 2;
}
.course_acc__intro + .note-text {
	margin-top: 45px;
}

/* ▼ 料金カード内の所持免許ラベル */
.price_card__license {
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1.5;
	color: var(--ink);
	margin-bottom: 4px;
}

/* ▼ 予約可能時限テーブル（色付き＝予約可） */
.reserve_table {
	min-width: 860px;
}
.reserve_table th,
.reserve_table td {
	padding: 10px 8px;
	font-size: 1.2rem;
	white-space: nowrap;
}
.reserve_table__cell--on {
	background: #fdeadd;
	color: var(--orange);
	font-weight: 700;
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- スマホ（二輪追加分） -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 767px) {
	.vehicle_head__sub {
		font-size: 1.5rem;
	}
	.course_acc__intro {
		font-size: 1.4rem;
	}
}

/* =========================================================
   追加分：course_benefit（教育訓練給付金制度）
   benefit_label / benefit_title / benefit_box / rate_card /
   benefit_group_head / benefit_spec / benefit_req / benefit_price
   ========================================================= */

/* ▼ セクション小ラベル（ピンクバー＋英字） */
.benefit_label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.4rem;
	letter-spacing: .05em;
	color: var(--ink);
}
.benefit_label::before {
	content: '';
	width: 5px;
	height: 18px;
	background: var(--pink);
}
.benefit_title {
	margin-top: 16px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3rem;
	line-height: 1.5;
	color: var(--ink);
}
.benefit_eligible,
.benefit_payment,
.benefit_flow,
.benefit_courses {
	padding-top: 24px;
}

/* ▼ 支給対象者ボックス（PC版デザイン＝箱内2カラム。SPは従来の縦積み） */
.benefit_box {
	margin-top: 28px;
	padding: 32px;
	background: #f3f3f3;
	border-radius: 6px;
	display: flex;
	flex-direction: row;
	gap: 60px;
}
.benefit_box__item {
	flex: 1;
	min-width: 0;
}
.benefit_box__head {
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--ink);
}
.benefit_box__text {
	margin-top: 12px;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 2;
}
.benefit_box__note {
	margin-top: 10px;
	font-size: 1.2rem;
	line-height: 1.8;
	color: var(--muted);
}

/* ▼ 支給額カード（20%／40%） */
.rate_card_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin-top: 28px;
}
.rate_card {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 24px 28px;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}
.rate_card__badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	color: #fff;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 2.4rem;
	line-height: 1;
}
.rate_card__badge small {
	display: inline;
	font-size: 1.2rem;
}
.rate_card__badge span {
	font-family: var(--font-jp);
	font-size: 1.1rem;
	font-weight: 700;
	margin-top: 2px;
}
.rate_card__badge--general {
	background: var(--pink);
}
.rate_card__badge--specific {
	background: var(--orange);
}
.rate_card__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.8rem;
	color: var(--ink);
}
.rate_card__text {
	margin-top: 8px;
	font-size: 1.4rem;
	line-height: 1.8;
}
.benefit_payment__note {
	margin-top: 24px;
	font-size: 1.4rem;
	line-height: 2;
}
.benefit_payment__note a {
	color: var(--orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.benefit_payment__note a:hover {
	opacity: .7;
}

/* ▼ ご利用の流れ：アコーディオンとの余白 */
.benefit_flow .course_acc {
	margin-top: 28px;
}

/* ▼ アコーディオン2カラム（PC版デザイン準拠：ご利用の流れ＝特定一般｜一般 横並び） */
.benefit_acc_grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px 35px;
	align-items: start;
	margin-top: 28px;
}
.benefit_acc_grid .course_acc {
	margin-top: 0;
}
.benefit_acc_grid .course_acc + .course_acc {
	margin-top: 0;
}
.corp_flow__text a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ▼ 対象講座一覧：校舎グループ2カラム（PC版デザイン準拠。SPは従来の縦一列） */
.benefit_group_grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 35px;
	align-items: start;
	margin-top: 40px;
}
.benefit_group_grid + .benefit_group_grid {
	margin-top: 64px;
	padding-top: 32px;
	border-top: 1px solid var(--line);
}
.benefit_group_grid .benefit_group_head {
	margin-top: 0;
}

/* ▼ 対象講座一覧：校舎グループ見出し */
.benefit_group_head {
	display: flex;
	align-items: center;
	gap: 18px;
	margin: 64px 0 8px;
}
.benefit_group_head__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
}
.benefit_group_head__badge--ageo {
	background: var(--orange);
}
.benefit_group_head__badge--nishiomiya {
	background: var(--orange-2);
}
.benefit_group_head__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	color: var(--ink);
}

/* ▼ 講座アコーディオンの見出し要素 */
.course_acc__cond {
	display: block;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--orange);
	margin-bottom: 6px;
}
.course_acc__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
}
.course_acc__period {
	display: inline-block;
	padding: 4px 15px;
	border-radius: 999px;
	background: var(--orange-2);
	color: #fff;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.4;
}
.course_acc__no {
	font-size: 1.2rem;
	color: var(--ink);
}

/* ▼ 講座スペック（制度区分／講座内容／指定番号） */
.benefit_spec {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.benefit_spec li {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--ink);
}
.benefit_spec__label {
	flex-shrink: 0;
	padding: 3px 10px;
	border: 1px solid var(--ink);
	font-size: 1.2rem;
	font-weight: 500;
}

/* ▼ 受講資格・料金カード */
.benefit_req {
	margin-top: 24px;
	padding: 24px 28px;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-sm);
}
.benefit_req__label {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--ink);
}
.benefit_req__value {
	margin-top: 4px;
	padding-bottom: 14px;
	border-bottom: 1px dotted var(--line);
	font-size: 1.7rem;
	font-weight: 700;
	color: var(--orange);
}
.benefit_price {
	margin-top: 6px;
	display: flex;
	flex-direction: column;
}
.benefit_price li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
}
.benefit_price li + li {
	border-top: 1px dotted var(--line);
}
.benefit_price__label {
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--orange);
}
.benefit_price__value {
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--ink);
	white-space: nowrap;
}
.benefit_price__value small {
	font-size: 1.1rem;
	font-weight: 500;
	margin-right: 6px;
}
.benefit_contact_note {
	margin-top: 24px;
	font-size: 1.4rem;
	line-height: 2;
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- タブレット以下（benefit追加分） -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 1023px) {
	.rate_card_list {
		grid-template-columns: 1fr;
	}
	/* 2カラム化はPCのみ。タブレット以下は従来の縦積みへ戻す */
	.benefit_box {
		flex-direction: column;
		gap: 32px;
	}
	.benefit_acc_grid {
		display: block;
		margin-top: 0;
	}
	.benefit_acc_grid .course_acc,
	.benefit_acc_grid .course_acc + .course_acc {
		margin-top: 28px;
	}
	.benefit_group_grid {
		display: block;
		margin-top: 0;
	}
	.benefit_group_grid + .benefit_group_grid {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}
	.benefit_group_grid .benefit_group_head {
		margin-top: 64px;
	}
}

/* ----▼---▼▼--▼▼▼-▼▼▼▼- スマホ（benefit追加分） -▼▼▼▼-▼▼▼--▼▼---▼---- */
@media (max-width: 767px) {
	.benefit_title {
		font-size: 2.4rem;
	}
	.benefit_box {
		padding: 24px 20px;
	}
	.rate_card {
		padding: 20px;
	}
	.rate_card__title {
		font-size: 1.6rem;
	}
	.benefit_group_head__badge {
		width: 54px;
		height: 54px;
		font-size: 1.3rem;
	}
	.benefit_group_head__title {
		font-size: 2rem;
	}
	.benefit_spec li {
		flex-direction: column;
		align-items: flex-start;
		gap: 6px;
	}
	.benefit_price__value {
		font-size: 1.6rem;
	}
}


/* =========================================================
   ▼▼▼ グループ: forms（_css_forms.css） ▼▼▼
   ========================================================= */

/* =========================================================
   3階層目 フォーム系ページ（外注コーディング範囲）
   対象: reserve_ageo / reserve_nishiomiya / register /
         at_freeform / catalog / privacy
   参照: Figma qBwzcj5C9ed3Ix3My1khDc（SP 440px）
         PC版はHPページ（425:30）内の各フレームを実測（対応表: _notes_forms_pc.md）
   規約: BEM × lower_snake_case ／ PC基準 → @media(max-width:1023px), (max-width:767px)
   ========================================================= */

/* ▼▼▼ フォーム共有ブロック ▼▼▼ */

/* PCの左寄り解消：Figma PC版実測（コンテンツ幅1083px・container 1396内で中央）に合わせ、
   フォーム系ページのcontainerを 1080px＋padding-inline 40px に絞って中央寄せ
   （.container は common.css で margin-inline: auto 済み） */
.reserve_time .container,
.reserve_schedule .container,
.reserve_form .container,
.register_intro .container,
.register_discount .container,
.register_form .container,
.freeform_intro .container,
.freeform_form .container,
.catalog_intro .container,
.catalog_form .container,
.privacy_doc .container {
	max-width: 1120px;
}

/* セクション見出し（英字ラベル＋罫線＋和文タイトル）
   ※Figmaのラベル縦棒はピンク（--pink）。common.css の .block-label（オレンジ）とは別物 */
.form_head {
	margin-bottom: 28px;
}
.form_head__en {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.6rem;
	color: var(--ink);
}
.form_head__en::before {
	content: '';
	width: 4px;
	height: 20px;
	background: var(--pink);
}
.form_head__en::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--line);
}
.form_head__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.4rem;
	line-height: 1.4;
	color: var(--ink-3);
	margin-top: 20px;
}

/* リード文 */
.form_lead {
	font-size: 1.6rem;
	line-height: 2;
}
.form_lead a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.form_lead a:hover {
	opacity: .7;
}

/* ご案内などの導入文 */
.form_intro_text {
	font-size: 1.6rem;
	line-height: 2;
}

/* 注記（※〜） */
.form_note {
	font-size: 1.4rem;
	line-height: 1.9;
	margin-top: 28px;
}
.form_note a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* フォームカード（グレー角丸）
   PCはFigma実測：コンテンツ幅いっぱい（1083px）／内側余白 上69・左右57・下55 ≒ 64/56/56 */
.form_card {
	background: #f3f3f3;
	border-radius: var(--radius-lg);
	padding: 64px 56px 56px;
}
.form_card > .form_field + .form_field {
	margin-top: 30px;
}

/* 2カラム行（Figma PC版：お名前＋ふりがな／電話番号＋メールアドレス 等の横並び） */
.form_row {
	display: flex;
	gap: 36px;
}
.form_row > * {
	flex: 1;
	min-width: 0;
}
.form_card > .form_row + .form_field,
.form_card > .form_field + .form_row,
.form_card > .form_row + .form_row {
	margin-top: 30px;
}
.form_row .form_name_pair,
.form_row .form_input_text--full {
	max-width: none;
}

/* セレクト＋入力欄の横並び行（住所：都道府県＋市区町村／ご職業・入校予定時期：選択＋その他入力） */
.form_inline_row {
	display: flex;
	gap: 8px;
}
.form_inline_row > .form_input_text {
	display: block;
	flex: 1;
	max-width: none;
}
.form_field > .form_inline_row + .form_input_text {
	display: block;
	margin-top: 12px;
	max-width: none;
}

/* ラベル横並び項目（Figma PC版：郵便番号・希望校・性別・支払い方法 等はラベルと選択肢が同一行）
   fieldset は flex 非対応ブラウザ対策で legend を float して横並びにする */
div.form_field--inline {
	display: flex;
	align-items: center;
}
.form_field--inline > .form_field__label {
	float: left;
	margin-right: 24px;
	margin-bottom: 0;
}
.form_field--inline::after {
	content: '';
	display: block;
	clear: both;
}

/* 項目（ラベル上・入力下） */
.form_field {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}
.form_field__label {
	display: block;
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ink);
	padding: 0;
	margin-bottom: 12px;
}
.form_field__label small {
	font-size: .86em;
}
.form_field__label_note {
	display: block;
	font-size: 1.15rem;
	font-weight: 400;
	margin-top: 2px;
}
.form_field__note {
	font-size: 1.2rem;
	color: var(--muted);
	margin-top: 8px;
}
.form_field > .form_input_text {
	display: block;
}
.form_field > .form_select + .form_input_text,
.form_field > .form_select + .form_select,
.form_field > .form_input_text + .form_input_text {
	margin-top: 12px;
}

/* 選択肢の並び */
.form_choices {
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
}
.form_choices--column {
	flex-direction: column;
	align-items: flex-start;
}
.form_choices--grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

/* ラジオ */
.form_radio {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 1.3rem;
	line-height: 1.4;
	cursor: pointer;
}
.form_radio input {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin: 0;
	border: 1px solid #c9c9c9;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}
.form_radio input:checked {
	border-color: var(--orange);
	background: var(--orange);
	box-shadow: inset 0 0 0 3px #fff;
}
.form_radio input:focus-visible,
.form_checkbox input:focus-visible {
	outline: 2px solid var(--orange);
	outline-offset: 2px;
}

/* チェックボックス */
.form_checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 7px;
	font-size: 1.3rem;
	line-height: 1.4;
	cursor: pointer;
}
.form_checkbox input {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin: 0;
	border: 1px solid #c9c9c9;
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	position: relative;
}
.form_checkbox input:checked {
	border-color: var(--orange);
	background: var(--orange);
}
.form_checkbox input:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* テキスト入力 */
.form_input_text {
	width: 100%;
	max-width: 420px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #fff;
	padding: 12px 14px;
	font-size: 1.4rem;
	line-height: 1.4;
	color: var(--ink);
}
.form_input_text--full {
	max-width: 460px;
}
.form_input_text--xs {
	width: 98px;
	padding-inline: 12px;
}
.form_input_text::placeholder,
.form_input_textarea::placeholder {
	color: #b5b0ac;
}
.form_input_text:focus,
.form_input_textarea:focus,
.form_select select:focus {
	outline: none;
	border-color: var(--orange);
}

/* 姓名 2分割 */
.form_name_pair {
	display: flex;
	gap: 20px;
	max-width: 460px;
}
.form_name_pair .form_input_text {
	min-width: 0;
}

/* テキストエリア（Figma PC版はカード内側いっぱい） */
.form_input_textarea {
	display: block;
	width: 100%;
	min-height: 165px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: #fff;
	padding: 14px;
	font-size: 1.4rem;
	line-height: 1.7;
	color: var(--ink);
	resize: vertical;
}

/* セレクト（白角丸＋▼） */
.form_select {
	position: relative;
	display: inline-block;
}
.form_select select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #fff;
	padding: 12px 36px 12px 12px;
	font-size: 1.4rem;
	line-height: 1.4;
	color: var(--ink);
	min-width: 78px;
	cursor: pointer;
}
.form_select::after {
	content: '';
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-25%);
	border: 6px solid transparent;
	border-top: 7px solid var(--ink);
	pointer-events: none;
}
.form_select--wide {
	display: block;
}
.form_select--wide select {
	width: 100%;
	padding-right: 44px;
}


/* 単位付き入力の行（生年月日・年齢 など） */
.form_unit_row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.form_unit_row__unit {
	font-size: 1.4rem;
	margin-right: 10px;
}

/* 送信ボタン（ピンクピル＋白丸プラス）※Figma PC版はカード内で中央寄せ */
.form_submit {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: 460px;
	margin-inline: auto;
	margin-top: 44px;
	background: var(--pink);
	color: #fff;
	font-weight: 700;
	font-size: 1.6rem;
	font-family: inherit;
	border: 0;
	border-radius: 999px;
	padding: 15px 12px 15px 24px;
	cursor: pointer;
	transition: .2s;
}
.form_submit:hover {
	opacity: .85;
}
.form_submit__icon {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--pink);
	font-weight: 700;
	font-size: 2rem;
	line-height: 1;
}

/* ▼▼▼ reserve（ご案内予約 上尾校／西大宮校） ▼▼▼ */

/* セクション間隔（Figmaの詰まり具合に合わせて .section 既定より狭める） */
.reserve_time {
	padding-bottom: 0;
}
.reserve_schedule {
	padding-block: 56px 0;
}

/* 所要時間カード（Figma PC版は2枚横並び：530px×2・間隔23px） */
.reserve_time__cards {
	margin-top: 32px;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}
.reserve_time__card {
	display: flex;
	align-items: center;
	gap: 20px;
	background: #f3f3f3;
	border-radius: var(--radius-lg);
	padding: 26px 32px;
}
.reserve_time__desc {
	max-width: 60%;
}
.reserve_time__name {
	font-weight: 700;
	font-size: 1.7rem;
	line-height: 1.5;
}
.reserve_time__small {
	font-size: 1.3rem;
	line-height: 1.6;
	margin-top: 2px;
}
.reserve_time__leader {
	flex: 1;
	border-top: 2px dashed #cfcbc4;
}
.reserve_time__min {
	flex-shrink: 0;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}
.reserve_time__min b {
	font-size: 3rem;
	font-weight: 700;
}

/* 予約状況（本番は予約システム埋め込み／Figmaはexample.comのプレースホルダー表現） */
.reserve_embed {
	background: #f3f3f3;
	border-radius: var(--radius-lg);
	overflow: hidden;
	position: relative;
	max-width: 1080px;
}
.reserve_embed__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 40px 6px;
	color: #b5b0ac;
	font-size: 1.4rem;
}
.reserve_embed__prev,
.reserve_embed__next {
	border: 0;
	background: none;
	color: inherit;
	font-size: inherit;
	font-family: inherit;
	cursor: pointer;
	padding: 4px;
}
.reserve_embed__month {
	font-size: 1.6rem;
}
.reserve_embed__scroll {
	overflow-x: auto;
	padding: 10px 20px 0;
}
.reserve_embed__table {
	border-collapse: collapse;
	width: 100%;
	min-width: 900px;
}
.reserve_embed__table th,
.reserve_embed__table td {
	border: 1px solid #fff;
	min-width: 56px;
	height: 50px;
	text-align: center;
	vertical-align: middle;
	font-weight: 500;
}
.reserve_embed__table tr:first-child th {
	border-top: 0;
	height: 56px;
}
.reserve_embed__table th:first-child,
.reserve_embed__table td:first-child {
	border-left: 0;
}
.reserve_embed__table th:last-child,
.reserve_embed__table td:last-child {
	border-right: 0;
}
.reserve_embed__table tr:last-child th,
.reserve_embed__table tr:last-child td {
	border-bottom: 0;
}
.reserve_embed__table th span {
	display: block;
	font-size: 1.5rem;
	line-height: 1.2;
}
.reserve_embed__table th small {
	display: block;
	font-size: 1rem;
	line-height: 1.2;
}
.reserve_embed__time {
	font-size: 1.5rem;
	white-space: nowrap;
	padding-inline: 14px;
	text-align: left;
}
.reserve_embed__legend {
	font-size: 1.2rem;
	line-height: 1.8;
	padding: 20px 24px 24px;
}

/* 予約フォーム固有 */
.reserve_form__datetime_row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}
.reserve_form__datetime_value {
	font-size: 1.4rem;
}
.reserve_form__change {
	border: 0;
	background: var(--orange);
	color: #fff;
	font-size: 1.3rem;
	font-weight: 500;
	font-family: inherit;
	border-radius: 999px;
	padding: 4px 14px;
	cursor: pointer;
	transition: .2s;
}
.reserve_form__change:hover {
	opacity: .8;
}

/* ▼▼▼ register（Web申し込み／仮申込み） ▼▼▼ */

/* セクション間隔 */
.register_intro {
	/* #399 #400: ヒーロー直下の余白はflow系(72px)に統一 */
	padding-block: 72px 0;
}
/* 先頭block-labelの汎用margin-top(64px)を無効化（上余白はsection側で管理） */
.register_intro .block-label,
.freeform_intro .block-label,
.catalog_intro .block-label,
.houjin_intro .block-label {
	margin-top: 0;
}
.register_discount {
	padding-block: 56px;
}
.register_form {
	padding-top: 0;
}
.register_form .block-label {
	margin-top: 56px;
}

/* 割引サービス（Figma PC版はリード文左（約280px）＋カード右（残り）の2カラム） */
.register_discount .container {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	column-gap: 80px;
	align-items: start;
}
.register_discount .block-label {
	grid-column: 1 / -1;
}
.register_discount .form_lead {
	grid-column: 1;
}
.register_discount .form_note {
	grid-column: 2;
}

/* 割引サービスカード */
.register_discount__cards {
	grid-column: 2;
	display: grid;
	gap: 20px;
}
.register_discount__card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	background: #f3f3f3;
	border-radius: var(--radius-lg);
	padding: 22px 32px;
}
.register_discount__name {
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.5;
}
.register_discount__small {
	display: block;
	font-weight: 400;
	font-size: 1.2rem;
}
.register_discount__price {
	flex-shrink: 0;
	color: var(--orange);
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1;
	white-space: nowrap;
}
.register_discount__price b {
	font-size: 2.4rem;
	font-weight: 700;
}

/* ▼▼▼ at_freeform（無料体験申し込み） ▼▼▼ */

/* セクション間隔 */
.freeform_intro {
	padding-block: 72px 0;
}
.freeform_form {
	padding-top: 0;
}
.freeform_form .block-label {
	margin-top: 56px;
}

/* 希望車種の休止注記（二輪無料体験の休止） */
.freeform_cartype_note {
	color: var(--pink);
	font-weight: 500;
}

/* 取得免許「その他」入力（Figma PC版はカード内側いっぱい） */
.freeform_license_other {
	margin-top: 16px;
	max-width: none;
}

/* 希望体験日（第1希望・第2希望） */
.freeform_wish + .freeform_wish {
	margin-top: 26px;
}
.freeform_wish__row {
	display: flex;
	align-items: center;
	gap: 18px;
	margin-bottom: 14px;
}
.freeform_wish__sub {
	font-size: 1.4rem;
}
.freeform_day_note {
	font-size: .9em;
	margin-left: 8px;
}

/* 送信前の注意書き（罫線で区切り） */
.form_fineprint {
	margin-top: 40px;
	padding-block: 18px;
	border-top: 1px solid #ddd8d3;
	border-bottom: 1px solid #ddd8d3;
	font-size: 1.2rem;
	line-height: 1.9;
	font-weight: 500;
}
.form_fineprint a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.form_fineprint a:hover {
	opacity: .7;
}

/* 同意チェック（中央寄せ） */
.form_agree {
	display: flex;
	justify-content: center;
	margin-top: 28px;
}

/* ▼▼▼ catalog（資料請求） ▼▼▼ */

/* セクション間隔 */
.catalog_intro {
	padding-block: 72px 0;
}
.catalog_form {
	padding-top: 0;
}
.catalog_form .block-label {
	margin-top: 56px;
}

/* ▼▼▼ houjin セクション間隔（#399 #400） ▼▼▼ */
.houjin_intro {
	padding-block: 72px 0;
}
.houjin_form {
	padding-top: 32px;
}

/* ▼▼▼ privacy（プライバシーポリシー） ▼▼▼ */

.privacy_doc__list {
	counter-reset: privacy_main;
	display: grid;
	gap: 28px;
}
.privacy_doc__item {
	counter-increment: privacy_main;
	position: relative;
	padding-left: 2.2em;
	font-size: 1.5rem;
	line-height: 1.9;
}
.privacy_doc__item::before {
	content: counter(privacy_main) ".";
	position: absolute;
	left: .4em;
	top: 0;
}
.privacy_doc__sublist {
	counter-reset: privacy_sub;
	background: #f3f3f3;
	border-radius: var(--radius);
	padding: 24px 28px;
	margin-top: 20px;
	display: grid;
	gap: 14px;
}
.privacy_doc__sublist li {
	counter-increment: privacy_sub;
	position: relative;
	padding-left: 1.8em;
	font-size: 1.3rem;
	line-height: 1.7;
	font-weight: 500;
}
.privacy_doc__sublist li::before {
	content: counter(privacy_sub) ".";
	position: absolute;
	left: .2em;
	top: 0;
}
.privacy_doc__contacts {
	margin-top: 20px;
	display: grid;
	gap: 20px;
}
.privacy_doc__contact {
	background: #f3f3f3;
	border-radius: var(--radius);
	padding: 20px 28px;
	font-size: 1.4rem;
	line-height: 1.8;
	font-weight: 500;
}
.privacy_doc__tel {
	margin-top: 10px;
	font-weight: 700;
}
.privacy_doc__sign {
	margin-top: 40px;
	font-size: 1.5rem;
	line-height: 1.9;
}

/* ▼ フォーム系 レスポンシブ */
@media (max-width: 1023px) {
	.form_head__title {
		font-size: 3rem;
	}
	.form_card {
		padding: 32px 28px 40px;
	}
	/* PC専用の横並びを解除（タブレット以下は従来どおり縦積み） */
	.form_row {
		display: block;
	}
	.form_row > .form_field + .form_field {
		margin-top: 30px;
	}
	.form_row > .freeform_wish + .freeform_wish {
		margin-top: 26px;
	}
	.form_inline_row {
		display: block;
	}
	.form_inline_row > .form_input_text {
		max-width: 460px;
	}
	.form_inline_row > .form_select + .form_input_text {
		margin-top: 12px;
	}
	.form_field > .form_inline_row + .form_input_text {
		max-width: 460px;
	}
	div.form_field--inline {
		display: block;
	}
	.form_field--inline > .form_field__label {
		float: none;
		margin-right: 0;
		margin-bottom: 12px;
	}
	.form_choices--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 20px;
		max-width: 480px;
	}
	.reserve_time__cards {
		grid-template-columns: minmax(0, 1fr);
	}
	.register_discount .container {
		display: block;
	}
	.register_discount__cards {
		margin-top: 28px;
	}
}
@media (max-width: 767px) {
	/* #399 #400: SPはヒーロー下40px・セクション間40pxに圧縮 */
	.register_intro,
	.freeform_intro,
	.catalog_intro,
	.houjin_intro {
		padding-block: 40px 0;
	}
	.register_discount {
		padding-block: 40px;
	}
	.register_form .block-label,
	.freeform_form .block-label,
	.catalog_form .block-label {
		margin-top: 40px;
	}
	.register_discount .block-label {
		margin-top: 0;
	}
	.houjin_form {
		padding-top: 24px;
	}

	.form_head__title {
		font-size: 2.6rem;
	}
	.form_lead {
		font-size: 1.4rem;
	}
	.form_note {
		font-size: 1.25rem;
	}
	.form_card {
		padding: 24px 20px 32px;
		border-radius: var(--radius);
	}
	.form_field__label {
		font-size: 1.4rem;
	}
	.form_choices--grid {
		gap: 16px 12px;
	}
	.form_name_pair {
		gap: 16px;
	}
	.form_submit {
		max-width: none;
	}
	.reserve_time__card {
		padding: 20px;
		gap: 12px;
	}
	.reserve_time__desc {
		max-width: 66%;
	}
	.reserve_time__name {
		font-size: 1.5rem;
	}
	.reserve_time__small {
		font-size: 1.15rem;
	}
	.reserve_time__min b {
		font-size: 2.6rem;
	}
	.reserve_embed__nav {
		padding-inline: 20px;
	}
	.register_discount__card {
		padding: 18px 20px;
	}
	.register_discount__name {
		font-size: 1.4rem;
	}
	.register_discount__price b {
		font-size: 2rem;
	}
	.reserve_embed__scroll {
		padding-inline: 0;
	}
	.reserve_embed__time {
		padding-inline: 10px;
	}
}

/* ▼ 入校制限などの重要注意リンク（2026-07-23 クライアント依頼） */
.form_important_links {
	margin-top: 18px;
	font-size: 1.4rem;
	line-height: 2;
	font-weight: 700;
}
.form_important_links a {
	color: #d22f2f;
	text-decoration: underline;
}

/* ▼▼▼ フォーム確認画面・送信完了ページ（2026-07-27 新デザイン化）
   対象: cconfirm / rconfirm / rqconfirm / reservation / 各thanks / MW確認 ▼▼▼ */
.form_confirm_sec .container,
.form_thanks_sec .container {
	max-width: 1120px;
}
.form_confirm_sec .form_card,
.form_thanks_sec .form_card {
	margin-top: 8px;
}
/* 確認表 */
.form_confirm {
	border-top: 1px solid #efe9e3;
}
.form_confirm__row {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding: 16px 4px;
	border-bottom: 1px solid #efe9e3;
}
.form_confirm__row dt {
	flex: 0 0 300px;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.7;
	color: var(--ink);
}
.form_confirm__row dt ins {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 8px;
	background: #d22f2f;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	vertical-align: middle;
}
.form_confirm__row dt small {
	display: block;
	font-size: 1.2rem;
	font-weight: 500;
	color: #8a8a8a;
}
.form_confirm__row dd {
	flex: 1;
	font-size: 1.5rem;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
.form_confirm__note {
	margin-top: 4px;
	font-size: 1.25rem;
	color: #8a8a8a;
}
.form_confirm__subtitle {
	margin-top: 32px;
	font-size: 1.6rem;
	font-weight: 700;
	color: var(--pink);
}
.form_confirm .changeDate {
	display: inline-block;
	margin-left: 12px;
	color: var(--pink);
	font-size: 1.3rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
	white-space: nowrap;
}
/* エラー表示 */
.form_error_text {
	font-size: 1.5rem;
	line-height: 2;
	font-weight: 600;
	color: #d22f2f;
}
/* reCAPTCHA */
.recaptchabox {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	margin-top: 28px;
}
/* 同意（確認画面：checkbox またはテキストのみ） */
.form_confirm_sec .form_agree {
	font-size: 1.5rem;
	font-weight: 700;
}
/* ボタン列（送信する＋戻る） */
.form_actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}
.form_actions .form_submit {
	margin-top: 36px;
}
.form_back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 200px;
	margin-top: 12px;
	padding: 12px 28px;
	background: #fff;
	border: 1.5px solid #b5b0ac;
	border-radius: 999px;
	color: #6f6a66;
	font-family: inherit;
	font-size: 1.4rem;
	font-weight: 700;
	cursor: pointer;
	transition: .2s;
}
.form_back:hover {
	background: #f4f1ee;
}
/* 管理者向け 登録内容修正ヘッダ（rqconfirm・旧クラス edit/delete を踏襲） */
.form_confirm_sec .edit {
	margin-bottom: 20px;
	padding: 12px 16px;
	border: 2px solid var(--orange);
	border-radius: 8px;
	font-weight: 700;
}
.form_confirm_sec .edit h3 {
	font-size: 1.6rem;
}
.form_confirm_sec .edit.delete {
	border-color: #d22f2f;
	color: #d22f2f;
}
/* 送信完了 */
.form_thanks {
	padding-block: 56px;
	text-align: center;
}
.form_thanks__msg {
	font-size: 1.6rem;
	line-height: 2.2;
}
.form_thanks__msg em {
	color: #d22f2f;
	font-weight: 700;
	font-style: normal;
}
.form_thanks__btn {
	margin-top: 32px;
	min-width: 220px;
}
/* MW WP Form 確認画面（旧マークアップ .box ul li .title/.input を新カード内で整える。
   入力ページ（.form_mw 単体）の見た目は変えないよう --confirm にのみ適用 */
.form_mw--confirm .box ul li {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding: 16px 4px;
	border-bottom: 1px solid #efe9e3;
}
.form_mw--confirm .box ul li:first-child {
	border-top: 1px solid #efe9e3;
}
.form_mw--confirm .box ul li .title {
	flex: 0 0 300px;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.7;
	color: var(--ink);
}
.form_mw--confirm .box ul li .title ins {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 8px;
	background: #d22f2f;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	vertical-align: middle;
}
.form_mw--confirm .box ul li .input {
	flex: 1;
	font-size: 1.5rem;
	line-height: 1.8;
	overflow-wrap: anywhere;
}
.form_mw--confirm .notice {
	margin-top: 24px;
	font-size: 1.25rem;
	line-height: 2;
	color: #6f6a66;
}
.form_mw--confirm .agreeement {
	margin-top: 16px;
	text-align: center;
	font-size: 1.5rem;
	font-weight: 700;
}
.form_mw--confirm .buttonbox {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin-top: 36px;
}
.form_mw--confirm .buttonbox input[type="submit"],
.form_mw--confirm .buttonbox button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 280px;
	background: var(--pink);
	color: #fff;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	border: 0;
	border-radius: 999px;
	padding: 15px 24px;
	cursor: pointer;
	transition: .2s;
}
.form_mw--confirm .buttonbox input[type="submit"]:hover,
.form_mw--confirm .buttonbox button:hover {
	opacity: .85;
}
.form_mw--confirm .buttonbox input[name="submitBack"],
.form_mw--confirm .buttonbox .mw_wp_form_back {
	background: #fff;
	border: 1.5px solid #b5b0ac;
	color: #6f6a66;
	min-width: 200px;
	font-size: 1.4rem;
}
/* SP：確認表を縦積みに */
@media (max-width: 767px) {
	.form_confirm__row,
	.form_mw--confirm .box ul li {
		flex-direction: column;
		gap: 6px;
		padding: 14px 2px;
	}
	.form_confirm__row dt,
	.form_mw--confirm .box ul li .title {
		flex: none;
	}
	.form_actions .form_submit {
		max-width: none;
	}
}

/* ▼▼▼ contact（お問い合わせ /contact/ 2026-07-27 新デザイン化） ▼▼▼ */

/* セクション間隔（register/freeform と同じルール） */
.contact_intro {
	padding-block: 72px 0;
}
.contact_intro .block-label {
	margin-top: 0;
}
.contact_form {
	padding-top: 0;
}
.contact_form .block-label {
	margin-top: 56px;
}
.contact_intro .container,
.contact_form .container {
	max-width: 1120px;
}

/* 必須バッジ（入力ページの項目ラベル。確認画面 dt ins と同意匠） */
.form_field__label ins {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 8px;
	background: #d22f2f;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	vertical-align: middle;
}

/* お電話でのお問い合わせ（旧 /contact/ 本文の電話CTAを新デザイン化） */
.contact_tel {
	margin-top: 28px;
}
.contact_tel__cards {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}
.contact_tel__card {
	flex: 1;
	min-width: 240px;
	max-width: 420px;
	background: #f3f3f3;
	border-radius: var(--radius);
	padding: 20px 28px;
	text-align: center;
}
.contact_tel__school {
	font-size: 1.4rem;
	font-weight: 700;
}
.contact_tel__num {
	display: inline-block;
	margin-top: 4px;
	font-family: var(--font-en);
	font-size: 2.4rem;
	font-weight: 600;
	color: var(--pink);
}
.contact_tel__note {
	margin-top: 14px;
	font-size: 1.3rem;
	line-height: 1.9;
	color: var(--muted);
}

/* ▼ MW WP Form 入力画面（旧マークアップ .box ul li .title/.input を新デザインに整える。
     contact 入力ページで使用。既存 at_freeform 入力（.form_mw 単体）の見た目は変えないよう --input にのみ適用 */
.form_mw--input .box ul li + li {
	margin-top: 30px;
}
.form_mw--input .box ul li .title {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ink);
	margin-bottom: 12px;
}
.form_mw--input .box ul li .title ins {
	display: inline-block;
	margin-left: 8px;
	padding: 1px 8px;
	background: #d22f2f;
	color: #fff;
	font-size: 1.1rem;
	font-weight: 700;
	border-radius: 4px;
	text-decoration: none;
	vertical-align: middle;
}
/* テキスト系入力 */
.form_mw--input input[type="text"],
.form_mw--input input[type="email"],
.form_mw--input input[type="tel"] {
	width: 100%;
	max-width: 420px;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #fff;
	padding: 12px 14px;
	font-size: 1.4rem;
	line-height: 1.4;
	color: var(--ink);
}
.form_mw--input input:focus,
.form_mw--input textarea:focus {
	outline: none;
	border-color: var(--orange);
}
.form_mw--input ::placeholder {
	color: #b5b0ac;
}
/* 姓名・ふりがなの2分割は横並び（モックの form_name_pair 相当） */
.form_mw--input input[name="sei"],
.form_mw--input input[name="mei"],
.form_mw--input input[name="ksei"],
.form_mw--input input[name="kmei"] {
	width: calc(50% - 12px);
	max-width: 220px;
}
/* 電話番号3分割 */
.form_mw--input .mwform-tel-field input {
	width: 98px;
	padding-inline: 12px;
}
/* テキストエリア */
.form_mw--input textarea {
	display: block;
	width: 100%;
	min-height: 165px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: #fff;
	padding: 14px;
	font-size: 1.4rem;
	line-height: 1.7;
	color: var(--ink);
	resize: vertical;
}
/* ラジオ・チェックボックス（form_radio / form_checkbox と同意匠） */
.form_mw--input .mwform-radio-field,
.form_mw--input .mwform-checkbox-field {
	margin-right: 24px;
}
.form_mw--input .mwform-radio-field label,
.form_mw--input .mwform-checkbox-field label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 1.3rem;
	line-height: 1.4;
	cursor: pointer;
}
.form_mw--input input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin: 0;
	border: 1px solid #c9c9c9;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
}
.form_mw--input input[type="radio"]:checked {
	border-color: var(--orange);
	background: var(--orange);
	box-shadow: inset 0 0 0 3px #fff;
}
.form_mw--input input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex-shrink: 0;
	width: 17px;
	height: 17px;
	margin: 0;
	border: 1px solid #c9c9c9;
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	position: relative;
}
.form_mw--input input[type="checkbox"]:checked {
	border-color: var(--orange);
	background: var(--orange);
}
.form_mw--input input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 5px;
	height: 9px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.form_mw--input input[type="radio"]:focus-visible,
.form_mw--input input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--orange);
	outline-offset: 2px;
}
/* 注意書き・同意・送信ボタン（form_fineprint / form_agree / form_submit と同意匠） */
.form_mw--input .notice {
	margin-top: 40px;
	padding-block: 18px;
	border-top: 1px solid #ddd8d3;
	border-bottom: 1px solid #ddd8d3;
	font-size: 1.2rem;
	line-height: 1.9;
	font-weight: 500;
}
.form_mw--input .notice a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.form_mw--input .notice a:hover {
	opacity: .7;
}
.form_mw--input .agreeement {
	display: flex;
	justify-content: center;
	margin-top: 28px;
}
.form_mw--input .buttonbox {
	margin-top: 44px;
	text-align: center;
}
.form_mw--input .buttonbox input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 460px;
	background: var(--pink);
	color: #fff;
	font-family: inherit;
	font-size: 1.6rem;
	font-weight: 700;
	border: 0;
	border-radius: 999px;
	padding: 15px 24px;
	cursor: pointer;
	transition: .2s;
}
.form_mw--input .buttonbox input[type="submit"]:hover {
	opacity: .85;
}
/* バリデーションエラー（MW WP Form が出力する .error） */
.form_mw--input .error {
	display: block;
	margin-top: 8px;
	font-size: 1.3rem;
	font-weight: 600;
	color: #d22f2f;
}
/* houjin: MW出力のセレクト（.selectbox）をモックの .form_select と同意匠に */
.form_mw--input .selectbox {
	position: relative;
	display: inline-block;
}
.form_mw--input .selectbox select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid transparent;
	border-radius: 6px;
	background: #fff;
	padding: 12px 36px 12px 12px;
	font-size: 1.4rem;
	line-height: 1.4;
	color: var(--ink);
	min-width: 78px;
	cursor: pointer;
}
.form_mw--input .selectbox::after {
	content: '';
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-25%);
	border: 6px solid transparent;
	border-top: 7px solid var(--ink);
	pointer-events: none;
}
/* houjin: 郵便番号2分割（電話3分割と同寸） */
.form_mw--input .mwform-zip-field input {
	width: 98px;
	padding-inline: 12px;
}
/* ▼ contact レスポンシブ */
@media (max-width: 767px) {
	.contact_intro {
		padding-block: 40px 0;
	}
	.contact_form .block-label {
		margin-top: 40px;
	}
	.contact_tel__card {
		max-width: none;
	}
	/* 電話番号3分割はSPでも1行に収める（3欄で残り幅を等分） */
	.contact_form .form_unit_row {
		flex-wrap: nowrap;
		gap: 6px;
	}
	.contact_form .form_unit_row__unit {
		margin-right: 0;
	}
	.contact_form .form_unit_row .form_input_text--xs {
		width: 100%;
		min-width: 0;
		padding-inline: 8px;
	}
	.form_mw--input .mwform-tel-field {
		display: flex;
		align-items: center;
		gap: 6px;
		white-space: nowrap;
	}
	.form_mw--input .mwform-tel-field input {
		width: 100%;
		min-width: 0;
		padding-inline: 8px;
	}
}

/* ▼▼▼ houjin（法人限定プランお見積り）WP結線用 ▼▼▼ */

/* イントロ直下の重要注記リンク（中型車・限定解除 入校制限のお知らせへ・赤字） */
.houjin_important_note {
	margin-top: 16px;
	font-weight: 500;
}
.houjin_important_note a {
	color: #f00;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.houjin_important_note a:hover {
	opacity: .7;
}

/* 無料体験: 本番フォーム定義由来の休止注記（.cartype-notice）をモックの注記と同意匠に */
.form_mw--input .cartype-notice {
	display: block;
	width: 100%;
	margin-top: 6px;
	color: var(--pink);
	font-weight: 500;
	font-size: 1.3rem;
}

/* MW出力の住所欄: 折り返し時の詰まり解消（都道府県セレクト・市区町村・番地の間隔） */
.form_mw--input #address1 {
	margin-left: 8px;
}
.form_mw--input #address2 {
	margin-top: 8px;
}


/* =========================================================
   ▼▼▼ グループ: recruit_news（_css_recruit_news.css） ▼▼▼
   ========================================================= */

/* =========================================================
   3階層目 採用情報／お知らせ記事詳細（外注コーディング範囲）
   対象: company_recruit / news_detail
   参照: Figma qBwzcj5C9ed3Ix3My1khDc（SP 440px）→ PC は自然拡張
   規約: BEM × lower_snake_case ／ PC基準 → @media(max-width:1023px), (max-width:767px)
   ※旧 company_recruit 用の recruit_* とは別ブロック（接頭辞 recruit2_）
   ========================================================= */

/* ▼▼▼ 採用情報（company_recruit） ▼▼▼ */

/* --- 導入（Point） --- */
.recruit2_intro {
	padding-bottom: 100px;
}
.recruit2_intro .container {
	position: relative;
}
.recruit2_intro .container::before {
	content: "";
	position: absolute;
	top: 0;
	right: 20px;
	width: 90%;
	height: 420px;
	background-image: radial-gradient(circle, rgba(54, 47, 47, .14) 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	pointer-events: none;
	z-index: -1;
}
.recruit2_intro__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 3.2rem;
	line-height: 1.3;
	color: var(--ink);
	margin-top: 16px;
}
.recruit2_intro__title br {
	display: none;
}
.recruit2_intro__lead {
	margin-top: 28px;
	max-width: 800px;
	font-size: 1.5rem;
	line-height: 1.9;
}

/* --- 募集要項（職種カード） --- */
.recruit2_index {
	padding-top: 0;
}
.recruit2_card_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 48px 40px;
	max-width: 1080px;
}
.recruit2_card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 36px;
	box-shadow: 2px 6px 12px rgba(105, 92, 92, .25);
	overflow: hidden;
}
.recruit2_card__imgwrap {
	position: relative;
}
.recruit2_card__img {
	display: block;
	width: 100%;
	aspect-ratio: 40 / 27;
	object-fit: cover;
	border-radius: 24px 24px 0 0;
}
/* 写真下部を白へフェード（Figma：card画像上の白グラデーション） */
.recruit2_card__imgwrap::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #fff 0%, rgba(255, 255, 255, 0) 40%);
	pointer-events: none;
}
.recruit2_card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	flex: 1;
	padding: 0 20px 28px;
	margin-top: -14px;
	position: relative;
}
.recruit2_card__en {
	font-weight: 700;
	font-size: 1.3rem;
	line-height: 1.2;
	color: var(--orange);
}
.recruit2_card__name {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.3;
	color: var(--ink);
	margin-top: 6px;
}
.recruit2_card__closed_note {
	font-weight: 700;
	font-size: 1.3rem;
	color: var(--muted);
	margin-top: 4px;
}
.recruit2_card__desc {
	font-size: 1.4rem;
	line-height: 1.8;
	margin-top: 12px;
	font-weight: 500;
}
.recruit2_card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	margin-top: auto;
	border: 0;
	background: var(--orange);
	color: #fff;
	font-family: inherit;
	font-weight: 700;
	font-size: 1.4rem;
	line-height: 1;
	border-radius: 999px;
	padding: 16px 24px 16px 28px;
	cursor: pointer;
	transition: .2s;
}
.recruit2_card__desc + .recruit2_card__btn {
	margin-top: 20px;
}
.recruit2_card__btn:hover {
	opacity: .85;
}
.recruit2_card__btn ion-icon {
	font-size: 1.4rem;
}
.recruit2_card--closed .recruit2_card__img {
	filter: grayscale(.4);
}
.recruit2_card--closed .recruit2_card__btn {
	background: var(--muted);
}

/* --- エントリーフォーム（共有 form_* ブロックを使用） --- */
.recruit2_form_sec {
	padding-top: 0;
}
.recruit2_form__req {
	font-size: .8em;
	font-weight: 700;
	color: var(--pink);
	margin-left: 6px;
}
.recruit2_form__dates {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.recruit2_form__date_no {
	font-size: 1.4rem;
	margin-right: 8px;
}
.recruit2_form__other {
	margin-top: 14px;
}
.recruit2_form__notice {
	margin-top: 36px;
	padding: 14px 0;
	border-top: 1px solid #d9d9d9;
	border-bottom: 1px solid #d9d9d9;
	font-size: 1.1rem;
	line-height: 1.7;
}
.recruit2_form__notice a {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.recruit2_form__notice a:hover {
	opacity: .7;
}
.recruit2_form__agree {
	margin-top: 24px;
}

/* --- 職種詳細モーダル --- */
.recruit2_modal {
	width: min(720px, calc(100vw - 40px));
}
.recruit2_modal__inner {
	padding: 48px 30px 40px;
}
.recruit2_modal__job {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 14px;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 1.4;
	color: var(--ink);
	margin-bottom: 20px;
}
.recruit2_modal__type {
	flex-shrink: 0;
	font-family: var(--font-jp);
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1.4;
	color: #fff;
	background: var(--orange);
	border-radius: 999px;
	padding: 4px 14px;
}
.recruit2_modal__type--closed {
	background: var(--muted);
}
.recruit2_modal__section {
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.6;
	color: var(--ink);
	background: var(--bg-soft);
	border-radius: 8px;
	padding: 8px 14px;
	margin: 28px 0 6px;
}
.recruit2_modal__list dt {
	font-weight: 700;
	font-size: 1.6rem;
	line-height: 1.5;
	color: var(--orange);
	margin-top: 24px;
}
.recruit2_modal__list dd {
	font-size: 1.4rem;
	line-height: 1.8;
	margin-top: 6px;
}
.recruit2_modal__list dd p + p {
	margin-top: 1em;
}
.recruit2_modal__step_head {
	font-weight: 700;
}
.recruit2_modal__steps {
	counter-reset: recruit2_step;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 8px 0;
}
.recruit2_modal__steps li {
	counter-increment: recruit2_step;
	position: relative;
	padding-left: 32px;
}
.recruit2_modal__steps li::before {
	content: counter(recruit2_step);
	position: absolute;
	left: 0;
	top: 3px;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--orange);
	color: #fff;
	font-family: var(--font-en);
	font-weight: 600;
	font-size: 1.2rem;
	line-height: 1;
}
.recruit2_modal__ul li {
	padding-left: 1em;
	text-indent: -1em;
}
.recruit2_modal__ul li::before {
	content: '・';
}

/* --- 採用情報 レスポンシブ --- */
@media (max-width: 1023px) {
	.recruit2_card_list {
		gap: 40px 28px;
	}
}
@media (max-width: 767px) {
	.recruit2_intro .container::before {
		top: 30px;
		right: 0;
		width: 85%;
		height: 400px;
	}
	.recruit2_intro__title {
		font-size: 2.8rem;
	}
	.recruit2_intro__title br {
		display: inline;
	}
	.recruit2_intro__lead {
		font-size: 1.4rem;
	}
	.recruit2_card_list {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.recruit2_modal__inner {
		padding: 44px 20px 32px;
	}
	.recruit2_modal__job {
		font-size: 2.1rem;
	}
}

/* ▼▼▼ お知らせ記事詳細（news_detail） ▼▼▼ */

.news_detail__article {
	max-width: 800px;
	margin: 0 auto;
}

/* 記事ヘッダー（タイトル・日付・カテゴリ） */
.news_detail__title {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.8rem;
	line-height: 1.4;
	color: var(--ink);
}
.news_detail__meta {
	display: flex;
	align-items: baseline;
	gap: 16px;
	margin-top: 28px;
}
.news_detail__date {
	font-family: var(--font-en);
	font-weight: 500;
	color: var(--ink);
	white-space: nowrap;
}
.news_detail__date em {
	font-style: normal;
	font-size: 1.3rem;
}
.news_detail__date strong {
	font-weight: 500;
	font-size: 3.2rem;
	line-height: 1;
	margin-left: 4px;
}
.news_detail__tag {
	align-self: center;
	font-weight: 700;
	font-size: 1.2rem;
	line-height: 1;
	color: var(--ink);
	background: #f9a4d0;
	border-radius: 999px;
	padding: 6px 14px;
}

/* 本文 */
.news_detail__body {
	margin-top: 28px;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.9;
}
.news_detail__body p + p,
.news_detail__body p + h3,
.news_detail__body figure + h3 {
	margin-top: 2em;
}
.news_detail__body h3 {
	font-weight: 700;
	font-size: 1.8rem;
	line-height: 1.6;
	margin-bottom: .5em;
}
.news_detail__img {
	margin-top: 2em;
}
.news_detail__img img {
	display: block;
	width: 100%;
	max-width: 640px;
	border-radius: var(--radius);
}

/* 前後記事ナビ */
.news_detail__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	max-width: 640px;
	margin-top: 56px;
	padding-top: 32px;
	border-top: 1px solid #d7dedb;
}
.news_detail__nav_btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	background: var(--pink);
	color: #fff;
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.2rem;
	line-height: 1;
	border-radius: 999px;
	padding: 10px 15px;
	transition: .2s;
}
.news_detail__nav_btn:hover {
	opacity: .8;
}
.news_detail__nav_btn ion-icon {
	font-size: 1.1rem;
}
.news_detail__back {
	font-family: var(--font-en);
	font-weight: 500;
	font-size: 1.6rem;
	color: var(--ink);
	transition: .2s;
}
.news_detail__back:hover {
	opacity: .7;
}

/* --- お知らせ記事詳細 レスポンシブ --- */
@media (max-width: 767px) {
	.news_detail__title {
		font-size: 2.4rem;
	}
	.news_detail__meta {
		margin-top: 22px;
	}
	.news_detail__nav {
		margin-top: 44px;
		padding-top: 26px;
	}
}

/* ▼▼▼ 記事本文の汎用装飾（the_content出力・エディタ由来の素HTML） ▼▼▼
   既存サイトの実記事で使われるタグ・部品を新デザインのトーンで再定義。
   実測: h2×890 / h3×831 / h4×38 / 表×140 / 手書き目次.toc×79記事 / Easy TOC痕跡×61 / align系画像多数 */
.news_detail__body {
	font-size: 1.6rem;
	line-height: 1.9;
	color: var(--ink);
}
.news_detail__body h2 {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 2.2rem;
	line-height: 1.5;
	margin: 2.2em 0 0.9em;
	padding: 10px 16px;
	background: var(--bg-soft);
	border-left: 5px solid var(--orange);
	border-radius: 4px;
}
.news_detail__body h3 {
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.9rem;
	line-height: 1.5;
	margin: 2em 0 0.8em;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--orange);
}
.news_detail__body h4 {
	font-weight: 700;
	font-size: 1.7rem;
	margin: 1.8em 0 0.6em;
	padding-left: 12px;
	border-left: 3px solid var(--orange);
}
.news_detail__body p {
	margin: 0 0 1em;
}
.news_detail__body a {
	color: var(--orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.news_detail__body a:hover {
	opacity: .75;
}
.news_detail__body ul,
.news_detail__body ol {
	margin: 0 0 1.2em;
	padding-left: 1.6em;
}
.news_detail__body li {
	margin-bottom: .4em;
}
.news_detail__body ul li::marker {
	color: var(--orange);
}
.news_detail__body table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.2em 0;
	font-size: 1.5rem;
}
.news_detail__body th,
.news_detail__body td {
	border: 1px solid var(--line);
	padding: 10px 14px;
	text-align: left;
	vertical-align: top;
}
.news_detail__body th {
	background: var(--bg-soft);
	font-weight: 700;
}
.news_detail__body blockquote {
	margin: 1.2em 0;
	padding: 12px 18px;
	border-left: 4px solid var(--line);
	background: #fafafa;
	color: var(--muted);
}
.news_detail__body img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}
.news_detail__body iframe {
	max-width: 100%;
}
/* WPエディタのalign系クラス（既存記事で多用） */
.news_detail__body .alignleft {
	float: left;
	margin: 4px 20px 12px 0;
}
.news_detail__body .alignright {
	float: right;
	margin: 4px 0 12px 20px;
}
.news_detail__body .aligncenter {
	display: block;
	margin: 12px auto;
}
.news_detail__body .clr {
	clear: both;
}
/* 目次（手書き .toc ／ Easy Table of Contents の両対応。既存記事の構造を踏襲） */
.news_detail__body .toc,
.news_detail__body #ez-toc-container {
	width: auto;
	margin: 2em 0;
	padding: 20px 24px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 12px;
	box-shadow: var(--shadow-sm);
}
.news_detail__body .toc h3,
.news_detail__body #ez-toc-container .ez-toc-title {
	margin: 0 0 .8em;
	padding: 0;
	border: none;
	font-family: var(--font-zen);
	font-weight: 700;
	font-size: 1.7rem;
	color: var(--ink);
}
.news_detail__body .toc br {
	display: none;
}
.news_detail__body .toc p,
.news_detail__body #ez-toc-container nav {
	margin: 0;
}
.news_detail__body #ez-toc-container nav li {
	display: block;
	list-style: none;
	margin-bottom: 0;
}
.news_detail__body .toc a,
.news_detail__body #ez-toc-container nav a {
	display: block;
	margin-bottom: .6em;
	padding-left: 1.1em;
	text-indent: -1.1em;
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--ink);
	text-decoration: none;
}
.news_detail__body .toc a::before,
.news_detail__body #ez-toc-container nav a::before {
	content: "";
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-right: .6em;
	background: var(--orange);
	border-radius: 50%;
	vertical-align: 2px;
}
.news_detail__body .toc a:hover,
.news_detail__body #ez-toc-container nav a:hover {
	color: var(--orange);
}
@media (max-width: 767px) {
	.news_detail__body h2 {
		font-size: 2rem;
	}
	.news_detail__body h3 {
		font-size: 1.8rem;
	}
	/* SPでは回り込みを解除して縦積みに */
	.news_detail__body .alignleft,
	.news_detail__body .alignright {
		float: none;
		margin: 12px auto;
		display: block;
	}
	/* 列数の多い表は画面からはみ出さず横スクロールで見られるように */
	.news_detail__body table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.news_detail__body th,
	.news_detail__body td {
		white-space: nowrap;
	}
}
