/* ナレッジ：service01の共通レイアウト・カード・記事組版に準拠。 */
/* 専用ヘッダーは通常フローに配置する。 */
body.knowledge-site { padding-top: 0; }
/* 一覧・記事共通のヒーロー。 */
.knowledge-hero { padding-block: 2.75rem 3rem; background: var(--color-background-subtle); }
.knowledge-hero .wp-breadcrumb { margin-bottom: 1.5rem; }
.knowledge-hero h1 { max-width: 58rem; margin: 0; font-size: var(--font-size-h1); line-height: 1.4; }
.knowledge-hero__lead { max-width: 50rem; margin: 1.5rem 0 0; color: var(--color-text-secondary); font-size: var(--font-size-body); line-height: 1.85; }
.knowledge-single .knowledge-hero h1 { font-size: var(--font-size-h2); }

/* PC：サイドバー1/4、記事領域3/4。参考サイトと同じ配置を全画面で共有。 */
.knowledge-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); align-items: start; gap: 3rem; padding-block: 3rem 5rem; }
.knowledge-main, .knowledge-sidebar { min-width: 0; }
.knowledge-sidebar { position: sticky; top: 1.5rem; }
.knowledge-browse > summary { display: none; }
.knowledge-browse > summary::-webkit-details-marker, .knowledge-topic-group > summary::-webkit-details-marker { display: none; }
.knowledge-browse__body { max-height: calc(100vh - 11rem); overflow-y: auto; }
.knowledge-browse__body > h2 { margin: 0 0 1rem; font-size: var(--font-size-h4); line-height: 1.5; }
.knowledge-topic-group { border-bottom: 1px solid var(--color-border); }
.knowledge-topic-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3rem; padding: .9rem .5rem; list-style: none; cursor: pointer; font-size: var(--font-size-small); line-height: 1.5; }
.knowledge-topic-group > summary:is(:hover, :focus-visible) { color: var(--color-primary); }
.knowledge-disclosure-icon { display: inline-block; flex: 0 0 auto; width: .625rem; height: .625rem; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
.knowledge-topic-group[open] > summary .knowledge-disclosure-icon, .knowledge-browse[open] > summary .knowledge-disclosure-icon { transform: rotate(225deg); }
.knowledge-topic-group ul { margin: 0; padding: 0 0 1rem; list-style: none; }
.knowledge-topic-group li + li { border-top: 1px solid var(--color-border); }
.knowledge-topic-group a { display: block; padding: .75rem .5rem; color: var(--color-text); font-size: var(--font-size-small); line-height: 1.65; overflow-wrap: anywhere; }
.knowledge-topic-group a:is(:hover, :focus-visible), .knowledge-topic-group a[aria-current="page"] { color: var(--color-primary); background: var(--color-background-subtle); }
.knowledge-topic-group .knowledge-topic-all { color: var(--color-primary); text-decoration: underline; text-underline-offset: .2rem; }
/* PCのサイドバーは幅が狭いため、CTAだけ余白と文字サイズを調整して1行に収める。 */
.knowledge-side-contact { margin-top: 2rem; padding: 1rem; background: var(--color-background-subtle); }
.knowledge-side-contact p { margin: 0 0 1rem; font-size: var(--font-size-body); line-height: 1.65; text-align: center; }
.knowledge-side-contact .knowledge-button.knowledge-button { width: 100%; padding-inline: .375rem; font-size: clamp(.75rem, 1.167vw, .875rem); white-space: nowrap; }

/* 一覧・検索：グレーの検索面と白い二列カード。 */
.knowledge-search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; padding: 1.5rem; margin: 0 0 2rem; background: var(--color-background-subtle); }
.knowledge-search label { display: block; min-width: 0; font-size: var(--font-size-small); }
.knowledge-search input { display: block; width: 100%; min-height: 3.25rem; padding: .75rem 1rem; margin-top: .5rem; border: 1px solid var(--color-border-strong); background: var(--color-background); color: var(--color-text); font-size: 1rem; border-radius: var(--radius-sm); }
.knowledge-search .knowledge-button { min-height: 3.25rem; }

