@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

/* =================================================================
   サイトリニューアル — モダン / 青 × 白 / レスポンシブ
   ※ 本文テキストはWordPress（DB）側のまま維持し、見た目のみを刷新します。
   ※ SWELL本体（親テーマ）は変更せず、子テーマCSSで全体を上書きします。
   -----------------------------------------------------------------
   目次
     01. カラーパレット（ブランドカラー定義）
     02. ベース（タイポグラフィ・下地）
     03. リンク
     04. ヘッダー / グローバルナビ
     05. メインビジュアル / ページタイトル / 見出し
     06. ボタン
     07. 記事一覧カード
     08. 本文コンテンツ（見出し・引用・表）
     09. ウィジェット / サイドバー
     10. フッター
     11. アクセシビリティ / 仕上げ
     12. レスポンシブ（スマホ対応）
   ================================================================= */


/* =================================================================
   01. カラーパレット
   SWELLはカスタマイザーの色を :root に出力するため、
   全体を包む #body_wrap に定義して確実に上書きします（近い親が優先）。
   ================================================================= */
:root,
#body_wrap {
	/* メインカラー（信頼感のあるブルー） */
	--color_main:        #1c6fd4;
	--color_main_dark:   #14529e;
	--color_main_thin:   #e8f1fc;

	/* グラデーション（ボタン・キービジュアル等） */
	--color_gradient1:   #1c6fd4;
	--color_gradient2:   #2f97e0;

	/* 派生：濃淡シェード */
	--color_deep01:      #14529e;
	--color_deep02:      #103f7c;
	--color_deep03:      #0d3565;
	--color_deep04:      #0a2a52;
	--color_pale01:      #eef5fd;
	--color_pale02:      #e2eefb;
	--color_pale03:      #f4f9fe;
	--color_pale04:      #fbfdff;

	/* テキスト・背景・境界線 */
	--color_text:        #243244;
	--color_bg:          #f3f7fc;
	--color_content_bg:  #ffffff;
	--color_border:      rgba(28, 111, 212, .14);
	--color_gray:        rgba(28, 111, 212, .05);
	--color_link:        var(--color_main);
	--color_htag:        #15294a;

	/* ヘッダー */
	--color_header_bg:   #ffffff;
	--color_header_text: #15294a;
	--color_gnav_bg:     #ffffff;

	/* フッター（ディープネイビー） */
	--color_footer_bg:   #0f2e5c;
	--color_footer_text: #d4e2f4;

	/* 独自トークン */
	--ds-navy:           #0f2e5c;
	--ds-radius:         14px;
	--ds-radius-sm:      10px;
	--ds-shadow:         0 6px 24px rgba(15, 46, 92, .08);
	--ds-shadow-hover:   0 14px 36px rgba(15, 46, 92, .16);
	--ds-ease:           .35s cubic-bezier(.22, .61, .36, 1);
}


/* =================================================================
   02. ベース
   ================================================================= */
html {
	scroll-behavior: smooth;
}

body {
	color: var(--color_text);
	background-color: var(--color_bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	letter-spacing: .02em;
	line-height: 1.85;
}

::selection {
	background: rgba(28, 111, 212, .18);
}

/* コンテンツ全体を白カードとして浮かせ、清潔感を演出 */
.l-mainContent {
	background-color: var(--color_content_bg);
	border-radius: var(--ds-radius);
	box-shadow: var(--ds-shadow);
}

/* 読みやすい行間 */
.post_content {
	line-height: 1.95;
}


/* =================================================================
   03. リンク
   ================================================================= */
a {
	transition: color var(--ds-ease), opacity var(--ds-ease), background-color var(--ds-ease);
}
.post_content a:not([class]) {
	color: var(--color_main_dark);
	text-decoration: none;
	background-image: linear-gradient(transparent 92%, rgba(28, 111, 212, .35) 0);
	background-size: 100% 100%;
	transition: background-size var(--ds-ease), color var(--ds-ease);
}
.post_content a:not([class]):hover {
	color: var(--color_main);
}


/* =================================================================
   04. ヘッダー / グローバルナビ
   ================================================================= */
.l-header {
	box-shadow: 0 1px 0 var(--color_border);
	backdrop-filter: saturate(140%) blur(6px);
	-webkit-backdrop-filter: saturate(140%) blur(6px);
}
.l-fixHeader,
.l-header__inner {
	transition: box-shadow var(--ds-ease), background-color var(--ds-ease);
}
.l-fixHeader {
	box-shadow: 0 6px 24px rgba(15, 46, 92, .10);
}

/* グローバルナビ：ホバーで下線がスッと伸びる */
.c-gnav__item > a {
	position: relative;
	font-weight: 600;
}
.c-gnav__item > a::after {
	content: "";
	position: absolute;
	left: 1em;
	right: 1em;
	bottom: .55em;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--color_gradient1), var(--color_gradient2));
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--ds-ease);
}
.c-gnav__item > a:hover::after,
.c-gnav__item.current-menu-item > a::after {
	transform: scaleX(1);
}


/* =================================================================
   05. メインビジュアル / ページタイトル / 見出し
   ================================================================= */
/* ページ見出し（下層ページ）：ブルーのアクセントライン */
.c-pageTitle {
	position: relative;
	padding-block: clamp(2rem, 5vw, 3.5rem);
}
.c-pageTitle__ttl,
.c-pageTitle .c-pageTitle__inner > .__title {
	font-weight: 700;
	letter-spacing: .04em;
}
.c-pageTitle__inner::after {
	content: "";
	display: block;
	width: 56px;
	height: 4px;
	margin: .9em auto 0;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--color_gradient1), var(--color_gradient2));
}

/* セクション見出し（c-secTitle） */
.c-secTitle {
	font-weight: 700;
	letter-spacing: .04em;
}

/* トップのタイトルエリア */
.l-topTitleArea {
	background:
		radial-gradient(120% 120% at 100% 0, rgba(47, 151, 224, .10) 0, transparent 55%),
		var(--color_pale03);
}


/* =================================================================
   06. ボタン
   ================================================================= */
.swell-block-button__link,
.c-mvBtn__btn,
.wp-block-button__link {
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: .04em;
	box-shadow: 0 8px 20px rgba(28, 111, 212, .22);
	transition: transform var(--ds-ease), box-shadow var(--ds-ease), filter var(--ds-ease);
}
.swell-block-button__link:hover,
.c-mvBtn__btn:hover,
.wp-block-button__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(28, 111, 212, .30);
	filter: saturate(112%);
}

/* 塗りボタンはブルーグラデーションに */
.swell-block-button.is-style-btn_normal .swell-block-button__link,
.c-mvBtn__btn {
	background: linear-gradient(120deg, var(--color_gradient1), var(--color_gradient2));
	border: none;
	color: #fff;
}


/* =================================================================
   07. 記事一覧カード
   ================================================================= */
.p-postList__item {
	border: 1px solid var(--color_border);
	border-radius: var(--ds-radius);
	background: var(--color_content_bg);
	overflow: hidden;
	box-shadow: var(--ds-shadow);
	transition: transform var(--ds-ease), box-shadow var(--ds-ease), border-color var(--ds-ease);
}
.p-postList__item:hover {
	transform: translateY(-4px);
	box-shadow: var(--ds-shadow-hover);
	border-color: rgba(28, 111, 212, .30);
}
/* サムネイルをゆっくりズーム */
.p-postList__thumb img {
	transition: transform .6s cubic-bezier(.22, .61, .36, 1);
}
.p-postList__item:hover .p-postList__thumb img {
	transform: scale(1.06);
}
.p-postList__body {
	padding: 1.1em 1.2em 1.3em;
}
.p-postList__title {
	font-weight: 700;
	line-height: 1.55;
}
/* カテゴリーラベル */
.p-postList__cat .cat-label,
.p-postList__cat a {
	background: var(--color_main_thin);
	color: var(--color_main_dark);
	border-radius: 999px;
	font-weight: 700;
}

/* アイキャッチ未設定記事：黒板＋マスコットのデフォルトカード */
.p-blackboardCard {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 6% 5%;
	background: linear-gradient(160deg, var(--color_pale01), var(--color_pale03));
	overflow: hidden;
}
.p-blackboardCard__board {
	position: relative;
	width: 100%;
	height: 78%;
	max-width: 92%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: .8em 1em;
	background: #2b3f38;
	background-image:
		radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
		linear-gradient(160deg, #33473f, #263831);
	background-size: 5px 5px, 100% 100%;
	border-radius: 10px;
	border: 10px solid #8a5a3a;
	box-shadow:
		inset 0 0 18px rgba(0, 0, 0, .45),
		0 6px 16px rgba(15, 46, 92, .12);
}
.p-blackboardCard__title {
	font-family: 'Yomogi', var(--ds-navy, sans-serif);
	color: #f4f1e6;
	font-size: 16px;
	line-height: 1.5;
	text-align: center;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	text-shadow: 0 0 6px rgba(244, 241, 230, .25);
}


/* =================================================================
   08. 本文コンテンツ（見出し・引用・表）
   ================================================================= */
/* 引用 */
.post_content blockquote {
	border-left: 4px solid var(--color_main);
	background: var(--color_pale03);
	border-radius: 0 var(--ds-radius-sm) var(--ds-radius-sm) 0;
}
/* テーブル */
.post_content table th {
	background: var(--color_pale01);
	color: var(--color_htag);
}
.post_content table th,
.post_content table td {
	border-color: var(--color_border);
}
/* 区切り線 */
.post_content hr {
	border: none;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--color_border), transparent);
}
/* 画像に柔らかい角丸 */
.post_content img:not([class*="emoji"]) {
	border-radius: var(--ds-radius-sm);
}


/* =================================================================
   09. ウィジェット / サイドバー
   ================================================================= */
.l-sidebar .c-widget {
	background: var(--color_content_bg);
	border: 1px solid var(--color_border);
	border-radius: var(--ds-radius);
	padding: 1.3em 1.3em 1.4em;
	box-shadow: var(--ds-shadow);
}
.c-widget__title.-side {
	border-bottom: 2px solid var(--color_main_thin);
	color: var(--color_htag);
	font-weight: 700;
}
.c-widget__title.-side::before {
	background: linear-gradient(180deg, var(--color_gradient1), var(--color_gradient2));
	border-radius: 3px;
}


/* =================================================================
   10. フッター
   ================================================================= */
.l-footer {
	background: var(--color_footer_bg);
	color: var(--color_footer_text);
	background-image:
		radial-gradient(80% 120% at 0 0, rgba(47, 151, 224, .18) 0, transparent 50%),
		radial-gradient(80% 120% at 100% 100%, rgba(28, 111, 212, .20) 0, transparent 50%);
}
.l-footer a {
	color: var(--color_footer_text);
}
.l-footer a:hover {
	color: #fff;
	opacity: 1;
}
.c-widget__title.-footer {
	color: #fff;
	letter-spacing: .05em;
}
.l-footer__foot {
	border-top: 1px solid rgba(255, 255, 255, .12);
}
/* コピーライト */
.c-copyright,
.l-footer__foot .u-fz-12 {
	opacity: .8;
}
/* ページトップボタン */
.w-pageTop a {
	border-radius: var(--ds-radius-sm);
	box-shadow: 0 8px 20px rgba(15, 46, 92, .25);
}


/* =================================================================
   11. アクセシビリティ / 仕上げ
   ================================================================= */
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
	outline: 3px solid rgba(28, 111, 212, .55);
	outline-offset: 2px;
	border-radius: 4px;
}
/* 動きを減らす設定の利用者に配慮 */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition-duration: .001ms !important; }
}


/* =================================================================
   12. レスポンシブ（スマホ対応）  ※SWELL準拠：960px / 600px
   ================================================================= */

/* --- タブレット以下（〜959px）--- */
@media screen and (max-width: 959px) {
	.l-mainContent {
		border-radius: 0;
		box-shadow: none;
	}
}

/* --- スマートフォン（〜599px）--- */
@media screen and (max-width: 599px) {
	body {
		line-height: 1.8;
		letter-spacing: .01em;
	}
	.post_content {
		line-height: 1.9;
	}
	/* タッチしやすいボタンサイズ */
	.swell-block-button__link,
	.c-mvBtn__btn,
	.wp-block-button__link {
		width: 100%;
		justify-content: center;
		min-height: 52px;
		box-shadow: 0 6px 16px rgba(28, 111, 212, .22);
	}
	/* カード：余白と影を軽めに */
	.p-postList__item {
		border-radius: var(--ds-radius-sm);
		box-shadow: 0 4px 16px rgba(15, 46, 92, .08);
	}
	.p-postList__body {
		padding: .9em 1em 1.1em;
	}
	/* ページ見出しの余白を調整 */
	.c-pageTitle {
		padding-block: 1.8rem;
	}
	.c-pageTitle__inner::after {
		width: 44px;
		margin-top: .7em;
	}
	/* サイドウィジェット余白 */
	.l-sidebar .c-widget {
		padding: 1.1em 1.1em 1.2em;
	}
}


/* =================================================================
   13. トップページ（front-page.php）
   コンセプト：やさしい・親しみやすい / 写真ベース / 外国人雇用＝青・医療介護＝緑
   ================================================================= */

/* フロント用トークン（青＝外国人雇用 / 緑＝医療・介護） */
.home {
	--fp-blue:       #1c6fd4;
	--fp-blue-dark:  #14529e;
	--fp-blue-thin:  #eaf3fd;
	--fp-care:       #1fa492;
	--fp-care-dark:  #16806f;
	--fp-care-thin:  #e6f7f4;
	--fp-warm:       #d39433;
	--fp-warm-dark:  #a3701e;
	--fp-warm-thin:  #faf2e1;
	--fp-ink:        #1b2b44;
	--fp-radius:     22px;
	--fp-shadow:     0 18px 50px rgba(20, 60, 120, .10);
	--fp-shadow-sm:  0 10px 30px rgba(20, 60, 120, .08);
	--fp-ease:       .7s cubic-bezier(.22, .61, .36, 1);
}

/* トップは #content 上余白を消してヒーローをヘッダーへ密着 */
.home .l-content { padding-top: 0; }
/* 全幅セクションによる横スクロールを防止（sticky等は維持） */
.home { overflow-x: clip; }

/* セクション共通：画面幅いっぱいの帯 */
.p-fp-section,
.p-fp-cta {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3.6rem, 8vw, 6.5rem);
}

/* セクション見出し */
.p-fp-head { text-align: center; margin-bottom: clamp(2rem, 5vw, 3.4rem); }
.p-fp-head__en {
	font-size: .8rem; font-weight: 800; letter-spacing: .22em;
	color: var(--fp-blue); margin: 0 0 .5rem;
}
.p-fp-head__ja {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.7rem, 4vw, 2.4rem); font-weight: 600;
	color: var(--fp-ink); letter-spacing: .05em; margin: 0;
	line-height: 1.35;
}
.p-fp-head__ja::after {
	content: ""; display: block; width: 48px; height: 4px; margin: .8rem auto 0;
	border-radius: 4px; background: linear-gradient(90deg, var(--fp-blue), var(--fp-care));
}
.p-fp-head__lead {
	margin: 1rem 0 0; color: #5a6677; font-size: .98rem; line-height: 1.9;
}


/* -----------------------------------------------------------------
   SWELL メインビジュアル — 白のグラデーションヴェール（ポスター型）
   箱型パネルはやめ、写真の左端から白が溶け込む帯の上に藍色文字を置く。
   タイトル＋本文＋CTAのDOM構築は front.js（.mv-panel / .mv-actions）。
   ----------------------------------------------------------------- */

/* SWELL側のオーバーレイは撤去 */
#main_visual .c-filterLayer::before { display: none !important; }

/* 左端から溶け込む白のヴェール（写真と同じ寒色系の白） */
.p-mainVisual__slide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		97deg,
		rgba(248, 250, 252, .96) 0%,
		rgba(248, 250, 252, .88) 30%,
		rgba(248, 250, 252, .55) 52%,
		rgba(248, 250, 252, 0) 72%
	);
}

/* 画像：空が主役になるよう少し下げてトリミング */
#main_visual .p-mainVisual__img { object-position: 50% 46%; }

/* 文字ブロック：空側（上寄り）に置く */
#main_visual .p-mainVisual__textLayer {
	color: #1a3a55 !important;
	text-shadow: none !important;
	justify-content: flex-start;
	align-items: flex-start;
	padding-top: clamp(1.6rem, 3.2vw, 3.2rem);
}

/* 文字の器（箱の装飾は持たない） */
#main_visual .mv-panel {
	max-width: min(100%, 44rem);
	color: #1a3a55;
}

/* パネル内CTA */
#main_visual .mv-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .65rem .75rem;
	margin-top: 1.2rem;
}
#main_visual .mv-btn {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	padding: .72em 1.45em;
	border-radius: 999px;
	font-size: .86rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1;
	text-decoration: none;
	transition: transform .3s, box-shadow .3s, border-color .3s;
}
#main_visual .mv-btn--form {
	color: #fff;
	background: linear-gradient(120deg, #c75e10, #e88220);
	box-shadow: 0 10px 22px rgba(180, 80, 10, .26);
}
#main_visual .mv-btn--form:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(180, 80, 10, .36);
	color: #fff;
}
#main_visual .mv-btn--line {
	color: #0f7a43;
	background: #fff;
	border: 1.5px solid rgba(6, 199, 85, .5);
}
#main_visual .mv-btn--line:hover {
	transform: translateY(-2px);
	border-color: #06c755;
	box-shadow: 0 8px 20px rgba(6, 199, 85, .18);
	color: #0f7a43;
}

/* 安心材料の3点（CTA直下に小さく） */
#main_visual .mv-points {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem 1.1rem;
	list-style: none;
	margin: .8rem 0 0;
	padding: 0;
}
#main_visual .mv-points li {
	position: relative;
	padding-left: 1.15em;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	color: #3d6182;
}
#main_visual .mv-points li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: #1fa492;
}

#main_visual .p-mainVisual__slideTitle {
	font-size: clamp(1.4rem, 2.5vw, 2.15rem);
	font-weight: 600;
	letter-spacing: .16em;
	line-height: 1.45;
	font-feature-settings: "palt";
}
#main_visual .p-mainVisual__slideTitle::after {
	content: "";
	display: block;
	width: 2.6rem;
	height: 1px;
	background: currentColor;
	opacity: .4;
	margin: .85rem 0 0;
}

#main_visual .p-mainVisual__slideText {
	font-size: clamp(.8rem, 1.1vw, .93rem);
	letter-spacing: .06em;
	line-height: 1.95;
	margin-top: .8rem;
	color: #2b5271;
	max-width: 40em;
}
/* 空行用の <br>（直下のみ）は詰める。JS が挿入する文節改行は生かす */
#main_visual .p-mainVisual__slideText > br { display: none; }
#main_visual .mv-lead { display: block; }
/* 資格名の行はタイトルと同じ藍で一段立たせる */
#main_visual .mv-quals {
	font-size: 1.18em;
	font-weight: 600;
	letter-spacing: .11em;
	color: #17364e;
}
#main_visual .mv-area {
	display: block;
	margin-top: .6rem;
	font-size: .7rem;
	letter-spacing: .15em;
	color: #3d6182;
}

/* 動き：ゆっくり寄って静止するズーム＋帯のフェードアップ */
@media (prefers-reduced-motion: no-preference) {
	#main_visual .p-mainVisual__imgLayer {
		animation: mv-zoom-settle 8s cubic-bezier(.16,.55,.24,1) both;
		will-change: transform;
	}
	/* JS有効時：帯を組む前の生テキストのチラ見えを防ぐため初期状態で隠す
	   （直後に下のフェードイン animation が opacity を 0→1 に引き継ぐ） */
	.has-js-mv #main_visual .p-mainVisual__slideTitle,
	.has-js-mv #main_visual .p-mainVisual__slideText { opacity: 0; }
	/* 帯の中身を、タイトル→本文→ボタン→✓の順にひと呼吸ずつ遅らせてフェードイン */
	#main_visual .mv-panel > * {
		animation: mv-soft-in 1.05s cubic-bezier(.22,.61,.36,1) both;
	}
	#main_visual .mv-panel > :nth-child(1) { animation-delay: .35s; }  /* タイトル */
	#main_visual .mv-panel > :nth-child(2) { animation-delay: .58s; }  /* 資格・リード・エリア */
	#main_visual .mv-panel > :nth-child(3) { animation-delay: .81s; }  /* CTAボタン */
	#main_visual .mv-panel > :nth-child(4) { animation-delay: 1.02s; } /* ✓ 3点 */
}
@keyframes mv-zoom-settle {
	from { transform: scale(1.06); }
	to   { transform: scale(1); }
}
@keyframes mv-soft-in {
	from { opacity: 0; transform: translateY(14px); }
	to   { opacity: 1; transform: none; }
}

