:root {
	/* Color */
	--main-theme-color: #30b679;
	--sub-theme-color: #278d5f;
	--main-text-color: #222;
	--accent-color: #f6660b;
	--accent-color-dark: #e83f05; /* オレンジボタンhover時の濃色 */
	--bg-color1: #fafafa;
	--bg-color2: #e3f4e6;
	--bg-color3: #f0f9f0; /* 薄緑背景(会社概要: MVVアイコン円・メッセージパネル・沿革の年チップ) */
	--boder-color: #eee;
	--white: #fff;
	--lead-green: #008240; /* リード見出しアクセント */
	--lead-line-green: #2a9937; /* リード見出し下の罫線 */
	--badge-green: #009b55; /* 丸数字バッジ(下層事業ページ) */

	/* 事業カラー(ページslug別) */
	--color-homecareservice: #44af35;
	--color-consultationsupportoffice: #00c7b9;
	--color-after-schoolcare: #ec6c00;
	--color-residentialsupport: #58c1ed;
	--color-accessibletravelsupport: #a97121;
	--color-millecareacademy: #e15196;

	/* 事業カラーのグラデーション(事業一覧の番号バッジ用。色はデザインPNGから採取) */
	--grad-homecareservice: linear-gradient(90deg, #3ca62e, #82d272);
	--grad-consultationsupportoffice: linear-gradient(90deg, #00bfb0, #00e0d7);
	--grad-after-schoolcare: linear-gradient(90deg, #e96100, #f5a300);
	--grad-residentialsupport: linear-gradient(90deg, #4eb9ea, #94ddf6);
	--grad-accessibletravelsupport: linear-gradient(90deg, #9f661c, #cea757);
	--grad-millecareacademy: linear-gradient(90deg, #dc478b, #ef8dc2);

	/* Typography */
	--font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN","HiraKakuProN-W3", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif, serif;
	--font-en: "Oswald", sans-serif;

	/* ボタン */


	/* border-radius */
	--radius-sp: 2.667vw;
	--radius-pc: 10px;
	--radius-s-sp: 1.333vw;
	--radius-s-pc: 5px;

	/* box-shadow */
	--box-shadow: 0 0 8px rgba(0,0,0,.1);

	/* レイアウト */
	--inner-max-width: 1200px;
	--inner-width: 89.333%;

	/* Hero演出 */
	--panel-color: #eee;
	--duration-panel: 1.05s;
	--duration-zoom: 5s;
	--ease-panel: cubic-bezier(.83,0,.17,1);
	--ease-zoom: cubic-bezier(.16,.84,.44,1);
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html {
	font-size: 62.5%; 
}
body {
	background-color: var(--white);
	line-height: 1.5;
	font-family: var(--font-family);
	word-break: break-word;
	color: var(--main-text-color);
}
html, body, h1, h2, h3, h4, h5, h6, p, figure, dl, dt, dd, ul, li, ol {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
ul, ol {
	list-style: none;
}
em {
	font-style: normal;
}
header, footer, main, nav, article, aside, section, div, p {
	display: block;
	box-sizing: border-box;
}
h1, h2, h3, h4, h5, h6 {
	font-weight: bold;
}
img {
	display: block;
	max-width: 100%;
	height: auto;
	border: none;
}
a {
	transition: opacity .3s ease;
	text-decoration: none;
	color: var(--main-theme-color);
}

@media screen and (max-width: 767px) {
	body {
		font-size: 3.733vw;
	}
}
@media screen and (min-width: 768px), print {
	body {
		font-size: 16px;
	}
	a[href^="tel:"] {
		pointer-events: none;
	}
}


/* -----------------------------------------------------------------------
 基本設定
----------------------------------------------------------------------- */

.inner {
	max-width: var(--inner-max-width);
	width: var(--inner-width);
	margin: auto;
}
/* WordPress化時の追記: コンテンツの少ないページでパンくず〜お問い合わせCTAの間が
   詰まらないよう、メインコンテンツに「ビューポート高−ヘッダー高」の最低高さを確保 */
/*.site-main {
	min-height: calc(100vh - 18.667vw);
}*/
@media screen and (min-width: 768px) {
	.site-main {
		min-height: calc(100vh - 170px);
	}
}
@media (max-width: 767px) {
	.only-pc {
		display: none !important;
	}
	.sec {
		padding: 4.5em 0;
	}
}
@media (min-width: 768px) {
	.only-sp {
		display: none !important;
	}
	.sec {
		padding: 6em 0;
	}
}

/* ページ内アンカーの着地位置(追従ヘッダーに隠れないようオフセット) */
@media screen and (max-width: 767px) {
	[id] {
		scroll-margin-top: 24vw;
	}
}
@media screen and (min-width: 768px), print {
	[id] {
		scroll-margin-top: 90px;
	}
}


/* -----------------------------------------------------------------------
 共通パーツ
----------------------------------------------------------------------- */

.btn {
	display: inline-block;
	background-color: var(--accent-color);
	color: var(--white);
	text-align: center;
}
.btn:hover {
	opacity: .7;
}
/* オレンジ系ボタンはhoverで濃いオレンジに反転(白・緑系のbtn派生には適用しない) */
.recruit_card-btn,
.contact_btn,
.header__contact-btn,
.training_card__btn {
	transition: background-color .3s ease, opacity .3s ease;
}
.recruit_card-btn:hover,
.contact_btn:hover,
.header__contact-btn:hover,
.training_card__btn:hover {
	background-color: var(--accent-color-dark);
	opacity: 1;
}

.flex {
	display: flex;
}

/* セクション見出し(英字ラベル+日本語) */
.sec_title {
	text-align: center;
}
.sec_title__en {
	display: block;
	color: var(--main-theme-color);
	font-family: var(--font-en);
	font-weight: normal;
	line-height: 1;
}
.sec_title__ja {
	display: block;
	line-height: 1;
}

/* 白カード */
.card {
	background-color: var(--white);
	box-shadow: var(--box-shadow);
}

/* ボタン(白+テーマカラーのボーダー。btnの色違い) */
.more {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: auto;
	color: var(--main-theme-color);
	border: 1px solid var(--main-theme-color);
	transition: background-color .3s ease, color .3s ease, opacity .3s ease;
}
.more:hover {
	background-color: var(--main-theme-color);
	color: var(--white);
}
.more::after {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 2px solid var(--main-theme-color);
	border-right: 2px solid var(--main-theme-color);
	transform: rotate(45deg);
	transition: border-color .3s ease;
}
.more:hover::after {
	border-color: var(--white);
}

/* カテゴリタグ */
.tag {
	display: inline-block;
	background-color: #e8fff5;
	color: var(--sub-theme-color);
	text-align: center;
}

/* ページネーション(現在ページは is-current) */
.pager {
	display: flex;
	justify-content: center;
}
.pager__item {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
	border: 1px solid #ddd;
	color: var(--main-text-color);
	font-weight: bold;
	line-height: 1;
}
.pager__item:hover {
	opacity: .7;
}
.pager__item.is-current {
	background-color: var(--lead-green);
	border-color: var(--lead-green);
	color: var(--white);
}
.pager__item.is-current:hover {
	opacity: 1;
}

@media screen and (max-width: 767px) {
	.btn {
		border-radius: var(--radius-s-sp);
	}
	.tag {
		border-radius: var(--radius-s-sp);
	}
	.sec_title__en {
		font-size: 3.2vw;
	}
	.sec_title__ja {
		font-size: 8.8vw;
		margin-top: 3.467vw;
	}
	.card {
		border-radius: var(--radius-sp);
	}
	.more {
		width: 100%;
		height: 14.933vw;
		padding: 0 8.267vw 0 7.733vw;
		font-size: 4.267vw;
		border-radius: var(--radius-s-sp);
	}
	.pager {
		margin-top: 9.6vw;
		gap: 2.667vw;
	}
	.pager__item {
		min-width: 11.733vw;
		height: 11.733vw;
		padding: 0 3.2vw;
		font-size: 4vw;
		border-radius: var(--radius-s-sp);
	}
}
@media screen and (min-width: 768px), print {
	.btn {
		border-radius: var(--radius-s-pc);
	}
	.tag {
		border-radius: var(--radius-s-pc);
	}
	.sec_title__en {
		font-size: 18px;
	}
	.sec_title__ja {
		font-size: 46px;
		margin-top: 16px;
	}
	.card {
		border-radius: var(--radius-pc);
	}
	.more {
		width: 360px;
		height: 60px;
		padding: 0 41px 0 39px;
		font-size: 18px;
		border-radius: var(--radius-s-pc);
	}
	.pager {
		margin-top: 60px;
		gap: 12px;
	}
	.pager__item {
		min-width: 52px;
		height: 52px;
		padding: 0 16px;
		font-size: 16px;
		border-radius: var(--radius-s-pc);
	}
}


/* -----------------------------------------------------------------------
 header
----------------------------------------------------------------------- */

.header {
	background-color: var(--white);
}
.header__inner {
	display: flex;
	align-items: center;
}
.header__logo {
	flex: none;
}
.header__logo a {
	display: block;
}
.header__nav-list a {
	display: block;
	color: var(--main-text-color);
	font-weight: 500;
	line-height: 1;
	transition: color .2s ease;
}
.header__nav-list a:hover {
	color: var(--main-theme-color);
}
/* 現在地表示(暫定: tmp_header.htmlの「事業内容」に直接付与。最終的にはscript.jsで自動付与予定) */
.header__nav-list a.is-current {
	color: var(--main-theme-color);
}
.header__hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: none;
	border: none;
	cursor: pointer;
}
.header__hamburger span {
	display: block;
	background-color: #666;
	transition: transform .3s ease, opacity .3s ease;
}
/* メニューを開いている間は背景のスクロールを固定 */
body.is-menu-open {
	overflow: hidden;
}

@media screen and (max-width: 767px) {
	.header {
		position: sticky;
		top: 0;
		z-index: 100;
	}
	.header__inner {
		max-width: none;
		width: auto;
		height: 18.667vw;
		padding: 0 3.2vw;
		justify-content: space-between;
	}
	.header__logo img {
		width: 37.333vw;
	}
	/* ハンバーガーメニュー(開いた状態) */
	.header__menu {
		position: fixed;
		top: 18.667vw;
		left: 0;
		width: 100%;
		height: calc(100% - 18.667vw);
		background-color: var(--white);
		padding: 5.333vw 5.333vw 8vw;
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		transition: opacity .3s ease, visibility .3s ease;
		z-index: 90;
	}
	.header__menu.is-open {
		visibility: visible;
		opacity: 1;
	}
	.header__nav-list > li {
		border-bottom: 1px solid #ddd;
	}
	.header__nav-list > li:first-child {
		border-top: 1px solid #ddd;
	}
	.header__nav-list > li > a {
		display: block;
		position: relative;
		font-size: 4.8vw;
		font-weight: bold;
		line-height: 18.667vw;
		padding: 0 8.267vw 0 6.667vw;
	}
	/* 行末の矢印 */
	.header__nav-list > li > a::after,
	.header__contact-btn::after {
		content: "";
		position: absolute;
		top: 50%;
		right: 8.267vw;
		width: 1.6vw;
		height: 1.6vw;
		border-top: 2px solid #4b4b4b;
		border-right: 2px solid #4b4b4b;
		transform: translateY(-50%) rotate(45deg);
	}
	/* 事業内容 サブメニュー(ハンバーガー展開時に常時表示) */
	.header__nav-list > li.header__nav-item--service {
		border-bottom: none;
	}
	.header__nav-sub {
		background-color: #f5f5f5;
		border-radius: var(--radius-s-sp);
		margin-bottom: 2.667vw;
	}
	.header__nav-sub li:not(:last-child) {
		border-bottom: 1px solid #ddd;
	}
	.header__nav-sub a {
		display: block;
		color: var(--main-text-color);
		font-size: 4.267vw;
		line-height: 16vw;
		padding: 0 7.2vw;
	}
	/* お問い合わせボタン */
	.header__contact-btn {
		display: block;
		position: relative;
		font-size: 4.8vw;
		font-weight: bold;
		text-align: left;
		line-height: 18.667vw;
		padding: 0 8.267vw 0 6.667vw;
		margin-top: 2.667vw;
	}
	.header__contact-btn::after {
		border-color: var(--white);
	}
	.header__hamburger {
		width: 8vw;
		gap: 2.133vw;
		margin-right: 2.933vw;
	}
	.header__hamburger span {
		width: 8vw;
		height: 0.533vw;
	}
	/* 開いた状態: ハンバーガー→× */
	.header__hamburger.is-open span:nth-child(1) {
		transform: translateY(2.667vw) rotate(45deg);
	}
	.header__hamburger.is-open span:nth-child(2) {
		opacity: 0;
	}
	.header__hamburger.is-open span:nth-child(3) {
		transform: translateY(-2.667vw) rotate(-45deg);
	}
}
@media screen and (min-width: 768px), print {
	/* PCもヘッダーを画面上部に追従(見た目は現状のまま) */
	.header {
		position: sticky;
		top: 0;
		z-index: 100;
	}
	.header__inner {
		max-width: none;
		width: auto;
		height: 70px;
		padding: 0 20px;
	}
	.header__logo img {
		width: 161px;
	}
	.header__menu {
		display: flex;
		align-items: center;
		margin-left: auto;
		/* 縮小時もロゴとの間に最低8px確保。gapを従来より8px狭くして相殺し、ナビの折り返しタイミングは変えない */
		padding-left: 8px;
		gap: clamp(8px, calc((100vw - 720px) / 6 - 8px), 48px);
	}
	.header__nav-list {
		display: flex;
		/* リンクが2行になった場合も各リンクをヘッダー上下中央に保つ(下線バーの位置基準) */
		align-items: center;
		gap: clamp(16px, calc((100vw - 720px) / 6), 48px);
	}
	.header__nav-list a {
		font-size: 15px;
	}
	/* 現在地表示(緑文字+下線バー) */
	.header__nav-list a.is-current {
		position: relative;
	}
	.header__nav-list a.is-current::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: calc(50% - 34.5px); /* 70px高ヘッダーの下端1px上にバー下端(リンク上下中央から35px下=行数によらず固定) */
		width: 100%;
		height: 3px;
		background-color: var(--main-theme-color);
	}
	.header__contact-btn {
		flex: none;
		width: 140px;
		font-size: 1em;
		line-height: 40px;
	}
	/* 事業内容 サブメニュー(ホバー/フォーカスでドロップダウン。配色・角丸はSP版踏襲、位置決めのみ新規) */
	.header__nav-item--service {
		position: relative;
		display: flex;
		align-items: center;
		height: 70px; /* ヘッダー高に合わせ、ドロップダウンを top:100% = ヘッダー下端(70px)から表示 */
	}
	.header__nav-item--service .header__nav-sub {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 10;
		min-width: 100%;
		background-color: #f5f5f5;
		border-radius: var(--radius-s-pc);
		box-shadow: 0 4px 12px rgba(0, 0, 0, .1);
		opacity: 0;
		visibility: hidden;
		transition: opacity .2s ease, visibility .2s ease;
	}
	.header__nav-item--service:hover .header__nav-sub,
	.header__nav-item--service:focus-within .header__nav-sub {
		opacity: 1;
		visibility: visible;
	}
	.header__nav-item--service .header__nav-sub li:not(:last-child) {
		border-bottom: 1px solid #ddd;
	}
	.header__nav-item--service .header__nav-sub a {
		display: block;
		color: var(--main-text-color);
		line-height: 44px;
		padding: 0 20px;
		white-space: nowrap;
	}
	/* グローバルナビと同じく hover でテーマカラーに(常時色指定に勝つ詳細度で上書き) */
	.header__nav-item--service .header__nav-sub a:hover {
		color: var(--main-theme-color);
	}
}


/* -----------------------------------------------------------------------
 Hero
----------------------------------------------------------------------- */

.hero-zone {
	position: relative;
	width: 100%;
	overflow: hidden;
	background-color: var(--white);
}

/* ① Swiper本体(通常のループスライダー) */
.hero-swiper {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.hero-swiper .swiper-slide {
	position: relative;
	width: 100%;
	height: 100%;
}
.hero-swiper .swiper-slide--color1 {
	background-color: #3d6b8a;
}
.hero-swiper .swiper-slide--color2 {
	background-color: #8a5a3d;
}
.hero-swiper .swiper-slide--color3 {
	background-color: #4d7a4d;
}
.hero-swiper__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center bottom;
}
.hero-pagination {
	text-align: left;
	z-index: 15; /* 共通フレーム(.hero-overlay)より前面に出す */
}
.hero-zone .hero-pagination .swiper-pagination-bullet {
	background-color: #ccc;
	opacity: 1;
	border-radius: 0;
	margin: 0 10px 0 0;
}
.hero-zone .hero-pagination .swiper-pagination-bullet-active {
	background-color: #44af35;
}

/* ②' 全スライド共通のフレーム・テキストレイヤー(Swiperの外側に固定表示) */
.hero-overlay {
	position: absolute;
	inset: 0;
	z-index: 10;
	overflow: hidden;
	pointer-events: none;
}
.hero-overlay__frame {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hero-overlay__line-txt {
	position: absolute;
	top: 0;
	display: block;
}
.hero-overlay__catch {
	position: absolute;
	text-shadow: 0 0 .5em rgba(0, 0, 0, .2);
}
.hero-overlay__catch-ja {
	color: var(--white);
	font-weight: bold;
}
.hero-overlay__catch-lead {
	color: var(--white);
}
.hero-overlay__scroll {
	position: absolute;
	display: block;
}

/* ③ 演出用オーバーレイ(初回のみ再生する別レイヤー) */
.intro-effect {
	position: absolute;
	inset: 0;
	z-index: 20;
	overflow: hidden;
	pointer-events: none;
	opacity: 1;
	transition: opacity .7s ease;
}
.intro-effect.is-fading {
	opacity: 0;
}
.intro-effect.is-done {
	display: none;
}
.intro-effect__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transform: scale(1.7);
	animation: heroZoomOut var(--duration-zoom) var(--ease-zoom) forwards;
	animation-play-state: paused;
	background-color: #1a2338;
}
@keyframes heroZoomOut {
	from { transform: scale(1.7); }
	to { transform: scale(1); }
}
.intro-effect__catch {
	position: absolute;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: left;
	white-space: nowrap;
}
.intro-effect__catch-ja {
	color: var(--white);
	font-weight: bold;
}
.intro-effect__catch-en {
	color: #2c673c;
	font-family: var(--font-en);
	line-height: 1;
}
.intro-effect__panel {
	position: absolute;
	inset: 0;
	background-color: var(--panel-color);
}
.intro-effect__panel--left {
	clip-path: polygon(0 0, 68% 0, 32% 100%, 0 100%);
	animation: panelLeftOut var(--duration-panel) var(--ease-panel) forwards;
	animation-play-state: paused;
}
.intro-effect__panel--right {
	clip-path: polygon(68% 0, 100% 0, 100% 100%, 32% 100%);
	animation: panelRightOut var(--duration-panel) var(--ease-panel) forwards;
	animation-play-state: paused;
}
@keyframes panelLeftOut {
	from { transform: translateX(0); }
	to { transform: translateX(-105%); }
}
@keyframes panelRightOut {
	from { transform: translateX(0); }
	to { transform: translateX(105%); }
}

@media screen and (max-width: 767px) {
	.hero-zone {
		aspect-ratio: 375 / 630;
	}
	.hero-pagination {
		bottom: 16.533vw !important;
		padding-left: 8vw;
	}
	.hero-zone .hero-pagination .swiper-pagination-bullet {
		width: 16vw;
		height: 0.8vw;
	}
	.hero-overlay__line-txt {
		top: 4.8vw;
		left: 4vw;
		width: 18.667vw;
	}
	.hero-overlay__catch {
		top: 80.8vw;
		left: 11.467vw;
	}
	.hero-overlay__catch-ja {
		font-size: 9.6vw;
		line-height: 1.44;
	}
	.hero-overlay__catch-lead {
		margin-top: 3.2vw;
		font-size: 3.733vw;
		line-height: 2.14;
	}
	.hero-overlay__scroll {
		right: 8.533vw;
		bottom: 0;
		width: 2.933vw;
	}
	.intro-effect__catch {
		top: 46%;
		margin-left: 2.933vw;
	}
	.intro-effect__catch-ja {
		font-size: 9.6vw;
		line-height: 1.33;
	}
	.intro-effect__catch-en {
		margin-top: 5.867vw;
		font-size: 6.133vw;
	}
}
@media screen and (min-width: 768px), print {
	.hero-zone {
		aspect-ratio: 1440 / 740;
		min-height: 740px;
	}
	.hero-pagination {
		bottom: 14px !important;
		padding-left: 24px;
	}
	.hero-zone .hero-pagination .swiper-pagination-bullet {
		width: 60px;
		height: 3px;
	}
	.hero-overlay::before {
		content: "";
		position: absolute;
		bottom: 0;
		right: 0;
		display: block;
		background: url(img/hero_frame_pc2.webp) no-repeat bottom left;
		background-size: cover;
		width: 690px;
		height: 100%;
	}
	.hero-overlay__line-txt {
		top: 41px; /* 2.847vw / 1440px */
		left: 40px; /* 2.778vw / 1440px */
		width: 144px; /* 10vw / 1440px */
	}
	.hero-overlay__catch {
		right: 40px; /* 2.778vw / 1440px */
		bottom: 60px; /* 4.167vw / 1440px */
	}
	.hero-overlay__catch-ja {
		font-size: 51px; /* max(3.542vw, 40px) / 1440px */
		line-height: 1.44;
	}
	.hero-overlay__catch-lead {
		margin-top: 12px; /* 0.833vw / 1440px */
		font-size: 16px; /* max(1.111vw, 13px) / 1440px */
		line-height: 2.14;
	}
	.hero-overlay__scroll {
		right: 52px; /* 3.611vw / 1440px */
		bottom: 0;
		width: 12px; /* 0.833vw / 1440px */
	}
	.intro-effect__catch {
		top: 47.5%;
		margin-left: 21px;
	}
	.intro-effect__catch-ja {
		font-size: 91px;
		line-height: 1.32;
	}
	.intro-effect__catch-en {
		margin-top: 17px;
		font-size: 58px;
	}
}


/* -----------------------------------------------------------------------
 footer
----------------------------------------------------------------------- */

.footer {
	position: relative;
	overflow: hidden;
	border-top: 1px solid #ddd;
	background-color: var(--white);
	background-repeat: no-repeat;
	background-position: left top;
	background-size: cover;
}
.footer a:hover {
	opacity: .7;
}
.footer__logo a {
	display: inline-block;
}
.footer__tel-link {
	color: inherit;
}
.footer__nav-list a,
.footer__column-list a {
	display: block;
	color: var(--main-text-color);
	font-weight: bold;
}
.footer__column-title {
	font-weight: bold;
}
.footer__column-title a {
	color: var(--main-text-color);
}
.footer__column-list a {
	font-weight: normal;
}
.footer__column-list a::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 1px;
	background-color: var(--main-text-color);
	vertical-align: middle;
	margin-right: 13px;
}
/* 米印のぶら下げインデント(折り返し行を1em字下げ。paddingの+1emとセット) */
.footer__note {
	text-indent: -1em;
}
.footer__notice a {
	color: var(--main-theme-color);
}
.footer__policy a {
	color: var(--white);
}
.footer__copyright {
	color: var(--white);
	font-family: var(--font-en);
	font-weight: 300;
}
.footer__bottom {
	background: linear-gradient(to right, #098e4a, #6dcf6b);
}

@media screen and (max-width: 767px) {
	.footer {
		padding-top: 15.733vw;
		background-image: url(img/footer_bg_sp.webp);
	}
	.footer__flex {
		flex-direction: column;
	}
	.footer__logo {
		padding-left: 1.333vw;
	}
	.footer__logo img {
		width: 48.267vw;
	}
	.footer__address {
		padding-left: 6.667vw;
		margin-top: 6.4vw;
		font-size: 1em;
		line-height: 1.714;
	}
	.footer__contact {
		padding-left: 6.667vw;
		margin-top: 5.067vw;
		font-size: 1em;
		line-height: 1.714;
	}
	.footer__sns {
		padding-left: 7.467vw;
		margin-top: 6.4vw;
		gap: 5.333vw;
		align-items: center;
	}
	.footer__sns img {
		height: 6.4vw;
		width: auto;
	}
	.footer__sns li:last-child img {
		height: 5.6vw;
	}
	.footer__note {
		padding-left: calc(6.667vw + 1em);
		margin-top: 9.333vw;
		font-size: 1em;
		line-height: 1.5;
	}
	.footer__nav {
		margin-top: 12.8vw;
	}
	.footer__nav-list {
		padding-left: 6.667vw;
	}
	.footer__nav-list a {
		font-size: 4.8vw;
		line-height: 2.5;
	}
	.footer__column {
		margin-top: 12.267vw;
		padding-left: 6.133vw;
	}
	.footer__column-title {
		font-size: 4.8vw;
	}
	.footer__column-list {
		margin-top: 4.533vw;
	}
	.footer__column-list a {
		font-size: 4.267vw;
		/* 折り返し時の行間は1.5に。項目間隔は上下paddingで従来(行高2.25em)を維持 */
		line-height: 1.5;
		padding: 1.6vw 0;
	}
	.footer__notice {
		margin-top: 11.2vw;
		border-top: 1px solid #ddd;
		padding: 6.933vw 0 8.533vw 5.333vw;
		font-size: 1em;
		line-height: 1.714;
	}
	.footer__bottom {
		height: 43.2vw;
		padding-top: 10.4vw;
	}
	.footer__bottom-inner {
		padding-left: 2.667vw;
	}
	.footer__policy a {
		font-size: 4.8vw;
		line-height: 1;
	}
	.footer__copyright {
		font-size: 4.8vw;
		line-height: 1;
		margin-top: 13.067vw;
	}
}
@media screen and (min-width: 768px), print {
	.footer {
		padding-top: 60px;
		background-image: url(img/footer_bg_pc.webp);
	}
	.footer__info {
		width: 642px;
	}
	.footer__logo img {
		width: 190px;
	}
	.footer__address {
		padding-left: 20px;
		margin-top: 26px;
		font-size: 1em;
		line-height: 1.5;
	}
	.footer__contact {
		padding-left: 20px;
		margin-top: 20px;
		font-size: 1em;
		line-height: 1.5;
	}
	.footer__sns {
		padding-left: 20px;
		margin-top: 24px;
		gap: 20px;
		align-items: center;
	}
	.footer__sns img {
		height: 24px;
		width: auto;
	}
	.footer__sns li:last-child img {
		height: 21px;
	}
	.footer__note {
		padding-left: calc(20px + 1em);
		margin-top: 60px;
		font-size: 14px;
	}
	.footer__nav {
		margin-top: 17px;
	}
	.footer__nav-list {
		/* 画面縮小時はナビ〜コラム間の余白から先に詰める(1200px以上では従来どおり200px) */
		width: clamp(110px, calc(100vw - 1000px), 200px);
	}
	.footer__nav-list a {
		font-size: 18px;
		line-height: 2.5;
	}
	.footer__column {
		/* コラムのカテゴリ名は縮小時も折り返さない(不足分はinfo側が吸収) */
		flex: none;
		margin-top: 31px;
	}
	.footer__column-title {
		font-size: 18px;
		line-height: 1;
	}
	.footer__column-list {
		margin-top: 17px;
	}
	.footer__column-list a {
		font-size: 16px;
		/* 折り返し時の行間は1.5に。項目間隔は上下paddingで従来(行高2.25em)を維持 */
		line-height: 1.5;
		padding: 6px 0;
	}
	.footer__notice {
		margin-top: 50px;
		border-top: 1px solid #ddd;
		padding: 26px 0 24px 20px;
		font-size: 14px;
		line-height: 1.714;
	}
	.footer__bottom {
		height: 80px;
	}
	.footer__bottom-inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 100%;
		padding-left: 20px;
	}
	.footer__policy a {
		font-size: 18px;
	}
	.footer__copyright {
		font-size: 18px;
	}
}


/* -----------------------------------------------------------------------
 私たちの想い(purpose)
----------------------------------------------------------------------- */

.purpose_sec {
	background-color: var(--bg-color1);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
.purpose_lead {
	text-align: center;
}
.purpose_card {
	position: relative;
	overflow: hidden;
}
/* カード右上の円形装飾 */
.purpose_card::before {
	content: "";
	position: absolute;
	border-radius: 50%;
	background-color: #edfaf0;
}
.purpose_card-en {
	color: var(--main-theme-color);
	font-family: var(--font-en);
	line-height: 1;
	position: relative;
}
.purpose_card-ja {
	font-weight: bold;
	line-height: 1;
}
.purpose_card-icon {
	position: absolute;
}
.purpose_vision-txt {
	position: relative;
}
.purpose_vision-txt em {
	color: var(--main-theme-color);
}
.purpose_value-list li {
	display: flex;
	align-items: flex-start;
	position: relative;
	z-index: 1;
}
.purpose_value-num {
	flex: none;
	color: var(--main-theme-color);
	font-family: var(--font-en);
}

@media screen and (max-width: 767px) {
	.purpose_sec {
		background-image: url(img/purpose_bg_sp.webp);
		padding: 15.733vw 0 21.333vw;
	}
	.purpose_lead {
		margin-top: 7.733vw;
		font-size: 1em;
		line-height: 2.143;
	}
	.purpose_flex {
		flex-direction: column;
		gap: 7.733vw;
		margin-top: 13.067vw;
	}
	.purpose_card {
		padding: 9.867vw 6.4vw 0 10.667vw;
	}
	.purpose_card--vision {
		height: 93.6vw;
	}
	.purpose_card--value {
		height: 120vw;
	}
	.purpose_card::before {
		width: 50.667vw;
		height: 50.667vw;
		top: -8vw;
		right: -8.267vw;
	}
	.purpose_card-en {
		font-size: 9.6vw;
	}
	.purpose_card-ja {
		font-size: 4.267vw;
		margin-top: 4.267vw;
	}
	.purpose_card--vision .purpose_card-icon {
		width: 20.8vw;
		top: 8.8vw;
		right: 6.667vw;
	}
	.purpose_card--value .purpose_card-icon {
		width: 19.2vw;
		top: 9.067vw;
		right: 7.733vw;
	}
	.purpose_vision-txt {
		margin-top: 8vw;
		font-size: 6.4vw;
		line-height: 1.75;
	}
	.purpose_value-list {
		margin-top: 9.867vw;
	}
	.purpose_value-list li {
		font-size: 5.6vw;
		line-height: 1.143;
		padding-bottom: 9.6vw;
	}
	.purpose_value-num {
		width: 8.8vw;
		font-size: 6.4vw;
		line-height: 1;
	}
	.purpose_more {
		margin-top: 13.333vw;
	}
}
@media screen and (min-width: 768px), print {
	.purpose_sec {
		background-image: url(img/purpose_bg_pc.webp);
		padding: 119px 0 130px;
	}
	.purpose_lead {
		margin-top: 30px;
		font-size: 1em;
		line-height: 1.875;
	}
	.purpose_flex {
		gap: 3%; /* 36/1200 */
		margin-top: 53px;
	}
	.purpose_card {
		width: calc((100% - 3%) / 2);
		min-height: 450px;
		padding: 45px 48px 0;
	}
	.purpose_card::before {
		width: 250px;
		height: 250px;
		top: -40px;
		right: -40px;
	}
	.purpose_card-en {
		font-size: 51px;
	}
	.purpose_card-ja {
		font-size: 21px;
		margin-top: 15px;
	}
	.purpose_card--vision .purpose_card-icon {
		width: 103px;
		top: 43px;
		right: 34px;
	}
	.purpose_card--value .purpose_card-icon {
		width: 95px;
		top: 44px;
		right: 38px;
	}
	.purpose_vision-txt {
		margin-top: 37px;
		font-size: 30px;
		line-height: 1.7;
	}
	.purpose_value-list {
		margin-top: 29px;
	}
	.purpose_value-list li {
		font-size: 27px;
		line-height: 2.222;
	}
	.purpose_value-num {
		width: 60px;
		font-size: 30px;
		line-height: 2;
	}
	.purpose_more {
		margin-top: 90px;
	}
}


/* -----------------------------------------------------------------------
 お問い合わせ(contact)
----------------------------------------------------------------------- */

.contact_sec {
	position: relative;
	overflow: hidden;
	background-color: #117b49;
	color: var(--white);
}
/* 写真をソフトライトで緑背景に合成 */
.contact_sec::before {
	content: "";
	position: absolute;
	background: url(img/contact_01.jpg) no-repeat 0 0 / 100% 100%;
	mix-blend-mode: soft-light;
	pointer-events: none;
}
.contact_inner {
	position: relative;
	z-index: 1;
}
.contact_title .sec_title__en {
	color: var(--white);
}
.contact_lead {
	text-align: center;
}
.contact_btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-left: auto;
	margin-right: auto;
	box-shadow: var(--box-shadow);
}
.contact_btn::after {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 2px solid var(--white);
	border-right: 2px solid var(--white);
	transform: rotate(45deg);
}

@media screen and (max-width: 767px) {
	.contact_sec {
		padding: 15.733vw 0 24vw;
	}
	.contact_sec::before {
		left: -84.8vw;
		top: -73.333vw;
		width: 427.467vw;
		height: 240.267vw;
	}
	.contact_lead {
		margin-top: 7.733vw;
		font-size: 1em;
		line-height: 2.143;
	}
	.contact_btn {
		width: 100%;
		height: 14.933vw;
		margin-top: 8.533vw;
		padding: 0 8.267vw 0 7.733vw;
		font-size: 4.267vw;
	}
}
@media screen and (min-width: 768px), print {
	.contact_sec {
		padding: 59px 0 67px;
	}
	.contact_sec::before {
		left: -4px;
		top: -305px;
		width: 1672px;
		height: 941px;
	}
	.contact_title .sec_title__en {
		font-size: 16px;
	}
	.contact_title .sec_title__ja {
		font-size: 42px;
		margin-top: 22px;
	}
	.contact_lead {
		margin-top: 31px;
		font-size: 1em;
		line-height: 1.875;
	}
	.contact_btn {
		width: 360px;
		height: 60px;
		margin-top: 33px;
		padding: 0 42px 0 38px;
		font-size: 1em;
	}
}


/* -----------------------------------------------------------------------
 事業一覧(service)
----------------------------------------------------------------------- */

.service_sec {
	background-color: var(--white);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
.service_card {
	position: relative;
	overflow: hidden;
	transition: background-color .2s ease;
}
.service_card a {
	display: block;
	color: var(--main-text-color);
}
.service_card-title,
.service_card-txt {
	transition: color .2s ease;
}
/* ホバー: カード全体を薄緑背景+テーマグリーン文字に(背景はpadding基準のliに当てる) */
.service_card:hover {
	background-color: #edfaf0;
}
.service_card:hover .service_card-title,
.service_card:hover .service_card-txt {
	color: var(--sub-theme-color);
}
/* カード全体をクリック可能にする(番号バッジ・アイコンはliに絶対配置のため、aの擬似要素をカード全面に重ねる) */
.service_card a::after {
	content: "";
	position: absolute;
	inset: 0;
}
/* 左上の番号バッジ */
.service_card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	background: linear-gradient(90deg, #069a61, #67d13d);
}
.service_card-num {
	position: absolute;
	color: var(--white);
	font-family: var(--font-en);
	font-weight: normal;
	line-height: 1;
}
.service_card-icon {
	position: absolute;
	top: 40px;
	left: 50%;
	transform: translateX(-50%);
}
.service_card-title {
	text-align: center;
}
.service_card-title span {
	display: block;
}

@media screen and (max-width: 767px) {
	.service_sec {
		background-image: url(img/service_bg_sp.webp);
		padding: 15.733vw 0 21.333vw;
	}
	.service_lead {
		margin-top: 7.733vw;
		font-size: 1em;
		line-height: 2.143;
	}
	.service_flex {
		flex-direction: column;
		gap: 8.267vw;
		margin-top: 11.2vw;
	}
	.service_card {
		padding: 0 8vw 10.133vw;
	}
	.service_card::before {
		width: 29.333vw;
		height: 29.333vw;
		/*background: linear-gradient(90deg, #0a9c5f, #61ce40);*/
	}
	.service_card-num {
		top: 6.4vw;
		left: 6.4vw;
		font-size: 5.333vw;
	}
	/* カードのアイコン(トップ・事業内容ページ共通。HTMLのwidth属性より優先) */
	.service_card-icon {
		width: 21.6vw; /* 81px */
	}
	.service_card-title {
		margin-top: 40vw;
		font-size: 5.333vw;
		line-height: 1.5;
	}
	.service_card-title span {
		font-size: 4vw;
		line-height: 2;
	}
	.service_card-txt {
		margin-top: 7.2vw;
		font-size: 1em;
		line-height: 1.929;
	}
	.service_more {
		margin-top: 13.6vw;
	}
}
@media screen and (min-width: 768px), print {
	.service_sec {
		background-image: url(img/service_bg_pc.webp);
		padding: 119px 0 121px;
	}
	.service_title .sec_title__en {
		font-size: 16px;
	}
	.service_lead {
		text-align: center;
		margin-top: 31px;
		font-size: 1em;
		line-height: 1.875;
	}
	.service_flex {
		flex-wrap: wrap;
		gap: 40px 3%; /* 36/1200 */
		margin-top: 53px;
	}
	.service_card {
		width: calc((100% - 6%) / 3);
		padding: 0 30px 27px;
	}
	.service_card::before {
		width: 130px;
		height: 130px;
		/*background-color: #e8fff5;*/
	}
	.service_card-num {
		top: 28px;
		left: 29px;
		font-size: 24px;
	}
	/* カードのアイコン(トップ・事業内容ページ共通。HTMLのwidth属性より優先) */
	.service_card-icon {
		width: 81px;
	}
	.service_card-title {
		/* タイトル1行+サブ1行分の高さを確保しつつ、折り返しで超える場合は本文を押し下げる */
		min-height: 60px;
		margin-top: 150px;
		font-size: 21px;
		line-height: 1.429;
	}
	.service_card-title span {
		font-size: 16px;
		line-height: 1.875;
	}
	.service_card-txt {
		margin-top: 14px;
		font-size: 1em;
		line-height: 1.6875;
	}
	.service_more {
		margin-top: 80px;
	}
}


/* -----------------------------------------------------------------------
 お知らせ(information)
----------------------------------------------------------------------- */

.info_sec {
	background-color: var(--white);
}
.info_list a {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
	border-bottom: 1px solid var(--boder-color);
}
.info_list a:hover {
	opacity: .7;
}
.info_list li:first-child a {
	border-top: 1px solid var(--boder-color);
}
.info_date {
	color: var(--main-text-color);
	font-family: var(--font-en);
	font-weight: 300;
	line-height: 1;
}
/* WordPress化時の追記: 画面縮小時に日付・カテゴリ列が行ごとに縮んで列ずれしないよう
   flex-shrinkを無効化し、縮小分はタイトル側の折り返しで吸収する。
   列幅・右余白はclamp()でコンテンツ幅(1200px時の設計値)に比例して縮小、
   行の高さはタイトル長が不定のためmin-height指定(各媒体クエリ内で変更) */
.info_date,
.info_tag {
	flex-shrink: 0;
}
.info_txt {
	min-width: 0;
}

@media screen and (max-width: 767px) {
	.info_list {
		margin-top: 10.4vw;
	}
	.info_list a {
		flex-wrap: wrap;
		padding: 6.667vw 2.667vw 8vw;
	}
	.info_date {
		width: 26.133vw;
		font-size: 4.8vw;
	}
	.info_tag {
		width: 38.667vw;
		font-size: 3.2vw;
		line-height: 5.867vw;
	}
	.info_txt {
		width: 100%;
		margin-top: 7.2vw;
		font-size: 1em;
		line-height: 1;
	}
	.info_more {
		margin-top: 13.6vw;
	}
}
@media screen and (min-width: 768px), print {
	.info_title .sec_title__en {
		font-size: 16px;
	}
	.info_list {
		margin-top: 44px;
	}
	.info_list a {
		min-height: 70px;
		padding: 0 40px;
	}
	.info_date {
		width: clamp(95px, 8.78vw, 118px);
		font-size: 18px;
	}
	.info_tag {
		width: 150px;
		margin-right: clamp(16px, 3.72vw, 50px);
		font-size: 14px;
		line-height: 26px;
	}
	.info_txt {
		font-size: 1em;
		line-height: 1.5;
	}
	.info_more {
		margin-top: 81px;
	}
}


/* -----------------------------------------------------------------------
 全国の事業所(locations)
----------------------------------------------------------------------- */

.locations_sec {
	background-color: var(--bg-color1);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
.locations_map-card {
	position: relative;
	overflow: hidden;
}
.locations_map-ttl {
	color: var(--sub-theme-color);
}
/* 地図画像は背景が不透明のため、テキストを前面に重ねる */
.locations_map-ttl,
.locations_map-txt {
	position: relative;
	z-index: 1;
}
.locations_map-img {
	position: absolute;
	max-width: none;
}
.locations_map-data {
	position: relative;
	z-index: 1;
}
.locations_map-data-item {
	position: relative;
}
.locations_map-data-icon {
	position: absolute;
}
.locations_map-data-num {
	font-weight: bold;
}
/* エリアタブ */
.locations_tab-nav {
	display: flex;
	flex-wrap: wrap;
}
.locations_tab-btn {
	background-color: var(--white);
	border: none;
	color: var(--main-theme-color);
	font-family: inherit;
	cursor: pointer;
	transition: opacity .3s ease;
}
.locations_tab-btn:hover {
	opacity: .7;
}
.locations_tab-btn.is-active {
	background-color: var(--main-theme-color);
	color: var(--white);
	cursor: default;
}
.locations_tab-btn.is-active:hover {
	opacity: 1;
}
/* タブパネル */
.locations_panel {
	display: none;
}
.locations_panel.is-active {
	display: block;
}
.locations_area-head {
	align-items: center;
}
.locations_area-ttl {
	color: var(--sub-theme-color);
	line-height: 1;
}
.locations_area-note {
	background-color: #eeffe1;
	color: #186341;
}
.locations_office-list a {
	display: block;
	position: relative;
	color: var(--main-text-color);
	font-weight: bold;
}
.locations_office-list a:hover {
	opacity: .7;
}
/* 事業所名の前のピン */
.locations_office-list a::before {
	content: "";
	position: absolute;
	left: 0;
	width: 11px;
	height: 14px;
	background: url(img/locations_04.png) no-repeat 0 0 / 100% 100%;
}
.locations_office-pref {
	color: #666;
}

@media screen and (max-width: 767px) {
	.locations_sec {
		background-image: url(img/locations_bg_sp.webp);
		padding: 15.733vw 0 21.333vw;
	}
	.locations_lead {
		text-align: center;
		margin-top: 7.733vw;
		font-size: 1em;
		line-height: 2.143;
	}
	.locations_flex {
		flex-direction: column;
		gap: 8vw;
		margin-top: 11.467vw;
	}
	.locations_map-card {
		height: 183.733vw;
		padding: 6.933vw 5.333vw 0;
	}
	.locations_map-ttl {
		text-align: center;
		font-size: 7.2vw;
		line-height: 1.444;
	}
	.locations_map-txt {
		text-align: center;
		margin-top: 4.533vw;
		font-size: 1em;
		line-height: 1.714;
	}
	.locations_map-img {
		top: 44.8vw;
		left: -6.667vw;
		width: 102.933vw;
	}
	.locations_map-data {
		flex-direction: column;
		align-items: center;
		gap: 2.667vw;
		margin-top: 72vw;
	}
	.locations_map-data-item {
		width: 62.933vw;
		height: 26.667vw;
		padding: 8.533vw 0 0 8.267vw;
	}
	.locations_map-data-icon {
		top: 8vw;
		right: 8.267vw;
		width: 7.733vw;
	}
	.locations_map-data-num {
		font-size: 1em;
		line-height: 1;
	}
	.locations_map-data-note {
		margin-top: 2.933vw;
		font-size: 1em;
		line-height: 1;
	}
	.locations_tab-btn {
		width: 33.333%;
		height: 16vw;
		font-size: 4.267vw;
	}
	.locations_tab-btn:not(:nth-child(3n + 1)) {
		border-left: 1px solid var(--main-theme-color);
	}
	.locations_panel {
		padding: 7.2vw 5.333vw 5.333vw;
	}
	.locations_panel.is-active {
		display: block;
	}
	.locations_area-head {
		flex-direction: column;
		align-items: flex-start;
		gap: 2.933vw;
	}
	.locations_area-ttl {
		font-size: 7.2vw;
	}
	.locations_area-note {
		padding: 0 2.133vw;
		font-size: 3.2vw;
		line-height: 7.467vw;
		border-radius: var(--radius-s-sp);
	}
	.locations_office-list {
		margin-top: 6.4vw;
	}
	.locations_office-list a {
		padding-left: 5.6vw;
	}
	.locations_office-list a::before {
		top: 1.333vw;
	}
	.locations_office-name {
		display: block;
		font-size: 1em;
		line-height: 1.714;
	}
	.locations_office-pref {
		display: block;
		font-size: 3.2vw;
		line-height: 3.5;
	}
	.locations_more {
		margin-top: 13.333vw;
	}
}
@media screen and (min-width: 768px), print {
	.locations_sec {
		background-image: url(img/locations_bg_pc.webp);
		padding: 117px 0 128px;
	}
	.locations_title .sec_title__en {
		font-size: 16px;
	}
	.locations_lead {
		text-align: center;
		margin-top: 30px;
		font-size: 1em;
		line-height: 1.875;
	}
	.locations_flex {
		align-items: flex-start;
		gap: 36px;
		margin-top: 54px;
	}
	.locations_map-card {
		width: 582px;
		height: 498px;
		padding: 44px 49px 0;
	}
	.locations_map-ttl {
		font-size: 30px;
		line-height: 1.4;
	}
	.locations_map-txt {
		margin-top: 16px;
		font-size: 1em;
		line-height: 1.875;
	}
	.locations_map-img {
		top: 17px;
		left: 129px;
		width: 464px;
	}
	.locations_map-data {
		gap: 9px;
		margin-top: 145px;
	}
	.locations_map-data-item {
		width: 236px;
		height: 100px;
		padding: 32px 0 0 31px;
	}
	.locations_map-data-icon {
		top: 30px;
		right: 31px;
		width: 29px;
	}
	.locations_map-data-num {
		font-size: 14px;
		line-height: 1;
	}
	.locations_map-data-note {
		margin-top: 11px;
		font-size: 14px;
		line-height: 1;
	}
	.locations_tab-card {
		width: 582px;
	}
	.locations_tab-btn {
		flex: 1;
		height: 60px;
		font-size: 1em;
	}
	.locations_tab-btn + .locations_tab-btn {
		border-left: 1px solid var(--main-theme-color);
	}
	.locations_panel {
		padding: 36px 39px 39px;
	}
	.locations_area-head {
		gap: 14px;
	}
	.locations_area-ttl {
		font-size: 30px;
	}
	.locations_area-note {
		padding: 0 8px;
		font-size: 14px;
		line-height: 28px;
		border-radius: var(--radius-s-pc);
	}
	.locations_office-list {
		margin-top: 26px;
	}
	.locations_office-list a {
		padding-left: 22px;
		line-height: 2.625;
	}
	.locations_office-list a::before {
		top: 14px;
	}
	.locations_office-name {
		font-size: 1em;
	}
	.locations_office-pref {
		margin-left: 6px;
		font-size: 14px;
	}
	.locations_more {
		margin-top: 80px;
	}
}


/* -----------------------------------------------------------------------
 ミレニアムで働く(recruit)
----------------------------------------------------------------------- */

.recruit_sec {
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
/* カード(写真込みの背景画像) */
.recruit_card {
	position: relative;
	overflow: hidden;
	background-repeat: no-repeat;
	background-size: 100% auto;
}
.recruit_card-tag {
	background-color: var(--main-theme-color);
	color: var(--white);
	vertical-align: middle;
}
.recruit_card-tag-icon {
	display: inline-block;
	vertical-align: middle;
}
.recruit_card-ttl {
	color: var(--sub-theme-color);
}
.recruit_card-txt {
	text-shadow: 0 0 .2em rgba(255, 255, 255, .42);
}
.recruit_card-btn {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-shadow: var(--box-shadow);
}
.recruit_card-btn::after {
	content: "";
	width: 6px;
	height: 6px;
	border-top: 2px solid var(--white);
	border-right: 2px solid var(--white);
	transform: rotate(45deg);
}

@media screen and (max-width: 767px) {
	.recruit_sec {
		background-image: url(img/recruit_bg_sp.webp);
		padding: 15.733vw 0 21.333vw;
	}
	.recruit_lead {
		text-align: center;
		margin-top: 7.733vw;
		font-size: 1em;
		line-height: 2.143;
	}
	.recruit_flex {
		flex-direction: column;
		gap: 9.067vw;
		margin-top: 11.2vw;
	}
	.recruit_card {
		padding: 6.667vw 5.333vw 0;
	}
	.recruit_card--experienced {
		height: 84.267vw;
		background-image: url(img/recruit_03.png);
	}
	.recruit_card--beginner {
		height: 81.867vw;
		background-image: url(img/recruit_04.png);
	}
	.recruit_card-tag {
		height: 7.2vw;
		padding: 0 2.4vw;
		font-size: 1em;
		line-height: 7.2vw;
	}
	.recruit_card-tag-icon {
		width: 4.8vw;
		margin-left: 2.667vw;
	}
	.recruit_card-ttl {
		margin-top: 1.867vw;
		font-size: 6.4vw;
		line-height: 1.375;
	}
	.recruit_card-txt {
		margin-top: 1.067vw;
		font-size: 1em;
		line-height: 1.714;
	}
	.recruit_card-btn {
		left: 5.6vw;
		bottom: 8vw;
		width: 77.333vw;
		height: 16vw;
		padding: 0 5.6vw 0 5.067vw;
		font-size: 4.267vw;
	}
}
@media screen and (min-width: 768px), print {
	.recruit_sec {
		background-image: url(img/recruit_bg_pc.webp);
		padding: 112px 0 117px;
	}
	.recruit_title .sec_title__en {
		font-size: 16px;
	}
	.recruit_lead {
		text-align: center;
		margin-top: 30px;
		font-size: 1em;
		line-height: 1.875;
	}
	.recruit_flex {
		gap: 3%; /* 36/1200 */
		margin-top: 53px;
	}
	.recruit_card {
		width: calc((100% - 3%) / 2);
		height: 350px;
		padding: 35px 29px 0;
		background-position: right top;
	}
	.recruit_card--experienced {
		background-image: url(img/recruit_01.png);
	}
	.recruit_card--beginner {
		background-image: url(img/recruit_02.png);
	}
	.recruit_card-tag {
		height: 31px;
		padding: 0 10px;
		font-size: 1em;
		line-height: 31px;
	}
	.recruit_card-tag-icon {
		width: 21px;
		margin-left: 10px;
	}
	.recruit_card-ttl {
		margin-top: 15px;
		font-size: 33px;
		line-height: 1.273;
	}
	.recruit_card-txt {
		margin-top: 7px;
		font-size: 1em;
		line-height: 1.875;
		max-width: 303px;
	}
	.recruit_card-txt2 {
		max-width: 306px;
	}
	.recruit_card-btn {
		left: 30px;
		bottom: 34px;
		width: min(360px, calc(100% - 60px));
		height: 60px;
		padding: 0 29px; /* 矢印を右端寄せ(テキスト左余白=矢印右余白) */
		font-size: 1em;
	}
}


/* -----------------------------------------------------------------------
 コラム(column)
----------------------------------------------------------------------- */

.column_sec {
	background-color: var(--white);
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}
.column_card {
	position: relative;
	overflow: hidden;
}
.column_card a {
	display: block;
	color: var(--main-text-color);
}
.column_card a:hover {
	opacity: .7;
}
/* 画像+タグ+日付(画像の下にタグ→日付を縦並びで配置。日付は右寄せ) */
.column_card-media {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.column_card-img {
	width: 100%;
}
.column_card-tag {
	display: inline-flex;
	align-items: center;
	background-color: var(--main-theme-color);
	color: var(--white);
	border-radius: 0;
	text-align: left;
}
.column_card-date {
	margin-left: auto;
	color: var(--main-theme-color);
	font-family: var(--font-en);
	line-height: 1;
}

@media screen and (max-width: 767px) {
	.column_flex {
		flex-direction: column;
		gap: 8.267vw;
		margin-top: 13.333vw;
	}
	.column_sec {
		background-image: url(img/column_08.png);
		padding: 15.733vw 0 21.333vw;
	}
	.column_card {
		padding-bottom: 5.6vw;
	}
	.column_card-tag {
		min-height: 6.933vw;
		padding: 0.533vw 2.667vw;
		font-size: 3.2vw;
		line-height: 1.4;
	}
	.column_card-date {
		margin-top: 0.533vw;
		margin-right: 5.333vw;
		font-size: 4.267vw;
	}
	.column_card-ttl {
		margin: 3.733vw 5.333vw 0;
		font-size: 4.267vw;
		line-height: 1.5;
	}
	.column_more {
		margin-top: 13.6vw;
	}
}
@media screen and (min-width: 768px), print {
	.column_sec {
		background-image: url(img/column_07.png);
		padding: 122px 0 120px;
	}
	.column_title .sec_title__en {
		font-size: 16px;
	}
	.column_title .sec_title__ja {
		font-size: 42px;
		margin-top: 22px;
	}
	.column_flex {
		flex-wrap: wrap;
		gap: 50px 3%; /* 36/1200 */
		margin-top: 59px;
	}
	.column_card {
		width: calc((100% - 6%) / 3);
		padding-bottom: 27px;
	}
	.column_card-tag {
		min-height: 26px;
		padding: 2px 10px;
		font-size: 14px;
		line-height: 1.4;
	}
	.column_card-date {
		margin-top: 2px;
		margin-right: 18px;
		font-size: 18px;
	}
	.column_card-ttl {
		margin: 15px 18px 0;
		font-size: 18px;
		line-height: 1.333;
	}
	.column_more {
		margin-top: 80px;
	}
}


/* -----------------------------------------------------------------------
 下層ページ共通パーツ(H1 / パンくず / H2 / H3)
----------------------------------------------------------------------- */

/* H1(ページタイトル + 背景画像) */
.page_head {
	position: relative;
	overflow: hidden;
	background-color: var(--white);
}
.page_head__inner {
	position: relative;
	z-index: 1;
}
.page_head__title {
	color: var(--main-text-color);
	text-shadow: 0 0 .2em var(--white);
}
.page_head__en {
	display: block;
	color: var(--main-theme-color);
	font-family: var(--font-en);
	font-weight: normal;
	line-height: 1;
}
.page_head__img {
	object-fit: cover;
}

/* パンくずリンク */
.breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.breadcrumb__list li {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
}
.breadcrumb__list a {
	color: var(--main-theme-color);
}
.breadcrumb__list a:hover {
	opacity: .7;
}
/* 項目間の区切り(短い横線) */
.breadcrumb__list li:not(:first-child)::before {
	content: "";
	width: 8px;
	height: 1px;
	background-color: var(--main-text-color);
}

/* H2見出し(縦バー + テキスト + 下線。改行時はバーが自動で伸びる) */
.page_h2 {
	position: relative;
	color: var(--main-text-color);
	border-bottom: 2px solid var(--main-theme-color);
}
.page_h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 8px;
	background: linear-gradient(#67d13d, #069a61);
}

/* H3見出し(丸ドット + テキスト) */
.page_h3 {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
	line-height: 1;
}
.page_h3::before {
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--sub-theme-color);
}

@media screen and (max-width: 767px) {
	/* H1 */
	.page_head {
		background-image: url(img/page_head_sp.webp);
		background-repeat: no-repeat;
		background-position: top center;
		/* タイトルの行数が変わっても背景が写真の開始位置(全体の高さ − 写真の高さ55.2vw)まで
		   ぴったり届くようにする。写真なしのnewsページのみ個別に上書き */
		background-size: 100% calc(100% - 55.2vw);
	}
	.page_head__inner {
		padding-top: 14.133vw;
	}
	.page_head__title {
		font-size: 9.6vw;
		line-height: 1.33;
	}
	.page_head__en {
		margin-top: 6.667vw;
		font-size: 3.733vw;
	}
	.page_head__img {
		width: 100%;
		height: 55.2vw;
		margin-top: 15.733vw;
	}
	/* パンくず */
	.breadcrumb {
		margin-top: 5.867vw;
	}
	.breadcrumb__list {
		font-size: 3.733vw;
		line-height: 1;
		/* 長い場合は折り返さず横スクロールで見せる(スクロールバーは非表示) */
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		/* スクロール領域を画面右端まで広げる(.innerの右余白5.333vw ÷ inner幅89.333vw) */
		margin-right: -5.97%;
	}
	.breadcrumb__list::-webkit-scrollbar {
		display: none;
	}
	.breadcrumb__list li {
		flex: none;
	}
	.breadcrumb__list li:not(:first-child)::before {
		margin: 0 2.4vw;
	}
	/* 要素サンプル */
	.element_sample {
		padding: 16vw 0 21.333vw;
	}
	/* H2 */
	.page_h2 {
		padding: 1.6vw 0 5.333vw 7.2vw;
		font-size: 7.2vw;
		line-height: 1.111;
	}
	.page_h2::before {
		bottom: 3.467vw;
	}
	/* H3 */
	.page_h3 {
		margin-top: 8vw;
		font-size: 5.6vw;
	}
	.page_h3::before {
		margin-right: 3.467vw;
	}
}
@media screen and (min-width: 768px), print {
	/* H1 */
	.page_head {
		padding-top: 93px;
		min-height: 265px;
		background-image: url(img/page_head.webp);
		background-repeat: no-repeat;
		background-position: top center;
		background-size: cover;
	}
	.page_head__title {
		font-size: 48px;
		line-height: 1.2;
	}
	.page_head__en {
		margin-top: 15px;
		font-size: 16px;
	}
	.page_head__img {
		position: absolute;
		top: 0;
		right: 0;
		width: 592px;
		height: 265px;
		/* デザインの写真左端の斜めカット(ストライプ背景と同角度)を再現 */
		clip-path: polygon(193px 0, 100% 0, 100% 100%, 0 100%);
	}
	/* パンくず */
	.breadcrumb {
		margin-top: 22px;
	}
	.breadcrumb__list {
		font-size: 14px;
		line-height: 1;
	}
	.breadcrumb__list li:not(:first-child)::before {
		margin: 0 9px;
	}
	/* 要素サンプル */
	.element_sample {
		padding: 90px 0 120px;
	}
	/* H2 */
	.page_h2 {
		padding: 4px 0 18px 27px;
		font-size: 33px;
		line-height: 1.121;
	}
	.page_h2::before {
		bottom: 15px;
	}
	/* H3 */
	.page_h3 {
		margin-top: 40px;
		font-size: 27px;
	}
	.page_h3::before {
		margin-right: 13px;
	}
}


/* -----------------------------------------------------------------------
 事業内容ページ
----------------------------------------------------------------------- */

/* リード(事業案内) */
.service_intro__title {
	color: var(--main-text-color);
	line-height: 1.35;
}
.service_intro__title span {
	color: var(--lead-green);
}
/* 見出し下の短い罫線 */
.service_intro__title::after {
	content: "";
	display: block;
	background-color: var(--lead-line-green);
}
.service_intro__img {
	flex: none;
	align-self: flex-start;
}

/* 事業一覧(カード本体はTOPの .card / .service_card を再利用し、左上バッジを事業カラーで上書き) */
.service_card--homecareservice::before {
	background: var(--grad-homecareservice);
}
.service_card--consultationsupportoffice::before {
	background: var(--grad-consultationsupportoffice);
}
.service_card--after-schoolcare::before {
	background: var(--grad-after-schoolcare);
}
.service_card--residentialsupport::before {
	background: var(--grad-residentialsupport);
}
.service_card--accessibletravelsupport::before {
	background: var(--grad-accessibletravelsupport);
}
.service_card--millecareacademy::before {
	background: var(--grad-millecareacademy);
}

/* ホバー: バッジ・アイコンをトップページのカード(緑)に合わせる(事業内容ページのカードのみ) */
.service_card[class*="service_card--"]:hover::before {
	background: linear-gradient(90deg, #069a61, #67d13d);
}
/* アイコンは外部SVG(imgのfill)を塗り替えられないため、同形SVGをマスクにして#278d5fで描画し差し替える */
.service_card[class*="service_card--"] .service_card-icon {
	transition: opacity .2s ease;
}
.service_card[class*="service_card--"]::after {
	content: "";
	position: absolute;
	top: 40px;
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--sub-theme-color); /* #278d5f = トップのアイコン色 */
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	opacity: 0;
	transition: opacity .2s ease;
	pointer-events: none;
}
.service_card--homecareservice::after {
	-webkit-mask-image: url(img/service_icon01.svg);
	mask-image: url(img/service_icon01.svg);
}
.service_card--consultationsupportoffice::after {
	-webkit-mask-image: url(img/service_icon02.svg);
	mask-image: url(img/service_icon02.svg);
}
.service_card--after-schoolcare::after {
	-webkit-mask-image: url(img/service_icon03.svg);
	mask-image: url(img/service_icon03.svg);
}
.service_card--residentialsupport::after {
	-webkit-mask-image: url(img/service_icon04.svg);
	mask-image: url(img/service_icon04.svg);
}
.service_card--accessibletravelsupport::after {
	-webkit-mask-image: url(img/service_icon05.svg);
	mask-image: url(img/service_icon05.svg);
}
.service_card--millecareacademy::after {
	-webkit-mask-image: url(img/service_icon06.svg);
	mask-image: url(img/service_icon06.svg);
}
.service_card[class*="service_card--"]:hover::after {
	opacity: 1;
}
.service_card[class*="service_card--"]:hover .service_card-icon {
	opacity: 0;
}
@media screen and (max-width: 767px) {
	.service_card[class*="service_card--"]::after {
		width: 21.6vw; /* .service_card-icon と同値 */
		height: 21.6vw;
	}
}
@media screen and (min-width: 768px), print {
	.service_card[class*="service_card--"]::after {
		width: 81px; /* .service_card-icon と同値 */
		height: 81px;
	}
}

/* 事業詳細ページ導入部(下層事業ページ共通パーツ。slug別の個別クラスと併用する) */
.page_intro {
	background-color: var(--bg-color1);
}
.page_intro__flex {
	align-items: center;
}
.page_intro__icon {
	position: relative;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
}
/* アイコン横(SPは下)の罫線 */
.page_intro__icon::after {
	content: "";
	position: absolute;
	background-color: #ddd;
}
.page_intro__txt {
	color: var(--main-text-color);
	font-weight: bold;
}
.page_intro__logo {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
}

@media screen and (max-width: 767px) {
	/* リード */
	.service_intro {
		margin-top: 10.667vw;
	}
	.service_intro__flex {
		flex-direction: column;
	}
	.service_intro__title {
		font-size: 9.6vw;
	}
	.service_intro__title::after {
		width: 20vw;
		height: 0.8vw;
		margin-top: 5.333vw;
	}
	.service_intro__body {
		margin-top: 6.4vw;
		font-size: 1em;
		line-height: 2;
	}
	.service_intro__img {
		width: 100%;
		margin-top: 10.667vw;
	}
	/* 事業一覧 */
	.service_list {
		margin-top: 16vw;
		margin-bottom: 16vw;
	}
	.service_list__flex {
		flex-direction: column;
		gap: 8.267vw;
		margin-top: 8vw;
	}
	/* 事業詳細ページ導入部 */
	.page_intro {
		margin-top: 16vw;
		padding: 13.6vw 0 13.333vw;
		border-radius: var(--radius-sp);
	}
	.page_intro__flex {
		flex-direction: column;
	}
	.page_intro__icon {
		width: 100%;
		padding-bottom: 13.333vw;
	}
	.page_intro__icon img {
		width: 25.6vw;
	}
	.page_intro__icon::after {
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		width: 66.667vw;
		height: 0.267vw;
	}
	.page_intro__txt {
		margin: 10.933vw 10.667vw 0;
		font-size: 4.8vw;
		line-height: 2;
	}
	.page_intro__logo {
		width: 41.6vw;
		height: 41.6vw;
		margin: 11.2vw auto 0;
		border-radius: var(--radius-s-sp);
	}
	.page_intro__logo img {
		width: 19.2vw;
	}
}
@media screen and (min-width: 768px), print {
	/* リード */
	.service_intro {
		margin-top: 37px;
	}
	.service_intro__flex {
		justify-content: space-between;
	}
	.service_intro__txt {
		width: 39%; /* 468/1200 */
		margin-left: 41px;
		padding-top: 97px;
	}
	.service_intro__title {
		font-size: 48px;
	}
	.service_intro__title::after {
		width: 75px;
		height: 3px;
		margin-top: 31px;
	}
	.service_intro__body {
		margin-top: 37px;
		font-size: 17px;
		line-height: 2;
	}
	.service_intro__img {
		width: 47.25%; /* 567/1200 */
		margin-right: 54px;
	}
	/* 事業一覧 */
	.service_list {
		margin-top: 100px;
		margin-bottom: 90px;
	}
	.service_list__flex {
		flex-wrap: wrap;
		gap: 40px 3%; /* 36/1200 */
		margin-top: 46px;
	}
	/* 事業詳細ページ導入部 */
	.page_intro {
		margin-top: 100px;
		border-radius: var(--radius-pc);
	}
	.page_intro__flex {
		min-height: 228px;
	}
	.page_intro__icon {
		max-width: 214px;
		align-self: stretch;
		width: 22%;
	}
	.page_intro__icon img {
		width: 96px;
	}
	.page_intro__icon::after {
		top: 50%;
		right: 0;
		transform: translateY(-50%);
		width: 1px;
		height: 156px;
	}
	.page_intro__txt {
		flex: 1;
		margin-left: 4.5%;
		margin-right: 4%;
		font-size: 27px;
		line-height: 1.778;
	}
	.page_intro__logo {
		width: 156px;
		height: 156px;
		margin-right: 5%;
		border-radius: var(--radius-s-pc);
	}
	.page_intro__logo img {
		width: 72px;
	}
}


/* -----------------------------------------------------------------------
 下層事業ページ共通パーツ(ラベル・バッジ・定義テーブル・カード・フロー・声)
----------------------------------------------------------------------- */

/* H1タイトル上の事業カテゴリラベル */
.page_head__label {
	display: inline-block;
	color: var(--main-theme-color);
	font-weight: bold;
	line-height: 1;
	border-bottom: 2px solid var(--main-theme-color);
}

/* 丸数字バッジ */
.num_badge {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: var(--badge-green);
	color: var(--white);
	font-weight: bold;
	line-height: 1;
}

/* 定義テーブル(サービス概要) */
.spec_table {
	background-color: var(--white);
	border: 1px solid var(--boder-color);
	overflow: hidden;
}
.spec_table__row {
	display: flex;
}
.spec_table__row:not(:first-child) {
	border-top: 1px solid var(--boder-color);
}
.spec_table__k {
	flex: none;
	display: flex;
	align-items: center;
	font-weight: bold;
	background: linear-gradient(to right, #f0f9f3, rgba(240, 249, 243, 0));
}
.spec_table__v {
	display: flex;
	align-items: center;
}

/* 番号バッジ付き写真カード(特長) */
.feature_list {
	flex-wrap: wrap;
}
.feature_card {
	overflow: hidden;
}
.feature_card__media {
	position: relative;
}
.feature_card__media img {
	width: 100%;
	object-fit: cover;
}
.feature_card__badge {
	position: absolute;
}
.feature_card__txt {
	color: #888;
}

/* ステップフロー(ご利用の流れ) */
.flow_item {
	position: relative;
	border: 1px solid var(--boder-color);
	text-align: center;
}
.flow_item__badge {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}
.flow_item__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	border-radius: 50%;
	background-color: #f5fbf7;
	border: 1px solid #c9edd6;
}
.flow_item__txt {
	color: #888;
}
/* ステップ間の矢印(線と山括弧) */
.flow_item:not(:last-child)::before {
	content: "";
	position: absolute;
	background-color: #5bca7f;
}
.flow_item:not(:last-child)::after {
	content: "";
	position: absolute;
	border-top: 2px solid #5bca7f;
	border-right: 2px solid #5bca7f;
}

/* 声カード */
.voice_card {
	align-items: center;
	border: 1px solid var(--boder-color);
}
.voice_card__icon {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: #f5fbf7;
	border: 1px solid #c9edd6;
}
.voice_card__txt,
.voice_card__meta {
	color: #888;
}

@media screen and (max-width: 767px) {
	.page_head__label {
		font-size: 4.8vw;
		padding-bottom: 2.133vw;
	}
	.num_badge {
		width: 11.733vw;
		height: 11.733vw;
		font-size: 4.267vw;
	}
	/* 定義テーブル(SPは項目名と内容を縦積み) */
	.spec_table {
		border-radius: var(--radius-s-sp);
	}
	.spec_table__row {
		flex-direction: column;
	}
	.spec_table__k {
		padding: 3.733vw 5.333vw;
	}
	.spec_table__v {
		padding: 4.267vw 5.333vw;
	}
	/* 特長カード */
	.feature_list {
		flex-direction: column;
		gap: 8vw;
	}
	.feature_card__media img {
		height: 43.733vw;
	}
	.feature_card__badge {
		top: 4.267vw;
		left: 4.267vw;
	}
	.feature_card__body {
		padding: 5.333vw 5.333vw 6.933vw;
	}
	.feature_card__title {
		font-size: 4.8vw;
	}
	.feature_card__txt {
		margin-top: 2.667vw;
		font-size: 1em;
		line-height: 1.8;
	}
	/* フロー */
	.flow_list {
		flex-direction: column;
		gap: 11.733vw;
	}
	.flow_item {
		padding: 11.733vw 5.333vw 8.533vw;
	}
	.flow_item__badge {
		top: -5.867vw;
	}
	.flow_item__icon {
		width: 25.6vw;
		height: 25.6vw;
	}
	.flow_item__title {
		margin-top: 6.4vw;
		font-size: 4.8vw;
	}
	.flow_item__txt {
		margin-top: 3.2vw;
		font-size: 1em;
		line-height: 2;
	}
	/* SPは縦積みのため、カードと次の数字バッジをつなぐ縦線のみ表示(矢印の山は次カードのバッジに隠れるため非表示) */
	.flow_item:not(:last-child)::before {
		left: 50%;
		bottom: -5.867vw;
		transform: translateX(-50%);
		width: 0.533vw;
		height: 5.867vw;
	}
	.flow_item:not(:last-child)::after {
		display: none;
	}
	/* 声カード */
	.voice_list {
		flex-direction: column;
		gap: 8vw;
	}
	.voice_card {
		flex-direction: column;
		padding: 8vw 5.333vw 9.067vw;
	}
	.voice_card__icon {
		width: 33.067vw;
		height: 33.067vw;
	}
	.voice_card__icon img {
		width: 14.933vw;
	}
	.voice_card__body {
		margin-top: 5.867vw;
	}
	.voice_card__title {
		font-size: 4.8vw;
	}
	.voice_card__txt {
		margin-top: 3.2vw;
		font-size: 1em;
		line-height: 1.8;
	}
	.voice_card__meta {
		margin-top: 2.667vw;
		font-size: 1em;
	}
}
@media screen and (min-width: 768px), print {
	.page_head__label {
		font-size: 16px;
		padding-bottom: 8px;
	}
	.num_badge {
		width: 44px;
		height: 44px;
		font-size: 16px;
	}
	/* 定義テーブル */
	.spec_table {
		border-radius: var(--radius-s-pc);
	}
	.spec_table__row {
		min-height: 90px;
	}
	.spec_table__k {
		width: 280px;
		padding: 10px 20px 10px 45px;
	}
	.spec_table__v {
		flex: 1;
		padding: 10px 20px 10px 24px;
	}
	/* 特長カード */
	.feature_list {
		gap: 48px 2.5%; /* 30/1200 */
	}
	.feature_card {
		width: calc((100% - 5%) / 3);
	}
	.feature_card__media img {
		height: 186px;
	}
	.feature_card__badge {
		top: 16px;
		left: 16px;
	}
	.feature_card__body {
		padding: 22px 20px 28px;
	}
	.feature_card__title {
		font-size: 20px;
	}
	.feature_card__txt {
		margin-top: 12px;
		font-size: 1em;
		line-height: 1.8;
	}
	/* フロー */
	.flow_list {
		gap: 5%; /* 60/1200 */
	}
	.flow_item {
		width: calc((100% - 15%) / 4);
		padding: 48px 20px 40px;
	}
	.flow_item__badge {
		top: -22px;
	}
	.flow_item__icon {
		width: 96px;
		height: 96px;
	}
	.flow_item__title {
		margin-top: 28px;
		font-size: 18px;
	}
	.flow_item__txt {
		margin-top: 14px;
		font-size: 1em;
		line-height: 2;
	}
	/* カード間の右向き矢印(位置・長さはカード幅基準の%でgapの縮小に追従。4列・gap5%用) */
	.flow_item:not(:last-child)::before {
		top: 50%;
		right: -16.4706%; /* 42/255 */
		width: 9.4118%; /* 24/255 */
		height: 2px;
		margin-top: -1px;
	}
	.flow_item:not(:last-child)::after {
		top: 50%;
		right: -16.8627%; /* 43/255 */
		width: 8px;
		height: 8px;
		margin-top: -5px;
		transform: rotate(45deg);
	}
	/* 声カード */
	.voice_list {
		gap: 2.8333%; /* 34/1200 */
		row-gap: 2em;
	}
	.voice_card {
		width: calc((100% - 2.8333%) / 2);
		padding: 40px 30px 40px 40px;
	}
	.voice_card__icon {
		width: 124px;
		height: 124px;
	}
	.voice_card__icon img {
		width: 56px;
	}
	.voice_card__body {
		margin-left: 32px;
	}
	.voice_card__title {
		font-size: 20px;
	}
	.voice_card__txt {
		margin-top: 14px;
		font-size: 1em;
		line-height: 1.8;
	}
	.voice_card__meta {
		margin-top: 12px;
		font-size: 1em;
	}
}

/* 罫線定義テーブル(横罫線のみのシンプルな会社情報テーブル。会社概要ページ等) */
.line_table__row {
	display: flex;
	border-bottom: 1px solid var(--boder-color);
}
.line_table__row:first-child {
	border-top: 1px solid var(--boder-color);
}
.line_table__k {
	flex: none;
	display: flex;
	align-items: center;
	font-weight: bold;
	color: var(--badge-green);
}
.line_table__v {
	flex: 1;
	display: flex;
	align-items: center;
}

@media screen and (max-width: 767px) {
	/* SPは項目名と内容を縦積み */
	.line_table__row {
		flex-direction: column;
	}
	.line_table__k {
		padding: 3.733vw 0 0;
	}
	.line_table__v {
		padding: 1.067vw 0 3.733vw;
	}
}
@media screen and (min-width: 768px), print {
	.line_table__row {
		min-height: 99px;
	}
	.line_table__k {
		width: 258px;
		padding: 20px 20px 20px 0;
	}
	.line_table__v {
		padding: 20px 0;
	}
}

/* アンカーリンクカード(白カード+ラベル+下向き矢印。.card と2クラスで使用) */
.anchor_card {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
	font-weight: bold;
}
.anchor_card:hover {
	opacity: .7;
}
/* 行末の下向き矢印 */
.anchor_card::after {
	content: "";
	flex: none;
	margin-left: auto;
	width: 10px;
	height: 10px;
	border-right: 3px solid var(--badge-green);
	border-bottom: 3px solid var(--badge-green);
	transform: translateY(-3px) rotate(45deg);
}

@media screen and (max-width: 767px) {
	.anchor_card {
		min-height: 17.067vw;
		padding: 2.667vw 5.333vw;
		font-size: 4.267vw;
	}
}
@media screen and (min-width: 768px), print {
	.anchor_card {
		min-height: 104px;
		padding: 10px 32px;
		font-size: 16px;
	}
}

/* 事業所情報カード(番号バッジ+施設名のヘッダー/定義テーブル/PDFリンク。.card と2クラスで使用) */
.office_card {
	overflow: hidden;
}
.office_card__head {
	align-items: center;
	background: linear-gradient(to right, #f0f9f3, rgba(240, 249, 243, 0));
}
/* テーブルは spec_table を流用し、カード内では外枠と角丸を打ち消す */
.office_card__table {
	border: none;
	border-radius: 0;
}
.office_card__table .spec_table__row:first-child {
	border-top: 1px solid var(--boder-color);
}
.office_card__table a {
	color: inherit;
}

/* PDFリンクバー(白背景+緑枠。左ラベル+右PDFタグ) */
.pdf_link {
	align-items: center;
	justify-content: space-between;
	background-color: var(--white);
	border: 1px solid var(--badge-green);
}
.pdf_link:hover {
	opacity: .7;
}
.pdf_link__label,
.pdf_link__tag {
	background-color: var(--badge-green);
	color: var(--white);
	font-weight: bold;
	line-height: 1;
}

@media screen and (max-width: 767px) {
	.office_card__head {
		gap: 3.2vw;
		padding: 5.333vw;
	}
	.office_card__name {
		font-size: 4.8vw;
	}
	.office_card__pdfs {
		flex-direction: column;
		gap: 4.267vw;
		padding: 6.4vw 5.333vw 8vw;
	}
	.pdf_link {
		padding: 3.733vw 4.267vw;
		border-radius: var(--radius-s-sp);
	}
	.pdf_link__label,
	.pdf_link__tag {
		padding: 2.4vw 3.2vw;
		font-size: 3.733vw;
		border-radius: var(--radius-s-sp);
	}
}
@media screen and (min-width: 768px), print {
	.office_card__head {
		gap: 20px;
		padding: 30px 40px;
	}
	.office_card__name {
		font-size: 24px;
	}
	.office_card__table .spec_table__k {
		width: 305px;
		justify-content: center;
	}
	.office_card__pdfs {
		gap: 30px;
		padding: 30px 40px 40px;
	}
	.pdf_link {
		flex: 1;
		min-height: 70px;
		padding: 10px 20px;
		border-radius: var(--radius-s-pc);
	}
	.pdf_link__label,
	.pdf_link__tag {
		padding: 10px 14px;
		font-size: 15px;
		border-radius: var(--radius-s-pc);
	}
}

/* 番号バッジ+見出し+本文のテキストカード(.card と2クラスで使用) */
.topic_card {
	align-items: flex-start;
}
.topic_card__badge {
	flex: none;
}
.topic_card__txt {
	color: #888;
}

@media screen and (max-width: 767px) {
	.topic_card {
		gap: 3.733vw;
		padding: 6.4vw 5.333vw 7.467vw;
	}
	.topic_card__title {
		font-size: 4.8vw;
	}
	.topic_card__txt {
		margin-top: 2.667vw;
		font-size: 1em;
		line-height: 1.8;
	}
}
@media screen and (min-width: 768px), print {
	.topic_card {
		gap: 24px;
		padding: 40px 36px;
	}
	.topic_card__badge {
		width: 70px;
		height: 70px;
		font-size: 20px;
	}
	.topic_card__title {
		font-size: 22px;
	}
	.topic_card__txt {
		margin-top: 14px;
		font-size: 1em;
		line-height: 2;
	}
}

/* 事業所連絡先カード(名称+連絡先+右にボタン群。.card と2クラスで使用) */
.location_card {
	align-items: center;
	justify-content: space-between;
}
.location_card__body {
	flex: 1;
}
.location_card__row dt {
	flex: none;
	color: #888;
}
.location_card__table a,
.location_card__txt a {
	color: inherit;
}
.location_card__btns {
	flex: none;
}
/* Google Mapボタン(白+緑枠)/求人情報ボタン(緑塗り) */
.location_card__map,
.location_card__recruit {
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-weight: bold;
	line-height: 1;
}
.location_card__map {
	background-color: var(--white);
	border: 1px solid var(--lead-green);
	color: var(--lead-green);
}
.location_card__recruit {
	background-color: var(--lead-green);
	color: var(--white);
}
.location_card__map:hover,
.location_card__recruit:hover {
	opacity: .7;
}
/* ボタンの右向き矢印(文字コード) */
.location_card__map::after,
.location_card__recruit::after {
	content: "\2192";
	order: 1;
}

@media screen and (max-width: 767px) {
	.location_card {
		flex-direction: column;
		align-items: stretch;
		gap: 5.333vw;
		padding: 6.4vw 5.333vw;
	}
	.location_card__name {
		font-size: 4.533vw;
	}
	.location_card__txt {
		margin-top: 2.667vw;
		font-size: 1em;
	}
	/* SPはラベルと内容を縦積み */
	.location_card__row {
		flex-direction: column;
	}
	.location_card__row dt {
		margin-top: 3.2vw;
		font-size: 3.467vw;
	}
	.location_card__row dd {
		margin-top: 1.067vw;
		font-size: 1em;
	}
	.location_card__btns {
		gap: 3.2vw;
	}
	.location_card__map,
	.location_card__recruit {
		flex: 1;
		height: 11.733vw;
		font-size: 3.733vw;
		border-radius: var(--radius-s-sp);
	}
}
@media screen and (min-width: 768px), print {
	.location_card {
		gap: 40px;
		padding: 26px 32px;
	}
	.location_card__name {
		font-size: 20px;
	}
	.location_card__txt {
		margin-top: 12px;
		font-size: 15px;
	}
	.location_card__table {
		margin-top: 4px;
	}
	.location_card__row {
		margin-top: 12px;
	}
	.location_card__row dt {
		width: 100px;
		font-size: 14px;
	}
	.location_card__row dd {
		font-size: 15px;
	}
	.location_card__btns {
		flex-direction: column;
		gap: 12px;
		width: 166px;
	}
	.location_card__map,
	.location_card__recruit {
		height: 48px;
		font-size: 15px;
		border-radius: var(--radius-s-pc);
	}
}


/* -----------------------------------------------------------------------
 訪問介護事業ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	.homecareservice_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	.homecareservice_overview,
	.homecareservice_features,
	.homecareservice_flow,
	.homecareservice_voices {
		margin-top: 16vw;
	}
	.homecareservice_voices {
		margin-bottom: 16vw;
	}
	.homecareservice_spec_table {
		margin-top: 8vw;
	}
	.homecareservice_feature_list,
	.homecareservice_voice_list {
		margin-top: 8vw;
	}
	/* バッジがカード上にはみ出す分を含める */
	.homecareservice_flow_list {
		margin-top: 13.867vw;
	}
}
@media screen and (min-width: 768px), print {
	.homecareservice_page_head {
		padding-top: 75px;
	}
	.homecareservice_page_head .page_head__title {
		margin-top: 26px;
	}
	.homecareservice_overview,
	.homecareservice_features,
	.homecareservice_flow,
	.homecareservice_voices {
		margin-top: 100px;
	}
	.homecareservice_voices {
		margin-bottom: 90px;
	}
	.homecareservice_spec_table {
		margin-top: 50px;
	}
	.homecareservice_feature_list,
	.homecareservice_voice_list {
		margin-top: 50px;
	}
	/* バッジがカード上にはみ出す分を含める */
	.homecareservice_flow_list {
		margin-top: 72px;
	}
}


/* -----------------------------------------------------------------------
 会社概要ページ
----------------------------------------------------------------------- */

/* MVVカード(3カラム) */
.company_mvv__card {
	text-align: center;
}
.company_mvv__en {
	color: var(--main-theme-color);
	font-family: var(--font-en);
	font-weight: 500;
	line-height: 1;
}
.company_mvv__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	border-radius: 50%;
	background-color: var(--bg-color3);
}
.company_mvv__list {
	text-align: left;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
}
.company_mvv__list li::before {
	content: "・";
}

/* 代表メッセージ(写真 + 引用パネル) */
.company_message__flex {
	overflow: hidden;
}
.company_message__photo {
	flex: none;
	align-self: stretch;
	overflow: hidden; /* 画像のはみ出しをクリップして高さをカバー */
	background-color: var(--bg-color3);
}
.company_message__photo img {
	display: block;
	width: 100%;
	height: auto; /* 幅基準で拡大縮小(縦横比を維持・ズームなし) */
}
.company_message__panel {
	position: relative;
	z-index: 0;
	flex: 1;
	background-color: var(--bg-color3);
}
/* 装飾の引用符(CSSで再現) */
.company_message__panel::before,
.company_message__panel::after {
	position: absolute;
	z-index: -1;
	color: #c1e5c6;
	font-family: Georgia, "Times New Roman", serif;
	font-weight: bold;
	line-height: 1;
}
.company_message__panel::before {
	content: "\201C";
}
.company_message__panel::after {
	content: "\201D";
}
.company_message__quote {
	color: var(--main-text-color);
	font-weight: bold;
	line-height: 1.4;
}
.company_message__quote span {
	color: var(--badge-green);
}
.company_message__sign {
	position: relative;
	align-items: flex-end;
}
/* 署名上の短い罫線 */
.company_message__sign::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 2px;
	background-color: var(--main-theme-color);
}
.company_message__sign-name {
	font-weight: bold;
	line-height: 1;
}

/* ミレニアムのあゆみ(タイムライン) */
.company_history__list {
	position: relative;
}
/* 縦の軸線 */
.company_history__list::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	background-color: var(--sub-theme-color);
}
.company_history__item {
	position: relative;
	display: flex;
	border: 1px solid var(--boder-color);
}
/* 軸線上のドット(外側の薄緑円) */
.company_history__item::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
	background-color: var(--bg-color2);
}
/* 軸線上のドット(内側の緑丸) */
.company_history__item::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border-radius: 50%;
	background-color: var(--main-theme-color);
}
.company_history__year {
	position: relative;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--bg-color3);
	color: var(--badge-green);
	font-family: var(--font-en);
	font-weight: bold;
	line-height: 1;
}
/* 年チップ左の吹き出し三角 */
.company_history__year::before {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border-style: solid;
	border-color: transparent;
	border-left: none;
}

@media screen and (max-width: 767px) {
	/* セクション余白 */
	.company_mvv {
		margin-top: 12vw;
	}
	.company_message,
	.company_history,
	.company_profile {
		margin-top: 16vw;
	}
	.company_profile {
		margin-bottom: 16vw;
	}
	/* MVVカード(縦積み) */
	.company_mvv__card {
		flex-direction: column;
		margin-top: 8vw;
	}
	.company_mvv__col {
		padding: 9.6vw 5.333vw 10.667vw;
	}
	.company_mvv__col:not(:first-child) {
		border-top: 1px solid #ddd;
	}
	.company_mvv__en {
		font-size: 9.6vw;
	}
	.company_mvv__subtitle {
		margin-top: 5.867vw;
		font-size: 4.8vw;
	}
	.company_mvv__icon {
		width: 27.733vw;
		height: 27.733vw;
		margin-top: 6.933vw;
	}
	.company_mvv__icon img {
		width: 17.067vw;
	}
	.company_mvv__txt,
	.company_mvv__list {
		margin-top: 7.467vw;
		font-size: 1em;
		line-height: 2;
	}
	/* 代表メッセージ(縦積み) */
	.company_message__flex {
		flex-direction: column;
		margin-top: 8vw;
		border-radius: var(--radius-sp);
	}
	.company_message__photo {
		width: 100%;
		height: 117.333vw;
	}
	.company_message__photo img {
		height: 100%;
		object-fit: cover;
		object-position: center top;
	}
	.company_message__panel {
		padding: 14.933vw 6.4vw 10.667vw;
	}
	.company_message__panel::before {
		top: 1.6vw;
		left: 3.2vw;
		font-size: 24vw;
	}
	.company_message__panel::after {
		top: 26.667vw;
		right: 1vw;
		font-size: 24vw;
	}
	.company_message__quote {
		font-size: 7.467vw;
	}
	.company_message__body {
		margin-top: 6.4vw;
		font-size: 1em;
		line-height: 2;
	}
	.company_message__sign {
		margin-top: 8.533vw;
		padding-top: 6.4vw;
	}
	.company_message__sign-role {
		font-size: 3.733vw;
		line-height: 2;
	}
	.company_message__sign-name {
		margin-left: 10.667vw;
		font-size: 6.4vw;
	}
	/* あゆみ */
	.company_history__list {
		margin-top: 8vw;
		padding-left: 10.133vw;
		padding-bottom: 10.667vw;
	}
	.company_history__list::before {
		left: 1.867vw;
		width: 0.533vw;
		top: 1em;
	}
	.company_history__item:not(:first-child) {
		margin-top: 5.333vw;
	}
	.company_history__item::before {
		left: -11.733vw;
		width: 7.467vw;
		height: 7.467vw;
	}
	.company_history__item::after {
		left: -9.6vw;
		width: 3.2vw;
		height: 3.2vw;
	}
	.company_history__year {
		width: 19.733vw;
		font-size: 4.8vw;
		border-radius: var(--radius-sp) 0 0 var(--radius-sp);
	}
	.company_history__year::before {
		left: -2.133vw;
		border-width: 2.133vw 2.133vw 2.133vw 0;
		border-right-color: var(--bg-color3);
	}
	.company_history__txt {
		padding: 3.733vw 4.267vw;
		font-size: 1em;
		line-height: 1.8;
	}
	/* 会社情報テーブル */
	.company_line_table {
		margin-top: 8vw;
	}
}
@media screen and (min-width: 768px), print {
	/* セクション余白 */
	.company_mvv {
		margin-top: 75px;
	}
	.company_message,
	.company_history,
	.company_profile {
		margin-top: 100px;
	}
	.company_profile {
		margin-bottom: 110px;
	}
	/* MVVカード(3カラム) */
	.company_mvv__card {
		margin-top: 60px;
	}
	.company_mvv__col {
		width: calc(100% / 3);
		padding: 40px 32px 48px;
	}
	.company_mvv__col:not(:first-child) {
		border-left: 1px solid #ddd;
	}
	.company_mvv__en {
		font-size: 48px;
	}
	.company_mvv__subtitle {
		margin-top: 30px;
		font-size: 20px;
	}
	.company_mvv__icon {
		width: 128px;
		height: 128px;
		margin-top: 40px;
	}
	.company_mvv__icon img {
		width: 80px;
	}
	.company_mvv__txt,
	.company_mvv__list {
		margin-top: 48px;
		font-size: 1em;
		line-height: 2.2;
	}
	/* 代表メッセージ(写真40% + パネル60%) */
	.company_message__flex {
		margin-top: 48px;
		border-radius: var(--radius-pc);
	}
	.company_message__photo {
		width: 40%; /* 480/1200 */
	}
	.company_message__panel {
		padding: 88px 4.667% 48px 8%; /* 左右を%化(画面縮小でpaddingも縮小 = 本文幅を確保しパネル高さの増加を抑える) */
	}
	.company_message__panel::before {
		top: 10px;
		left: 30px;
		font-size: min(150px, 14vw);
	}
	.company_message__panel::after {
		top: 140px;
		right: min(48px,2vw);
		font-size: min(150px, 14vw);
	}
	.company_message__quote {
		font-size: min(44px, 4vw);
	}
	.company_message__body {
		margin-top: 35px;
		font-size: 1em;
		line-height: 2.2;
	}
	.company_message__sign {
		margin-top: 40px;
		padding-top: 28px;
	}
	.company_message__sign-role {
		font-size: 14px;
		line-height: 2.2;
	}
	.company_message__sign-name {
		margin-left: 72px;
		font-size: 28px;
	}
	/* あゆみ */
	.company_history__list {
		margin-top: 60px;
		padding-left: 66px;
		padding-bottom: 55px;
	}
	.company_history__list::before {
		left: 12px;
		width: 3px;
		top: 30px;
	}
	.company_history__item:not(:first-child) {
		margin-top: 34px;
	}
	.company_history__item::before {
		left: -74px;
		width: 44px;
		height: 44px;
	}
	.company_history__item::after {
		left: -61px;
		width: 17px;
		height: 17px;
	}
	.company_history__year {
		width: 142px;
		font-size: 28px;
		border-radius: var(--radius-pc) 0 0 var(--radius-pc);
	}
	.company_history__year::before {
		left: -12px;
		border-width: 11px 12px 11px 0;
		border-right-color: var(--bg-color3);
	}
	.company_history__txt {
		padding: 33px 40px 33px 46px;
		font-size: 1em;
		line-height: 2;
	}
	/* 会社情報テーブル */
	.company_line_table {
		margin-top: 80px;
	}
}


/* -----------------------------------------------------------------------
 研修事業(ミッレケア・アカデミー)ページ
----------------------------------------------------------------------- */

/* 研修詳細カード */
.training_card__tag {
	background-color: #eaf8f0;
	border-radius: 999px;
	font-weight: bold;
	line-height: 1;
}
.training_card__title {
	color: var(--main-text-color);
}
.training_card__block {
	border-top: 1px solid var(--boder-color);
}
.training_card__h3 {
	color: var(--main-text-color);
}
/* 受講料ボックス */
.training_card__feebox {
	width: fit-content;
	background-color: #fff6ec;
	color: var(--accent-color);
	font-weight: bold;
}
/* 受講要件リスト(黒丸ビュレット) */
.training_card__list li {
	position: relative;
	padding-left: 20px;
}
.training_card__list li::before {
	content: "";
	position: absolute;
	left: 6px;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--main-text-color);
}
/* 講師カード */
.training_card__instructor {
	border: 1px solid var(--boder-color);
}
.training_card__instructor-photo {
	flex: none;
	align-self: flex-start;
	border-radius: 50%;
}
.training_card__instructor-name {
	font-weight: bold;
	line-height: 1.4;
}
.training_card__instructor-name span {
	font-weight: normal;
	color: #888;
}
.training_card__instructor-bio {
	color: #666;
}
/* スケジュール表 */
.training_card__sched {
	border: 1px solid var(--boder-color);
	overflow: hidden;
}
.training_card__sched-head {
	background-color: var(--badge-green);
	color: var(--white);
	font-weight: bold;
	line-height: 1.4;
}
.training_card__sched-row {
	display: flex;
}
.training_card__sched-row:not(:first-child) {
	border-top: 1px solid var(--boder-color);
}
.training_card__sched-row dt {
	flex: none;
	background-color: #f7fcf9;
	font-weight: bold;
}
.training_card__sched-row dd {
	flex: 1;
}
/* 申し込みボタン(btnの幅・高さ調整) */
.training_card__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	font-weight: bold;
}
/* カリキュラム表(横スクロール) */
.training_card__table-wrap {
	overflow-x: auto;
}
.training_card__curriculum {
	border-collapse: collapse;
	white-space: nowrap;
}
.training_card__curriculum th,
.training_card__curriculum td {
	border: 1px solid var(--boder-color);
	text-align: center;
	font-weight: normal;
}
.training_card__curriculum thead th {
	font-weight: bold;
}
.training_card__curriculum tbody th {
	text-align: left;
}
.training_card__curriculum-total {
	background-color: #f0f9f3;
}
.training_card__curriculum-total th,
.training_card__curriculum-total td {
	font-weight: bold;
}

