/*
 * Strategy Support 専用スタイル
 * 適用範囲は .strategy-site 配下に限定する（他ページへの影響を避けるため）。
 */

.strategy-site {
	box-sizing: border-box;
}

.strategy-site *,
.strategy-site *::before,
.strategy-site *::after {
	box-sizing: inherit;
}

/*
 * Lightning本体（design-skin/_g3/assets/css/style.css・style-theme-json.css）が
 * 全ページ共通で body,html { overflow-x: hidden } を適用している。
 * overflow-x を visible 以外にすると、未指定の overflow-y は仕様上 auto に
 * 自動変換されるため、body は意図せず「スクロールコンテナ」として扱われる。
 * これにより .ss-header の position: sticky が、実際にスクロールする要素
 * （document.scrollingElement = html）ではなく、決してスクロールしない body を
 * 基準に計算されてしまい、見た目上まったく貼り付かなくなっていた。
 * Strategy Support配下（body.strategy-site）のみ、横スクロール防止は維持したまま
 * スクロールコンテナを生成しない overflow-x: clip へ切り替える。overflow-y は
 * body が独立スクロールする箇所ではないため visible に戻して副作用を避ける。
 * Lightning本体・グローバルの body,html ルール・他ページには一切手を加えない。
 */
body.strategy-site {
	overflow-x: clip;
	overflow-y: visible;
}

/*
 * Lightning Origin3（親テーマ design-skin/origin3/css/style.css）は
 * 素の h2 / h3 タグへ以下の共通装飾を適用している。
 *
 *   h2:where(:not(.wp-block-post-title)) {
 *     border-top: 2px solid var(--vk-color-primary);
 *     border-bottom: 1px solid var(--vk-color-border-hr);
 *   }
 *   h3:where(:not(.wp-block-post-title)) {
 *     border-bottom: 1px solid var(--vk-color-border);
 *   }
 *   h3:where(:not(.wp-block-post-title))::after {
 *     content: ".";
 *     border-bottom: 1px solid var(--vk-color-primary);
 *     width: 30%;
 *   }
 *
 * `:where()` は詳細度を持たないため実質 h2 / h3 単体と同じ詳細度で全ページに
 * 適用される。border-top / ::after の border-bottom は --vk-color-primary（初期値
 * #337ab7 の青）が原因の青線、h2 / h3 自体の border-bottom は --vk-color-border-hr /
 * --vk-color-border（いずれも #e5e5e5 系の固定グレー）が原因の薄いグレー線であり、
 * どちらも Strategy Support 側では不要なため、4点まとめて .strategy-site 配下で
 * 一括打ち消す。
 *
 * Strategy Support独自の見出し装飾（.ss-home-profile-title::after など）は
 * すべてクラス起点の ::before/::after のみを使用し、素の h2/h3 タグ自体には
 * 装飾していないため、このリセットと衝突しない。
 */
.strategy-site h2:where(:not(.wp-block-post-title)) {
	border-top: 0;
	border-bottom: 0;
}

.strategy-site h3:where(:not(.wp-block-post-title)) {
	border-bottom: 0;
}

.strategy-site h3:where(:not(.wp-block-post-title))::after {
	content: none;
	border-bottom: 0;
}

/*
 * 段階3：独自ヘッダー・独自フッター（土台のみ）
 * design-reference/index.html の配色・レイアウトを基準にする。
 */

.strategy-site {
	--ss-navy: #15365f;
	--ss-navy2: #0f294a;
	--ss-gold: #b38b4e;
	--ss-gold2: #d8c29a;
	--ss-cream: #f7f4ee;
	--ss-paper: #fffdfa;
	--ss-line: #e8dfd0;
	--ss-muted: #6d6a65;
	/* JS が .ss-header の getBoundingClientRect().bottom で上書きする。
	   JS 未実行時（初期描画・JS無効環境）向けの暫定値。 */
	--ss-drawer-top: 82px;
}

/*
 * ドロワー表示中は背景ページのスクロールを止める。
 * overflow: hidden だけでは iOS Safari のバウンススクロールを防げないため、
 * position: fixed で完全に固定する。top は開く直前の scrollY を基準に
 * JS（strategy.js）が都度インラインで設定し、閉じた際に元の位置へ復帰する。
 */
body.strategy-site.ss-menu-open {
	position: fixed;
	left: 0;
	width: 100%;
	overflow: hidden;
}

/* ---------- ヘッダー ---------- */

.strategy-site .ss-header {
	position: sticky;
	top: 0;
	/* ドロワー・オーバーレイより常に手前（最上位）に置き、
	   ハンバーガー（→×）を常に操作可能にする。 */
	z-index: 1003;
	width: 100%;
	background: rgba(255, 253, 250, .96);
	border-bottom: 1px solid var(--ss-line);
}

/*
 * メニュー表示中はヘッダーを画面上部に固定する。
 * top を明示（0）しないと、後続の position: sticky 用 top 宣言との詳細度関係が
 * 分かりにくくなるため、fixed化と同時に top/left/right を明示的に指定する。
 */
body.strategy-site.ss-menu-open .ss-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
}

/* 管理バー表示時の固定ヘッダー重なり対策（PC：32px / 782px以下：46px） */
body.strategy-site.admin-bar .ss-header {
	top: 32px;
}

/*
 * メニュー表示中かつ管理バー表示時：上の2ルールと同じ詳細度（クラス3つ＋body要素）の
 * 組み合わせを body.strategy-site.admin-bar.ss-menu-open のように1つの複合セレクタへ
 * まとめることで詳細度を1段引き上げ、通常時のtop:32px／ss-menu-open時のtop:0の
 * どちらにも依存せず、この状態専用のtopを確実に優先させる。
 */
body.strategy-site.admin-bar.ss-menu-open .ss-header {
	top: 32px;
}

.strategy-site .ss-header-inner {
	width: 100%;
	max-width: 1760px;
	height: 82px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 26px;
	padding: 0 28px;
}

.strategy-site .ss-header-inner > * {
	min-width: 0;
}

.strategy-site .ss-logo {
	display: inline-flex;
	align-items: center;
	flex: 0 1 auto;
	text-decoration: none;
}

.strategy-site .ss-logo:focus-visible {
	outline: 3px solid var(--ss-gold);
	outline-offset: 4px;
}

.strategy-site .ss-logo-image {
	display: block;
	width: clamp(300px, 26vw, 380px);
	max-width: 100%;
	height: auto;
	object-fit: contain;
}

.strategy-site .ss-nav {
	flex: 0 1 auto;
	/* ロゴ側の空きスペースをナビまで引き伸ばさないよう flex-grow は 0 にし、
	   margin-left: auto でナビ（＋その右のCTA群）ごと右へ寄せる。
	   これによりロゴ〜ナビ間に余白ができ、ナビはCTAに隣接した右寄せ配置になる。
	   PC幅（1201px以上）では折り返し・内部スクロールに頼らず1行に収める。
	   flex-shrink: 1（"0 1 auto"）と min-width: 0 は、万一収まりきらない場合でも
	   .ss-nav 自身が横スクロールを持たずに視覚的に詰まるだけに留め、
	   ページ全体の横スクロールを引き起こさないための安全策。 */
	margin-left: auto;
	min-width: 0;
}

.strategy-site .ss-nav-list {
	display: flex;
	align-items: center;
	gap: 2px;
	list-style: none;
	margin: 0;
	padding: 0;
	white-space: nowrap;
}

.strategy-site .ss-nav-list a {
	display: inline-block;
	padding: 13px 12px;
	font-size: 13px;
	color: var(--ss-navy2);
}

.strategy-site .ss-nav-list a:hover,
.strategy-site .ss-nav-list a:focus {
	color: var(--ss-navy2);
}

.strategy-site .ss-header-cta-group {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 10px;
}

.strategy-site .ss-header-line-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-height: 42px;
	padding: 0 16px;
	border: 1px solid var(--ss-gold);
	background: transparent;
	color: var(--ss-navy);
	white-space: nowrap;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}

.strategy-site .ss-header-line-link:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
	.strategy-site .ss-header-line-link:hover {
		background: var(--ss-gold);
		color: #fff;
	}
}

.strategy-site .ss-contact-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-height: 44px;
	padding: 12px 18px;
	background: var(--ss-gold);
	color: #fff;
	border: 1px solid var(--ss-gold);
	white-space: nowrap;
	font-size: 14px;
}

.strategy-site .ss-contact-btn:hover,
.strategy-site .ss-contact-btn:focus {
	color: #fff;
	opacity: .9;
}

/* ---------- ハンバーガーボタン ---------- */

.strategy-site .ss-menu-toggle {
	display: none;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	position: relative;
	cursor: pointer;
}

.strategy-site .ss-menu-toggle span {
	position: absolute;
	left: 10px;
	right: 10px;
	height: 2px;
	background: var(--ss-navy2);
	transition: transform .2s ease, opacity .2s ease, top .2s ease;
}

.strategy-site .ss-menu-toggle span:nth-child(1) {
	top: 15px;
}

.strategy-site .ss-menu-toggle span:nth-child(2) {
	top: 21px;
}

.strategy-site .ss-menu-toggle span:nth-child(3) {
	top: 27px;
}

body.strategy-site.ss-menu-open .ss-menu-toggle span:nth-child(1) {
	top: 21px;
	transform: rotate(45deg);
}

body.strategy-site.ss-menu-open .ss-menu-toggle span:nth-child(2) {
	opacity: 0;
}

body.strategy-site.ss-menu-open .ss-menu-toggle span:nth-child(3) {
	top: 21px;
	transform: rotate(-45deg);
}

/* ---------- ドロワー・オーバーレイ ---------- */

/*
 * ドロワー・オーバーレイの開始位置（top）は、独自ヘッダーの下端
 * （管理バー分の押し下げを含む実測値）を JS が
 * .ss-header の getBoundingClientRect().bottom から算出し、
 * --ss-drawer-top として body に都度セットする。
 * z-index は「ヘッダー(1003) > ドロワー(1002) > オーバーレイ(1001) > 本文」の順にし、
 * ドロワー・オーバーレイがヘッダーを覆わないようにする。
 */
.strategy-site .ss-drawer-overlay {
	position: fixed;
	top: var(--ss-drawer-top, 82px);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1001;
	background: rgba(15, 41, 74, .55);
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, visibility .2s ease;
}

body.strategy-site.ss-menu-open .ss-drawer-overlay {
	opacity: 1;
	visibility: visible;
}

.strategy-site .ss-drawer {
	position: fixed;
	top: var(--ss-drawer-top, 82px);
	right: 0;
	bottom: 0;
	z-index: 1002;
	width: min(86vw, 360px);
	max-width: 100%;
	height: calc(100vh - var(--ss-drawer-top, 82px));
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 24px 22px;
	background: var(--ss-paper);
	box-shadow: -12px 0 30px rgba(15, 41, 74, .18);
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	transform: translateX(100%);
	transition: transform .25s ease;
}

/* 動的ビューポート単位（アドレスバーの表示/非表示に追従）に対応する環境向けの強化。
   未対応環境は上の calc(100vh - ...) にフォールバックする。 */
@supports (height: 100dvh) {
	.strategy-site .ss-drawer {
		height: calc(100dvh - var(--ss-drawer-top, 82px));
	}
}

body.strategy-site.ss-menu-open .ss-drawer {
	transform: translateX(0);
}

.strategy-site .ss-drawer-nav-list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0;
	padding: 0;
}

.strategy-site .ss-drawer-nav-list a {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 12px 4px;
	border-bottom: 1px solid var(--ss-line);
	color: var(--ss-navy2);
	font-size: 17px;
}

.strategy-site .ss-drawer-nav-list a:hover,
.strategy-site .ss-drawer-nav-list a:focus {
	color: var(--ss-gold);
}

.strategy-site .ss-drawer-line-link {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--ss-gold);
	background: #fff;
	color: var(--ss-navy);
	font-size: 17px;
	font-weight: 500;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease;
}

.strategy-site .ss-drawer-line-link:hover,
.strategy-site .ss-drawer-line-link:focus {
	background: var(--ss-cream);
	color: var(--ss-navy);
}

.strategy-site .ss-drawer-line-link:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-drawer-contact-btn {
	width: 100%;
}

@media (max-width: 782px) {
	body.strategy-site.admin-bar .ss-header {
		top: 46px;
	}

	body.strategy-site.admin-bar.ss-menu-open .ss-header {
		top: 46px;
	}
}

/*
 * WordPress標準では、#wpadminbar は 782px以下で position: fixed（常にビュー
 * ポート上部46pxに固定）だが、600px以下ではWP自身が position: absolute に
 * 切り替える。absolute化後はスクロールで管理バーがドキュメントと一緒に
 * 流れて画面外へ消えるため、直上782pxブロックの top: 46px を600px以下でも
 * 引き継ぐと、スクロール後に「管理バー分の46pxだけ何もない空白」が
 * sticky ヘッダーの上に残ってしまう。
 * ページ最上部（scrollY = 0）では、WPが付与する html の
 * margin-top: 46px（782px以下）により .ss-header 自体の初期位置がもとから
 * 46px下がっているため、ここで top: 0 にしても sticky 化のタイミングが
 * 「画面最上部に達した瞬間」になるだけで、初期表示（管理バー→ヘッダー）は
 * 崩れない。同じ 782px 以下・かつ後続の（＝より詳細度が同点で後勝ちする）
 * ルールとして 600px 以下にだけ top: 0 を上書きする。
 */
@media (max-width: 600px) {
	body.strategy-site.admin-bar .ss-header {
		top: 0;
	}

	/*
	 * ss-menu-open（ドロワー表示中の position: fixed 化）は、常時 top: 0 に
	 * 揃えると「スクロール後は正しいが、ページ最上部では管理バーへ重なる」
	 * 状態になる（管理バーはabsolute配置でscrollYに応じて画面内の見え方が
	 * 変わるが、fixed化したヘッダーのtopはCSSだけではscrollYを判断できない
	 * ため）。strategy.js が #wpadminbar.getBoundingClientRect().bottom を
	 * 都度計測し、その残り可視高さ（46px→0px）を --ss-admin-offset として
	 * bodyにセットするため、ここではその値をそのまま使う。JS未実行時は
	 * 0px にフォールバックする（このドロワー自体がJS前提の機能のため）。
	 */
	body.strategy-site.admin-bar.ss-menu-open .ss-header {
		top: var(--ss-admin-offset, 0px);
	}
}

/*
 * ---------- 表示切替境界 ----------
 * 「横並びナビ ⇔ ハンバーガー」の切り替え境界は 1279px / 1280px に統一する
 * （JS側の window.matchMedia('(min-width: 1280px)') と一致させること）。
 * 1280px〜1759pxは下部の「コンパクトPCヘッダー」ブロックで横並びナビへ
 * 上書きされる（ドロワー・ハンバーガーは常に無効化）。
 * 1760px以上のフルPC専用デザイン（ロゴ拡大・ナビ文字拡大等）の境界は
 * 1759px / 1760px とする（サイト全体の文字拡大・ナビ17px化に伴い、
 * 従来の1614px / 1615pxではロゴとナビが重なるため引き上げた）。
 * 1024px相当のタブレット幅も「モバイル／タブレット用ハンバーガー」側に含める。
 */

/* 1759px以下：モバイル／タブレット用ハンバーガーメニュー（1280px〜1759pxはこの後のコンパクトPCヘッダーで上書きされる） */
@media (max-width: 1759px) {
	/*
	 * メニュー閉状態では常に position: sticky のまま画面上部に追従させ、
	 * スクロール途中でもヘッダー・ハンバーガーボタンを操作可能にする
	 * （このブロック内では上書きしていない .strategy-site .ss-header の
	 * position: sticky; top: 0; z-index: 1003; を明示的にこの表示域の
	 * 仕様として踏襲する）。sticky はレイアウト上の高さも保持するため、
	 * 本文がヘッダーの裏へ潜り込むこともない。
	 * 管理バー表示時の top（32px/782px以下は46px）は既存の
	 * body.strategy-site.admin-bar .ss-header 側の分岐がそのまま適用される。
	 * メニュー表示中は、より詳細度の高い
	 * body.strategy-site.ss-menu-open .ss-header（position: fixed）が
	 * このstickyを上書きし、閉じれば自動的にこのstickyへ戻る。
	 * 1760px以上のPCヘッダーはこのメディアクエリの対象外のため無関係。
	 */
	.strategy-site .ss-header-inner {
		justify-content: space-between;
		padding: 0 16px;
	}

	.strategy-site .ss-header .ss-nav,
	.strategy-site .ss-header .ss-header-line-link,
	.strategy-site .ss-header .ss-contact-btn {
		display: none;
	}

	.strategy-site .ss-menu-toggle {
		display: block;
	}

	.strategy-site .ss-logo {
		position: static;
		left: auto;
	}
}

/* 640px以下：ロゴとハンバーガーボタンが重ならないようロゴ幅を縮小する */
@media (max-width: 640px) {
	.strategy-site .ss-logo {
		max-width: calc(100vw - 96px);
	}

	.strategy-site .ss-logo-image {
		width: min(265px, 100%);
		height: auto;
	}
}

/* 375px以下：さらに余裕を持たせる */
@media (max-width: 375px) {
	.strategy-site .ss-logo-image {
		width: min(245px, 100%);
	}
}

/* 1760px以上：PC用横並びメニュー。ドロワー・オーバーレイは強制的に閉じた状態にする。 */
@media (min-width: 1760px) {
	.strategy-site .ss-header .ss-nav {
		display: block;
	}

	.strategy-site .ss-header .ss-header-line-link {
		display: inline-flex;
		/*
		 * align-items/justify-content でボックス自体は既に上下中央だが、
		 * body側から継承する line-height（1.7系）により行ボックスが
		 * フォントの実際の高さより大きくなり、文字がわずかに下寄りに見える。
		 * line-height: 1 で行ボックスをフォントの実高さに近づけて解消する。
		 * ボックスサイズ（min-height/padding）・横位置には影響しない。
		 */
		line-height: 1;
	}

	.strategy-site .ss-header .ss-contact-btn {
		display: inline-flex;
	}

	.strategy-site .ss-menu-toggle {
		display: none;
	}

	.strategy-site .ss-drawer,
	.strategy-site .ss-drawer-overlay {
		display: none;
	}

	/*
	 * 1760px以上ではドロワー自体が display: none になるため通常は
	 * ss-menu-open が付いたままになることはないが、リサイズ直後の一瞬など
	 * JS側の解除処理と競合した場合の保険として、scroll lock／ヘッダーの
	 * fixed化を必ず解除する。
	 */
	body.strategy-site.ss-menu-open {
		position: static;
		width: auto;
		overflow: visible;
	}

	body.strategy-site.ss-menu-open .ss-header {
		position: sticky;
	}

	.strategy-site .ss-logo {
		position: relative;
	}

	.strategy-site .ss-nav-list a {
		position: relative;
	}

	.strategy-site .ss-nav-list a::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: -8px;
		height: 1px;
		background: var(--ss-gold);
		transform: scaleX(0);
		transform-origin: center;
		transition: transform .25s ease;
		pointer-events: none;
	}

	.strategy-site .ss-nav-list a:hover::after,
	.strategy-site .ss-nav-list a:focus-visible::after {
		transform: scaleX(1);
	}

	.strategy-site .ss-nav-list a:focus-visible {
		outline: 2px solid var(--ss-gold);
		outline-offset: 5px;
	}

	.strategy-site .ss-nav-list li.current-menu-item > a::after,
	.strategy-site .ss-nav-list li.current_page_item > a::after,
	.strategy-site .ss-nav-list li.current-menu-ancestor > a::after,
	.strategy-site .ss-nav-list li.current_page_ancestor > a::after {
		transform: scaleX(1);
	}
}