/* スマホ：1行に収まる文字サイズ・字間に落とす。ヴェールは上→下のフェードに */
@media (max-width: 599px) {
	.p-mainVisual__slide::after {
		background: linear-gradient(
			180deg,
			rgba(248, 250, 252, .96) 0%,
			rgba(248, 250, 252, .88) 40%,
			rgba(248, 250, 252, .5) 62%,
			rgba(248, 250, 252, 0) 80%
		);
	}
	#main_visual .p-mainVisual__textLayer { padding-top: 1.4rem; }
	#main_visual .p-mainVisual__slideTitle {
		font-size: 1.22rem;
		letter-spacing: .1em;
	}
	#main_visual .p-mainVisual__slideText {
		font-size: .78rem;
		letter-spacing: .02em;
		line-height: 1.8;
	}
	#main_visual .mv-quals {
		font-size: 1.12em;
		letter-spacing: .05em;
	}
	#main_visual .mv-area {
		font-size: .64rem;
		letter-spacing: .04em;
		margin-top: .45rem;
	}
	#main_visual .mv-actions { margin-top: .85rem; gap: .5rem; }
	#main_visual .mv-btn { font-size: .78rem; padding: .68em 1.1em; }
}

.p-mainVisual__textLayer { z-index: 3; }

/* -----------------------------------------------------------------
   ブリッジ（MV直下の静かな導入文。旧キャッチバンドの置き換え）
   写真ヒーローの続きとして、淡い地に藍の明朝で理念の一文だけを置く。
   ----------------------------------------------------------------- */
.p-fp-bridge {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	background: #fbfcfe;
	padding: clamp(3rem, 6.5vw, 5rem) 0;
	text-align: center;
}

.p-fp-bridge__sub {
	display: inline-flex;
	align-items: center;
	gap: .7rem;
	font-size: clamp(.7rem, 1.3vw, .8rem);
	font-weight: 700;
	color: #5a7a99;
	letter-spacing: .2em;
	margin: 0 0 1.1rem;
}
.p-fp-bridge__sub::before,
.p-fp-bridge__sub::after {
	content: "";
	width: 26px;
	height: 1px;
	background: currentColor;
	opacity: .45;
}

.p-fp-bridge__title {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.55rem, 3.4vw, 2.35rem);
	font-weight: 600;
	color: #17364e;
	letter-spacing: .08em;
	line-height: 1.55;
	margin: 0 0 1.1rem;
}
.p-fp-bridge__em {
	position: relative;
	white-space: nowrap;
}
.p-fp-bridge__em::after {
	content: "";
	position: absolute;
	left: 0; right: 0;
	bottom: -.08em;
	height: .12em;
	border-radius: 4px;
	background: linear-gradient(90deg, rgba(28,111,212,.35), rgba(31,164,146,.35));
}

.p-fp-bridge__lead {
	font-size: clamp(.88rem, 1.4vw, .98rem);
	color: #5a6677;
	line-height: 1.95;
	margin: 0;
}

/* 旧HEROクラスの残骸を念のため非表示 */
.p-fp-hero { display: none !important; }


/* -----------------------------------------------------------------
   ボタン（フロント共通）
   ----------------------------------------------------------------- */
.p-fp-btn {
	display: inline-flex; align-items: center; gap: .55em; padding: .95em 2em;
	border-radius: 999px; font-weight: 700; letter-spacing: .03em; text-decoration: none;
	transition: transform var(--fp-ease), box-shadow var(--fp-ease), background-color .3s, color .3s;
}
.p-fp-btn svg { transition: transform .3s; }
.p-fp-btn:hover svg { transform: translateX(4px); }
.p-fp-btn--primary {
	color: #fff; background: linear-gradient(120deg, #c75e10, #e88220);
	box-shadow: 0 12px 26px rgba(180, 80, 10, .32);
}
.p-fp-btn--primary:hover { transform: translateY(-3px); box-shadow: 0 18px 36px rgba(180, 80, 10, .44); }
.p-fp-btn--ghost {
	color: var(--fp-blue-dark); background: #fff; border: 1.5px solid #cfe0f5;
}
.p-fp-btn--ghost:hover { transform: translateY(-3px); border-color: var(--fp-blue); box-shadow: var(--fp-shadow-sm); }
.p-fp-btn--white,
.home .p-fp-cta .p-fp-btn--white,
.home .p-fp-btn--white:link,
.home .p-fp-btn--white:visited { color: #14529e !important; background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.home .p-fp-btn--white svg { color: #14529e !important; stroke: #14529e !important; }
.p-fp-btn--white:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0,0,0,.26); }


/* -----------------------------------------------------------------
   SERVICES
   ----------------------------------------------------------------- */