/* 研修電話問い合わせ */
.millecareacademy_telcta {
	position: relative;
	overflow: hidden;
	border: 1px solid #d2eedf;
	background-color: var(--white);
}
.millecareacademy_telcta__photo {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
}
.millecareacademy_telcta__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 写真左端を白にフェード */
.millecareacademy_telcta__photo::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, var(--white), rgba(255, 255, 255, 0) 45%);
}
.millecareacademy_telcta__body {
	position: relative;
}
.millecareacademy_telcta__en {
	color: var(--sub-theme-color);
	font-family: var(--font-en);
	line-height: 1;
}
.millecareacademy_telcta__title {
	color: var(--sub-theme-color);
}
.millecareacademy_telcta__row {
	align-items: center;
}
.millecareacademy_telcta__tel {
	align-items: center;
	color: var(--sub-theme-color);
	font-family: var(--font-en);
	font-weight: 500;
	line-height: 1;
}
.millecareacademy_telcta__tel img {
	flex: none;
}
/* 背景に写真を全面適用(視認性NGの場合はこのブロックごと削除すると写真要素方式に戻る) */
.millecareacademy_telcta {
	background-image: url(img/tel_bg.webp);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: right center;
}
.millecareacademy_telcta__photo {
	display: none;
}

@media screen and (max-width: 767px) {
	/* H1 */
	.millecareacademy_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	/* page_intro(アカデミーロゴ) */
	.millecareacademy_page_intro .page_intro__logo img {
		width: 25.6vw;
	}
	/* セクション余白 */
	.millecareacademy_list,
	.millecareacademy_telcta,
	.millecareacademy_flow,
	.millecareacademy_voices {
		margin-top: 16vw;
	}
	.millecareacademy_voices {
		margin-bottom: 16vw;
	}
	/* 研修一覧アンカー */
	.millecareacademy_anchor_list {
		flex-direction: column;
		gap: 4.267vw;
		margin-top: 8vw;
	}
	.millecareacademy_anchor_list li {
		display: flex;
	}
	.millecareacademy_anchor_list .anchor_card {
		width: 100%;
	}
	/* 研修詳細カード */
	.millecareacademy_training {
		margin-top: 8vw;
		padding: 8.533vw 5.333vw 6.4vw;
	}
	.millecareacademy_list + .millecareacademy_training {
		margin-top: 16vw;
	}
	.training_card__tag {
		padding: 1.6vw 3.733vw;
		font-size: 3.467vw;
	}
	.training_card__title {
		margin-top: 4.8vw;
		font-size: 6.4vw;
		line-height: 1.4;
	}
	.training_card__lede,
	.training_card__txt {
		margin-top: 3.733vw;
		font-size: 1em;
		line-height: 1.9;
	}
	.training_card__block {
		margin-top: 7.467vw;
		padding-top: 7.467vw;
	}
	.training_card__h3 {
		font-size: 5.067vw;
	}
	.training_card__feebox {
		margin-top: 4.267vw;
		padding: 4.267vw 5.333vw;
		font-size: 5.333vw;
		border-radius: var(--radius-s-sp);
	}
	.training_card__notes {
		margin-top: 3.733vw;
	}
	.training_card__notes li {
		font-size: 1em;
		line-height: 1.9;
	}
	.training_card__note {
		margin-top: 3.2vw;
		font-size: 3.467vw;
		line-height: 1.8;
	}
	.training_card__list {
		margin-top: 3.733vw;
		font-size: 1em;
		line-height: 1.9;
	}
	.training_card__list li::before {
		top: 2.933vw;
	}
	.training_card__list li ul {
		margin-top: 0.533vw;
	}
	/* 講師カード */
	.training_card__instructor {
		flex-direction: column;
		align-items: center;
		margin-top: 4.267vw;
		padding: 5.333vw;
		border-radius: var(--radius-sp);
	}
	.training_card__instructor-photo {
		align-self: center;
	}
	.training_card__instructor-body {
		margin-top: 4.267vw;
	}
	.training_card__instructor-name {
		font-size: 5.333vw;
	}
	.training_card__instructor-name span {
		margin-left: 2.667vw;
		font-size: 3.467vw;
	}
	.training_card__instructor-subject {
		margin-top: 2.667vw;
		font-size: 1em;
		line-height: 1.8;
	}
	.training_card__instructor-subject b {
		margin-right: 3.2vw;
	}
	.training_card__instructor-bio {
		margin-top: 2.667vw;
		font-size: 1em;
		line-height: 1.9;
	}
	/* スケジュール表 */
	.training_card__sched {
		margin-top: 4.267vw;
		border-radius: var(--radius-s-sp);
	}
	.training_card__sched + .training_card__sched {
		margin-top: 6.4vw;
	}
	.training_card__sched-head {
		padding: 3.733vw 4.267vw;
		font-size: 4.267vw;
	}
	.training_card__sched-row dt {
		width: 28.8vw;
		padding: 3.2vw;
		font-size: 1em;
	}
	.training_card__sched-row dd {
		padding: 3.2vw;
		font-size: 1em;
	}
	/* 実務者研修: 料金・受講方法テーブル/ステップ/カリキュラム */
	.training_card__spec_table {
		margin-top: 3.733vw;
	}
	.training_card__step_list {
		margin-top: 11.2vw;
	}
	.training_card__table-wrap {
		margin-top: 3.733vw;
	}
	.training_card__curriculum th,
	.training_card__curriculum td {
		padding: 3.2vw 3.733vw;
		font-size: 3.733vw;
	}
	.training_card__btn {
		margin-top: 7.467vw;
		height: 13.867vw;
		font-size: 4.267vw;
	}
	/* 研修電話問い合わせ */
	.millecareacademy_telcta {
		padding: 7.467vw 5.333vw;
		border-radius: var(--radius-sp);
		background-position: 77% center;
	}
	.millecareacademy_telcta__en {
		font-size: 3.467vw;
	}
	.millecareacademy_telcta__title {
		margin-top: 3.2vw;
		font-size: 6.4vw;
		line-height: 1.5;
	}
	.millecareacademy_telcta__row {
		flex-direction: column;
		align-items: flex-start;
		margin-top: 4.267vw;
	}
	.millecareacademy_telcta__tel {
		font-size: 9.067vw;
	}
	.millecareacademy_telcta__tel img {
		width: 8vw;
		margin-right: 3.2vw;
	}
	.millecareacademy_telcta__hours {
		margin-top: 2.667vw;
		font-size: 4.267vw;
	}
	/* 受講の流れ・受講者の声 */
	.millecareacademy_flow_list {
		margin-top: 13.867vw;
	}
	.millecareacademy_voice_list {
		margin-top: 8vw;
	}
}
@media screen and (min-width: 768px), print {
	/* H1 */
	.millecareacademy_page_head {
		padding-top: 75px;
	}
	.millecareacademy_page_head .page_head__title {
		margin-top: 26px;
	}
	/* page_intro(アカデミーロゴ) */
	.millecareacademy_page_intro .page_intro__logo img {
		width: 96px;
	}
	/* セクション余白 */
	.millecareacademy_list,
	.millecareacademy_telcta,
	.millecareacademy_flow,
	.millecareacademy_voices {
		margin-top: 100px;
	}
	.millecareacademy_voices {
		margin-bottom: 90px;
	}
	/* 研修一覧アンカー */
	.millecareacademy_anchor_list {
		gap: 1.5%; /* 18/1200 */
		margin-top: 50px;
	}
	.millecareacademy_anchor_list li {
		display: flex;
		width: calc((100% - 3%) / 3);
	}
	.millecareacademy_anchor_list .anchor_card {
		width: 100%;
	}
	/* 研修詳細カード */
	.millecareacademy_training {
		margin-top: 40px;
		padding: 48px 40px 40px;
	}
	.millecareacademy_list + .millecareacademy_training {
		margin-top: 100px;
	}
	.training_card__tag {
		padding: 7px 16px;
		font-size: 14px;
	}
	.training_card__title {
		margin-top: 24px;
		font-size: 32px;
		line-height: 1.4;
	}
	.training_card__lede,
	.training_card__txt {
		margin-top: 20px;
		font-size: 1em;
		line-height: 2;
	}
	.training_card__block {
		margin-top: 40px;
		padding-top: 40px;
	}
	.training_card__h3 {
		font-size: 22px;
	}
	.training_card__feebox {
		margin-top: 24px;
		padding: 24px 32px;
		font-size: 26px;
		border-radius: var(--radius-s-pc);
	}
	.training_card__notes {
		margin-top: 20px;
	}
	.training_card__notes li {
		font-size: 1em;
		line-height: 2;
	}
	.training_card__note {
		margin-top: 16px;
		font-size: 14px;
		line-height: 1.8;
	}
	.training_card__list {
		margin-top: 20px;
		font-size: 1em;
		line-height: 2;
	}
	.training_card__list li::before {
		top: 14px;
	}
	.training_card__list li ul {
		margin-top: 2px;
	}
	/* 講師カード */
	.training_card__instructor {
		margin-top: 24px;
		padding: 30px;
		border-radius: var(--radius-pc);
	}
	.training_card__instructor-body {
		margin-left: 32px;
	}
	.training_card__instructor-name {
		font-size: 24px;
	}
	.training_card__instructor-name span {
		margin-left: 12px;
		font-size: 14px;
	}
	.training_card__instructor-subject {
		margin-top: 12px;
		font-size: 1em;
		line-height: 1.8;
	}
	.training_card__instructor-subject b {
		margin-right: 16px;
	}
	.training_card__instructor-bio {
		margin-top: 12px;
		font-size: 1em;
		line-height: 1.9;
	}
	/* スケジュール表 */
	.training_card__sched {
		margin-top: 24px;
		border-radius: var(--radius-s-pc);
	}
	.training_card__sched + .training_card__sched {
		margin-top: 32px;
	}
	.training_card__sched-head {
		padding: 22px 24px;
		font-size: 18px;
	}
	.training_card__sched-row dt {
		width: 202px;
		padding: 20px 24px;
		font-size: 1em;
	}
	.training_card__sched-row dd {
		padding: 20px 24px;
		font-size: 1em;
	}
	/* 実務者研修: 料金・受講方法テーブル/ステップ/カリキュラム */
	.training_card__spec_table {
		margin-top: 20px;
	}
	.training_card__step_list {
		gap: 40px 2.9464%; /* 33/1120(カード内コンテンツ幅) */
		margin-top: 46px;
	}
	.training_card__step_list .flow_item {
		width: calc((100% - 5.8929%) / 3);
	}
	.training_card__step_list .flow_item:not(:last-child)::before {
		right: -7.1158%; /* 25/351.33 */
		width: 4.8387%; /* 17/351.33 */
	}
	.training_card__step_list .flow_item:not(:last-child)::after {
		right: -7.4004%; /* 26/351.33 */
	}
	.training_card__table-wrap {
		margin-top: 20px;
	}
	.training_card__curriculum th,
	.training_card__curriculum td {
		padding: 16px 6px;
		font-size: 15px;
	}
	.training_card__btn {
		margin-top: 40px;
		height: 56px;
		font-size: 16px;
	}
	/* 研修電話問い合わせ */
	.millecareacademy_telcta {
		min-height: 250px;
		padding: 40px 56px;
		border-radius: var(--radius-pc);
	}
	.millecareacademy_telcta__photo {
		width: 462px;
	}
	.millecareacademy_telcta__en {
		font-size: 14px;
	}
	.millecareacademy_telcta__title {
		margin-top: 14px;
		font-size: 34px;
		line-height: 1.4;
	}
	.millecareacademy_telcta__row {
		margin-top: 20px;
	}
	.millecareacademy_telcta__tel {
		font-size: 54px;
	}
	.millecareacademy_telcta__tel img {
		width: 36px;
		margin-right: 16px;
	}
	.millecareacademy_telcta__hours {
		margin-left: 24px;
		padding-left: 24px;
		border-left: 1px solid #ccc;
		font-size: 1em;
	}
	/* 受講の流れ */
	.millecareacademy_flow_list {
		gap: 40px 2.5%; /* 30/1200 */
		margin-top: 72px;
	}
	.millecareacademy_flow_list .flow_item {
		width: calc((100% - 7.5%) / 4);
	}
	.millecareacademy_flow_list .flow_item:not(:last-child)::before {
		right: -9.0090%; /* 25/277.5 */
		width: 6.1261%; /* 17/277.5 */
	}
	.millecareacademy_flow_list .flow_item:not(:last-child)::after {
		right: -9.3694%; /* 26/277.5 */
	}
	/* 受講者の声(3件・2カラム折返し) */
	.millecareacademy_voice_list {
		flex-wrap: wrap;
		margin-top: 50px;
	}
}