/*
 * 1201px〜1400px：LINEボタン追加分の横幅を確保するため、
 * ナビ項目の左右パディングとCTA周りのgap／paddingのみを詰める
 * （文字サイズ・ロゴ・メニュー項目・無料相談CTAのサイズは変更しない）。
 * このためロゴ幅は基本値（clamp(300px, 26vw, 380px)）のまま据え置き、
 * ナビ・CTAとの衝突が最も起きやすい帯域なので拡大しない。
 */
@media (min-width: 1201px) and (max-width: 1400px) {
	.strategy-site .ss-header-inner {
		gap: 12px;
		padding-inline: 16px;
	}

	.strategy-site .ss-nav-list {
		gap: 0;
	}

	.strategy-site .ss-nav-list a {
		padding-inline: 6px;
	}

	.strategy-site .ss-header-cta-group {
		gap: 8px;
	}

	.strategy-site .ss-header-line-link {
		padding-inline: 14px;
	}
}

/*
 * 1760px以上（PC用横並びメニュー表示時のみ）：ロゴを画面幅に応じて連続的に拡大する。
 * 以前は width: clamp(350px, 25vw, 395px) が1580px時点で395pxに達して以降は
 * レイアウト上の幅が完全に固定され、そこへ transform: scale(1.1) を掛けて
 * 見た目だけ約434.5px相当まで大きく見せていたため、1760px（compact→full切替直後）で
 * いきなり「395px→見た目434.5px」相当のサイズへ一段跳ぶように見えていた。
 * ここではscale()をやめてwidth自体を1760px→390px（compact側の1759px時点の値と
 * ほぼ同じ）から1920px→434px（従来のscale後の見た目とほぼ同じ）まで線形に拡大し、
 * 1920px以降はそのまま434pxで頭打ちにする（＝1920px以降の見た目は従来どおり維持）。
 * width自体が変わるだけでレイアウト上の占有幅も連動して変化するが、1760〜1920pxの
 * どの幅でもナビ・CTAとの間に十分な余白が残ることを計算で確認済み。
 * ※ 表示切替境界（1760px）に合わせる理由は従来のコメントと同じ
 *   （1401〜1759pxはハンバーガーヘッダー表示域のため対象外にする必要がある）。
 */
@media (min-width: 1760px) {
	.strategy-site .ss-logo-image {
		width: clamp(390px, calc(27.5vw - 94px), 434px);
	}
}

/*
 * 通常グローバルメニュー（.ss-nav）だけを見た目上わずかに左（中央寄り）へ移動する。
 * ロゴ・LINE友だち登録・無料相談CTA（.ss-header-cta-group）は現在位置のまま維持する。
 * transform は占有幅（レイアウト）に影響しないため、.ss-nav の右に隣接する
 * .ss-header-cta-group の位置はこの指定の影響を受けない。
 * 1401px以上：約82px左へ。.ss-nav-list の gap（7px）は現状維持し、
 * 項目間隔を保ったまま .ss-nav-list a の文字サイズのみ 13px → 14px（+1px）に拡大する。
 * 1201〜1400px：横幅に余裕が少ないため、衝突回避を優先して現状（約8px左へ／文字サイズ13pxのまま）を維持する。
 */
@media (min-width: 1401px) {
	.strategy-site .ss-nav {
		transform: translateX(-82px);
	}

	.strategy-site .ss-nav-list {
		gap: 7px;
	}

	.strategy-site .ss-nav-list a {
		font-size: 14px;
	}
}

/*
 * 1760px以上（PC用横並びメニュー表示時のみ）：文字サイズを 14px → 17px に拡大する
 * （読みやすさ向上のため段階的に拡大、ロゴ・CTAとの衝突がない範囲の上限として17px）。
 * 以前は1760px到達と同時に17px固定だったため、compact側の1759px時点（15px）から
 * 一段跳んで見えていた。1760px→16px（compact側の1759px時点に近い値）から
 * 1920px→17px（従来どおりの最終サイズ）まで連続的に拡大し、1920px以降は17pxで
 * 据え置く（＝1920px以降の見た目は従来どおり維持）。
 * font-weight・.ss-nav-list の gap（項目間隔）・ロゴ・LINE友だち登録／無料相談CTA・
 * ハンバーガーメニュー（.ss-drawer-nav-list）には影響しない。
 * 1401〜1759px（ハンバーガー表示域、.ss-nav は display: none）は対象外のため14pxのまま。
 */
@media (min-width: 1760px) {
	.strategy-site .ss-nav-list a {
		font-size: clamp(16px, calc(0.625vw + 5px), 17px);
	}

	/*
	 * LINE友だち登録・無料相談CTAの文字サイズ：従来はfull header側で未指定のため
	 * ベース値（LINE 13px／問い合わせ 14px）のままだった。compact側の1759px時点で
	 * 既にLINE 14px／問い合わせ 15pxまで拡大しているため、そのままにすると
	 * 1760px到達時に文字が「小さくなる」逆行が起きる。full header側でも
	 * 最低限compactの到達値（14px／15px）を維持し、1760px以降は固定する。
	 * padding-inline（16px／18px）はベース値のままでcompact側の1759px時点と
	 * 一致しているため変更不要。
	 */
	.strategy-site .ss-header-line-link {
		font-size: 14px;
	}

	.strategy-site .ss-contact-btn {
		font-size: 15px;
	}
}

@media (min-width: 1201px) and (max-width: 1400px) {
	.strategy-site .ss-nav {
		transform: translateX(-8px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.strategy-site .ss-nav-list a::after {
		transition: none;
	}
}

/*
 * 1201〜1400px：ナビ側の詰め幅（1201〜1400px帯の調整）と歩調を合わせ、
 * ロゴ左端をわずかに左へ寄せる（実測値ベースの固定値、衝突のない範囲）。
 */
@media (min-width: 1201px) and (max-width: 1400px) {
	.strategy-site .ss-logo {
		left: -16px;
	}
}

/*
 * 1760px以上（PC用横並びメニュー表示時のみ）：.ss-header-inner の
 * max-width(1760px)を超えた分は margin: 0 auto で左右均等な余白になる
 * （viewportが広いほど増える）。
 * この余白の増加分だけを translateX で打ち消し、左側の安全余白を
 * 常におおむね一定（目安24〜40px程度）に保つ。
 * ・margin ≦ 36px の間（≒viewport ≦ 1832px）は打ち消さない（余白が小さいため不要）。
 * ・margin > 36px の間（≒viewport > 1832px）は「margin − 36px」分だけ左へ引き戻す。
 * translateXは見た目だけを動かす（.ss-header-inner自体の実幅・nav側の占有幅には影響しない）。
 * 加えて +43px の固定オフセットを足し、ロゴ全体をわずかに右へ移動する
 * （上記の打ち消し量そのものは変更せず、その結果に対して一律+43pxするだけ）。
 * ※ PC用ヘッダーレイアウト（.ss-header-inner が横並び）を前提にした調整のため、
 *   表示切替境界（1760px）に合わせる。1401〜1759px（ハンバーガーヘッダー表示域）に
 *   適用されると、ロゴが左paddingから不自然に右へずれるため。
 */
@media (min-width: 1760px) {
	.strategy-site .ss-logo {
		left: auto;
		transform: translateX(calc(43px - max(0px, (100vw - 1760px) / 2 - 36px)));
	}
}

/*
 * ---------- コンパクトPCヘッダー（1280px〜1759px） ----------
 * 小型ノートPC等でもハンバーガーに切り替えず、PC用横並びメニューを維持するための専用帯域。
 * 1760px以上の見た目（フルPC）・1279px以下の挙動（ハンバーガー／ドロワー）には一切影響しない。
 *
 * 上限は従来1614pxだったが、サイト全体の文字拡大に合わせてフルPCナビを
 * 14px→17pxへ拡大した結果、従来のフルPC開始幅（1615px）ではロゴとナビ
 * （「私たちの考え」）が重なるようになったため、フルPC側の見た目（ロゴ・
 * ナビ17px・CTA等の数値）は一切変更せず、コンパクトPCヘッダーの適用上限＝
 * フルPC切り替え境界のみを1759px/1760pxへ引き上げて解消している。
 *
 * この帯域は max-width:1759px（ハンバーガー化）と min-width:1201px/1401px（フルPC向けの
 * 詰め調整・ナビ非表示前提の値）の両方に重なるため、ソース順で最後に置き、
 * 表示切替・サイズ関連のプロパティをこのブロックで明示的に上書きする
 * （font-size / gap / padding-inline / transform を個別値のまま放置すると、
 * 1400px⇔1401pxの内部境界で意図しない見た目の跳びが発生するため）。
 *
 * 各値（ロゴ幅・header-inner/ナビ/CTAグループのgap・ナビ文字・CTA文字/padding）は
 * 固定値ではなく clamp(1280px時点の値, calc(Xvw + Ypx), 1759px時点の値) の
 * 線形補間にしており、1280px（現状維持・重なり回避を最優先した安全な値）から
 * 1759px（フルPC版に近いが、わずかに小さいサイズ）まで画面幅に応じて連続的に
 * 拡大する。1759px時点の値は、CTAのgap/paddingなどフルPC版と衝突しない項目は
 * あえてフルPC版と同値にし、1760px切替時の見た目のジャンプを最小化している。
 * 1280px時点で必要な横幅は実測ベースで見積り、フルPC版（ロゴ最大395px・
 * ナビ17px・LINE/問い合わせpadding 16px/18px 等）より明確に詰めつつ、
 * 1280pxでも80px前後の余白が残る範囲で選定している。
 */
@media (min-width: 1280px) and (max-width: 1759px) {
	.strategy-site .ss-header .ss-nav {
		display: block;
	}

	.strategy-site .ss-header .ss-header-line-link {
		display: inline-flex;
		line-height: 1;
	}

	.strategy-site .ss-header .ss-contact-btn {
		display: inline-flex;
	}

	.strategy-site .ss-menu-toggle {
		display: none;
	}

	.strategy-site .ss-drawer,
	.strategy-site .ss-drawer-overlay {
		display: none;
	}

	body.strategy-site.ss-menu-open {
		position: static;
		width: auto;
		overflow: visible;
	}

	body.strategy-site.ss-menu-open .ss-header {
		position: sticky;
	}

	/*
	 * header-inner の gap：1280pxでの現状値(20px)は変えず、1759pxではフルPC版と
	 * 同じ26pxまで線形に広げる（1760px到達時に値が連続するようにするため）。
	 * calc()の係数は (26-20)/(1759-1280) を100倍して算出した線形補間式で、
	 * 1280px→20px・1759px→26pxを両端とする（以下の各clampも同じ考え方）。
	 */
	.strategy-site .ss-header-inner {
		gap: clamp(20px, calc(1.25vw + 4px), 26px);
	}

	/*
	 * 1. ロゴ：1280pxでの現状値(23.5vw、実質300px程度)はほぼ据え置きつつ、
	 * 画面幅が広がるほどフルPC版（最大395px・scale(1.1)込みで見た目上さらに大きい）
	 * に近い390pxまで連続的に拡大する。1280px→300px・1759px→390pxを両端とする
	 * 線形補間（フルPC版よりわずかに小さいサイズに意図的に留めている）。
	 */
	.strategy-site .ss-logo-image {
		width: clamp(300px, calc(18.79vw + 59.5px), 390px);
	}

	/* 1401px以上向けの translateX(-82px) はフルPC前提の見た目調整のため打ち消す。 */
	.strategy-site .ss-nav {
		transform: none;
	}

	/*
	 * 2. ナビ項目間のgap：1280px→4px（現状維持）・1759px→6px（フルPC版7pxに近づける）。
	 */
	.strategy-site .ss-nav-list {
		gap: clamp(4px, calc(0.42vw - 1.34px), 6px);
	}

	/*
	 * 3. ナビ文字：1280px→13px（現状維持、重なり回避を最優先）・
	 * 1759px→15px（フルPC版17pxに近づけつつ、1760pxへの切替時のジャンプを+2px程度に抑える）。
	 * 左右paddingは横幅制約上10pxのまま据え置く。
	 */
	.strategy-site .ss-nav-list a {
		padding-inline: 10px;
		font-size: clamp(13px, calc(0.42vw + 7.66px), 15px);
	}

	/*
	 * CTAグループのgap：1280px→8px（現状維持）・1759px→10px（フルPC版と同値、
	 * 1760px切替時の見た目の変化をなくす）。
	 */
	.strategy-site .ss-header-cta-group {
		gap: clamp(8px, calc(0.42vw + 2.66px), 10px);
	}

	/*
	 * 4. LINE友だち登録ボタン：文字サイズは1280px→13px（現状維持）・1759px→14px
	 * （フルPC版は常時13pxのため、1760px切替時のジャンプは-1px程度に留まる）。
	 * 左右paddingは1280px→12px（現状維持）・1759px→16px＝フルPC版と同値まで拡大し、
	 * ボタンとしての存在感を主にサイズ（padding）側で持たせることで、
	 * 1760px切替時のpaddingジャンプをなくす。ボタン高さ（min-height）は変更しない。
	 */
	.strategy-site .ss-header-line-link {
		padding-inline: clamp(12px, calc(0.84vw + 1.3px), 16px);
		font-size: clamp(13px, calc(0.21vw + 10.33px), 14px);
	}

	/*
	 * 5. 無料相談・お問い合わせボタン：文字サイズは1280px→14px（現状維持）・1759px→15px
	 * （フルPC版は常時14pxのため、1760px切替時のジャンプは-1px程度に留まる）。
	 * 左右paddingは1280px→14px（現状維持）・1759px→18px＝フルPC版と同値まで拡大する。
	 * ボタン高さ（min-height）は変更しない。
	 */
	.strategy-site .ss-contact-btn {
		padding-inline: clamp(14px, calc(0.84vw + 3.3px), 18px);
		font-size: clamp(14px, calc(0.21vw + 11.33px), 15px);
	}
}

/* ---------- フッター ---------- */

.strategy-site .ss-site-footer {
	background: var(--ss-navy2);
	color: #fff;
}

.strategy-site .ss-site-footer-inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}

.strategy-site .ss-footer-main {
	display: grid;
	grid-template-columns: 1.2fr .8fr 1fr;
	align-items: start;
	gap: 56px;
	padding-block: 72px;
}

/* 左：ロゴ・事業者情報 */

.strategy-site .ss-footer-brand {
	min-width: 0;
}

/*
 * ロゴ画像（logo-strategy-support-footer-final-v6.png、2208×481）は、
 * ヘッダーロゴ（logo-strategy-support-header-final-v7.png）の内部比率を
 * そのまま踏襲して再配色・生成したもの。ロゴ本体は画像左端にほぼ密着しており、
 * CSS 側でのクロップ・位置補正（object-fit / transform 等）は不要で、
 * 通常の画像表示のみでロゴ本体の左端が左カラムの左端（住所・TELと同じ位置）に揃う。
 */
.strategy-site .ss-footer-logo {
	display: block;
	width: 100%;
	max-width: 420px;
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 28px;
	margin-left: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.strategy-site .ss-footer-logo img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
}

.strategy-site .ss-footer-contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 17px;
	line-height: 1.9;
	color: rgba(255, 255, 255, .72);
}

.strategy-site .ss-footer-contact-item + .ss-footer-contact-item {
	margin-top: 16px;
}

.strategy-site .ss-footer-contact-label {
	display: block;
	color: rgba(255, 255, 255, .5);
	font-size: 13px;
	letter-spacing: .04em;
}

.strategy-site .ss-footer-contact-value {
	margin: 0;
}