.p-fp-services { background: #ffffff; }
.p-fp-services__grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(1.4rem, 3vw, 2.2rem);
}
.p-fp-card {
	position: relative; padding: clamp(1.8rem, 3vw, 2.6rem); border-radius: var(--fp-radius);
	background: #fff; border: 1px solid #e8eef6; box-shadow: var(--fp-shadow-sm); overflow: hidden;
	transition: transform var(--fp-ease), box-shadow var(--fp-ease);
}
.p-fp-card::before {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 6px;
	background: var(--_accent, var(--fp-blue));
}
.p-fp-card--blue {
	--_accent: linear-gradient(90deg, var(--fp-blue), #2f97e0);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260' fill='none'%3E%3Ccircle cx='200' cy='160' r='100' stroke='%231c6fd4' stroke-width='2' opacity='0.12'/%3E%3Cellipse cx='200' cy='160' rx='45' ry='100' stroke='%231c6fd4' stroke-width='1.5' opacity='0.1'/%3E%3Cpath d='M100 120 Q200 105 300 120' stroke='%231c6fd4' stroke-width='1' opacity='0.1'/%3E%3Cpath d='M100 160 Q200 145 300 160' stroke='%231c6fd4' stroke-width='1' opacity='0.1'/%3E%3Cpath d='M100 200 Q200 185 300 200' stroke='%231c6fd4' stroke-width='1' opacity='0.1'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right bottom; background-size: 65%;
}
.p-fp-card--care {
	--_accent: linear-gradient(90deg, var(--fp-care), #46c9b8);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260' fill='none'%3E%3Crect x='92' y='30' width='50' height='160' rx='14' fill='%231fa492' opacity='0.1'/%3E%3Crect x='30' y='92' width='160' height='50' rx='14' fill='%231fa492' opacity='0.1'/%3E%3Ccircle cx='215' cy='215' r='35' stroke='%231fa492' stroke-width='2' opacity='0.09'/%3E%3Ccircle cx='28' cy='28' r='18' fill='%231fa492' opacity='0.06'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right bottom; background-size: 65%;
}
.p-fp-card--warm {
	--_accent: linear-gradient(90deg, var(--fp-warm), #e6b052);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260'%3E%3Ccircle cx='200' cy='80' r='90' fill='%23d39433' opacity='0.1'/%3E%3Ccircle cx='90' cy='210' r='65' fill='%23e8a83e' opacity='0.08'/%3E%3Ccircle cx='210' cy='210' r='40' fill='%23d39433' opacity='0.06'/%3E%3Ccircle cx='20' cy='130' r='30' fill='%23d39433' opacity='0.05'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right bottom; background-size: 65%;
}
.p-fp-card--health {
	--_accent: linear-gradient(90deg, #2e9e6b, #4fc38a);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 260 260' fill='none'%3E%3Ccircle cx='195' cy='195' r='80' stroke='%232e9e6b' stroke-width='2' opacity='0.11'/%3E%3Ccircle cx='195' cy='195' r='45' stroke='%232e9e6b' stroke-width='1.5' opacity='0.08'/%3E%3Crect x='150' y='100' width='30' height='80' rx='6' fill='%232e9e6b' opacity='0.07'/%3E%3Crect x='120' y='130' width='90' height='30' rx='6' fill='%232e9e6b' opacity='0.07'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right bottom; background-size: 65%;
}
.p-fp-card:hover { transform: translateY(-6px); box-shadow: var(--fp-shadow); }
.p-fp-card__icon {
	display: grid; place-items: center; width: 64px; height: 64px; border-radius: 18px; margin-bottom: 1.2rem;
}
.p-fp-card--blue .p-fp-card__icon { background: var(--fp-blue-thin); color: var(--fp-blue); }
.p-fp-card--care .p-fp-card__icon { background: var(--fp-care-thin); color: var(--fp-care); }
.p-fp-card--warm .p-fp-card__icon { background: var(--fp-warm-thin); color: var(--fp-warm); }
.p-fp-card--health .p-fp-card__icon { background: #d6f2e6; color: #2e9e6b; }
.p-fp-card__title { font-size: clamp(1.2rem, 2.4vw, 1.5rem); font-weight: 800; color: var(--fp-ink); margin: 0 0 .7rem; }
.p-fp-card__desc { color: #5a6677; line-height: 1.9; margin: 0 0 1.3rem; }
.p-fp-card__list { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .65rem; }
.p-fp-card__list li {
	position: relative; padding-left: 1.7em; color: #36465c; font-weight: 600; font-size: .95rem;
}
.p-fp-card__list li::before {
	content: ""; position: absolute; left: 0; top: .15em; width: 1.2em; height: 1.2em; border-radius: 50%;
}
.p-fp-card--blue .p-fp-card__list li::before { background: var(--fp-blue-thin); }
.p-fp-card--care .p-fp-card__list li::before { background: var(--fp-care-thin); }
.p-fp-card--warm .p-fp-card__list li::before { background: var(--fp-warm-thin); }
.p-fp-card--health .p-fp-card__list li::before { background: #d6f2e6; }
.p-fp-card__list li::after {
	content: ""; position: absolute; left: .3em; top: .42em; width: .6em; height: .35em;
	border-left: 2px solid; border-bottom: 2px solid; transform: rotate(-45deg);
}
.p-fp-card--blue .p-fp-card__list li::after { color: var(--fp-blue); }
.p-fp-card--care .p-fp-card__list li::after { color: var(--fp-care); }
.p-fp-card--warm .p-fp-card__list li::after { color: var(--fp-warm); }
.p-fp-card--health .p-fp-card__list li::after { color: #2e9e6b; }
.p-fp-card__link {
	display: inline-flex; align-items: center; gap: .4em; font-weight: 800; text-decoration: none;
}
.p-fp-card--blue .p-fp-card__link { color: var(--fp-blue-dark); }
.p-fp-card--care .p-fp-card__link { color: var(--fp-care-dark); }
.p-fp-card--warm .p-fp-card__link { color: var(--fp-warm-dark); }
.p-fp-card--health .p-fp-card__link { color: #1e7a50; }
.p-fp-card__link i { transition: transform .3s; }
.p-fp-card__link:hover i { transform: translateX(5px); }


/* -----------------------------------------------------------------
   WHY US
   ----------------------------------------------------------------- */
.p-fp-why { background: linear-gradient(180deg, #eef5fd, #f4f9ff); }
.p-fp-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(1.1rem, 2.4vw, 1.8rem); align-items: stretch; }
.p-fp-feature {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid #e8eef6; border-radius: var(--fp-radius); padding: 2.2rem 1.8rem;
	box-shadow: var(--fp-shadow-sm); text-align: left; position: relative; overflow: hidden;
	transition: transform var(--fp-ease), box-shadow var(--fp-ease);
}
.p-fp-feature::before {
	content: ""; position: absolute; inset: 0 0 auto 0; height: 5px;
	background: linear-gradient(90deg, var(--fp-blue), var(--fp-care));
}
.p-fp-feature:hover { transform: translateY(-6px); box-shadow: var(--fp-shadow); }
.p-fp-feature__num {
	display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 1.1rem;
	flex-shrink: 0; align-self: flex-start;
	border-radius: 14px; font-weight: 800; font-size: 1.15rem; color: #fff;
	background: #1c6fd4;
	background: linear-gradient(135deg, #1c6fd4, #1fa492);
	box-shadow: 0 8px 18px rgba(28, 111, 212, .32);
}
.p-fp-feature__title { font-size: 1.12rem; font-weight: 800; color: var(--fp-ink); margin: 0 0 .4rem; line-height: 1.55; }
.p-fp-feature__en {
	font-size: .72rem; font-weight: 700; letter-spacing: .04em; color: var(--fp-blue);
	margin: 0 0 .9rem; padding-bottom: .9rem; border-bottom: 1px solid #eef2f8; line-height: 1.5;
}
.p-fp-feature__desc { color: #5a6677; font-size: .92rem; line-height: 1.9; margin: 0; }


/* -----------------------------------------------------------------
   GREETING ／ 代表挨拶
   ----------------------------------------------------------------- */
.p-fp-greeting { background: #ffffff; }

.p-fp-greeting__inner {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: start;
}

.p-fp-greeting__photo {
	position: sticky;
	top: 2rem;
}

.p-fp-greeting__photo img {
	width: 100%;
	height: auto;
	border-radius: 16px;
	object-fit: cover;
	display: block;
}

.p-fp-greeting__photo-placeholder {
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #eaf3fd;
	border: 2px dashed #b8d4f0;
	aspect-ratio: 4/5;
	gap: .5rem;
	color: #7a9fc4;
	font-size: .85rem;
	font-weight: 600;
}

.p-fp-greeting__photo-placeholder svg {
	width: 60%;
	height: auto;
	opacity: .5;
}

.p-fp-greeting__lead {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.2rem, 2.6vw, 1.6rem);
	font-weight: 600;
	color: var(--fp-ink, #1a2b45);
	letter-spacing: .03em;
	line-height: 1.6;
	margin: 0 0 1.4rem;
	padding-bottom: 1rem;
	border-bottom: 3px solid;
	border-image: linear-gradient(90deg, var(--fp-blue, #1c6fd4), var(--fp-care, #1fa492)) 1;
}
.p-fp-greeting__lead-em {
	background: linear-gradient(90deg, var(--fp-blue, #1c6fd4), var(--fp-care, #1fa492));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-weight: 700;
}

/* editorial 統一：主要見出しを明朝に */
.p-fp-card__title,
.p-fp-feature__title,
.p-fp-step__title {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-weight: 700;
	letter-spacing: .02em;
}

.p-fp-greeting__text { margin: 0 0 1.6rem; }
.p-fp-greeting__text p { color: #3a4a5e; line-height: 1.95; margin: 0 0 1rem; font-size: .97rem; }
.p-fp-greeting__text p:last-child { margin: 0; }

.p-fp-greeting__list {
	list-style: none;
	padding: 0;
	margin: .6rem 0 1rem;
	display: flex;
	flex-direction: column;
	gap: .45rem;
}

.p-fp-greeting__list li {
	padding-left: 1.4em;
	position: relative;
	color: #3a4a5e;
	font-size: .95rem;
	line-height: 1.7;
}

.p-fp-greeting__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .6em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--fp-blue, #1c6fd4), var(--fp-care, #1fa492));
}

.p-fp-greeting__sig {
	padding-top: 1.4rem;
	border-top: 1px solid #dce8f5;
	text-align: right;
}

.p-fp-greeting__office {
	font-size: .85rem;
	color: #6b7f96;
	margin: 0 0 .25rem;
	letter-spacing: .04em;
}

.p-fp-greeting__name {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--fp-ink, #1b2b44);
	letter-spacing: .06em;
	margin: 0;
}

/* スマホ */
@media (max-width: 680px) {
	.p-fp-greeting__inner {
		grid-template-columns: 1fr;
	}
	.p-fp-greeting__photo {
		position: static;
		max-width: 200px;
		margin: 0 auto;
	}
	.p-fp-greeting__lead {
		font-size: 1.1rem;
	}
}

/* -----------------------------------------------------------------
   FLOW
   ----------------------------------------------------------------- */
.p-fp-flow { background: #ffffff; }
.p-fp-flow__list {
	list-style: none; margin: 0; padding: 28px 0 0;
	display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.1rem, 2.4vw, 1.8rem);
	counter-reset: none; position: relative;
}
.p-fp-step {
	position: relative; background: #f6faff; border: 1px solid #e6eef8; border-radius: var(--fp-radius);
	padding: 2.2rem 1.4rem 1.6rem; text-align: center;
}
.p-fp-step__num {
	position: absolute; top: -22px; left: 50%; transform: translateX(-50%);
	display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px;
	font-weight: 800; font-size: 1rem; color: #fff;
	background: #1c6fd4;
	background: linear-gradient(135deg, #1c6fd4, #1fa492);
	box-shadow: 0 10px 20px rgba(28, 111, 212, .35);
}
.p-fp-step__title { font-size: 1.05rem; font-weight: 800; color: var(--fp-ink); margin: .4rem 0 .5rem; }
.p-fp-step__desc { color: #5a6677; font-size: .88rem; line-height: 1.85; margin: 0; }
/* ステップ間の矢印（PC） */
.p-fp-step:not(:last-child)::after {
	content: ""; position: absolute; top: 50%; right: -14px; width: 12px; height: 12px;
	border-top: 2px solid #c3d6ee; border-right: 2px solid #c3d6ee; transform: translateY(-50%) rotate(45deg); z-index: 1;
}


/* -----------------------------------------------------------------
   FAQ
   ----------------------------------------------------------------- */
.p-fp-faq { background: linear-gradient(180deg, #f1f7fe, #eef5fd); }
.p-fp-faq__inner { max-width: 820px; }
.p-fp-faq__list { display: grid; gap: 1rem; }
.p-fp-qa {
	background: #fff; border: 1px solid #e6eef8; border-radius: 16px; overflow: hidden;
	box-shadow: var(--fp-shadow-sm);
}
.p-fp-qa__q {
	display: flex; align-items: center; gap: .8rem; cursor: pointer; list-style: none;
	padding: 1.15rem 1.3rem; font-weight: 700; color: var(--fp-ink); line-height: 1.6;
}
.p-fp-qa__q::-webkit-details-marker { display: none; }
.p-fp-qa__q > span {
	flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px;
	background: var(--fp-blue-thin); color: var(--fp-blue); font-weight: 800; font-size: .9rem;
}
.p-fp-qa__mark { flex: none; margin-left: auto; width: 14px; height: 14px; position: relative; }
.p-fp-qa__mark::before, .p-fp-qa__mark::after {
	content: ""; position: absolute; background: var(--fp-blue); border-radius: 2px;
	top: 50%; left: 50%; transform: translate(-50%,-50%);
}
.p-fp-qa__mark::before { width: 14px; height: 2px; }
.p-fp-qa__mark::after { width: 2px; height: 14px; transition: transform .3s; }
.p-fp-qa[open] .p-fp-qa__mark::after { transform: translate(-50%,-50%) scaleY(0); }
.p-fp-qa__a {
	display: flex; gap: .8rem; padding: 0 1.3rem 1.2rem; color: #51607a; line-height: 1.9;
	animation: fpFade .4s ease;
}
.p-fp-qa__a > span {
	flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px;
	background: var(--fp-care-thin); color: var(--fp-care); font-weight: 800; font-size: .9rem;
}
.p-fp-qa__a p { margin: .25rem 0 0; }


/* -----------------------------------------------------------------
   CTA
   ----------------------------------------------------------------- */
.p-fp-cta {
	color: #fff; position: relative; overflow: hidden;
	background: linear-gradient(120deg, #103f7c 0%, #1c6fd4 55%, #1fa492 130%);
}
.p-fp-cta::before {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(60% 80% at 12% 20%, rgba(255,255,255,.16), transparent 60%),
		radial-gradient(50% 80% at 90% 90%, rgba(43,191,172,.3), transparent 60%);
	pointer-events: none;
}
.p-fp-cta__inner {
	position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 2rem;
	padding-right: clamp(0px, 12vw, 170px); /* マスコット分の余白 */
}
@media (max-width: 900px) {
	.p-fp-cta__inner { padding-right: 0; }
}
.p-fp-cta__en { font-size: .78rem; font-weight: 800; letter-spacing: .24em; color: #bfe6ff; margin: 0 0 .6rem; }
.p-fp-cta__title { font-size: clamp(1.6rem, 3.4vw, 2.3rem); font-weight: 800; margin: 0 0 .8rem; line-height: 1.4; }
.p-fp-cta__text { margin: 0; color: rgba(255,255,255,.9); line-height: 1.9; }
.p-fp-cta__actions { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.p-fp-cta__tel { color: #fff; text-decoration: none; line-height: 1.3; display: flex; align-items: center; gap: 1rem; }
.p-fp-cta__tel-icon {
	display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; flex-shrink: 0;
	background: rgba(255,255,255,.18); border: 1.5px solid rgba(255,255,255,.38); color: #fff;
}
.p-fp-cta__tel small { display: block; font-size: .76rem; color: rgba(255,255,255,.8); letter-spacing: .1em; }
.p-fp-cta__tel strong { font-size: 1.7rem; font-weight: 800; letter-spacing: .02em; }




/* -----------------------------------------------------------------
   アニメーション定義
   ----------------------------------------------------------------- */
@keyframes fpFloat   { 0%,100% { transform: translate(0,0); } 50% { transform: translate(10px,-20px); } }
@keyframes fpFloatY  { 0%,100% { transform: translateY(0); }  50% { transform: translateY(-14px); } }
@keyframes fpKenBurns{ 0% { transform: scale(1.02); } 100% { transform: scale(1.1); } }
@keyframes fpScroll  { 0% { top: -50%; } 100% { top: 100%; } }
@keyframes fpFade    { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }


/* =================================================================
   14. スクロール出現アニメーション（[data-reveal]）
   ================================================================= */
[data-reveal] {
	opacity: 0; transform: translateY(34px);
	transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
}
[data-reveal].is-visible { opacity: 1; transform: none; }

/* 同一グリッド内の要素を少しずつ遅らせて出現（スタッガー） */
.p-fp-services__grid > [data-reveal]:nth-child(2) { transition-delay: .12s; }
.p-fp-services__grid > [data-reveal]:nth-child(3) { transition-delay: .24s; }
.p-fp-why__grid > [data-reveal]:nth-child(2)  { transition-delay: .08s; }
.p-fp-why__grid > [data-reveal]:nth-child(3)  { transition-delay: .16s; }
.p-fp-why__grid > [data-reveal]:nth-child(4)  { transition-delay: .24s; }
.p-fp-flow__list > [data-reveal]:nth-child(2) { transition-delay: .08s; }
.p-fp-flow__list > [data-reveal]:nth-child(3) { transition-delay: .16s; }
.p-fp-flow__list > [data-reveal]:nth-child(4) { transition-delay: .24s; }
.p-fp-faq__list > [data-reveal]:nth-child(2)  { transition-delay: .06s; }
.p-fp-faq__list > [data-reveal]:nth-child(3)  { transition-delay: .12s; }
.p-fp-faq__list > [data-reveal]:nth-child(4)  { transition-delay: .18s; }
/* =================================================================
   15. トップページ レスポンシブ
   ================================================================= */
@media screen and (max-width: 959px) {
	.p-fp-flow__list { grid-template-columns: repeat(2, 1fr); gap: 3.2rem 1.4rem; }
	.p-fp-step:not(:last-child)::after { display: none; }
}

@media screen and (max-width: 599px) {
	.p-fp-btn { width: 100%; justify-content: center; min-height: 54px; }
	.p-fp-services__grid,
	.p-fp-why__grid,
	.p-fp-flow__list { grid-template-columns: 1fr; }
	.p-fp-flow__list { gap: 3.2rem; }
	.p-fp-cta__inner { flex-direction: column; align-items: stretch; text-align: center; }
	.p-fp-cta__actions { align-items: stretch; }
	.p-fp-cta__tel { text-align: center; }
}

/* 動きを減らす設定では演出を停止 */
@media (prefers-reduced-motion: reduce) {
	[data-reveal] { opacity: 1 !important; transform: none !important; }
}


/* =================================================================
   16. 登録支援機関様へ（page-partner.php）
   ================================================================= */

/* ----- トークン（トップ共通変数を継承） ----- */
.page-id-502 {
	--pp-blue:      #1c6fd4;
	--pp-blue-dark: #14529e;
	--pp-teal:      #1fa492;
	--pp-ink:       #1b2b44;
	--pp-ease:      cubic-bezier(.22,.61,.36,1);
}

/* ----- HERO ----- */
.pp-hero {
	position: relative;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	min-height: 35vh;
	display: flex;
	align-items: center;
	overflow: hidden;
	isolation: isolate;
	background: linear-gradient(140deg, #071e3d 0%, #0f3a6e 45%, #1a5e9e 100%);
}

.pp-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 70% 60% at 80% 40%, rgba(28,111,212,.35), transparent 65%),
		radial-gradient(ellipse 50% 70% at 10% 80%, rgba(31,164,146,.25), transparent 60%);
	z-index: -1;
}

.pp-hero__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(255,255,255,.03) 40px),
		repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(255,255,255,.03) 40px);
}

.pp-hero__inner {
	position: relative;
	z-index: 1;
	padding-block: clamp(2rem, 5vh, 3.5rem);
}

.pp-hero__en {
	font-size: clamp(.62rem, 1.2vw, .76rem);
	font-weight: 800;
	letter-spacing: .24em;
	color: rgba(191,230,255,.7);
	margin: 0 0 1rem;
}

.pp-hero__title {
	font-size: clamp(2.2rem, 6vw, 4.4rem);
	font-weight: 900;
	line-height: 1.25;
	color: #fff;
	margin: 0 0 1.2rem;
	letter-spacing: .02em;
}

.pp-hero__hl {
	background: linear-gradient(90deg, #3aa0ea, #52cdba);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.pp-hero__sub {
	font-size: clamp(1rem, 2vw, 1.25rem);
	color: rgba(255,255,255,.8);
	margin: 0 0 2.4rem;
	font-weight: 500;
	letter-spacing: .04em;
}

.pp-hero__scroll {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
}
.pp-hero__scroll span {
	display: block;
	width: 1px;
	height: 48px;
	background: linear-gradient(to bottom, transparent, rgba(255,255,255,.5));
	margin: 0 auto;
	animation: ppScrollLine 2s ease-in-out infinite;
}
@keyframes ppScrollLine {
	0%   { transform: scaleY(0); transform-origin: top; }
	50%  { transform: scaleY(1); transform-origin: top; }
	51%  { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ----- ボタン共通 ----- */
.pp-btn {
	display: inline-flex;
	align-items: center;
	gap: .55em;
	padding: .9em 2em;
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: .03em;
	text-decoration: none;
	transition: transform .3s var(--pp-ease), box-shadow .3s var(--pp-ease);
}
.pp-btn--primary {
	color: #fff;
	background: linear-gradient(120deg, #c75e10, #e88220);
	box-shadow: 0 10px 26px rgba(180,80,10,.32);
}
.pp-btn--primary:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(180,80,10,.44); }

.pp-btn--outline {
	color: var(--pp-blue);
	border: 2px solid var(--pp-blue);
	background: transparent;
}
.pp-btn--outline:hover { background: var(--pp-blue); color: #fff; }

/* ----- セクション共通 ----- */
.pp-section {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3.5rem, 8vw, 6rem);
}

.pp-section-head {
	text-align: center;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.pp-section-head__en {
	display: block;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .24em;
	color: var(--pp-blue);
	margin-bottom: .5rem;
}
.pp-section-head__ja {
	font-size: clamp(1.7rem, 4vw, 2.4rem);
	font-weight: 800;
	color: var(--pp-ink);
	letter-spacing: .04em;
	margin: 0;
	line-height: 1.3;
}
.pp-section-head__ja::after {
	content: "";
	display: block;
	width: 48px;
	height: 4px;
	margin: .8rem auto 0;
	border-radius: 4px;
	background: linear-gradient(90deg, var(--pp-blue), var(--pp-teal));
}
.pp-section-head__lead {
	margin: .8rem 0 0;
	color: #5a6677;
	font-size: 1rem;
}

/* ----- LAW BAND（改正行政書士法：最大のフック） ----- */
.pp-lawband { background: #fbfcfe; }
.pp-lawband__inner { max-width: 880px; margin: 0 auto; }

.pp-lawband__head {
	text-align: center;
	margin-bottom: clamp(1.8rem, 4vw, 2.6rem);
}
.pp-lawband__badge {
	display: inline-block;
	margin-bottom: 1.1rem;
	padding: .4em 1.1em;
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .08em;
	color: #c0392b;
	background: #fdeceb;
	border: 1px solid rgba(192,57,43,.25);
	border-radius: 999px;
}
.pp-lawband__title {
	font-size: clamp(1.5rem, 3.6vw, 2.3rem);
	font-weight: 800;
	color: var(--pp-ink);
	line-height: 1.55;
	letter-spacing: .02em;
	margin: 0;
}
.pp-lawband__title-em {
	/* 禁止という事実を、赤いマーカーで静かに強調 */
	background: linear-gradient(transparent 62%, rgba(232,68,68,.18) 0);
	padding: 0 .1em;
}

.pp-lawband__pivot {
	max-width: 760px;
	margin: 0 auto;
	background: #fff;
	border-left: 4px solid var(--pp-blue, #1c6fd4);
	border-radius: 0 14px 14px 0;
	padding: clamp(1.4rem, 3vw, 1.9rem) clamp(1.5rem, 3vw, 2rem);
	box-shadow: 0 12px 34px rgba(20,60,120,.08);
}
.pp-lawband__pivot-lead {
	font-size: clamp(1.05rem, 2.2vw, 1.28rem);
	font-weight: 800;
	color: var(--pp-blue-dark, #14529e);
	letter-spacing: .02em;
	margin: 0 0 .7rem;
}
.pp-lawband__pivot-text {
	font-size: .95rem;
	line-height: 1.95;
	color: #4a5a72;
	margin: 0;
}

/* ----- ROLE ----- */
.pp-role { background: #ffffff; }
.pp-role__grid {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: 2rem;
	align-items: center;
}
.pp-role__card {
	border-radius: 20px;
	padding: 2rem 1.8rem;
	box-shadow: 0 16px 48px rgba(20,60,120,.10);
}
.pp-role__card--you {
	background: linear-gradient(135deg, #0f3a6e, #1c6fd4);
	color: #fff;
}
.pp-role__card--us {
	background: linear-gradient(135deg, #0f6e56, #1fa492);
	color: #fff;
}
.pp-role__card-label {
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .16em;
	opacity: .75;
	margin: 0 0 1rem;
	text-transform: uppercase;
}
.pp-role__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .7rem;
}
.pp-role__list li {
	font-size: .95rem;
	line-height: 1.6;
	padding-left: 1.4em;
	position: relative;
}
.pp-role__list li::before {
	content: "›";
	position: absolute;
	left: 0;
	font-size: 1.2em;
	color: rgba(255,255,255,.6);
}
.pp-role__arrow {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4rem;
	flex-shrink: 0;
}
.pp-role__arrow span {
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .12em;
	color: #7a9fc4;
}
@media (max-width: 680px) {
	.pp-role__grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto auto;
	}
	.pp-role__arrow {
		flex-direction: row;
		justify-content: center;
	}
	.pp-role__arrow svg {
		transform: rotate(90deg);
	}
}

/* ----- PROBLEMS ----- */
.pp-problems { background: linear-gradient(180deg, #eef5fd, #f4f9ff); }
.pp-problems__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
}
.pp-problem-card {
	background: #fff;
	border-radius: 20px;
	padding: 2rem 1.8rem 2rem 2.1rem;
	box-shadow: 0 8px 30px rgba(20,60,120,.07);
	position: relative;
	overflow: hidden;
	transition: transform .3s var(--pp-ease), box-shadow .3s;
}
/* 左端に色アクセント（視覚誘導を強める） */
.pp-problem-card::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 4px;
	background: linear-gradient(180deg, var(--pp-blue), var(--pp-teal));
}
.pp-problem-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 48px rgba(20,60,120,.14);
}
.pp-problem-card__num {
	font-size: 3.6rem;
	font-weight: 900;
	color: rgba(28,111,212,.14);
	line-height: 1;
	position: absolute;
	top: .7rem;
	right: 1.2rem;
	letter-spacing: -.02em;
}
.pp-problem-card__title {
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--pp-ink);
	margin: 0 0 .9rem;
	line-height: 1.5;
	padding-bottom: .8rem;
	border-bottom: 2px solid #e8f1fc;
}
.pp-problem-card__desc {
	font-size: .92rem;
	line-height: 1.9;
	color: #5a6677;
	margin: 0;
}
@media (max-width: 599px) {
	.pp-problems__grid { grid-template-columns: 1fr; }
}

/* ----- PLANS ----- */
.pp-plans { background: #ffffff; }
.pp-plans__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	margin-bottom: 2rem;
}
.pp-plan-card {
	border-radius: 24px;
	padding: 2.4rem 2rem;
	text-align: center;
	position: relative;
	overflow: hidden;
	transition: transform .3s var(--pp-ease);
}
.pp-plan-card:hover { transform: translateY(-5px); }
.pp-plan-card--blue {
	background: linear-gradient(140deg, #0f3a6e 0%, #1c6fd4 100%);
	color: #fff;
}
.pp-plan-card--teal {
	background: linear-gradient(140deg, #0a4a3e 0%, #1fa492 100%);
	color: #fff;
}
.pp-plan-card__label {
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .22em;
	opacity: .65;
	margin: 0 0 .8rem;
}
.pp-plan-card__name {
	font-size: clamp(1.1rem, 2.2vw, 1.4rem);
	font-weight: 800;
	line-height: 1.4;
	margin: 0 0 .4rem;
}
.pp-plan-card__en {
	font-size: .8rem;
	opacity: .6;
	font-style: italic;
	margin: 0 0 1.6rem;
	letter-spacing: .05em;
}
.pp-plan-card__price {
	margin: 0;
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: .2em;
}
.pp-plan-card__price span {
	font-size: clamp(2.6rem, 5vw, 3.8rem);
	font-weight: 900;
	letter-spacing: -.02em;
}
.pp-plan-card__price em {
	font-style: normal;
	font-size: 1.1rem;
	font-weight: 600;
	opacity: .85;
}

.pp-plans__includes {
	background: #f4f9ff;
	border-radius: 16px;
	padding: 1.6rem 2rem;
	border: 1px solid #d0e6f5;
}
.pp-plans__includes-title {
	font-size: .84rem;
	font-weight: 800;
	letter-spacing: .1em;
	color: var(--pp-blue);
	margin: 0 0 1rem;
	text-transform: uppercase;
}
.pp-plans__includes-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 2rem;
}
.pp-plans__includes-list li {
	font-size: .95rem;
	color: var(--pp-ink);
	font-weight: 600;
	padding-left: 1.4em;
	position: relative;
}
.pp-plans__includes-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .5em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pp-blue), var(--pp-teal));
}
@media (max-width: 599px) {
	.pp-plans__grid { grid-template-columns: 1fr; }
}

/* ----- CTA ----- */
.pp-cta {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	position: relative;
	overflow: hidden;
	background: linear-gradient(120deg, #103f7c 0%, #1c6fd4 55%, #1fa492 130%);
	padding-block: clamp(3.5rem, 8vw, 6rem);
}
.pp-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(60% 80% at 12% 20%, rgba(255,255,255,.14), transparent 60%),
		radial-gradient(50% 80% at 90% 90%, rgba(43,191,172,.28), transparent 60%);
	pointer-events: none;
}
.pp-cta__inner {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	padding-right: clamp(0px, 12vw, 170px);
}
.pp-cta__en {
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .24em;
	color: #bfe6ff;
	margin: 0 0 .6rem;
}
.pp-cta__title {
	font-size: clamp(1.6rem, 3.2vw, 2.3rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 .8rem;
}
.pp-cta__text {
	color: rgba(255,255,255,.88);
	line-height: 1.9;
	margin: 0;
	font-size: .97rem;
}
.pp-cta__form {
	display: flex;
	align-items: center;
	justify-content: flex-start;
}
.pp-cta__form .swell-block-button,
.pp-cta__form .swell-block-button__link {
	background: #fff !important;
	color: #14529e !important;
	border: none !important;
	box-shadow: 0 10px 30px rgba(0,0,0,.22) !important;
}
@media (max-width: 768px) {
	.pp-cta__inner { grid-template-columns: 1fr; }
}

/* ----- スクロール出現アニメーション（page-partner） ----- */
.page-id-502 [data-reveal] {
	opacity: 0;
	transform: translateY(32px);
	transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1);
}
.page-id-502 [data-reveal].is-visible { opacity: 1; transform: none; }
.page-id-502 .pp-problems__grid > [data-reveal]:nth-child(2) { transition-delay: .1s; }
.page-id-502 .pp-problems__grid > [data-reveal]:nth-child(3) { transition-delay: .1s; }
.page-id-502 .pp-problems__grid > [data-reveal]:nth-child(4) { transition-delay: .2s; }
.page-id-502 .pp-plans__grid > [data-reveal]:nth-child(2) { transition-delay: .12s; }

@media (prefers-reduced-motion: reduce) {
	.page-id-502 [data-reveal] { opacity: 1 !important; transform: none !important; }
}


/* =================================================================
   17. お知らせ（ブログアーカイブ / カテゴリー）スタイリッシュレイアウト
   ================================================================= */

/* ----- カテゴリーラベル色（外国人雇用＝青 / 医療介護＝緑） ----- */
.cat-label[class*="foreign-employment"],
a.cat-label[href*="foreign-employment"] {
	background: linear-gradient(120deg, #1c6fd4, #2f97e0) !important;
	color: #fff !important;
	border: none !important;
}
.cat-label[class*="medical-care"],
a.cat-label[href*="medical-care"] {
	background: linear-gradient(120deg, #1fa492, #46c9b8) !important;
	color: #fff !important;
	border: none !important;
}

/* ----- アーカイブページヘッダー ----- */
.p-news-hero {
	position: relative;
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3rem, 7vw, 5.5rem);
	overflow: hidden;
	background: linear-gradient(140deg, #071e3d 0%, #0f3a6e 50%, #1a5e9e 100%);
	isolation: isolate;
}
.p-news-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 65% 70% at 85% 40%, rgba(28,111,212,.35), transparent 65%),
		radial-gradient(ellipse 45% 60% at 10% 85%, rgba(31,164,146,.2), transparent 60%);
	z-index: -1;
}
.p-news-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		repeating-linear-gradient(0deg, transparent, transparent 39px, rgba(255,255,255,.03) 40px),
		repeating-linear-gradient(90deg, transparent, transparent 39px, rgba(255,255,255,.03) 40px);
	z-index: -1;
}
.p-news-hero__inner {
	text-align: center;
	position: relative;
	z-index: 1;
}
.p-news-hero__en {
	display: block;
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .28em;
	color: rgba(191,230,255,.7);
	margin-bottom: .7rem;
}
.p-news-hero__title {
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 900;
	color: #fff;
	margin: 0 0 .8rem;
	letter-spacing: .05em;
}
.p-news-hero__title span {
	background: linear-gradient(90deg, #3aa0ea, #52cdba);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.p-news-hero__bar {
	display: inline-block;
	width: 56px;
	height: 4px;
	border-radius: 4px;
	background: linear-gradient(90deg, #3aa0ea, #52cdba);
	margin: 0 auto;
}

.p-news-hero__sub {
	margin: .8rem 0 0;
	font-size: clamp(.88rem, 1.5vw, 1rem);
	color: rgba(255,255,255,.72);
	letter-spacing: .04em;
}

/* ----- カテゴリーフィルタータブ ----- */
.p-news-filter {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	justify-content: center;
	padding: 1.8rem 0 2.2rem;
}
.p-news-filter__btn {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	padding: .55em 1.5em;
	border-radius: 999px;
	font-weight: 700;
	font-size: .9rem;
	letter-spacing: .03em;
	text-decoration: none;
	border: 2px solid var(--color_border);
	color: var(--color_main_dark);
	background: #fff;
	transition: all var(--ds-ease);
}
.p-news-filter__btn:hover,
.p-news-filter__btn.is-active {
	background: linear-gradient(120deg, var(--color_gradient1), var(--color_gradient2));
	color: #fff;
	border-color: transparent;
	box-shadow: 0 8px 20px rgba(28,111,212,.28);
	transform: translateY(-2px);
}
.p-news-filter__btn--care:hover,
.p-news-filter__btn--care.is-active {
	background: linear-gradient(120deg, #1fa492, #46c9b8);
	box-shadow: 0 8px 20px rgba(31,164,146,.28);
}

/* ----- 記事グリッド（マガジン風2カラム + フィーチャー） ----- */
.p-news-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.4rem, 3vw, 2.2rem);
	margin-bottom: 3rem;
}
.p-news-grid > *:first-child {
	grid-column: 1 / -1;
}

/* ----- ニュースカード ----- */
.p-news-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--color_border);
	border-radius: var(--ds-radius);
	overflow: hidden;
	box-shadow: var(--ds-shadow);
	display: flex;
	flex-direction: column;
	transition: transform var(--ds-ease), box-shadow var(--ds-ease), border-color var(--ds-ease);
}
.p-news-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ds-shadow-hover);
	border-color: rgba(28,111,212,.25);
}

/* フィーチャーカード（最初の1枚）は横並び */
.p-news-card--featured {
	flex-direction: row;
	min-height: 280px;
}
.p-news-card--featured .p-news-card__thumb {
	flex: 0 0 48%;
	max-width: 48%;
}
.p-news-card--featured .p-news-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.5rem, 3vw, 2.2rem);
}
.p-news-card--featured .p-news-card__title {
	font-size: clamp(1.1rem, 2.2vw, 1.4rem);
}

/* サムネイル */
.p-news-card__thumb {
	aspect-ratio: 16/9;
	overflow: hidden;
	flex-shrink: 0;
}
.p-news-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.p-news-card:hover .p-news-card__thumb img {
	transform: scale(1.07);
}

/* ボディ */
.p-news-card__body {
	padding: 1.3rem 1.4rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	flex: 1;
}
.p-news-card__meta {
	display: flex;
	align-items: center;
	gap: .7rem;
	flex-wrap: wrap;
}
.p-news-card__cat {
	display: inline-flex;
	align-items: center;
	padding: .2em .9em;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-decoration: none;
}
.p-news-card__cat--foreign {
	background: linear-gradient(120deg, #1c6fd4, #2f97e0);
	color: #fff;
}
.p-news-card__cat--medical {
	background: linear-gradient(120deg, #1fa492, #46c9b8);
	color: #fff;
}
.p-news-card__cat--default {
	background: var(--color_main_thin);
	color: var(--color_main_dark);
}
.p-news-card__date {
	font-size: .8rem;
	color: #7a8da0;
	letter-spacing: .04em;
}
.p-news-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color_htag);
	line-height: 1.6;
	margin: 0;
}
.p-news-card__excerpt {
	font-size: .88rem;
	color: #5a6677;
	line-height: 1.8;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.p-news-card__link {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-size: .85rem;
	font-weight: 700;
	color: var(--color_main);
	text-decoration: none;
	margin-top: auto;
	transition: gap var(--ds-ease), color var(--ds-ease);
}
.p-news-card__link:hover { gap: .7em; color: var(--color_main_dark); }

/* ----- スクロール出現（お知らせ専用stagger） ----- */
.p-news-grid > [data-reveal]:nth-child(2) { transition-delay: .08s; }
.p-news-grid > [data-reveal]:nth-child(3) { transition-delay: .16s; }
.p-news-grid > [data-reveal]:nth-child(4) { transition-delay: .24s; }
.p-news-grid > [data-reveal]:nth-child(5) { transition-delay: .32s; }
.p-news-grid > [data-reveal]:nth-child(6) { transition-delay: .40s; }

/* ----- ページネーション ----- */
.p-news-pager {
	display: flex;
	justify-content: center;
	gap: .5rem;
	padding-bottom: 2rem;
}
.p-news-pager a,
.p-news-pager span {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-weight: 700;
	font-size: .9rem;
	border: 2px solid var(--color_border);
	color: var(--color_main_dark);
	text-decoration: none;
	transition: all var(--ds-ease);
}
.p-news-pager a:hover,
.p-news-pager span.current {
	background: linear-gradient(120deg, var(--color_gradient1), var(--color_gradient2));
	color: #fff;
	border-color: transparent;
	box-shadow: 0 6px 16px rgba(28,111,212,.28);
}

/* ----- レスポンシブ ----- */
@media (max-width: 767px) {
	.p-news-grid { grid-template-columns: 1fr; }
	.p-news-grid > *:first-child { grid-column: auto; }
	.p-news-card--featured { flex-direction: column; }
	.p-news-card--featured .p-news-card__thumb { flex: none; max-width: 100%; }
}


/* =================================================================
   ご相談の流れ（page-flow.php）
   ================================================================= */

/* ---- Hero ---- */
.p-flow-hero {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	background: linear-gradient(135deg, #0f2e5c 0%, #1c6fd4 55%, #1a9486 100%);
	padding: clamp(3rem, 8vw, 5.5rem) 0 clamp(2.5rem, 7vw, 5rem);
	text-align: center;
	position: relative;
	overflow: hidden;
}
.p-flow-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='rgba(255,255,255,.06)' stroke-width='1'%3E%3Crect x='1' y='1' width='58' height='58' rx='4'/%3E%3C/g%3E%3C/svg%3E") repeat;
	pointer-events: none;
}
.p-flow-hero__inner { position: relative; z-index: 1; }
.p-flow-hero__en {
	font-size: .78rem; font-weight: 800; letter-spacing: .3em;
	color: rgba(255,255,255,.65); margin: 0 0 .6rem;
	text-transform: uppercase;
}
.p-flow-hero__ja {
	font-size: clamp(1.9rem, 5vw, 3rem); font-weight: 800;
	color: #fff; letter-spacing: .06em; margin: 0 0 1rem;
	line-height: 1.2;
}
.p-flow-hero__lead {
	font-size: clamp(.9rem, 2vw, 1.05rem); color: rgba(255,255,255,.82);
	line-height: 1.8; margin: 0;
}

/* ---- Section ---- */
.p-flow-section {
	padding-block: clamp(3.5rem, 8vw, 6rem);
	background: var(--color_bg);
}

/* ---- Step card ---- */
.p-flow-step {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
	background: #fff;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 8px 36px rgba(15, 46, 92, .08);
	margin-bottom: 0;
	transition: box-shadow var(--ds-ease);
}
.p-flow-step:hover {
	box-shadow: 0 18px 52px rgba(15, 46, 92, .15);
}
.p-flow-step--flip .p-flow-step__media { order: 2; }
.p-flow-step--flip .p-flow-step__body  { order: 1; padding-left: clamp(2rem, 5vw, 3.5rem); padding-right: 0; }

/* image side */
.p-flow-step__media { overflow: hidden; aspect-ratio: 4/3; }
.p-flow-step__img-wrap {
	width: 100%; height: 100%;
}
.p-flow-step__img-wrap img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .9s cubic-bezier(.22,.61,.36,1);
}
.p-flow-step:hover .p-flow-step__img-wrap img { transform: scale(1.04); }

/* text side */
.p-flow-step__body {
	padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem) clamp(2rem, 4vw, 3rem) 0;
}
.p-flow-step--flip .p-flow-step__body {
	padding-left: clamp(2rem, 4vw, 3rem);
	padding-right: 0;
}

/* number badge */
.p-flow-step__num-badge {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 68px; height: 68px;
	border-radius: 16px;
	background: linear-gradient(135deg, #1c6fd4, #1a9486);
	box-shadow: 0 10px 24px rgba(28, 111, 212, .32);
	margin-bottom: 1.2rem;
	flex-shrink: 0;
}
.p-flow-step__num-label {
	font-size: .55rem; font-weight: 800; letter-spacing: .15em;
	color: rgba(255,255,255,.75); line-height: 1;
}
.p-flow-step__num-value {
	font-size: 1.5rem; font-weight: 900; color: #fff; line-height: 1.1;
}

.p-flow-step__title {
	font-size: clamp(1.15rem, 2.5vw, 1.45rem);
	font-weight: 800; color: var(--color_htag);
	margin: 0 0 1rem; line-height: 1.4;
	padding-bottom: .9rem;
	border-bottom: 2px solid var(--color_pale02);
}
.p-flow-step__text {
	font-size: .96rem; line-height: 2;
	color: #4a5568; margin: 0;
}

/* ---- Connector ---- */
.p-flow-connector {
	display: flex; justify-content: center;
	padding: .8rem 0;
	opacity: .7;
}

/* ---- CTA ---- */
.p-flow-cta {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	background: linear-gradient(135deg, #0f2e5c 0%, #1c6fd4 60%, #1a9486 100%);
	padding: clamp(3rem, 7vw, 5rem) 0;
}
.p-flow-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
	padding-right: clamp(0px, 12vw, 170px);
}
.p-flow-cta__label {
	font-size: .8rem; font-weight: 700; letter-spacing: .2em;
	color: rgba(255,255,255,.65); margin: 0 0 .4rem;
}
.p-flow-cta__title {
	font-size: clamp(1.4rem, 3.5vw, 2rem); font-weight: 800;
	color: #fff; margin: 0 0 .6rem; line-height: 1.3;
}
.p-flow-cta__desc {
	font-size: .95rem; color: rgba(255,255,255,.8); margin: 0; line-height: 1.7;
}
.p-flow-cta__actions {
	display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; flex-shrink: 0;
}

/* ---- Responsive ---- */
@media (max-width: 900px) {
	.p-flow-step {
		grid-template-columns: 1fr;
	}
	.p-flow-step__media { aspect-ratio: 16/9; order: 0 !important; }
	.p-flow-step__body  { order: 1 !important; padding: 2rem !important; }
	.p-flow-cta__inner  { flex-direction: column; text-align: center; }
	.p-flow-cta__actions { justify-content: center; }
}


/* =================================================================
   投稿記事内の画像 — 高さを半分に統一
   ================================================================= */
.single .wp-block-image img {
	max-height: 50vh;
	width: auto;
	max-width: 100%;
	object-fit: cover;
	display: block;
	margin-inline: auto;
}


/* =================================================================
   18. 業務内容ページ（page-service.php）
   ================================================================= */

/* HERO */
.p-sv-hero {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3.6rem, 9vw, 6rem);
	background: linear-gradient(135deg, var(--color_deep02) 0%, var(--color_main) 60%, #2f97e0 100%);
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.p-sv-hero::before {
	content: "";
	position: absolute; inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}
.p-sv-hero__inner { position: relative; z-index: 1; }
.p-sv-hero__en {
	font-size: .78rem; font-weight: 800; letter-spacing: .26em;
	color: rgba(255,255,255,.7); margin: 0 0 .6rem;
}
.p-sv-hero__ja {
	font-size: clamp(2rem, 5vw, 3rem); font-weight: 800;
	letter-spacing: .06em; margin: 0 0 1.2rem; line-height: 1.2;
}
.p-sv-hero__lead {
	font-size: clamp(.9rem, 1.8vw, 1.05rem);
	color: rgba(255,255,255,.9); line-height: 1.9; margin: 0;
}

/* LIST（editorial） */
.p-sv-list {
	display: flex;
	flex-direction: column;
	gap: clamp(3.5rem, 8vw, 7rem);
	padding-block: clamp(3.5rem, 8vw, 6.5rem);
}

/* ITEM ── アクセント色を変数で一元管理 */
.p-sv-item {
	--accent: var(--color_main);
	--accent-tint: rgba(28,111,212,.10);
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.8rem, 5vw, 4.5rem);
	align-items: center;
	position: relative;
}
.p-sv-item--warm   { --accent:#e87c35; --accent-tint: rgba(232,124,53,.12); }
.p-sv-item--teal   { --accent:#1fa492; --accent-tint: rgba(31,164,146,.12); }
.p-sv-item--navy   { --accent:#0f2e5c; --accent-tint: rgba(15,46,92,.10); }
.p-sv-item--health { --accent:#2e9e6b; --accent-tint: rgba(46,158,107,.12); }

/* 画像：角丸＋背後にオフセットのアクセント面 */
.p-sv-item__media { position: relative; }
.p-sv-item--flip .p-sv-item__media { order: 2; }
.p-sv-item__panel {
	position: absolute;
	z-index: 1;
	inset: 26px -26px -26px 26px;
	border-radius: 20px;
	background: var(--accent-tint);
}
.p-sv-item--flip .p-sv-item__panel { inset: 26px 26px -26px -26px; }
.p-sv-item__img-link {
	position: relative;
	z-index: 2;
	display: block;
	aspect-ratio: 4 / 3;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 24px 50px rgba(15,40,80,.15);
}
.p-sv-item__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s cubic-bezier(.22,.61,.36,1);
}
.p-sv-item:hover .p-sv-item__media img { transform: scale(1.05); }

/* テキスト */
.p-sv-item__body { position: relative; }

/* 背景の大きな番号（透かし） */
.p-sv-item__num {
	position: absolute;
	top: -.55em;
	left: -.06em;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(5.5rem, 11vw, 9rem);
	font-weight: 700;
	line-height: 1;
	color: var(--accent);
	opacity: .1;
	z-index: 0;
	pointer-events: none;
	user-select: none;
}

/* キッカー */
.p-sv-item__kicker {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: .7rem;
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 1rem;
}
.p-sv-item__kicker::before {
	content: "";
	width: 34px; height: 2px;
	border-radius: 2px;
	background: var(--accent);
}

/* タイトル（明朝） */
.p-sv-item__title {
	position: relative;
	z-index: 1;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.4rem, 2.8vw, 2rem);
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.5;
	color: var(--color_htag);
	margin: 0 0 1rem;
}
.p-sv-item__title a { color: inherit; text-decoration: none; }
.p-sv-item__title a:hover { color: var(--accent); }

/* リード文 */
.p-sv-item__lead {
	position: relative;
	z-index: 1;
	font-size: .95rem;
	line-height: 1.95;
	color: #4a5a72;
	margin: 0 0 1.6rem;
}

/* 取扱リスト（2カラム・角丸チェック） */
.p-sv-item__list {
	position: relative;
	z-index: 1;
	list-style: none;
	padding: 0;
	margin: 0 0 1.9rem;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: .55rem 1.4rem;
}
.p-sv-item__list li {
	display: flex;
	align-items: baseline;
	gap: .55rem;
	font-size: .9rem;
	color: var(--color_text);
	line-height: 1.55;
}
.p-sv-item__list li::before {
	content: "";
	flex-shrink: 0;
	width: 7px; height: 7px;
	margin-top: .4em;
	border-radius: 2px;
	background: var(--accent);
	transform: rotate(45deg);
}

/* 詳しく見る（ピルボタン） */
.p-sv-item__more {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .62rem 1.5rem;
	border: 1.5px solid var(--accent);
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--accent);
	text-decoration: none;
	transition: background-color .25s, color .25s, gap .25s;
}
.p-sv-item__more:hover {
	background: var(--accent);
	color: #fff;
	gap: .8rem;
}
.p-sv-item__more svg { transition: transform .25s; }
.p-sv-item__more:hover svg { transform: translateX(3px); }

/* アニメーション（data-reveal） */
.p-sv-item[data-reveal] {
	opacity: 0;
	transform: translateY(36px);
	transition: opacity .7s cubic-bezier(.22,.61,.36,1),
	            transform .7s cubic-bezier(.22,.61,.36,1);
}
.p-sv-item[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}
.p-sv-item:nth-child(2)[data-reveal] { transition-delay: .08s; }
.p-sv-item:nth-child(3)[data-reveal] { transition-delay: .14s; }
.p-sv-item:nth-child(4)[data-reveal] { transition-delay: .2s; }

.p-sv-hero__en[data-reveal],
.p-sv-hero__ja[data-reveal],
.p-sv-hero__lead[data-reveal] {
	opacity: 0; transform: translateY(20px);
	transition: opacity .6s ease, transform .6s ease;
}
.p-sv-hero__ja[data-reveal]   { transition-delay: .1s; }
.p-sv-hero__lead[data-reveal] { transition-delay: .2s; }
.p-sv-hero__en[data-reveal].is-visible,
.p-sv-hero__ja[data-reveal].is-visible,
.p-sv-hero__lead[data-reveal].is-visible {
	opacity: 1; transform: none;
}

/* レスポンシブ */
@media (max-width: 767px) {
	.p-sv-item {
		grid-template-columns: 1fr;
		gap: 1.6rem;
	}
	.p-sv-item--flip .p-sv-item__media { order: 0; }
	.p-sv-item__panel { display: none; }
	.p-sv-item__img-link { box-shadow: 0 14px 30px rgba(15,40,80,.14); }
	.p-sv-item__num { font-size: 4.5rem; top: -.35em; }
	.p-sv-item__list { grid-template-columns: 1fr; }
	.p-sv-hero__lead br { display: none; }
}


/* =================================================================
   CTAブロック共通（装飾のはみ出しをクリップ）
   ================================================================= */
.p-fp-cta,
.p-flow-cta,
.pp-cta {
	position: relative;
	overflow: hidden;
}


/* =================================================================
   17. お問い合わせページ（page-contact.php）
   ================================================================= */

/* ----- HERO ----- */
.p-contact-hero {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3.6rem, 9vw, 6rem);
	background: linear-gradient(135deg, var(--color_deep02) 0%, var(--color_main) 60%, #2f97e0 100%);
	color: #fff;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.p-contact-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
	pointer-events: none;
}
.p-contact-hero__inner { position: relative; z-index: 1; }
.p-contact-hero__en {
	font-size: .78rem; font-weight: 800; letter-spacing: .26em;
	color: rgba(255,255,255,.7); margin: 0 0 .6rem;
}
.p-contact-hero__ja {
	font-size: clamp(2rem, 5vw, 3rem); font-weight: 800;
	letter-spacing: .06em; margin: 0 0 1.2rem; line-height: 1.2;
}
.p-contact-hero__lead {
	font-size: clamp(.9rem, 1.8vw, 1.05rem); color: rgba(255,255,255,.9);
	line-height: 1.9; margin: 0;
}
.p-contact-hero__lead strong { color: #ffe58a; font-weight: 700; }

/* ----- CONTACT METHODS（優先順位カード 3列） ----- */
.p-contact-methods {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.6rem;
	align-items: stretch;
}
.p-contact-method {
	background: var(--color_content_bg);
	border-radius: var(--ds-radius);
	padding: 2.2rem 1.8rem 2rem;
	text-align: center;
	box-shadow: var(--ds-shadow);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .8rem;
	position: relative;
	height: 100%;
	box-sizing: border-box;
	transition: transform var(--ds-ease), box-shadow var(--ds-ease);
}
.p-contact-method:hover { transform: translateY(-4px); box-shadow: var(--ds-shadow-hover); }

/* 色帯 */
.p-contact-method--email { border-top: 4px solid #e87c35; }
.p-contact-method--line  { border-top: 4px solid #06c755; }
.p-contact-method--tel   { border-top: 4px solid var(--color_main); }

/* おすすめバッジ */
.p-contact-method__badge {
	position: absolute;
	top: -1px; right: 1.2rem;
	background: #e87c35;
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	padding: .25rem .8rem;
	border-radius: 0 0 8px 8px;
}
.p-contact-method__badge--line { background: #06c755; }

/* 番号 */
.p-contact-method__rank {
	font-size: .72rem; font-weight: 800; letter-spacing: .16em;
	color: #aab8cc; margin-bottom: -.2rem;
}

/* アイコン */
.p-contact-method__icon {
	width: 64px; height: 64px;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
}
.p-contact-method--email .p-contact-method__icon { background: #fef3ea; color: #e87c35; }
.p-contact-method--line  .p-contact-method__icon { background: #e8faf0; color: #06c755; }
.p-contact-method--tel   .p-contact-method__icon { background: var(--color_pale01); color: var(--color_main); }

.p-contact-method__title {
	font-size: 1.05rem; font-weight: 800; color: var(--color_htag); margin: 0;
}
.p-contact-method__desc { font-size: .85rem; color: #5a6677; line-height: 1.75; margin: 0; }

/* アクション（メール・電話リンク） */
.p-contact-method__action {
	font-weight: 700; text-decoration: none; display: inline-block;
	padding: .55rem 1.2rem;
	border-radius: 9999px;
	font-size: .9rem;
	transition: opacity .25s;
}
.p-contact-method__action:hover { opacity: .8; }
.p-contact-method__action--email {
	background: #fef3ea; color: #c2641a;
	font-size: 1rem; letter-spacing: .03em;
}
.p-contact-method__action--tel {
	background: var(--color_pale01); color: var(--color_main);
	font-size: 1rem; letter-spacing: .03em;
}

/* LINEのQR */
.p-contact-method__qr img {
	width: 160px; height: 160px;
	border-radius: 12px;
	border: 2px solid #e0f0e8;
	display: block;
}

.p-contact-method__note { font-size: .78rem; color: #7a8fa8; margin: 0; }

/* ----- 安心ポイント ----- */
.p-contact-points__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}
.p-contact-point {
	background: var(--color_content_bg);
	border-radius: var(--ds-radius);
	padding: 2rem 1.6rem;
	text-align: center;
	box-shadow: var(--ds-shadow);
}
.p-contact-point__icon {
	width: 56px; height: 56px;
	border-radius: 50%;
	background: var(--color_pale01);
	color: var(--color_main);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 1rem;
}
.p-contact-point__title {
	font-size: 1rem; font-weight: 800; color: var(--color_htag); margin: 0 0 .6rem;
}
.p-contact-point__desc { font-size: .88rem; color: #5a6677; line-height: 1.8; margin: 0; }

/* ----- CF7 フォームラッパー ----- */
.p-contact-form__wrap {
	background: var(--color_content_bg);
	border-radius: var(--ds-radius);
	padding: clamp(2rem, 5vw, 3.5rem) clamp(1.6rem, 5vw, 3.5rem);
	box-shadow: var(--ds-shadow);
	max-width: 760px;
	margin-inline: auto;
}

/* CF7 入力フィールド共通スタイル */
.p-contact-form__wrap .wpcf7-form-control-wrap,
.p-contact-form__wrap p { margin-bottom: 1.4rem; }

.p-contact-form__wrap input[type="text"],
.p-contact-form__wrap input[type="email"],
.p-contact-form__wrap input[type="tel"],
.p-contact-form__wrap textarea,
.p-contact-form__wrap select {
	width: 100%;
	padding: .85rem 1.1rem;
	border: 1.5px solid var(--color_border);
	border-radius: var(--ds-radius-sm);
	background: var(--color_pale03);
	color: var(--color_text);
	font-size: 1rem;
	font-family: inherit;
	transition: border-color .25s, box-shadow .25s;
	appearance: none;
}
.p-contact-form__wrap input:focus,
.p-contact-form__wrap textarea:focus,
.p-contact-form__wrap select:focus {
	outline: none;
	border-color: var(--color_main);
	box-shadow: 0 0 0 3px rgba(28,111,212,.14);
	background: #fff;
}
.p-contact-form__wrap textarea { min-height: 180px; resize: vertical; }

.p-contact-form__wrap .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	padding: .9rem 2.6rem;
	border-radius: 9999px;
	background: linear-gradient(135deg, #e87c35 0%, #d4621d 100%);
	color: #fff !important;
	font-weight: 800;
	font-size: 1.05rem;
	letter-spacing: .06em;
	border: none;
	cursor: pointer;
	box-shadow: 0 10px 28px rgba(180,80,10,.28);
	transition: transform .3s, box-shadow .3s;
}
.p-contact-form__wrap .wpcf7-submit:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 36px rgba(180,80,10,.4);
}

/* Responsive */
@media (max-width: 767px) {
	.p-contact-methods,
	.p-contact-points__grid { grid-template-columns: 1fr; }
	.p-contact-hero__lead br { display: none; }
	.p-contact-method--tel { order: 3; }
}


/* =================================================================
   外国人人材雇用サービスページ (page-employment.php)
   ================================================================= */

/* ── HERO ── */
.em-hero {
	position: relative;
	min-height: 260px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, #0f3a6e 0%, #1c6fd4 60%, #1fa492 100%);
	overflow: hidden;
}
.em-hero__bg {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,.06) 0%, transparent 50%),
		radial-gradient(circle at 20% 80%, rgba(255,255,255,.04) 0%, transparent 40%);
	pointer-events: none;
}
.em-hero__inner {
	position: relative;
	z-index: 1;
	padding: 60px 20px 40px;
}
.em-hero__en {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.55);
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.em-hero__title {
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 900;
	color: #fff;
	line-height: 1.25;
	margin: 0 0 1.2rem;
}
.em-hero__hl { color: #64d4c8; }
.em-hero__lead {
	font-size: clamp(.9rem, 2vw, 1.05rem);
	color: rgba(255,255,255,.8);
	margin: 0 0 2rem;
	max-width: 500px;
}
.em-hero__scroll {
	position: absolute;
	bottom: 28px; left: 50%;
	transform: translateX(-50%);
}
.em-hero__scroll span {
	display: block;
	width: 1px; height: 48px;
	background: linear-gradient(to bottom, transparent, rgba(255,255,255,.4));
	animation: em-scroll 2s ease-in-out infinite;
}
@keyframes em-scroll {
	0%   { transform: scaleY(0); transform-origin: top; }
	50%  { transform: scaleY(1); transform-origin: top; }
	51%  { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ── ボタン ── */
.em-btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-weight: 700;
	font-size: .95rem;
	padding: .85rem 2rem;
	border-radius: 50px;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
}
.em-btn--white {
	background: #fff;
	color: var(--color_main);
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.em-btn--white:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.25); }
.em-btn--outline {
	border: 2px solid rgba(255,255,255,.7);
	color: #fff;
}
.em-btn--outline:hover { background: rgba(255,255,255,.1); transform: translateY(-2px); }

/* ── 共通 ── */
.em-section { padding: 96px 0; }
.em-section-head { text-align: center; margin-bottom: 56px; }
.em-section-en {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	color: var(--color_main);
	text-transform: uppercase;
	margin-bottom: .5rem;
}
.em-section-ja {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--color_htag);
	margin: 0 0 .5rem;
}
.em-section-lead {
	font-size: .95rem;
	color: #6a7f9a;
	margin: .5rem 0 0;
}

/* ── CONTENT ── */
.em-content { padding: 80px 0; background: var(--color_content_bg); }
.em-content__inner { max-width: 860px; margin-inline: auto; }

/* ── SERVICES ── */
.em-services { background: var(--color_content_bg); }
.em-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.em-service-card {
	background: var(--color_pale01);
	border-radius: 16px;
	padding: 32px 24px;
	border: 1px solid var(--color_border);
	transition: transform .3s, box-shadow .3s;
}
.em-service-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 40px rgba(28,111,212,.12);
}
.em-service-card__icon {
	width: 52px; height: 52px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--color_gradient1), var(--color_gradient2));
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	margin-bottom: 1.2rem;
}
.em-service-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color_htag);
	margin: 0 0 .7rem;
	line-height: 1.5;
}
.em-service-card__desc {
	font-size: .88rem;
	color: #5a6f88;
	line-height: 1.8;
	margin: 0;
}

/* ── リンク付きサービスカード（page-others の研修依頼カード等） ── */
a.em-service-card--link {
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: transform .25s ease, box-shadow .25s ease;
}
a.em-service-card--link:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 30px rgba(28, 111, 212, .14);
}
.em-service-card__more {
	margin-top: auto;
	padding-top: .9rem;
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .82rem;
	font-weight: 700;
	color: var(--color_main, #1c6fd4);
}
a.em-service-card--link:hover .em-service-card__more svg { transform: translateX(3px); }
.em-service-card__more svg { transition: transform .25s ease; }

/* ── 研修メニュー（page-kenshu）: カード内メタ情報・注記 ── */
.km-meta {
	list-style: none;
	margin: 0 0 .8rem;
	padding: .7rem 0 0;
	border-top: 1px solid var(--color_border, #e3e8ef);
	display: flex;
	flex-direction: column;
	gap: .28rem;
}
.km-meta li {
	position: relative;
	font-size: .8rem;
	color: #45607f;
	line-height: 1.55;
	padding-left: .9rem;
}
.km-meta li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .58em;
	width: .3rem;
	height: .3rem;
	border-radius: 50%;
	background: var(--color_main, #1c6fd4);
}
.km-note {
	margin: 1.8rem 0 0;
	font-size: .85rem;
	color: #5a6f88;
	line-height: 1.7;
	text-align: center;
}

/* ============================================================
   研修ページ HERO（page-kenshu）: エディトリアル型
   ============================================================ */
.kh-hero {
	position: relative;
	min-height: 320px;
	display: flex;
	align-items: center;
	background: linear-gradient(150deg, #0a2a52 0%, #103a6e 55%, #12564f 100%);
	overflow: hidden;
}
.kh-hero__bg {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 88% 12%, rgba(100,212,200,.18) 0%, transparent 45%),
		radial-gradient(circle at 8% 92%, rgba(255,255,255,.05) 0%, transparent 40%);
	pointer-events: none;
}
/* 右端に薄い巨大な「×」を意匠として配置 */
.kh-hero__bg::after {
	content: "×";
	position: absolute;
	right: -3vw; bottom: -6vw;
	font-size: 34vw;
	line-height: 1;
	font-weight: 300;
	color: rgba(255,255,255,.04);
	pointer-events: none;
}
.kh-hero__inner {
	position: relative;
	z-index: 1;
	padding: 58px 20px 64px;
}

/* 上部ラベル行（細い罫 + JP / EN） */
.kh-hero__top {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0 0 2.4rem;
}
.kh-hero__label {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .16em;
	color: #fff;
	padding: .3rem .9rem;
	border: 1px solid rgba(255,255,255,.35);
	border-radius: 2px;
	white-space: nowrap;
}
.kh-hero__en {
	position: relative;
	flex: 1;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: rgba(255,255,255,.5);
	padding-left: 1rem;
}
.kh-hero__en::before {
	content: "";
	position: absolute;
	left: 0; top: 50%;
	width: .6rem; height: 1px;
	background: rgba(255,255,255,.4);
}

/* 見出し */
.kh-hero__title {
	margin: 0 0 2rem;
	color: #fff;
	line-height: 1.12;
	letter-spacing: .01em;
}
.kh-hero__line {
	display: block;
}
.kh-hero__key {
	position: relative;
	font-size: clamp(2.4rem, 8.25vw, 4.8rem);
	font-weight: 900;
	letter-spacing: .02em;
}
/* 「制度」「からだ」に鉤括弧を意匠として付す */
.kh-hero__key::before { content: "「"; font-weight: 400; opacity: .45; }
.kh-hero__key::after  { content: "」"; font-weight: 400; opacity: .45; }
.kh-hero__key--alt {
	color: #64d4c8;
	text-shadow: 0 0 40px rgba(100,212,200,.35);
}
.kh-hero__and {
	font-size: clamp(1.4rem, 4vw, 2.4rem);
	font-weight: 400;
	color: rgba(255,255,255,.7);
	margin: 0 .1em;
	vertical-align: .1em;
}
.kh-hero__line--sub {
	font-size: clamp(1.6rem, 5vw, 3rem);
	font-weight: 800;
	color: rgba(255,255,255,.92);
	margin-top: .5rem;
}

/* 行政書士 × 理学療法士 */
.kh-hero__cross {
	display: inline-flex;
	align-items: center;
	gap: 1rem;
	margin: 0 0 1.8rem;
	padding: .55rem 1.4rem;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.14);
	border-radius: 50px;
	backdrop-filter: blur(2px);
}
.kh-hero__role {
	font-size: clamp(1rem, 2.6vw, 1.4rem);
	font-weight: 800;
	color: #fff;
	letter-spacing: .06em;
}
.kh-hero__x {
	font-size: clamp(1.1rem, 3vw, 1.6rem);
	font-weight: 300;
	color: #64d4c8;
	line-height: 1;
}

.kh-hero__lead {
	font-size: clamp(.92rem, 2vw, 1.08rem);
	line-height: 1.85;
	color: rgba(255,255,255,.82);
	margin: 0 0 2.4rem;
	max-width: 560px;
}
.kh-hero__btn { box-shadow: 0 12px 34px rgba(0,0,0,.22); }

@media (max-width: 767px) {
	.kh-hero { min-height: 280px; }
	.kh-hero__inner { padding: 44px 20px 48px; }
	.kh-hero__top { flex-wrap: wrap; gap: .7rem; margin-bottom: 1.8rem; }
	.kh-hero__en { flex-basis: 100%; padding-left: 0; }
	.kh-hero__en::before { display: none; }
	.kh-hero__cross { gap: .7rem; padding: .5rem 1.1rem; }
}

/* ── FEATURES ── */
.em-features { background: var(--color_pale03); }
.em-features__list {
	display: flex;
	flex-direction: column;
	gap: 0;
	max-width: 820px;
	margin: 0 auto;
}
.em-feature {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 24px;
	align-items: start;
	padding: 36px 0;
	border-bottom: 1px solid var(--color_border);
}
.em-feature:first-child { border-top: 1px solid var(--color_border); }
.em-feature__num {
	font-size: 2.4rem;
	font-weight: 900;
	color: var(--color_border);
	line-height: 1;
	letter-spacing: -.03em;
	padding-top: 4px;
}
.em-feature__title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color_htag);
	margin: 0 0 .3rem;
}
.em-feature__en {
	font-size: .78rem;
	color: var(--color_main);
	margin: 0 0 .7rem;
	letter-spacing: .04em;
}
.em-feature__desc {
	font-size: .92rem;
	color: #5a6f88;
	line-height: 1.85;
	margin: 0;
}

/* ── PLANS ── */
.em-plans { background: var(--color_content_bg); }
.em-plans__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	max-width: 720px;
	margin: 0 auto 32px;
}
.em-plan-card {
	border-radius: 20px;
	padding: 40px 32px;
	text-align: center;
	color: #fff;
}
.em-plan-card--blue  { background: linear-gradient(135deg, #1c6fd4, #2f97e0); }
.em-plan-card--teal  { background: linear-gradient(135deg, #1a9486, #1fc8b4); }
.em-plan-card__label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .16em;
	opacity: .75;
	margin: 0 0 .8rem;
}
.em-plan-card__name {
	font-size: 1.15rem;
	font-weight: 800;
	margin: 0 0 .4rem;
	line-height: 1.5;
}
.em-plan-card__en {
	font-size: .75rem;
	opacity: .7;
	margin: 0 0 1.4rem;
	letter-spacing: .06em;
}
.em-plan-card__price { margin: 0; }
.em-plan-card__price span {
	font-size: 2.8rem;
	font-weight: 900;
	letter-spacing: -.02em;
}
.em-plan-card__price em {
	font-style: normal;
	font-size: 1rem;
	opacity: .85;
	margin-left: .2rem;
}
.em-plans__includes {
	max-width: 720px;
	margin: 0 auto;
	background: var(--color_pale01);
	border-radius: 14px;
	padding: 24px 32px;
	border: 1px solid var(--color_border);
}
.em-plans__includes-title {
	font-size: .85rem;
	font-weight: 700;
	color: var(--color_main);
	margin: 0 0 .8rem;
	letter-spacing: .06em;
}
.em-plans__includes-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5rem 2rem;
}
.em-plans__includes-list li {
	font-size: .92rem;
	color: var(--color_text);
	display: flex;
	align-items: center;
	gap: .4rem;
}
.em-plans__includes-list li::before {
	content: '';
	width: 6px; height: 6px;
	border-radius: 50%;
	background: var(--color_main);
	flex-shrink: 0;
}

/* ── PARTNER BANNER ── */
.em-partner-banner {
	background: linear-gradient(135deg, #0f3a6e 0%, #1c6fd4 60%, #1fa492 100%);
	padding: 64px 0;
}
.em-partner-banner__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}
.em-partner-banner__label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	color: rgba(255,255,255,.55);
	margin: 0 0 .6rem;
}
.em-partner-banner__title {
	font-size: clamp(1.1rem, 2.5vw, 1.5rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 .5rem;
}
.em-partner-banner__desc {
	font-size: .9rem;
	color: rgba(255,255,255,.75);
	margin: 0;
}

/* ── CTA ── */
.em-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #0f3a6e 0%, #1c6fd4 60%, #1fa492 100%);
	padding: 64px 0;          /* For agency バナーと高さ・サイズ感を統一 */
	margin-top: 48px;         /* For agency バナーと少し離す（間に背景色が入り区切りに） */
}
.em-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: left;
	gap: 2rem;
	flex-wrap: wrap;
}
.em-cta__lead { margin: 0; }
.em-cta__en {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.5);
	margin: 0 0 .4rem;
}
.em-cta__title {
	font-size: clamp(1.5rem, 3.5vw, 2.2rem);
	font-weight: 900;
	color: #fff;
	margin: 0 0 .6rem;
}
.em-cta__text {
	font-size: .95rem;
	color: rgba(255,255,255,.75);
	margin: 0;
}

/* ── Responsive ── */
@media (min-width: 901px) {
	/* マスコット（右下）が表示される幅では、右のCTAボタンを内側に寄せて重なりを防ぐ */
	.em-cta__inner { padding-right: 180px; }
}
@media (max-width: 900px) {
	.em-services__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.em-section { padding: 64px 0; }
	.em-hero__inner { padding: 80px 20px 56px; }
	.em-services__grid { grid-template-columns: 1fr; }
	.em-plans__grid { grid-template-columns: 1fr; }
	.em-feature { grid-template-columns: 56px 1fr; gap: 16px; }
	.em-feature__num { font-size: 1.8rem; }
	.em-partner-banner__inner { flex-direction: column; text-align: center; }
	.em-cta { padding: 64px 0; margin-top: 32px; }
	.em-cta__inner { flex-direction: column; text-align: center; }
}

/* =================================================================
   終活支援サービスページ (page-shukatsu.php)
   ================================================================= */

/* ── HERO ── */
.sk-hero {
	position: relative;
	min-height: 260px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, #3a2060 0%, #7b4fa0 50%, #c47ab0 100%);
	overflow: hidden;
}
.sk-hero__bg {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle at 75% 25%, rgba(255,255,255,.07) 0%, transparent 50%),
		radial-gradient(circle at 25% 75%, rgba(255,255,255,.04) 0%, transparent 40%);
	pointer-events: none;
}
.sk-hero__inner {
	position: relative;
	z-index: 1;
	padding: 60px 20px 40px;
}
.sk-hero__en {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.55);
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.sk-hero__title {
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 900;
	color: #fff;
	line-height: 1.25;
	margin: 0 0 1.2rem;
}
.sk-hero__hl { color: #f9d6f0; }
.sk-hero__lead {
	font-size: clamp(.9rem, 2vw, 1.05rem);
	color: rgba(255,255,255,.8);
	margin: 0 0 2rem;
	max-width: 500px;
}
.sk-hero__scroll {
	position: absolute;
	bottom: 28px; left: 50%;
	transform: translateX(-50%);
}
.sk-hero__scroll span {
	display: block;
	width: 1px; height: 48px;
	background: linear-gradient(to bottom, transparent, rgba(255,255,255,.4));
	animation: sk-scroll 2s ease-in-out infinite;
}
@keyframes sk-scroll {
	0%   { transform: scaleY(0); transform-origin: top; }
	50%  { transform: scaleY(1); transform-origin: top; }
	51%  { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ── ボタン ── */
.sk-btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-weight: 700;
	font-size: .95rem;
	padding: .85rem 2rem;
	border-radius: 50px;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
}
.sk-btn--white {
	background: #fff;
	color: #7b4fa0;
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.sk-btn--white:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.25); }

/* ── 共通 ── */
.sk-section { padding: 96px 0; }
.sk-section-head { text-align: center; margin-bottom: 56px; }
.sk-section-en {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	color: #7b4fa0;
	text-transform: uppercase;
	margin-bottom: .5rem;
}
.sk-section-ja {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--color_htag);
	margin: 0;
}

/* ── SERVICES ── */
.sk-services { background: var(--color_content_bg); }
.sk-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.sk-service-card {
	background: var(--color_pale01);
	border-radius: 16px;
	padding: 32px 24px;
	border: 1px solid rgba(123,79,160,.12);
	transition: transform .3s, box-shadow .3s;
}
.sk-service-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 16px 40px rgba(123,79,160,.12);
}
.sk-service-card__icon {
	width: 52px; height: 52px;
	border-radius: 14px;
	background: linear-gradient(135deg, #7b4fa0, #c47ab0);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	margin-bottom: 1.2rem;
}
.sk-service-card__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--color_htag);
	margin: 0 0 .3rem;
	line-height: 1.5;
}
.sk-service-card__sub {
	font-size: .78rem;
	color: #7b4fa0;
	font-weight: 600;
	margin: 0 0 .8rem;
}
.sk-service-card__desc {
	font-size: .88rem;
	color: #5a6f88;
	line-height: 1.8;
	margin: 0;
}

/* ── DETAIL ── */
.sk-detail { background: #faf7fc; }
.sk-detail__list {
	display: flex;
	flex-direction: column;
	gap: 0;
	max-width: 820px;
	margin-inline: auto;
}
.sk-detail-item {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 24px;
	align-items: start;
	padding: 36px 0;
	border-bottom: 1px solid rgba(123,79,160,.12);
}
.sk-detail-item:first-child { border-top: 1px solid rgba(123,79,160,.12); }
.sk-detail-item__num {
	font-size: 2.4rem;
	font-weight: 900;
	color: rgba(123,79,160,.15);
	line-height: 1;
	letter-spacing: -.03em;
	padding-top: 4px;
}
.sk-detail-item__title {
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--color_htag);
	margin: 0 0 .6rem;
}
.sk-detail-item__desc {
	font-size: .92rem;
	color: #5a6f88;
	line-height: 1.85;
	margin: 0;
}

/* ── CTA ── */
.sk-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, #3a2060 0%, #7b4fa0 50%, #c47ab0 100%);
	padding: 96px 0;
}
.sk-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 2rem;
}
.sk-cta__en {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.5);
	margin: 0 0 .4rem;
}
.sk-cta__title {
	font-size: clamp(1.5rem, 3.5vw, 2.2rem);
	font-weight: 900;
	color: #fff;
	margin: 0 0 .6rem;
}
.sk-cta__text {
	font-size: .95rem;
	color: rgba(255,255,255,.75);
	margin: 0;
}

/* ── Responsive ── */
@media (max-width: 767px) {
	.sk-section { padding: 64px 0; }
	.sk-hero__inner { padding: 56px 20px 36px; }
	.sk-services__grid { grid-template-columns: 1fr; }
	.sk-detail-item { grid-template-columns: 56px 1fr; gap: 16px; }
	.sk-detail-item__num { font-size: 1.8rem; }
	.sk-cta { padding: 64px 0; }
}

/* =================================================================
   事業所情報ページ (page-about.php)
   ================================================================= */

/* ── 共通トークン ── */
.ab-section {
	padding: 96px 0;
}
.ab-section-en {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .18em;
	color: var(--color_main);
	text-transform: uppercase;
	margin-bottom: .5rem;
}
.ab-section-head {
	text-align: center;
	margin-bottom: 56px;
}
.ab-section-ja {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--color_htag);
	margin: 0;
}

/* ── reveal アニメーション ── */
[data-reveal] {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1);
}
[data-reveal].is-visible {
	opacity: 1;
	transform: none;
}

/* ── HERO ── */
.ab-hero {
	position: relative;
	min-height: 270px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, var(--color_deep03) 0%, var(--color_deep01) 60%, var(--color_main) 100%);
	overflow: hidden;
}
.ab-hero__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.ab-hero__bg-line {
	position: absolute;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.06);
}
.ab-hero__bg-line--1 { width: 600px; height: 600px; top: -180px; right: -120px; }
.ab-hero__bg-line--2 { width: 400px; height: 400px; top: -60px;  right:  40px; }
.ab-hero__bg-line--3 { width: 200px; height: 200px; top:  80px;  right: 160px; }

.ab-hero__inner {
	position: relative;
	z-index: 1;
	padding: 60px 20px 40px;
}
.ab-hero__en {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.55);
	text-transform: uppercase;
	margin: 0 0 1rem;
}
.ab-hero__title {
	font-size: clamp(2rem, 5vw, 3.2rem);
	font-weight: 900;
	color: #fff;
	line-height: 1.25;
	margin: 0 0 1.2rem;
}
.ab-hero__hl {
	color: #64d4c8;
}
.ab-hero__sub {
	font-size: clamp(.9rem, 2vw, 1.05rem);
	color: rgba(255,255,255,.75);
	margin: 0;
	max-width: 520px;
}
.ab-hero__scroll {
	position: absolute;
	bottom: 28px; left: 50%;
	transform: translateX(-50%);
}
.ab-hero__scroll span {
	display: block;
	width: 1px; height: 48px;
	background: linear-gradient(to bottom, transparent, rgba(255,255,255,.45));
	animation: ab-scroll-line 2s ease-in-out infinite;
}
@keyframes ab-scroll-line {
	0%   { transform: scaleY(0); transform-origin: top; }
	50%  { transform: scaleY(1); transform-origin: top; }
	51%  { transform: scaleY(1); transform-origin: bottom; }
	100% { transform: scaleY(0); transform-origin: bottom; }
}

/* ── PHILOSOPHY ── */
.ab-philosophy {
	background: var(--color_content_bg);
}
.ab-philosophy__inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 64px;
	align-items: center;
}
.ab-philosophy__text {
	position: relative;
}
/* 背景の透かし文字「法」 */
.ab-philosophy__text::before {
	content: "法";
	position: absolute;
	top: -.62em;
	left: -.18em;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(7rem, 14vw, 12rem);
	font-weight: 700;
	line-height: 1;
	color: var(--color_main);
	opacity: .05;
	pointer-events: none;
	z-index: 0;
}
/* 洗練したラベル */
.ab-philosophy__eyebrow {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: .85rem;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: var(--color_main);
	text-transform: uppercase;
	margin: 0 0 1.4rem;
}
.ab-philosophy__eyebrow-rule {
	width: 44px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--color_main), #1fa492);
}
.ab-philosophy__eyebrow-ja {
	letter-spacing: .14em;
	font-weight: 600;
	color: #a3b4c8;
}
/* 明朝ベースの editorial 見出し */
.ab-philosophy__title {
	position: relative;
	z-index: 1;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.7rem, 3.6vw, 2.5rem);
	font-weight: 600;
	color: var(--color_htag);
	line-height: 1.62;
	letter-spacing: .045em;
	margin: 0 0 1.9rem;
}
.ab-philosophy__title-accent {
	position: relative;
	font-weight: 700;
	background: linear-gradient(90deg, var(--color_main), #1fa492);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
/* キーワード下のグラデ下線 */
.ab-philosophy__title-accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.1em;
	height: .2em;
	border-radius: 4px;
	background: linear-gradient(90deg, rgba(28,111,212,.20), rgba(31,164,146,.20));
	z-index: -1;
}
.ab-philosophy__text p {
	position: relative;
	z-index: 1;
	color: #4a5a72;
	line-height: 1.95;
	margin: 0 0 1rem;
}

/* ── REPRESENTATIVE ── */
.ab-rep {
	background: var(--color_pale03);
}
.ab-rep__card {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 56px;
	align-items: start;
	background: #fff;
	border-radius: 20px;
	padding: 48px;
	box-shadow: 0 8px 32px rgba(28,111,212,.08);
}
.ab-rep__photo {
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--color_pale01);
}
.ab-rep__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.ab-rep__photo-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	color: #7a9abf;
	font-size: .85rem;
	text-align: center;
	border: 2px dashed var(--color_border);
	border-radius: 16px;
}
.ab-rep__photo-placeholder p {
	margin: 0;
	line-height: 1.6;
}
.ab-rep__name-block {
	margin-bottom: 1.6rem;
}
.ab-rep__role {
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: var(--color_main);
	margin: 0 0 .4rem;
}
.ab-rep__name {
	font-size: clamp(1.8rem, 3vw, 2.4rem);
	font-weight: 900;
	color: var(--color_htag);
	margin: 0 0 .2rem;
}
.ab-rep__name-kana {
	font-size: .85rem;
	color: #7a9abf;
	margin: 0;
	letter-spacing: .06em;
}
.ab-rep__credentials {
	list-style: none;
	padding: 0;
	margin: 0 0 1.6rem;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}
.ab-rep__credentials li {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: .92rem;
	color: #4a5a72;
	font-weight: 600;
}
.ab-rep__cred-icon {
	display: flex;
	align-items: center;
}
.ab-rep__message {
	font-size: .92rem;
	line-height: 1.9;
	color: #4a5a72;
	margin: 0;
	padding: 1.2rem 1.4rem;
	border-left: 3px solid var(--color_main);
	background: var(--color_pale01);
	border-radius: 0 8px 8px 0;
}
/* その他の資格・専門技術（二層目） */
.ab-rep__subcreds { margin-top: 1.4rem; }
.ab-rep__subcreds-label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: #8494a8;
	margin: 0 0 .6rem;
}
.ab-rep__subcreds-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
}
.ab-rep__subcreds-list li {
	font-size: .78rem;
	color: #4a5a72;
	line-height: 1.4;
	padding: .3rem .7rem;
	border: 1px solid var(--color_border, #e3e8ef);
	border-radius: 999px;
	background: #fff;
}

/* ── 登録・資格の表示ブロック（代表者カード内） ── */
.ab-rep__license {
	margin: 0 0 1.6rem;
	padding: 1.1rem 1.3rem;
	background: #fff;
	border: 1px solid var(--color_border, #e3e8ef);
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(20, 60, 120, .06);
}
.ab-rep__license-label {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--color_main, #1c6fd4);
	margin: 0 0 .8rem;
	padding-bottom: .6rem;
	border-bottom: 1px solid #eef2f8;
}
.ab-rep__license-list {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}
.ab-rep__license-row {
	display: grid;
	grid-template-columns: 7em 1fr;
	gap: .4rem 1rem;
	align-items: baseline;
}
.ab-rep__license-row dt {
	font-size: .82rem;
	font-weight: 700;
	color: var(--color_main, #1c6fd4);
	margin: 0;
}
.ab-rep__license-row dd {
	font-size: .88rem;
	font-weight: 600;
	color: #33465e;
	margin: 0;
	line-height: 1.6;
}
.ab-rep__license-sub {
	font-size: .78rem;
	font-weight: 500;
	color: #8494a8;
}
.ab-rep__license-tbd { color: #9aa6b6; font-weight: 500; }
@media (max-width: 520px) {
	.ab-rep__license-row { grid-template-columns: 1fr; gap: .1rem; }
	.ab-rep__license-row dt { font-size: .72rem; }
}

/* ── INFO TABLE ── */
.ab-info {
	background: var(--color_content_bg);
}
.ab-info__table-wrap {
	max-width: 760px;
	margin: 0 auto;
}
.ab-info__table {
	display: grid;
	gap: 0;
	margin: 0;
}
.ab-info__row {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 0;
	border-bottom: 1px solid var(--color_border);
}
.ab-info__row:first-child {
	border-top: 1px solid var(--color_border);
}
.ab-info__row dt,
.ab-info__row dd {
	padding: 1.2rem 1rem;
	margin: 0;
	font-size: .95rem;
	line-height: 1.8;
}
.ab-info__row dt {
	font-weight: 700;
	color: var(--color_main);
	background: var(--color_pale01);
	border-right: 1px solid var(--color_border);
	position: relative;
}
.ab-info__row dt::before {
	content: '';
	position: absolute;
	left: 0; top: 20%; bottom: 20%;
	width: 3px;
	background: linear-gradient(to bottom, var(--color_gradient1), var(--color_gradient2));
	border-radius: 2px;
}
.ab-info__row dd {
	color: var(--color_text);
}
.ab-info__row dd a {
	color: var(--color_main);
	text-decoration: none;
	font-weight: 600;
}
.ab-info__row dd a:hover {
	text-decoration: underline;
}
.ab-info__list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: .3rem;
}
.ab-info__list li::before {
	content: '— ';
	color: var(--color_main);
	font-weight: 700;
}

/* ── MAP ── */
.ab-map {
	background: var(--color_pale03);
}
.ab-map__frame {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(28,111,212,.1);
}
.ab-map__frame iframe {
	display: block;
	width: 100%;
	height: 400px;
	border: none;
}
.ab-map__placeholder {
	width: 100%;
	height: 360px;
	background: var(--color_pale01);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	color: #7a9abf;
	font-size: .9rem;
	text-align: center;
	border: 2px dashed var(--color_border);
	border-radius: 16px;
}
.ab-map__placeholder p { margin: 0; line-height: 1.6; }

/* ── CTA ── */
.ab-cta {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--color_deep03) 0%, var(--color_deep01) 60%, var(--color_main) 100%);
	padding: 96px 0;
}
.ab-cta__inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 2rem;
}
.ab-cta__en {
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .22em;
	color: rgba(255,255,255,.5);
	text-transform: uppercase;
	margin: 0 0 .5rem;
}
.ab-cta__title {
	font-size: clamp(1.6rem, 3.5vw, 2.2rem);
	font-weight: 900;
	color: #fff;
	margin: 0 0 .8rem;
}
.ab-cta__text {
	font-size: .95rem;
	color: rgba(255,255,255,.75);
	margin: 0;
}
.ab-btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-weight: 700;
	font-size: .95rem;
	padding: .9rem 2.2rem;
	border-radius: 50px;
	text-decoration: none;
	transition: transform .25s, box-shadow .25s;
}
.ab-btn--white {
	background: #fff;
	color: var(--color_main);
	box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.ab-btn--white:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 36px rgba(0,0,0,.25);
}