/* -----------------------------------------------------------------------
 放課後等デイサービス事業(重心型)ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	.after-schoolcare_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	.after-schoolcare_overview,
	.after-schoolcare_offices,
	.after-schoolcare_features,
	.after-schoolcare_flow,
	.after-schoolcare_voices {
		margin-top: 16vw;
	}
	.after-schoolcare_voices {
		margin-bottom: 16vw;
	}
	.after-schoolcare_spec_table {
		margin-top: 8vw;
	}
	/* 事業所情報 */
	.after-schoolcare_office_list {
		margin-top: 8vw;
	}
	.after-schoolcare_office_list > li:not(:first-child) {
		margin-top: 8vw;
	}
	/* 特長・声 */
	.after-schoolcare_feature_list,
	.after-schoolcare_voice_list {
		margin-top: 8vw;
	}
	/* バッジがカード上にはみ出す分を含める */
	.after-schoolcare_flow_list {
		margin-top: 13.867vw;
	}
}
@media screen and (min-width: 768px), print {
	.after-schoolcare_page_head {
		padding-top: 75px;
	}
	.after-schoolcare_page_head .page_head__title {
		margin-top: 26px;
	}
	.after-schoolcare_overview,
	.after-schoolcare_offices,
	.after-schoolcare_features,
	.after-schoolcare_flow,
	.after-schoolcare_voices {
		margin-top: 100px;
	}
	.after-schoolcare_voices {
		margin-bottom: 90px;
	}
	.after-schoolcare_spec_table {
		margin-top: 50px;
	}
	/* 事業所情報 */
	.after-schoolcare_office_list {
		margin-top: 50px;
	}
	.after-schoolcare_office_list > li:not(:first-child) {
		margin-top: 70px;
	}
	/* 特長カード(本ページはPC2カラム・写真高さもデザインに合わせる) */
	.after-schoolcare_feature_list,
	.after-schoolcare_voice_list {
		margin-top: 50px;
	}
	.after-schoolcare_feature_list .feature_card {
		width: calc((100% - 2.5%) / 2);
	}
	.after-schoolcare_feature_list .feature_card__media img {
		height: 200px;
	}
	/* 声カード(1件・全幅) */
	.after-schoolcare_voice_card {
		width: 100%;
	}
	/* バッジがカード上にはみ出す分を含める */
	.after-schoolcare_flow_list {
		margin-top: 72px;
	}
}