.strategy-site .ss-footer-contact-tel {
	color: #fff;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: .02em;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-footer-contact-tel:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-footer-contact-tel:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

/* 中央：サイトマップ */

.strategy-site .ss-footer-nav-heading {
	margin: 0 0 20px;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .2em;
}

.strategy-site .ss-footer-nav-list {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-footer-nav-list a {
	color: rgba(255, 255, 255, .88);
	font-size: 16px;
	line-height: 1.8;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-footer-nav-list a:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-footer-nav-list a:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

/* 右：お知らせ・LINE */

.strategy-site .ss-footer-side {
	min-width: 0;
}

.strategy-site .ss-footer-news-heading {
	display: block;
	margin: 0 0 16px;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .2em;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-footer-news-heading:hover {
	color: #fff;
}

.strategy-site .ss-footer-news-heading:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-footer-news-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-footer-news-item + .ss-footer-news-item {
	margin-top: 10px;
}

.strategy-site .ss-footer-news-date {
	display: block;
	color: rgba(255, 255, 255, .5);
	font-size: 11px;
	letter-spacing: .04em;
}

.strategy-site .ss-footer-news-item-title {
	display: block;
	margin-top: 2px;
	color: rgba(255, 255, 255, .88);
	font-size: 16px;
	line-height: 1.6;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-footer-news-item-title:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-footer-news-item-title:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-footer-news-empty {
	margin: 0;
	color: rgba(255, 255, 255, .5);
	font-size: 16px;
}

.strategy-site .ss-footer-line {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 24px;
	padding: 12px 24px;
	background: #06c755;
	border-radius: 4px;
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	text-decoration: none;
	transition: opacity .2s ease;
}

.strategy-site .ss-footer-line:hover {
	color: #fff;
	opacity: .88;
}

.strategy-site .ss-footer-line:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

/* MAP */

.strategy-site .ss-footer-map {
	padding-bottom: 40px;
}

.strategy-site .ss-footer-map-heading {
	margin: 0 0 16px;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .2em;
}

.strategy-site .ss-footer-map-frame {
	width: 100%;
	height: 280px;
}

.strategy-site .ss-footer-map-frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* 最下段 */

.strategy-site .ss-site-footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, .14);
}

.strategy-site .ss-site-footer-bottom-inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 32px;
	padding-block: 24px;
}

.strategy-site .ss-footer-policy-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
	min-width: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-footer-policy-links a {
	color: rgba(255, 255, 255, .72);
	font-size: 13px;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-footer-policy-links a:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-footer-policy-links a:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-footer-copyright {
	margin: 0 0 0 auto;
	flex-shrink: 0;
	color: rgba(255, 255, 255, .72);
	font-size: 12px;
}

/*
 * 641px〜1024px：左（ロゴ・住所・TEL＋お知らせ・LINE）／右（SITEMAP）の
 * 2カラム構成。HTML の出現順は brand → nav（SITEMAP） → side（お知らせ・LINE）
 * のため、ソース順のままでは brand|nav が上段、side が下段全幅になってしまう。
 * grid-template-areas で明示的に配置し、nav（SITEMAP）だけを右カラムへ
 * 縦方向にまとめ、brand・side を左カラムに縦積みする。
 * 列幅は左55〜60%・右40〜45%目安の 1.2fr / 0.8fr（＝60%/40%）とし、
 * SITEMAPカラムが極端に狭くならないよう 220px を下限にする。
 */
@media (min-width: 641px) and (max-width: 1024px) {
	.strategy-site .ss-site-footer-inner,
	.strategy-site .ss-site-footer-bottom-inner {
		padding-inline: clamp(40px, calc(9.375vw - 20px), 76px);
	}

	.strategy-site .ss-footer-main {
		grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
		grid-template-areas:
			"brand nav"
			"side nav";
		column-gap: 56px;
		row-gap: 48px;
		padding-block: 56px;
	}

	.strategy-site .ss-footer-brand {
		grid-area: brand;
	}

	.strategy-site .ss-footer-nav {
		grid-area: nav;
	}

	.strategy-site .ss-footer-side {
		grid-area: side;
	}

	.strategy-site .ss-footer-logo {
		max-width: 340px;
	}
}

/* 640px以下のみ、ロゴ・住所・TEL・SITEMAP・お知らせ・LINEを1カラムで縦積みにする */
@media (max-width: 640px) {
	.strategy-site .ss-site-footer-inner,
	.strategy-site .ss-site-footer-bottom-inner {
		padding-inline: clamp(22px, 5vw, 52px);
	}

	.strategy-site .ss-footer-main {
		grid-template-columns: 1fr;
		gap: 40px;
		padding-block: 48px;
	}

	.strategy-site .ss-footer-logo {
		max-width: 280px;
	}
}

@media (max-width: 768px) {
	.strategy-site .ss-footer-map-frame {
		height: 220px;
	}

	.strategy-site .ss-site-footer-bottom-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.strategy-site .ss-footer-copyright {
		margin-left: 0;
	}
}

/*
 * トップページの <main class="strategy-main"> は、固定ページ／アーカイブ用の
 * .strategy-main.ss-xxx（お客様の声・コラム・私たちの考え等）と異なり、
 * ページ固有クラスを持たない唯一のケース。
 *
 * 他ページ側は .strategy-main.ss-xxx { padding: 0 0 80px; } の形で、
 * 親テーマ Lightning が <main> 要素へ付与する上部 padding をすでに打ち消して
 * いるが、トップページのみこの打ち消しが漏れていたため、ヘッダーと
 * .ss-home-hero の間に親テーマ由来の数px の余白が残っていた。
 * ヘッダー高さ・Hero内部のpadding（.ss-home-hero-inner）には触れず、
 * <main> 自体の上部 padding のみを他ページと揃えて 0 にする。
 */
.strategy-site .strategy-main {
	padding-top: 0;
}

/* ---------- トップページ：ヒーロー ---------- */

.strategy-site .ss-home-hero {
	background: var(--ss-cream);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-hero-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 80px 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 56px;
}

.strategy-site .ss-home-hero-content {
	min-width: 0;
}

.strategy-site .ss-home-hero-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-hero-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: clamp(34px, 3.8vw, 50px);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: .06em;
	color: var(--ss-navy2);
	margin: 14px 0 22px;
}

.strategy-site .ss-home-hero-title-line {
	display: block;
	white-space: nowrap;
}

.strategy-site .ss-home-hero-text {
	margin: 0;
	max-width: 480px;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.9;
}

.strategy-site .ss-home-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 32px;
}

.strategy-site .ss-home-hero-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--ss-gold);
	font-size: 17px;
	font-weight: 500;
	text-align: center;
	transition:
		transform .22s ease,
		box-shadow .22s ease,
		background-color .22s ease,
		border-color .22s ease,
		color .22s ease;
}