/* 記事の後に置く運営会社紹介。ロゴ・説明と会社概要への導線を分離する。 */
.knowledge-reviewer {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  gap: .75rem 1.5rem;
  padding: 1.5rem;
  margin: 2.5rem 0 0;
  border: 1px solid var(--color-border);
  background: var(--color-background-subtle);
}
.knowledge-reviewer__photo { grid-row: 1 / span 3; display: block; width: 6rem; height: 6rem; object-fit: cover; }
.knowledge-reviewer__identity { grid-column: 2; min-width: 0; }
.knowledge-reviewer__label { margin: 0 0 .25rem; color: var(--color-primary); font-size: var(--font-size-label); }
.knowledge-reviewer__name { margin: 0; font-size: var(--font-size-h4); font-weight: 500; line-height: 1.4; }
.knowledge-reviewer__bio { grid-column: 2; margin: 0; color: var(--color-text-secondary); font-size: var(--font-size-body); line-height: 1.8; }
.knowledge-reviewer__footer {
  grid-column: 2;
  display: flex;
  justify-content: flex-end;
  margin-top: .25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}
.knowledge-reviewer__link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--color-primary);
  font-size: var(--font-size-small);
  line-height: 1.6;
}
.knowledge-reviewer__link:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .2rem; }
.knowledge-reviewer__link .mw-external-link-icon { display: block; flex: none; width: .8rem; height: .8rem; fill: currentColor; }