/* -----------------------------------------------------------------------
 居住支援事業(障がい者向け)ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	.residentialsupport_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	.residentialsupport_overview,
	.residentialsupport_features,
	.residentialsupport_flow,
	.residentialsupport_voices,
	.residentialsupport_initiatives {
		margin-top: 16vw;
	}
	.residentialsupport_initiatives {
		margin-bottom: 16vw;
	}
	.residentialsupport_spec_table {
		margin-top: 8vw;
	}
	.residentialsupport_feature_list,
	.residentialsupport_voice_list {
		margin-top: 8vw;
	}
	/* バッジがカード上にはみ出す分を含める */
	.residentialsupport_flow_list {
		margin-top: 13.867vw;
	}
	/* 取り組みカード */
	.residentialsupport_topic_list {
		flex-direction: column;
		gap: 8vw;
		margin-top: 8vw;
	}
	/* 指定告知バナー */
	.residentialsupport_banner {
		flex-direction: column;
		align-items: center;
		gap: 5.333vw;
		margin-top: 6.4vw;
		padding: 8vw 5.333vw;
		text-align: center;
		background: linear-gradient(to bottom, #fdf8ea, #f8f5ef);
		border: 1px solid #ecdfc0;
		border-radius: var(--radius-sp);
	}
	.residentialsupport_banner__title {
		color: #453a20;
		font-size: 4.8vw;
		font-weight: bold;
	}
	.residentialsupport_banner__txt {
		margin-top: 2.667vw;
		color: #9d7a30;
		font-size: 3.733vw;
	}
	.residentialsupport_banner__tag {
		padding: 4.267vw 5.867vw;
		background-color: #fffaf0;
		border: 1px solid #e0c47d;
		border-radius: 999px;
		color: #9d7a30;
		font-size: 4vw;
		font-weight: bold;
	}
}
@media screen and (min-width: 768px), print {
	.residentialsupport_page_head {
		padding-top: 75px;
	}
	.residentialsupport_page_head .page_head__title {
		margin-top: 26px;
	}
	.residentialsupport_overview,
	.residentialsupport_features,
	.residentialsupport_flow,
	.residentialsupport_voices,
	.residentialsupport_initiatives {
		margin-top: 100px;
	}
	.residentialsupport_initiatives {
		margin-bottom: 90px;
	}
	.residentialsupport_spec_table {
		margin-top: 50px;
	}
	.residentialsupport_feature_list,
	.residentialsupport_voice_list {
		margin-top: 50px;
	}
	/* フロー(本ページは5ステップ・PC3カラム2段) */
	.residentialsupport_flow_list {
		flex-wrap: wrap;
		gap: 66px 5%; /* 60/1200 */
		margin-top: 72px;
	}
	.residentialsupport_flow_list .flow_item {
		width: calc((100% - 10%) / 3);
	}
	/* 矢印位置を3列のカード幅基準に補正 */
	.residentialsupport_flow_list .flow_item:not(:last-child)::before {
		right: -11.6667%; /* 42/360 */
		width: 6.6667%; /* 24/360 */
	}
	.residentialsupport_flow_list .flow_item:not(:last-child)::after {
		right: -11.9444%; /* 43/360 */
	}
	/* 3枚目は行末のため矢印を出さない */
	.residentialsupport_flow_list .flow_item:nth-child(3)::before,
	.residentialsupport_flow_list .flow_item:nth-child(3)::after {
		display: none;
	}
	/* 取り組みカード(2カラム) */
	.residentialsupport_topic_list {
		gap: 2.8333%; /* 34/1200 */
		margin-top: 50px;
	}
	.residentialsupport_topic_list .topic_card {
		width: calc((100% - 2.8333%) / 2);
	}
	/* 指定告知バナー */
	.residentialsupport_banner {
		align-items: center;
		gap: 28px;
		margin-top: 40px;
		padding: 50px 40px;
		background: linear-gradient(to bottom, #fdf8ea, #f8f5ef);
		border: 1px solid #ecdfc0;
		border-radius: var(--radius-pc);
	}
	.residentialsupport_banner__icon {
		flex: none;
	}
	.residentialsupport_banner__body {
		flex: 1;
	}
	.residentialsupport_banner__title {
		color: #453a20;
		font-size: 22px;
		font-weight: bold;
	}
	.residentialsupport_banner__txt {
		margin-top: 10px;
		color: #9d7a30;
		font-size: 14px;
	}
	.residentialsupport_banner__tag {
		flex: none;
		padding: 20px 26px;
		background-color: #fffaf0;
		border: 1px solid #e0c47d;
		border-radius: 999px;
		color: #9d7a30;
		font-size: 16px;
		font-weight: bold;
	}
}


/* -----------------------------------------------------------------------
 旅行支援事業(障がい者向け)ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	.accessibletravelsupport_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	.accessibletravelsupport_overview,
	.accessibletravelsupport_features,
	.accessibletravelsupport_flow,
	.accessibletravelsupport_voices {
		margin-top: 16vw;
	}
	.accessibletravelsupport_voices {
		margin-bottom: 16vw;
	}
	.accessibletravelsupport_spec_table {
		margin-top: 8vw;
	}
	.accessibletravelsupport_feature_list,
	.accessibletravelsupport_voice_list {
		margin-top: 8vw;
	}
	/* バッジがカード上にはみ出す分を含める */
	.accessibletravelsupport_flow_list {
		margin-top: 13.867vw;
	}
}
@media screen and (min-width: 768px), print {
	.accessibletravelsupport_page_head {
		padding-top: 75px;
	}
	.accessibletravelsupport_page_head .page_head__title {
		margin-top: 26px;
	}
	.accessibletravelsupport_overview,
	.accessibletravelsupport_features,
	.accessibletravelsupport_flow,
	.accessibletravelsupport_voices {
		margin-top: 100px;
	}
	.accessibletravelsupport_voices {
		margin-bottom: 90px;
	}
	.accessibletravelsupport_spec_table {
		margin-top: 50px;
	}
	.accessibletravelsupport_feature_list,
	.accessibletravelsupport_voice_list {
		margin-top: 50px;
	}
	/* 特長カード(本ページはPC2カラム・写真高さもデザインに合わせる) */
	.accessibletravelsupport_feature_list .feature_card {
		width: calc((100% - 2.5%) / 2);
	}
	.accessibletravelsupport_feature_list .feature_card__media img {
		height: 200px;
	}
	/* 声カード(1件・全幅) */
	.accessibletravelsupport_voice_card {
		width: 100%;
	}
	/* バッジがカード上にはみ出す分を含める */
	.accessibletravelsupport_flow_list {
		margin-top: 72px;
	}
}