.strategy-site .ss-home-hero-btn-primary {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-home-hero-btn-primary:hover,
.strategy-site .ss-home-hero-btn-primary:focus {
	color: #fff;
	opacity: .9;
}

.strategy-site .ss-home-hero-btn-outline {
	background: #fff;
	border-color: var(--ss-navy);
	color: var(--ss-navy);
}

.strategy-site .ss-home-hero-btn-outline:focus-visible {
	outline: 3px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-home-hero-btn:focus-visible {
	box-shadow: 0 8px 20px rgba(15, 38, 75, .16);
}

@media (hover: hover) and (pointer: fine) {
	.strategy-site .ss-home-hero-btn:hover {
		transform: translateY(-2px);
		box-shadow: 0 8px 20px rgba(15, 38, 75, .16);
	}
}

.strategy-site .ss-home-hero-btn:active {
	transform: translateY(0);
	box-shadow: 0 3px 8px rgba(15, 38, 75, .12);
}

@media (prefers-reduced-motion: reduce) {
	.strategy-site .ss-home-hero-btn {
		transition: none;
	}

	.strategy-site .ss-home-hero-btn:hover,
	.strategy-site .ss-home-hero-btn:focus-visible,
	.strategy-site .ss-home-hero-btn:active {
		transform: none;
	}
}

.strategy-site .ss-home-hero-image {
	aspect-ratio: 1030 / 600;
	border-radius: 14px;
	overflow: hidden;
}

.strategy-site .ss-home-hero-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-hero-inner {
		grid-template-columns: 1fr;
		padding: 56px 20px;
		gap: 32px;
	}

	.strategy-site .ss-home-hero-text {
		max-width: none;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-hero-inner {
		/* ヘッダー直下でも小見出しが隠れないよう、上部だけ余裕を持たせる。
		   下・左右は既存値のまま、二重に余白を足さない。 */
		padding: 52px 16px 40px;
		gap: 24px;
	}

	.strategy-site .ss-home-hero-title {
		font-size: 30px;
		margin: 12px 0 16px;
	}

	.strategy-site .ss-home-hero-text {
		font-size: 17px;
	}

	.strategy-site .ss-home-hero-actions {
		flex-direction: column;
		margin-top: 24px;
	}

	.strategy-site .ss-home-hero-btn {
		width: 100%;
	}
}

@media (max-width: 1200px) {
	.strategy-site .ss-home-hero-text-line {
		white-space: normal;
	}
}

/*
 * 以前は (min-width: 1201px) だったが、1025〜1200pxでは実質「無指定＝
 * ベースのタブレット用ヒーロー」（max-width:1180pxの1fr/1fr等幅グリッド・
 * 画像は aspect-ratio:1030/600 の角丸カード）のままになっており、1201px以上の
 * 「PC型ヒーロー」（48%/52%グリッド・画像が高さいっぱいを使う表示）と
 * 見た目が大きく異なっていた（1200px→1201pxで比率・画像サイズ感が急変する
 * 原因でもあった）。ここを1025pxへ引き下げ、ヒーローが1カラム→2カラムへ
 * 切り替わった直後から、1201px以上と同じグリッド比率・画像の高さ感を
 * 使うように統一する。
 * このブロック内のeyebrow/title/text（font-size等）は、後段の
 * 「トップページ：ヒーロー（1025〜1759px）タイポグラフィの連続化」ブロックで
 * 1025px時点から改めて上書きされるため、min-widthを引き下げても
 * 1025〜1279px側の文字サイズには影響しない（レイアウト・画像側のみが変わる）。
 */
@media (min-width: 1025px) {
	.strategy-site .ss-home-hero {
		min-height: clamp(620px, 36vw, 680px);
	}

	.strategy-site .ss-home-hero-inner {
		max-width: 1440px;
		padding: 0 20px;
		min-height: inherit;
		align-items: stretch;
		/*
		 * 48% + 52% はgapを考慮しないため、gap(56px)分だけ実質100%を
		 * 超過して指定してしまっていた（minmax(0, %)により見た目上は
		 * 各ブラウザが吸収して大きな破綻は出ないが、1025px付近の
		 * 余白の窮屈さの一因になっていたため、gapを差し引いた残り幅を
		 * 48:52に分割するfr単位へ変更し、超過しない指定に改める）。
		 */
		grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
	}

	.strategy-site .ss-home-hero-content {
		display: flex;
		flex-direction: column;
		justify-content: center;
		/* grid item のmin-content幅で右カラム（画像）側へ侵入しないための安全策。 */
		min-width: 0;
		max-width: 100%;
	}

	.strategy-site .ss-home-hero-eyebrow {
		font-size: 18px;
		margin-bottom: 6px;
	}

	.strategy-site .ss-home-hero-title {
		position: relative;
		font-size: clamp(48px, 3.6vw, 54px);
		line-height: 1.38;
		letter-spacing: 0.01em;
		margin-bottom: 56px;
	}

	.strategy-site .ss-home-hero-title::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: -26px;
		width: 84px;
		height: 2px;
		background: var(--ss-gold);
	}

	.strategy-site .ss-home-hero-text {
		max-width: 620px;
		/* 高齢者・ご家族向けの可読性確保のため、PCではヒーロー本文を16px未満にしない。 */
		font-size: 16px;
		line-height: 2;
	}

	.strategy-site .ss-home-hero-text-line {
		display: block;
		white-space: nowrap;
	}

	.strategy-site .ss-home-hero-image {
		aspect-ratio: auto;
		height: 100%;
		min-height: inherit;
		border-radius: 0;
		overflow: hidden;
		display: flex;
		align-items: flex-end;
	}

	.strategy-site .ss-home-hero-image img {
		width: 100%;
		height: 105%;
		object-fit: cover;
		border-radius: 0;
	}
}

/*
 * ---------- トップページ：1025〜1200pxで本文が画像へ食い込む問題の解消 ----------
 * 上の @media (min-width: 1025px) ブロックの .ss-home-hero-text-line は
 * display:block; white-space:nowrap; のため、本文の各行（管理画面の
 * 説明文1行目・2行目）が折り返せず、1440px超を前提にした横幅でも
 * 1行で収まるよう書かれた文章がそのまま1025〜1200pxの狭いカラムへ
 * はみ出し、右側の画像へ食い込んでいた。
 * すでに @media (max-width: 1200px) 側に white-space: normal の指定が
 * あるが、上の @media (min-width: 1025px) ブロックの方が後（ソース順で
 * 下）にあるため、1025〜1200pxでは同点の詳細度でnowrap側が勝っていた。
 * ここで1025〜1200pxだけ改めてnormalへ戻す（1201px以上は従来どおり
 * nowrapのまま、タイトルの2行構造・見た目は一切変更しない）。
 * 管理画面側で明示的に入力された<br>はwhite-space:normalでもそのまま
 * 維持される（disableされるのはCSSによる自動折り返し禁止のみ）。
 */
@media (min-width: 1025px) and (max-width: 1200px) {
	.strategy-site .ss-home-hero-text-line {
		white-space: normal;
		overflow-wrap: break-word;
	}
}

/*
 * ---------- トップページ：1024px（1カラム）のテキストブロックを中央寄りに ----------
 * 1024px以下は1カラムでテキストが .ss-home-hero-inner の左端（padding 20px分のみ）
 * から始まり、左に寄りすぎて見える。.ss-home-hero-content自体を
 * max-width:840px + margin-inline:auto で中央配置し（文字のtext-alignは
 * leftのまま変更しない）、テキストブロックの開始位置だけを右へ移動する。
 * 1024px時点の実効幅は概算 984px（= 1024 - padding左右40px）のため、
 * (984 - 840) / 2 + 20 ≒ 92px が新しい開始位置になる。
 * 769px未満（スマホ〜小型タブレット）には適用しないよう769px以上に限定する。
 * 769px時点は .ss-home-hero-inner の実効幅（729px）がmax-width(840px)より
 * 狭いためmax-widthが効かず、従来どおり左20pxのままとなり、640px以下の
 * スマホ表示には一切影響しない。
 */
@media (min-width: 769px) and (max-width: 1024px) {
	.strategy-site .ss-home-hero-content {
		max-width: 840px;
		width: 100%;
		margin-inline: auto;
	}
}

/*
 * ---------- トップページ：ヒーロー文章ブロックの左余白（1025〜1759px） ----------
 * .ss-home-hero-inner は max-width:1440px + margin:0 auto の中央寄せのため、
 * viewportが1440pxを超えて初めて左右に自然な余白が生まれる（1440px以下は
 * 常に padding:0 20px の20pxのみ）。1760px以上の「理想」とされる約180pxの
 * 開始位置はこの自然な中央寄せ余白によるもので、1025〜1440pxの間はこれが
 * まだ働かないため、.ss-home-hero-content に padding-left を追加して
 * 1760pxへ向けて滑らかにつながる開始位置を作る（画像側の列幅・位置には
 * 影響しない）。1024px（1カラム）は上のブロックで別途対応済みのため対象外。
 *
 * 2区間で構成：
 * ・1025〜1439px：ご指示のとおり clamp(32px, calc(8.675vw - 56.9px), 68px)
 * 　を採用（1025px≒32px・1200px≒47px・1280px≒54px・1366px≒62px・1440px≒68px）。
 * ・1440〜1759px：ご指示のとおり clamp(0px, calc(-21.25vw + 374px), 68px)
 * 　を採用（1440px≒68px・1600px≒34px・1759px≒0px）。
 * 両区間の境界（1439px/1440px）で値がほぼ一致するよう係数を選んでおり、
 * 1759px→1760px（このブロックの対象外になり追加paddingが0になる）でも、
 * 1759px時点で既にほぼ0pxまで減っているため見た目上のジャンプは生じない。
 *
 * 【1025px付近の注意点】この範囲は1025〜1200px側のnowrap解除・grid fr化と
 * あわせても、タイトル2行目「笑顔のある暮らしを。」（全角10文字、letter-spacing
 * 0.01em）の実測幅を試算すると、1025px時点の残り余白は約21px相当とやや
 * 詰まり気味。実ブラウザで窮屈な場合は、この帯域だけ
 * clamp(16px, calc(14.9vw - 136.75px), 54px)（1025px≒16px→1200px≒42px→
 * 1280px≒54pxへ、より緩やかに増やす代替式）へ調整可能。
 */
@media (min-width: 1025px) and (max-width: 1439px) {
	.strategy-site .ss-home-hero-content {
		padding-left: clamp(32px, calc(8.675vw - 56.9px), 68px);
	}
}

@media (min-width: 1440px) and (max-width: 1759px) {
	.strategy-site .ss-home-hero-content {
		padding-left: clamp(0px, calc(-21.25vw + 374px), 68px);
	}
}

/*
 * ---------- トップページ：ヒーロー（1025〜1759px）タイポグラフィの連続化 ----------
 * 前回、1280px（コンパクトPCヘッダー開始幅）での縮小を
 * @media (min-width: 1201px) and (max-width: 1759px) 1本で実装したところ、
 * 1200px（既存の @media (min-width: 1201px) 適用前＝ベース値）と
 * 1201px（同ブロック適用開始＝縮小値）の間で、
 * eyebrow・title・text・CTAのいずれも画面を1px広げただけで
 * 大きく縮む逆行ジャンプが発生していた（例：title 45.6px→40.1px）。
 * 原因は「1200px時点でベース側のclamp(34px,3.8vw,50px)が既に45.6pxまで
 * 育っている」のに対し、1201px側の新ルールが1280pxの目標値から
 * 逆算した独立した式だったため、両者の値が1201pxの地点で一致しなかったこと。
 *
 * 今回は、ヒーローが1カラム→2カラムへ切り替わる1024px/1025pxの境界を起点に、
 * 「1025px時点のベース値」から「1280px時点の目標値」、「1280px時点の目標値」から
 * 「1759px時点の目標値（＝既存の @media (min-width: 1201px) 側の値と同じ）」まで
 * 2区間の線形補間でつなぎ、区間の継ぎ目（1279px/1280px）で値が完全に一致するように
 * 係数を逆算している。これにより1024px→1025px・1279px→1280px・1759px→1760pxの
 * いずれの境界でも、値が一致または1px未満の差に収まり、体感できるジャンプが起きない。
 * CTAは1025px→1280pxの区間でわずかに右肩下がりになるが、255px幅にわたる
 * 緩やかな変化（17→15.5px）であり、急激なジャンプではない。
 * text（本文）については、高齢者・ご家族向けの可読性確保のためPC幅では16px未満に
 * しない方針とし、上の @media (min-width: 1201px) ブロック側の値も15px→16pxへ
 * 変更した（このブロックのeyebrow/title/CTAの設定値は変更していない）。
 * 1025px→1280pxは18px→16pxへ連続的に縮小し、1280px以降（このブロックの
 * 1280〜1759px、および1760px以降の上のブロック側）は16pxで据え置く。
 * 上の @media (min-width: 1201px) ブロックのそれ以外の指定（グリッド比率48%/52%・
 * min-height・画像等のレイアウト指定、eyebrow/title）は一切変更していない。
 * hero自体の高さ・画像サイズ・object-fit・crop・グリッド比率・1024px以下（スマホ）は
 * 一切変更していない（対象はfont-size／CTAのpadding-inlineのみ）。
 */
@media (min-width: 1025px) and (max-width: 1279px) {
	.strategy-site .ss-home-hero-eyebrow {
		font-size: clamp(15.5px, calc(-0.2vw + 18.01px), 16px);
	}

	.strategy-site .ss-home-hero-title {
		font-size: clamp(38px, calc(1.21vw + 26.49px), 42px);
	}

	/* 1025px時点のベース値(18px)から1280px時点の目標値(16px)まで連続的に縮小する。 */
	.strategy-site .ss-home-hero-text {
		font-size: clamp(16px, calc(-0.78vw + 26.04px), 18px);
	}

	.strategy-site .ss-home-hero-btn {
		padding-inline: clamp(24px, calc(-1.57vw + 44.08px), 28px);
		font-size: clamp(15.5px, calc(-0.59vw + 23.03px), 17px);
	}
}

@media (min-width: 1280px) and (max-width: 1759px) {
	.strategy-site .ss-home-hero-eyebrow {
		font-size: clamp(15.5px, calc(0.52vw + 8.82px), 18px);
	}

	.strategy-site .ss-home-hero-title {
		font-size: clamp(42px, calc(2.51vw + 9.93px), 54px);
	}

	/* 1280〜1759pxは16pxで据え置く（高齢者・ご家族向けの可読性確保のため15px台まで縮小しない）。 */
	.strategy-site .ss-home-hero-text {
		font-size: 16px;
	}

	.strategy-site .ss-home-hero-btn {
		padding-inline: clamp(24px, calc(0.84vw + 13.31px), 28px);
		font-size: clamp(15.5px, calc(0.31vw + 11.49px), 17px);
	}
}

/* ---------- トップページ：お客様の声 ---------- */

.strategy-site .ss-home-voices {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-home-voices-head {
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

.strategy-site .ss-home-voices-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-voices-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 12px;
}

.strategy-site .ss-home-voices-desc {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-home-voices-highlights {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto 32px;
	text-align: left;
}

.strategy-site .ss-home-voices-grid {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto 40px;
}

.strategy-site .ss-home-voices-grid .ss-voice-card-thumb {
	aspect-ratio: 3 / 2;
}

.strategy-site .ss-home-voices-grid .ss-voice-card-body {
	padding: 16px;
}

.strategy-site .ss-home-voices-more {
	margin: 0;
	text-align: center;
}

.strategy-site .ss-home-voices-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	border: 1px solid var(--ss-gold);
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
}

.strategy-site .ss-home-voices-more a:hover,
.strategy-site .ss-home-voices-more a:focus {
	background: var(--ss-gold);
	color: #fff;
}

/* 固定枠が1件・2件のみの場合は、カード1枚の幅をコラムカードと揃えたまま
   wrapper自体を縮めて中央寄せにする（PC・タブレット幅のみ） */
@media (min-width: 1025px) {
	.strategy-site .ss-home-voices-grid:has(.ss-voice-card:only-child) {
		grid-template-columns: 1fr;
		max-width: calc((1040px - 48px) / 3);
		margin-inline: auto;
	}

	.strategy-site .ss-home-voices-grid:has(.ss-voice-card:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		max-width: calc(((1040px - 48px) / 3) * 2 + 24px);
		margin-inline: auto;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-voices {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-voices-head {
		margin-bottom: 28px;
	}

	.strategy-site .ss-home-voices-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-voices-highlights {
		margin-bottom: 24px;
	}
}

/* ---------- トップページ：コラム ---------- */

.strategy-site .ss-home-columns {
	background: var(--ss-cream);
	border-top: 1px solid var(--ss-line);
}

.strategy-site .ss-home-columns-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-home-columns-heading {
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

.strategy-site .ss-home-columns-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-columns-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 0;
}

.strategy-site .ss-home-columns-grid {
	width: 100%;
	max-width: 1040px;
	margin: 0 auto 40px;
}

.strategy-site .ss-home-columns-grid .ss-column-card-body {
	padding: 16px;
}

.strategy-site .ss-home-columns-more {
	margin: 0;
	text-align: center;
}

.strategy-site .ss-home-columns-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	border: 1px solid var(--ss-gold);
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
}

.strategy-site .ss-home-columns-more a:hover,
.strategy-site .ss-home-columns-more a:focus {
	background: var(--ss-gold);
	color: #fff;
}

/* 投稿が1件・2件のみの場合はグリッドを中央寄せにし、
   空セルによる不自然な余白を避ける（PC・タブレット幅のみ） */
@media (min-width: 1025px) {
	.strategy-site .ss-home-columns-grid:has(.ss-column-card:only-child) {
		grid-template-columns: minmax(0, 360px);
		justify-content: center;
	}

	.strategy-site .ss-home-columns-grid:has(.ss-column-card:nth-child(2):last-child) {
		grid-template-columns: repeat(2, minmax(0, 360px));
		justify-content: center;
	}
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-columns-grid:has(.ss-column-card:only-child) {
		grid-template-columns: minmax(0, 360px);
		justify-content: center;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-columns-inner {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-columns-heading {
		margin-bottom: 28px;
	}

	.strategy-site .ss-home-columns-title {
		font-size: 24px;
	}
}

/* ---------- トップページ：事業者情報・実績 ---------- */

.strategy-site .ss-home-profile {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
}

.strategy-site .ss-home-profile-inner {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 96px 24px;
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 44px;
}

.strategy-site .ss-home-profile-content {
	min-width: 0;
}

.strategy-site .ss-home-profile-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-profile-title {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 28px;
	font-weight: 500;
	color: var(--ss-navy2);
	line-height: 1.4;
	margin: 10px 0 0;
}

.strategy-site .ss-home-profile-title span {
	display: block;
}

.strategy-site .ss-home-profile-title::after {
	content: "";
	display: block;
	width: 72px;
	height: 1px;
	margin-top: 20px;
	background: var(--ss-gold);
}

.strategy-site .ss-home-profile-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}

.strategy-site .ss-home-profile-stat {
	display: flex;
	flex-direction: column;
	background: var(--ss-cream);
	border: 1px solid var(--ss-line);
	border-radius: 14px;
	padding: 24px;
	box-shadow: 0 4px 14px rgba(15, 41, 74, .05);
}

.strategy-site .ss-home-profile-stat-label {
	margin: 0;
	color: var(--ss-muted);
	font-size: 16px;
	line-height: 1.6;
}

.strategy-site .ss-home-profile-stat-value {
	margin: 10px 0;
	color: var(--ss-navy);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 26px;
	font-weight: 600;
	line-height: 1.3;
}

.strategy-site .ss-home-profile-stat-description {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-home-profile-details {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: 20px;
}

.strategy-site .ss-home-profile-card {
	background: #fff;
	border: 1px solid var(--ss-line);
	border-radius: 0;
	padding: 32px;
}

.strategy-site .ss-home-profile-card-head {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--ss-gold2);
}

.strategy-site .ss-home-profile-card-number {
	margin: 0;
	color: var(--ss-gold);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .08em;
}

.strategy-site .ss-home-profile-card-heading {
	margin: 0;
	color: var(--ss-navy2);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 23px;
	font-weight: 600;
	line-height: 1.5;
}

.strategy-site .ss-home-profile-card p {
	margin: 0 0 14px;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.9;
}

.strategy-site .ss-home-profile-card p:last-of-type {
	margin-bottom: 0;
}

.strategy-site .ss-home-profile-career-highlight {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	margin-top: 24px;
	padding: 20px 24px;
	background: var(--ss-cream);
	border-left: 3px solid var(--ss-gold);
	border-radius: 0;
}

.strategy-site .ss-home-profile-career-highlight .ss-home-profile-career-text {
	width: fit-content;
	max-width: 100%;
	margin: 0 auto;
	color: var(--ss-navy);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: .02em;
	text-align: left;
}

.strategy-site .ss-home-profile-career-text span {
	display: block;
}

.strategy-site .ss-home-profile-career-label {
	flex-shrink: 0;
	color: var(--ss-gold);
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .04em;
}

@media (min-width: 641px) {
	.strategy-site .ss-home-profile-career-text span {
		white-space: nowrap;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-profile-career-text span {
		white-space: normal;
	}
}

.strategy-site .ss-home-profile-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-home-profile-tag {
	display: inline-flex;
	align-items: center;
	padding: 10px 16px;
	background: var(--ss-paper);
	border: 1px solid var(--ss-gold2);
	border-radius: 2px;
	color: var(--ss-navy);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	white-space: nowrap;
}

.strategy-site .ss-home-profile-tag::before {
	content: "\2713";
	margin-right: 8px;
	color: var(--ss-gold);
	font-weight: 700;
}

.strategy-site .ss-home-profile-lecture {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid var(--ss-line);
}

.strategy-site .ss-home-profile-lecture-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--ss-navy2);
	color: #fff;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 16px;
}

/*
 * Lightning Origin3 は素の h4 タグへ以下の共通装飾を適用している。
 *
 *   h4:where(:not(.wp-block-post-title)) {
 *     padding: .5em;
 *     background-color: var(--vk-color-border-hr);
 *     border-radius: var(--vk-size-radius);
 *   }
 *
 * `:where()` は詳細度を持たないため実質 h4 単体と同じ詳細度で全ページに適用され、
 * --vk-color-border-hr（#e5e5e5 系の薄いグレー）による背景が「講演活動」見出しに
 * 流入していた。background-color のみ打ち消す。
 */
.strategy-site .ss-home-profile-lecture h4 {
	margin: 4px 0 8px;
	color: var(--ss-navy2);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.6;
	background-color: transparent;
}

.strategy-site .ss-home-profile-lecture p {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

@media (max-width: 1200px) {
	.strategy-site .ss-home-profile-inner {
		display: block;
		padding: 80px 24px;
	}

	.strategy-site .ss-home-profile-heading {
		max-width: 640px;
		margin: 0 auto 36px;
		text-align: center;
	}

	.strategy-site .ss-home-profile-title::after {
		margin-left: auto;
		margin-right: auto;
	}
}

/*
 * 1201px〜1279px：.ss-home-profile-inner は220px固定カラム＋
 * minmax(0,1fr)の2カラムgridのままだが、コンテナのpadding-inlineが24pxしかなく
 * 見出し（PROFILE & EXPERIENCE／事業者情報・実績）が画面端に寄って見える。
 * 右カラム（実績カード群）の位置・幅を保つため、カラム構造やコンテナpaddingは
 * 変更せず、左カラム内側にだけpadding-leftを加えて見出しを右へ寄せる。
 * 1280px以降は.ss-home-profile-innerのmax-width:1240pxによる自動センタリングで
 * 左余白が自然に増えていくため、1279px付近でpadding-leftを0近くまで
 * 減衰させ、1280pxへの切り替わりで見た目が不自然にジャンプしないようにする。
 */
@media (min-width: 1201px) and (max-width: 1279px) {
	.strategy-site .ss-home-profile-heading {
		padding-left: clamp(8px, calc(730px - 56.4vw), 52px);
	}
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-profile-stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.strategy-site .ss-home-profile-details {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 768px) {
	.strategy-site .ss-home-profile-inner {
		padding: 72px 20px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-profile-inner {
		padding: 56px 16px;
	}

	.strategy-site .ss-home-profile-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-profile-stats {
		grid-template-columns: minmax(0, 1fr);
	}

	.strategy-site .ss-home-profile-stat,
	.strategy-site .ss-home-profile-card {
		padding: 20px;
	}

	.strategy-site .ss-home-profile-card-heading {
		font-size: 20px;
	}

	.strategy-site .ss-home-profile-career-highlight {
		align-items: flex-start;
		padding: 16px 18px;
	}

	.strategy-site .ss-home-profile-lecture {
		gap: 12px;
	}
}

/* ---------- トップページ：お客様からの評価 ---------- */

.strategy-site .ss-home-ratings {
	width: 100%;
	background: var(--ss-cream);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-ratings-inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding: 96px 20px;
}

.strategy-site .ss-home-ratings-header {
	max-width: 640px;
	margin: 0 auto 48px;
	text-align: center;
}

.strategy-site .ss-home-ratings-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-ratings-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 12px;
}

.strategy-site .ss-home-ratings-description {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-home-ratings-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 16px;
}

.strategy-site .ss-home-rating-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
	border: 1px solid var(--ss-line);
	border-radius: 14px;
	padding: 28px 18px;
	text-align: center;
	box-shadow: 0 4px 14px rgba(15, 41, 74, .05);
}

.strategy-site .ss-home-rating-name {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	margin: 0 0 14px;
	color: var(--ss-navy2);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.6;
}

.strategy-site .ss-home-rating-stars {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 16px;
	font-size: 28px;
	line-height: 1;
}

.strategy-site .ss-home-rating-star {
	position: relative;
	display: inline-block;
	color: color-mix(in srgb, var(--ss-muted) 60%, white);
}

.strategy-site .ss-home-rating-star::after {
	content: "★";
	position: absolute;
	inset: 0 auto 0 0;
	overflow: hidden;
	white-space: nowrap;
	color: var(--ss-gold);
	width: var(--star-fill, 0%);
}

.strategy-site .ss-home-rating-score-label {
	margin: 0;
	color: var(--ss-muted);
	font-size: 13px;
	line-height: 1.6;
}

.strategy-site .ss-home-rating-score {
	margin: 4px 0 0;
	color: var(--ss-navy);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.3;
}

.strategy-site .ss-home-rating-scale {
	margin: 6px 0 0;
	color: var(--ss-muted);
	font-size: 11px;
	line-height: 1.6;
}

@media (max-width: 1200px) {
	.strategy-site .ss-home-ratings-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 16px;
	}
}

@media (max-width: 768px) {
	.strategy-site .ss-home-ratings-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-ratings-inner {
		padding: 56px 16px;
	}

	.strategy-site .ss-home-ratings-header {
		margin-bottom: 32px;
	}

	.strategy-site .ss-home-ratings-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-ratings-grid {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-home-rating-card {
		padding: 20px 16px;
	}
}

/* ---------- トップページ：お知らせ ---------- */

.strategy-site .ss-home-news {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-news-inner {
	width: 100%;
	max-width: 960px;
	margin-inline: auto;
	padding: 56px 20px;
}

.strategy-site .ss-home-news-header {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px 24px;
	margin-bottom: 24px;
}

.strategy-site .ss-home-news-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
}

.strategy-site .ss-home-news-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 22px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 6px 0 0;
}

.strategy-site .ss-home-news-more {
	flex-shrink: 0;
	color: var(--ss-navy2);
	font-size: 14px;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-home-news-more:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-home-news-more:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-home-news-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-home-news-item {
	display: grid;
	grid-template-columns: 100px minmax(0, 1fr);
	align-items: baseline;
	gap: 20px;
	padding-block: 17px;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-news-date {
	color: var(--ss-gold);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .04em;
}

.strategy-site .ss-home-news-item-title {
	min-width: 0;
	color: var(--ss-navy2);
	font-size: 18px;
	line-height: 1.6;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-home-news-item-title:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-home-news-item-title:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-home-news-empty {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
}

@media (max-width: 640px) {
	.strategy-site .ss-home-news-inner {
		padding: 44px 16px;
	}

	.strategy-site .ss-home-news-item {
		grid-template-columns: 1fr;
		gap: 4px;
		padding-block: 14px;
	}
}

/* ---------- トップページ：私たちの考え ---------- */

.strategy-site .ss-home-philosophy {
	background: #faf7f1;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-philosophy-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-home-philosophy-heading {
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

.strategy-site .ss-home-philosophy-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-philosophy-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 12px;
}

.strategy-site .ss-home-philosophy-lead {
	margin: 0;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.8;
}

.strategy-site .ss-home-philosophy-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 40px;
}

.strategy-site .ss-home-philosophy-item {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--ss-paper);
	border: 1px solid var(--ss-line);
	border-radius: 12px;
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: border-color .2s ease;
}

.strategy-site .ss-home-philosophy-item:hover,
.strategy-site .ss-home-philosophy-item:focus-visible {
	border-color: var(--ss-gold);
}

.strategy-site .ss-home-philosophy-item:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 2px;
}

.strategy-site .ss-home-philosophy-image {
	aspect-ratio: 4 / 3;
}

.strategy-site .ss-home-philosophy-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.strategy-site .ss-home-philosophy-content {
	padding: 20px 16px;
}

.strategy-site .ss-home-philosophy-content h3 {
	font-family: "Yu Mincho", serif;
	font-size: 14px;
	line-height: 1.65;
	color: var(--ss-navy2);
	margin: 0 0 8px;
}

/*
 * 「医療・介護・法務の視点を活かした支援」の見出しのみ、
 * 1行表示のためfont-sizeを13pxへ縮小した分、他3カードより視認性が弱く見えるため、
 * font-weightだけを上げて調整する。font-size・letter-spacing・色は変更しない。
 */
.strategy-site .ss-home-philosophy-content h3.ss-home-philosophy-content-h3-tight-legal {
	font-weight: 600;
}

.strategy-site .ss-home-philosophy-content p {
	margin: 0;
	font-size: 17px;
	line-height: 1.8;
	color: var(--ss-muted);
}

.strategy-site .ss-home-philosophy-more {
	margin: 0;
	text-align: center;
}

.strategy-site .ss-home-philosophy-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	border: 1px solid var(--ss-gold);
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
}

.strategy-site .ss-home-philosophy-more a:hover,
.strategy-site .ss-home-philosophy-more a:focus {
	background: var(--ss-gold);
	color: #fff;
}

@media (min-width: 1201px) {
	.strategy-site .ss-home-philosophy-content h3 {
		white-space: nowrap;
	}

	/*
	 * 「Integrity（清廉性・誠実さ）という価値観」の1見出しのみ、
	 * 英字＋全角文字の合計幅が他カードより長くカード右端で見切れるため、
	 * この見出しだけ font-size / letter-spacing / padding を調整して1行に収める。
	 * 他の3カードの見出し（.ss-home-philosophy-content h3 の基本スタイル）は変更しない。
	 *
	 * セレクタは意図的に h3.ss-home-philosophy-content-h3-tight とし、
	 * 上の `.strategy-site .ss-home-philosophy-content h3`（クラス2つ+タグ1つ）より
	 * 詳細度を上げている（詳細度が負けると指定が無視されるため）。
	 *
	 * 算出根拠（1201px以上、.ss-home-philosophy-inner max-width:1180pxにより
	 * この帯域ではグリッド実幅は一定になる想定）：
	 * ・見出しテキストの実質幅は、全角15em相当＋半角"Integrity"部分 約4.1〜5.1em、
	 *   合計 約19.75〜20.07em（中央値19.75em、安全側の上限20.07em）と逆算。
	 * ・このカードの content padding を左右16px→11pxに縮小（他3カードは16pxのまま）
	 *   → 使用可能幅 271px − 22px(padding) = 249px
	 * ・letter-spacing -0.08em（24文字中23箇所の文字間に適用、約1.84em分詰める）
	 * ・font-size 13.5px時の推定横幅：
	 *   中央値ベース (19.75-1.84)×13.5 ≈ 241.8px → 余裕 約7.2px
	 *   安全側上限ベース (20.07-1.84)×13.5 ≈ 246.1px → 余裕 約2.9px
	 *   → 目安2〜4pxの右端余裕を確保しつつ、他3カード（14px）にさらに近づけた。
	 */
	.strategy-site .ss-home-philosophy-content h3.ss-home-philosophy-content-h3-tight {
		font-size: 13.5px;
		letter-spacing: -0.08em;
	}

	.strategy-site .ss-home-philosophy-content:has(h3.ss-home-philosophy-content-h3-tight) {
		padding-inline: 11px;
	}

	/*
	 * 「医療・介護・法務の視点を活かした支援」の見出しのみ、
	 * 全角18文字でカード幅（padding 16pxは変更しない前提）だと
	 * 既定の14pxでは1行に収まらないため、この見出しだけ13.5pxに縮小し、
	 * letter-spacingをわずかに詰めて1行固定にする。
	 * padding・カード幅・他3カードの見出しサイズには影響しない。
	 */
	.strategy-site .ss-home-philosophy-content h3.ss-home-philosophy-content-h3-tight-legal {
		font-size: 13.5px;
		letter-spacing: -0.03em;
		white-space: nowrap;
	}
}

@media (max-width: 1200px) {
	.strategy-site .ss-home-philosophy-content h3 {
		white-space: normal;
	}
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-philosophy-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-philosophy-inner {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-philosophy-heading {
		margin-bottom: 28px;
	}

	.strategy-site .ss-home-philosophy-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-philosophy-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- トップページ：サービス内容 ---------- */

.strategy-site .ss-home-services {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-services-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-home-services-heading {
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

.strategy-site .ss-home-services-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-services-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 12px;
}

.strategy-site .ss-home-services-lead {
	margin: 0;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.8;
}

.strategy-site .ss-home-services-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	margin-bottom: 28px;
}

.strategy-site .ss-home-service-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
	border: 1px solid var(--ss-line);
	text-align: center;
	padding: 26px 10px 20px;
	min-height: 145px;
}

.strategy-site .ss-home-service-number {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ss-gold);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.strategy-site .ss-home-service-icon {
	margin: 14px 0 8px;
	font-size: 28px;
	color: var(--ss-gold);
	line-height: 1;
}

.strategy-site .ss-home-service-title {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--ss-navy2);
	line-height: 1.5;
}

.strategy-site .ss-home-services-note {
	margin: 0;
	padding: 14px 20px;
	text-align: center;
	background: #f2ebde;
	border: 1px solid #e5d6b9;
	color: #5b4b31;
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-fee-note-line {
	display: block;
}

.strategy-site .ss-home-services-note-caution {
	margin: 12px 0 32px;
	text-align: left;
	color: var(--ss-muted);
	font-size: 16px;
	line-height: 1.7;
}

.strategy-site .ss-home-services-note-caution a {
	color: var(--ss-navy2);
	text-decoration: underline;
}

.strategy-site .ss-home-services-more {
	margin: 0;
	text-align: center;
}

.strategy-site .ss-home-services-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	border: 1px solid var(--ss-gold);
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
}

.strategy-site .ss-home-services-more a:hover,
.strategy-site .ss-home-services-more a:focus {
	background: var(--ss-gold);
	color: #fff;
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-services-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-services-inner {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-services-heading {
		margin-bottom: 28px;
	}

	.strategy-site .ss-home-services-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-services-grid {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-home-service-item {
		min-height: auto;
		padding: 22px 12px 18px;
	}
}

/* ---------- トップページ：医療・介護関係者の方へ ---------- */

.strategy-site .ss-home-professionals {
	width: 100%;
	background: var(--ss-cream);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-professionals-inner {
	width: 100%;
	max-width: 1100px;
	margin-inline: auto;
	padding: 76px 20px;
}

.strategy-site .ss-home-professionals-panel {
	display: grid;
	grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
	min-height: 270px;
	background: var(--ss-navy2);
	overflow: hidden;
	border: 0;
	outline: 0;
	border-radius: 0;
	box-shadow: 0 16px 36px rgba(15, 38, 75, .08);
}

.strategy-site .ss-home-professionals-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	min-width: 0;
	padding: 32px 44px;
	text-align: left;
}

.strategy-site .ss-home-professionals-eyebrow {
	margin: 0 0 12px;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .28em;
	text-transform: uppercase;
}

.strategy-site .ss-home-professionals-title {
	margin: 0;
	color: #fff;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: clamp(26px, 1.9vw, 30px);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: .02em;
}

.strategy-site .ss-home-professionals-text {
	max-width: 500px;
	margin: 20px 0 0;
	color: rgba(255, 255, 255, .92);
	font-size: 18px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: .02em;
}

.strategy-site .ss-home-professionals-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	min-height: 48px;
	margin-top: 26px;
	padding: 0 28px;
	border: 1px solid rgba(255, 255, 255, .9);
	border-radius: 0;
	color: #fff;
	background: transparent;
	font-size: 16px;
	font-weight: 700;
	transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, color .22s ease;
}

.strategy-site .ss-home-professionals-link:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
	.strategy-site .ss-home-professionals-link:hover {
		transform: translateY(-2px);
		background: #fff;
		color: var(--ss-navy2);
		box-shadow: 0 8px 20px rgba(0, 0, 0, .14);
	}
}

.strategy-site .ss-home-professionals-link:active {
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.strategy-site .ss-home-professionals-link {
		transition: none;
	}

	.strategy-site .ss-home-professionals-link:hover {
		transform: none;
	}
}

.strategy-site .ss-home-professionals-image {
	min-width: 0;
	min-height: 100%;
	border: 0;
	outline: 0;
	box-shadow: none;
	background: transparent;
}

.strategy-site .ss-home-professionals-image img {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	outline: 0;
	box-shadow: none;
	object-fit: cover;
	object-position: center center;
}

@media (max-width: 900px) {
	.strategy-site .ss-home-professionals-panel {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.strategy-site .ss-home-professionals-content {
		padding: 40px 24px 42px;
	}

	.strategy-site .ss-home-professionals-image {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-professionals-inner {
		padding: 56px 16px;
	}

	.strategy-site .ss-home-professionals-content {
		padding: 32px 20px 36px;
	}

	.strategy-site .ss-home-professionals-title {
		font-size: 24px;
	}
}

/* ---------- お客様の声（アーカイブ／個別／カテゴリ） ---------- */

.strategy-site .strategy-main.ss-voice-archive {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}

.strategy-site .strategy-main.ss-voice-single,
.strategy-site .strategy-main.ss-voice-taxonomy {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 80px;
}

.strategy-site .strategy-main.ss-voice-archive > .ss-voice-highlights,
.strategy-site .strategy-main.ss-voice-archive > .ss-voice-search-section,
.strategy-site .strategy-main.ss-voice-archive > .ss-voice-featured,
.strategy-site .strategy-main.ss-voice-archive > .ss-voice-list {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}

/* ヒーローとアンケート実績の間の縦余白（横幅・inner構造には触れない） */

@media (min-width: 1201px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-highlights {
		margin-top: 56px;
	}
}

@media (max-width: 1200px) and (min-width: 641px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-highlights {
		margin-top: 44px;
	}
}

@media (max-width: 640px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-highlights {
		margin-top: 32px;
	}
}

/* アンケート実績（注記）と検索欄の間の縦余白 */

@media (min-width: 1201px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-search-section {
		margin-top: 32px;
	}
}

@media (max-width: 1200px) and (min-width: 641px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-search-section {
		margin-top: 28px;
	}
}

@media (max-width: 640px) {
	body.strategy-site .strategy-main.ss-voice-archive > .ss-voice-search-section {
		margin-top: 24px;
	}
}

/* アンケート実績（ご入居後アンケート） */

.strategy-site .ss-voice-highlights {
	text-align: left;
}

.strategy-site .ss-voice-highlights-rating {
	margin: 0;
	color: var(--ss-navy2);
	font-size: 17px;
	line-height: 1.7;
}

.strategy-site .ss-voice-highlights-score {
	color: var(--ss-navy);
	font-weight: 600;
	font-size: 17px;
}

.strategy-site .ss-voice-highlights-note {
	margin: 8px 0 0;
	color: var(--ss-muted);
	font-size: 16px;
	line-height: 1.7;
}

/* ページヒーロー */

.strategy-site .ss-voice-hero {
	text-align: center;
	padding-bottom: 36px;
	margin-bottom: 36px;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-voice-hero-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 12px;
}

.strategy-site .ss-voice-hero-desc {
	font-size: 18px;
	color: var(--ss-muted);
	margin: 0;
}

/* 検索・カテゴリ絞り込みフォーム */

.strategy-site .ss-voice-search-section {
	margin-bottom: 44px;
}

.strategy-site .ss-voice-search {
	background: var(--ss-cream);
	border: 1px solid var(--ss-line);
	padding: 22px;
}

.strategy-site .ss-voice-search-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
}

.strategy-site .ss-voice-search-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 220px;
	min-width: 0;
}

.strategy-site .ss-voice-search-label {
	font-size: 17px;
	color: var(--ss-muted);
}

.strategy-site .ss-voice-search-field input[type="text"],
.strategy-site .ss-voice-search-field select {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--ss-line);
	background: var(--ss-paper);
	color: var(--ss-navy2);
	font-size: 16px;
}

.strategy-site .ss-voice-search-submit {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 12px 24px;
	background: var(--ss-gold);
	color: #fff;
	border: 1px solid var(--ss-gold);
	font-size: 16px;
	cursor: pointer;
}

.strategy-site .ss-voice-search-submit:hover,
.strategy-site .ss-voice-search-submit:focus {
	opacity: .9;
}

.strategy-site .ss-voice-search-clear {
	margin: 14px 0 0;
	font-size: 13px;
}

.strategy-site .ss-voice-search-clear a {
	color: var(--ss-navy2);
	text-decoration: underline;
}

/* セクション見出し */

.strategy-site .ss-voice-section-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 22px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 20px;
}