/* ── Responsive ── */
@media (max-width: 767px) {
	.ab-section { padding: 64px 0; }
	.ab-philosophy__inner {
		grid-template-columns: 1fr;
	}
	.ab-rep__card {
		grid-template-columns: 1fr;
		padding: 28px 20px;
		gap: 32px;
	}
	.ab-rep__photo { max-width: 200px; }
	.ab-info__row {
		grid-template-columns: 1fr;
	}
	.ab-info__row dt {
		border-right: none;
		border-bottom: 1px solid var(--color_border);
		padding-bottom: .6rem;
	}
	.ab-info__row dd { padding-top: .6rem; }
	.ab-cta { padding: 64px 0; }
}


/* ================================================================
   §20 KENKO-KEIEI PAGE
   ================================================================ */

/* --- Hero --- */
.kk-hero {
	position: relative;
	min-height: 260px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, #0d4f30 0%, #1a7a4e 55%, #2e9e6b 100%);
	overflow: hidden;
	color: #fff;
}
.kk-hero__bg {
	position: absolute; inset: 0;
	background-image:
		radial-gradient(circle at 80% 20%, rgba(255,255,255,.07) 0%, transparent 50%),
		radial-gradient(circle at 20% 80%, rgba(255,255,255,.04) 0%, transparent 40%),
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400' fill='none'%3E%3Ccircle cx='520' cy='60' r='160' stroke='%23fff' stroke-width='1' opacity='0.08'/%3E%3Ccircle cx='60' cy='360' r='110' stroke='%23fff' stroke-width='1' opacity='0.06'/%3E%3Crect x='430' y='120' width='28' height='90' rx='6' fill='%23fff' opacity='0.06'/%3E%3Crect x='400' y='148' width='90' height='28' rx='6' fill='%23fff' opacity='0.06'/%3E%3C/svg%3E");
	pointer-events: none;
}
.kk-hero__inner {
	position: relative; z-index: 1;
	padding: 60px 20px 40px;
}
.kk-hero__en {
	font-size: .72rem; font-weight: 700; letter-spacing: .22em;
	color: rgba(255,255,255,.55); text-transform: uppercase; margin: 0 0 1rem;
}
.kk-hero__title {
	font-size: clamp(2rem, 5vw, 3.2rem); font-weight: 900;
	color: #fff; line-height: 1.25; margin: 0 0 1.2rem;
}
.kk-hero__hl { color: #7ee8c0; }
.kk-hero__lead {
	font-size: clamp(.9rem, 2vw, 1.05rem);
	color: rgba(255,255,255,.82); margin: 0 0 2rem; max-width: 520px; line-height: 1.85;
}

/* --- Merit cards --- */
.kk-merit { background: var(--color_pale03); }
.kk-merit__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.kk-merit-card {
	background: #fff; border-radius: 16px; padding: 28px 22px;
	border: 1px solid var(--color_border);
	transition: transform .3s, box-shadow .3s;
}
.kk-merit-card:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(46,158,107,.13); }
.kk-merit-card__icon {
	width: 50px; height: 50px; border-radius: 14px;
	background: linear-gradient(135deg, #1a7a4e, #2e9e6b);
	display: flex; align-items: center; justify-content: center;
	color: #fff; margin-bottom: 1rem;
}
.kk-merit-card__title { font-size: .97rem; font-weight: 700; color: var(--color_htag); margin: 0 0 .5rem; }
.kk-merit-card__desc { font-size: .85rem; color: #5a6f88; line-height: 1.8; margin: 0; }

/* --- Service blocks --- */
.kk-services__list { display: grid; gap: 28px; max-width: 860px; margin-inline: auto; }
.kk-service-block {
	background: #fff; border-radius: 16px; padding: 36px 36px 32px;
	box-shadow: 0 2px 20px rgba(0,0,0,.06);
	border-top: 4px solid #2e9e6b;
	transition: box-shadow .3s;
}
.kk-service-block:hover { box-shadow: 0 8px 32px rgba(46,158,107,.12); }
.kk-service-block__header {
	display: flex; align-items: center; gap: 14px; margin-bottom: 24px;
}
.kk-service-block__num {
	font-size: 1.9rem; font-weight: 900; color: #2e9e6b; opacity: .3;
	line-height: 1; flex-shrink: 0;
}
.kk-service-block__icon {
	width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
	background: linear-gradient(135deg, #1a7a4e, #2e9e6b);
	display: flex; align-items: center; justify-content: center; color: #fff;
}
.kk-service-block__title {
	font-size: clamp(1rem, 2vw, 1.15rem); font-weight: 800;
	color: var(--color_htag); margin: 0; line-height: 1.4;
}
.kk-service-block__items { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.kk-service-block__items li {
	padding: 14px 18px; border-radius: 10px;
	background: #f4fdf8; border-left: 3px solid #2e9e6b;
}
.kk-service-block__item-title {
	display: block; font-weight: 700; color: #1a7a4e;
	margin-bottom: .3rem; font-size: .93rem;
}
.kk-service-block__items p { margin: 0; color: #5a6677; line-height: 1.8; font-size: .9rem; }

/* --- Flow --- */
.kk-flow { background: var(--color_content_bg); }
.kk-flow__list {
	list-style: none; margin: 0 auto; padding: 0;
	max-width: 720px; display: grid; gap: 0;
	counter-reset: none;
}
.kk-flow__step {
	display: grid; grid-template-columns: 64px 1fr; gap: 20px;
	padding: 28px 0; border-bottom: 1px solid var(--color_border); align-items: start;
}
.kk-flow__step:first-child { border-top: 1px solid var(--color_border); }
.kk-flow__step-num {
	font-size: 2rem; font-weight: 900; color: #2e9e6b; opacity: .3;
	line-height: 1; padding-top: 3px;
}
.kk-flow__step-title { font-size: 1rem; font-weight: 700; color: var(--color_htag); margin: 0 0 .4rem; }
.kk-flow__step-desc { font-size: .9rem; color: #5a6f88; line-height: 1.8; margin: 0; }

/* --- Notice --- */
.kk-notice-section { padding: 48px 0; background: #f0faf5; }
.kk-notice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.kk-notice-card {
	display: flex; gap: 16px; align-items: flex-start;
	background: #fff; border-radius: 14px; padding: 24px 22px;
	border-left: 4px solid #2e9e6b;
	box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.kk-notice-card--sr { border-left-color: #0d5a3c; }
.kk-notice-card__icon {
	width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	background: #e8f7f0; color: #2e9e6b;
}
.kk-notice-card--sr .kk-notice-card__icon { background: #e3f3ea; color: #0d5a3c; }
.kk-notice-card__title { font-size: .97rem; font-weight: 700; color: var(--color_htag); margin: 0 0 .5rem; }
.kk-notice-card__desc { font-size: .88rem; color: #5a6f88; line-height: 1.82; margin: 0; }

/* --- Responsive --- */
@media (max-width: 960px) {
	.kk-merit__grid { grid-template-columns: repeat(2, 1fr); }
	.kk-notice-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.kk-merit__grid { grid-template-columns: 1fr; }
	.kk-service-block { padding: 24px 20px; }
	.kk-service-block__header { gap: 10px; }
	.kk-flow__step { grid-template-columns: 48px 1fr; gap: 14px; }
}

/* ============================================================
   §  健康経営（追加ブロック）
       page-kenko-keiei.php リニューアル用。
       青=行政書士 / 緑=理学療法士 のダブルライセンスを視覚化。
   ============================================================ */
.kk-section { padding: 96px 0; }
.kk-br-sp { display: none; }

/* --- Section head (dark bg variant) --- */
.em-section-head--light .em-section-en { color: #7ee8c0; }
.em-section-head--light .em-section-ja { color: #fff; }
.em-section-head--light .em-section-lead { color: rgba(255,255,255,.8); }

/* --- Problem stats --- */
.kk-problem { background: var(--color_content_bg); }
.kk-stat__grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
	max-width: 900px; margin: 0 auto;
}
.kk-stat {
	text-align: center; background: #fff;
	border: 1px solid var(--color_border); border-radius: 18px;
	padding: 34px 22px 30px;
	transition: transform .3s, box-shadow .3s;
}
.kk-stat:hover { transform: translateY(-5px); box-shadow: 0 14px 36px rgba(46,158,107,.13); }
.kk-stat__icon {
	width: 52px; height: 52px; border-radius: 50%; margin: 0 auto 14px;
	display: flex; align-items: center; justify-content: center;
	background: #e8f7f0; color: #1a7a4e;
}
.kk-stat__num {
	font-size: clamp(2.2rem, 6vw, 3rem); font-weight: 900; line-height: 1;
	color: #1a7a4e; margin: 0 0 .3rem;
}
.kk-stat__label { font-size: 1rem; font-weight: 800; color: var(--color_htag); margin: 0 0 .7rem; }
.kk-stat__desc { font-size: .85rem; color: #5a6f88; line-height: 1.75; margin: 0; }
.kk-problem__note {
	text-align: center; margin: 40px auto 0; max-width: 640px;
	font-size: 1.02rem; font-weight: 700; color: var(--color_htag);
}

/* --- Double license --- */
.kk-double {
	background: linear-gradient(135deg, #0b3a26 0%, #0d5a3c 45%, #1a7a4e 100%);
	color: #fff;
}
.kk-double__grid {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: stretch;
	gap: 20px; max-width: 880px; margin: 0 auto;
}
.kk-double__card {
	background: rgba(255,255,255,.06); border-radius: 20px;
	padding: 38px 30px; text-align: center;
	border: 1px solid rgba(255,255,255,.14);
	backdrop-filter: blur(3px);
}
.kk-double__icon {
	width: 64px; height: 64px; border-radius: 18px; margin: 0 auto 18px;
	display: flex; align-items: center; justify-content: center; color: #fff;
}
.kk-double__card--admin .kk-double__icon { background: linear-gradient(135deg, #0d5a3c, #14724a); }
.kk-double__card--pt    .kk-double__icon { background: linear-gradient(135deg, #1a7a4e, #2e9e6b); }
.kk-double__role { font-size: 1.15rem; font-weight: 900; margin: 0 0 .8rem; }
.kk-double__card--admin .kk-double__role { color: #a7e8c9; }
.kk-double__card--pt    .kk-double__role { color: #7ee8c0; }
.kk-double__lead { font-size: 1.02rem; font-weight: 700; margin: 0 0 .8rem; color: #fff; }
.kk-double__lead strong { color: #ffe27a; }
.kk-double__desc { font-size: .9rem; line-height: 1.85; margin: 0; color: rgba(255,255,255,.82); }
.kk-double__x {
	display: flex; align-items: center; justify-content: center;
	font-size: 2.2rem; font-weight: 900; color: rgba(255,255,255,.55);
}
.kk-double__foot {
	text-align: center; margin: 36px auto 0; max-width: 660px;
	font-size: .98rem; font-weight: 700; color: #fff;
}

/* 代表の経験（登録支援機関の経験） — STRENGTH（青背景）内の白カード */
.em-exp-note {
	max-width: 720px;
	margin: 28px auto 0;
	padding: 20px 24px;
	background: rgba(255, 255, 255, .12);
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 14px;
	backdrop-filter: blur(2px);
}
.em-exp-note__badge {
	display: inline-block;
	margin-bottom: .6rem;
	padding: .28em .9em;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	color: #0d3a6e;
	background: #ffd98a;
	border-radius: 999px;
}
.em-exp-note__text {
	margin: 0;
	font-size: .95rem;
	line-height: 1.9;
	color: #fff;
}
.em-exp-note__text strong {
	color: #fff;
	border-bottom: 2px solid #ffd98a;
	padding-bottom: 1px;
}
@media (max-width: 599px) {
	.em-exp-note { padding: 16px 18px; }
	.em-exp-note__text { font-size: .9rem; line-height: 1.85; }
}

/* --- Pillars (2本柱) --- */
.kk-pillars__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 26px;
	max-width: 940px; margin: 0 auto;
}
.kk-pillar {
	background: #fff; border-radius: 20px; padding: 34px 32px 30px;
	box-shadow: 0 2px 20px rgba(0,0,0,.06);
	border-top: 5px solid #2e9e6b;
	transition: transform .3s, box-shadow .3s;
}
.kk-pillar:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(15,46,92,.12); }
.kk-pillar--admin { border-top-color: #0d5a3c; }
.kk-pillar--pt    { border-top-color: #2e9e6b; }
.kk-pillar__head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.kk-pillar__tag {
	width: 46px; height: 46px; border-radius: 12px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	font-size: 1.4rem; font-weight: 900; color: #fff;
}
.kk-pillar--admin .kk-pillar__tag { background: linear-gradient(135deg, #0d5a3c, #14724a); }
.kk-pillar--pt    .kk-pillar__tag { background: linear-gradient(135deg, #1a7a4e, #2e9e6b); }
.kk-pillar__title { font-size: clamp(1.05rem, 2.2vw, 1.2rem); font-weight: 800; color: var(--color_htag); margin: 0 0 .3rem; line-height: 1.4; }
.kk-pillar__sub { font-size: .78rem; font-weight: 700; letter-spacing: .04em; margin: 0; }
.kk-pillar--admin .kk-pillar__sub { color: #0d5a3c; }
.kk-pillar--pt    .kk-pillar__sub { color: #1a7a4e; }
.kk-pillar__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.kk-pillar__list li {
	padding: 14px 16px; border-radius: 10px;
	font-size: .88rem; color: #5a6677; line-height: 1.8;
}
.kk-pillar--admin .kk-pillar__list li { background: #eef8f1; border-left: 3px solid #0d5a3c; }
.kk-pillar--pt    .kk-pillar__list li { background: #f4fdf8; border-left: 3px solid #2e9e6b; }
.kk-pillar__list li span { display: block; font-weight: 700; margin-bottom: .3rem; font-size: .95rem; }
.kk-pillar--admin .kk-pillar__list li span { color: #0d5a3c; }
.kk-pillar--pt    .kk-pillar__list li span { color: #1a7a4e; }

/* 地域事業 当面無料の案内（B柱） */
.kk-pillar__free {
	display: flex; align-items: flex-start; gap: 10px;
	margin: 0 0 18px;
	padding: 14px 16px;
	background: linear-gradient(135deg, #1fa492, #14806f);
	border-radius: 10px;
	box-shadow: 0 6px 16px rgba(20, 128, 111, .22);
	font-size: .86rem; font-weight: 600; line-height: 1.8;
	color: #fff;
}
.kk-pillar__free-badge {
	flex: none;
	padding: .24em .8em;
	font-size: .72rem; font-weight: 800; letter-spacing: .04em;
	color: #14806f; background: #fff;
	border-radius: 999px; white-space: nowrap;
}

/* --- Subsidy banner --- */
.kk-subsidy { background: linear-gradient(135deg, #0d4f30 0%, #1a7a4e 55%, #2e9e6b 100%); color: #fff; padding: 72px 0; }
.kk-subsidy__inner { display: flex; align-items: center; gap: 46px; }
.kk-subsidy__badge {
	flex-shrink: 0; width: 200px; text-align: center;
	background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.28);
	border-radius: 20px; padding: 26px 18px;
}
.kk-subsidy__badge-cap { display: block; font-size: .85rem; font-weight: 700; color: rgba(255,255,255,.8); }
.kk-subsidy__badge-num { display: block; font-size: 3.4rem; font-weight: 900; line-height: 1.05; color: #fff; }
.kk-subsidy__badge-num small { font-size: 1.1rem; font-weight: 800; }
.kk-subsidy__badge-rate {
	display: inline-block; margin-top: 8px; padding: .3em 1em;
	background: #ffe27a; color: #0d4f30; border-radius: 999px;
	font-size: .82rem; font-weight: 800;
}
.kk-subsidy__en { font-size: .72rem; font-weight: 700; letter-spacing: .22em; color: rgba(255,255,255,.6); margin: 0 0 .6rem; }
.kk-subsidy__title { font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 900; color: #fff; margin: 0 0 1rem; }
.kk-subsidy__text { font-size: .95rem; line-height: 1.9; color: rgba(255,255,255,.88); margin: 0 0 1.2rem; max-width: 560px; }
.kk-subsidy__steps { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0 0 1rem; }
.kk-subsidy__steps li {
	position: relative; padding: .5em 1.1em .5em 2.4em; border-radius: 999px;
	background: rgba(255,255,255,.12); font-size: .86rem; font-weight: 700; counter-increment: kkstep;
}
.kk-subsidy__steps { counter-reset: kkstep; }
.kk-subsidy__steps li::before {
	content: counter(kkstep); position: absolute; left: .7em; top: 50%; transform: translateY(-50%);
	width: 1.4em; height: 1.4em; border-radius: 50%; background: #ffe27a; color: #0d4f30;
	display: flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 900;
}
.kk-subsidy__note { font-size: .78rem; color: rgba(255,255,255,.7); margin: 0; }

/* --- Local --- */
.kk-local { padding: 60px 0; background: #f0faf5; }
.kk-local__inner { display: flex; align-items: center; gap: 26px; max-width: 820px; margin: 0 auto; }
.kk-local__icon {
	width: 68px; height: 68px; border-radius: 18px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center; color: #fff;
	background: linear-gradient(135deg, #1a7a4e, #2e9e6b);
}
.kk-local__title { font-size: clamp(1.2rem, 2.6vw, 1.5rem); font-weight: 800; color: var(--color_htag); margin: 0 0 .6rem; }
.kk-local__text { font-size: .92rem; line-height: 1.9; color: #4a5a6e; margin: 0; }

/* --- 白ボタンの文字色を緑に（青のチラつき防止） --- */
.kk-hero .em-btn--white,
.em-cta--green .em-btn--white { color: #1a7a4e; }

/* --- CTA（緑統一） --- */
.em-cta--green { background: linear-gradient(135deg, #0d4f30 0%, #1a7a4e 55%, #2e9e6b 100%); }

/* --- Responsive (追加ブロック) --- */
@media (max-width: 960px) {
	.kk-section { padding: 72px 0; }
	.kk-double__grid { grid-template-columns: 1fr; }
	.kk-double__x { padding: 4px 0; }
	.kk-subsidy__inner { gap: 30px; }
}
@media (max-width: 600px) {
	.kk-br-sp { display: inline; }
	.kk-stat__grid { grid-template-columns: 1fr; gap: 16px; }
	.kk-pillars__grid { grid-template-columns: 1fr; }
	.kk-subsidy__inner { flex-direction: column; text-align: center; gap: 24px; }
	.kk-subsidy__badge { width: 100%; max-width: 260px; }
	.kk-subsidy__steps { justify-content: center; }
	.kk-local__inner { flex-direction: column; text-align: center; gap: 16px; }
}

/* ============================================================
   §  終活 ／ サービス詳細プラン（sk-plan）・締め（sk-closing）
       page-shukatsu.php で使用。em-* デザインと同系。
   ============================================================ */
.sk-plans { background: var(--color_pale03); }
.sk-plans__list {
	display: flex;
	flex-direction: column;
	gap: 32px;
	max-width: 820px;
	margin: 0 auto;
}
.sk-plan {
	background: var(--color_content_bg);
	border: 1px solid var(--color_border);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(28, 111, 212, .06);
}
.sk-plan__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .3rem 1rem;
	padding: 22px 32px;
	background: linear-gradient(135deg, var(--color_main) 0%, #2f97e0 100%);
	color: #fff;
}
.sk-plan__title { font-size: 1.2rem; font-weight: 800; margin: 0; }
.sk-plan__price { font-size: 1.15rem; font-weight: 800; margin: 0; white-space: nowrap; }
.sk-plan__body { padding: 28px 32px 32px; }
.sk-plan__lead { font-size: .95rem; color: #5a6f88; line-height: 1.9; margin: 0; }
.sk-plan__lead strong { color: var(--color_main_dark); }
.sk-plan__label {
	font-size: .98rem;
	font-weight: 700;
	color: var(--color_htag);
	margin: 1.7rem 0 .9rem;
	padding-left: .7rem;
	border-left: 4px solid var(--color_main);
	line-height: 1.4;
}

/* サービスの流れ（ステップ pill） */
.sk-plan__flow {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}
.sk-plan__flow li {
	display: inline-flex;
	align-items: center;
	font-size: .86rem;
	color: var(--color_text);
	background: var(--color_pale01);
	border: 1px solid var(--color_border);
	border-radius: 999px;
	padding: .38rem .9rem;
}
.sk-plan__flow li:not(:last-child)::after {
	content: '→';
	color: var(--color_main);
	margin-left: .7rem;
	font-weight: 700;
}

/* チェックリスト */
.sk-plan__check { list-style: none; padding: 0; margin: 0; }
.sk-plan__check li {
	position: relative;
	padding-left: 1.9rem;
	font-size: .93rem;
	color: var(--color_text);
	line-height: 1.8;
	margin-bottom: .55rem;
}
.sk-plan__check li:last-child { margin-bottom: 0; }
.sk-plan__check li::before {
	content: '';
	position: absolute;
	left: .2rem;
	top: .32em;
	width: .95rem;
	height: .5rem;
	border-left: 2px solid var(--color_main);
	border-bottom: 2px solid var(--color_main);
	transform: rotate(-45deg);
}

/* 「必要な方」プレーンリスト */
.sk-plan__need { padding-left: 1.2rem; margin: 0; }
.sk-plan__need li {
	font-size: .93rem;
	color: var(--color_text);
	line-height: 1.8;
	margin-bottom: .4rem;
}
.sk-plan__need li:last-child { margin-bottom: 0; }

/* 詳しい流れ（番号付きステップ） */
.sk-plan__steps { list-style: none; counter-reset: skstep; padding: 0; margin: 0; }
.sk-plan__steps > li {
	position: relative;
	counter-increment: skstep;
	padding: 0 0 1.5rem 3rem;
	margin-left: 1rem;
	border-left: 2px solid var(--color_border);
}
.sk-plan__steps > li:last-child { border-left-color: transparent; padding-bottom: 0; }
.sk-plan__steps > li::before {
	content: counter(skstep);
	position: absolute;
	left: -1rem;
	top: -.15rem;
	width: 2rem;
	height: 2rem;
	background: var(--color_main);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .9rem;
	font-weight: 700;
}
.sk-plan__step-title { font-size: 1rem; font-weight: 700; color: var(--color_htag); margin: 0 0 .5rem; }
.sk-plan__step-desc { font-size: .9rem; color: #5a6f88; line-height: 1.85; margin: 0; }

.sk-plan__note { font-size: .82rem; color: #7a8aa0; line-height: 1.7; margin: 1.3rem 0 0; }

/* 締めメッセージ */
.sk-closing { background: var(--color_pale01); text-align: center; }
.sk-closing__title {
	font-size: clamp(1.15rem, 2.6vw, 1.5rem);
	font-weight: 800;
	color: var(--color_htag);
	line-height: 1.6;
	margin: 0 auto 1.1rem;
	max-width: 780px;
}
.sk-closing__text {
	font-size: .95rem;
	color: #5a6f88;
	line-height: 1.95;
	margin: 0 auto;
	max-width: 700px;
}

@media (max-width: 600px) {
	.sk-plans__list { gap: 24px; }
	.sk-plan__head { padding: 18px 20px; }
	.sk-plan__body { padding: 22px 20px 26px; }
	.sk-plan__steps > li { padding-left: 2.6rem; }
	.sk-plan__steps > li::before { width: 1.8rem; height: 1.8rem; left: -.9rem; }
}


/* ============================================================
   §  終活支援サービス（page-id-268）：青系テーマ → オレンジ（warm）へ統一
   ※ 雇用ページと共有の em-* は変えず、このページだけ上書き。
      トップページの終活カード（--fp-warm: #d39433 系）と色を合わせる。
   ============================================================ */
.page-id-268 .em-hero {
	background: linear-gradient(135deg, #8a5e19 0%, #d39433 60%, #e8b45a 100%);
}
.page-id-268 .em-hero__hl { color: #ffe1a1; }
.page-id-268 .em-btn--white { color: #a3701e; }
.page-id-268 .em-section-en { color: #d39433; }
.page-id-268 .em-service-card__icon {
	background: linear-gradient(135deg, #d39433, #e6b052);
}
.page-id-268 .em-service-card:hover {
	box-shadow: 0 16px 40px rgba(211, 148, 51, .16);
}
.page-id-268 .em-feature__en { color: #d39433; }

/* サービス詳細プラン（sk-plan） */
.page-id-268 .sk-plan { box-shadow: 0 10px 30px rgba(211, 148, 51, .08); }
.page-id-268 .sk-plan__head {
	background: linear-gradient(135deg, #d39433 0%, #e6b052 100%);
}
.page-id-268 .sk-plan__lead strong { color: #a3701e; }
.page-id-268 .sk-plan__label { border-left-color: #d39433; }
.page-id-268 .sk-plan__flow li:not(:last-child)::after { color: #d39433; }
.page-id-268 .sk-plan__check li::before {
	border-left-color: #d39433;
	border-bottom-color: #d39433;
}
.page-id-268 .sk-plan__steps > li::before { background: #d39433; }

/* CTA */
.page-id-268 .em-cta {
	background: linear-gradient(135deg, #8a5e19 0%, #d39433 60%, #e8b45a 100%);
}


/* ============================================================
   kk--blue ／ 健康経営（kk-）部品の青テーマ流用
   対象：外国人雇用サービスページ（page-employment.php）
   緑（#0d5a3c / #1a7a4e / #2e9e6b）→ 青（#0f3a6e / #14529e / #1c6fd4）
   ============================================================ */

/* --- PROBLEM ／ 統計カード --- */
.kk--blue .kk-stat:hover { box-shadow: 0 14px 36px rgba(28,111,212,.13); }
.kk--blue .kk-stat__icon { background: var(--color_main_thin); color: var(--color_main_dark); }
.kk--blue .kk-stat__num { color: var(--color_main_dark); }
.kk--blue .kk-problem__src {
	margin: 28px auto 0; max-width: 760px; text-align: center;
	font-size: .72rem; color: #8a99ad; line-height: 1.8;
}

/* --- STRENGTH ／ ダブルライセンス --- */
.kk-double.kk--blue { background: linear-gradient(135deg, #0a2a52 0%, #14529e 45%, #1c6fd4 100%); }
.kk--blue .kk-double__card--admin .kk-double__icon { background: linear-gradient(135deg, #14529e, #1c6fd4); }
.kk--blue .kk-double__card--pt    .kk-double__icon { background: linear-gradient(135deg, #1c6fd4, #1fa492); }
.kk--blue .kk-double__card--admin .kk-double__role { color: #a9cdf7; }
.kk--blue .kk-double__card--pt    .kk-double__role { color: #7ee0d0; }
.kk--blue .em-section-head--light .em-section-en { color: #7ec3ff; }

/* --- SERVICES ／ 2本柱 --- */
.kk--blue .kk-pillar--admin { border-top-color: #14529e; }
.kk--blue .kk-pillar--pt    { border-top-color: #1fa492; }
.kk--blue .kk-pillar--admin .kk-pillar__tag { background: linear-gradient(135deg, #14529e, #1c6fd4); }
.kk--blue .kk-pillar--pt    .kk-pillar__tag { background: linear-gradient(135deg, #1fa492, #2bc4ae); }
.kk--blue .kk-pillar--admin .kk-pillar__sub { color: #14529e; }
.kk--blue .kk-pillar--pt    .kk-pillar__sub { color: #14806f; }
.kk--blue .kk-pillar--admin .kk-pillar__list li { background: #eef4fd; border-left-color: #14529e; }
.kk--blue .kk-pillar--pt    .kk-pillar__list li { background: #edfaf7; border-left-color: #1fa492; }
.kk--blue .kk-pillar--admin .kk-pillar__list li span { color: #14529e; }
.kk--blue .kk-pillar--pt    .kk-pillar__list li span { color: #14806f; }

/* --- FLOW ／ ステップ番号 --- */
.kk--blue .kk-flow__step-num { color: #1c6fd4; }

/* --- LOCAL ／ 地域密着 --- */
.kk-local.kk--blue { background: #f0f6fd; }
.kk--blue .kk-local__icon { background: linear-gradient(135deg, #14529e, #1c6fd4); }

/* --- NOTICE ／ 注意カード --- */
.kk-notice-section.kk--blue { background: #f0f6fd; }
.kk--blue .kk-notice-card { border-left-color: #1c6fd4; }
.kk--blue .kk-notice-card--sr { border-left-color: #14529e; }
.kk--blue .kk-notice-card__icon { background: var(--color_main_thin); color: #1c6fd4; }
.kk--blue .kk-notice-card--sr .kk-notice-card__icon { background: #e3ecf7; color: #14529e; }


/* ============================================================
   kk--warm ／ 健康経営（kk-）部品の杏色テーマ流用
   対象：終活支援サービスページ（page-shukatsu.php）
   緑（#0d5a3c / #1a7a4e / #2e9e6b）→ 杏（#8a5e19 / #a3701e / #d39433）
   ※ トップページの終活カード（--fp-warm: #d39433 系）と統一。
      臨床側（--pt）のティールは他ページと共通。
   ============================================================ */

/* --- PROBLEM ／ 統計カード --- */
.kk--warm .kk-stat:hover { box-shadow: 0 14px 36px rgba(211,148,51,.13); }
.kk--warm .kk-stat__icon { background: #faf0dd; color: #a3701e; }
.kk--warm .kk-stat__num { color: #a3701e; }
.kk--warm .kk-problem__src {
	margin: 28px auto 0; max-width: 760px; text-align: center;
	font-size: .72rem; color: #8a99ad; line-height: 1.8;
}

/* --- STRENGTH ／ ダブルライセンス --- */
.kk-double.kk--warm { background: linear-gradient(135deg, #6e4a12 0%, #a3701e 45%, #d39433 100%); }
.kk--warm .kk-double__card--admin .kk-double__icon { background: linear-gradient(135deg, #a3701e, #d39433); }
.kk--warm .kk-double__card--pt    .kk-double__icon { background: linear-gradient(135deg, #1fa492, #2bc4ae); }
.kk--warm .kk-double__card--admin .kk-double__role { color: #f2d29a; }
.kk--warm .kk-double__card--pt    .kk-double__role { color: #7ee0d0; }
.kk--warm .em-section-head--light .em-section-en { color: #ffd08a; }

/* --- SERVICES ／ 2本柱 --- */
.kk--warm .kk-pillar--admin { border-top-color: #a3701e; }
.kk--warm .kk-pillar--pt    { border-top-color: #1fa492; }
.kk--warm .kk-pillar--admin .kk-pillar__tag { background: linear-gradient(135deg, #a3701e, #d39433); }
.kk--warm .kk-pillar--pt    .kk-pillar__tag { background: linear-gradient(135deg, #1fa492, #2bc4ae); }
.kk--warm .kk-pillar--admin .kk-pillar__sub { color: #a3701e; }
.kk--warm .kk-pillar--pt    .kk-pillar__sub { color: #14806f; }
.kk--warm .kk-pillar--admin .kk-pillar__list li { background: #fdf6ea; border-left-color: #a3701e; }
.kk--warm .kk-pillar--pt    .kk-pillar__list li { background: #edfaf7; border-left-color: #1fa492; }
.kk--warm .kk-pillar--admin .kk-pillar__list li span { color: #a3701e; }
.kk--warm .kk-pillar--pt    .kk-pillar__list li span { color: #14806f; }

/* --- FLOW --- */
.kk--warm .kk-flow__step-num { color: #d39433; }

/* --- LOCAL --- */
.kk-local.kk--warm { background: #fdf6ec; }
.kk--warm .kk-local__icon { background: linear-gradient(135deg, #a3701e, #d39433); }

/* --- NOTICE --- */
.kk-notice-section.kk--warm { background: #fdf6ec; }
.kk--warm .kk-notice-card { border-left-color: #d39433; }
.kk--warm .kk-notice-card--sr { border-left-color: #a3701e; }
.kk--warm .kk-notice-card__icon { background: #faf0dd; color: #b57f22; }
.kk--warm .kk-notice-card--sr .kk-notice-card__icon { background: #f3e6cc; color: #a3701e; }


/* ============================================================
   kk--teal ／ 健康経営（kk-）部品のティールテーマ流用
   対象：研修依頼ページ（page-kenshu.php）
   緑（#0d5a3c / #1a7a4e / #2e9e6b）→ ティール（#0d6b5c / #14806f / #1fa492）
   ※ HERO（kh-hero）の「制度＝青×からだ＝ティール」に合わせ、
      A柱（制度）は青、B柱（からだ・地域）はティールで出し分け。
   ============================================================ */

/* --- PROBLEM ／ 統計カード --- */
.kk--teal .kk-stat:hover { box-shadow: 0 14px 36px rgba(31,164,146,.13); }
.kk--teal .kk-stat__icon { background: #e5f6f2; color: #14806f; }
.kk--teal .kk-stat__num { color: #14806f; }
.kk--teal .kk-problem__src {
	margin: 28px auto 0; max-width: 760px; text-align: center;
	font-size: .72rem; color: #8a99ad; line-height: 1.8;
}

/* --- STRENGTH ／ ダブルライセンス --- */
.kk-double.kk--teal { background: linear-gradient(135deg, #0a3f36 0%, #14806f 45%, #1fa492 100%); }
.kk--teal .kk-double__card--admin .kk-double__icon { background: linear-gradient(135deg, #14529e, #1c6fd4); }
.kk--teal .kk-double__card--pt    .kk-double__icon { background: linear-gradient(135deg, #1fa492, #2bc4ae); }
.kk--teal .kk-double__card--admin .kk-double__role { color: #a9cdf7; }
.kk--teal .kk-double__card--pt    .kk-double__role { color: #7ee0d0; }
.kk--teal .em-section-head--light .em-section-en { color: #7ee0d0; }

/* --- PROGRAMS ／ 2本柱 --- */
.kk--teal .kk-pillar--admin { border-top-color: #14529e; }
.kk--teal .kk-pillar--pt    { border-top-color: #1fa492; }
.kk--teal .kk-pillar--admin .kk-pillar__tag { background: linear-gradient(135deg, #14529e, #1c6fd4); }
.kk--teal .kk-pillar--pt    .kk-pillar__tag { background: linear-gradient(135deg, #1fa492, #2bc4ae); }
.kk--teal .kk-pillar--admin .kk-pillar__sub { color: #14529e; }
.kk--teal .kk-pillar--pt    .kk-pillar__sub { color: #14806f; }
.kk--teal .kk-pillar--admin .kk-pillar__list li { background: #eef4fd; border-left-color: #14529e; }
.kk--teal .kk-pillar--pt    .kk-pillar__list li { background: #edfaf7; border-left-color: #1fa492; }
.kk--teal .kk-pillar--admin .kk-pillar__list li span { color: #14529e; }
.kk--teal .kk-pillar--pt    .kk-pillar__list li span { color: #14806f; }

/* --- FLOW --- */
.kk--teal .kk-flow__step-num { color: #1fa492; }

/* --- LOCAL --- */
.kk-local.kk--teal { background: #eefaf7; }
.kk--teal .kk-local__icon { background: linear-gradient(135deg, #14806f, #1fa492); }

/* --- NOTICE --- */
.kk-notice-section.kk--teal { background: #eefaf7; }
.kk--teal .kk-notice-card { border-left-color: #1fa492; }
.kk--teal .kk-notice-card--sr { border-left-color: #14806f; }
.kk--teal .kk-notice-card__icon { background: #e5f6f2; color: #1fa492; }
.kk--teal .kk-notice-card--sr .kk-notice-card__icon { background: #d8f1ea; color: #14806f; }


/* ============================================================
   §  指定申請・加算サポート（page-id-253）：em-* / sk-* / kk-subsidy をティールへ
   対象：page-applivation.php
   ※ kk-部品は kk--teal を使用。トップの p-fp-card--care（#1fa492 / #16806f）と統一。
   ============================================================ */
.page-id-253 .em-hero {
	background: linear-gradient(135deg, #0a3f36 0%, #14806f 55%, #1fa492 100%);
}
.page-id-253 .em-hero__hl { color: #7ee0d0; }
.page-id-253 .em-btn--white { color: #14806f; }
.page-id-253 .em-section-en { color: #1fa492; }

/* 統計カード・締め文の行末に1文字だけ落ちないよう行を均等化 */
.page-id-253 .kk-stat__label,
.page-id-253 .kk-stat__desc,
.page-id-253 .kk-problem__note,
.page-id-253 .kk-double__lead,
.page-id-253 .kk-double__foot { text-wrap: balance; }

/* 料金プラン（sk-plan） */
.page-id-253 .sk-plan { box-shadow: 0 10px 30px rgba(31, 164, 146, .08); }
.page-id-253 .sk-plan__head {
	background: linear-gradient(135deg, #14806f 0%, #1fa492 100%);
}
.page-id-253 .sk-plan__label { border-left-color: #1fa492; }
.page-id-253 .sk-plan__check li::before {
	border-left-color: #1fa492;
	border-bottom-color: #1fa492;
}
.page-id-253 .sk-plan__lead strong { color: #14806f; }

/* PICK UP（kk-subsidy） */
.page-id-253 .kk-subsidy {
	background: linear-gradient(135deg, #0a3f36 0%, #14806f 55%, #1fa492 100%);
}
.page-id-253 .kk-subsidy__badge-rate { background: #ffe27a; color: #0a3f36; }
.page-id-253 .kk-subsidy__steps li::before { background: #ffe27a; color: #0a3f36; }

/* CTA */
.page-id-253 .em-cta {
	background: linear-gradient(135deg, #0a3f36 0%, #14806f 60%, #1fa492 100%);
}


/* =================================================================
   ヘッダーCTAボタン（functions.php が header_menu 末尾に追加）
   ================================================================= */
.c-hdCta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .62em 1.35em;
	border-radius: 999px;
	background: linear-gradient(120deg, #c75e10, #e88220);
	color: #fff !important;
	font-size: .84rem;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1;
	white-space: nowrap;
	box-shadow: 0 8px 18px rgba(180, 80, 10, .25);
	transition: transform .3s, box-shadow .3s;
}
.c-hdCta__btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px rgba(180, 80, 10, .35);
}
/* PCグローバルナビ内：SWELLの a { height:100%; flex-direction:column } を打ち消して縦中央のピル型に */
.c-gnav > .menu-item.c-hdCta {
	display: flex;
	align-items: center;
	margin-left: .6em;
}
.c-gnav > .menu-item.c-hdCta > a.c-hdCta__btn {
	height: auto;
	flex-direction: row;
	padding: .62em 1.35em;
}
.c-gnav > .menu-item.c-hdCta > a::before,
.c-gnav > .menu-item.c-hdCta > a::after { content: none !important; }
/* スマホのドロワーメニュー内ではブロックボタンに */
.c-spMenu .c-hdCta,
.c-spMenu__nav .c-hdCta { padding: 1em 1.2em 0; }
.c-spMenu .c-hdCta .c-hdCta__btn,
.c-spMenu__nav .c-hdCta .c-hdCta__btn {
	display: flex;
	width: 100%;
	padding: .95em 1em;
}


/* =================================================================
   スマホ用 画面下固定バー（フォーム｜LINE｜電話）
   functions.php の wp_footer で全ページに出力
   ================================================================= */
.c-spContactBar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9990;
	display: flex;
	background: #fff;
	border-top: 1px solid #e4eaf3;
	box-shadow: 0 -8px 24px rgba(15, 46, 92, .12);
	padding-bottom: env(safe-area-inset-bottom);
}
.c-spContactBar__item {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	padding: .55rem 0 .5rem;
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .06em;
	line-height: 1;
	color: #1a3a55;
	text-decoration: none;
}
.c-spContactBar__item + .c-spContactBar__item { border-left: 1px solid #eef2f8; }
.c-spContactBar__item--form svg { color: #d97b29; }
.c-spContactBar__item--line svg { color: #06c755; }
.c-spContactBar__item--tel  svg { color: #1c6fd4; }
@media (min-width: 960px) {
	.c-spContactBar { display: none; }
}
@media (max-width: 959px) {
	/* バーの高さぶんコンテンツを底上げ（フッターが隠れないように） */
	body { padding-bottom: calc(54px + env(safe-area-inset-bottom)); }
}


/* =================================================================
   料金の目安（endo_price_section / page-price.php 共通）
   ================================================================= */
.p-priceSec {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
	padding-block: clamp(3.2rem, 7vw, 5.5rem);
	background: #f5f8fc;
}
.p-priceSec__head { text-align: center; margin-bottom: clamp(1.8rem, 4vw, 2.8rem); }
.p-priceSec__en {
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .22em;
	color: #1c6fd4;
	margin: 0 0 .5rem;
}
.p-priceSec__ja {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.5rem, 3.4vw, 2.1rem);
	font-weight: 600;
	color: #1b2b44;
	letter-spacing: .05em;
	line-height: 1.35;
	margin: 0;
}
.p-priceSec__ja::after {
	content: "";
	display: block;
	width: 44px;
	height: 3px;
	margin: .75rem auto 0;
	border-radius: 3px;
	background: linear-gradient(90deg, #1c6fd4, #1fa492);
}
.p-priceSec__lead { margin: .9rem 0 0; color: #5a6677; font-size: .94rem; line-height: 1.9; }

/* テーブル */
.p-priceTable {
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 10px 30px rgba(20, 60, 120, .08);
	padding: .4rem 1.5rem;
}
.p-priceTable table { width: 100%; border-collapse: collapse; margin: 0; }
.p-priceTable tbody tr + tr { border-top: 1px solid #edf1f7; }
.p-priceTable th,
.p-priceTable td {
	padding: 1em .5em;
	border: none;
	background: none;
	text-align: left;
	vertical-align: middle;
}
.p-priceTable th {
	font-weight: 600;
	color: #1b2b44;
	font-size: .95rem;
	line-height: 1.6;
	width: 52%;
}
.p-priceTable__price {
	font-weight: 700;
	color: #14529e;
	white-space: nowrap;
	text-align: right;
	font-size: .98rem;
	width: 24%;
}
.p-priceTable__note {
	color: #7a8494;
	font-size: .8rem;
	line-height: 1.6;
	width: 24%;
	padding-left: 1em;
}

/* 注意書き・リンク */
.p-priceSec__notes {
	margin: 1.4rem auto 0;
	max-width: 780px;
	padding: 0;
	list-style: none;
	color: #7a8494;
	font-size: .8rem;
	line-height: 1.9;
}
.p-priceSec__notes li { position: relative; padding-left: 1.2em; }
.p-priceSec__notes li::before { content: "※"; position: absolute; left: 0; }
.p-priceSec__more { margin: 1.6rem 0 0; text-align: center; }
.p-priceSec__more a {
	color: #14529e;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

/* スマホ：積み上げ型に */
@media (max-width: 599px) {
	.p-priceTable { padding: .2rem 1.05rem; }
	.p-priceTable table,
	.p-priceTable tbody,
	.p-priceTable tr,
	.p-priceTable th,
	.p-priceTable td { display: block; width: 100%; }
	.p-priceTable tbody tr { padding: .95em 0; }
	.p-priceTable th { padding: 0 0 .35em; font-size: .92rem; }
	.p-priceTable__price { text-align: left; padding: 0; }
	.p-priceTable__note { padding: .2em 0 0; }
	.p-priceTable__note:empty { display: none; }
}

/* =================================================================
   料金ページ（page-price.php）
   ================================================================= */
.pr-body { padding-block: clamp(2.8rem, 6vw, 4.5rem); }
.pr-sec + .pr-sec { margin-top: clamp(2.6rem, 6vw, 4rem); }
.pr-sec__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .6rem 1rem;
	flex-wrap: wrap;
	margin-bottom: 1.1rem;
}
.pr-sec__title {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	font-size: clamp(1.25rem, 2.6vw, 1.6rem);
	font-weight: 600;
	color: #1b2b44;
	line-height: 1.35;
	margin: 0;
	padding-left: .7em;
	border-left: 4px solid #1c6fd4;
}
.pr-sec__link {
	font-size: .85rem;
	font-weight: 600;
	color: #14529e;
	text-decoration: none;
}
.pr-sec__link:hover { text-decoration: underline; }


/* =================================================================
   業務内容の2レーン（企業向け／個人・ご家族向け）
   ================================================================= */
.p-fp-lane + .p-fp-lane { margin-top: clamp(2.4rem, 5vw, 3.6rem); }
.p-fp-lane__label {
	display: flex;
	align-items: center;
	gap: .8em;
	margin: 0 0 1.2rem;
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: .08em;
	color: var(--fp-ink);
}
.p-fp-lane__label::before {
	content: "";
	width: 26px;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--fp-blue), var(--fp-care));
}
/* 個人レーンはカード1枚：企業向けと同じトラック幅（auto-fillで空トラックを保持） */
.p-fp-services__grid--single {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.p-fp-lane__note {
	margin: 1.2rem 0 0;
	max-width: 620px;
	padding: .9em 1.2em;
	font-size: .95rem;
	line-height: 1.8;
	color: var(--fp-ink);
	background: var(--fp-blue-thin);
	border-left: 3px solid var(--fp-blue);
	border-radius: 0 12px 12px 0;
}
.p-fp-lane__note a {
	color: var(--fp-blue-dark);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