/* -----------------------------------------------------------------------
 相談支援事業ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	.consultationsupportoffice_page_head .page_head__title {
		margin-top: 5.333vw;
	}
	.consultationsupportoffice_overview,
	.consultationsupportoffice_flow,
	.consultationsupportoffice_voices {
		margin-top: 16vw;
	}
	.consultationsupportoffice_voices {
		margin-bottom: 16vw;
	}
	.consultationsupportoffice_spec_table {
		margin-top: 8vw;
	}
	.consultationsupportoffice_voice_list {
		margin-top: 8vw;
	}
	/* バッジがカード上にはみ出す分を含める */
	.consultationsupportoffice_flow_list {
		margin-top: 13.867vw;
	}
}
@media screen and (min-width: 768px), print {
	.consultationsupportoffice_page_head {
		padding-top: 75px;
	}
	.consultationsupportoffice_page_head .page_head__title {
		margin-top: 26px;
	}
	.consultationsupportoffice_overview,
	.consultationsupportoffice_flow,
	.consultationsupportoffice_voices {
		margin-top: 100px;
	}
	.consultationsupportoffice_voices {
		margin-bottom: 90px;
	}
	.consultationsupportoffice_spec_table {
		margin-top: 50px;
	}
	.consultationsupportoffice_voice_list {
		margin-top: 50px;
	}
	/* フロー(本ページは6ステップ・PC3カラム2段) */
	.consultationsupportoffice_flow_list {
		flex-wrap: wrap;
		gap: 66px 5%; /* 60/1200 */
		margin-top: 72px;
	}
	.consultationsupportoffice_flow_list .flow_item {
		width: calc((100% - 10%) / 3);
	}
	/* 矢印位置を3列のカード幅基準に補正 */
	.consultationsupportoffice_flow_list .flow_item:not(:last-child)::before {
		right: -11.6667%; /* 42/360 */
		width: 6.6667%; /* 24/360 */
	}
	.consultationsupportoffice_flow_list .flow_item:not(:last-child)::after {
		right: -11.9444%; /* 43/360 */
	}
	/* 3枚目は行末のため矢印を出さない */
	.consultationsupportoffice_flow_list .flow_item:nth-child(3)::before,
	.consultationsupportoffice_flow_list .flow_item:nth-child(3)::after {
		display: none;
	}
	/* 声カード(1件・全幅) */
	.consultationsupportoffice_voice_card {
		width: 100%;
	}
}