.strategy-site .ss-voice-featured {
	margin-bottom: 48px;
}

.strategy-site .ss-voice-list {
	margin-bottom: 24px;
}

/* 注目記事・通常一覧（共通グリッド） */

.strategy-site .ss-voice-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.strategy-site .ss-voice-card {
	display: flex;
	flex-direction: column;
	background: var(--ss-paper);
	border: 1px solid var(--ss-line);
	overflow: hidden;
}

.strategy-site .ss-voice-card-thumb {
	display: block;
	aspect-ratio: 4 / 3;
	background: var(--ss-cream);
}

.strategy-site .ss-voice-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.strategy-site .ss-voice-card-thumb-placeholder {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	color: var(--ss-gold2);
}

.strategy-site .ss-voice-card-thumb-placeholder::before {
	content: "\201D";
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 56px;
	line-height: 1;
}

.strategy-site .ss-voice-card-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 20px;
}

.strategy-site .ss-voice-card-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-size: 11px;
	color: var(--ss-muted);
}

.strategy-site .ss-voice-card-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.strategy-site .ss-voice-card-cat {
	padding: 3px 9px;
	border: 1px solid var(--ss-gold2);
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
}

.strategy-site .ss-voice-card-title {
	font-family: "Yu Mincho", serif;
	font-size: 18px;
	line-height: 1.55;
	margin: 0 0 10px;
}

.strategy-site .ss-voice-card-title a {
	color: var(--ss-navy2);
}

.strategy-site .ss-voice-card-excerpt {
	font-size: 17px;
	line-height: 1.7;
	color: var(--ss-muted);
	margin: 0 0 14px;
}

.strategy-site .ss-voice-card-link {
	margin-top: auto;
	align-self: flex-start;
	font-size: 13px;
	font-weight: 700;
	color: var(--ss-gold);
}

/* 空結果 */

.strategy-site .ss-voice-empty {
	margin: 0;
	color: var(--ss-muted);
	font-size: 16px;
	line-height: 1.7;
}

/* ページ送り（the_posts_pagination） */

.strategy-site .ss-voice-list .pagination,
.strategy-site .ss-voice-taxonomy .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}

.strategy-site .ss-voice-list .pagination .nav-links,
.strategy-site .ss-voice-taxonomy .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.strategy-site .ss-voice-list .pagination .page-numbers,
.strategy-site .ss-voice-taxonomy .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--ss-line);
	color: var(--ss-navy2);
	font-size: 14px;
}

.strategy-site .ss-voice-list .pagination .page-numbers.current,
.strategy-site .ss-voice-taxonomy .pagination .page-numbers.current {
	background: var(--ss-gold);
	border-color: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-voice-list .pagination .page-numbers.dots,
.strategy-site .ss-voice-taxonomy .pagination .page-numbers.dots {
	border-color: transparent;
}

/* 個別ページ */

.strategy-site .ss-voice-article-header {
	margin-bottom: 24px;
}

.strategy-site .ss-voice-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--ss-muted);
}

.strategy-site .ss-voice-article-cats {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.strategy-site .ss-voice-article-cat {
	padding: 3px 9px;
	border: 1px solid var(--ss-gold2);
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
}

.strategy-site .ss-voice-article-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 26px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0;
}

/* 個別ページ：画像＋お客様コメント */

.strategy-site .ss-voice-article-content {
	margin-bottom: 40px;
}

.strategy-site .ss-voice-article-content.has-thumbnail {
	display: grid;
	grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
	align-items: start;
	gap: 40px;
}

/* 詳細ページ画像 */
.strategy-site .ss-voice-article-thumb {
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--ss-cream);
}

.strategy-site .ss-voice-article-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* お客様コメント */
.strategy-site .ss-voice-article-body {
	min-width: 0;
	margin: 0;
	padding: 26px 30px;
	background: var(--ss-cream);
	border-left: 3px solid var(--ss-gold2);
	color: #3a3a3a;
	font-size: 19px;
	line-height: 2;
}

/* PCのみ：コメントカードを画像の高さに対して縦中央に配置 */
.strategy-site .ss-voice-article-content.has-thumbnail .ss-voice-article-body {
	align-self: center;
}

.strategy-site .ss-voice-article-body p {
	margin: 0 0 1.4em;
}

.strategy-site .ss-voice-article-body p:last-child {
	margin-bottom: 0;
}

/* 画像がない投稿はコメントのみで表示 */
.strategy-site .ss-voice-article-content:not(.has-thumbnail) .ss-voice-article-body {
	max-width: 760px;
}

/* タブレット・スマートフォン */
@media (max-width: 768px) {
	.strategy-site .ss-voice-article-content.has-thumbnail {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.strategy-site .ss-voice-article-thumb {
		max-width: 520px;
	}

	.strategy-site .ss-voice-article-body {
		padding: 22px 24px;
		font-size: 18px;
	}
}

/* スマートフォン */
@media (max-width: 640px) {
	.strategy-site .ss-voice-article-content {
		margin-bottom: 32px;
	}

	.strategy-site .ss-voice-article-thumb {
		max-width: none;
	}

	.strategy-site .ss-voice-article-body {
		padding: 20px;
		line-height: 1.9;
	}
}

/* カテゴリページ */

.strategy-site .ss-voice-taxonomy .ss-voice-list {
	margin-bottom: 32px;
}

/* 一覧・個別共通の戻るリンク */

.strategy-site .ss-voice-back {
	margin: 0;
	font-size: 14px;
}

.strategy-site .ss-voice-back a {
	color: var(--ss-navy2);
}

.strategy-site .ss-voice-back a:hover,
.strategy-site .ss-voice-back a:focus {
	color: var(--ss-gold);
}

/* タブレット：2列 */

@media (max-width: 1024px) {
	.strategy-site .ss-voice-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* スマートフォン：1列・320pxでも横スクロールなし */

@media (max-width: 640px) {
	.strategy-site .strategy-main.ss-voice-archive {
		padding: 0 0 56px;
	}

	.strategy-site .strategy-main.ss-voice-single,
	.strategy-site .strategy-main.ss-voice-taxonomy {
		padding: 32px 16px 56px;
	}

	.strategy-site .strategy-main.ss-voice-archive > .ss-voice-search-section,
	.strategy-site .strategy-main.ss-voice-archive > .ss-voice-featured,
	.strategy-site .strategy-main.ss-voice-archive > .ss-voice-list {
		padding-inline: 16px;
	}

	.strategy-site .ss-voice-grid {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-voice-search-row {
		flex-direction: column;
		align-items: stretch;
	}

	.strategy-site .ss-voice-search-field {
		flex: 1 1 auto;
	}

	.strategy-site .ss-voice-search-submit {
		width: 100%;
	}

	.strategy-site .ss-voice-article-title {
		font-size: 21px;
	}
}

/* ---------- コラム（通常投稿一覧／個別） ---------- */

.strategy-site .strategy-main.ss-columns-archive {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}

.strategy-site .strategy-main.ss-column-single {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 80px;
}

.strategy-site .strategy-main.ss-columns-archive > .ss-column-search-section,
.strategy-site .strategy-main.ss-columns-archive > .ss-columns-section {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}

/* ヒーローと検索欄の間の縦余白（横幅・inner構造には触れない） */

@media (min-width: 1201px) {
	body.strategy-site .strategy-main.ss-columns-archive > .ss-column-search-section {
		margin-top: 64px;
	}
}

@media (max-width: 1200px) and (min-width: 641px) {
	body.strategy-site .strategy-main.ss-columns-archive > .ss-column-search-section {
		margin-top: 48px;
	}
}

@media (max-width: 640px) {
	body.strategy-site .strategy-main.ss-columns-archive > .ss-column-search-section {
		margin-top: 32px;
	}
}

/* 検索・カテゴリー絞り込みフォーム（お客様の声の検索フォームとデザインを統一） */

.strategy-site .ss-column-search-section {
	margin-bottom: 44px;
}

.strategy-site .ss-column-search {
	background: var(--ss-cream);
	border: 1px solid var(--ss-line);
	padding: 22px;
}

.strategy-site .ss-column-search-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 16px;
}

.strategy-site .ss-column-search-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1 1 220px;
	min-width: 0;
}

.strategy-site .ss-column-search-label {
	font-size: 17px;
	color: var(--ss-muted);
}

.strategy-site .ss-column-search-field input[type="text"],
.strategy-site .ss-column-search-field select {
	width: 100%;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid var(--ss-line);
	background: var(--ss-paper);
	color: var(--ss-navy2);
	font-size: 16px;
}

.strategy-site .ss-column-search-submit {
	flex: 0 0 auto;
	min-height: 44px;
	padding: 12px 24px;
	background: var(--ss-gold);
	color: #fff;
	border: 1px solid var(--ss-gold);
	font-size: 16px;
	cursor: pointer;
}

.strategy-site .ss-column-search-submit:hover,
.strategy-site .ss-column-search-submit:focus {
	opacity: .9;
}

.strategy-site .ss-column-search-clear {
	margin: 14px 0 0;
	font-size: 13px;
}

.strategy-site .ss-column-search-clear a {
	color: var(--ss-navy2);
	text-decoration: underline;
}

/* 一覧セクション */

.strategy-site .ss-columns-section {
	margin-bottom: 24px;
}

.strategy-site .ss-column-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	align-items: stretch;
}