.knowledge-results > h2, .knowledge-related > h2 { margin: 0 0 1.5rem; font-size: var(--font-size-h2); }
.knowledge-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.knowledge-card { display: flex; flex-direction: column; min-width: 0; height: 100%; padding: 1.5rem; border: 1px solid var(--color-border); background: var(--color-background); color: var(--color-text); transition: border-color .2s; }
.knowledge-card__label { display: block; margin-bottom: .75rem; color: var(--color-primary); font-size: var(--font-size-label); line-height: 1.55; }
.knowledge-card h3 { margin: 0 0 1rem; font-size: var(--font-size-h3); font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
.knowledge-card p { margin: 0 0 1.5rem; color: var(--color-text-secondary); font-size: var(--font-size-body); line-height: 1.8; }
.knowledge-card__end { margin-top: auto; color: var(--color-primary); font-size: var(--font-size-small); }
.knowledge-card:is(:hover, :focus-visible) { border-color: var(--color-primary); }
.knowledge-card:is(:hover, :focus-visible) h3 { color: var(--color-primary); }
.knowledge-empty-state { padding: 2.5rem; background: var(--color-background-subtle); }
.knowledge-empty-state h3 { margin: 0 0 .75rem; }
.knowledge-empty-state p { margin: 0 0 1.5rem; }
.knowledge-pagination { margin-top: 2rem; }
.knowledge-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.knowledge-pagination .page-numbers li > :is(a, span) { display: grid; place-items: center; min-width: 2.75rem; min-height: 2.75rem; padding: .375rem .75rem; font-size: var(--font-size-small); }
.knowledge-pagination .page-numbers .current { color: var(--color-primary); background: var(--color-primary-bg); }
.knowledge-pagination .page-numbers .dots { border: 0; background: transparent; }
.knowledge-pagination .page-numbers a:is(:hover, :focus-visible) { color: var(--color-primary); background: var(--color-background-subtle); }

/* 記事本文・目次。本文ブロックの既存CSSは後段で維持する。 */
.knowledge-article__lead { margin: 0 0 1.5rem; font-size: var(--font-size-body); line-height: 1.9; }
.knowledge-article__image { margin: 0 0 2rem; }
.knowledge-article__image img { width: 100%; height: auto; }
.knowledge-toc { padding: 1.5rem 2rem; margin-bottom: 3rem; border: 1px solid var(--color-border); }
.knowledge-toc h2 { margin: 0 0 1rem; font-size: var(--font-size-h3); }
.knowledge-toc ol { margin: 0; padding-left: 1.5rem; }
.knowledge-toc li + li { margin-top: .625rem; }
.knowledge-toc li.is-level-3 { margin-left: 1.5rem; }
.knowledge-toc a { display: inline-block; min-height: 2rem; color: var(--color-primary); font-size: var(--font-size-small); line-height: 1.6; text-decoration: underline; text-underline-offset: .2rem; }
.knowledge-toc a:is(:hover, :focus-visible) { color: var(--color-primary-hover); }

/*
 * Knowledge記事本文（Gutenberg）。
 * WordPressのブロックclassへ過度に依存せず、基本要素を .knowledge-article__body 配下で統一する。
 * ブロック固有classは、figure/table/detailsなどラッパー制御が必要な場合だけ使用する。
 */
.knowledge-article__body {
	color: var(--color-text);
	line-height: 2;
	overflow-wrap: anywhere;
}

.knowledge-article__body > :first-child {
	margin-top: 0;
}

.knowledge-article__body > :last-child {
	margin-bottom: 0;
}

/* 本文の基本的な縦リズム。 */
.knowledge-article__body :is(
	p,
	ul,
	ol,
	.wp-block-table,
	.wp-block-image,
	.wp-block-gallery,
	blockquote,
	.wp-block-pullquote,
	.wp-block-code,
	.wp-block-preformatted,
	.wp-block-separator,
	.wp-block-details,
	.wp-block-file,
	.wp-block-embed
) {
	margin-block: 0 30px;
}

/* 見出し。H1は記事ヒーローが担当し、本文はH2以下を使用する。 */
.knowledge-article__body h2 {
	scroll-margin-top: 10rem;
	padding-top: 2rem;
	margin: 3.5rem 0 1.375rem;
	color: var(--color-text);
	border-top: 1px solid var(--color-border);
	font-size: var(--font-size-h3);
	line-height: 1.55;
	text-wrap: pretty;
}

.knowledge-article__body h3 {
	scroll-margin-top: 10rem;
	margin: 2.5rem 0 1.125rem;
	color: var(--color-text);
	font-size: var(--font-size-h4);
	line-height: 1.6;
	text-wrap: pretty;
}

.knowledge-article__body h4 {
	margin: 32px 0 14px;
	color: var(--color-heading);
	font-size: var(--font-size-h4);
	line-height: 1.6;
	text-wrap: pretty;
}

/* 本文・インライン要素。 */
.knowledge-article__body strong {
	color: var(--color-heading);
	font-weight: 400;
}

.knowledge-article__body a {
	color: var(--color-primary-dark);
	font-weight: 400;
	text-decoration: underline;
	text-decoration-color: var(--color-primary-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.knowledge-article__body a:hover,
.knowledge-article__body a:focus-visible {
	color: var(--color-primary);
	text-decoration-color: currentColor;
}

.knowledge-article__body mark {
	padding-inline: 0.15em;
	color: inherit;
	background: var(--color-primary-light);
}

/* 箇条書き・番号付きリスト。reset.cssで消しているマーカーを本文内だけ復元する。 */
.knowledge-article__body ul {
	padding-left: 1.5em;
	list-style: disc;
}

.knowledge-article__body ol {
	padding-left: 1.5em;
	list-style: decimal;
}

.knowledge-article__body :is(ul, ol) li::marker {
	color: var(--color-primary-dark);
	font-weight: 400;
}

.knowledge-article__body li {
	padding-left: 0.15em;
}

.knowledge-article__body li + li {
	margin-top: 8px;
}

.knowledge-article__body li > :is(ul, ol) {
	margin-block: 10px 0;
}

/*
 * 表。
 * WordPress標準のセルborderは打ち消し、サイト側で必要な罫線だけを定義する。
 * スマホでは列を潰さずfigure側を横スクロールさせ、比較情報の可読性を優先する。
 */
.knowledge-article__body .wp-block-table,
.knowledge-article__body .knowledge-table-scroll {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.knowledge-article__body table {
	width: 100%;
	min-width: 600px;
	border: 1px solid var(--color-border);
	border-spacing: 0;
	border-collapse: separate;
	border-radius: var(--radius-md);
	background: var(--color-background);
	overflow: hidden;
}

.knowledge-article__body th,
.knowledge-article__body td {
	padding: 1rem 1.25rem;
	border: 0;
	border-right: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
	line-height: 1.75;
}

.knowledge-article__body tr > :last-child {
	border-right: 0;
}

.knowledge-article__body tbody tr:last-child > td {
	border-bottom: 0;
}

.knowledge-article__body thead th {
	color: var(--color-heading);
	background: var(--color-background-subtle);
	font-weight: 400;
}

.knowledge-article__body .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: var(--color-background-subtle);
}

.knowledge-article__body .wp-block-table figcaption,
.knowledge-article__body figure figcaption {
	margin: 10px 0 0;
	color: var(--color-text-secondary);
	font-size: var(--font-size-body-mobile);
	line-height: 1.7;
	text-align: left;
}

/* 画像・メディア。 */
.knowledge-article__body .wp-block-image img,
.knowledge-article__body .wp-block-gallery img {
	display: block;
	max-width: 100%;
	height: auto;
	border-radius: var(--radius-md);
}

.knowledge-article__body .wp-block-embed iframe {
	max-width: 100%;
}

/* 引用。装飾を強くしすぎず、本文との役割差だけを明確にする。 */
.knowledge-article__body blockquote {
	padding: 22px 24px;
	background: var(--color-background-subtle);
	border-left: 3px solid var(--color-primary);
}

.knowledge-article__body blockquote > :last-child {
	margin-bottom: 0;
}

.knowledge-article__body blockquote cite,
.knowledge-article__body .wp-block-pullquote cite {
	display: block;
	margin-top: 10px;
	color: var(--color-text-secondary);
	font-style: normal;
}

.knowledge-article__body .wp-block-pullquote {
	padding: 28px;
	background: var(--color-primary-bg);
	border-top: 1px solid var(--color-primary-light);
	border-bottom: 1px solid var(--color-primary-light);
	text-align: center;
}

.knowledge-article__body .wp-block-pullquote blockquote {
	padding: 0;
	margin: 0;
	background: transparent;
	border-left: 0;
}

.knowledge-article__body .wp-block-pullquote p {
	font-size: var(--font-size-h4);
	font-weight: 400;
	line-height: 1.8;
}

/* 区切り線。 */
.knowledge-article__body .wp-block-separator,
.knowledge-article__body hr {
	width: 100%;
	height: 0;
	border: 0;
	border-top: 1px solid var(--color-border-strong);
}

/* インラインコード・コードブロック。 */
.knowledge-article__body :not(pre) > code,
.knowledge-article__body kbd {
	padding: 0.15em 0.4em;
	background: var(--color-background-subtle);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.knowledge-article__body :is(pre, .wp-block-code, .wp-block-preformatted) {
	padding: 20px 22px;
	overflow-x: auto;
	color: var(--color-text-inverse);
	background: var(--color-heading);
	border-radius: var(--radius-md);
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
	line-height: 1.7;
	white-space: pre;
}

.knowledge-article__body :is(pre, .wp-block-code, .wp-block-preformatted) code {
	padding: 0;
	color: inherit;
	background: transparent;
	border: 0;
	font: inherit;
}

/* Detailsブロック。FAQの代替ではなく、記事中の補足を折りたたむ用途に限定する。 */
.knowledge-article__body .wp-block-details {
	background: var(--color-background);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}

.knowledge-article__body .wp-block-details summary {
	padding: 16px 18px;
	color: var(--color-heading);
	font-weight: 400;
	cursor: pointer;
}

.knowledge-article__body .wp-block-details > :not(summary) {
	margin-inline: 18px;
}

.knowledge-article__body .wp-block-details > :last-child {
	margin-bottom: 18px;
}

/* ファイルブロック。ダウンロード先と説明をひとまとまりに見せる。 */
.knowledge-article__body .wp-block-file {
	padding: 18px 20px;
	background: var(--color-background-subtle);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
}

/* 記事内で必要なときだけ使う汎用補足ボックス。knowledge-view は既存記事との互換用。 */
.knowledge-article__body :is(.knowledge-note, .knowledge-view) {
	padding: 28px 30px;
	margin-block: 38px;
	background: var(--color-primary-bg);
	border: 1px solid var(--color-primary-light);
	border-radius: var(--radius-md);
}

.knowledge-article__body :is(.knowledge-note, .knowledge-view)::before {
	display: block;
	margin-bottom: 10px;
	content: "ここがポイント";
	color: var(--color-primary);
	font-size: var(--font-size-body-mobile);
	font-weight: 400;
}

.knowledge-article__body :is(.knowledge-note, .knowledge-view) > :last-child {
	margin-bottom: 0;
}



/* 記事本文の後には関連記事を表示する。CTAはナレッジ一覧にのみ配置する。 */
.knowledge-related { margin-top: 3.5rem; }
.knowledge-back { margin: 2rem 0 0; text-align: center; }


@media (max-width: 959px) {
	.knowledge-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
	.knowledge-sidebar { position: static; }
	.knowledge-browse > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: var(--color-background-subtle); list-style: none; cursor: pointer; }
	.knowledge-browse__body { max-height: none; overflow: visible; padding: 1rem; }
	.knowledge-browse__body > h2 { display: none; }
	.knowledge-side-contact { display: none; }
}


@media (max-width: 768px) {
	.knowledge-hero { padding-block: 1.5rem 2rem; }
	/* ナレッジトップだけ短いコピーがスマートフォンでも1行に収まりやすい大きさにする。 */
	.knowledge-hero h1.knowledge-hero__title--top { font-size: clamp(1.25rem, 5.5vw, 1.75rem); }
	.knowledge-hero .wp-breadcrumb { margin-bottom: 1rem; }
	.knowledge-layout { padding-block: 2rem 3.5rem; }
	.knowledge-layout--article .knowledge-main { order: 1; }
	.knowledge-layout--article .knowledge-sidebar { order: 2; }
	.knowledge-search { grid-template-columns: minmax(0, 1fr); padding: 1.5rem; margin-bottom: 1.5rem; }
	.knowledge-reviewer { grid-template-columns: 5rem minmax(0, 1fr); gap: .75rem 1rem; padding: 1.25rem; margin-top: 2rem; }
	.knowledge-reviewer__photo { grid-row: 1; width: 5rem; height: 5rem; }
	.knowledge-reviewer__identity { grid-column: 2; grid-row: 1; align-self: center; }
	.knowledge-reviewer__bio, .knowledge-reviewer__footer { grid-column: 1 / -1; }
	.knowledge-search .knowledge-button { width: 100%; }
	.knowledge-card-grid { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
	.knowledge-card { padding: 1.5rem; }
	.knowledge-toc { padding: 1.5rem; }
}

/* 既存サービスと同じIBM Plex/Carbon基盤で専用ブランドを表示。 */
.knowledge-button { display: inline-flex; justify-content: center; align-items: center; min-height: 3.25rem; padding: .75rem 1.5rem; border: 1px solid var(--color-primary); border-radius: var(--radius-sm); color: var(--color-text-inverse); background: var(--color-primary); font-size: var(--font-size-small); font-weight: 400; line-height: 1.5; cursor: pointer; text-align: center; }
.knowledge-button:is(:hover,:focus-visible) { background: var(--color-primary-hover); border-color: var(--color-primary-hover); }
.knowledge-button--outline { color: var(--color-primary); background: var(--color-background); }
.knowledge-button--outline:is(:hover,:focus-visible) { color: var(--color-text-inverse); }
.knowledge-button--light { color: var(--color-primary); background: var(--color-background); border-color: var(--color-background); }
.knowledge-button--light:is(:hover,:focus-visible) { color: var(--color-primary-hover); background: var(--color-background-subtle); border-color: var(--color-background-subtle); }
.knowledge-site-header { background: var(--color-background); border-bottom: 1px solid var(--color-border); }
.knowledge-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 72px; padding-block: 1.5rem; }
.knowledge-header-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.knowledge-theme-nav { background: var(--color-background); border-bottom: 1px solid var(--color-border); }
.knowledge-theme-nav__inner { display: flex; flex-wrap: nowrap; align-items: center; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.knowledge-theme-nav a { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 3.25rem; padding-inline: .75rem; border-bottom: 2px solid transparent; color: var(--color-text); font-size: var(--font-size-small); white-space: nowrap; }
.knowledge-theme-nav a:first-child { margin-left: auto; }
.knowledge-theme-nav a:last-child { margin-right: auto; }
.knowledge-theme-nav a + a::before { position: absolute; inset-inline-start: 0; top: 50%; width: 1px; height: 1.125rem; content: ''; background: var(--color-border-strong); transform: translateY(-50%); }
.knowledge-theme-nav a:is(:hover,:focus-visible),.knowledge-theme-nav [aria-current="page"] { color: var(--color-primary); border-bottom-color: var(--color-primary); }
.knowledge-brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 0; }
/* MEOサイトのナレッジと同様、マーク＋名称＋説明文のブランド表示。 */
.knowledge-brand--header { gap: .75rem; }
.knowledge-brand__text--header { gap: 1px; }
.knowledge-brand__text--header strong { font-size: 1.125rem; line-height: 1.35; }
.knowledge-brand__text--header small { letter-spacing: 0; }
.knowledge-brand__mark { display: block; width: 2.25rem; height: 2.25rem; flex: none; }
.knowledge-brand__text { display: grid; min-width: 0; gap: .3rem; }
.knowledge-brand__text strong { font-size: 1.125rem; font-weight: 500; line-height: 1.4; }
.knowledge-brand__text small { color: var(--color-text-secondary); font-size: var(--font-size-label); line-height: 1.5; }
.knowledge-mobile-menu { display: none; position: relative; margin-left: auto; }
.knowledge-mobile-menu > .knowledge-mobile-menu__toggle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 54px;
  min-height: 48px;
  padding: 5px;
  border: 0;
  background: transparent;
  list-style: none;
  cursor: pointer;
}
.knowledge-mobile-menu > .knowledge-mobile-menu__toggle::-webkit-details-marker { display: none; }
.knowledge-mobile-menu__toggle > span {
  display: block;
  width: 22px;
  height: 2px;
  margin: 2px auto;
  background: var(--color-text);
  transition: transform 160ms ease, opacity 160ms ease;
}
.knowledge-mobile-menu:not(.is-enhanced)[open] .knowledge-mobile-menu__toggle > span:nth-child(1),
.knowledge-mobile-menu.is-open .knowledge-mobile-menu__toggle > span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.knowledge-mobile-menu:not(.is-enhanced)[open] .knowledge-mobile-menu__toggle > span:nth-child(2),
.knowledge-mobile-menu.is-open .knowledge-mobile-menu__toggle > span:nth-child(2) { opacity: 0; }
.knowledge-mobile-menu:not(.is-enhanced)[open] .knowledge-mobile-menu__toggle > span:nth-child(3),
.knowledge-mobile-menu.is-open .knowledge-mobile-menu__toggle > span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.knowledge-mobile-menu__toggle::after {
  content: "メニュー";
  margin-top: 5px;
  font-size: .4375rem;
  font-weight: 600;
  line-height: 1;
}
.knowledge-mobile-menu:not(.is-enhanced)[open] .knowledge-mobile-menu__toggle::after,
.knowledge-mobile-menu.is-open .knowledge-mobile-menu__toggle::after { content: "閉じる"; }
.knowledge-mobile-menu nav {
  position: absolute;
  z-index: 110;
  top: 100%;
  right: 0;
  display: grid;
  width: min(21rem, calc(100vw - 2.5rem));
  max-height: 70vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .75rem 1.25rem;
  background: var(--color-background);
  border: 1px solid var(--color-border);
  box-shadow: 0 .5rem 1.5rem var(--color-shadow-neutral-subtle);
}
.knowledge-mobile-menu nav a { display: block; padding: .85rem 0; border-bottom: 1px solid var(--color-border); font-size: var(--font-size-small); }
.knowledge-mobile-menu nav a > .mw-icon { display: none; }
.knowledge-mobile-menu [aria-current="page"] { color: var(--color-primary); }
.knowledge-mobile-menu.is-enhanced nav {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-12px);
  transition: opacity 240ms ease, transform 240ms ease, visibility 0s linear 240ms;
}
.knowledge-mobile-menu.is-enhanced.is-open nav {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 240ms ease, transform 240ms ease, visibility 0s;
}
.knowledge-hero__lead > :first-child { margin-top: 0; }
.knowledge-hero__lead > :last-child { margin-bottom: 0; }
.knowledge-reviewer__logo { padding: 1.25rem; background: var(--color-background); object-fit: contain; }
.knowledge-article-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: 1.25rem; color: var(--color-text-secondary); font-size: var(--font-size-small); }
.knowledge-sources { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); }
.knowledge-sources h2 { margin: 0 0 1rem; font-size: var(--font-size-h3); font-weight: 400; }
.knowledge-sources ul { padding-left: 1.5rem; }
.knowledge-sources li { margin-bottom: .5rem; }
.knowledge-sources a { color: var(--color-primary); text-decoration: underline; text-underline-offset: .2rem; }
.knowledge-article__body .wp-knowledge-table { max-width: 100%; overflow-x: auto; margin: 2rem 0; }
.knowledge-article__body .wp-knowledge-table table { margin: 0; }
.knowledge-article__body .wp-knowledge-table:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
.knowledge-pagination ul.page-numbers,.knowledge-pagination .page-numbers li { border: 0; background: none; }
.knowledge-pagination :is(a,span).page-numbers { margin: 0; }
.knowledge-pagination :is(.prev,.next) { width: auto; }
.knowledge-footer { padding-block: 3rem 1.5rem; color: var(--color-text); background: var(--color-background-subtle); }
.knowledge-footer__inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: 3rem; }
.knowledge-footer__inner p { margin: 1rem 0 0; font-size: var(--font-size-small); color: var(--color-text-secondary); }
.knowledge-footer__directory h2 { margin: 0 0 1rem; font-size: var(--font-size-h4); font-weight: 400; }
.knowledge-footer__directory ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem 1.5rem; padding: 0; margin: 0; list-style: none; }
.knowledge-footer__directory a { display: flex; align-items: center; min-height: 2.75rem; font-size: var(--font-size-small); }
.knowledge-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--color-border); color: var(--color-text-secondary); font-size: var(--font-size-label); }
.knowledge-footer__bottom nav { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }

.knowledge-external { display: inline-flex; align-items: center; gap: .3rem; }
.knowledge-external .mw-external-link-icon { margin-left: 0; }
.knowledge-footer nav a:is(:hover,:focus-visible) { color: var(--color-primary); text-decoration: underline; text-underline-offset: .2rem; }
body.admin-bar .knowledge-sidebar { top: 3.5rem; }
@media (max-width: 1000px) {
  .knowledge-header-actions { gap: .5rem; }
  .knowledge-header-actions .knowledge-button { padding-inline: .9rem; }
}
@media (max-width: 900px) {
  .knowledge-theme-nav, .knowledge-header-actions { display: none; }
  .knowledge-mobile-menu { display: block; }
  .knowledge-header-inner { padding-block: .5rem; gap: .5rem; }
  .knowledge-brand__text--header small { display: none; }
}
@media (max-width: 768px) {
  .knowledge-brand__text small { display: none; }
  .knowledge-brand__text strong { font-size: 1rem; }
  .knowledge-brand__mark { width: 2rem; height: 2rem; }
  .knowledge-reviewer__logo { padding: 1rem; }
  .knowledge-footer__inner { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .knowledge-footer__directory ul { grid-template-columns: minmax(0,1fr); }
  .knowledge-footer__directory li { border-bottom: 1px solid var(--color-border); }
  .knowledge-footer__directory a { padding-block: .625rem; }
  /* スマホのみリンクをコピーライト上に配置し、直上の罫線は削除する。 */
  .knowledge-footer__bottom {
    flex-direction: column-reverse;
    align-items: center;
    padding-top: 0;
    border-top: 0;
  }
  .knowledge-footer__bottom nav { flex-direction: column; align-items: center; gap: .5rem; }
  .knowledge-footer__bottom small { text-align: center; }
  .knowledge-side-contact { text-align: center; }
  .knowledge-empty-state .knowledge-button { display: flex; width: fit-content; max-width: 100%; margin-inline: auto; }
}
@media (max-width: 390px) {
  /* 狭い端末でもナレッジ名とメニューを1行に収める。 */
  .knowledge-site-header .knowledge-brand--header { gap: .375rem; }
  .knowledge-site-header .knowledge-brand__text--header strong { font-size: .875rem; }
  .knowledge-site-header .knowledge-mobile-menu { margin-right: 0; }
}
/* スマホのメニューは通常サイトと同じ全面表示・間隔・矢印・開閉動作にする。 */
@media (max-width: 671px) {
  body.knowledge-site { padding-top: 64px; }
  body.knowledge-site.mw-menu-open { overflow: hidden; }
  .knowledge-site-header {
    position: fixed;
    z-index: 100;
    inset: 0 0 auto;
    border-bottom: 0;
  }
  .knowledge-header-inner {
    height: 64px;
    min-height: 64px;
    padding-block: 0;
    gap: .5rem;
  }
  .knowledge-brand--header { gap: .5rem; }
  .knowledge-brand__text--header strong { font-size: 1rem; }
  .knowledge-mobile-menu { margin: 0 12px 0 auto; }
  .knowledge-mobile-menu > .knowledge-mobile-menu__toggle {
    width: 54px;
    height: 48px;
    min-height: 48px;
    padding: 5px;
  }
  .knowledge-mobile-menu nav {
    position: fixed;
    top: 64px;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: none;
    padding: 16px 16px 48px;
    border: 0;
    box-shadow: none;
    overflow-y: auto;
    background: #fff;
  }
  .knowledge-mobile-menu nav a {
    display: flex;
    align-items: center;
    min-height: 64px;
    padding: 0;
    border-bottom: 1px solid #e0e0e0;
    color: #161616;
    font-size: var(--font-size-body);
    line-height: 1.5;
    text-decoration: none;
  }
  .knowledge-mobile-menu nav a > .mw-icon {
    display: block;
    flex-shrink: 0;
    margin-left: auto;
  }
  .knowledge-mobile-menu nav a:hover,
  .knowledge-mobile-menu nav a[aria-current="page"] {
    background: transparent;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
  }
  .admin-bar .knowledge-site-header { top: 46px; }
  .admin-bar .knowledge-mobile-menu nav { top: 110px; }
}
@media (max-width: 600px) {
  .admin-bar .knowledge-site-header { position: absolute; }
}
@media (prefers-reduced-motion: reduce) {
  .knowledge-disclosure-icon,
  .knowledge-mobile-menu__toggle > span,
  .knowledge-mobile-menu.is-enhanced nav { transition: none; }
}