/* -----------------------------------------------------------------------
 事業所一覧ページ
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	/* カテゴリアンカー(グレー帯) */
	.office_anchor_sec {
		margin-top: 6.4vw;
		padding: 6.4vw 0;
		background-color: #efefef;
	}
	.office_anchor_list {
		flex-direction: column;
		gap: 3.2vw;
	}
	.office_anchor_card {
		min-height: 14.933vw;
		padding: 2.667vw 5.333vw;
		font-size: 4vw;
	}
	/* セクション */
	.office_sec {
		margin-top: 16vw;
	}
	.office_sec--last {
		margin-bottom: 16vw;
	}
	/* 見出し(タイトル+右ロゴ+下線) */
	.office_h2 {
		justify-content: space-between;
		align-items: flex-end;
		gap: 4.267vw;
		padding-bottom: 3.2vw;
		border-bottom: 2px solid var(--main-theme-color);
	}
	.office_h2__title {
		font-size: 6.4vw;
		font-weight: bold;
		line-height: 1.2;
	}
	.office_h2__logo {
		flex: none;
	}
	/* エリア小見出し(page_h3のサイズ調整) */
	.office_h3 {
		margin-top: 9.6vw;
		font-size: 4.8vw;
	}
	.office_h3::before {
		width: 2.667vw;
		height: 2.667vw;
		margin-right: 2.667vw;
	}
	/* カードリスト */
	.office_location_list {
		margin-top: 4.267vw;
	}
	.office_location_list > li:not(:first-child) {
		margin-top: 5.333vw;
	}
	.office_location_card {
		margin-top: 6.4vw;
	}
	/* 電話CTA(アカデミー共通パーツの位置調整) */
	.office_telcta {
		margin-top: 6.4vw;
	}
}
@media screen and (min-width: 768px), print {
	/* カテゴリアンカー(グレー帯) */
	.office_anchor_sec {
		margin-top: 40px;
		padding: 48px 0;
		background-color: #efefef;
	}
	.office_anchor_list {
		gap: 2%; /* 24/1200 */
	}
	.office_anchor_list > li {
		flex: 1;
	}
	.office_anchor_card {
		min-height: 72px;
		padding: 10px 18px;
		font-size: 15px;
	}
	/* セクション */
	.office_sec {
		margin-top: 100px;
	}
	.office_sec--last {
		margin-bottom: 90px;
	}
	/* 見出し(タイトル+右ロゴ+下線) */
	.office_h2 {
		justify-content: space-between;
		align-items: flex-end;
		gap: 24px;
		padding-bottom: 18px;
		border-bottom: 2px solid var(--main-theme-color);
	}
	.office_h2__title {
		font-size: 32px;
		font-weight: bold;
		line-height: 1;
	}
	.office_h2__logo {
		flex: none;
	}
	/* エリア小見出し(page_h3のサイズ調整) */
	.office_h3 {
		margin-top: 48px;
		font-size: 20px;
	}
	.office_h3::before {
		width: 10px;
		height: 10px;
		margin-right: 10px;
	}
	/* カードリスト */
	.office_location_list {
		margin-top: 20px;
	}
	.office_location_list > li:not(:first-child) {
		margin-top: 24px;
	}
	.office_location_card {
		margin-top: 40px;
	}
	/* 電話CTA(アカデミー共通パーツの位置調整) */
	.office_telcta {
		margin-top: 40px;
	}
}


/* -----------------------------------------------------------------------
 コラムトップページ(記事カードはTOPの .column_flex / .column_card を再利用)
----------------------------------------------------------------------- */

/* カテゴリーから探す(このH2はデザインに下線がないため下線なし) */
.column_search_h2 {
	border-bottom: none;
}
.column_search_h2::before {
	bottom: 0;
}
/* カテゴリーアンカーバー(白地+枠。セル幅は内容比) */
.column_cat_nav {
	background-color: var(--white);
	border: 1px solid var(--boder-color);
	overflow: hidden; /* 端のリンクの塗り(is-current等)をulの角丸に収める */
}
.column_cat_nav li {
	flex: 1 1 auto;
}
.column_cat_nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	height: 100%;
	color: var(--main-text-color);
	font-weight: bold;
	text-align: center;
}
.column_cat_nav a:hover {
	opacity: .7;
}
/* 行末の右向きシェブロン */
.column_cat_nav a::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--main-theme-color);
	border-right: 2px solid var(--main-theme-color);
	transform: translateY(-50%) rotate(45deg);
}

/* カテゴリー見出し行(タイトル左+記事一覧リンク右。下揃え+緑下線) */
.column_cat_head {
	justify-content: space-between;
	align-items: flex-end;
	border-bottom: 2px solid var(--main-theme-color);
}
.column_cat_title {
	color: var(--main-text-color);
	line-height: 1.3;
}
.column_cat_more {
	flex: none;
	position: relative;
	color: var(--main-theme-color);
	font-weight: bold;
	line-height: 1;
}
.column_cat_more:hover {
	opacity: .7;
}
/* 行末の右向き矢印(線+シェブロン) */
.column_cat_more::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 1px;
	width: 18px;
	height: 2px;
	margin-top: -1px;
	background-color: var(--main-theme-color);
}
.column_cat_more::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 7px;
	height: 7px;
	margin-top: -4px;
	border-top: 2px solid var(--main-theme-color);
	border-right: 2px solid var(--main-theme-color);
	transform: rotate(45deg);
}

@media screen and (max-width: 767px) {
	/* カテゴリーから探す */
	.column_search {
		margin-top: 8.8vw;
	}
	.column_search_h2 {
		padding-bottom: 0;
	}
	.column_cat_nav {
		flex-direction: column;
		margin-top: 2.133vw;
		border-radius: var(--radius-s-sp);
	}
	.column_cat_nav li:not(:first-child) {
		border-top: 1px solid var(--boder-color);
	}
	.column_cat_nav a {
		min-height: 14.933vw;
		padding: 2.667vw 11.733vw 2.667vw 5.333vw;
		font-size: 4vw;
	}
	.column_cat_nav a::after {
		right: 5.333vw;
	}
	/* カテゴリーセクション */
	.column_cat_sec {
		margin-top: 16vw;
	}
	.column_search + .column_cat_sec {
		margin-top: 9.6vw;
	}
	.column_cat_sec--last {
		margin-bottom: 16vw;
	}
	/* 見出し行(SPはタイトルの下にリンクを右寄せで縦積み) */
	.column_cat_head {
		flex-direction: column;
		align-items: flex-end;
		gap: 3.733vw;
		padding-bottom: 3.2vw;
	}
	.column_cat_title {
		align-self: flex-start;
		font-size: 6.4vw;
	}
	.column_cat_more {
		padding-right: 7.467vw;
		font-size: 3.733vw;
	}
	/* 記事リスト(column_flexの余白のみ上書き) */
	.column_archive_list {
		margin-top: 5.333vw;
	}
}
@media screen and (min-width: 768px), print {
	/* カテゴリーから探す */
	.column_search {
		margin-top: 55px;
	}
	.column_search_h2 {
		padding-bottom: 0;
	}
	.column_cat_nav {
		margin-top: 12px;
		border-radius: var(--radius-s-pc);
	}
	.column_cat_nav li:not(:first-child) {
		border-left: 1px solid var(--boder-color);
	}
	.column_cat_nav a {
		min-height: 78px;
		padding: 8px 44px 8px 20px;
		font-size: 15px;
	}
	.column_cat_nav a::after {
		right: 20px;
	}
	/* カテゴリーセクション */
	.column_cat_sec {
		margin-top: 100px;
	}
	.column_search + .column_cat_sec {
		margin-top: 60px;
	}
	.column_cat_sec--last {
		margin-bottom: 100px;
	}
	/* 見出し行 */
	.column_cat_head {
		padding-bottom: 18px;
	}
	.column_cat_title {
		font-size: 32px;
	}
	.column_cat_more {
		padding-right: 30px;
		margin-bottom: 4px;
		font-size: 16px;
	}
	/* 記事リスト(column_flexの余白のみ上書き) */
	.column_archive_list {
		margin-top: 35px;
	}
}


/* -----------------------------------------------------------------------
 お知らせ一覧ページ(リストはTOPの .info_list を再利用)
----------------------------------------------------------------------- */

/* カテゴリタブ(3列グリッド。選択中は is-active) */
.news_tab_list {
	flex-wrap: wrap;
	background-color: var(--white);
	border: 1px solid #ddd;
	overflow: hidden;
}
.news_tab_list li {
	display: flex;
}
.news_tab_list a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	color: var(--main-text-color);
	font-weight: bold;
	text-align: center;
}
.news_tab_list a:hover {
	opacity: .7;
}
.news_tab_list a.is-active {
	background-color: var(--lead-green);
	color: var(--white);
}
.news_tab_list a.is-active:hover {
	opacity: 1;
}

@media screen and (max-width: 767px) {
	/* H1(画像なしのため下余白で高さを調整。背景は共通のcalc指定が効かないため元のautoに戻す) */
	.news_page_head {
		background-size: 100% auto;
	}
	.news_page_head .page_head__inner {
		padding-bottom: 13.333vw;
	}
	/* セクション */
	.news_sec {
		margin-top: 12.8vw;
		margin-bottom: 21.333vw;
	}
	/* カテゴリタブ(1列縦積み) */
	.news_tab_list {
		border-radius: var(--radius-sp);
	}
	.news_tab_list li {
		width: 100%;
	}
	.news_tab_list li:not(:first-child) {
		border-top: 1px solid #ddd;
	}
	.news_tab_list a {
		min-height: 14.933vw;
		padding: 2.667vw 4.267vw;
		font-size: 4vw;
	}
	/* リスト(ページネーションの余白は共通の.pagerに統一) */
	.news_list {
		margin-top: 9.6vw;
	}
	/* 記事0件時のメッセージ(リストと同じ上余白) */
	.news_no_result {
		margin-top: 9.6vw;
	}
}
@media screen and (min-width: 768px), print {
	/* セクション */
	.news_sec {
		margin-top: 80px;
		margin-bottom: 130px;
	}
	/* カテゴリタブ(3列×2段) */
	.news_tab_list {
		border-radius: var(--radius-pc);
	}
	.news_tab_list li {
		width: 33.333%;
	}
	.news_tab_list li:not(:nth-child(3n + 1)) {
		border-left: 1px solid #ddd;
	}
	.news_tab_list li:nth-child(n + 4) {
		border-top: 1px solid #ddd;
	}
	.news_tab_list a {
		min-height: 74px;
		padding: 10px 16px;
		font-size: 16px;
	}
	/* リスト(info_listの寸法上書き) */
	.news_list {
		margin-top: 60px;
	}
	.news_list a {
		min-height: 87px;
		padding: 0 50px;
	}
	.news_list .info_date {
		width: clamp(95px, 11.17vw, 150px);
	}
	.news_list .info_tag {
		width: 190px;
		margin-right: clamp(16px, 4.47vw, 60px);
		line-height: 34px;
	}
	/* 記事0件時のメッセージ(リストと同じ上余白) */
	.news_no_result {
		margin-top: 60px;
	}
}


/* -----------------------------------------------------------------------
 お知らせ詳細ページ(news01。WordPressのsingleテンプレートへ移植前提)
----------------------------------------------------------------------- */

/* page_headのタイトルがh1でなくなるためboldを明示(一覧ページのh1には影響なし) */
.news_page_head .page_head__title {
	font-weight: bold;
}

/* 記事ヘッダー(日付+カテゴリタグ+H1) */
.news_article__meta {
	align-items: center;
}
.news_article__date {
	color: var(--main-text-color);
	font-family: var(--font-en);
	font-weight: 300;
	line-height: 1;
}
.news_article__title {
	color: var(--main-text-color);
	line-height: 1.4;
}

/* 本文エリア(entry-content+news_content。ブロックエディタ出力想定のため
   内側はクラスに依存せず要素セレクタでスタイリングする。
   .entry-content単独にはスタイルを書かないこと(他ポストタイプと共用のため) */
.news_content {
	line-height: 2;
}
.news_content > :first-child {
	margin-top: 0;
}
.news_content a {
	text-decoration: underline;
}
.news_content strong {
	font-weight: bold;
}
/* 見出し(page_h2と同じ見た目。クラスレス方針のため要素セレクタで再定義) */
.news_content h2 {
	position: relative;
	color: var(--main-text-color);
	border-bottom: 2px solid var(--main-theme-color);
	line-height: 1.3;
}
.news_content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 6px;
	background: linear-gradient(#67d13d, #069a61);
}
.news_content h3 {
	position: relative;
	color: var(--main-text-color);
}
.news_content h3::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--sub-theme-color);
}
/* リスト(リセットで消しているマーカーを本文内のみ復活) */
.news_content ul {
	list-style: disc;
}
.news_content ol {
	list-style: decimal;
}
/* 区切り線 */
.news_content hr {
	border: none;
	border-top: 1px solid var(--boder-color);
}
/* テーブル(横罫線のみ。見出しセルは薄緑) */
.news_content table {
	width: 100%;
	border-collapse: collapse;
}
.news_content th,
.news_content td {
	border-top: 1px solid var(--boder-color);
	border-bottom: 1px solid var(--boder-color);
	text-align: left;
	vertical-align: top;
}
.news_content th {
	background-color: var(--bg-color3);
	font-weight: bold;
}
/* 帯ボックス(引用ブロック=blockquoteに割り当て) */
.news_content blockquote {
	background-color: var(--bg-color3);
	border-left: 6px solid var(--sub-theme-color);
	font-weight: bold;
}
.news_content blockquote > :first-child {
	margin-top: 0;
}

/* 一覧へ戻るボタン(btnの色をデザインに合わせて上書き) */
.news_back_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
	border: 1px solid var(--sub-theme-color);
	color: var(--sub-theme-color);
	font-weight: bold;
}
.news_back_btn::before {
	content: "\2190";
}

/* 関連するお知らせ(リストはinfo_listを流用し白背景の行にする) */
.news_related_sec {
	background-color: var(--bg-color1);
}
.news_related__title {
	color: var(--main-text-color);
}
.news_related_list a {
	background-color: var(--white);
}

@media screen and (max-width: 767px) {
	/* 記事ヘッダー */
	.news_article {
		margin-top: 17.6vw;
		margin-bottom: 21.333vw;
	}
	.news_article__meta {
		gap: 4.267vw;
	}
	.news_article__date {
		font-size: 4.8vw;
	}
	.news_article__tag {
		width: 34.667vw;
		font-size: 3.2vw;
		line-height: 5.867vw;
	}
	.news_article__title {
		margin-top: 4.8vw;
		font-size: 8vw;
	}
	/* 本文エリア */
	.news_content {
		margin-top: 5.333vw;
		font-size: 4.267vw;
	}
	.news_content p,
	.news_content ul,
	.news_content ol,
	.news_content table,
	.news_content blockquote,
	.news_content img {
		margin-top: 8.533vw;
	}
	.news_content h2 {
		margin-top: 12.8vw;
		padding: 0 0 3.733vw 5.333vw;
		font-size: 6.133vw;
	}
	.news_content h2::before {
		bottom: 3.733vw;
	}
	.news_content h3 {
		margin-top: 7.467vw;
		padding-left: 6.4vw;
		font-size: 5.333vw;
	}
	.news_content ul,
	.news_content ol {
		padding-left: 6.4vw;
	}
	.news_content li {
		margin-top: 2.133vw;
	}
	.news_content hr {
		margin: 7.467vw 0 9.6vw;
	}
	.news_content th,
	.news_content td {
		padding: 3.733vw 4.267vw;
	}
	.news_content th {
		width: 25.6vw;
	}
	.news_content blockquote {
		padding: 4vw 5.333vw;
	}
	/* 一覧へ戻るボタン */
	.news_back_btn {
		width: 100%;
		height: 14.933vw;
		margin: 12.8vw auto 0;
		gap: 3.2vw;
		font-size: 4.267vw;
	}
	/* 事業詳細の一覧へ戻るボタン(直下のお問い合わせCTAとの間に余白) */
	.service_back_btn {
		margin-bottom: 21.333vw;
	}
	/* 関連するお知らせ */
	.news_related_sec {
		padding: 17.6vw 0 21.333vw;
	}
	.news_related__title {
		font-size: 6.933vw;
	}
	.news_related_list {
		margin-top: 9.6vw;
	}
}
@media screen and (min-width: 768px), print {
	/* 記事ヘッダー */
	.news_article {
		margin-top: 110px;
		margin-bottom: 130px;
	}
	.news_article__meta {
		gap: 26px;
	}
	.news_article__date {
		font-size: 18px;
	}
	.news_article__tag {
		width: 240px;
		font-size: 14px;
		line-height: 34px;
	}
	.news_article__title {
		margin-top: 30px;
		font-size: 40px;
	}
	/* 本文エリア */
	.news_content {
		margin-top: 28px;
		font-size: 18px;
	}
	.news_content p,
	.news_content ul,
	.news_content ol,
	.news_content table,
	.news_content blockquote,
	.news_content img {
		margin-top: 36px;
	}
	.news_content h2 {
		margin-top: 80px;
		padding: 0 0 22px 24px;
		font-size: 28px;
	}
	.news_content h2::before {
		bottom: 22px;
	}
	.news_content h3 {
		margin-top: 48px;
		padding-left: 26px;
		font-size: 22px;
	}
	.news_content ul,
	.news_content ol {
		padding-left: 24px;
	}
	.news_content li {
		margin-top: 8px;
	}
	.news_content hr {
		margin: 44px 0 56px;
	}
	.news_content th,
	.news_content td {
		padding: 23px 28px;
	}
	.news_content th {
		width: 240px;
	}
	.news_content td {
		padding-left: 36px;
	}
	.news_content blockquote {
		padding: 22px 28px;
	}
	/* 一覧へ戻るボタン */
	.news_back_btn {
		width: 300px;
		height: 60px;
		margin: 80px auto 0;
		gap: 12px;
		font-size: 16px;
	}
	/* 事業詳細の一覧へ戻るボタン(直下のお問い合わせCTAとの間に余白) */
	.service_back_btn {
		margin-bottom: 130px;
	}
	/* 関連するお知らせ */
	.news_related_sec {
		padding: 110px 0 130px;
	}
	.news_related__title {
		font-size: 32px;
	}
	.news_related_list {
		margin-top: 36px;
	}
	.news_related_list a {
		min-height: 87px;
		padding: 0 34px;
	}
	.news_related_list .info_date {
		width: clamp(95px, 11.17vw, 150px);
	}
	.news_related_list .info_tag {
		width: 240px;
		margin-right: clamp(16px, 3.28vw, 44px);
		line-height: 34px;
	}
}


/* -----------------------------------------------------------------------
 コラムカテゴリアーカイブ(category.php。カードは.column_flex/.column_cardを、
 「ほかのカテゴリーを見る」はTOPの.column_cat_navをそのまま流用)
----------------------------------------------------------------------- */

.column_cat_page_title {
	position: relative;
	color: var(--main-text-color);
	line-height: 1.3;
}
.column_cat_page_title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	background-color: var(--lead-line-green);
}
/* 選択中カテゴリ(コラムトップと共用のためこのセレクタで追加) */
.column_cat_nav a.is-current {
	background-color: var(--badge-green);
	border-color: var(--badge-green);
	color: var(--white);
}
.column_cat_nav a.is-current::after {
	border-color: var(--white);
}
.column_cat_nav a.is-current:hover {
	opacity: 1;
}

@media screen and (max-width: 767px) {
	.column_cat_page_head {
		margin-top: 8.533vw;
	}
	.column_cat_page_title {
		padding-bottom: 4.267vw;
		font-size: 6.933vw;
	}
	.column_cat_page_title::after {
		width: 16vw;
		height: .533vw;
	}
	.column_archive_sec {
		margin-top: 8.533vw;
	}
	.column_archive_sec + .column_search {
		margin-top: 17.067vw;
		margin-bottom: 16vw; /* 最終セクションのためCTA前の余白(コラムトップの--lastと同値) */
	}
}
@media screen and (min-width: 768px), print {
	.column_cat_page_head {
		margin-top: 40px;
	}
	.column_cat_page_title {
		padding-bottom: 16px;
		font-size: 32px;
	}
	.column_cat_page_title::after {
		width: 60px;
		height: 2px;
	}
	.column_archive_sec {
		margin-top: 40px;
	}
	.column_archive_sec + .column_search {
		margin-top: 80px;
		margin-bottom: 100px; /* 最終セクションのためCTA前の余白(コラムトップの--lastと同値) */
	}
}


/* -----------------------------------------------------------------------
 コラム詳細ページ(single.php)
----------------------------------------------------------------------- */

/* page_headのタイトルがh1でなくなるためboldを明示 */
.column_page_head .page_head__title {
	font-weight: bold;
}

/* 記事+サイドバーの2カラムレイアウト */
.column_article_layout {
	align-items: flex-start;
	justify-content: space-between;
}
.column_article {
	min-width: 0;
}

/* 記事ヘッダー(日付+カテゴリタグ+H1+リード) */
.column_article__meta {
	align-items: center;
}
.column_article__date {
	color: #888; /* デザインPNG実測の薄グレー(既存の補足テキストと同色) */
	font-family: var(--font-en);
	font-weight: 300;
	line-height: 1;
}
/* カテゴリタグ(緑塗り・白文字のピル。.tagの薄緑を上書き) */
.column_article__tag {
	background-color: var(--lead-green);
	border-radius: 999px;
	color: var(--white);
	font-weight: bold;
}
.column_article__title {
	color: var(--main-text-color);
	line-height: 1.4;
}
.column_article__thumb img {
	width: 100%;
	height: auto;
}

/* 目次(本文H2から自動生成し最初のH2直前に挿入。開閉なしの静的リンク) */
.column_toc {
	background-color: var(--white);
	border: 1px solid var(--boder-color);
	overflow: hidden; /* タイトル背景が角丸からはみ出さないようクリップ */
	line-height: 1.5; /* 本文(.column_content)内に挿入されるためline-height: 2を打ち消す */
}
.column_toc .column_toc__list {
	list-style: none;
	margin-top: 0;
	padding-left: 0;
}
.column_toc .column_toc__title {
	font-weight: bold;
	background-color: var(--bg-color1);
	margin-top: 0 !important;
}
.column_toc .column_toc__item {
	border-top: 1px solid var(--boder-color);
	margin-top: 0;
}
.column_toc__link {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
}
.column_toc__link:hover {
	opacity: .7;
}
/* 本文内挿入のため本文リンクの下線を打ち消す(セレクタは.column_content aより強くする) */
.column_content .column_toc__link {
	text-decoration: none;
}
/* 行末の下向きシェブロン */
.column_toc__link::after {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	margin-left: auto;
	border-top: 2px solid #00723c; /* デザインPNG実測の濃緑 */
	border-right: 2px solid #00723c;
	transform: rotate(135deg);
}
.column_toc__num {
	flex: none;
	color: #00723c; /* デザインPNG実測の濃緑 */
	font-family: var(--font-en);
	font-weight: bold;
}
.column_toc__txt {
	font-weight: bold;
	padding-right: 1em;
}

/* 本文エリア(entry-content+column_content。ブロックエディタ出力想定のため
   内側はクラスに依存せず要素セレクタでスタイリングする。
   .entry-content単独にはスタイルを書かないこと(他ポストタイプと共用のため) */