.strategy-site .ss-column-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--ss-paper);
	border: 1px solid var(--ss-line);
	border-top: 3px solid var(--ss-gold);
	overflow: hidden;
}

.strategy-site .ss-column-card-thumb {
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--ss-cream);
}

.strategy-site .ss-column-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.strategy-site .ss-column-card-placeholder {
	display: flex;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
}

.strategy-site .ss-column-card-placeholder::before {
	content: "Column";
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 13px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--ss-gold2);
}

.strategy-site .ss-column-card-body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 20px;
}

.strategy-site .ss-column-card-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-size: 11px;
	color: var(--ss-muted);
}

.strategy-site .ss-column-card-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.strategy-site .ss-column-card-category {
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--ss-cream);
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
}

.strategy-site .ss-column-card-title {
	font-family: "Yu Mincho", serif;
	font-size: 18px;
	line-height: 1.6;
	margin: 0 0 10px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.strategy-site .ss-column-card-title a {
	color: var(--ss-navy2);
}

.strategy-site .ss-column-card-excerpt {
	font-size: 17px;
	line-height: 1.7;
	color: var(--ss-muted);
	margin: 0 0 14px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.strategy-site .ss-column-card-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-top: auto;
	align-self: flex-start;
	font-size: 13px;
	font-weight: 700;
	color: var(--ss-gold);
}

/* 空結果 */

.strategy-site .ss-column-empty {
	padding: 40px 20px;
	text-align: center;
	background: var(--ss-cream);
	border: 1px solid var(--ss-line);
	color: var(--ss-muted);
	font-size: 16px;
}

/* ページ送り（the_posts_pagination） */

.strategy-site .ss-columns-section .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}

.strategy-site .ss-columns-section .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.strategy-site .ss-columns-section .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--ss-line);
	color: var(--ss-navy2);
	font-size: 14px;
}

.strategy-site .ss-columns-section .pagination .page-numbers.current {
	background: var(--ss-gold);
	border-color: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-columns-section .pagination .page-numbers.dots {
	border-color: transparent;
}

/* 個別記事 */

.strategy-site .ss-column-single-header {
	max-width: 960px;
	margin-inline: auto;
	margin-bottom: 24px;
}

.strategy-site .ss-column-single-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--ss-muted);
}

.strategy-site .ss-column-single-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.strategy-site .ss-column-single-category {
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--ss-cream);
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
}

.strategy-site .ss-column-single-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 26px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0;
}

.strategy-site .ss-column-single-thumb {
	max-width: 960px;
	margin-inline: auto;
	margin-bottom: 28px;
}

.strategy-site .ss-column-single-thumb img {
	display: block;
	width: 100%;
	max-width: 960px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* 本文（WordPress ブロックエディター標準要素） */

.strategy-site .ss-column-single-content {
	max-width: 760px;
	margin: 0 auto 40px;
	font-size: 18px;
	line-height: 1.9;
	color: #3a3a3a;
	overflow-wrap: break-word;
	word-break: break-word;
}

.strategy-site .ss-column-single-content p {
	margin: 0 0 1.6em;
}

.strategy-site .ss-column-single-content h2 {
	font-family: "Yu Mincho", serif;
	font-size: 22px;
	line-height: 1.6;
	color: var(--ss-navy2);
	margin: 2em 0 .8em;
}

.strategy-site .ss-column-single-content h3 {
	font-family: "Yu Mincho", serif;
	font-size: 18px;
	line-height: 1.6;
	color: var(--ss-navy2);
	margin: 1.8em 0 .7em;
}

.strategy-site .ss-column-single-content h4,
.strategy-site .ss-column-single-content h5,
.strategy-site .ss-column-single-content h6 {
	color: var(--ss-navy2);
	margin: 1.6em 0 .6em;
}

.strategy-site .ss-column-single-content ul,
.strategy-site .ss-column-single-content ol {
	margin: 0 0 1.6em;
	padding-left: 1.4em;
}

.strategy-site .ss-column-single-content li {
	margin-bottom: .5em;
}

.strategy-site .ss-column-single-content img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.6em auto;
}

.strategy-site .ss-column-single-content a {
	color: var(--ss-gold);
	text-decoration: underline;
	word-break: break-all;
}

.strategy-site .ss-column-single-content blockquote {
	margin: 1.6em 0;
	padding: 16px 20px;
	border-left: 3px solid var(--ss-gold);
	background: var(--ss-cream);
	color: var(--ss-muted);
}

/* 一覧・個別共通の戻るリンク */

.strategy-site .ss-column-single-back {
	max-width: 960px;
	margin: 40px auto 0;
	font-size: 14px;
}

.strategy-site .ss-column-single-back a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--ss-navy2);
}

.strategy-site .ss-column-single-back a:hover,
.strategy-site .ss-column-single-back a:focus {
	color: var(--ss-gold);
}

/* タブレット：2列（1024px以下） */

@media (max-width: 1024px) {
	.strategy-site .ss-column-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 検索フォーム：768px以下で縦積み */

@media (max-width: 768px) {
	.strategy-site .ss-column-search-row {
		flex-direction: column;
		align-items: stretch;
	}

	.strategy-site .ss-column-search-field {
		flex: 1 1 auto;
	}

	.strategy-site .ss-column-search-submit {
		width: 100%;
	}
}

/* スマートフォン：1列・320pxでも横スクロールなし */

@media (max-width: 640px) {
	.strategy-site .strategy-main.ss-columns-archive {
		padding: 0 0 56px;
	}

	.strategy-site .strategy-main.ss-column-single {
		padding: 32px 16px 56px;
	}

	.strategy-site .strategy-main.ss-columns-archive > .ss-column-search-section,
	.strategy-site .strategy-main.ss-columns-archive > .ss-columns-section {
		padding-inline: 16px;
	}

	.strategy-site .ss-column-grid {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-column-single-title {
		font-size: 21px;
	}
}

/* ---------- トップページ：FAQ ---------- */

.strategy-site .ss-home-faq {
	background: var(--ss-paper);
	border-top: 1px solid var(--ss-line);
}

.strategy-site .ss-home-faq-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-home-faq-heading {
	max-width: 640px;
	margin: 0 auto 40px;
	text-align: center;
}

.strategy-site .ss-home-faq-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-faq-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 0;
}

.strategy-site .ss-home-faq-lead {
	margin: 12px 0 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-home-faq-list {
	max-width: 760px;
	margin: 0 auto 40px;
	border-top: 1px solid var(--ss-line);
}

.strategy-site .ss-home-faq-item {
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-home-faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 44px;
	padding: 20px 4px;
	list-style: none;
	cursor: pointer;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--ss-navy2);
}

/* Chrome/Safari と Firefox の両方で、標準の開閉三角マーカーと
   独自アイコン（.ss-home-faq-icon）が二重表示されないようにする。 */
.strategy-site .ss-home-faq-question::-webkit-details-marker {
	display: none;
}

.strategy-site .ss-home-faq-question::marker {
	display: none;
}

.strategy-site .ss-home-faq-icon {
	position: relative;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
}

.strategy-site .ss-home-faq-icon::before,
.strategy-site .ss-home-faq-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--ss-gold);
	transform: translate(-50%, -50%);
}

.strategy-site .ss-home-faq-icon::before {
	width: 14px;
	height: 2px;
}

.strategy-site .ss-home-faq-icon::after {
	width: 2px;
	height: 14px;
	transition: transform .2s ease;
}

.strategy-site details[open] > .ss-home-faq-question .ss-home-faq-icon::after {
	transform: translate(-50%, -50%) scaleY(0);
}

.strategy-site .ss-home-faq-answer {
	padding: 0 4px 22px;
}

.strategy-site .ss-home-faq-answer p {
	margin: 0;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.9;
}

.strategy-site .ss-home-faq-more {
	margin: 0;
	text-align: center;
}

.strategy-site .ss-home-faq-more a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 12px 32px;
	border: 1px solid var(--ss-gold);
	color: var(--ss-gold);
	font-size: 16px;
	font-weight: 700;
}

.strategy-site .ss-home-faq-more a:hover,
.strategy-site .ss-home-faq-more a:focus {
	background: var(--ss-gold);
	color: #fff;
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-faq-inner {
		padding: 56px 20px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-faq-inner {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-faq-heading {
		margin-bottom: 28px;
	}

	.strategy-site .ss-home-faq-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-faq-question {
		padding: 16px 2px;
		font-size: 17px;
	}
}

/* ---------- トップページ：無料相談・お問い合わせCTA ---------- */

.strategy-site .ss-home-contact {
	background: var(--ss-navy);
}

.strategy-site .ss-home-contact-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 76px 20px;
}

.strategy-site .ss-home-contact-content {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}

.strategy-site .ss-home-contact-eyebrow {
	margin: 0;
	color: var(--ss-gold2);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-home-contact-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 30px;
	font-weight: 500;
	color: #fff;
	margin: 10px 0 0;
}

.strategy-site .ss-home-contact-text {
	margin: 16px 0 0;
	color: #dfe7ef;
	font-size: 18px;
	line-height: 1.9;
}

.strategy-site .ss-home-contact-actions {
	margin-top: 32px;
}

.strategy-site .ss-home-contact-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 32px;
	border: 2px solid var(--ss-gold2);
	background: #fff;
	color: var(--ss-navy2);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}

.strategy-site .ss-home-contact-button:hover,
.strategy-site .ss-home-contact-button:focus-visible {
	background: var(--ss-navy2);
	border-color: var(--ss-gold2);
	color: #fff;
}

@media (max-width: 1024px) {
	.strategy-site .ss-home-contact-inner {
		padding: 60px 20px;
	}
}

@media (min-width: 641px) {
	.strategy-site .ss-home-contact-title {
		white-space: nowrap;
		font-size: clamp(24px, 2.6vw, 30px);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-home-contact-inner {
		padding: 48px 16px;
	}

	.strategy-site .ss-home-contact-title {
		font-size: 24px;
	}

	.strategy-site .ss-home-contact-text {
		font-size: 17px;
	}

	.strategy-site .ss-home-contact-actions {
		margin-top: 24px;
	}

	.strategy-site .ss-home-contact-button {
		width: 100%;
		max-width: 320px;
		padding: 0 20px;
	}
}

/* ----------------------------------------------------------------------
 * 固定ページ共通：ページヒーロー（.ss-page-hero）
 *
 * 対象：私たちの考え／サービス内容／医療・介護関係者の方へ／
 *       お客様の声（アーカイブ）／コラム（アーカイブ）／よくあるご質問
 *
 * お客様の声・コラムの各アーカイブは <main> 自体の上部 padding を撤去した
 * ため、.ss-page-hero-inner は基準値（無補正）をそのまま使用する。
 * -------------------------------------------------------------------- */

.strategy-site .ss-page-hero {
	background: var(--ss-cream);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-page-hero-inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	text-align: left;
}

.strategy-site .ss-page-hero-eyebrow {
	margin: 0 0 22px;
	color: var(--ss-gold);
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: .28em;
	text-transform: uppercase;
	text-align: left;
}

.strategy-site .ss-page-hero-title {
	margin: 0;
	color: var(--ss-navy2);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: clamp(40px, 3.3vw, 52px);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: .02em;
	text-align: left;
}

.strategy-site .ss-page-hero-description {
	max-width: 880px;
	margin: 26px 0 0;
	color: var(--ss-muted);
	font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
	font-size: 19px;
	font-weight: 400;
	line-height: 2;
	letter-spacing: .03em;
	text-align: left;
}

/* 文の意味上の区切りで改行するための行単位span（対象ページのみ使用） */
.strategy-site .ss-page-hero-description-line {
	display: block;
}

@media (min-width: 1201px) {
	.strategy-site .ss-page-hero {
		min-height: 330px;
		display: flex;
		align-items: center;
	}

	.strategy-site .ss-page-hero-inner {
		padding: 82px 32px 88px;
	}
}

@media (max-width: 1200px) {
	.strategy-site .ss-page-hero {
		min-height: 290px;
		display: flex;
		align-items: center;
	}

	.strategy-site .ss-page-hero-inner {
		padding: 68px 28px 74px;
	}

	.strategy-site .ss-page-hero-title {
		font-size: clamp(36px, 5vw, 46px);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-page-hero {
		min-height: 0;
	}

	.strategy-site .ss-page-hero-inner {
		padding: 56px 20px 62px;
	}

	.strategy-site .ss-page-hero-eyebrow {
		margin-bottom: 17px;
		font-size: 10px;
		letter-spacing: .22em;
	}

	.strategy-site .ss-page-hero-title {
		/* 最長タイトル「医療・介護関係者の方へ」(11文字)が320px幅でも
		   1行に収まるよう、折り返し禁止 + vw基準で縮小する。 */
		font-size: clamp(18px, 6.8vw, 24px);
		line-height: 1.4;
		white-space: nowrap;
	}

	.strategy-site .ss-page-hero-description {
		margin-top: 20px;
		font-size: 18px;
		line-height: 1.9;
	}
}

/* ---------- 固定ページ：私たちの考え ---------- */

.strategy-site .strategy-main.ss-philosophy {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}

.strategy-site .ss-philosophy-section {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

/*
 * トップページのカードからのアンカーリンク着地時、sticky ヘッダー
 * （.ss-header-inner の height:82px + border-bottom 1px）の下に
 * 見出しが隠れないよう、実測ヘッダー高さに余白を足した値を確保する。
 */
#integrity,
#care-support,
#three-way-benefit,
#medical-care-legal-support {
	scroll-margin-top: 100px;
}

/*
 * 「介護施設紹介における私たちの姿勢」（#care-support）だけ、
 * PC表示（ナビが横並びになる1280px以上＝コンパクトPC〜フルPC）で
 * 着地位置が画面上部に寄りすぎるため、共通値100pxに+100pxして
 * セクションがより画面中央寄りで止まるようにする。
 * ヘッダー高さ（82px）自体は変えず、他3つのidや1279px以下の挙動には影響しない。
 */
@media (min-width: 1280px) {
	#care-support {
		scroll-margin-top: 200px;
	}
}

.strategy-site .ss-philosophy-section-alt {
	background: #faf7f1;
}

.strategy-site .ss-philosophy-inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 56px 20px;
}

.strategy-site .ss-philosophy-grid {
	display: grid;
	grid-template-columns: minmax(240px, 340px) 1fr;
	grid-template-areas: "image content";
	align-items: center;
	gap: 40px;
}

.strategy-site .ss-philosophy-section-alt .ss-philosophy-grid {
	grid-template-columns: 1fr minmax(240px, 340px);
	grid-template-areas: "content image";
}

.strategy-site .ss-philosophy-image {
	grid-area: image;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.strategy-site .ss-philosophy-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.strategy-site .ss-philosophy-content {
	grid-area: content;
	min-width: 0;
}

.strategy-site .ss-philosophy-title {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ss-navy2);
	margin: 0 0 18px;
}

.strategy-site .ss-philosophy-content p {
	margin: 0 0 14px;
	font-size: 19px;
	line-height: 1.9;
	color: #454a50;
}

.strategy-site .ss-philosophy-content p:last-child {
	margin-bottom: 0;
}

.strategy-site .ss-philosophy-attitude .ss-philosophy-inner {
	max-width: 1100px;
}

/*
 * 1文目（老人ホーム選びは…）を強制的に1行化していたnowrap指定が、
 * 右の画像列へはみ出す原因だったため解除し、左カラム内で自然に折り返す。
 * 影響範囲を「介護施設紹介における私たちの姿勢」セクション
 * （.ss-philosophy-attitude）配下のみに限定する。
 */
.strategy-site .ss-philosophy-attitude .ss-philosophy-content {
	max-width: 100%;
}

.strategy-site .ss-philosophy-attitude .ss-philosophy-content p {
	max-width: 100%;
	overflow-wrap: break-word;
	word-break: normal;
}

.strategy-site .ss-philosophy-attitude .ss-philosophy-lead-line {
	display: inline;
	white-space: normal;
	max-width: 100%;
	overflow-wrap: break-word;
}

.strategy-site .ss-philosophy-quote {
	margin: 20px 0;
	padding: 20px 24px;
	background: #faf7f1;
	border-left: 3px solid var(--ss-gold);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 18px;
	line-height: 1.9;
	color: #4a3428;
	font-weight: 600;
}

.strategy-site .ss-philosophy-section-alt .ss-philosophy-quote {
	background: #fff;
}

.strategy-site .ss-philosophy-list {
	list-style: none;
	margin: 20px 0;
	padding: 0;
}

.strategy-site .ss-philosophy-list li {
	padding: 16px 18px;
	margin: 10px 0;
	background: #faf7f1;
	border: 1px solid var(--ss-line);
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-philosophy-section-alt .ss-philosophy-list li {
	background: #fff;
}

.strategy-site .ss-philosophy-checklist {
	list-style: none;
	margin: 20px 0;
	padding: 0;
}

.strategy-site .ss-philosophy-checklist li {
	position: relative;
	padding: 8px 0 8px 30px;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-philosophy-checklist li:before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--ss-gold);
	font-weight: 700;
}

.strategy-site .ss-philosophy-cta {
	background: var(--ss-cream);
}

.strategy-site .ss-philosophy-cta .ss-philosophy-inner {
	padding: 56px 20px;
}

.strategy-site .ss-philosophy-actions {
	margin: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
}

.strategy-site .ss-philosophy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--ss-gold);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}

