/*
Theme Name: 9d9 AI
Theme URI: https://9d9ai.com
Description: 9d9ai.com 独自ブロックテーマ。デザイントークン（theme.json）・テンプレート・パターンなど見た目のみを担当し、CPT・メタ・SEO等の機能はプラグイン 9d9-core が持つ（docs/ARCHITECTURE.md §2）。
Version: 0.1.7
Requires at least: 6.7
Requires PHP: 8.2
Author: 9d9 LLC
Author URI: https://9d9.co.jp
Text Domain: 9d9-ai
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/*
 * 実CSSは書かない方針: デザイントークンは theme.json を正典とする（I-13）。
 * ここに書いてよいのは theme.json で表現できないごく少数の補助スタイルのみ。
 */

:where(
	.ndai-layout-section,
	.ndai-layout-container,
	.ndai-feature-grid,
	.ndai-feature-card,
	.ndai-content-card,
	.ndai-uiux03-service-card,
	.ndai-uiux03-hero-card,
	.ndai-author-card,
	.ndai-cta-card,
	.ndai-article-cta
) {
	box-sizing: border-box;
}

:where(img) {
	height: auto;
	max-width: 100%;
}

:where(.wp-block-post-featured-image img) {
	display: block;
	object-fit: cover;
	width: 100%;
}

:where(a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible) {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

:where([class~="wp-block-button__link"], .wp-block-read-more, .wp-block-post-title a, .wp-block-post-terms a, .wp-block-post-author-name a, .wp-block-post-navigation-link a, .wp-block-categories a, .tag-cloud-link, .wp-block-site-title a, summary) {
	align-items: center;
	display: inline-flex;
	min-height: 2.75rem;
}

:where(.ndai-feature-card a) {
	align-items: center;
	display: inline-flex;
	min-height: 2.75rem;
}

:where(.wp-block-site-title a) {
	min-width: 2.75rem;
}

.wp-block-post-author-name a,
.wp-block-post-title a,
.wp-block-post-terms a {
	box-sizing: border-box;
	min-width: 2.75rem;
}

:where(.ndai-layout-section, .ndai-layout-container, .ndai-feature-card, .ndai-content-card) {
	overflow-wrap: anywhere;
}

:where(.ndai-feature-grid.wp-block-columns) {
	align-items: stretch;
}

:where(.ndai-feature-grid) :where(.wp-block-column, .ndai-feature-card) {
	min-width: 0;
}

:where(.ndai-feature-card) {
	height: 100%;
}

:where(.ndai-site-header) {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	position: sticky;
	top: 0;
	transition: transform 220ms ease;
	z-index: 20;
}

/* 下スクロールで格納、上スクロールで再表示（JSが付け外しする）。 */
.ndai-site-header-hidden {
	transform: translateY(-100%);
}

:where(.ndai-site-header-inner) {
	gap: var(--wp--preset--spacing--40);
	min-height: 3.5rem;
}

:where(.ndai-site-brand) {
	flex: 0 0 auto;
	min-width: 0;
}

.ndai-site-header :where(.ndai-site-brand) {
	flex-shrink: 0;
}

:where(.ndai-site-brand .wp-block-site-title) {
	line-height: 1.2;
}

:where(.ndai-site-header-nav) {
	flex: 1 1 auto;
	gap: var(--wp--preset--spacing--30);
	min-width: 0;
}

/*
 * グローバルナビ（メガメニュー）。
 * コアの wp:navigation では「リンク＋1行説明のグリッド」「3カラムのグループ」を
 * 表現できないため、patterns/hidden-mega-nav.php の静的マークアップに置き換えた。
 */
.ndai-meganav {
	flex: 1 1 auto;
	min-width: 0;
}

.ndai-meganav-sr-only {
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.ndai-meganav-drawer-toggle {
	align-items: center;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: none;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	gap: 0.375rem;
	justify-content: center;
	letter-spacing: 0.08em;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.25rem 0.5rem;
}

.ndai-meganav-bars {
	background: currentcolor;
	height: 2px;
	position: relative;
	width: 1.125rem;
}

.ndai-meganav-bars::before,
.ndai-meganav-bars::after {
	background: currentcolor;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	width: 100%;
}

.ndai-meganav-bars::before {
	top: -0.375rem;
}

.ndai-meganav-bars::after {
	top: 0.375rem;
}

.ndai-meganav-list {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--30);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-meganav-item {
	position: static;
}

.ndai-meganav-row {
	align-items: center;
	display: inline-flex;
	gap: 0.125rem;
}

.ndai-meganav-link {
	align-items: center;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.625rem 0.25rem;
	text-decoration: none;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.24em;
	white-space: nowrap;
}

.ndai-meganav-link:hover {
	text-decoration: underline;
}

.ndai-meganav-toggle {
	align-items: center;
	background: none;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0;
}

.ndai-meganav-chevron {
	border-bottom: 2px solid currentcolor;
	border-right: 2px solid currentcolor;
	display: block;
	height: 0.4rem;
	transform: translateY(-0.1rem) rotate(45deg);
	transition: transform 160ms ease;
	width: 0.4rem;
}

.ndai-meganav-item-open .ndai-meganav-chevron {
	transform: translateY(0.1rem) rotate(-135deg);
}

/* 「開いているだけの親」は現在地と区別する（現在地=下線バー付き / 開いているだけ=背景のみ）。 */
.ndai-meganav-item-open > .ndai-meganav-row {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 6%, transparent);
}

.ndai-meganav-link.ndai-is-current,
.ndai-meganav-item-current > .ndai-meganav-row > .ndai-meganav-link {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 10%, transparent);
	box-shadow: inset 0 -0.1875rem 0 var(--wp--preset--color--primary);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

.ndai-meganav-entry.ndai-is-current,
.ndai-meganav-sublink.ndai-is-current {
	background: color-mix(in srgb, var(--wp--preset--color--primary) 10%, transparent);
	font-weight: 700;
}

.ndai-meganav-panel {
	background: var(--wp--preset--color--base);
	border-top: 1px solid var(--wp--preset--color--contrast-3);
	box-shadow: 0 0.75rem 1.5rem color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	display: none;
	left: 0;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 30;
}

.ndai-meganav-item-open > .ndai-meganav-panel {
	display: block;
}

/*
 * 上下は spacing--70（40〜60px）。メガメニューは面として見せるため、
 * セクション間の余白と同じ強さを取り、ヘッダー直下の窮屈さを避ける。
 * 左右は他セクションと同じ spacing--55（16〜48px）に揃える。
 */
.ndai-meganav-panel-inner {
	box-sizing: border-box;
	margin: 0 auto;
	max-width: var(--wp--style--global--wide-size, 80rem);
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--55);
}

.ndai-meganav-groups {
	display: grid;
	gap: var(--wp--preset--spacing--60);
}