.column_content {
	line-height: 2;
}
.column_content > :first-child {
	margin-top: 0;
}
.column_content a {
	text-decoration: underline;
}
.column_content strong {
	font-weight: bold;
}
/* 見出し(page_h2と同じ見た目。クラスレス方針のため要素セレクタで再定義) */
.column_content h2 {
	position: relative;
	color: var(--main-text-color);
	border-bottom: 2px solid var(--main-theme-color);
	line-height: 1.3;
}
.column_content h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 6px;
	background: linear-gradient(#67d13d, #069a61);
}
/* h3はデザイン上マーカーなしのプレーン太字(①②③等の記号は本文側で入力) */
.column_content h3 {
	color: var(--main-text-color);
	font-weight: bold;
	line-height: 1.5;
}
/* h4はデザインなし。h3(装飾なし太字)の一段小さい階層として設定 */
.column_content h4 {
	color: var(--main-text-color);
	font-weight: bold;
	line-height: 1.5;
}
/* リスト(リセットで消しているマーカーを本文内のみ復活) */
.column_content ul {
	list-style: disc;
}
.column_content ol {
	list-style: decimal;
}
/* 区切り線 */
.column_content hr {
	border: none;
	border-top: 1px solid var(--boder-color);
}
/* テーブル(緑ヘッダーの格子+角丸) */
.column_content .wp-block-table {
	overflow: hidden; /* 角丸(媒体クエリで指定)でテーブル四隅をクリップする */
}
.column_content .wp-block-table table {
	margin-top: 0; /* 上余白はfigure(.wp-block-table)側に持たせる */
	/* コアのテーブルブロックCSS(style-commonより後読みの
	   .wp-block-table table { border-collapse: collapse })に
	   詳細度で勝つため、figure内テーブルはここでも再指定する */
	border-collapse: separate;
	border-spacing: 0;
}
.column_content table {
	width: 100%;
	/* collapseだとborder-radiusが効かず、figure側のクリップで外枠の角が
	   欠けて見えるため、separateにして外枠はtable・内側罫線はセルの
	   right/bottomで格子を構成する(角丸の外枠線を維持するため) */
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--boder-color);
	line-height: 1.7;
}
.column_content table th,
.column_content table td {
	/* デザインPNGは縦罫線ありの格子。コアのブロックCSS(border: 1px solid)を
	   打ち消すため全辺リセットしてからright/bottomのみ指定する */
	border: none;
	border-right: 1px solid var(--boder-color);
	border-bottom: 1px solid var(--boder-color);
	text-align: left;
	vertical-align: top;
}
/* 外枠と重なる末尾列・最終行の罫線は消す(外枠はtable側が持つ) */
.column_content table th:last-child,
.column_content table td:last-child {
	border-right: none;
}
.column_content table tbody tr:last-child th,
.column_content table tbody tr:last-child td {
	border-bottom: none;
}
.column_content table thead th {
	background-color: #00723c; /* デザインPNG実測の濃緑 */
	color: var(--white);
	font-weight: bold;
}
.column_content table tbody th {
	background-color: var(--bg-color3);
	font-weight: bold;
}
/* 見出し行ありテーブルの本文1列目(ラベル列)は薄緑+太字 */
.column_content table:has(thead) tbody td:first-child {
	background-color: var(--bg-color3);
	font-weight: bold;
}
/* 帯ボックス(引用ブロック=blockquoteに割り当て) */
.column_content blockquote {
	background-color: var(--bg-color3);
	border-left: 6px solid var(--lead-green);
}
.column_content blockquote > :first-child {
	margin-top: 0;
}
/* タイトル行(先頭段落を太字=strongにした場合のみ)を緑見出しとして装飾。
   タイトル無しの帯ボックス(冒頭リード等)は段落をそのまま入力すれば黒文字のまま */
.column_content blockquote > p:first-child strong {
	color: var(--lead-green);
}
/* ボタン(コアの「ボタン」ブロック。wp-block-button__linkはコア自動付与クラスのため使用) */
.column_content .wp-block-button__link {
	display: inline-block;
	background-color: var(--accent-color);
	color: var(--white);
	font-weight: bold;
	text-decoration: none;
}
.column_content .wp-block-button__link:hover {
	opacity: .7;
}
/* ボタンパターン(.btn系 / .more)を本文内に挿入する場合:
   本文リンク(.column_content a)の下線を打ち消し、固定幅は
   fit-content+min-width化してテキスト量に応じて幅が広がるようにする */
.column_content .btn,
.column_content .more {
	text-decoration: none;
}
.column_content .contact_btn,
.column_content .more {
	width: fit-content;
}
/* 全幅・可変高の.more(長いリンクテキスト用バリエーション。class="more more--full")
   通常の.moreのMQ指定(width/max-width/height/font-size)に勝つよう2クラスで指定 */
.column_content .more.more--full {
	width: 100%;
	max-width: none;
	height: auto;
	font-size: 1em;
}
/* 矢印がflexの縮小で潰れて欠けないようにする(テキストとの間隔も確保) */
.column_content .more.more--full::after {
	flex: none;
	margin-left: .75em;
}
/* pとulはHTMLブロック用パターン内を除外(パターン内の余白は各パターンで管理) */
.column_content p:not(.column_stepbox p, .column_ctabox p, .column_leadbox p, .column_notebox p, .column_abclist p),
.column_content ul:not(.column_ctabox__tags, .column_abclist),
.column_content ol,
.column_content table,
.column_content .wp-block-table,
.column_content blockquote,
.column_content img,
.column_content .wp-block-buttons {
	margin-top: 1.5em;
}

/* サイドバー */
.column_sidebar {
	flex: none;
}
.column_sidebar_box {
	background-color: var(--white);
	border: 1px solid var(--boder-color);
}
.column_sidebar_box__title {
	color: #00723c; /* デザインPNG実測の濃緑 */
	font-weight: bold;
}
.column_sidebar_cat__list li {
	border-top: 1px solid var(--boder-color);
}
.column_sidebar_cat__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--main-text-color);
	font-weight: bold;
}
/* 行末の右向きシェブロン */
.column_sidebar_cat__list a::after {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border-top: 2px solid #00723c; /* デザインPNG実測の濃緑 */
	border-right: 2px solid #00723c;
	transform: rotate(45deg);
}
.column_sidebar_cat__list a:hover {
	opacity: .7;
}
.column_sidebar_popular__list li {
	border-top: 1px solid var(--boder-color);
}
.column_sidebar_popular__list a {
	display: flex;
	align-items: center;
	color: var(--main-text-color);
}
.column_sidebar_popular__list a:hover {
	opacity: .7;
}
.column_sidebar_popular__img {
	flex: none;
	object-fit: cover;
}
/* テキスト(左)が残り幅を取り、サムネイルを右端に寄せる */
.column_sidebar_popular__body {
	flex: 1 1 auto;
}
.column_sidebar_popular__ttl {
	display: block;
	font-weight: bold;
	line-height: 1.4;
}
.column_sidebar_popular__cat {
	display: block;
	color: #888; /* デザインPNG実測の薄グレー(既存の補足テキストと同色) */
}

/* 関連記事(カードは.column_flex/.column_cardを流用) */
.column_related__head {
	align-items: flex-end;
	justify-content: space-between;
	border-bottom: 2px solid var(--main-theme-color);
}
.column_related__title {
	color: var(--main-text-color);
	line-height: 1.3;
}
.column_related__more {
	flex: none;
	color: var(--main-theme-color);
	font-weight: bold;
}
.column_related__more:hover {
	opacity: .7;
}

@media screen and (max-width: 767px) {
	.column_article_layout {
		flex-direction: column;
		margin-top: 8.533vw;
	}
	.column_article {
		width: 100%;
	}
	.column_article__meta {
		gap: 4.267vw;
	}
	.column_article__date {
		font-size: 4.8vw;
	}
	.column_article__tag {
		padding: 0 5.333vw;
		font-size: 3.2vw;
		line-height: 5.867vw;
	}
	.column_article__title {
		margin-top: 4.8vw;
		font-size: 7.2vw;
	}
	.column_article__thumb {
		margin-top: 6.4vw;
	}
	.column_toc {
		margin-top: 8.533vw;
		border-radius: var(--radius-sp);
	}
	.column_toc__title {
		padding: 4.267vw 5.333vw;
		font-size: 4.267vw;
	}
	.column_toc__item {
		padding: 3.733vw 5.333vw;
	}
	.column_toc__num {
		width: 8.533vw;
		font-size: 3.733vw;
	}
	.column_toc__txt {
		font-size: 3.733vw;
	}
	.column_content {
		margin-top: 8.533vw;
		margin-bottom: 8.533vw;
	}
	/* pとulはHTMLブロック用パターン内を除外(パターン内の余白は各パターンで管理) */
	/*.column_content p:not(.column_stepbox p, .column_ctabox p, .column_leadbox p, .column_notebox p),
	.column_content ul:not(.column_ctabox__tags),
	.column_content ol,
	.column_content table,
	.column_content .wp-block-table,
	.column_content blockquote,
	.column_content img,
	.column_content .wp-block-buttons {
		margin-top: 8.533vw;
	}*/
	.column_content h2 {
		margin-top: 12.8vw;
		padding: 0 0 3.733vw 5.333vw;
		font-size: 6.133vw;
	}
	.column_content h2::before {
		bottom: 3.733vw;
	}
	.column_content h3 {
		margin-top: 7.467vw;
		font-size: 5.333vw;
	}
	.column_content h4 {
		margin-top: 6.4vw;
		font-size: 4.533vw;
	}
	.column_content ul,
	.column_content ol {
		padding-left: 6.4vw;
	}
	.column_content li {
		margin-top: 2.133vw;
	}
	.column_content hr {
		margin: 7.467vw 0 9.6vw;
	}
	.column_content table {
		border-radius: var(--radius-sp);
	}
	.column_content .wp-block-table {
		border-radius: var(--radius-sp);
	}
	.column_content blockquote {
		padding: 4vw 5.333vw;
	}
	.column_content blockquote > p:first-child strong {
		font-size: 4.533vw;
	}
	.column_content .wp-block-button__link {
		padding: 3.2vw 8.533vw;
		border-radius: var(--radius-s-sp);
	}
	.column_content .contact_btn,
	.column_content .more {
		width: 100%;
	}
	/* 全幅.more: 高さ可変のため上下paddingで確保(左右は通常の.moreを継承) */
	.column_content .more.more--full {
		min-height: 14.933vw;
		padding-top: 2.667vw;
		padding-bottom: 2.667vw;
	}
	.column_content figure img {
		border-radius: var(--radius-sp);
	}
	.column_sidebar {
		width: 100%;
		margin-top: 12.8vw;
	}
	.column_sidebar_box {
		border-radius: var(--radius-sp);
	}
	.column_sidebar_box + .column_sidebar_box {
		margin-top: 8vw;
	}
	.column_sidebar_box__title {
		padding: 3.733vw 5.333vw;
		font-size: 4.267vw;
	}
	.column_sidebar_cat__list a {
		padding: 3.733vw 5.333vw;
		font-size: 3.733vw;
	}
	.column_sidebar_popular__list a {
		gap: 3.2vw;
		padding: 3.733vw 5.333vw;
	}
	.column_sidebar_popular__img {
		width: 21.333vw;
		border-radius: var(--radius-s-sp);
	}
	.column_sidebar_popular__ttl {
		font-size: 3.733vw;
	}
	.column_sidebar_popular__cat {
		margin-top: 1.067vw;
		font-size: 3.2vw;
	}
	.column_related_sec {
		margin-top: 17.067vw;
		margin-bottom: 16vw; /* 最終セクションのためCTA前の余白 */
	}
	.column_related__title {
		font-size: 6.133vw;
	}
	.column_related__more {
		font-size: 3.2vw;
	}
	.column_related_sec .column_flex {
		margin-top: 6.4vw;
	}
}
@media screen and (min-width: 768px), print {
	.column_article_layout {
		gap: 60px;
		margin-top: 40px;
	}
	.column_article {
		width: 780px;
	}
	.column_article__meta {
		gap: 26px;
	}
	.column_article__date {
		font-size: 18px;
	}
	.column_article__tag {
		padding: 0 20px;
		font-size: 14px;
		line-height: 34px;
	}
	.column_article__title {
		margin-top: 30px;
		font-size: 36px;
	}
	.column_article__thumb {
		margin-top: 32px;
	}
	.column_toc {
		margin-top: 40px;
		border-radius: var(--radius-pc);
	}
	.column_toc__title {
		padding: 20px 28px;
		font-size: 18px;
	}
	.column_toc__item {
		padding: 18px 28px;
	}
	.column_toc__num {
		width: 36px;
		font-size: 15px;
	}
	.column_toc__txt {
		font-size: 1em;
	}
	.column_content {
		margin-top: 40px;
		margin-bottom: 40px;
		font-size: 1em;
	}
	/* pとulはHTMLブロック用パターン内を除外(パターン内の余白は各パターンで管理) */
	/*.column_content p:not(.column_stepbox p, .column_ctabox p, .column_leadbox p, .column_notebox p),
	.column_content ul:not(.column_ctabox__tags),
	.column_content ol,
	.column_content table,
	.column_content .wp-block-table,
	.column_content blockquote,
	.column_content img,
	.column_content .wp-block-buttons {
		margin-top: 36px;
	}*/
	.column_content h2 {
		margin-top: 70px;
		padding: 0 0 20px 24px;
		font-size: 28px;
	}
	.column_content h2::before {
		bottom: 20px;
	}
	.column_content h3 {
		margin-top: 44px;
		font-size: 22px;
	}
	.column_content h4 {
		margin-top: 32px;
		font-size: 18px;
	}
	.column_content ul,
	.column_content ol {
		padding-left: 24px;
	}
	.column_content li {
		margin-top: 8px;
	}
	.column_content hr {
		margin: 40px 0 48px;
	}
	.column_content table {
		border-radius: var(--radius-pc);
	}
	.column_content .wp-block-table {
		border-radius: var(--radius-pc);
	}
	.column_content blockquote {
		padding: 20px 28px;
	}
	.column_content blockquote > p:first-child strong {
		font-size: 18px;
	}
	.column_content .wp-block-button__link {
		padding: 12px 32px;
		border-radius: var(--radius-s-pc);
	}
	.column_content .contact_btn,
	.column_content .more {
		max-width: 360px;
		width: 80%;
	}
	.column_content .contact_btn {
		font-size: 18px;
	}
	/* 全幅.more: 高さ可変のため上下paddingで確保(左右は通常の.moreを継承) */
	.column_content .more.more--full {
		min-height: 60px;
		padding-top: 12px;
		padding-bottom: 12px;
	}
	.column_content figure img {
		border-radius: var(--radius-pc);
	}
	.column_sidebar {
		width: 300px;
	}
	.column_sidebar_box {
		border-radius: var(--radius-pc);
	}
	.column_sidebar_box + .column_sidebar_box {
		margin-top: 30px;
	}
	.column_sidebar_box__title {
		padding: 18px 24px;
		font-size: 1em;
	}
	.column_sidebar_cat__list a {
		padding: 16px 24px;
		font-size: 15px;
	}
	.column_sidebar_popular__list a {
		gap: 12px;
		padding: 16px 24px;
	}
	.column_sidebar_popular__img {
		width: 80px;
		border-radius: var(--radius-s-pc);
	}
	.column_sidebar_popular__ttl {
		font-size: 14px;
	}
	.column_sidebar_popular__cat {
		margin-top: 4px;
		font-size: 12px;
	}
	.column_related_sec {
		margin-top: 100px;
		margin-bottom: 100px; /* 最終セクションのためCTA前の余白 */
	}
	.column_related__title {
		font-size: 28px;
	}
	.column_related__more {
		font-size: 14px;
	}
	.column_related_sec .column_flex {
		margin-top: 32px;
	}
}


/* -----------------------------------------------------------------------
 コラム本文パターン(カスタムHTMLブロック貼り付け用。_dist/column_patterns.html参照)
----------------------------------------------------------------------- */

/* STEPボックス(帯ボックス=blockquoteでは3階層のデザインを両立できないため専用スニペット) */
.column_stepbox {
	background-color: var(--white);
	border: 1px solid var(--boder-color);
}
.column_stepbox__label {
	display: block;
	color: var(--main-text-color);
	font-family: var(--font-en);
	font-weight: bold;
	letter-spacing: 1.4px;
}
.column_stepbox__title {
	display: block;
	color: var(--lead-green);
	font-weight: bold;
}
.column_stepbox__txt {
	display: block;
	color: var(--main-text-color);
}

/* 募集要項CTAボックス(緑グラデーション+タグpill+ボタン2つ) */
.column_ctabox {
	background: linear-gradient(135deg, var(--main-theme-color), #117b49);
	color: var(--white);
}
.column_ctabox__title {
	display: block;
	color: var(--white);
	font-weight: bold;
}
.column_ctabox__lead {
	display: block;
	color: var(--white);
}
.column_ctabox__tags {
	display: flex;
	flex-wrap: wrap;
}
.column_ctabox__tags li {
	border: 1px solid var(--white);
	color: var(--white);
	font-weight: bold;
}
.column_ctabox__txt {
	display: block;
	color: var(--white);
}
.column_ctabox__btns {
	display: flex;
	flex-wrap: wrap;
}
.column_ctabox__btns a {
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
	border: 1px solid var(--white);
	color: var(--lead-green);
	font-weight: bold;
	text-decoration: none;
}
.column_ctabox__btns a:hover {
	opacity: .7;
}

/* リード帯ボックス(左の濃緑ライン+薄緑背景。角丸なし) */
.column_leadbox {
	background-color: #f5fbf7; /* デザインPNG実測の極薄緑 */
	border-left: 6px solid #00723c; /* デザインPNG実測の濃緑 */
}
.column_leadbox__txt {
	color: var(--main-text-color);
}

/* タイトル付きノートボックス(角丸+薄緑背景+左の濃緑ライン) */
.column_notebox {
	background-color: #f5fbf7; /* デザインPNG実測の極薄緑 */
	border-left: 6px solid #00723c; /* デザインPNG実測の濃緑 */
}
.column_notebox__title {
	color: #00723c;
	font-weight: bold;
}
.column_notebox__txt {
	color: var(--main-text-color);
}
.column_notebox p + p {
	margin-top: 1em;
}

/* 英字バッジ付きリスト(緑丸バッジ+タイトル+説明文。項目間は罫線区切り) */
.column_abclist {
	list-style: none;
	padding-left: 0;
	border-top: 1px solid var(--boder-color);
}
/* 本文のul/li既定(マーカー・padding-left・liの上余白)を打ち消す */
.column_content .column_abclist {
	list-style: none;
	padding-left: 0;
}
.column_content .column_abclist li {
	margin-top: 0;
}
.column_abclist__item {
	display: flex;
	border-bottom: 1px solid var(--boder-color);
}
.column_abclist__label {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #00723c; /* デザインPNG実測の濃緑 */
	border-radius: 50%;
	color: var(--white);
	font-family: var(--font-en);
	font-weight: bold;
	line-height: 1;
}
.column_abclist__body {
	flex: 1;
	min-width: 0; /* 長文でもflex子がはみ出さないように */
}
.column_abclist__title {
	/* バッジと1行目の天地センターを合わせる(複数行時は上から積む) */
	display: flex;
	align-items: center;
	color: var(--main-text-color);
	font-weight: bold;
	line-height: 1.5;
}
.column_abclist__txt {
	display: block;
	color: var(--main-text-color);
}

@media screen and (max-width: 767px) {
	.column_stepbox {
		margin-top: 8.533vw;
		padding: 5.333vw 6.4vw;
		border-radius: var(--radius-sp);
	}
	.column_stepbox + .column_stepbox {
		margin-top: 8vw;
	}
	.column_stepbox__label {
		font-size: 3.2vw;
	}
	.column_stepbox__title {
		margin-top: 1.6vw;
		font-size: 4.8vw;
	}
	.column_stepbox__txt {
		margin-top: 3.2vw;
		font-size: 3.733vw; /* 本文サイズに依存しないようemではなくvwで指定(bodyデフォルトと同値) */
	}
	.column_ctabox {
		margin-top: 8.533vw;
		padding: 8.533vw 6.4vw;
		border-radius: var(--radius-sp);
	}
	.column_ctabox__title {
		font-size: 5.867vw;
	}
	.column_ctabox__lead {
		margin-top: 3.2vw;
		font-size: 3.733vw;
	}
	.column_ctabox__tags {
		gap: 2.133vw;
		margin-top: 5.333vw;
	}
	.column_ctabox__tags li {
		padding: 2.133vw 4.267vw;
		border-radius: var(--radius-s-sp);
		font-size: 3.467vw;
	}
	.column_ctabox__txt {
		margin-top: 5.333vw;
		font-size: 3.733vw;
	}
	.column_ctabox__btns {
		gap: 3.2vw;
		margin-top: 5.333vw;
	}
	.column_ctabox__btns a {
		width: 100%;
		height: 13.333vw;
		font-size: 3.733vw;
	}
	.column_leadbox {
		margin-top: 8.533vw;
		padding: 4.8vw 6.4vw;
	}
	.column_notebox {
		margin-top: 8.533vw;
		padding: 8.533vw 6.4vw;
		border-radius: var(--radius-sp);
	}
	.column_notebox__txt {
		margin-top: 3.2vw;
	}
	.column_abclist {
		margin-top: 8.533vw;
	}
	.column_abclist__item {
		gap: 4.267vw;
		padding: 5.333vw 0;
	}
	.column_abclist__label {
		width: 8.533vw;
		height: 8.533vw;
		font-size: 3.733vw;
	}
	.column_abclist__title {
		min-height: 8.533vw;
		font-size: 4.8vw;
	}
	.column_abclist__txt {
		margin-top: 2.133vw;
		font-size: 3.733vw; /* 本文サイズに依存しないようemではなくvwで指定(stepboxと同方針) */
	}
}
@media screen and (min-width: 768px), print {
	.column_stepbox {
		margin-top: 36px;
		padding: 28px 32px;
		border-radius: var(--radius-pc);
	}
	.column_stepbox + .column_stepbox {
		margin-top: 30px;
	}
	.column_stepbox__label {
		font-size: 14px;
	}
	.column_stepbox__title {
		margin-top: 6px;
		font-size: 20px;
	}
	.column_stepbox__txt {
		margin-top: 12px;
		font-size: 1em;
	}
	.column_ctabox {
		margin-top: 40px;
		padding: 48px;
		border-radius: var(--radius-pc);
	}
	.column_ctabox__title {
		font-size: 24px;
	}
	.column_ctabox__lead {
		margin-top: 12px;
		font-size: 1em;
	}
	.column_ctabox__tags {
		gap: 12px;
		margin-top: 24px;
	}
	.column_ctabox__tags li {
		padding: 10px 20px;
		border-radius: var(--radius-s-pc);
		font-size: 14px;
	}
	.column_ctabox__txt {
		margin-top: 24px;
		font-size: 1em;
	}
	.column_ctabox__btns {
		gap: 16px;
		margin-top: 24px;
	}
	.column_ctabox__btns a {
		width: 220px;
		height: 56px;
		font-size: 15px;
	}
	.column_leadbox {
		margin-top: 36px;
		padding: 20px 48px;
	}
	.column_notebox {
		margin-top: 36px;
		padding: 32px 40px;
		border-radius: var(--radius-pc);
	}
	.column_notebox__txt {
		margin-top: 12px;
	}
	.column_abclist {
		margin-top: 36px;
	}
	.column_abclist__item {
		gap: 24px;
		padding: 28px 0;
	}
	.column_abclist__label {
		width: 36px;
		height: 36px;
		font-size: 16px;
	}
	.column_abclist__title {
		min-height: 36px;
		font-size: 20px;
	}
	.column_abclist__txt {
		margin-top: 10px;
		font-size: 1em;
	}
}


/* -----------------------------------------------------------------------
 お問い合わせページ(/contact/。本文HTMLは管理画面側: 固定ページ+CF7フォーム)
----------------------------------------------------------------------- */

/* イントロ */
.contact_intro__title {
	color: var(--main-text-color);
	text-align: center;
	line-height: 1.6;
}
.contact_intro__txt {
	text-align: center;
	line-height: 2;
}

/* フォーム見出し(page_h2の縦バー・下線を打ち消し、緑下線はリード文側に引く) */
.contact_form__h2 {
	border-bottom: none;
}
.contact_form__h2::before {
	content: none;
}
.contact_form__lead {
	border-bottom: 2px solid var(--lead-green);
}

/* フォーム行(PCはラベル列+フィールド列の2カラム、SPは縦積み) */
.contact_form__row {
	border-bottom: 1px solid #ddd; /* デザインPNG実測(≈#dde6e0)。既存.pager__itemの枠線と同値 */
}
.contact_form__row:first-of-type {
	border-top: 1px solid #ddd;
}
.contact_form__label_txt {
	font-weight: bold;
}
.contact_badge {
	display: inline-block;
	font-weight: bold;
	line-height: 1;
}
.contact_badge.is-required {
	background-color: var(--lead-green);
	color: var(--white);
}
.contact_badge.is-optional {
	background-color: var(--boder-color); /* 実測≈#e9ece9。同値#eeeの既存カスタムプロパティを使用 */
	color: #888;
}

/* 入力フィールド(CF7のラッパーspanをブロック化して幅100%の基準にする) */
.contact_form__field .wpcf7-form-control-wrap {
	display: block;
	position: relative;
}
.contact_form__field input[type="text"],
.contact_form__field input[type="email"],
.contact_form__field input[type="tel"],
.contact_form__field select,
.contact_form__field textarea {
	width: 100%;
	background-color: var(--white);
	border: 1px solid #ddd;
	color: var(--main-text-color);
	font-family: inherit;
}
.contact_form__field ::placeholder {
	color: #aaa; /* 実測≈#b6b7bfの暫定対応 */
}
.contact_form__field textarea {
	display: block;
	resize: vertical;
}
/* セレクト(OS標準の矢印を消してCSSシェブロンに統一) */
.contact_form__field select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}
.contact_form__field .wpcf7-form-control-wrap:has(select)::after {
	content: "";
	position: absolute;
	border-right: 2px solid var(--main-text-color);
	border-bottom: 2px solid var(--main-text-color);
	transform: rotate(45deg);
	pointer-events: none;
}
/* フォーカスの視認性確保 */
.contact_form__field input:focus,
.contact_form__field select:focus,
.contact_form__field textarea:focus,
.contact_consent input:focus,
.contact_submit_btn:focus {
	outline: 2px solid var(--main-theme-color);
	outline-offset: 2px;
}
.contact_form__note {
	color: #888;
}