.strategy-site .ss-philosophy-btn-primary {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-philosophy-btn-primary:hover,
.strategy-site .ss-philosophy-btn-primary:focus-visible {
	color: #fff;
	opacity: .9;
}

.strategy-site .ss-philosophy-btn-outline {
	background: transparent;
	color: var(--ss-gold);
}

.strategy-site .ss-philosophy-btn-outline:hover,
.strategy-site .ss-philosophy-btn-outline:focus-visible {
	background: var(--ss-gold);
	color: #fff;
}

@media (max-width: 1024px) {
	.strategy-site .ss-philosophy-grid,
	.strategy-site .ss-philosophy-section-alt .ss-philosophy-grid {
		grid-template-columns: 1fr;
		grid-template-areas: "image" "content";
		gap: 24px;
	}

	.strategy-site .ss-philosophy-image {
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-philosophy-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-philosophy-title {
		font-size: 21px;
	}

	.strategy-site .ss-philosophy-cta .ss-philosophy-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-philosophy-actions {
		flex-direction: column;
	}

	.strategy-site .ss-philosophy-btn {
		width: 100%;
	}
}

/* ---------- 固定ページ：サービス内容 ---------- */

.strategy-site .strategy-main.ss-services {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}

.strategy-site .ss-services-section {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-services-section-alt {
	background: #faf7f1;
}

.strategy-site .ss-services-inner {
	width: 100%;
	max-width: 900px;
	margin: 0 auto;
	padding: 56px 20px;
}

.strategy-site .ss-services-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 28px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 24px;
}

.strategy-site .ss-services-subtitle {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 20px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 28px 0 12px;
}

.strategy-site .ss-services-subtitle:first-of-type {
	margin-top: 0;
}

.strategy-site .ss-services-text {
	margin: 0 0 14px;
	font-size: 18px;
	line-height: 1.9;
	color: #454a50;
}

.strategy-site .ss-services-text:last-child {
	margin-bottom: 0;
}

/* サービスの流れ */

.strategy-site .ss-services-flow {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
}

.strategy-site .ss-services-flow-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #fff;
	border: 1px solid var(--ss-line);
	text-align: center;
	padding: 26px 10px 20px;
	min-height: 145px;
}

.strategy-site .ss-services-flow-number {
	position: absolute;
	top: -14px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ss-gold);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.strategy-site .ss-services-flow-icon {
	margin: 14px 0 8px;
	font-size: 28px;
	color: var(--ss-gold);
	line-height: 1;
}

.strategy-site .ss-services-flow-content {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--ss-navy2);
	line-height: 1.5;
}

.strategy-site .ss-services-note {
	margin: 0;
	padding: 14px 20px;
	text-align: center;
	background: #f2ebde;
	border: 1px solid #e5d6b9;
	color: #5b4b31;
	font-size: 17px;
	line-height: 1.8;
}

/* 対応できる範囲：法律面の対応例 */

.strategy-site .ss-services-support-list {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
}

.strategy-site .ss-services-support-list li {
	position: relative;
	padding: 8px 0 8px 30px;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-services-support-list li:before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--ss-gold);
	font-weight: 700;
}

/* ページ末尾の導線 */

.strategy-site .ss-services-cta {
	background: var(--ss-cream);
}

.strategy-site .ss-services-cta .ss-services-inner {
	padding: 56px 20px;
}

.strategy-site .ss-services-actions {
	margin: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
}

.strategy-site .ss-services-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--ss-gold);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}

.strategy-site .ss-services-btn-primary {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-services-btn-primary:hover,
.strategy-site .ss-services-btn-primary:focus-visible {
	color: #fff;
	opacity: .9;
}

@media (max-width: 1024px) {
	.strategy-site .ss-services-flow {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-services-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-services-title {
		font-size: 22px;
	}

	.strategy-site .ss-services-flow {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-services-flow-item {
		min-height: auto;
		padding: 22px 12px 18px;
	}

	.strategy-site .ss-services-cta .ss-services-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-services-actions {
		flex-direction: column;
	}

	.strategy-site .ss-services-btn {
		width: 100%;
	}
}

/* ---------- 固定ページ：医療・介護関係者の方へ ---------- */

.strategy-site .strategy-main.ss-professionals {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}


.strategy-site .ss-professionals-section {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-professionals-section-alt {
	background: #faf7f1;
}

.strategy-site .ss-professionals-inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 56px 20px;
}

.strategy-site .ss-professionals-grid {
	display: grid;
	grid-template-columns: minmax(240px, 340px) 1fr;
	grid-template-areas: "image content";
	align-items: center;
	gap: 40px;
}

.strategy-site .ss-professionals-image {
	grid-area: image;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.strategy-site .ss-professionals-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.strategy-site .ss-professionals-content {
	grid-area: content;
	min-width: 0;
}

.strategy-site .ss-professionals-title {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ss-navy2);
	margin: 0 0 18px;
}

.strategy-site .ss-professionals-content p {
	margin: 0;
	font-size: 19px;
	line-height: 1.9;
	color: #454a50;
}

/* 4つの特徴 */

.strategy-site .ss-professionals-features {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	list-style: none;
	margin: 40px 0 0;
	padding: 0;
}

.strategy-site .ss-professionals-feature {
	background: #faf7f1;
	border: 1px solid var(--ss-line);
	border-radius: 14px;
	padding: 24px;
}

.strategy-site .ss-professionals-section-alt .ss-professionals-feature {
	background: #fff;
}

.strategy-site .ss-professionals-feature h3 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 18px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 8px;
}

.strategy-site .ss-professionals-feature p {
	margin: 0;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

/* 「医療情報を正確に理解」「近畿圏内で迅速に対応」カードのみ、末尾の「す。」が
   単独行になる不自然な折り返しを解消するため、本文の横幅とfont-sizeを微調整 */
.strategy-site .ss-professionals-features li:nth-child(2),
.strategy-site .ss-professionals-features li:nth-child(4) {
	padding-left: 20px;
	padding-right: 20px;
}

.strategy-site .ss-professionals-features li:nth-child(2) p,
.strategy-site .ss-professionals-features li:nth-child(4) p {
	font-size: 17px;
}

/* 施設選定が難しいケースこそ、ご相談ください */

.strategy-site .ss-professionals-quote {
	margin: 20px 0 0;
	padding: 24px 28px;
	background: #fff;
	border-left: 3px solid var(--ss-gold);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 18px;
	line-height: 1.9;
	color: var(--ss-navy2);
}

/* 二文目だけ縮小されないよう、一文目と同じサイズ・行間に統一する */
.strategy-site .ss-professionals-quote-nowrap {
	font-size: inherit;
	line-height: inherit;
}

/* ページ末尾の導線 */

.strategy-site .ss-professionals-cta {
	background: var(--ss-cream);
}

.strategy-site .ss-professionals-cta .ss-professionals-inner {
	padding: 56px 20px;
}

.strategy-site .ss-professionals-actions {
	margin: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 14px;
}

.strategy-site .ss-professionals-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--ss-gold);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}

.strategy-site .ss-professionals-btn-primary {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-professionals-btn-primary:hover,
.strategy-site .ss-professionals-btn-primary:focus-visible {
	color: #fff;
	opacity: .9;
}

@media (max-width: 1024px) {
	.strategy-site .ss-professionals-grid {
		grid-template-columns: 1fr;
		grid-template-areas: "image" "content";
		gap: 24px;
	}

	.strategy-site .ss-professionals-image {
		aspect-ratio: 16 / 9;
	}

	.strategy-site .ss-professionals-features {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-professionals-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-professionals-title {
		font-size: 21px;
	}

	.strategy-site .ss-professionals-features {
		grid-template-columns: 1fr;
	}

	.strategy-site .ss-professionals-quote {
		padding: 20px;
		font-size: 17px;
	}

	.strategy-site .ss-professionals-cta .ss-professionals-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-professionals-actions {
		flex-direction: column;
	}

	.strategy-site .ss-professionals-btn {
		width: 100%;
	}
}

@media (min-width: 1025px) {
	/* 4カード見出しを1行に収める */
	.strategy-site .ss-professionals-feature h3 {
		font-size: 18px;
		line-height: 1.5;
		letter-spacing: 0;
		white-space: nowrap;
	}

	/* 白ボックス内、一文目・二文目の行間を統一 */
	.strategy-site .ss-professionals-quote {
		font-size: 18px;
		line-height: 2;
	}
}

/* これまでに対応してきたケース（一例） */

.strategy-site .ss-professionals-case-examples {
	background: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-professionals-cases-inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 56px 20px;
}

.strategy-site .ss-professionals-cases-heading {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", Georgia, serif;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ss-navy2);
	margin: 0 0 28px;
}

.strategy-site .ss-professionals-case-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 24px;
}

.strategy-site .ss-professionals-case-card {
	background: #fff;
	border: 2px solid var(--ss-line);
	padding: 28px 24px;
}

.strategy-site .ss-professionals-case-title {
	margin: 0 0 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--ss-gold2);
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 20px;
	font-weight: 600;
	color: var(--ss-navy2);
}

.strategy-site .ss-professionals-case-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-professionals-case-list li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 14px;
	font-size: 17px;
	line-height: 1.9;
	color: #454a50;
}

.strategy-site .ss-professionals-case-list li:last-child {
	margin-bottom: 0;
}

.strategy-site .ss-professionals-case-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .7em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ss-gold);
}

.strategy-site .ss-professionals-cases-note {
	max-width: 640px;
	margin: 32px auto 0;
	text-align: center;
}

.strategy-site .ss-professionals-cases-note p {
	margin: 0 0 8px;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.9;
}

.strategy-site .ss-professionals-cases-note p:last-child {
	margin-bottom: 0;
}

.strategy-site .ss-professionals-cases-highlight {
	margin: 24px 0 0;
	padding: 22px 28px;
	background: #faf7f1;
	border-left: 3px solid var(--ss-gold);
}

.strategy-site .ss-professionals-cases-highlight p {
	margin: 0;
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.8;
	color: var(--ss-navy2);
	text-align: center;
}

@media (max-width: 768px) {
	.strategy-site .ss-professionals-case-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-professionals-cases-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-professionals-cases-heading {
		font-size: 21px;
		margin-bottom: 20px;
	}

	.strategy-site .ss-professionals-case-card {
		padding: 20px;
	}

	.strategy-site .ss-professionals-cases-highlight {
		padding: 18px 20px;
	}
}

/* ---------- 固定ページ：よくあるご質問 ---------- */

.strategy-site .strategy-main.ss-faq {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}


.strategy-site .ss-faq-section {
	background: var(--ss-paper);
}

.strategy-site .ss-faq-inner {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 72px 20px;
}

.strategy-site .ss-faq-list {
	max-width: 760px;
	margin: 0 auto;
	border-top: 1px solid var(--ss-line);
}

.strategy-site .ss-faq-item {
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 44px;
	padding: 20px 4px;
	list-style: none;
	cursor: pointer;
	font-size: 19px;
	font-weight: 700;
	line-height: 1.6;
	color: var(--ss-navy2);
}

/* Chrome/Safari と Firefox の両方で、標準の開閉三角マーカーと
   独自アイコン（.ss-faq-icon）が二重表示されないようにする。 */
.strategy-site .ss-faq-question::-webkit-details-marker {
	display: none;
}

.strategy-site .ss-faq-question::marker {
	display: none;
}

.strategy-site .ss-faq-question-text:before {
	content: "Q";
	margin-right: 10px;
	color: var(--ss-gold);
	font-family: Georgia, "Yu Mincho", serif;
	font-weight: 700;
}

.strategy-site .ss-faq-icon {
	position: relative;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
}

.strategy-site .ss-faq-icon:before,
.strategy-site .ss-faq-icon:after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--ss-gold);
	transform: translate(-50%, -50%);
}

.strategy-site .ss-faq-icon:before {
	width: 14px;
	height: 2px;
}

.strategy-site .ss-faq-icon:after {
	width: 2px;
	height: 14px;
	transition: transform .2s ease;
}

.strategy-site details[open] > .ss-faq-question .ss-faq-icon:after {
	transform: translate(-50%, -50%) scaleY(0);
}

.strategy-site .ss-faq-answer {
	margin: 0 4px 22px;
	padding: 16px 20px;
	background: #faf7f1;
	border-left: 3px solid var(--ss-gold);
}

.strategy-site .ss-faq-answer p {
	margin: 0;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.9;
}

.strategy-site .ss-faq-cta {
	background: var(--ss-cream);
}

.strategy-site .ss-faq-cta .ss-faq-inner {
	padding: 56px 20px;
}

.strategy-site .ss-faq-actions {
	margin: 0;
	display: flex;
	justify-content: center;
}

.strategy-site .ss-faq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 0 28px;
	border: 1px solid var(--ss-gold);
	font-size: 17px;
	font-weight: 700;
	text-align: center;
}

.strategy-site .ss-faq-btn-primary {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-faq-btn-primary:hover,
.strategy-site .ss-faq-btn-primary:focus-visible {
	color: #fff;
	opacity: .9;
}

@media (max-width: 1024px) {
	.strategy-site .ss-faq-inner {
		padding: 56px 20px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-faq-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-faq-question {
		font-size: 17px;
	}

	.strategy-site .ss-faq-answer {
		padding: 14px 16px;
	}

	.strategy-site .ss-faq-cta .ss-faq-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-faq-btn {
		width: 100%;
	}
}

/* ---------- 固定ページ：無料相談・お問い合わせ ---------- */

.strategy-site .strategy-main.ss-contact {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 0 80px;
}

.strategy-site .ss-contact-hero {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 36px;
	text-align: center;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-contact-hero-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-contact-hero-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 32px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 14px;
}

.strategy-site .ss-contact-hero-desc {
	max-width: 640px;
	margin: 0 auto;
	color: var(--ss-muted);
	font-size: 18px;
	line-height: 1.9;
}

/* 電話・LINE 連絡方法カード */

.strategy-site .ss-contact-methods-section {
	background: var(--ss-cream);
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-contact-methods {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 56px 20px;
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: stretch;
}

.strategy-site .ss-contact-method-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	height: 100%;
	padding: 32px 28px;
	background: var(--ss-paper);
	border: 1px solid var(--ss-line);
	border-radius: 2px;
	text-align: center;
	box-sizing: border-box;
}

.strategy-site .ss-contact-method-title {
	margin: 0 0 12px;
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 20px;
	font-weight: 500;
	color: var(--ss-navy2);
}

.strategy-site .ss-contact-method-text {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.9;
}

.strategy-site .ss-contact-phone-note-mobile {
	display: none;
}

/* タイトル→補足文→ボタンの共通アクションラッパー（電話・LINE共通） */
.strategy-site .ss-contact-method-action {
	display: flex;
	justify-content: center;
	width: 100%;
	margin-top: 20px;
}

/* 電話番号表示・LINEリンクの共通外形（幅・最大幅・最小高さ・内側余白・角丸） */
.strategy-site .ss-contact-phone-number-static,
.strategy-site .ss-contact-phone-link,
.strategy-site .ss-contact-line-link {
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 340px;
	min-height: 64px;
	margin-left: auto;
	margin-right: auto;
	padding: 10px 20px;
	border-radius: 10px;
	box-sizing: border-box;
	text-align: center;
}

.strategy-site .ss-contact-phone-number-static {
	display: inline-flex;
	background: var(--ss-navy2);
	border: 1px solid var(--ss-navy2);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1.3;
}

/* モバイル専用 tel リンク（PCでは display:none で非表示、Tab移動対象外） */
.strategy-site .ss-contact-phone-link {
	display: none;
	background: var(--ss-navy2);
	border: 1px solid var(--ss-navy2);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: .02em;
	text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease;
}

.strategy-site .ss-contact-phone-link:hover {
	background: var(--ss-gold);
	border-color: var(--ss-gold);
}

.strategy-site .ss-contact-phone-link:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-contact-line-link {
	display: flex;
	flex-direction: column;
	background: #06c755;
	color: #fff;
	text-decoration: none;
	transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}

.strategy-site .ss-contact-line-link:hover {
	color: #fff;
	opacity: .9;
	transform: translateY(-1px);
}

.strategy-site .ss-contact-line-link:focus-visible {
	outline: 3px solid var(--ss-navy2);
	outline-offset: 3px;
}

.strategy-site .ss-contact-line-link-main {
	display: block;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
}

.strategy-site .ss-contact-line-link-id {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	line-height: 1.4;
	opacity: .9;
}

@media (max-width: 640px) {
	.strategy-site .ss-contact-methods {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 40px 16px;
	}

	.strategy-site .ss-contact-method-card {
		padding: 24px 20px;
	}

	.strategy-site .ss-contact-phone-link,
	.strategy-site .ss-contact-line-link {
		max-width: none;
	}

	.strategy-site .ss-contact-phone-number-static {
		display: none;
	}

	.strategy-site .ss-contact-phone-link {
		display: inline-flex;
	}

	.strategy-site .ss-contact-phone-note-desktop {
		display: none;
	}

	.strategy-site .ss-contact-phone-note-mobile {
		display: block;
	}
}

.strategy-site .ss-contact-section {
	background: var(--ss-paper);
}

.strategy-site .ss-contact-inner {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	padding: 40px 20px;
	box-sizing: border-box;
}

.strategy-site .ss-contact-heading {
	text-align: center;
	margin: 0 0 22px;
}

.strategy-site .ss-contact-heading h2 {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 24px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 12px;
}

.strategy-site .ss-contact-heading p {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.9;
}

.strategy-site .ss-contact-unavailable {
	margin: 0;
	padding: 32px 20px;
	text-align: center;
	background: #faf7f1;
	border: 1px solid var(--ss-line);
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

/* Contact Form 7 フィールドレイアウト */

/*
 * Contact Form 7 はフィールドをデフォルトで <p> タグ（ブラウザ標準の
 * margin-block: 1em 付き）や <br> で区切って出力するため、
 * このブラウザ標準余白がグリッドの row-gap とは別に加算され、
 * row-gap の調整だけでは縦間隔がほとんど変わらない主因になっていた。
 * .ss-contact-form 内の <p>/<br> の余白をリセットし、
 * 縦間隔を row-gap のみで一元的にコントロールする。
 */
.strategy-site .ss-contact-form .wpcf7-form p {
	margin: 0;
}

.strategy-site .ss-contact-form .wpcf7-form br {
	display: none;
}

.strategy-site .ss-contact-form-fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	row-gap: 14px;
	column-gap: 24px;
}

.strategy-site .ss-contact-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}

.strategy-site .ss-contact-field-wide,
.strategy-site .ss-contact-consent,
.strategy-site .ss-contact-submit {
	grid-column: 1 / -1;
	margin: 0;
}

.strategy-site .ss-contact-label {
	display: block;
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ss-navy2);
}

.strategy-site .ss-contact-required,
.strategy-site .ss-contact-optional {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 2px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	vertical-align: middle;
}

.strategy-site .ss-contact-required {
	background: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-contact-optional {
	background: var(--ss-line);
	color: var(--ss-muted);
}

.strategy-site .ss-contact-form-fields input[type="text"].wpcf7-form-control,
.strategy-site .ss-contact-form-fields input[type="email"].wpcf7-form-control,
.strategy-site .ss-contact-form-fields input[type="tel"].wpcf7-form-control,
.strategy-site .ss-contact-form-fields select.wpcf7-form-control,
.strategy-site .ss-contact-form-fields textarea.wpcf7-form-control {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--ss-line);
	border-radius: 2px;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.6;
	color: var(--ss-navy2);
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

.strategy-site .ss-contact-form-fields textarea.wpcf7-form-control {
	min-height: 160px;
	resize: vertical;
}

.strategy-site .ss-contact-form-fields .wpcf7-form-control:focus,
.strategy-site .ss-contact-form-fields .wpcf7-form-control:focus-visible {
	outline: none;
	border-color: var(--ss-gold);
	background: #fffdf7;
	box-shadow: 0 0 0 3px rgba(179, 139, 78, .18);
}

.strategy-site .ss-contact-form-fields .wpcf7-not-valid {
	border-color: #b3364e;
	background: #fdf2f3;
}

.strategy-site .ss-contact-form-fields .wpcf7-not-valid-tip {
	display: block;
	margin: 6px 0 0;
	color: #b3364e;
	font-size: 16px;
	line-height: 1.6;
}

/* 個人情報保護方針への同意 */

.strategy-site .ss-contact-consent .wpcf7-list-item {
	margin: 0;
}

.strategy-site .ss-contact-consent label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 17px;
	line-height: 1.8;
	color: var(--ss-navy2);
	cursor: pointer;
}