.ndai-meganav-groups-columns {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ndai-meganav-groups-services {
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ndai-meganav-groups-stack {
	grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
}

.ndai-meganav-group-title {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 0.5rem;
	padding: 0 0.75rem;
}

.ndai-meganav-entries {
	display: grid;
	gap: 0.125rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-meganav-groups-grid .ndai-meganav-entries {
	column-gap: var(--wp--preset--spacing--40);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ndai-meganav-entry {
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	display: block;
	min-height: 2.75rem;
	padding: 0.5rem 0.75rem;
	text-decoration: none;
}

.ndai-meganav-entry:hover {
	background: var(--wp--preset--color--accent-subtle);
}

.ndai-meganav-groups-media {
	gap: 0;
	grid-template-columns: 1fr;
	max-width: 24rem;
}

.ndai-meganav-groups-media .ndai-meganav-group + .ndai-meganav-group {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
	margin-top: 0.75rem;
	padding-top: 0.75rem;
}

.ndai-meganav-groups-media .ndai-meganav-group-title {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	margin-bottom: 0.25rem;
	padding-inline: 0.75rem;
}

.ndai-meganav-groups-media .ndai-meganav-group:nth-child(2) .ndai-meganav-entry {
	padding-left: 1.5rem;
}

.ndai-meganav-entry-title {
	display: block;
	font-weight: 700;
}

.ndai-meganav-entry-desc {
	color: var(--wp--preset--color--contrast-2);
	display: block;
	font-size: var(--wp--preset--font-size--caption);
	margin-top: 0.125rem;
}

.ndai-meganav-sublist {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.25rem;
	list-style: none;
	margin: 0 0 0.25rem;
	padding: 0 0.75rem 0 1.5rem;
}

.ndai-meganav-sublink {
	align-items: center;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--wp--preset--color--primary);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--caption);
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0 0.375rem;
	text-decoration: none;
}

.ndai-meganav-sublink:hover {
	text-decoration: underline;
}

/* 末尾リンクは本体から距離を取り、面の締めとして独立させる。 */
.ndai-meganav-more {
	margin: var(--wp--preset--spacing--60) 0 0;
	padding: 0 0.75rem;
}

.ndai-meganav-more-link {
	align-items: center;
	color: var(--wp--preset--color--primary);
	display: inline-flex;
	font-weight: 700;
	min-height: 2.75rem;
	text-decoration: none;
}

.ndai-meganav-more-link::after {
	content: "→";
	margin-left: 0.375rem;
}

.ndai-meganav-more-link:hover {
	text-decoration: underline;
}

.ndai-meganav-drawer-cta {
	align-items: center;
	background: var(--wp--preset--color--primary);
	bottom: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--base);
	display: none;
	font-weight: 700;
	justify-content: center;
	left: 0;
	min-height: 3.25rem;
	padding: 0.75rem 1rem;
	position: fixed;
	right: 0;
	text-decoration: none;
	z-index: 202;
}

/* 全画面ドロワー（ハンバーガー展開時）。幅に関わらずクラスが付いたら適用する。 */
.ndai-meganav-is-open .ndai-meganav-drawer-toggle {
	position: relative;
	z-index: 201;
}

.ndai-meganav-is-open .ndai-meganav-drawer {
	background: var(--wp--preset--color--base);
	box-sizing: border-box;
	display: block;
	inset: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4.5rem var(--wp--preset--spacing--40) 6rem;
	position: fixed;
	z-index: 200;
}

.ndai-meganav-is-open .ndai-meganav-list {
	align-items: stretch;
	flex-direction: column;
	gap: 0;
}

.ndai-meganav-is-open .ndai-meganav-item {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
}

.ndai-meganav-is-open .ndai-meganav-row {
	display: flex;
	justify-content: space-between;
	width: 100%;
}

.ndai-meganav-is-open .ndai-meganav-item .ndai-meganav-link {
	flex: 1 1 auto;
	padding: 0.75rem 0.25rem;
	white-space: normal;
}

.ndai-meganav-is-open .ndai-meganav-panel {
	border-top: 0;
	box-shadow: none;
	position: static;
}

.ndai-meganav-is-open .ndai-meganav-panel-inner {
	max-width: none;
	padding: 0 0 var(--wp--preset--spacing--40);
}

.ndai-meganav-is-open .ndai-meganav-groups,
.ndai-meganav-is-open .ndai-meganav-groups-columns,
.ndai-meganav-is-open .ndai-meganav-groups-services,
.ndai-meganav-is-open .ndai-meganav-groups-stack,
.ndai-meganav-is-open .ndai-meganav-groups-grid .ndai-meganav-entries {
	gap: var(--wp--preset--spacing--40);
	grid-template-columns: 1fr;
}

.ndai-meganav-is-open .ndai-meganav-drawer-cta {
	display: flex;
}

body.ndai-drawer-open {
	overflow: hidden;
}

:where(.ndai-header-cta) {
	flex: 0 0 auto;
}

:where(.ndai-header-cta [class~="wp-block-button__link"]) {
	align-items: center;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.7rem 1rem;
	white-space: nowrap;
}

:where(.ndai-site-header a:focus-visible, .ndai-site-header button:focus-visible) {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

:where(.ndai-skip-link) {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	left: 1rem;
	padding: 0.75rem 1rem;
	position: absolute;
	top: 0.5rem;
	transform: translateY(-160%);
	transition: transform 120ms ease;
	z-index: 100000;
}

:where(.ndai-skip-link:focus) {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--primary);
	transform: translateY(0);
}

:where(.ndai-site-footer) {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

:where(.ndai-site-footer-brand) {
	min-width: 0;
}

:where(.ndai-site-footer-links.wp-block-columns) {
	margin-bottom: 0;
}

:where(.ndai-site-footer h2) {
	margin-bottom: var(--wp--preset--spacing--30);
}

:where(.ndai-site-footer-list) {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

:where(.ndai-site-footer-list li + li) {
	margin-top: 0.5rem;
}

:where(.ndai-site-footer a) {
	align-items: center;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	min-height: 2.75rem;
	min-width: 2.75rem;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.24em;
}

:where(.ndai-site-footer a:focus-visible) {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

@media (max-width: 59.99rem) {

	:where(.ndai-site-header-inner) {
		align-items: center;
		gap: var(--wp--preset--spacing--30);
	}

	:where(.ndai-site-header-nav) {
		flex: 0 0 auto;
		gap: 0.5rem !important;
	}

	.ndai-meganav {
		flex: 0 0 auto;
		position: static;
	}

	/* ハンバーガー（MENU）表記に切り替え、ナビ本体はドロワーとして開くまで隠す。 */
	.ndai-meganav-drawer-toggle {
		display: inline-flex;
	}

	.ndai-meganav-drawer {
		display: none;
	}

	:where(.ndai-header-cta) {
		margin-inline-start: auto;
		order: initial;
	}
}

@media (max-width: 30rem) {

	:where(.ndai-site-header-inner) {
		flex-wrap: wrap;
	}

	:where(.ndai-site-brand) {
		flex: 1 1 auto;
	}

	:where(.ndai-site-header-nav) {
		flex: 1 1 100%;
		justify-content: space-between;
	}
}

:where(.ndai-front-page-main) {
	overflow-x: clip;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.ndai-front-page-main :where(.wp-block-post-content) {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.ndai-front-page-main :where(.ndai-uiux03-section, .ndai-uiux03-final-cta) > :where(.ndai-layout-container) {
	--wp--style--global--content-size: var(--wp--style--global--wide-size);
}

body:is(
	[class~="post-type-archive-ndai_service"],
	[class~="post-type-archive-ndai_case"],
	[class~="single-ndai_service"],
	[class~="single-ndai_case"],
	.blog,
	.category,
	.tag
) main :where(.ndai-layout-container),
body.page-template-default .ndai-solutions-main :where(.ndai-layout-container) {
	--wp--style--global--content-size: var(--wp--style--global--wide-size);
}

body:is(.blog, .category, .tag) main > :where(.ndai-layout-container) {
	margin-left: calc(-1 * var(--wp--style--root--padding-left)) !important;
	margin-right: calc(-1 * var(--wp--style--root--padding-right)) !important;
	max-width: none !important;
}

body:is([class~="single-ndai_service"], [class~="single-ndai_case"]) main :where(.ndai-layout-container) p {
	max-width: 44rem;
}

.wp-block-columns.ndai-uiux03-hero-grid {
	align-items: center;
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(18rem, 0.72fr);
}

:where(.ndai-uiux03-hero-copy, .ndai-uiux03-hero-panel, .ndai-uiux03-service-card, .ndai-uiux03-final-cta) {
	min-width: 0;
}

.ndai-uiux03-hero-copy h1.wp-block-heading {
	max-width: 12em;
}

:where(.ndai-uiux03-hero-copy p) {
	max-width: 42rem;
}

:where(.ndai-uiux03-hero-card) {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	box-shadow: 0 1rem 2.5rem color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

:where(
	.ndai-uiux03-problem-grid,
	.ndai-uiux03-service-grid,
	.ndai-uiux03-case-grid,
	.ndai-uiux03-article-grid
) {
	gap: 1.5rem !important;
}

body:is([class~="single-ndai_service"], [class~="single-ndai_case"]) :where(.ndai-feature-grid),
.ndai-solutions-main :where(.ndai-feature-grid) {
	gap: clamp(2rem, 3vw, 2.5rem) !important;
}

:where(
	.ndai-feature-card,
	.ndai-uiux03-service-card,
	.ndai-uiux03-article-grid > li > .wp-block-group,
	.ndai-content-card
) > :where(.has-small-font-size, .wp-block-post-terms) + :where(h2, h3, .wp-block-post-title) {
	margin-block-start: 0.75rem !important;
}

:where(
	.ndai-feature-card,
	.ndai-uiux03-service-card,
	.ndai-uiux03-article-grid > li > .wp-block-group,
	.ndai-content-card,
	.ndai-cta-card,
	.ndai-article-cta
) > :where(h2, h3, .wp-block-post-title) + :where(p, .wp-block-post-excerpt, .wp-block-post-date) {
	margin-block-start: 1rem !important;
}

:where(.ndai-feature-card, .ndai-uiux03-service-card, .ndai-content-card) > :where(p) + :where(p:has(a)),
:where(.ndai-feature-card, .ndai-uiux03-service-card, .ndai-content-card) > :where(p, .wp-block-post-excerpt, .wp-block-group) + :where(.wp-block-read-more, .wp-block-buttons),
:where(.ndai-cta-card, .ndai-article-cta) > p + .wp-block-buttons {
	margin-block-start: 1.5rem !important;
}

:where(.ndai-uiux03-hero-card) > :where(h2) + :where(ul),
:where(.ndai-uiux03-hero-card) > :where(ul) + :where(p) {
	margin-block-start: 1rem !important;
}

:where(.ndai-faq) {
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 44rem !important;
	width: 100%;
}

:where(.ndai-faq) > :where(h2, .ndai-faq-item),
:where(.ndai-faq-item) > :where(h3, p) {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100%;
}

:where(.ndai-faq-item) > :where(h3) + :where(p) {
	margin-block-start: 1rem !important;
}

:where(.ndai-faq-item + .ndai-faq-item) {
	margin-block-start: clamp(1.5rem, 2vw, 2rem) !important;
}

:where(.ndai-uiux03-check-list) {
	list-style: none;
	margin: 0;
	padding-left: 0;
}

:where(.ndai-uiux03-check-list li) {
	padding-left: 1.5rem;
	position: relative;
}

:where(.ndai-uiux03-check-list li + li) {
	margin-top: 0.75rem;
}

:where(.ndai-uiux03-check-list li)::before {
	background: var(--wp--preset--color--primary);
	content: "";
	height: 0.55rem;
	left: 0;
	position: absolute;
	top: 0.48em;
	width: 0.55rem;
}

.wp-block-columns.ndai-uiux03-service-grid {
	align-items: stretch;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

:where(.ndai-uiux03-service-grid > .wp-block-column) {
	min-width: 0;
}

:where(.ndai-uiux03-service-card) {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

:where(.ndai-uiux03-service-card a) {
	align-items: center;
	display: inline-flex;
	min-height: 2.75rem;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.24em;
}

:where(.ndai-uiux03-problem-grid.wp-block-columns, .ndai-uiux03-case-grid.wp-block-columns, .ndai-uiux03-reason-grid.wp-block-columns) {
	align-items: stretch;
}

:where(.ndai-uiux03-final-cta .is-style-outline [class~="wp-block-button__link"]) {
	background: transparent !important;
	border-color: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--contrast) !important;
}

:where(.ndai-uiux03-final-cta [class~="wp-block-button__link"]:focus-visible, .ndai-uiux03-service-card a:focus-visible) {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

@media (max-width: 75rem) {

	.wp-block-columns.ndai-uiux03-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 48rem) {

	.wp-block-columns.ndai-uiux03-hero-grid,
	.wp-block-columns.ndai-uiux03-service-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.ndai-uiux03-hero-copy h1) {
		max-width: none;
	}
}

/*
 * Phase 3-a layout families.
 * Ratio math is applied to the usable child width after the fixed 48px gap.
 * All spacing below belongs to the approved 4/8/12/16/24/32/48/64/96px scale.
 */
:where(.ndai-layout-section[class*="ndai-family-"]) {
	padding-block: 4rem !important;
	padding-inline: 2rem !important;
}

:where(.ndai-layout-section.ndai-family-lead-split) {
	padding-block: 3rem !important;
}

:where(.ndai-ratio-grid) {
	align-items: start;
	display: grid !important;
	gap: 3rem !important;
	min-width: 0;
}

:where(.ndai-ratio-grid) > * {
	margin-block-start: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	min-width: 0;
	width: 100%;
}

:where(
	.ndai-layout-section[class*="ndai-family-"] [class~="wp-block-button__link"],
	.ndai-layout-section[class*="ndai-family-"] .wp-block-read-more,
	.ndai-layout-section[class*="ndai-family-"] p > a:only-child
) {
	font-size: var(--wp--preset--font-size--caption) !important;
	letter-spacing: 0;
	white-space: nowrap;
}

:where(.ndai-layout-section[class*="ndai-family-"] [class~="wp-block-button__link"]) {
	padding: 0.75rem 1.5rem !important;
}

:where(.ndai-family-service-bento-4 .ndai-bento-grid) {
	display: grid !important;
	gap: 1.5rem !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

:where(.ndai-family-problem-progression .ndai-progression-stack),
:where(.ndai-family-problem-progression .ndai-progression-list),
:where(.ndai-family-case-spotlight-rail .ndai-case-index),
:where(.ndai-family-editorial-feature-index .ndai-editorial-index-list) {
	display: grid !important;
	gap: 1.5rem !important;
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(.ndai-family-split-copy-list .ndai-reason-list) {
	background: var(--wp--preset--color--accent-subtle);
	margin: 0;
	padding: 1.5rem 1.5rem 1.5rem 3rem;
}

:where(.ndai-family-editorial-feature-index .ndai-editorial-index-list) {
	list-style: none;
	margin: 0;
	padding: 0;
}

:where(.ndai-family-editorial-feature-index .ndai-editorial-index-list > li) {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	padding-bottom: 1.5rem;
}

:where(.ndai-family-faq-rail .ndai-faq) {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
}

:where(.ndai-family-issue-index-detail .ndai-issue-index) {
	background: var(--wp--preset--color--accent-subtle);
	margin: 0;
	padding: 1.5rem 1.5rem 1.5rem 3rem;
}

:where(.ndai-family-issue-index-detail .ndai-issue-detail-ledger),
:where(.ndai-family-featured-case-index .ndai-case-index) {
	display: grid !important;
	gap: 1.5rem !important;
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(.ndai-family-closing-cta-split .wp-block-buttons) {
	align-items: stretch;
	justify-content: center;
}

@media (min-width: 64rem) {

	:where(.ndai-ratio-golden-382-618) {
		grid-template-columns: minmax(0, 382fr) minmax(0, 618fr) !important;
	}

	:where(.ndai-ratio-golden-618-382) {
		grid-template-columns: minmax(0, 618fr) minmax(0, 382fr) !important;
	}

	:where(.ndai-ratio-silver-414-586) {
		grid-template-columns: minmax(0, 414fr) minmax(0, 586fr) !important;
	}

	:where(.ndai-ratio-silver-586-414) {
		grid-template-columns: minmax(0, 586fr) minmax(0, 414fr) !important;
	}

	:where(.ndai-family-issue-index-detail .ndai-issue-index) {
		position: sticky;
		top: 6rem;
	}
}

@media (max-width: 47.9375rem) {

	:where(.ndai-layout-section[class*="ndai-family-"]) {
		padding-block: 3rem !important;
		padding-inline: 1rem !important;
	}

	:where(.ndai-ratio-grid) {
		gap: 2rem !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:where(.ndai-family-service-bento-4 .ndai-bento-grid) {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:where(.ndai-layout-section[class*="ndai-family-"] .ndai-feature-card) {
		padding: 1rem !important;
	}

	:where(.ndai-solutions-main .ndai-family-issue-index-detail .ndai-feature-card) {
		padding: 0.5rem !important;
	}

	:where(.ndai-solutions-main .ndai-family-issue-index-detail [class~="wp-block-button__link"]) {
		padding-inline: 0 !important;
	}

}

/*
 * R3 / jp-2 4K office hero.
 * One golden-ratio composition changes axis only: vertical through 1023px,
 * horizontal from 1024px. Mobile copy stays on white, never on photography.
 */
body.home {
	--ndai-page-grid-inline: clamp(1rem, 4vw, 2rem);
}

body.home .ndai-front-page-main .ndai-uiux03-section {
	padding-inline: 0 !important;
}

body.home .ndai-front-page-main {
	margin-block-start: 0 !important;
}

:where(body.home) .ndai-front-page-main :where(.ndai-uiux03-section) > :where(.ndai-layout-container) {
	box-sizing: border-box;
	margin-inline: 0 !important;
	max-width: none !important;
	padding-inline: var(--ndai-page-grid-inline) !important;
	width: 100%;
}

@media (min-width: 80rem) {

	body.home {
		--ndai-page-grid-inline: min(6.5rem, max(2rem, calc((100vw - 80rem) / 2 + 1.5rem)));
	}
}

.ndai-front-page-main .ndai-uiux03-hero {
	--ndai-hero-min-height: 100svh;
	--ndai-hero-parallax-y: 0;
	background-color: #c0a785;
	background-image: none;
	box-sizing: border-box;
	height: var(--ndai-hero-min-height);
	min-height: var(--ndai-hero-min-height);
	overflow: clip;
	padding: 0 !important;
	position: relative;
}

.ndai-front-page-main .ndai-uiux03-hero::before {
	content: none;
}

.ndai-front-page-main .ndai-uiux03-hero > .ndai-layout-container {
	align-content: stretch;
	align-items: end;
	box-sizing: border-box;
	display: grid !important;
	gap: 0 !important;
	grid-template-columns: minmax(0, 1fr) !important;
	margin-inline: 0 !important;
	max-width: none !important;
	min-height: var(--ndai-hero-min-height);
	padding: 0 var(--ndai-page-grid-inline) clamp(3rem, 8svh, 6rem) !important;
	position: relative;
	width: 100%;
	z-index: 1;
}

.ndai-front-page-main .ndai-uiux03-hero-copy {
	align-self: end !important;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	grid-column: 1;
	justify-self: start;
	margin-inline: 0 !important;
	margin-top: 0 !important;
	max-width: min(38rem, calc(100vw - (2 * var(--ndai-page-grid-inline)))) !important;
	outline: 0;
	padding: 0;
	position: relative;
	width: 100%;
	z-index: 3;
}

.ndai-front-page-main .ndai-uiux03-hero-visual {
	display: block;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.ndai-front-page-main .ndai-uiux03-hero-visual::before {
	background-image: url(assets/images/hero-desk-1344.jpg);
	background-image: image-set(
		url(assets/images/hero-desk-1344.webp) type("image/webp") 1x,
		url(assets/images/hero-desk-2688.webp) type("image/webp") 2x,
		url(assets/images/hero-desk-1344.jpg) type("image/jpeg") 1x,
		url(assets/images/hero-desk-2688.jpg) type("image/jpeg") 2x
	);
	background-position: 50% 0%;
	background-repeat: no-repeat;
	background-size: cover;
	content: "";
	inset: -8svh 0;
	position: absolute;
	transform: translate3d(0, var(--ndai-hero-parallax-y), 0);
}

.ndai-front-page-main .ndai-uiux03-hero-visual > :where(video, picture, img) {
	height: calc(100% + 16svh);
	inset: -8svh 0;
	object-fit: cover;
	position: absolute;
	transform: translate3d(0, var(--ndai-hero-parallax-y), 0);
	width: 100%;
}

.ndai-front-page-main .ndai-uiux03-hero-copy h1.wp-block-heading {
	color: var(--wp--preset--color--contrast);
	font-size: clamp(2.25rem, calc(1rem + 2vw), 2.5rem) !important;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.4;
	margin-block: 0 !important;
	margin-inline: 0 !important;
	max-width: none;
	white-space: normal;
}

.ndai-front-page-main .ndai-uiux03-hero-copy .ndai-keep-together {
	white-space: nowrap;
}

.ndai-front-page-main .ndai-uiux03-hero-copy h1 .ndai-keep-together {
	display: block;
}

.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
	align-items: stretch;
	column-gap: 0.75rem;
	flex-wrap: nowrap;
	margin-block-end: 0 !important;
	margin-block-start: 1.5rem !important;
	margin-inline: 0 !important;
	row-gap: 0.75rem;
}

.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-button,
.ndai-front-page-main .ndai-uiux03-hero-copy [class~="wp-block-button__link"] {
	box-sizing: border-box;
}

.ndai-front-page-main .ndai-uiux03-hero-copy [class~="wp-block-button__link"] {
	font-size: 1rem !important;
	justify-content: center;
	letter-spacing: 0.02em;
	min-height: 2.75rem;
	padding: 0.75rem 1.25rem !important;
	white-space: nowrap;
}

.ndai-front-page-main .ndai-uiux03-hero-copy .is-style-outline [class~="wp-block-button__link"] {

	/* 白82%: 最暗の木目上でも #416B88 テキストがAA(4.5:1)を満たす実測値 */
	background-color: rgb(255 255 255 / 82%);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
	padding-inline: calc(1.25rem - 2px) !important;
}

.ndai-front-page-main .ndai-uiux03-hero-copy .ndai-hero-reassurance {
	color: var(--wp--preset--color--contrast);
	font-size: 0.8125rem !important;
	line-break: strict;
	line-height: 1.6;
	margin-block-end: 0 !important;
	margin-block-start: 0.5rem !important;
	margin-inline: 0 !important;
	max-width: none;
	text-wrap: pretty;
	word-break: normal;
}

/* 確定モック mock-3faces.html 準拠: desktopコピーは left 52%（整列グリッド下の無地帯） */
@media (min-width: 64rem) {

	.ndai-front-page-main .ndai-uiux03-hero-copy {
		margin-inline: 52% 0 !important;
		max-width: min(38rem, calc(48vw - var(--ndai-page-grid-inline))) !important;
	}
}

@media (min-width: 90rem) {

	.ndai-front-page-main .ndai-uiux03-hero {
		background-image: none;
	}

	.ndai-front-page-main .ndai-uiux03-hero-visual::before {
		background-image: url(assets/images/hero-desk-2688.jpg);
		background-image: image-set(
			url(assets/images/hero-desk-2688.webp) type("image/webp") 1x,
			url(assets/images/hero-desk-2688.jpg) type("image/jpeg") 1x
		);
	}
}

@media (max-width: 63.9375rem) {

	.ndai-front-page-main .ndai-uiux03-hero {

		/* 短い画面ではheroを最低43remへ伸ばし、コピーを面ごとの無地帯（copy-safe）内へ保つ */
		--ndai-hero-min-height: max(100svh, 43rem);
		background-color: #bea583;
		background-image: none;
	}

	.ndai-front-page-main .ndai-uiux03-hero-visual::before {
		background-image: url(assets/images/hero-desk-tablet-872.jpg);
		background-image: image-set(
			url(assets/images/hero-desk-tablet-872.webp) type("image/webp") 1x,
			url(assets/images/hero-desk-tablet-1744.webp) type("image/webp") 2x,
			url(assets/images/hero-desk-tablet-872.jpg) type("image/jpeg") 1x,
			url(assets/images/hero-desk-tablet-1744.jpg) type("image/jpeg") 2x
		);

		/* 横cropは左側（散在側）で受ける。整列グリッド（右）を切ると主題が破綻する */
		background-position: 100% 0%;
		background-repeat: no-repeat;
		background-size: cover;
	}

	.ndai-front-page-main .ndai-uiux03-hero > .ndai-layout-container {
		align-items: end;
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-rows: minmax(0, 1fr) !important;
		padding: 0 var(--ndai-page-grid-inline) clamp(2rem, 6svh, 4rem) !important;
		row-gap: 0 !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy {
		align-content: start;
		align-self: end !important;
		background: transparent;
		border-radius: 0;
		box-shadow: none;
		grid-column: 1;
		grid-row: 1;
		justify-self: start;
		margin-top: 0 !important;
		max-width: 22rem !important;
		outline: 0;
		padding: 0;
		width: min(22rem, calc(100vw - (2 * var(--ndai-page-grid-inline))));
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy [class~="wp-block-button__link"] {
		line-height: 1.2;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
		margin-block-start: 0.75rem !important;
	}

}

/*
 * 481–1023px の landscape 実機は tablet 3:4 面では crop 全損になるため
 * desktop 16:9 面を割り当てる（面選択は幅でなく実効アスペクトで行う）。
 */
@media (max-width: 63.9375rem) and (orientation: landscape) {

	.ndai-front-page-main .ndai-uiux03-hero {
		background-color: #c0a785;
	}

	.ndai-front-page-main .ndai-uiux03-hero-visual::before {
		background-image: url(assets/images/hero-desk-1344.jpg);
		background-image: image-set(
			url(assets/images/hero-desk-1344.webp) type("image/webp") 1x,
			url(assets/images/hero-desk-2688.webp) type("image/webp") 2x,
			url(assets/images/hero-desk-1344.jpg) type("image/jpeg") 1x,
			url(assets/images/hero-desk-2688.jpg) type("image/jpeg") 2x
		);
		background-position: 50% 0%;
	}
}

/*
 * 短高landscape・wide-short帯: 通常コピー塊では初期viewまたはcopy-safe契約
 * （desktop面 src y>=890）が破れる（G2 major-1 / G3 F-1・R-1・R-3）。
 * 100svhのまま、コピーを1行圧縮でカード帯の下に収める。
 * 条件は (a)横持ちで高さ46rem以下（全幅）、(b)超横長 aspect>=2.1 で高さ66rem以下
 * （2560x1080等のフルスクリーンは非該当・通常レイアウト維持）。
 */
@media (orientation: landscape) and (max-height: 46rem), (min-aspect-ratio: 21/10) and (max-height: 66rem) {

	.ndai-front-page-main .ndai-uiux03-hero {
		--ndai-hero-min-height: 100svh;
	}

	.ndai-front-page-main .ndai-uiux03-hero > .ndai-layout-container {
		padding-bottom: 1.5rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy {
		max-width: 30rem !important;
		width: min(30rem, calc(100vw - (2 * var(--ndai-page-grid-inline))));
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy h1.wp-block-heading {
		font-size: 1.5rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy h1 .ndai-keep-together {
		display: inline;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
		flex-direction: row;
		margin-block-start: 0.5rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .ndai-hero-reassurance {
		margin-block-start: 0.25rem !important;
	}
}

@media (max-width: 47.9375rem) {

	.ndai-front-page-main .ndai-uiux03-hero-copy {
		margin-top: 0 !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy > :first-child {
		margin-block-start: 0 !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy h1.wp-block-heading {
		font-size: 1.75rem !important;
		letter-spacing: 0.02em;
		line-height: 1.4;
		margin-block-end: 0 !important;
		margin-block-start: 0 !important;
		margin-inline: 0 !important;
		max-width: 100%;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
		align-items: flex-start;
		column-gap: 0.75rem;
		flex-wrap: nowrap;
		margin-block-end: 0 !important;
		margin-block-start: 0.75rem !important;
		margin-inline: 0 !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-button {
		flex: 0 1 auto;
		min-width: 0;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy [class~="wp-block-button__link"] {
		letter-spacing: 0.02em;
		line-height: 1.2;
		padding-inline: 0.75rem !important;
		white-space: nowrap;
		width: auto;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .is-style-outline [class~="wp-block-button__link"] {
		padding-block: calc(0.75rem - 2px) !important;
		padding-inline: calc(0.75rem - 2px) !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .ndai-hero-reassurance {
		font-size: 0.8125rem !important;
		line-height: 1.6;
		margin-block-start: 0.5rem !important;
		max-width: none;
	}

}

/* 2ボタンが横に収まらない幅だけ縦積みにする（コピー塊の高さをcopy-safe帯に収めるため上限を26remへ限定） */
@media (max-width: 26rem) {

	.ndai-front-page-main .ndai-uiux03-hero > .ndai-layout-container {

		/* 短高機(320x568)で主CTAをfold内に収める持ち上げ。copy-safe余裕は+24srcpx残る実測 */
		padding-bottom: max(2.75rem, 6svh) !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
		align-items: flex-start;
		flex-direction: column;
		margin-block-start: 0.5rem !important;
	}
}

/*
 * 極短landscape（≤23.5rem高・iPhone SE世代横持ち等）: 1行圧縮でも
 * copy-safe帯に収まらないため最小構成へさらに縮小する（G3 R3-1）。
 * 幅別ブロック（47.9375rem等）より後置し確実に適用する。
 */
@media (orientation: landscape) and (max-height: 23.5rem) {

	.ndai-front-page-main .ndai-uiux03-hero-copy h1.wp-block-heading {
		font-size: 1.25rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .wp-block-buttons {
		margin-block-start: 0.375rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy [class~="wp-block-button__link"] {
		min-height: 2.25rem;
		padding-block: 0.5rem !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .is-style-outline [class~="wp-block-button__link"] {
		padding-block: calc(0.5rem - 2px) !important;
	}

	.ndai-front-page-main .ndai-uiux03-hero-copy .ndai-hero-reassurance {
		margin-block-start: 0.25rem !important;
	}
}

@media (max-width: 30rem) {

	.ndai-front-page-main .ndai-uiux03-hero {
		background-color: #d9c09c;
		background-image: none;
	}

	.ndai-front-page-main .ndai-uiux03-hero-visual::before {
		background-image: url(assets/images/hero-desk-sp-760.jpg);
		background-image: image-set(
			url(assets/images/hero-desk-sp-760.webp) type("image/webp") 1x,
			url(assets/images/hero-desk-sp-1520.webp) type("image/webp") 2x,
			url(assets/images/hero-desk-sp-760.jpg) type("image/jpeg") 1x,
			url(assets/images/hero-desk-sp-1520.jpg) type("image/jpeg") 2x
		);
		background-position: 50% 0%;
	}
}

body.home .ndai-site-header {
	background: none;
	border-bottom: 0;
	inset: 0 0 auto;
	position: fixed;
	transition: background-color 220ms ease, transform 220ms ease;
	z-index: 100;
}

body.home .ndai-site-header-inner {
	max-width: none !important;
	padding-inline: var(--ndai-page-grid-inline) !important;
}

body.home.ndai-home-nav-visible .ndai-site-brand :where(img, .custom-logo) {
	filter: brightness(0) invert(1);
}

body.home:not(.ndai-home-nav-visible) .ndai-site-header-nav {
	justify-content: flex-end;
}

body.home .ndai-header-cta,
body.home .ndai-meganav-drawer {
	transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
}

body.home:not(.ndai-home-nav-visible) .ndai-header-cta,
body.home:not(.ndai-home-nav-visible) .ndai-meganav:not(.ndai-meganav-is-open) .ndai-meganav-drawer {
	display: none !important;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-0.75rem);
	visibility: hidden;
}

body.home:not(.ndai-home-nav-visible) .ndai-meganav-drawer-toggle {
	color: var(--wp--preset--color--contrast);
	display: inline-flex !important;
}

body.home.ndai-home-nav-visible .ndai-site-header {
	background: #1a1a1a;
}

body.home.ndai-home-nav-visible .ndai-site-header :where(.ndai-meganav-link, .ndai-meganav-toggle) {
	color: #fff;
}

/* nav-visible時のパネル: 白パネル上は濃色テキスト（白文字継承で不可視になる実測への対応） */
body.home.ndai-home-nav-visible .ndai-site-header :where(.ndai-meganav-panel .ndai-meganav-entry, .ndai-meganav-panel .ndai-meganav-more-link, .ndai-meganav-panel .ndai-meganav-sublink) {
	color: var(--wp--preset--color--contrast);
}

body.home.ndai-home-nav-visible .ndai-site-header :where(.ndai-meganav-panel .ndai-meganav-entry-desc, .ndai-meganav-panel .ndai-meganav-group-title) {
	color: var(--wp--preset--color--contrast-2);
}

/* scroll後（暗ヘッダー）の60rem未満: ハンバーガー開ボタンも白にする（G3 F-10） */
body.home.ndai-home-nav-visible .ndai-meganav-drawer-toggle {
	color: #fff;
}

body.home.ndai-home-nav-visible .ndai-site-header :where(.ndai-meganav-link.ndai-is-current, .ndai-meganav-item-current > .ndai-meganav-row > .ndai-meganav-link) {
	background: rgb(255 255 255 / 10%);
	color: #fff;
}

/* ドロワー展開中は白地パネルになるため、暗ヘッダーの白文字指定を戻す。 */
body.home.ndai-home-nav-visible .ndai-meganav-is-open :where(.ndai-meganav-link, .ndai-meganav-toggle) {
	color: var(--wp--preset--color--contrast);
}

@media (min-width: 60rem) {

	body.home.ndai-home-nav-visible .ndai-meganav-drawer {
		display: block !important;
		opacity: 1;
		pointer-events: auto;
		visibility: visible;
	}

	body.home.ndai-home-nav-visible .ndai-meganav-drawer-toggle {
		display: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {

	.ndai-site-header,
	.ndai-meganav-chevron {
		transition: none;
	}

	body.home .ndai-site-header {
		transition: none;
	}

	body.home .ndai-header-cta,
	body.home .ndai-meganav-drawer {
		transition: none;
	}

	.ndai-front-page-main .ndai-uiux03-hero-visual::before,
	.ndai-front-page-main .ndai-uiux03-hero-visual > :where(video, picture, img) {
		transform: none;
	}
}

/* Issue #238: note型の閲読幅と本文リズムをブログ記事だけに適用する。 */
/* stylelint-disable no-descending-specificity */
.ndai-media-article > :is(
	.ndai-breadcrumbs-slot,
	.d9-article-header,
	.ndai-media-article-featured,
	.ndai-article-fallback,
	.d9-article-toc,
	.ndai-article-body,
	.d9-back-to-top,
	.d9-container,
	.wp-block-separator,
	.ndai-media-post-navigation
) {
	margin-inline: auto !important;
	max-width: 44rem !important;
	width: min(100%, 44rem) !important;
}

.ndai-media-article > .ndai-article-fallback {
	aspect-ratio: 16 / 9;
	min-height: 0;
}

.ndai-media-article-featured,
.ndai-media-article-featured img {
	display: block;
	height: auto;
	width: 100%;
}

.ndai-media-article .d9-article-header h1 {
	font-size: clamp(1.75rem, 2.4vw, 2.25rem) !important;
	letter-spacing: 0.01em;
	line-height: 1.45;
	margin-block: 0;
}

.ndai-media-article .ndai-article-body {
	font-size: 1rem;
	line-height: 1.9;
}

.ndai-media-article .ndai-article-body :where(p) {
	margin-block: 0 1.75rem;
}

.ndai-media-article .ndai-article-body :where(h2, h3, h4) {
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--serif);
	letter-spacing: 0.01em;
	text-wrap: pretty;
}

.ndai-media-article .ndai-article-body h2 {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	font-size: clamp(1.5rem, 2vw, 1.75rem) !important;
	line-height: 1.5;
	margin-block: 4rem 1.5rem;
	padding-bottom: 0.75rem;
}

.ndai-media-article .ndai-article-body h3 {
	font-size: clamp(1.1875rem, 1.5vw, 1.375rem) !important;
	line-height: 1.55;
	margin-block: 3rem 1rem;
}

.ndai-media-article .ndai-article-body h4 {
	font-size: 1.0625rem !important;
	line-height: 1.6;
	margin-block: 2.25rem 0.75rem;
}

.ndai-media-article .ndai-article-body :where(ul.wp-block-list, ol.wp-block-list) {
	margin-block: 0 1.75rem;
	padding-inline-start: 1.5rem;
}

.ndai-media-article .ndai-article-body ul.wp-block-list {
	list-style: disc;
}

.ndai-media-article .ndai-article-body ol.wp-block-list {
	counter-reset: none;
	list-style: decimal;
}

.ndai-media-article .ndai-article-body :where(ul.wp-block-list, ol.wp-block-list) > li {
	margin-block: 0.4rem;
	padding-inline-start: 0.25rem;
}

.ndai-media-article .ndai-article-body :where(ul.wp-block-list, ol.wp-block-list) > li::before {
	content: none;
}

.ndai-media-article .ndai-article-body :where(blockquote, .wp-block-quote) {
	background: var(--wp--preset--color--base-2);
	border-left: 3px solid var(--wp--preset--color--primary);
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast-2);
	margin: 2rem 0;
	padding: 1.25rem 1.5rem;
}

.ndai-media-article .ndai-article-body :where(blockquote, .wp-block-quote) > :last-child {
	margin-bottom: 0;
}

.ndai-media-article .ndai-article-body :where(figure, .wp-block-image) {
	margin-block: 2rem;
}

.ndai-media-article .ndai-article-body :where(img) {
	height: auto;
	max-width: 100%;
}

.ndai-media-article .ndai-article-body :where(figcaption) {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	line-height: 1.6;
	margin-top: 0.625rem;
	text-align: left;
}

.ndai-media-article .ndai-article-body .wp-block-table {
	margin: 2rem 0 !important;
	max-width: 100% !important;
	width: 100% !important;
}

.ndai-media-article .ndai-article-body .wp-block-table table {
	background: var(--wp--preset--color--base);
	border-collapse: collapse;
	display: table;
	font-size: 0.9375rem;
	line-height: 1.65;
	min-width: 36rem;
	width: 100%;
}

.ndai-media-article .ndai-article-body .wp-block-table :where(thead, tbody) {
	display: table-row-group;
}

.ndai-media-article .ndai-article-body .wp-block-table thead {
	background: var(--wp--preset--color--base-2);
}

.ndai-media-article .ndai-article-body .wp-block-table tr {
	background: transparent;
	border: 0;
	display: table-row;
	padding: 0;
}

.ndai-media-article .ndai-article-body .wp-block-table :where(th, td) {
	border: 1px solid var(--wp--preset--color--contrast-3);
	display: table-cell;
	min-width: 8rem !important;
	padding: 0.75rem 0.875rem;
	white-space: normal;
}

.ndai-media-article .ndai-article-body :where(pre, .wp-block-code) {
	background: var(--wp--preset--color--contrast);
	box-sizing: border-box;
	color: var(--wp--preset--color--base);
	font-family: var(--ndai-mono);
	font-size: 0.875rem;
	line-height: 1.7;
	overflow-x: auto;
	padding: 1.25rem;
}

.ndai-media-article .d9-article-toc {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
	margin-block: 2rem 3rem;
	max-width: 44rem;
	padding: 1.25rem 1.5rem;
	width: 100%;
}

.ndai-media-article .d9-article-toc ol {
	display: grid;
	gap: 0.5rem;
	line-height: 1.65;
}

.ndai-media-article .d9-container > .ndai-cta-card,
.ndai-media-article .ndai-article-body .ndai-cta-card {
	gap: 1rem;
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}

.ndai-media-article > .d9-container:has(> .ndai-cta-card) {
	margin-inline: auto !important;
	max-width: 44rem !important;
	transform: none !important;
	width: min(100%, 44rem) !important;
}

.ndai-media-article .ndai-cta-card h2 {
	border: 0;
	font-size: clamp(1.25rem, 2vw, 1.5rem) !important;
	line-height: 1.55;
	margin: 0;
	padding: 0;
}

.ndai-media-article .ndai-cta-card p {
	line-height: 1.75;
	margin: 0;
}

.ndai-media-article .ndai-media-related {
	max-width: none !important;
	width: 100% !important;
}

@media (max-width: 47.9375rem) {

	.ndai-media-article > :is(
		.ndai-breadcrumbs-slot,
		.d9-article-header,
		.ndai-media-article-featured,
		.ndai-article-fallback,
		.d9-article-toc,
		.ndai-article-body,
		.d9-back-to-top,
		.d9-container,
		.wp-block-separator,
		.ndai-media-post-navigation
	) {
		width: 100% !important;
	}

	.ndai-media-article .d9-article-header h1 {
		font-size: 1.625rem !important;
	}

	.ndai-media-article .ndai-article-body {
		font-size: 0.9375rem;
		line-height: 1.85;
	}

	.ndai-media-article .ndai-article-body h2 {
		margin-top: 3.25rem;
	}

	.ndai-media-article .ndai-article-body h3 {
		margin-top: 2.5rem;
	}
}
/* stylelint-enable no-descending-specificity */

/* stylelint-disable no-descending-specificity, selector-class-pattern, no-duplicate-selectors, declaration-property-unit-allowed-list, rule-empty-line-before */

/* Phase 1: Notion型の探索モジュール。既存のtaxonomyアーカイブは変更しない。 */
.ndai-media-exploration {
	min-width: 0;
}

.ndai-media-intro {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}

.ndai-media-intro-kicker {
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--ndai-mono);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.1em;
	margin: 0 0 0.75rem;
}

.ndai-media-intro h2 {
	font-size: clamp(1.5rem, 2.5vw, 2.25rem);
	margin: 0;
}

.ndai-media-intro > p:not(.ndai-media-intro-kicker) {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.8;
	margin: 0.75rem 0 0;
	max-width: 48rem;
}

.ndai-media-search {
	margin-top: var(--wp--preset--spacing--40);
	max-width: 42rem;
}

.ndai-media-search-control {
	display: flex;
	gap: 0.5rem;
}

.ndai-media-search input {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	min-height: 2.75rem;
	min-width: 0;
	padding: 0.625rem 0.75rem;
	width: 100%;
}

.ndai-media-search button {
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	font-size: 1.25rem;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.5rem 0.75rem;
}

.ndai-media-month-filter {
	align-items: center;
	display: flex;
	gap: 0.75rem;
	margin-block-start: 0.75rem;
}

.ndai-media-month-filter label {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--small);
}

.ndai-media-month-filter select {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	min-height: 2.75rem;
	min-width: 12rem;
	padding: 0.5rem 2rem 0.5rem 0.75rem;
}

.ndai-media-month-filter select:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

@media (max-width: 767px) {
	.ndai-media-month-filter {
		align-items: stretch;
		flex-direction: column;
		gap: 0.375rem;
	}

	.ndai-media-month-filter select {
		width: 100%;
	}
}

.ndai-media-pickup-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 1fr));
}

.ndai-media-pickup-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	min-width: 0;
}

.ndai-media-pickup-card a {
	color: inherit;
	display: block;
	height: 100%;
	text-decoration: none;
}

.ndai-media-pickup-card-image {
	aspect-ratio: 16 / 9;
	display: block;
	overflow: hidden;
}

.ndai-media-pickup-card-image img,
.ndai-media-pickup-card-image .ndai-media-thumb {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ndai-media-pickup-card-body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.75rem;
}

.ndai-media-pickup-card-body time {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
}

.ndai-media-pickup-card-body strong {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

.ndai-media-pickup-card--feature .ndai-media-pickup-card-body strong {
	font-size: 1.125rem;
}

.ndai-media-pickup-card a:hover,
.ndai-media-pickup-card a:focus-visible {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.ndai-media-trending-list {
	display: grid;
	gap: 0;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-media-trending-item {
	border-right: 1px solid var(--wp--preset--color--contrast-3);
	min-width: 0;
	padding: 0 1rem;
}

.ndai-media-trending-item:first-child {
	padding-left: 0;
}

.ndai-media-trending-item:last-child {
	border-right: 0;
	padding-right: 0;
}

.ndai-media-trending-item a {
	align-items: flex-start;
	color: inherit;
	display: flex;
	gap: 0.625rem;
	text-decoration: none;
}

.ndai-media-trending-number {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	flex: 0 0 1.5rem;
	font-family: var(--ndai-mono);
	font-weight: 700;
	line-height: 1.5rem;
	text-align: center;
}

.ndai-media-trending-body {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	min-width: 0;
}

.ndai-media-trending-body strong {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ndai-media-trending-body > span {
	color: var(--wp--preset--color--contrast-2);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--wp--preset--font-size--caption);
	gap: 0.5rem;
}

.ndai-media-trending-item a:hover,
.ndai-media-trending-item a:focus-visible {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.ndai-media-latest-list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-columns: auto;
	grid-auto-flow: row;
	overflow: visible;
	scroll-snap-type: none;
}

.ndai-media-latest-item-link {
	align-items: stretch;
	background: var(--wp--preset--color--base);
	flex-direction: row;
	min-height: 7.5rem;
}

.ndai-media-latest-item-body {
	justify-content: center;
	order: 1;
	padding: 0.875rem 0.75rem 0.875rem 1rem;
}

.ndai-media-latest-item-number {
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--ndai-mono);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.05em;
}

.ndai-media-latest-item-image {
	flex: 0 0 10rem;
	order: 2;
}

.ndai-media-section-more {
	margin: 1rem 0 0;
	text-align: right;
}

.ndai-media-section-more a {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.ndai-media-section-more a span {
	margin-left: 0.375rem;
}

.ndai-media-section--cta {
	padding-block: var(--wp--preset--spacing--60);
}

.ndai-media-section--cta .ndai-cta-card {
	align-items: center;
	display: flex;
	gap: 1rem;
	justify-content: space-between;
	margin: 0;
}

.ndai-media-section--cta .ndai-cta-card h2,
.ndai-media-section--cta .ndai-cta-card p {
	margin-block: 0;
}

@media (max-width: 767px) {
	.ndai-media-intro {
		padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	}

	.ndai-media-intro h2 {
		font-size: 1.5rem;
	}

	.ndai-media-intro > p:not(.ndai-media-intro-kicker) {
		font-size: var(--wp--preset--font-size--small);
	}

	.ndai-media-chip-bar {
		background: var(--wp--preset--color--base);
		position: sticky;
		top: 3.5rem;
		z-index: 9;
	}

	.ndai-media-pickup-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ndai-media-pickup-card--feature {
		grid-column: 1 / -1;
	}

	.ndai-media-pickup-card--feature .ndai-media-pickup-card-body strong {
		font-size: 1rem;
	}

	.ndai-media-trending-list {
		grid-template-columns: 1fr;
	}

	.ndai-media-trending-item,
	.ndai-media-trending-item:first-child,
	.ndai-media-trending-item:last-child {
		border-bottom: 1px solid var(--wp--preset--color--contrast-3);
		border-right: 0;
		padding: 0.75rem 0;
	}

	.ndai-media-trending-item:first-child {
		padding-top: 0;
	}

	.ndai-media-trending-item:last-child {
		border-bottom: 0;
	}

	.ndai-media-latest-list {
		grid-template-columns: 1fr;
		gap: 0.625rem;
	}

	.ndai-media-latest-item-link {
		min-height: 5.75rem;
	}

	.ndai-media-latest-item-body {
		padding: 0.625rem 0.5rem 0.625rem 0.75rem;
	}

	.ndai-media-latest-item-image {
		flex-basis: 6.5rem;
	}

	.ndai-media-latest-item-title {
		font-size: var(--wp--preset--font-size--small);
	}

	.ndai-media-section--cta .ndai-cta-card {
		align-items: stretch;
		flex-direction: column;
	}

	.ndai-media-section--cta .ndai-cta-card .wp-element-button {
		text-align: center;
		width: 100%;
	}
}

/* stylelint-enable no-descending-specificity, selector-class-pattern, no-duplicate-selectors, declaration-property-unit-allowed-list, rule-empty-line-before */

.ndai-front-page-main .ndai-hero-followup-lead {
	line-break: strict;
	line-height: 1.9;
	max-width: 44rem;
	text-wrap: pretty;
	word-break: normal;
}

/*
 * I-194 site cleanup.
 * The 80rem rail is the page skeleton. The 44rem content width is reserved
 * for long-form reading inside that rail; it is not a second page origin.
 */
:root {
	--d9-card-padding: 1.5rem;
	--d9-rail-gutter: 1rem;
	--d9-rail-width: 80rem;

	/* I-209 trend refresh tokens */
	--ndai-mono: ui-monospace, "SF Mono", sfmono-regular, "Menlo", "Consolas", monospace;
	--ndai-rule: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	--ndai-space-quiet: clamp(5rem, 12vh, 9rem);
}

/* I-209グリッドはWP constrained子マージンを使わない（間隔はgap。段差防止・2026-08-08） */
.ndai-reason-editorial > *,
.ndai-typolist-row > *,
.ndai-case-chapter > *,
.ndai-case-chapters > *,
.ndai-quiet-cta > *,
.ndai-front-page-main .ndai-bento-grid > * {
	margin-block-start: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100%;
}

:where(.d9-container, .ndai-site-header-inner, .ndai-site-footer-inner),
:where(main:not(.ndai-front-page-main) .ndai-layout-container),
:where(.ndai-front-page-main .ndai-uiux03-section > .ndai-layout-container) {
	box-sizing: border-box;
	margin-inline: auto !important;
	max-width: var(--d9-rail-width) !important;
	padding-inline: 0 !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), var(--d9-rail-width)) !important;
}

/* Core's generated layout selectors carry higher specificity than :where(). */
/* stylelint-disable no-descending-specificity */
.d9-container,
.d9-archive-main,
.ndai-site-header-inner,
.ndai-site-footer-inner,
main:not(.ndai-front-page-main) .ndai-layout-container,
.ndai-front-page-main .ndai-uiux03-section > .ndai-layout-container {
	box-sizing: border-box;
	margin-inline: auto !important;
	max-width: var(--d9-rail-width) !important;
	padding-inline: 0 !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), var(--d9-rail-width)) !important;
}

.ndai-site-footer-inner {
	width: min(100%, var(--d9-rail-width)) !important;
}

.d9-page-main .d9-container,
.d9-article-main .d9-container,
main:not(.ndai-front-page-main) .ndai-layout-container {
	width: min(100%, var(--d9-rail-width)) !important;
}

.d9-page-header > *,
.d9-article-header > *,
.d9-archive-main > *,
main:not(.ndai-front-page-main) .ndai-layout-container > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.ndai-site-footer-inner > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}
/* stylelint-enable no-descending-specificity */

:where(.d9-page-main > .wp-block-post-content, .d9-archive-main, .d9-article-main > .wp-block-post-featured-image, .d9-article-main > .ndai-author-card, .d9-article-main > .ndai-article-cta, .d9-article-main > .wp-block-group:not(.ndai-article-body):not(.d9-article-header), .d9-article-main > section) {
	box-sizing: border-box;
	margin-inline: auto !important;
	max-width: var(--d9-rail-width) !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), var(--d9-rail-width)) !important;
}

:where(.d9-page-main > .wp-block-post-content) > :where(*) {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: 44rem !important;
}

:where(.d9-page-header, .d9-article-header, .d9-archive-main) > :where(*) {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: none !important;
}

:where(main:not(.ndai-front-page-main) .ndai-layout-container) > :where(*) {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: none !important;
}

:where(main:not(.ndai-front-page-main) .ndai-layout-container) > :where(p) {
	max-width: 44rem !important;
}

:where(.d9-page-main > .wp-block-post-content) > :where(.alignwide, .wp-block-table, .ndai-feature-grid, .wp-block-columns) {
	max-width: 100% !important;
	width: 100% !important;
}

:where(.ndai-article-body) {
	margin-inline: auto !important;
	max-width: 44rem !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), 44rem) !important;
}

:where(body.home .ndai-site-header-inner) {
	padding-inline: 0 !important;
}

:where(h1, h2, h3, h4, h5, h6, .wp-block-post-title) {
	line-break: strict;
	overflow-wrap: normal;
	text-wrap: balance;
	word-break: auto-phrase;
}

:where(p, li, dd, td, th, figcaption) {
	hanging-punctuation: first allow-end last;
	line-break: strict;
	overflow-wrap: break-word;
	text-wrap: pretty;
	word-break: normal;
}

:where(.ndai-section-label, .ndai-layout-section > .wp-block-group > p:first-child, .ndai-lead-title > p:first-child) {
	color: var(--wp--preset--color--contrast-2) !important;
}

:where([class~="wp-block-button__link"], .wp-element-button, .wp-block-read-more) {
	border-radius: 0 !important;
	box-sizing: border-box;
	min-height: 2.75rem;
}

:where(.ndai-feature-card, .ndai-content-card, .ndai-uiux03-service-card, .ndai-uiux03-article-grid > li > .wp-block-group, .ndai-author-card) {
	background: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--contrast-3) !important;
	border-radius: 0 !important;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: auto;
	padding: var(--d9-card-padding) !important;
	position: relative;
}

:where(.ndai-feature-card, .ndai-content-card, .ndai-uiux03-service-card) > :where(.wp-block-read-more, p:last-child:has(a)) {
	margin-top: auto !important;
}

/* stylelint-disable no-descending-specificity */
:where(.ndai-feature-card, .ndai-content-card, .ndai-uiux03-service-card, .ndai-family-featured-case-index .ndai-case-index-item) > * {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: 100% !important;
	text-align: left;
}

.ndai-feature-card > *,
.ndai-content-card > *,
.ndai-uiux03-service-card > *,
.ndai-family-featured-case-index .ndai-case-index-item > * {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: 100% !important;
	text-align: left;
}
/* stylelint-enable no-descending-specificity */

:where(.ndai-feature-card > .wp-block-read-more)::after {
	content: "";
	inset: 0;
	position: absolute;
}

:where(.ndai-feature-card > .wp-block-read-more) {
	position: static;
}

:where(.ndai-feature-card, .ndai-content-card, .ndai-uiux03-service-card) :where(h2, h3, .wp-block-post-title, h2 a, h3 a, .wp-block-post-title a) {
	color: var(--wp--preset--color--contrast) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: var(--wp--preset--font-size--heading-s) !important;
	text-decoration: none;
}

:where(.ndai-feature-card, .ndai-content-card, .ndai-uiux03-service-card) :where(.has-primary-color) {
	color: var(--wp--preset--color--contrast-2) !important;
}

:where(.ndai-uiux03-article-grid > li, .wp-block-post-template > li) {
	min-width: 0;
}

:where(.ndai-uiux03-article-grid > li > .wp-block-group) :where(.wp-block-post-featured-image) {
	margin-inline: 0 !important;
	width: 100%;
}

:where(.wp-block-list:not(.ndai-issue-index):not(.ndai-site-footer-list):not(.ndai-uiux03-check-list)) {
	list-style: none;
	padding-inline-start: 1.5rem;
}

/* stylelint-disable-next-line no-descending-specificity */
:where(.wp-block-list:not(.ndai-issue-index):not(.ndai-site-footer-list):not(.ndai-uiux03-check-list)) > li {
	position: relative;
}

/* stylelint-disable-next-line no-descending-specificity */
:where(.wp-block-list:not(.ndai-issue-index):not(.ndai-site-footer-list):not(.ndai-uiux03-check-list)) > li::before {
	background: var(--wp--preset--color--accent);
	content: "";
	height: 0.45rem;
	left: -1.25rem;
	position: absolute;
	top: 0.76em;
	width: 0.45rem;
}

:where(ol.wp-block-list) {
	counter-reset: d9-list;
	list-style: none;
}

/* stylelint-disable-next-line no-descending-specificity */
:where(ol.wp-block-list) > li {
	counter-increment: d9-list;
}

/* stylelint-disable-next-line no-descending-specificity */
:where(ol.wp-block-list) > li::before {
	background: none;
	color: var(--wp--preset--color--contrast-2);
	content: counter(d9-list) ".";
	font-weight: 700;
	height: auto;
	top: 0;
	width: auto;
}

:where(.ndai-family-split-copy-list .ndai-reason-list, .ndai-family-issue-index-detail .ndai-issue-index) {
	background: var(--wp--preset--color--base-2);
}

:where(.ndai-case-featured) {
	align-self: start;
	height: auto !important;
}

:where(.ndai-article-cta, .ndai-cta-card, .ndai-uiux03-final-cta) {
	background: var(--wp--preset--color--base-2) !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--wp--preset--color--contrast) !important;
}

:where(.ndai-article-cta, .ndai-cta-card) {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	max-width: none !important;
	padding: var(--d9-card-padding) !important;
	width: 100%;
}

:where(.ndai-article-cta, .ndai-cta-card) > :where(h2, p) {
	margin-inline: 0 !important;
	max-width: 44rem !important;
}

/* stylelint-disable-next-line no-descending-specificity */
:where(.ndai-article-cta, .ndai-cta-card) > .wp-block-buttons {
	align-self: flex-start;
}

:where(.ndai-uiux03-final-cta .ndai-ratio-grid) {
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(.ndai-family-case-feature-cta .ndai-ratio-grid) {
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(main:not(.ndai-front-page-main) > .ndai-layout-section:first-of-type .ndai-ratio-grid) {
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(.ndai-uiux03-final-cta .wp-block-buttons) {
	align-items: flex-start;
	justify-content: flex-start;
}

:where(.ndai-uiux03-final-cta) :where(h2, p) {
	color: var(--wp--preset--color--contrast) !important;
}

:where(.ndai-uiux03-final-cta, .ndai-cta-card, .ndai-article-cta) :where(.wp-block-buttons) {
	align-items: center;
	display: flex;
	flex-direction: row !important;
	flex-wrap: wrap;
	gap: 0.75rem;
	justify-content: flex-start;
}

:where(.ndai-uiux03-final-cta, .ndai-cta-card, .ndai-article-cta) :where([class~="wp-block-button__link"]) {
	font-size: var(--wp--preset--font-size--medium) !important;
	min-height: 3.125rem;
	padding: 0.75rem 1.5rem !important;
}

:where(.ndai-uiux03-final-cta, .ndai-cta-card, .ndai-article-cta) :where(.wp-block-button:not(.is-style-outline) [class~="wp-block-button__link"]) {
	color: var(--wp--preset--color--base) !important;
}

:where(.ndai-uiux03-final-cta) {
	background: var(--wp--preset--color--base) !important;
}

:where(.ndai-uiux03-final-cta > .ndai-layout-container) {
	background: var(--wp--preset--color--base-2) !important;
	box-sizing: border-box;
	padding: var(--d9-card-padding) !important;
}

.ndai-issue-anchor-panel {
	box-sizing: border-box;
	padding: var(--d9-card-padding) !important;
}

main:not(.ndai-front-page-main) .ndai-layout-container.ndai-issue-anchor-panel {
	padding: var(--d9-card-padding) !important;
}

:where(.ndai-issue-anchor-panel .wp-block-buttons) {
	justify-content: flex-start;
}

/* stylelint-disable no-descending-specificity */
:where(.ndai-progression-stack, .ndai-progression-list, .ndai-case-spotlight, .ndai-case-index),
:where(.ndai-progression-stack, .ndai-progression-list, .ndai-case-spotlight, .ndai-case-index) > * {
	margin-inline: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

:where(.ndai-site-footer-list li)::before {
	content: none !important;
}

.ndai-family-issue-index-detail .ndai-feature-card > .has-primary-color,
.ndai-cases-main .has-primary-color,
[class~="single-ndai_case"] main .has-primary-color,
[class~="single-ndai_service"] main .has-primary-color,
body.home .ndai-eyebrow {
	color: var(--wp--preset--color--contrast-2) !important;
}

:where(.ndai-lead-title) > * {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: none !important;
}

body:has(.d9-content-rail-44) .d9-page-header {
	max-width: 44rem !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), 44rem) !important;
}

.d9-container:has(> .ndai-cta-card) {
	margin-inline: auto !important;
	max-width: var(--d9-rail-width) !important;
	padding-inline: 0 !important;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), var(--d9-rail-width)) !important;
}

main .d9-container:has(> .ndai-cta-card) {
	margin-left: 50% !important;
	transform: translateX(-50%);
	width: min(calc(100vw - (2 * var(--d9-rail-gutter))), var(--d9-rail-width)) !important;
}

:where(.ndai-site-footer h2, .blog .ndai-feature-grid h2, .d9-company-specialties, [class~="single-ndai_service"] main h3) {
	font-family: var(--wp--preset--font-family--sans) !important;
}

:where([class~="single-ndai_service"] main h3, .d9-company-specialties) {
	font-size: var(--wp--preset--font-size--heading-s) !important;
}
/* stylelint-enable no-descending-specificity */

:where(.wp-block-table) {
	overflow-x: auto;
}

:where(.wp-block-table table) {
	border-collapse: collapse;
	width: 100%;
}

:where(.wp-block-table th, .wp-block-table td) {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	padding: 0.875rem 1rem;
	text-align: left;
	vertical-align: top;
}

:where(.wp-block-table th:first-child, .wp-block-table td:first-child) {
	min-width: 8em;
}

:where(.wp-block-table th) {
	font-weight: 700;
	white-space: nowrap;
}

:where(.d9-company-facts) {
	display: none;
}

:where(.ndai-article-body .wp-block-table) {
	margin-inline: min(-10rem, calc((44rem - 64rem) / 2)) !important;
	max-width: 64rem !important;
	width: min(64rem, calc(100vw - (2 * var(--d9-rail-gutter)))) !important;
}

:where(.wp-block-post-terms a, .wp-block-categories a, .tag-cloud-link, .ndai-site-footer a, .ndai-article-body a) {
	color: var(--wp--preset--color--contrast);
}

/* stylelint-disable-next-line no-descending-specificity */
.wp-block-post-terms a,
/* stylelint-disable-next-line no-descending-specificity */
.wp-block-categories a,
.tag-cloud-link,
/* stylelint-disable-next-line no-descending-specificity */
.ndai-site-footer a,
/* stylelint-disable-next-line no-descending-specificity */
.ndai-article-body a {
	color: var(--wp--preset--color--contrast) !important;
}

.wp-block-categories {
	list-style: none;
	padding-inline-start: 1.5rem;
}

/* stylelint-disable-next-line no-descending-specificity */
.wp-block-categories li {
	position: relative;
}

/* stylelint-disable-next-line no-descending-specificity */
.wp-block-categories li::before {
	background: var(--wp--preset--color--accent);
	content: "";
	height: 0.45rem;
	left: -1.25rem;
	position: absolute;
	top: 1.1rem;
	width: 0.45rem;
}

:where([class~="wp-block-post-author__byline"], [class~="wp-block-post-author__bio"], .ndai-section-label, .ndai-site-footer h2) {
	font-size: max(0.8125rem, 13px) !important;
}

:where([class~="wp-block-post-excerpt__more-link"], .wp-block-read-more, .wp-block-post-terms a, .wp-block-categories a, .tag-cloud-link, .d9-back-to-top) {
	align-items: center;
	box-sizing: border-box;
	display: inline-flex;
	min-height: 2.75rem;
}

:where(.wp-block-post-terms a:hover, .wp-block-categories a:hover, .tag-cloud-link:hover, .ndai-site-footer a:hover, .ndai-article-body a:hover) {
	color: var(--wp--preset--color--primary);
}

:where(.wp-block-query-pagination a, .wp-block-query-pagination span, .page-numbers) {
	align-items: center;
	box-sizing: border-box;
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
}

:where(.ndai-site-footer-inner) {
	display: grid;
	gap: 2rem 4rem;
	grid-template-columns: minmax(12rem, 0.382fr) minmax(0, 0.618fr);
}

:where(.d9-page-main > .wp-block-post-content h2) {
	margin-block-start: 4rem;
}

:where(.d9-page-main > .wp-block-post-content h3) {
	margin-block-start: 2.5rem;
}

:where(.ndai-family-featured-case-index .ndai-ratio-grid) {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

:where(.ndai-family-issue-index-detail .ndai-ratio-grid) {
	grid-template-columns: minmax(0, 1fr) !important;
}

:where(.ndai-family-featured-case-index .ndai-case-index) {
	display: contents !important;
}

:where(.ndai-family-featured-case-index .ndai-case-index-item) {
	background: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--contrast-3) !important;
	border-radius: 0 !important;
	display: flex;
	flex-direction: column;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	padding: var(--d9-card-padding) !important;
	width: 100% !important;
}

:where(.ndai-family-featured-case-index .ndai-case-index-item) :where(h3, h3 a) {
	color: var(--wp--preset--color--contrast) !important;
	font-family: var(--wp--preset--font-family--sans) !important;
	font-size: var(--wp--preset--font-size--heading-s) !important;
	text-decoration: none;
}

:where(.ndai-site-footer-links) {
	grid-column: 2;
	grid-row: 1 / span 2;
}

:where([class~="wp-block-search__inside-wrapper"]) {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(0, 1fr) auto;
	max-width: 44rem;
}

:where([class~="wp-block-search__button"]) {
	margin: 0;
	min-height: 2.75rem;
}

:where(.ndai-article-fallback) {
	background-image: url(assets/images/hero-desk-1344.webp);
	background-position: 65% 25%;
	background-size: cover;
	display: block;
	min-height: 12rem;
	width: 100%;
}

/* Issue #231: /media/ 専用のハイブリッド探索レイアウト。 */
/* stylelint-disable no-descending-specificity */
.ndai-media-main {
	overflow-x: clip;
	padding-inline: 0 !important;
}

.ndai-media-layout {
	box-sizing: border-box;
	display: grid;
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	grid-template-columns: 13.75rem minmax(0, 1fr);
	margin-inline: auto;
	max-width: none;
	padding-inline: clamp(1rem, 2vw, 2rem) 0;
	padding-block: 1.5rem var(--wp--preset--spacing--70);
	width: min(100%, 90rem);
}

.ndai-media-local-nav {
	align-self: start;
	position: sticky;
	top: 1.5rem;
}

.ndai-media-local-nav-toggle {
	align-items: center;
	background: var(--wp--preset--color--base-2);
	border: 1px solid var(--wp--preset--color--contrast-3);
	color: var(--wp--preset--color--contrast);
	display: none;
	font: inherit;
	font-weight: 700;
	justify-content: space-between;
	min-height: 2.75rem;
	padding: 0.75rem 1rem;
	text-align: left;
	width: 100%;
}

.ndai-media-mobile-bar {
	display: none;
}

.ndai-media-local-nav-eyebrow,
.ndai-media-section-eyebrow {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 700;
	letter-spacing: 0.08em;
	margin: 0 0 0.75rem;
}

.ndai-media-local-nav ul,
.ndai-media-latest-list,
.ndai-media-rail {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-media-nav-group {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
}

.ndai-media-nav-group summary {
	align-items: center;
	box-sizing: border-box;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	list-style: none;
	min-height: 2.75rem;
	padding: 0.5rem 0;
}

.ndai-media-nav-group summary::-webkit-details-marker {
	display: none;
}

.ndai-media-nav-group summary::after,
.ndai-media-nav-category-toggle::after {
	border-bottom: 1px solid currentcolor;
	border-right: 1px solid currentcolor;
	content: "";
	display: block;
	height: 0.45rem;
	margin-left: 0.75rem;
	transform: translateY(-0.125rem) rotate(45deg);
	transition: transform 160ms ease;
	width: 0.45rem;
}

.ndai-media-nav-group[open] > summary::after,
.ndai-media-nav-category-toggle[aria-expanded="true"]::after {
	transform: translateY(0.125rem) rotate(225deg);
}

.ndai-media-nav-group summary:focus-visible,
.ndai-media-nav-category-toggle:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.ndai-media-nav-group-list {
	margin-bottom: 0.5rem !important;
}

.ndai-media-nav-category {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
}

.ndai-media-nav-category-row {
	align-items: center;
	display: flex;
	font-weight: 700;
	min-height: 2.75rem;
	padding-inline: 0.5rem;
}

.ndai-media-nav-category-link {
	flex: 1 1 auto;
	justify-content: flex-start !important;
	min-height: 2.75rem !important;
	padding: 0 !important;
}

.ndai-media-nav-category-toggle {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	color: currentcolor;
	cursor: pointer;
	display: inline-flex;
	flex: 0 0 2.75rem;
	height: 2.75rem;
	justify-content: center;
	margin-left: 0.25rem;
	padding: 0;
	width: 2.75rem;
}

.ndai-media-nav-category-toggle::after {
	margin-left: 0;
}

.ndai-media-nav-category-content {
	padding: 0 0.5rem 0.75rem 1rem;
}

.ndai-media-nav-sublist {
	margin: 0 !important;
}

.ndai-media-nav-sublist li {
	border-bottom: 0;
}

.ndai-media-nav-sublist a {
	min-height: 2.75rem;
	padding-block: 0.375rem;
}

.ndai-media-nav-empty {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	margin: 0;
	padding: 0.75rem 0;
}

.ndai-media-nav-count {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 400;
}

.ndai-media-local-nav li {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
}

.ndai-media-local-nav a {
	align-items: center;
	color: var(--wp--preset--color--contrast);
	display: flex;
	gap: 0.25rem;
	justify-content: space-between;
	min-height: 2.75rem;
	padding: 0.5rem 0;
	text-decoration: none;
}

:where(.ndai-media-local-nav a:hover, .ndai-media-local-nav a:focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

:where(.ndai-media-local-nav a[aria-current="page"], .ndai-media-chip-bar a[aria-current="page"]) {
	background: var(--wp--preset--color--accent-subtle);
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
	padding-inline: 0.75rem;
	text-decoration: none;
}

.ndai-media-chip-bar {
	display: none;
}

.ndai-media-section {
	contain-intrinsic-size: auto 24rem;
	content-visibility: auto;
	padding-block: var(--wp--preset--spacing--60);
}

.ndai-media-section + .ndai-media-section {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
}

[data-ndai-media-panel][hidden] {
	display: none !important;
}

.ndai-media-section-heading h2 {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0 0 var(--wp--preset--spacing--40);
}

:where(.ndai-media-section-heading h2 a) {
	color: inherit;
	text-decoration: none;
}

:where(.ndai-media-section-heading h2 a:hover, .ndai-media-section-heading h2 a:focus-visible) {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.ndai-media-section-count {
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--caption);
	font-weight: 400;
}

.ndai-media-latest-item {
	min-width: 0;
}

/* stylelint-disable-next-line no-duplicate-selectors */
.ndai-media-latest-list {
	display: grid;
	gap: 0.75rem;
	grid-auto-columns: 14rem;
	grid-auto-flow: column;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	-webkit-overflow-scrolling: touch;
}

/* stylelint-disable-next-line no-duplicate-selectors */
.ndai-media-latest-item-link {
	border: 1px solid var(--wp--preset--color--contrast-3);
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 13rem;
	scroll-snap-align: start;
	text-decoration: none;
}

/* stylelint-disable-next-line no-duplicate-selectors */
.ndai-media-latest-item-image {
	aspect-ratio: 16 / 9;
	display: block;
	overflow: hidden;
}

/* stylelint-disable-next-line no-duplicate-selectors */
.ndai-media-latest-item-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.375rem;
	min-width: 0;
	padding: 0.625rem;
}

.ndai-media-latest-item-meta {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}

.ndai-media-latest-item-date {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
}

.ndai-media-latest-item-title {
	display: -webkit-box;
	font-weight: 700;
	line-height: 1.5;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ndai-media-latest-item-link:hover,
.ndai-media-latest-item-link:focus-visible {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.ndai-media-new-badge {
	background: var(--wp--preset--color--accent-subtle);
	color: var(--wp--preset--color--primary);
	font-family: var(--ndai-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	line-height: 1.4;
	padding: 0.2rem 0.35rem;
}

.ndai-media-latest-item-image img,
.ndai-media-latest-item-image .ndai-media-thumb,
.ndai-media-rail-card-image img,
.ndai-media-rail-card-image .ndai-media-thumb {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ndai-media-latest-item-image .ndai-article-fallback,
.ndai-media-rail-card-image .ndai-article-fallback {
	min-height: 0;
}

.ndai-media-chip-bar a {
	background: var(--wp--preset--color--accent-subtle);
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	gap: 0.25rem;
	min-height: 2.75rem;
	padding: 0.625rem 0.875rem;
	text-decoration: none;
}

:where(
	.ndai-media-chip-bar a:hover,
	.ndai-media-chip-bar a:focus-visible
) {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.ndai-media-rail {
	display: grid;
	gap: 0.75rem;
	grid-auto-columns: 12rem;
	grid-auto-flow: column;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	-webkit-overflow-scrolling: touch;
}

.ndai-media-archive-rail,
.ndai-media-related-rail {
	grid-auto-columns: 12rem;
}

/* カテゴリ／テーマアーカイブは横棚ではなく、記事量に応じて行を増やす。 */
.ndai-media-archive-grid {
	grid-auto-columns: auto;
	grid-auto-flow: row;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	overflow: visible;
	scroll-snap-type: none;
}

.ndai-media-archive-grid .ndai-media-rail-card {
	scroll-snap-align: none;
}

.ndai-media-rail-shell {
	min-width: 0;
	position: relative;
}

.ndai-media-latest-list,
.ndai-media-rail {
	scrollbar-width: none;
}

.ndai-media-latest-list::-webkit-scrollbar,
.ndai-media-rail::-webkit-scrollbar {
	display: none;
}

.ndai-media-rail-control {
	align-items: center;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	display: flex;
	height: 3rem;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: opacity 160ms ease, background-color 160ms ease, color 160ms ease;
	width: 3rem;
	z-index: 2;
}

.ndai-media-rail-control-previous {
	left: 0.75rem;
}

.ndai-media-rail-control-next {
	right: 0.75rem;
}

.ndai-media-rail-control span {
	border-bottom: 2px solid currentcolor;
	border-right: 2px solid currentcolor;
	display: block;
	height: 0.6rem;
	width: 0.6rem;
}

.ndai-media-rail-control-previous span {
	transform: rotate(135deg);
}

.ndai-media-rail-control-next span {
	transform: rotate(-45deg);
}

.ndai-media-rail-shell.ndai-media-rail-is-scrollable:hover .ndai-media-rail-control:not(:disabled),
.ndai-media-rail-shell.ndai-media-rail-is-scrollable:focus-within .ndai-media-rail-control:not(:disabled) {
	opacity: 1;
	pointer-events: auto;
}

.ndai-media-rail-control:hover,
.ndai-media-rail-control:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.ndai-media-rail-control:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.ndai-media-rail-control:disabled {
	display: none;
}

.ndai-media-latest-list:focus-visible,
.ndai-media-rail:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.ndai-media-rail-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	min-width: 0;
	scroll-snap-align: start;
}

.ndai-media-rail-card-link {
	color: var(--wp--preset--color--contrast);
	display: block;
	height: 100%;
	text-decoration: none;
}

.ndai-media-rail-card-image {
	aspect-ratio: 16 / 9;
	display: block;
	overflow: hidden;
}

.ndai-media-rail-card-body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.75rem;
}

.ndai-media-rail-card-body time {
	color: var(--wp--preset--color--contrast-2);
	font-size: var(--wp--preset--font-size--caption);
}

.ndai-media-rail-card-body strong {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.ndai-media-rail-card-link:hover,
.ndai-media-rail-card-link:focus-visible {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
}

.ndai-media-rail-more {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	min-width: 0;
	scroll-snap-align: start;
}

.ndai-media-rail-more a {
	align-items: center;
	color: var(--wp--preset--color--contrast-2);
	display: flex;
	font-weight: 700;
	gap: 0.75rem;
	height: 100%;
	justify-content: center;
	min-height: 10rem;
	padding: 1rem;
	text-align: center;
	text-decoration: none;
}

.ndai-media-rail-more-arrow {
	border-bottom: 2px solid currentcolor;
	border-right: 2px solid currentcolor;
	display: block;
	height: 0.5rem;
	transform: rotate(-45deg);
	width: 0.5rem;
}

:where(.ndai-media-rail-more a:hover, .ndai-media-rail-more a:focus-visible) {
	background: var(--wp--preset--color--base-2);
	color: var(--wp--preset--color--primary);
}

body.ndai-media-drawer-open {
	overflow: hidden;
}

.ndai-media-archive,
.ndai-media-article {
	min-width: 0;
}

.ndai-media-archive-breadcrumbs {
	margin-bottom: var(--wp--preset--spacing--50);
}

.ndai-media-archive-header {
	border-bottom: 1px solid var(--wp--preset--color--contrast-3);
	padding-block: var(--wp--preset--spacing--50);
}

.ndai-media-archive-header h1 {
	margin-block: 0 1rem;
}

.ndai-media-archive-description {
	color: var(--wp--preset--color--contrast-2);
	max-width: 44rem;
}

.ndai-media-archive-count {
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--ndai-mono);
	font-size: var(--wp--preset--font-size--caption);
	margin-bottom: 0;
}

.ndai-media-archive-meta {
	align-items: end;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.ndai-media-archive-meta .ndai-media-month-filter {
	margin-block-start: 0;
}

.ndai-media-archive-meta .ndai-media-month-filter label {
	font-size: 0.6875rem;
}

.ndai-media-archive-meta .ndai-media-month-filter select {
	font-size: 0.75rem;
	min-height: 2.25rem;
	min-width: 9rem;
	padding-block: 0.375rem;
}

.ndai-media-pagination {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
	padding-top: var(--wp--preset--spacing--50);
}

.ndai-media-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-media-pagination :where(a, span) {
	align-items: center;
	border: 1px solid var(--wp--preset--color--contrast-3);
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	justify-content: center;
	min-height: 2.75rem;
	min-width: 2.75rem;
	padding: 0.5rem 0.75rem;
	text-decoration: none;
}

.ndai-media-pagination :where(a:hover, a:focus-visible, .current) {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}

.ndai-media-single-layout {
	max-width: 80rem;
}

.ndai-media-article {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--60);
}

.ndai-media-article > * {
	box-sizing: border-box;
	margin-inline: 0 !important;
	max-width: none !important;
	width: 100% !important;
}

.ndai-media-article > .ndai-article-body {
	margin-inline: auto !important;
	max-width: 44rem !important;
}

.ndai-media-article .d9-article-header,
:where(.ndai-media-article > .ndai-breadcrumbs-slot) {
	max-width: 52rem !important;
}

.ndai-media-article-featured {
	max-width: 60rem !important;
}

.ndai-media-related {
	border-top: 1px solid var(--wp--preset--color--contrast-3);
}

@media (max-width: 47.9375rem) {

	.ndai-media-layout {
		display: block;
		padding-inline: 0;
		padding-block: 1rem var(--wp--preset--spacing--50);
		width: min(calc(100% - (2 * var(--d9-rail-gutter))), 75rem);
	}

	.ndai-media-local-nav {
		position: relative;
		top: auto;
		z-index: 10;
	}

	.ndai-media-local-nav-toggle {
		border: 0;
		border-left: 1px solid var(--wp--preset--color--contrast-3);
		display: flex;
		min-height: 3.5rem;
		width: auto;
	}

	.ndai-media-mobile-bar {
		align-items: center;
		border: 1px solid var(--wp--preset--color--contrast-3);
		display: flex;
		justify-content: space-between;
		min-height: 3.5rem;
		padding-left: 0.875rem;
	}

	.ndai-media-local-nav-drawer {
		background: var(--wp--preset--color--base);
		border: 1px solid var(--wp--preset--color--contrast-3);
		border-top: 0;
		display: none;
		left: 0;
		max-height: calc(100svh - 8rem);
		overflow-y: auto;
		padding: 1rem;
		position: absolute;
		right: 0;
	}

	.ndai-media-nav-is-open .ndai-media-local-nav-drawer {
		display: block;
	}

	.ndai-media-chip-bar {
		display: flex;
		gap: 0.5rem;
		overflow-x: auto;
		padding-block: 0.75rem;
		scroll-snap-type: inline proximity;
	}

	.ndai-media-chip-bar a {
		flex: 0 0 auto;
		scroll-snap-align: start;
	}

	.ndai-media-section {
		padding-block: var(--wp--preset--spacing--50);
	}

	/* 新着とカテゴリレールでカード密度をそろえ、スマホでは常に3枚を見渡せるようにする。 */
	.ndai-media-latest-list,
	.ndai-media-rail {
		gap: 0.75rem;
		grid-auto-columns: calc((100% - 1.5rem) / 3);
	}

	.ndai-media-archive-rail,
	.ndai-media-related-rail {
		grid-auto-columns: calc((100% - 1.5rem) / 3);
	}

	.ndai-media-archive-grid {
		grid-auto-columns: auto;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		overflow: visible;
		scroll-snap-type: none;
	}

	.ndai-media-latest-item-link {
		min-height: 12rem;
	}

	.ndai-media-rail-card-body {
		padding: 0.75rem;
	}

	.ndai-media-rail-more a {
		font-size: var(--wp--preset--font-size--small);
		min-height: 8rem;
		padding: 0.75rem;
	}
}

@media (hover: none), (pointer: coarse) {

	.ndai-media-rail-control {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {

	.ndai-media-nav-group summary::after,
	.ndai-media-nav-category-toggle::after,
	.ndai-media-rail-control {
		transition: none;
	}

	.ndai-media-rail,
	.ndai-media-chip-bar,
	.ndai-media-latest-list {
		scroll-behavior: auto;
		scroll-snap-type: none;
	}
}

/* stylelint-enable no-descending-specificity */

:where(.d9-article-toc) {
	background: var(--wp--preset--color--base-2);
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 44rem;
	padding: var(--d9-card-padding);
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), 44rem);
}

:where([class~="d9-article-toc__title"]) {
	font-weight: 700;
	margin: 0 0 0.75rem;
}

:where(.d9-article-toc ol) {
	margin: 0;
	padding-inline-start: 1.5rem;
}

:where(.d9-article-toc li.is-level-3) {
	margin-inline-start: 1rem;
}

:where(.d9-article-toc a, .d9-back-to-top) {
	color: var(--wp--preset--color--contrast);
}

:where(.d9-back-to-top) {
	margin-inline: auto;
	width: min(calc(100% - (2 * var(--d9-rail-gutter))), 44rem);
}

:where(.ndai-feature-card.is-clickable) {
	cursor: pointer;
}

:where(.blog .wp-block-post-title, .blog .wp-block-post-title a) {
	font-family: var(--wp--preset--font-family--sans) !important;
}

:where(.ndai-bento-grid .ndai-feature-card) {
	height: 100%;
}

@media (min-width: 48rem) {

	:where(.has-display-font-size) {
		font-size: clamp(1.75rem, calc(1.034rem + 3.053vw), 2.5rem) !important;
	}

	:where(.has-xxx-large-font-size, main:not(.ndai-front-page-main) h1) {
		font-size: clamp(1.625rem, calc(1.267rem + 1.527vw), 2rem) !important;
	}
}

@media (min-width: 64rem) {

	:where(.ndai-ratio-grid) > :first-child:not(.ndai-case-featured) {
		align-self: start;
	}

	:where(.ndai-family-lead-split, .ndai-family-editorial-feature-index, .ndai-family-split-copy-list) .ndai-ratio-grid > :first-child {
		position: sticky;
		top: 6rem;
	}

	:where([class~="post-type-archive-ndai_service"] .wp-block-post-template) {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	:where([class~="post-type-archive-ndai_service"] .wp-block-post-template > li > .ndai-feature-card) {
		height: 100%;
	}

	:where(.ndai-family-issue-index-detail .ndai-issue-detail-ledger) {
		display: grid;
		gap: 1.5rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ndai-family-issue-index-detail .ndai-issue-detail-ledger {
		display: grid !important;
		gap: 1.5rem !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 63.9375rem) {

	:where(.ndai-ratio-grid) {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:where(.ndai-family-featured-case-index .ndai-ratio-grid) {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:where(.ndai-article-body .wp-block-table) {
		margin-inline: 0 !important;
		width: 100% !important;
	}

	:where(.ndai-layout-section) {
		padding-inline: var(--d9-rail-gutter) !important;
	}

}

@media (max-width: 59.99rem) {

	:where(.ndai-site-header-nav) {
		flex: 1 1 auto;
	}

	:where(.ndai-meganav-drawer-toggle) {
		column-gap: 0.375rem;
		font-family: var(--wp--preset--font-family--sans);
		min-width: 4.5rem;
	}

	:where(.ndai-header-cta) {
		margin-inline-start: auto;
	}
}

@media (min-width: 48rem) and (max-width: 63.9375rem) {

	.ndai-site-footer-links.wp-block-columns {
		display: flex !important;
		flex-wrap: nowrap !important;
	}

	.ndai-site-footer-links.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
		flex-basis: 0 !important;
		flex-grow: 1 !important;
		min-width: 0;
	}
}

@media (max-width: 47.9375rem) {

	:root {
		--wp--preset--spacing--55: 1.25rem;
		--wp--preset--spacing--60: 2rem;
		--wp--preset--spacing--70: 3rem;
		--wp--preset--spacing--80: 4rem;
	}

	:where(.ndai-layout-section[class*="ndai-family-"] .ndai-feature-card),
	:where(.ndai-solutions-main .ndai-family-issue-index-detail .ndai-feature-card) {
		padding: var(--d9-card-padding) !important;
	}

	:where(.wp-block-table table) {
		display: block;
	}

	:where(.d9-company-table) {
		display: none;
	}

	:where(.d9-company-facts) {
		display: grid;
		gap: 0.75rem;
		margin: 0;
	}

	:where(.d9-company-facts > div) {
		background: var(--wp--preset--color--base);
		border: 1px solid var(--wp--preset--color--contrast-3);
		padding: 0.75rem 1rem;
	}

	:where(.d9-company-facts dt) {
		font-weight: 700;
	}

	:where(.d9-company-facts dd) {
		margin: 0.25rem 0 0;
	}

	:where(.wp-block-table tbody) {
		display: grid;
		gap: 0.75rem;
	}

	:where(.wp-block-table tr) {
		background: var(--wp--preset--color--base);
		border: 1px solid var(--wp--preset--color--contrast-3);
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		padding: 0.75rem 1rem;
	}

	:where(.wp-block-table th, .wp-block-table td) {
		border: 0;
		min-width: 0 !important;
		padding: 0.25rem 0;
		white-space: normal;
	}

	:where(.ndai-article-body .wp-block-table) {
		margin-inline: 0 !important;
		width: 100% !important;
	}

	:where(.ndai-site-footer-links.wp-block-columns) {
		gap: 1.5rem !important;
	}

	:where(.ndai-site-footer-inner) {
		grid-template-columns: minmax(0, 1fr);
	}

	:where(.ndai-site-footer-links) {
		grid-column: 1;
		grid-row: auto;
	}
}

/*
 * I-194 final layout direction.
 * The hero copy is fixed to the page rail without a floating surface. Content
 * sections stack heading/copy above their card grids; ratio grids are no longer
 * used as heading-left/content-right layouts.
 */
main .ndai-ratio-grid {
	grid-template-columns: minmax(0, 1fr) !important;
}

main .ndai-ratio-grid > :first-child {
	position: static !important;
}

/* stylelint-disable no-descending-specificity */
.ndai-layout-section .ndai-section-heading > *,
.ndai-layout-section .ndai-lead-title > * {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: none !important;
	width: 100% !important;
}
/* stylelint-enable no-descending-specificity */

:where(
	.ndai-family-problem-progression .ndai-progression-stack,
	.ndai-family-service-bento-4 .ndai-bento-grid,
	.ndai-family-issue-index-detail .ndai-issue-detail-ledger,
	.ndai-uiux03-article-grid,
	.ndai-feature-grid,
	main .wp-block-post-template,
	.d9-case-card-grid
) {
	display: grid !important;
	gap: 1.5rem !important;
	grid-auto-rows: 1fr;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

:where(
	.ndai-family-problem-progression .ndai-progression-list,
	.d9-case-card-grid > .ndai-case-index,
	.ndai-family-case-spotlight-rail .d9-case-card-grid > .ndai-case-spotlight,
	.ndai-family-case-spotlight-rail .d9-case-card-grid > .ndai-case-index
) {
	display: contents !important;
}

.ndai-family-case-spotlight-rail .d9-case-card-grid > .ndai-case-spotlight > .ndai-section-heading {
	grid-column: 1 / -1;
}

:where(
	.ndai-family-problem-progression .ndai-progression-stack > *,
	.ndai-family-problem-progression .ndai-progression-list > *,
	.ndai-family-service-bento-4 .ndai-bento-grid > *,
	.ndai-family-issue-index-detail .ndai-issue-detail-ledger > *,
	.d9-case-card-grid > .ndai-case-featured,
	.d9-case-card-grid > .ndai-case-index > *,
	.ndai-family-case-spotlight-rail .d9-case-card-grid .ndai-case-feature,
	.ndai-family-case-spotlight-rail .d9-case-card-grid .ndai-case-index-item,
	.ndai-uiux03-article-grid > li,
	.ndai-feature-grid > *,
	main .wp-block-post-template > li
) {
	height: 100% !important;
	margin: 0 !important;
	max-width: none !important;
	min-width: 0;
	width: 100% !important;
}

/* stylelint-disable no-descending-specificity */
:where(.ndai-uiux03-article-grid, .blog .wp-block-post-template) > li {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast-3);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	overflow: clip;
}

:where(.ndai-uiux03-article-grid, .blog .wp-block-post-template) > li > .wp-block-post-featured-image {
	aspect-ratio: 16 / 9 !important;
	margin: 0 !important;
	overflow: hidden;
	width: 100% !important;
}

:where(.ndai-uiux03-article-grid, .blog .wp-block-post-template) > li > .wp-block-post-featured-image img {
	height: 100% !important;
	object-fit: cover;
	width: 100% !important;
}

:where(.ndai-uiux03-article-grid, .blog .wp-block-post-template) > li > .wp-block-group {
	border: 0 !important;
	flex: 1 1 auto;
	height: auto !important;
}
/* stylelint-enable no-descending-specificity */

:where(.ndai-feature-grid > .wp-block-column > .ndai-feature-card) {
	height: 100% !important;
}

@media (max-width: 47.9375rem) {

	:where(
		.ndai-family-problem-progression .ndai-progression-stack,
		.ndai-family-service-bento-4 .ndai-bento-grid,
		.ndai-family-issue-index-detail .ndai-issue-detail-ledger,
		.ndai-uiux03-article-grid,
		.ndai-feature-grid,
		main .wp-block-post-template,
		.d9-case-card-grid
	) {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}

/*
 * I-209 2026トレンド改修: AIOSバッジ帯 / 記事タイポリスト / 理由エディトリアル帯 /
 * 静寂CTA / サービスBento / 課題scroll-driven。
 * モーションはtransform/opacityのみ・prefers-reduced-motion完全対応（DS-D112）。
 */

/* ① AIOS実証バッジ帯（ヒーロー直下） */
.ndai-aios-badge-strip {
	background: var(--wp--preset--color--base);
	border-bottom: var(--ndai-rule);
	padding: 0.875rem var(--ndai-page-grid-inline, clamp(1rem, 4vw, 2rem));
}

.ndai-aios-badge {
	font-family: var(--ndai-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	line-height: 1.7;
	margin: 0 !important;
}

/* stylelint-disable-next-line no-descending-specificity */
.ndai-aios-badge a {
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	text-decoration: none;
}

.ndai-aios-badge .ndai-aios-badge-ja {
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);
	text-underline-offset: 0.2em;
}

.ndai-aios-badge a:hover .ndai-aios-badge-ja {
	text-decoration-color: currentcolor;
}

.ndai-aios-badge a:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.ndai-aios-badge-en {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

/* ② 記事タイポリスト（サムネレス・monoメタ） */
.ndai-front-page-main .ndai-article-typolist {
	display: block !important;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-front-page-main .ndai-article-typolist > li {
	border-top: var(--ndai-rule);
	margin: 0;
}

.ndai-front-page-main .ndai-article-typolist > li:last-child {
	border-bottom: var(--ndai-rule);
}

.ndai-typolist-row {
	display: grid !important;
	gap: 0.375rem 1.5rem;
	padding-block: 1.125rem;
}

@media (min-width: 48rem) {

	.ndai-typolist-row {
		align-items: baseline;
		grid-template-columns: 15rem minmax(0, 1fr) !important;
	}
}

.ndai-typolist-meta {
	color: var(--wp--preset--color--contrast-2);
	display: flex;
	flex-wrap: wrap;
	font-family: var(--ndai-mono);
	font-size: 0.75rem;
	gap: 0.25rem 1rem;
}

.ndai-typolist-meta :where(a) {
	color: inherit;
	text-decoration: none;
}

.ndai-typolist-meta :where(a):hover {
	text-decoration: underline;
}

.ndai-typolist-row :where(.wp-block-post-title) {
	margin: 0 !important;
}

.ndai-typolist-row :where(.wp-block-post-title a) {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: color 200ms ease;
}

.ndai-typolist-row :where(.wp-block-post-title a):hover {
	color: var(--wp--preset--color--primary);
}

.ndai-typolist-row :where(.wp-block-post-title a):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* ③ 選ばれる理由: 大番号エディトリアル帯 */
.ndai-reason-editorial {
	display: grid !important;
	gap: 2.25rem 3rem;
}

@media (min-width: 48rem) {

	.ndai-reason-editorial {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

.ndai-reason-item {
	border-top: var(--ndai-rule);
	padding-top: 1.25rem;
}

.ndai-reason-num {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 24%, transparent);
	font-family: var(--ndai-mono);
	font-size: 2.5rem;
	font-weight: 300;
	line-height: 1;
	margin: 0 0 0.625rem !important;
}

.ndai-reason-item :where(h3) {
	margin: 0 !important;
}

/* ④ 静寂CTA（余白拡大・中央1ボタン） */
.ndai-front-page-main .ndai-uiux03-final-cta {
	padding-top: var(--ndai-space-quiet) !important;
	padding-bottom: var(--ndai-space-quiet) !important;
}

.ndai-quiet-cta {
	display: grid !important;
	gap: 1.75rem;
	justify-items: center;
	margin-inline: auto !important;
	max-width: 44rem;
}

.ndai-quiet-cta :where(h2, p) {
	margin: 0 !important;
	text-wrap: balance;
}

/* ⑤ サービスBento（伴走=最大セル・様式は現行カード継承） */
@media (min-width: 48rem) and (max-width: 63.9375rem) {

	.ndai-front-page-main .ndai-family-service-bento-4 .ndai-bento-grid {
		grid-template-areas: "a a" "b c" "d d" !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 64rem) {

	.ndai-front-page-main .ndai-family-service-bento-4 .ndai-bento-grid {
		grid-template-areas: "a a b" "a a c" "d d d" !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 48rem) {

	.ndai-front-page-main .ndai-bento-a { grid-area: a; }

	.ndai-front-page-main .ndai-bento-b { grid-area: b; }

	.ndai-front-page-main .ndai-bento-c { grid-area: c; }

	.ndai-front-page-main .ndai-bento-d { grid-area: d; }
}

/* セル輪郭の1pxルール線・リンクは下端固定（大セルの間延び防止） */
.ndai-front-page-main .ndai-bento-item {
	border: var(--ndai-rule);
	display: flex !important;
	flex-direction: column;
}

.ndai-front-page-main .ndai-bento-item > :where(p:has(a)):last-child {
	margin-block-start: auto !important;
	padding-top: 1rem;
}

@media (min-width: 64rem) {

	.ndai-front-page-main .ndai-bento-a :where(h3) {
		font-size: clamp(1.5rem, 1.9vw, 1.75rem) !important;
	}

	.ndai-front-page-main .ndai-bento-a :where(p) {
		max-width: 34rem;
	}
}

/* 「相談できること」1行: hover環境のみ隠して200msで開示。touch/reduced-motionは常時表示。
   最大セル(bento-a)は空間が広いため常時表示 */
@media (hover: hover) and (prefers-reduced-motion: no-preference) {

	.ndai-front-page-main .ndai-bento-item:not(.ndai-bento-a) .ndai-bento-more {
		opacity: 0;
		transform: translateY(0.25rem);
		transition: opacity 200ms ease, transform 200ms ease;
	}

	.ndai-front-page-main .ndai-bento-item:not(.ndai-bento-a):hover .ndai-bento-more,
	.ndai-front-page-main .ndai-bento-item:not(.ndai-bento-a):focus-within .ndai-bento-more {
		opacity: 1;
		transform: none;
	}
}

/* ⑥ 課題セクション: 散在→整列のscroll-driven settle（対応ブラウザのみ・非対応/reduced-motionは静的） */
@media (min-width: 64rem) {

	.ndai-front-page-main .ndai-family-problem-progression .ndai-section-heading {
		align-self: start;
		position: sticky;
		top: 6rem;
	}
}

@supports (animation-timeline: view()) {

	@media (prefers-reduced-motion: no-preference) {

		.ndai-front-page-main .ndai-progression-item {
			animation: ndai-settle both ease-out;
			animation-range: entry 10% entry 55%;
			animation-timeline: view();
		}

		.ndai-front-page-main .ndai-progression-item:nth-child(2) {
			animation-range: entry 18% entry 63%;
		}

		.ndai-front-page-main .ndai-progression-item:nth-child(3) {
			animation-range: entry 26% entry 71%;
		}
	}
}

@keyframes ndai-settle {

	from {
		opacity: 0;
		transform: translateY(1.25rem) rotate(-1.2deg);
	}

	to {
		opacity: 1;
		transform: none;
	}
}

/* ⑦ 自社実践: 縦章立て + R1設計図（inline SVG・情報図解レジスタ） */
.ndai-front-page-main .ndai-case-chapters {
	display: grid !important;
}

.ndai-front-page-main .ndai-case-chapter {
	border-top: var(--ndai-rule);
	display: grid !important;
	gap: 1rem 2.5rem;
	padding-block: 2rem;
}

@media (min-width: 64rem) {

	.ndai-front-page-main .ndai-case-chapter {
		align-items: start;
		grid-template-columns: 7rem minmax(0, 1fr) 23rem;
	}
}

@media (min-width: 48rem) and (max-width: 63.9375rem) {

	.ndai-front-page-main .ndai-case-chapter {
		grid-template-columns: 7rem minmax(0, 1fr);
	}

	.ndai-front-page-main .ndai-case-chapter-fig {
		grid-column: 2;
	}
}

.ndai-case-chapter-num {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 40%, transparent);
	font-family: var(--ndai-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.08em;
	margin: 0 !important;
}

.ndai-case-chapter-body :where(h3, p) {
	margin: 0 0 0.625rem !important;
}

.ndai-case-chapter-fig .ndai-case-fig-svg {
	display: block;
	height: auto;
	max-width: 24rem;
	width: 100%;
}

.ndai-fig-node {
	fill: var(--wp--preset--color--base);
	stroke: color-mix(in srgb, var(--wp--preset--color--contrast) 32%, transparent);
}

.ndai-fig-node.ndai-fig-approve {
	stroke: var(--wp--preset--color--primary);
	stroke-width: 1.5;
}

.ndai-fig-label {
	fill: var(--wp--preset--color--contrast);
	font-family: var(--ndai-mono);
	font-size: 9px;
}

.ndai-fig-label.ndai-fig-approve {
	fill: var(--wp--preset--color--primary);
	font-weight: 700;
}

.ndai-fig-arrow {
	fill: none;
	stroke: var(--wp--preset--color--contrast-2);
}

.ndai-fig-caption {
	fill: var(--wp--preset--color--contrast-2);
	font-family: var(--ndai-mono);
	font-size: 9px;
}

/* FIC指摘対応: 事例後の控えめCTA・bento-aリスト */
.ndai-case-followup-cta {
	border-top: var(--ndai-rule);
	font-size: var(--wp--preset--font-size--small, 0.875rem);
	margin: 0 !important;
	padding-top: 1.5rem;
}

.ndai-case-followup-cta :where(a) {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.ndai-case-followup-cta :where(a):hover {
	text-decoration: underline;
}

.ndai-case-followup-cta :where(a):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.ndai-bento-a-list {
	margin: 0 !important;
}

/* AIOS稼働ウィジェット（実測値のみ・R1・fail-closed運用） */
.ndai-aios-stats {
	border: var(--ndai-rule);
	margin-block: 0.5rem 1rem;
	padding: 1.25rem 1.5rem;
}

.ndai-aios-stats-list {
	display: grid;
	gap: 1rem 2rem;
	margin: 0;
}

@media (min-width: 48rem) {

	.ndai-aios-stats-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.ndai-aios-stat :where(dt) {
	color: var(--wp--preset--color--contrast-2);
	font-size: 0.75rem;
	letter-spacing: 0.02em;
}

.ndai-aios-stat :where(dd) {
	font-family: var(--ndai-mono);
	font-size: 2rem;
	font-weight: 300;
	line-height: 1.2;
	margin: 0.25rem 0 0;
}

.ndai-aios-stats-note {
	border-top: var(--ndai-rule);
	color: var(--wp--preset--color--contrast-2);
	font-family: var(--ndai-mono);
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
	margin: 1rem 0 0 !important;
	padding-top: 0.75rem;
}

/*
 * サブページ本文の左端統一（Okuyasu報告 2026-08-08）:
 * I-194単一列方針下で見出し(左寄せ)と本文(中央寄せ44rem)が混在し凸凹に見える。
 * 本文・リスト・見出しを左起点に揃える（可読幅max-widthは維持）。
 */
main:not(.ndai-front-page-main) .ndai-ratio-grid :where(p, ul, ol, h2, h3, h4) {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/*
 * ヒーロー スクロール誘導キュー（Issue #209）。演出はキューのみ・reduced-motionは静止。
 * 視認性: 白の柔らかい円座布団+濃色矢印(コントラスト確保)。
 */
.ndai-scroll-cue {
	align-items: center;
	background: rgb(255 255 255 / 78%);
	border: 0;
	border-radius: 50%;
	bottom: 1.125rem;
	box-shadow: 0 1px 10px rgb(26 26 26 / 12%);
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	display: flex;
	height: 3rem;
	justify-content: center;
	left: 50%;
	margin-left: -1.5rem;
	padding: 0;
	position: absolute;
	transition: opacity 300ms ease;
	width: 3rem;
	z-index: 4;
}

.ndai-scroll-cue:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

.ndai-scroll-cue.is-away {
	opacity: 0;
	pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {

	.ndai-scroll-cue svg {
		animation: ndai-cue-breathe 2.2s ease-in-out infinite;
	}
}

@keyframes ndai-cue-breathe {

	0%,
	100% {
		transform: translateY(-2px);
	}

	50% {
		transform: translateY(4px);
	}
}

/* ヒーロー動画(案A): 対応環境のみJSが注入。canplay+play成功までは透明=背後の静止画が見える。
   親がis-layout-constrainedのためWPのmax-width/marginを明示解除し、背景と同じcover幾何(50% 0%)に合わせる */
.ndai-front-page-main .ndai-uiux03-hero-visual > .ndai-hero-video {
	margin: 0 !important;
	max-width: none !important;
	object-position: 50% 0%;
	opacity: 0;
	transition: opacity 400ms ease;
}

.ndai-front-page-main .ndai-uiux03-hero-visual > .ndai-hero-video.is-ready {
	opacity: 1;
}

/* 動画のcover原点は背景画像のbackground-positionと同一条件で写像する
   (tablet 3:4面=100% 0% / 481-1023px landscape=desktop面 50% 0% / SP 9:16面=50% 0%) */
@media (max-width: 63.9375rem) {

	.ndai-front-page-main .ndai-uiux03-hero-visual > .ndai-hero-video {
		object-position: 100% 0%;
	}
}

@media (max-width: 63.9375rem) and (orientation: landscape) {

	.ndai-front-page-main .ndai-uiux03-hero-visual > .ndai-hero-video {
		object-position: 50% 0%;
	}
}

@media (max-width: 30rem) {

	.ndai-front-page-main .ndai-uiux03-hero-visual > .ndai-hero-video {
		object-position: 50% 0%;
	}
}

/* パンくずリスト（動的ブロック ndai/breadcrumbs。実装は 9d9-core プラグイン側）。
   色・字送り・余白は theme.json のトークンのみを使う（新規トークンを足さない）。 */
.ndai-breadcrumbs-slot {
	padding-top: var(--wp--preset--spacing--40);
}

.ndai-breadcrumbs-list {
	align-items: center;
	color: var(--wp--preset--color--contrast-2);
	display: flex;
	flex-wrap: wrap;
	font-size: var(--wp--preset--font-size--small);
	list-style: none;
	margin: 0;
	padding: 0;
}

.ndai-breadcrumbs-item {
	align-items: center;
	display: flex;
	margin: 0;
}

.ndai-breadcrumbs-item + .ndai-breadcrumbs-item::before {
	color: var(--wp--preset--color--contrast-3);
	content: "/";
	padding-inline: 0.5rem;
}

.ndai-breadcrumbs-link,
.ndai-breadcrumbs-current {
	align-items: center;
	display: inline-flex;
	min-height: 2.75rem;
}

.ndai-breadcrumbs-link {
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.ndai-breadcrumbs-link:hover,
.ndai-breadcrumbs-link:focus-visible {
	color: var(--wp--preset--color--secondary);
}

.ndai-breadcrumbs-current {
	color: var(--wp--preset--color--contrast-2);
}

/*
 * メガメニューを開いている間、ヘッダー配下のコンテンツをぼかす。
 * ヘッダー（とメガメニュー本体）は対象外。
 * ぼかした領域をクリックするとパネルが閉じる（領域外クリック判定に含まれる）。
 */
.wp-site-blocks > main,
.wp-site-blocks > footer {
	transition: filter 0.24s ease, opacity 0.24s ease;
}

body.ndai-meganav-panel-open .wp-site-blocks > main,
body.ndai-meganav-panel-open .wp-site-blocks > footer {
	filter: blur(0.375rem);
	opacity: 0.72;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {

	.wp-site-blocks > main,
	.wp-site-blocks > footer {
		transition: none;
	}
}

/* Phase 1 late overrides: the legacy rail rules appear earlier in this file. */
.ndai-media-exploration .ndai-media-latest-list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-columns: auto;
	grid-auto-flow: row;
	overflow: visible;
	scroll-snap-type: none;
	max-width: 60rem;
}

.ndai-media-exploration .ndai-media-latest-item-link {
	flex-direction: row;
	min-height: 7.5rem;
}

.ndai-media-exploration .ndai-media-latest-item-body {
	justify-content: center;
	order: 1;
	padding: 0.875rem 0.75rem 0.875rem 1rem;
}

.ndai-media-exploration .ndai-media-latest-item-image {
	flex: 0 0 10rem;
	order: 2;
}

@media (max-width: 767px) {

	.ndai-media-exploration .ndai-media-latest-list {
		grid-template-columns: 1fr;
		gap: 0.625rem;
	}

	.ndai-media-exploration .ndai-media-latest-item-link {
		min-height: 5.75rem;
	}

	.ndai-media-exploration .ndai-media-latest-item-body {
		padding: 0.625rem 0.5rem 0.625rem 0.75rem;
	}

	.ndai-media-exploration .ndai-media-latest-item-image {
		flex-basis: 6.5rem;
	}
}