/* 個人情報ボックス */
.contact_privacy_box {
	background-color: var(--bg-color3);
	line-height: 1.8;
}
.contact_privacy_box__link {
	color: var(--lead-green);
	font-weight: bold;
	text-decoration: underline;
}
.contact_privacy_box__link:hover {
	opacity: .7;
}

/* 同意チェック(ネイティブcheckbox+accent-colorで調整) */
.contact_consent {
	text-align: center;
}
.contact_consent .wpcf7-list-item {
	margin: 0; /* CF7デフォルトのmargin-left打ち消し */
}
.contact_consent label {
	display: inline-flex;
	align-items: center;
	font-weight: bold;
	cursor: pointer;
}
.contact_consent input[type="checkbox"] {
	accent-color: var(--lead-green);
	cursor: pointer;
}

/* 送信ボタン(inputのため疑似要素が使えず、矢印はラッパー側に置く) */
.contact_submit {
	position: relative;
	text-align: center;
}
/* CF7がJSで挿入するスピナーがボタン下に行ボックスを作らないようflex1行に収める
   (ラッパー高=ボタン高となり矢印の天地センターが狂わない) */
/* .contact_submit p {
	display: flex;
	align-items: center;
	justify-content: center;
} */
.contact_submit_btn {
	display: block;
	margin: 0 auto;
	background-color: var(--lead-green); /* .btnのオレンジを上書き(実測#007a46) */
	border: none;
	font-weight: bold;
	cursor: pointer;
	text-indent: -1em;
	transition: background-color .3s ease;
}
/* 文言右の矢印(SVG 33x11.8) */
.contact_submit::after {
	content: "";
	position: absolute;
	background: url(img/pt_arrow.svg) no-repeat center / contain;
	pointer-events: none;
}
.contact_submit_btn:disabled {
	background-color: #777;
}
.contact_submit_btn:hover {
	opacity: 1;
}
.contact_submit_btn:not(:disabled):hover {
	background-color: #125f1b;
}

.turnstile {
	margin: auto;
	text-align: center;
}

/* バリデーションエラー・送信結果(デザイン外のためページ配色に合わせた一般実装) */
.contact_form_sec .wpcf7-not-valid-tip {
	display: block;
	color: #d33;
}
.contact_form_sec .wpcf7-response-output {
	border: 2px solid var(--lead-green);
	color: var(--lead-green);
	font-weight: bold;
	text-align: center;
}
.contact_form_sec form.invalid .wpcf7-response-output,
.contact_form_sec form.unaccepted .wpcf7-response-output,
.contact_form_sec form.payment-required .wpcf7-response-output,
.contact_form_sec form.aborted .wpcf7-response-output,
.contact_form_sec form.failed .wpcf7-response-output,
.contact_form_sec form.spam .wpcf7-response-output {
	border-color: #d33;
	color: #d33;
}
@media screen and (max-width: 767px) {
	/* H1(画像なしのため下余白で高さを調整。背景は共通のcalc指定が効かないため元のautoに戻す。newsと同方式) */
	.contact_page_head {
		background-size: 100% auto;
	}
	.contact_page_head .page_head__inner {
		padding-bottom: 13.333vw;
	}
	.contact_intro {
		margin-top: 12.8vw;
	}
	.contact_intro__title {
		font-size: 6.933vw;
	}
	.contact_intro__txt {
		margin-top: 4.267vw;
	}
	.contact_form_sec {
		margin-top: 12.8vw;
		margin-bottom: 21.333vw;
	}
	.contact_form__h2 {
		padding: 0;
		font-size: 5.867vw;
	}
	.contact_form__lead {
		margin-top: 3.2vw;
		padding-bottom: 4.267vw;
		font-size: 3.467vw;
	}
	.contact_form_sec .wpcf7 {
		margin-top: 6.4vw;
	}
	.contact_form__row {
		padding: 6.4vw 0;
	}
	.contact_form__label {
		margin-bottom: 2.667vw;
	}
	.contact_badge {
		margin-left: 3.2vw;
		padding: 1.333vw 2.667vw;
		border-radius: var(--radius-s-sp);
		font-size: 3.2vw;
	}
	.contact_form__field input[type="text"],
	.contact_form__field input[type="email"],
	.contact_form__field input[type="tel"],
	.contact_form__field select {
		height: 13.333vw;
		padding: 0 4.267vw;
		border-radius: var(--radius-s-sp);
		font-size: 4.267vw;
	}
	.contact_form__field select {
		padding-right: 10.667vw;
	}
	.contact_form__field .wpcf7-form-control-wrap:has(select)::after {
		right: 4.267vw;
		top: 5vw;
		width: 2.135vw;
		height: 2.135vw;
	}
	.contact_form__field textarea {
		height: 48vw;
		padding: 4vw 4.267vw;
		border-radius: var(--radius-s-sp);
		font-size: 4.267vw;
	}
	.contact_form__note {
		margin-top: 3.2vw;
		font-size: 3.733vw;
	}
	.contact_privacy_box {
		margin-top: 8.533vw;
		padding: 5.333vw;
		border-radius: var(--radius-s-sp);
		font-size: 3.733vw;
	}
	.contact_consent {
		margin-top: 8.533vw;
	}
	.contact_consent label {
		gap: 3.2vw;
	}
	.contact_consent input[type="checkbox"] {
		width: 6.4vw;
		height: 6.4vw;
	}
	.contact_submit {
		margin-top: 8.533vw;
	}
	.contact_submit_btn {
		width: 100%;
		height: 14.933vw;
		font-size: 4.267vw;
	}
	/* 矢印はボタン文言「送信する」(半幅8.533vw)の右に3.2vwの間隔で配置 */
	.contact_submit::after {
		right: calc(50% - 11.733vw - 33px);
		top: 1.7em;
		width: 7vw;
		height: 2.6vw;
	}
	.contact_form_sec .wpcf7-not-valid-tip {
		margin-top: 2.133vw;
		font-size: 3.733vw;
	}
	.contact_form_sec .wpcf7-response-output {
		margin: 8.533vw 0 0;
		padding: 4vw 5.333vw;
		border-radius: var(--radius-s-sp);
		font-size: 3.733vw;
	}
	.thanks_page_head {
		background-size: 100% auto;
	}
	.thanks_page_head .page_head__inner {
		padding-bottom: 13.333vw;
	}
	.thanks_page_head .page_head__title {
		margin-top: 5.333vw;
	}
}
@media screen and (min-width: 768px), print {
	.contact_intro {
		margin-top: 64px;
	}
	.contact_intro__title {
		font-size: 32px;
	}
	.contact_intro__txt {
		margin-top: 24px;
	}
	.contact_form_sec {
		margin-top: 72px;
		margin-bottom: 140px;
	}
	.contact_form__h2 {
		padding: 0;
		font-size: 28px;
	}
	.contact_form__lead {
		margin-top: 16px;
		padding-bottom: 28px;
		font-size: 14px;
	}
	.contact_form_sec .wpcf7 {
		margin-top: 32px;
	}
	.contact_form__row {
		display: flex;
		padding: 36px 0;
	}
	.contact_form__label {
		flex: none;
		width: 28.333%; /* 340/1200。画面幅に応じてラベル列の余白も縮む */
		padding-top: 20px; /* 高さ64pxのフィールドと1行ラベルの天地センターを合わせる */
	}
	.contact_form__field {
		flex: 1 1 auto;
		min-width: 0;
	}
	.contact_badge {
		margin-left: 12px;
		padding: 5px 10px;
		border-radius: var(--radius-s-pc);
		font-size: 12px;
	}
	.contact_form__field input[type="text"],
	.contact_form__field input[type="email"],
	.contact_form__field input[type="tel"],
	.contact_form__field select {
		height: 64px;
		padding: 0 24px;
		border-radius: var(--radius-s-pc);
		font-size: 1em;
	}
	.contact_form__field select {
		padding-right: 56px;
	}
	.contact_form__field .wpcf7-form-control-wrap:has(select)::after {
		right: 24px;
		top: 25px;
		width: 8px;
		height: 8px;
	}
	.contact_form__field textarea {
		height: 210px;
		padding: 20px 24px;
		border-radius: var(--radius-s-pc);
		font-size: 1em;
	}
	.contact_form__note {
		margin-top: 12px;
		font-size: 14px;
	}
	.contact_privacy_box {
		margin-top: 36px;
		padding: 26px 40px;
		border-radius: var(--radius-s-pc);
		font-size: 1em;
	}
	.contact_consent {
		margin-top: 36px;
	}
	.contact_consent label {
		gap: 12px;
	}
	.contact_consent input[type="checkbox"] {
		width: 24px;
		height: 24px;
	}
	.contact_submit {
		margin-top: 36px;
	}
	.contact_submit_btn {
		width: 420px;
		height: 72px;
		font-size: 18px;
	}
	/* 矢印はボタン文言「送信する」(半幅36px)の右に12pxの間隔で配置 */
	.contact_submit::after {
		right: calc(50% - 81px);
		top: 1.9em;
		width: 33px;
		height: 12px;
	}
	.contact_form_sec .wpcf7-not-valid-tip {
		margin-top: 8px;
		font-size: 14px;
	}
	.contact_form_sec .wpcf7-response-output {
		margin: 40px 0 0;
		padding: 16px 24px;
		border-radius: var(--radius-s-pc);
		font-size: 1em;
	}
	.thanks_page_head {
		padding-top: 75px;
	}
	.thanks_page_head .page_head__title {
		margin-top: 26px;
	}
}


/* -----------------------------------------------------------------------
 汎用固定ページ本文(page_content)
 WordPress化時の追記: 固定ページの通常ブロック出力用。見た目はお知らせ本文
 (.news_content)と同一。エディタが自動付与する wp-block-* クラスにのみ
 スタイルを当てるため、HTMLブロック内の静的マークアップ(クラスなし要素
 含む)には影響せず、静的マークアップとの混在ページでも安全
----------------------------------------------------------------------- */

/* 行間・リンク・強調(静的マークアップへの継承を避けるため
   .page_content自体ではなくブロック側に指定する) */
.page_content .wp-block-paragraph,
.page_content .wp-block-list,
.page_content .wp-block-table,
.page_content .wp-block-quote {
	line-height: 2;
}
.page_content .wp-block-paragraph,
.page_content .wp-block-list,
.page_content .wp-block-table,
.page_content .wp-block-quote,
.page_content .wp-block-image {
	margin-top: 1.5em;
}
.page_content .wp-block-paragraph a,
.page_content .wp-block-list a,
.page_content .wp-block-table a,
.page_content .wp-block-quote a {
	text-decoration: underline;
}
.page_content .wp-block-paragraph strong,
.page_content .wp-block-list strong,
.page_content .wp-block-table strong,
.page_content .wp-block-quote strong {
	font-weight: bold;
}
/* 見出し(.news_content h2/h3と同じ見た目) */
.page_content h2.wp-block-heading {
	position: relative;
	color: var(--main-text-color);
	border-bottom: 2px solid var(--main-theme-color);
	line-height: 1.3;
}
.page_content h2.wp-block-heading::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 6px;
	background: linear-gradient(#67d13d, #069a61);
}
.page_content h3.wp-block-heading {
	position: relative;
	color: var(--main-text-color);
}
.page_content h3.wp-block-heading::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--sub-theme-color);
}
/* リスト(リセットで消しているマーカーをブロックのみ復活) */
.page_content ul.wp-block-list {
	list-style: disc;
}
.page_content ol.wp-block-list {
	list-style: decimal;
}
/* 区切り線(コア標準の短い線・透過をデザインの罫線に上書き) */
.page_content .wp-block-separator:not(.is-style-dots) {
	width: 100%;
	border: none;
	border-top: 1px solid var(--boder-color);
	opacity: 1;
}
/* テーブル(横罫線のみ。見出しセルは薄緑) */
.page_content .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}
.page_content .wp-block-table th,
.page_content .wp-block-table td {
	border-top: 1px solid var(--boder-color);
	border-bottom: 1px solid var(--boder-color);
	text-align: left;
	vertical-align: top;
}
.page_content .wp-block-table th {
	background-color: var(--bg-color3);
	font-weight: bold;
}
/* 帯ボックス(引用ブロック=blockquoteに割り当て) */
.page_content .wp-block-quote {
	background-color: var(--bg-color3);
	border-left: 6px solid var(--sub-theme-color);
	font-weight: bold;
}
.page_content .wp-block-quote > :first-child {
	margin-top: 0;
}

@media screen and (max-width: 767px) {
	/* 本文の上下余白(先頭・末尾が通常ブロックの場合のみ。
	   静的マークアップで始まる/終わるページは各セクションの余白に任せる) */
	.page_content > [class*="wp-block-"]:first-child {
		margin-top: 12.8vw;
	}
	.page_content > [class*="wp-block-"]:last-child {
		margin-bottom: 21.333vw;
	}
	/*.page_content .wp-block-paragraph,
	.page_content .wp-block-list,
	.page_content .wp-block-table,
	.page_content .wp-block-quote,
	.page_content .wp-block-image {
		margin-top: 8.533vw;
	}*/
	.page_content h2.wp-block-heading {
		margin-top: 12.8vw;
		padding: 0 0 3.733vw 5.333vw;
		font-size: 6.133vw;
	}
	.page_content h2.wp-block-heading::before {
		bottom: 3.733vw;
	}
	.page_content h3.wp-block-heading {
		margin-top: 7.467vw;
		padding-left: 6.4vw;
		font-size: 5.333vw;
	}
	.page_content .wp-block-list {
		padding-left: 6.4vw;
	}
	.page_content .wp-block-list li {
		margin-top: 2.133vw;
	}
	.page_content .wp-block-separator {
		margin: 7.467vw 0 9.6vw;
	}
	.page_content .wp-block-table th,
	.page_content .wp-block-table td {
		padding: 3.733vw 4.267vw;
	}
	.page_content .wp-block-table th {
		width: 25.6vw;
	}
	.page_content .wp-block-quote {
		padding: 4vw 5.333vw;
	}
}
@media screen and (min-width: 768px), print {
	/* 本文の上下余白(先頭・末尾が通常ブロックの場合のみ) */
	.page_content > [class*="wp-block-"]:first-child {
		margin-top: 80px;
	}
	.page_content > [class*="wp-block-"]:last-child {
		margin-bottom: 130px;
	}
	/*.page_content .wp-block-paragraph,
	.page_content .wp-block-list,
	.page_content .wp-block-table,
	.page_content .wp-block-quote,
	.page_content .wp-block-image {
		margin-top: 36px;
	}*/
	.page_content h2.wp-block-heading {
		margin-top: 80px;
		padding: 0 0 22px 24px;
		font-size: 28px;
	}
	.page_content h2.wp-block-heading::before {
		bottom: 22px;
	}
	.page_content h3.wp-block-heading {
		margin-top: 48px;
		padding-left: 26px;
		font-size: 22px;
	}
	.page_content .wp-block-list {
		padding-left: 24px;
	}
	.page_content .wp-block-list li {
		margin-top: 8px;
	}
	.page_content .wp-block-separator {
		margin: 44px 0 56px;
	}
	.page_content .wp-block-table th,
	.page_content .wp-block-table td {
		padding: 23px 28px;
	}
	.page_content .wp-block-table th {
		width: 240px;
	}
	.page_content .wp-block-table td {
		padding-left: 36px;
	}
	.page_content .wp-block-quote {
		padding: 22px 28px;
	}
}

/* -----------------------------------------------------------------------
 404ページ
 WordPress化時の追記: 404.php用。page_head・パンくず・戻るボタン
 (news_back_btn)は既存共通パーツを流用し、ここでは写真なし対応
 (contactと同方式)と本文まわりのみ定義する
----------------------------------------------------------------------- */

@media screen and (max-width: 767px) {
	/* H1(画像なしのため下余白で高さを調整。背景は共通のcalc指定が効かないため元のautoに戻す。contactと同方式) */
	.notfound_page_head {
		background-size: 100% auto;
	}
	.notfound_page_head .page_head__inner {
		padding-bottom: 13.333vw;
	}
	/* 本文(上下余白は固定ページ本文の先頭・末尾ブロックと同値) */
	.notfound_sec {
		margin-top: 12.8vw;
		margin-bottom: 21.333vw;
	}
	.notfound_msg {
		line-height: 2;
	}
}
@media screen and (min-width: 768px), print {
	/* 本文(上下余白は固定ページ本文の先頭・末尾ブロックと同値) */
	.notfound_sec {
		margin-top: 80px;
		margin-bottom: 130px;
	}
	.notfound_msg {
		text-align: center;
		line-height: 2;
	}
}

/* -----------------------------------------------------------------------
 ヒーローSCROLLインジケーター
 WordPress化時の追記: hero_scroll.svg(テキスト+線の1枚画像)をテキストSVG
 (hero_scroll_txt.svg)+CSS線に分離し、線にループアニメーションを適用。
 配置(position/right/bottom)と幅は既存の .hero-overlay__scroll ルールを
 そのまま流用し、ここでは同一セレクタの後勝ちで display のみ flex に上書き
----------------------------------------------------------------------- */

.hero-overlay__scroll {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.hero-overlay__scroll-txt {
	width: 100%;
}
.hero-overlay__scroll-line {
	position: relative;
	overflow: hidden;
	width: 1px; /* 細いborder線の例外に準じSPもvw換算しない */
}
.hero-overlay__scroll-line::before {
	content: "";
	position: absolute;
	inset: 0;
	background-color: var(--white);
	animation: hero_scroll_line 2.4s ease-in-out infinite;
}

/* 上から伸びる→伸びきって保持(45%〜55%)→下へ抜ける、のループ。
   ±102%はサブピクセル丸めで線の端が残るのを防ぐための値 */
@keyframes hero_scroll_line {
	0% { transform: translateY(-102%); }
	45%, 55% { transform: translateY(0); }
	100% { transform: translateY(102%); }
}

@media (prefers-reduced-motion: reduce) {
	.hero-overlay__scroll-line::before {
		animation: none;
	}
}

@media screen and (max-width: 767px) {
	/* gap・線の長さは旧SVG(12.11:99.31)の内訳比率を幅2.933vwから按分 */
	.hero-overlay__scroll {
		gap: 2.376vw;
	}
	.hero-overlay__scroll-line {
		height: 12.328vw;
	}
}
@media screen and (min-width: 768px), print {
	/* gap・線の長さは旧SVG(12.11:99.31)の内訳比率を幅12pxから按分(整数丸め) */
	.hero-overlay__scroll {
		gap: 10px;
	}
	.hero-overlay__scroll-line {
		height: 50px;
	}
}

/* -----------------------------------------------------------------------
 検索結果ページ(search.php / content-search.php)
 WordPress化時の追記: _srcにデザインなし。既存トークン・page_headを流用した
 最小スタイル。結果はカード化せずタイトル+日付+抜粋のプレーンなリスト。
----------------------------------------------------------------------- */

.search_result_head {
	font-weight: bold;
}
.search_result_item + .search_result_item {
	border-top: 1px solid var(--boder-color);
}
.search_result_item__link {
	display: block;
	color: var(--main-text-color);
}
.search_result_item__link:hover {
	opacity: .7;
}
.search_result_item__ttl {
	display: block;
	font-weight: bold;
	line-height: 1.5;
}
.search_result_item__date {
	display: block;
	color: #888; /* 補足テキストと同色(サイドバー日付等と統一) */
}
.search_result_item__excerpt {
	display: block;
	line-height: 1.8;
}

@media screen and (max-width: 767px) {
	/* H1(画像なしのため下余白で高さを調整。背景は共通のcalc指定が効かないため元のautoに戻す。notfound/contactと同方式) */
	.search_page_head {
		background-size: 100% auto;
	}
	.search_page_head .page_head__inner {
		padding-bottom: 13.333vw;
	}
	.search_result_sec {
		margin-top: 12.8vw;
		margin-bottom: 21.333vw;
	}
	.search_result_head {
		margin-bottom: 6.4vw;
		font-size: 3.733vw;
	}
	.search_result_item__link {
		padding: 5.333vw 0;
	}
	.search_result_item__ttl {
		font-size: 4.267vw;
	}
	.search_result_item__date {
		margin-top: 2.667vw;
		font-size: 3.2vw;
	}
	.search_result_item__excerpt {
		margin-top: 2.667vw;
		font-size: 3.733vw;
	}
}
@media screen and (min-width: 768px), print {
	.search_result_sec {
		margin-top: 80px;
		margin-bottom: 130px;
	}
	.search_result_head {
		margin-bottom: 30px;
		font-size: 16px;
	}
	.search_result_item__link {
		padding: 28px 0;
	}
	.search_result_item__ttl {
		font-size: 20px;
	}
	.search_result_item__date {
		margin-top: 10px;
		font-size: 14px;
	}
	.search_result_item__excerpt {
		margin-top: 12px;
		font-size: 15px;
	}
}