.strategy-site .ss-contact-consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--ss-gold);
}

.strategy-site .ss-contact-consent input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 2px;
}

.strategy-site .ss-contact-consent a {
	color: var(--ss-gold);
	text-decoration: underline;
}

.strategy-site .ss-contact-consent a:hover,
.strategy-site .ss-contact-consent a:focus-visible {
	color: var(--ss-navy2);
}

.strategy-site .ss-contact-consent .wpcf7-not-valid-tip {
	margin-top: 8px;
}

/* 送信ボタン・送信中表示 */

.strategy-site .ss-contact-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
}

.strategy-site .ss-contact-submit input[type="submit"].wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	min-width: 220px;
	padding: 0 32px;
	background: var(--ss-gold);
	color: #fff;
	border: 1px solid var(--ss-gold);
	border-radius: 2px;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .05em;
	cursor: pointer;
	transition: opacity .15s ease;
}

.strategy-site .ss-contact-submit input[type="submit"].wpcf7-submit:hover,
.strategy-site .ss-contact-submit input[type="submit"].wpcf7-submit:focus-visible {
	opacity: .9;
}

.strategy-site .ss-contact-submit input[type="submit"].wpcf7-submit:focus-visible {
	outline: 2px solid var(--ss-navy2);
	outline-offset: 2px;
}

/* Contact Form 7 送信結果メッセージ */

.strategy-site .ss-contact-form .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 14px 18px;
	border-radius: 2px;
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-contact-form form.sent .wpcf7-response-output {
	background: #eef5ee;
	border: 1px solid #7fa87f;
	color: #2f5c34;
}

.strategy-site .ss-contact-form form.failed .wpcf7-response-output,
.strategy-site .ss-contact-form form.spam .wpcf7-response-output {
	background: #fdf2f3;
	border: 1px solid #d98a95;
	color: #8a2432;
}

.strategy-site .ss-contact-form form.invalid .wpcf7-response-output {
	background: #fdf6ec;
	border: 1px solid #d9b06a;
	color: #7a5522;
}

.strategy-site .ss-contact-notes {
	margin: 20px 0 0;
}

.strategy-site .ss-contact-notes ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.strategy-site .ss-contact-notes li {
	position: relative;
	padding-left: 18px;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.8;
}

.strategy-site .ss-contact-notes li:before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ss-gold);
}

@media (max-width: 1024px) {
	.strategy-site .ss-contact-inner {
		padding: 36px 20px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-contact-hero {
		padding: 52px 16px 28px;
	}

	.strategy-site .ss-contact-hero-title {
		/* 「無料相談・お問い合わせ」(11文字)が320px幅でも1行に収まるよう縮小する。 */
		font-size: clamp(18px, 6.8vw, 24px);
		white-space: nowrap;
	}

	.strategy-site .ss-contact-inner {
		padding: 28px 16px;
	}

	.strategy-site .ss-contact-form-fields {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.strategy-site .ss-contact-submit input[type="submit"].wpcf7-submit {
		width: 100%;
	}
}

/* ---------- 固定ページ：個人情報保護方針 ---------- */

.strategy-site .strategy-main.ss-privacy {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 0 80px;
}

.strategy-site .ss-privacy-hero {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 36px;
	text-align: center;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-privacy-hero-inner {
	max-width: 640px;
	margin: 0 auto;
}

.strategy-site .ss-privacy-hero-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-privacy-hero-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 32px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 14px;
}

.strategy-site .ss-privacy-hero-desc {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.9;
}

.strategy-site .ss-privacy-content {
	background: var(--ss-paper);
}

.strategy-site .ss-privacy-inner {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	padding: 72px 20px;
	box-sizing: border-box;
}

.strategy-site .ss-privacy-document {
	background: #fff;
	border: 1px solid var(--ss-line);
	border-radius: 4px;
	padding: 48px 56px;
	box-sizing: border-box;
}

.strategy-site .ss-privacy-document-header {
	margin: 0 0 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-privacy-document-header h2 {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 24px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0;
}

.strategy-site .ss-privacy-block {
	margin: 32px 0 0;
}

.strategy-site .ss-privacy-document-header + .ss-privacy-block {
	margin-top: 0;
}

.strategy-site .ss-privacy-block h3 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 17px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 14px;
}

.strategy-site .ss-privacy-block p {
	margin: 0 0 12px;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-privacy-block p:last-child {
	margin-bottom: 0;
}

/* 番号付きリスト：ol標準の番号表示は使わず、CSS counter で
   全角ピリオド形式（1．2．3．…）を描画する。 */
.strategy-site .ss-privacy-policy-list {
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: ss-privacy-policy;
}

.strategy-site .ss-privacy-policy-list li {
	position: relative;
	padding: 0 0 0 2.4em;
	margin: 0 0 14px;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
	counter-increment: ss-privacy-policy;
}

.strategy-site .ss-privacy-policy-list li:last-child {
	margin-bottom: 0;
}

.strategy-site .ss-privacy-policy-list li::before {
	content: counter(ss-privacy-policy) "．";
	position: absolute;
	top: 0;
	left: 0;
	width: 2em;
	font-weight: 700;
	color: var(--ss-navy2);
}

.strategy-site .ss-privacy-contact-box {
	margin: 20px 0 0;
	padding: 24px 28px;
	background: var(--ss-cream);
	border: 1px solid var(--ss-line);
}

.strategy-site .ss-privacy-contact-label {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	color: var(--ss-navy2);
}

.strategy-site .ss-privacy-contact-name,
.strategy-site .ss-privacy-contact-manager {
	margin: 0 0 4px;
	font-size: 16px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-privacy-contact-phone {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px;
	margin: 14px 0 0;
	font-size: 17px;
}

.strategy-site .ss-privacy-phone-prefix {
	color: var(--ss-muted);
}

.strategy-site .ss-privacy-phone-static {
	font-weight: 700;
	color: var(--ss-navy2);
}

/* モバイル専用 tel リンク（PCでは display:none で非表示、Tab移動対象外） */
.strategy-site .ss-privacy-phone-link {
	display: none;
	font-weight: 700;
	color: var(--ss-navy2);
	text-decoration: underline;
}

.strategy-site .ss-privacy-phone-link:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-privacy-phone-link:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

@media (max-width: 1024px) {
	.strategy-site .ss-privacy-inner {
		padding: 56px 20px;
	}

	.strategy-site .ss-privacy-document {
		padding: 40px 40px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-privacy-hero {
		padding: 52px 16px 28px;
	}

	.strategy-site .ss-privacy-hero-title {
		font-size: 26px;
	}

	.strategy-site .ss-privacy-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-privacy-document {
		padding: 24px 20px;
		border-radius: 2px;
	}

	.strategy-site .ss-privacy-document-header {
		margin-bottom: 24px;
	}

	.strategy-site .ss-privacy-block {
		margin-top: 28px;
	}

	.strategy-site .ss-privacy-policy-list li {
		padding-left: 2.1em;
	}

	.strategy-site .ss-privacy-contact-box {
		padding: 20px 20px;
	}

	.strategy-site .ss-privacy-contact-phone {
		align-items: center;
	}

	.strategy-site .ss-privacy-phone-static {
		display: none;
	}

	.strategy-site .ss-privacy-phone-link {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		min-width: 44px;
	}
}

@media print {
	.strategy-site .ss-privacy .ss-privacy-hero {
		border-bottom-color: #000;
	}

	.strategy-site .ss-privacy-inner {
		max-width: 100%;
		padding: 0;
	}

	.strategy-site .ss-privacy-document {
		background: #fff;
		border: none;
		padding: 0;
	}

	.strategy-site .ss-privacy-document-header h2,
	.strategy-site .ss-privacy-block h3,
	.strategy-site .ss-privacy-block p,
	.strategy-site .ss-privacy-policy-list li,
	.strategy-site .ss-privacy-contact-label,
	.strategy-site .ss-privacy-contact-name,
	.strategy-site .ss-privacy-contact-manager,
	.strategy-site .ss-privacy-phone-prefix,
	.strategy-site .ss-privacy-phone-static {
		color: #000;
	}

	.strategy-site .ss-privacy-contact-box {
		background: #fff;
		border: 1px solid #000;
	}

	.strategy-site .ss-privacy-phone-static {
		display: inline;
	}

	.strategy-site .ss-privacy-phone-link {
		display: none;
	}
}

/* ---------- 固定ページ：反社会的勢力排除方針 ---------- */

.strategy-site .strategy-main.ss-antisocial {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 0 80px;
}

.strategy-site .ss-antisocial-hero {
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 36px;
	text-align: center;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-antisocial-hero-inner {
	max-width: 640px;
	margin: 0 auto;
}

.strategy-site .ss-antisocial-hero-eyebrow {
	margin: 0;
	color: var(--ss-gold);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .24em;
	text-transform: uppercase;
}

.strategy-site .ss-antisocial-hero-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 32px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 10px 0 14px;
	line-height: 1.5;
}

/* h1・h3の改行位置固定用。PCでは連結表示、640px以下でのみ2行へ切り替える。 */
.strategy-site .ss-antisocial-title-first,
.strategy-site .ss-antisocial-title-second {
	display: inline;
}

.strategy-site .ss-antisocial-hero-desc {
	margin: 0;
	color: var(--ss-muted);
	font-size: 17px;
	line-height: 1.9;
}

.strategy-site .ss-antisocial-content {
	background: var(--ss-paper);
}

.strategy-site .ss-antisocial-inner {
	width: 100%;
	max-width: 860px;
	margin: 0 auto;
	padding: 72px 20px;
	box-sizing: border-box;
}

.strategy-site .ss-antisocial-document {
	background: #fff;
	border: 1px solid var(--ss-line);
	border-radius: 4px;
	padding: 48px 56px;
	box-sizing: border-box;
}

.strategy-site .ss-antisocial-document-header {
	margin: 0 0 32px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-antisocial-document-header h2 {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 24px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0;
}

.strategy-site .ss-antisocial-block {
	margin: 32px 0 0;
}

.strategy-site .ss-antisocial-document-header + .ss-antisocial-block {
	margin-top: 0;
}

.strategy-site .ss-antisocial-block h3 {
	font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
	font-size: 17px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0 0 14px;
}

.strategy-site .ss-antisocial-block p {
	margin: 0 0 12px;
	font-size: 17px;
	line-height: 1.8;
	color: #454a50;
}

.strategy-site .ss-antisocial-block p:last-child {
	margin-bottom: 0;
}

/* 番号付きリスト：ol標準の番号表示は使わず、CSS counter で
   全角ピリオド形式（1．2．3．…）を描画する。 */
.strategy-site .ss-antisocial-policy-list {
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
	counter-reset: ss-antisocial-policy;
}

.strategy-site .ss-antisocial-policy-list li {
	position: relative;
	padding: 0 0 0 2.5em;
	margin: 0 0 14px;
	font-size: 17px;
	line-height: 1.9;
	color: #454a50;
	counter-increment: ss-antisocial-policy;
}

.strategy-site .ss-antisocial-policy-list li:last-child {
	margin-bottom: 0;
}

.strategy-site .ss-antisocial-policy-list li::before {
	content: counter(ss-antisocial-policy) "．";
	position: absolute;
	top: 0;
	left: 0;
	width: 2em;
	font-weight: 700;
	color: var(--ss-navy2);
}

@media (max-width: 1024px) {
	.strategy-site .ss-antisocial-inner {
		padding: 56px 20px;
	}

	.strategy-site .ss-antisocial-document {
		padding: 40px 40px;
	}
}

@media (max-width: 640px) {
	.strategy-site .ss-antisocial-hero {
		padding: 52px 16px 28px;
	}

	.strategy-site .ss-antisocial-hero-title {
		/* 全文「反社会的勢力排除に関する基本方針」(16文字)が320px幅でも
		   1行に収まるよう、PCと同じinline連結のまま縮小する。 */
		font-size: clamp(15px, 5.2vw, 20px);
		line-height: 1.5;
		letter-spacing: 0;
		white-space: nowrap;
	}

	.strategy-site .ss-antisocial-title-first,
	.strategy-site .ss-antisocial-title-second {
		display: inline;
	}

	.strategy-site .ss-antisocial-inner {
		padding: 40px 16px;
	}

	.strategy-site .ss-antisocial-document {
		padding: 24px 20px;
		border-radius: 2px;
	}

	.strategy-site .ss-antisocial-document-header {
		margin-bottom: 24px;
	}

	.strategy-site .ss-antisocial-block {
		margin-top: 28px;
	}

	.strategy-site .ss-antisocial-policy-list li {
		padding-left: 2.2em;
	}
}

@media print {
	.strategy-site .ss-antisocial .ss-antisocial-hero {
		border-bottom-color: #000;
	}

	.strategy-site .ss-antisocial-inner {
		max-width: 100%;
		padding: 0;
	}

	.strategy-site .ss-antisocial-document {
		background: #fff;
		border: none;
		padding: 0;
	}

	.strategy-site .ss-antisocial-document-header h2,
	.strategy-site .ss-antisocial-block h3,
	.strategy-site .ss-antisocial-block p,
	.strategy-site .ss-antisocial-policy-list li {
		color: #000;
	}
}

/* ---------- お知らせ（アーカイブ／個別） ---------- */

.strategy-site .strategy-main.ss-notice-archive {
	width: 100%;
	max-width: none;
	padding: 0 0 80px;
}

.strategy-site .strategy-main.ss-notice-single {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 48px 20px 80px;
}

.strategy-site .strategy-main.ss-notice-archive > .ss-notice-list {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 20px;
}

@media (min-width: 1201px) {
	body.strategy-site .strategy-main.ss-notice-archive > .ss-notice-list {
		margin-top: 56px;
	}
}

@media (max-width: 1200px) and (min-width: 641px) {
	body.strategy-site .strategy-main.ss-notice-archive > .ss-notice-list {
		margin-top: 44px;
	}
}

@media (max-width: 640px) {
	body.strategy-site .strategy-main.ss-notice-archive > .ss-notice-list {
		margin-top: 32px;
	}
}

/* 一覧（縦型リスト） */

.strategy-site .ss-notice-list-items {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.strategy-site .ss-notice-list-item {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 24px;
	padding-block: 18px;
	border-bottom: 1px solid var(--ss-line);
}

.strategy-site .ss-notice-list-date {
	flex: 0 0 auto;
	width: 110px;
	color: var(--ss-gold);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: .04em;
}

.strategy-site .ss-notice-list-title {
	flex: 1 1 auto;
	min-width: 0;
	color: var(--ss-navy2);
	font-size: 18px;
	line-height: 1.6;
	text-decoration: none;
	transition: color .2s ease;
}

.strategy-site .ss-notice-list-title:hover {
	color: var(--ss-gold);
}

.strategy-site .ss-notice-list-title:focus-visible {
	outline: 2px solid var(--ss-gold);
	outline-offset: 3px;
}

.strategy-site .ss-notice-empty {
	margin: 0 0 24px;
	color: var(--ss-muted);
	font-size: 17px;
}

@media (max-width: 480px) {
	.strategy-site .ss-notice-list-item {
		flex-direction: column;
		gap: 4px;
	}

	.strategy-site .ss-notice-list-date {
		width: auto;
	}
}

/* ページ送り（the_posts_pagination） */

.strategy-site .ss-notice-list .pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 32px;
}

.strategy-site .ss-notice-list .pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
}

.strategy-site .ss-notice-list .pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--ss-line);
	color: var(--ss-navy2);
	font-size: 14px;
}

.strategy-site .ss-notice-list .pagination .page-numbers.current {
	background: var(--ss-gold);
	border-color: var(--ss-gold);
	color: #fff;
}

.strategy-site .ss-notice-list .pagination .page-numbers.dots {
	border-color: transparent;
}

/* 個別記事 */

.strategy-site .ss-notice-article-header {
	margin-bottom: 24px;
}

.strategy-site .ss-notice-article-eyebrow {
	margin: 0 0 10px;
	color: var(--ss-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
}

.strategy-site .ss-notice-article-date {
	display: block;
	margin-bottom: 10px;
	color: var(--ss-muted);
	font-size: 12px;
}

.strategy-site .ss-notice-article-title {
	font-family: Georgia, "Yu Mincho", serif;
	font-size: 22px;
	font-weight: 500;
	color: var(--ss-navy2);
	margin: 0;
}

.strategy-site .ss-notice-article-body {
	max-width: 780px;
	margin: 0 auto 40px;
	font-size: 17px;
	line-height: 1.9;
	color: #3a3a3a;
	overflow-wrap: break-word;
	word-break: break-word;
}

.strategy-site .ss-notice-article-body p {
	margin: 0 0 1.6em;
}

.strategy-site .ss-notice-article-body h2 {
	font-family: "Yu Mincho", serif;
	font-size: 20px;
	line-height: 1.6;
	color: var(--ss-navy2);
	margin: 2em 0 .8em;
}

.strategy-site .ss-notice-article-body h3 {
	font-family: "Yu Mincho", serif;
	font-size: 17px;
	line-height: 1.6;
	color: var(--ss-navy2);
	margin: 1.8em 0 .7em;
}

.strategy-site .ss-notice-article-body ul,
.strategy-site .ss-notice-article-body ol {
	margin: 0 0 1.6em;
	padding-left: 1.4em;
}

.strategy-site .ss-notice-article-body li {
	margin-bottom: .5em;
}

.strategy-site .ss-notice-article-body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.6em auto;
}

.strategy-site .ss-notice-article-body a {
	color: var(--ss-gold);
	text-decoration: underline;
	word-break: break-all;
}

.strategy-site .ss-notice-back {
	margin: 40px 0 0;
	font-size: 14px;
}

.strategy-site .ss-notice-back a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: var(--ss-navy2);
}

.strategy-site .ss-notice-back a:hover,
.strategy-site .ss-notice-back a:focus {
	color: var(--ss-gold);
}

@media (max-width: 640px) {
	.strategy-site .ss-notice-article-title {
		font-size: 19px;
	}
}
