/* ==========================================================
   プロテク 標準デザイン「魔導設計図」（設計図 × 魔法学校）
   前半: 青焼き図面の骨格（方眼・トレーシングペーパー・寸法線・部品表・表題欄）
   後半「魔導の上書き」: 金のインク・魔法陣・ローマ数字・封蝋・Cinzel
   ========================================================== */

#body_wrap {
	--bp-blue: #0b3d91;
	--bp-blue-deep: #082c6c;
	--bp-blue-mid: #1652b8;
	--bp-line: rgba(255, 255, 255, .85);
	--bp-line-soft: rgba(255, 255, 255, .35);
	--bp-paper: #f5f8fc;
	--bp-paper-2: #e8eff9;
	--bp-ink: #0d2f6e;
	--bp-ink-soft: #3b5c99;
	--bp-text: #1b2a44;
	--bp-link: #1d4ed8;
	--bp-red: #c8102e;
	--bp-mono: "IBM Plex Mono", "IBM Plex Sans JP", ui-monospace, monospace;
	--bp-jp: "IBM Plex Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	--bp-grid:
		linear-gradient(rgba(255, 255, 255, .16) 1px, transparent 1px) 0 0 / 100px 100px,
		linear-gradient(90deg, rgba(255, 255, 255, .16) 1px, transparent 1px) 0 0 / 100px 100px,
		linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px) 0 0 / 20px 20px,
		linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px) 0 0 / 20px 20px;
	--bp-paper-grid:
		linear-gradient(rgba(13, 47, 110, .06) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(90deg, rgba(13, 47, 110, .06) 1px, transparent 1px) 0 0 / 24px 24px;
	/* 四隅のトンボ（L字） */
	--bp-corners:
		linear-gradient(var(--bp-ink), var(--bp-ink)) left 6px top 6px / 14px 1.5px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) left 6px top 6px / 1.5px 14px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) right 6px top 6px / 14px 1.5px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) right 6px top 6px / 1.5px 14px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) left 6px bottom 6px / 14px 1.5px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) left 6px bottom 6px / 1.5px 14px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) right 6px bottom 6px / 14px 1.5px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) right 6px bottom 6px / 1.5px 14px no-repeat;

	/* SWELL の色変数 */
	--color_bg: var(--bp-blue);
	--color_text: #fff;
	--color_main: var(--bp-ink);
	--color_link: var(--bp-link);
	--color_htag: var(--bp-ink);
	--color_header_bg: var(--bp-blue-deep);
	--color_header_text: #fff;
	--color_footer_bg: var(--bp-blue-deep);
	--color_footer_text: #fff;
	--color_border: var(--bp-line-soft);
	--color_gray: var(--bp-paper-2);
	--swl-font_family: var(--bp-jp);
	--swl-font_weight: 400;

	background: var(--bp-grid), var(--bp-blue);
	color: #fff;
	font-family: var(--bp-jp);
}
body { background: #0b3d91; }
#body_wrap ::selection { background: #ffe066; color: var(--bp-ink); }

/* ---------- ヘッダー ---------- */
#body_wrap .l-header,
#body_wrap .l-fixHeader {
	background: var(--bp-blue-deep);
	border-bottom: 2px solid var(--bp-line);
	box-shadow: 0 4px 0 -2px var(--bp-blue-deep), 0 4px 0 -1px var(--bp-line-soft);
	color: #fff;
}
#body_wrap .l-header__bar { background: #061f4d; border-bottom: 1px solid var(--bp-line-soft); }
#body_wrap .c-catchphrase { color: rgba(255, 255, 255, .8); font-family: var(--bp-mono); letter-spacing: .02em; }
#body_wrap .c-catchphrase::before { content: "NOTE: "; color: #9ec5ff; }
#body_wrap .l-header__bar .c-iconList__link { color: #fff; }

#body_wrap .c-headLogo__link {
	display: inline-flex;
	flex-direction: column;
	padding: .2em .8em .3em;
	border: 1.5px solid var(--bp-line);
	color: #fff;
	font-family: var(--bp-jp);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: .12em;
}
#body_wrap .c-headLogo__link::before {
	content: "DWG. NO. PRT-001";
	margin-bottom: .2em;
	padding-bottom: .15em;
	border-bottom: 1px solid var(--bp-line-soft);
	color: #9ec5ff;
	font: 500 10px/1.2 var(--bp-mono);
	letter-spacing: .14em;
}

#body_wrap .c-gnav > li > a { color: #fff; font-family: var(--bp-jp); }
#body_wrap .c-gnav > li > a .ttl { position: relative; }
#body_wrap .c-gnav > li > a::after { background: #fff; height: 1.5px; }
#body_wrap .c-gnav > li > a:hover { color: #ffe066; }

/* パンくず */
#body_wrap .p-breadcrumb.-bg-on { background: transparent; border-bottom: 1px dashed var(--bp-line-soft); }
#body_wrap .p-breadcrumb__list::before { content: "PATH /"; margin-right: .6em; color: #9ec5ff; font: 11px var(--bp-mono); }
#body_wrap .p-breadcrumb__text { color: #fff; font-family: var(--bp-mono); opacity: .9; }
#body_wrap .p-breadcrumb__item:not(:last-child)::after { border-color: #fff; opacity: .6; }

/* ---------- 記事エリア = トレーシングペーパー ---------- */
#body_wrap.single .l-mainContent__inner,
#body_wrap.page .l-mainContent__inner {
	position: relative;
	padding: 48px 44px 40px;
	background: var(--bp-corners), var(--bp-paper-grid), var(--bp-paper);
	box-shadow: 0 0 0 1px var(--bp-ink), 10px 10px 0 rgba(4, 22, 56, .45);
	color: var(--bp-text);
}
#body_wrap.single .l-mainContent__inner::before,
#body_wrap.page .l-mainContent__inner::before {
	content: "SHEET 01 — DETAIL DRAWING";
	position: absolute;
	top: 14px;
	right: 30px;
	color: var(--bp-ink-soft);
	font: 500 10px/1 var(--bp-mono);
	letter-spacing: .16em;
}

/* 記事ヘッダー */
#body_wrap .c-postTitle__ttl {
	color: var(--bp-ink);
	font-family: var(--bp-jp);
	font-weight: 700;
	line-height: 1.5;
}
#body_wrap .c-postTitle__ttl::before {
	content: "TITLE / 表題";
	display: block;
	margin-bottom: .35em;
	color: var(--bp-ink-soft);
	font: 500 11px/1 var(--bp-mono);
	letter-spacing: .16em;
}
#body_wrap .c-postTitle__date {
	border-color: var(--bp-ink);
	color: var(--bp-ink);
	font-family: var(--bp-mono);
}
#body_wrap .p-articleMetas,
#body_wrap .p-articleMetas .c-postTimes { color: var(--bp-ink-soft); font-family: var(--bp-mono); }
#body_wrap .c-categoryList__link {
	border: 1px solid var(--bp-ink) !important;
	border-radius: 0;
	background: transparent !important;
	color: var(--bp-ink) !important;
	font-family: var(--bp-mono);
}
#body_wrap .c-prNotation {
	border: 1px dashed var(--bp-ink);
	border-radius: 0;
	background: rgba(255, 224, 102, .25) !important;
	color: var(--bp-ink);
	font-family: var(--bp-mono);
}

/* アイキャッチ = 図 1 */
#body_wrap .p-articleThumb {
	position: relative;
	padding: 8px;
	border: 1.5px solid var(--bp-ink);
	background: #fff;
}
#body_wrap .p-articleThumb::after {
	content: "FIG. 1";
	position: absolute;
	right: -1.5px;
	bottom: -1.5px;
	padding: 3px 10px;
	background: var(--bp-ink);
	color: #fff;
	font: 600 11px/1.4 var(--bp-mono);
	letter-spacing: .14em;
}
#body_wrap .p-articleThumb__img { display: block; box-shadow: none; border-radius: 0; }

/* ---------- 本文 ---------- */
#body_wrap .post_content {
	counter-reset: bp-h2;
	color: var(--bp-text);
	line-height: 1.95;
}
#body_wrap .post_content a { color: var(--bp-link); text-decoration: underline; text-underline-offset: 3px; }
#body_wrap .post_content a:hover { color: var(--bp-red); }
#body_wrap .post_content strong,
#body_wrap .post_content b { color: var(--bp-ink); background: linear-gradient(transparent 60%, rgba(120, 190, 255, .45) 0); }

/* h2 = 寸法線 */
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) {
	position: relative;
	counter-increment: bp-h2;
	counter-reset: bp-h3;
	margin-top: 3.4em;
	padding: .2em 4.5em 26px 0;
	border: none;
	background: none;
	color: var(--bp-ink);
	font-size: 1.35em;
	font-weight: 700;
	line-height: 1.5;
}
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	content: "";
	position: absolute;
	top: auto;
	bottom: 4px;
	left: 0;
	width: 100%;
	height: 14px;
	box-sizing: border-box;
	border: none;
	border-left: 1.5px solid var(--bp-ink);
	border-right: 1.5px solid var(--bp-ink);
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M0 5 10 1 10 9z' fill='%230d2f6e'/%3E%3C/svg%3E") left 1px center / 10px 10px no-repeat,
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M10 5 0 1 0 9z' fill='%230d2f6e'/%3E%3C/svg%3E") right 1px center / 10px 10px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) center / 100% 1.5px no-repeat;
}
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::after {
	content: "SEC." counter(bp-h2, decimal-leading-zero);
	position: absolute;
	top: .45em;
	right: 0;
	padding: 2px 8px;
	border: 1.5px solid var(--bp-ink);
	color: var(--bp-ink);
	font: 600 12px/1.4 var(--bp-mono);
	letter-spacing: .1em;
}

/* h3 = 詳細図の丸記号 */
#body_wrap .post_content h3:where(:not([class^="swell-block-"])) {
	counter-increment: bp-h3;
	display: flex;
	align-items: center;
	gap: .6em;
	padding: 0 0 .4em;
	border: none;
	border-bottom: 1px solid rgba(13, 47, 110, .35);
	background: none;
	color: var(--bp-ink);
	font-size: 1.15em;
}
#body_wrap .post_content h3:where(:not([class^="swell-block-"]))::before {
	content: counter(bp-h3, upper-alpha);
	position: static;
	flex: 0 0 auto;
	display: inline-grid;
	place-items: center;
	width: 1.9em;
	height: 1.9em;
	border: 2px solid var(--bp-ink);
	border-radius: 50%;
	background: none;
	box-shadow: inset 0 0 0 3px var(--bp-paper), inset 0 0 0 4px var(--bp-ink);
	color: var(--bp-ink);
	font: 700 .78em/1 var(--bp-mono);
}
#body_wrap .post_content h3:where(:not([class^="swell-block-"]))::after { display: none; }
#body_wrap .post_content h4:where(:not([class^="swell-block-"])) { border: none; padding: 0; color: var(--bp-ink); }
#body_wrap .post_content h4:where(:not([class^="swell-block-"]))::before {
	content: "— ";
	position: static;
	border: none;
	background: none;
	color: var(--bp-ink-soft);
	font-family: var(--bp-mono);
}

#body_wrap .post_content ul > li::marker { color: var(--bp-ink); }
#body_wrap .post_content ol > li::marker { color: var(--bp-ink); font-family: var(--bp-mono); font-weight: 600; }
#body_wrap .post_content blockquote {
	border: 1px solid rgba(13, 47, 110, .35);
	border-left: 4px solid var(--bp-ink);
	background: var(--bp-paper-2);
	color: var(--bp-text);
}
#body_wrap .post_content blockquote::before { color: var(--bp-ink-soft); }
#body_wrap .post_content table { border-collapse: collapse; }
#body_wrap .post_content table th {
	border: 1.5px solid var(--bp-ink);
	background: var(--bp-paper-2);
	color: var(--bp-ink);
	font-family: var(--bp-mono);
}
#body_wrap .post_content table td { border: 1px solid var(--bp-ink); background: #fff; color: var(--bp-text); }
#body_wrap .post_content code:not(pre code) {
	padding: .1em .4em;
	border: 1px solid rgba(13, 47, 110, .3);
	background: #fff;
	color: var(--bp-ink);
	font-family: var(--bp-mono);
}
#body_wrap .hcb_wrap pre { border: 1.5px solid var(--bp-ink); border-radius: 0; font-family: var(--bp-mono); }

/* 目次 = 部品表 BOM */
#body_wrap .p-toc {
	padding: 0;
	border: 1.5px solid var(--bp-ink);
	border-radius: 0;
	background: #fff;
	color: var(--bp-text);
}
#body_wrap .p-toc::before,
#body_wrap .p-toc::after { display: none; }
#body_wrap .p-toc__ttl {
	margin: 0;
	padding: .55em 1em;
	border-bottom: 1.5px solid var(--bp-ink);
	background: var(--bp-ink);
	color: #fff;
	font-family: var(--bp-mono);
	letter-spacing: .08em;
	text-align: left;
}
#body_wrap .p-toc__ttl::before { content: "BILL OF MATERIALS ／ "; color: #9ec5ff; font-family: var(--bp-mono); }
#body_wrap .p-toc__list { padding: .4em 1.2em 1em; }
#body_wrap .p-toc li { border-bottom: 1px dashed rgba(13, 47, 110, .3); }
#body_wrap .p-toc li li { border-bottom: none; }
#body_wrap .p-toc li a { color: var(--bp-text); text-decoration: none; }
#body_wrap .p-toc li a:hover { color: var(--bp-link); }
#body_wrap .p-toc li::before,
#body_wrap .p-toc li::marker { color: var(--bp-ink) !important; font-family: var(--bp-mono); font-weight: 600; }

/* 吹き出し */
#body_wrap .c-balloon .c-balloon__text {
	border: 1.5px solid var(--bp-ink);
	border-radius: 0;
	background: #fff;
	color: var(--bp-text);
}
#body_wrap .c-balloon .c-balloon__before { border-right-color: #fff; }
#body_wrap .c-balloon .c-balloon__after { border-right-color: var(--bp-ink); }
#body_wrap .c-balloon__icon img { border: 1.5px solid var(--bp-ink); background: #fff; }
#body_wrap .c-balloon__iconName { color: var(--bp-ink-soft); font-family: var(--bp-mono); }

/* 賢威の囲みボックス */
#body_wrap .box_style {
	--keni-box: var(--bp-ink);
	--keni-box-bg: #fff;
	border-width: 1.5px;
	color: var(--bp-text);
}
#body_wrap .box_style_green  { --keni-box: #1b6e4f; --keni-box-bg: #f2faf6; }
#body_wrap .box_style_blue   { --keni-box: #1652b8; --keni-box-bg: #f0f5fd; }
#body_wrap .box_style_red    { --keni-box: #b3132b; --keni-box-bg: #fdf3f4; }
#body_wrap .box_style_orange,
#body_wrap .box_style_yellow { --keni-box: #9a5b00; --keni-box-bg: #fdf8ec; }
#body_wrap .box_style_pink   { --keni-box: #9b2c6f; --keni-box-bg: #fcf3f8; }
#body_wrap .box_style_gray   { --keni-box: #4a5a75; --keni-box-bg: #f5f7fa; }
#body_wrap .box_style_title_inner { font-family: var(--bp-mono); letter-spacing: .04em; }
#body_wrap .box_style_title_inner::before { content: "PART — "; opacity: .75; }

/* ブログカード = 参照図面 */
#body_wrap .p-blogCard__inner {
	border: 1.5px solid var(--bp-ink);
	border-radius: 0;
	background: var(--bp-corners), #fff;
	box-shadow: 5px 5px 0 rgba(13, 47, 110, .18);
	transition: transform .15s, box-shadow .15s;
}
#body_wrap .p-blogCard:hover .p-blogCard__inner { transform: translate(-2px, -2px); box-shadow: 7px 7px 0 rgba(13, 47, 110, .25); }
#body_wrap .p-blogCard__caption {
	border-radius: 0;
	background: var(--bp-ink) !important;
	color: #fff !important;
	font-family: var(--bp-mono);
	letter-spacing: .06em;
}
#body_wrap .p-blogCard__caption::before { content: "REF. "; color: #9ec5ff; }
#body_wrap .p-blogCard__title { color: var(--bp-ink); }
#body_wrap .p-blogCard__excerpt { color: var(--bp-ink-soft); }
#body_wrap .p-blogCard__thumb img { border: 1px solid rgba(13, 47, 110, .3); }

/* CTA = 承認スタンプ */
#body_wrap .item-box02 {
	position: relative;
	border: 2px solid var(--bp-ink);
	border-radius: 0;
	background: var(--bp-corners), var(--bp-paper-grid), #fff;
	box-shadow: 6px 6px 0 rgba(13, 47, 110, .2);
}
#body_wrap .item-box02::after {
	content: "承認\A APPROVED";
	white-space: pre;
	position: absolute;
	top: 14px;
	right: 18px;
	padding: .35em .7em;
	border: 3px double var(--bp-red);
	border-radius: 6px;
	color: var(--bp-red);
	font: 700 13px/1.25 var(--bp-mono);
	letter-spacing: .12em;
	text-align: center;
	opacity: .82;
	transform: rotate(-12deg);
	pointer-events: none;
}
#body_wrap .item-box_title { color: var(--bp-ink); padding: 0 7.5em 0 0; text-align: left; }
#body_wrap .item-box_thumb img { border: 1.5px solid var(--bp-ink); }
#body_wrap .item-data { color: var(--bp-text); }
#body_wrap .post_content a.btn,
#body_wrap .post_content a.btn_orange {
	border: 2px solid var(--bp-ink);
	border-radius: 0;
	background: var(--bp-ink);
	box-shadow: 4px 4px 0 rgba(13, 47, 110, .3);
	color: #fff;
	font-family: var(--bp-jp);
	letter-spacing: .04em;
	text-decoration: none;
}
#body_wrap .post_content a.btn::after { content: "  →"; font-family: var(--bp-mono); }
#body_wrap .post_content a.btn:hover { background: #fff; color: var(--bp-ink); opacity: 1; }

/* シェアボタン */
#body_wrap .c-shareBtns__btn {
	border: 1.5px solid var(--bp-ink);
	border-radius: 0;
	background: #fff !important;
	color: var(--bp-ink) !important;
}
#body_wrap .c-shareBtns__btn:hover { background: var(--bp-ink) !important; color: #fff !important; }
#body_wrap .c-shareBtns.-fix .c-shareBtns__btn { border-color: var(--bp-line); background: var(--bp-blue-deep) !important; color: #fff !important; }
#body_wrap .c-shareBtns__message { color: var(--bp-ink-soft); font-family: var(--bp-mono); }

/* ---------- サイドバー（青地のまま、白線で描く） ---------- */
#body_wrap .l-sidebar { color: #fff; }
#body_wrap .c-widget__title.-side,
#body_wrap .c-widget__title.-footer {
	position: relative;
	padding: 0 0 .7em;
	border: none;
	background: none;
	color: #fff;
	font-family: var(--bp-mono);
	font-size: .95em;
	letter-spacing: .1em;
}
#body_wrap .c-widget__title.-side::before,
#body_wrap .c-widget__title.-footer::before {
	content: "";
	position: absolute;
	top: auto;
	bottom: 0;
	left: 0;
	z-index: 0;
	width: 100%;
	height: 9px;
	border-left: 1.5px solid var(--bp-line);
	border-right: 1.5px solid var(--bp-line);
	background: linear-gradient(var(--bp-line), var(--bp-line)) center / 100% 1px no-repeat;
}
#body_wrap .c-widget__title.-side::after,
#body_wrap .c-widget__title.-footer::after { display: none; }
#body_wrap .c-widget { color: #fff; }
#body_wrap .l-sidebar a,
#body_wrap .w-footer a { color: #cfe3ff; }
#body_wrap .l-sidebar img { border-color: #fff; }
#body_wrap .c-listMenu a {
	border: none !important;
	border-bottom: 1px dashed var(--bp-line-soft) !important;
	color: #fff !important;
	font-family: var(--bp-jp);
}
#body_wrap .c-listMenu .cat-post-count,
#body_wrap .c-listMenu a span { color: #9ec5ff; }
#body_wrap .c-listMenu a::before { border-color: #9ec5ff; }
#body_wrap .c-listMenu a:hover { background: rgba(255, 255, 255, .08); }
#body_wrap .c-searchForm__s {
	border: 1.5px solid var(--bp-line);
	border-radius: 0;
	background: rgba(255, 255, 255, .06);
	color: #fff;
	font-family: var(--bp-mono);
}
#body_wrap .c-searchForm__s::placeholder { color: rgba(255, 255, 255, .6); }
#body_wrap .c-searchForm__submit { border-radius: 0; background: #fff; color: var(--bp-ink); }

/* ---------- 記事一覧 = 図面シート ---------- */
#body_wrap .p-postList.-type-card .p-postList__item { padding: 0 10px; }
#body_wrap .p-postList__link {
	display: block;
	height: 100%;
	padding: 12px;
	border: 1.5px solid var(--bp-ink);
	background: var(--bp-corners), var(--bp-paper);
	box-shadow: 6px 6px 0 rgba(4, 22, 56, .45);
	color: var(--bp-text);
	transition: transform .15s, box-shadow .15s;
}
#body_wrap .p-postList__link:hover { transform: translate(-2px, -2px); box-shadow: 8px 8px 0 rgba(4, 22, 56, .55); }
#body_wrap .p-postList__thumb { border: 1px solid var(--bp-ink); }
#body_wrap .p-postList__body { padding: .9em .2em .2em; }
#body_wrap .p-postList__title { color: var(--bp-ink); }
#body_wrap .p-postList__excerpt { color: #3a4a66; }
#body_wrap .p-postList__meta { color: var(--bp-ink-soft); font-family: var(--bp-mono); }
#body_wrap .c-postThumb__cat {
	border-radius: 0;
	background: var(--bp-ink) !important;
	color: #fff !important;
	font-family: var(--bp-mono);
}

/* スライダー（青地の上に白線の図面） */
#body_wrap .p-postSlider { background: transparent; border-bottom: 1px dashed var(--bp-line-soft); }
#body_wrap .p-postSlider .p-postList__link {
	padding: 0;
	border: 1.5px solid var(--bp-line);
	background: transparent;
	box-shadow: none;
	color: #fff;
}
#body_wrap .p-postSlider .p-postList__thumb { border: none; border-bottom: 1.5px solid var(--bp-line); }
#body_wrap .p-postSlider .p-postList__body { padding: .7em .8em .8em; }
#body_wrap .p-postSlider .p-postList__title { color: #fff; }
#body_wrap .swiper-pagination-bullet { background: rgba(255, 255, 255, .5); }
#body_wrap .swiper-pagination-bullet-active { background: #fff; }

#body_wrap .c-pagination a,
#body_wrap .c-pagination span {
	border: 1.5px solid var(--bp-line);
	border-radius: 0;
	background: transparent;
	color: #fff;
	font-family: var(--bp-mono);
}
#body_wrap .c-pagination .-current { background: #fff; color: var(--bp-ink); }

/* ---------- 記事下 ---------- */
#body_wrap .c-secTitle,
#body_wrap .l-articleBottom__title {
	border: none;
	border-bottom: 1.5px solid var(--bp-ink);
	padding: 0 0 .4em;
	color: var(--bp-ink);
	font-family: var(--bp-mono);
	letter-spacing: .06em;
}
#body_wrap .c-secTitle::before { content: "§ "; color: var(--bp-ink-soft); }
#body_wrap .p-pnLinks__link,
#body_wrap .p-authorBox {
	border: 1.5px solid var(--bp-ink);
	border-radius: 0;
	background: #fff;
	color: var(--bp-text);
}
#body_wrap .p-pnLinks__link::before { border-color: var(--bp-ink); }
#body_wrap .p-authorBox__name { color: var(--bp-ink); font-family: var(--bp-mono); }
#body_wrap .p-authorBox__desc { color: var(--bp-text); }

/* ---------- フッター = 表題欄 ---------- */
#body_wrap .w-beforeFooter { background: transparent; color: #fff; }
#body_wrap .l-footer {
	border-top: 2px solid var(--bp-line);
	background: var(--bp-grid), var(--bp-blue-deep);
	color: #fff;
}
#body_wrap .l-footer__foot {
	position: relative;
	padding-top: 0;
	background: transparent;
	font-family: var(--bp-mono);
}
#body_wrap .l-footer__foot .l-container {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	max-width: 900px;
	margin: 0 auto 28px;
	padding: 0;
	border: 2px solid var(--bp-line);
}
#body_wrap .l-footer__foot .l-container::before {
	content: "図番  DWG. NO.\A PRT-2026-AI";
	white-space: pre;
	grid-column: 1 / 3;
	padding: .6em .9em;
	border-right: 1px solid var(--bp-line);
	border-bottom: 1px solid var(--bp-line);
	font-size: 12px;
	line-height: 1.6;
	letter-spacing: .08em;
}
#body_wrap .l-footer__foot .l-container::after {
	content: "尺度 SCALE  1 : 1\A 作成 DRAWN  MITSUKI";
	white-space: pre;
	grid-column: 3 / 5;
	grid-row: 1;
	padding: .6em .9em;
	border-bottom: 1px solid var(--bp-line);
	font-size: 12px;
	line-height: 1.6;
	letter-spacing: .08em;
}
#body_wrap .l-footer__foot .l-container > * { grid-column: 1 / -1; margin: 0; padding: .7em .9em; text-align: center; }
#body_wrap .l-footer__nav a { color: #fff; }
#body_wrap .copyright { color: rgba(255, 255, 255, .85); letter-spacing: .06em; }

/* ---------- スマホメニュー・固定ボタン ---------- */
#body_wrap .p-spMenu__inner { background: var(--bp-grid), var(--bp-blue-deep); color: #fff; }
#body_wrap .c-fixBtn {
	border: 1.5px solid var(--bp-line);
	border-radius: 0;
	background: var(--bp-blue-deep);
	color: #fff;
}

@media (max-width: 959px) {
	#body_wrap.single .l-mainContent__inner,
	#body_wrap.page .l-mainContent__inner { padding: 40px 18px 28px; box-shadow: 0 0 0 1px var(--bp-ink); }
	#body_wrap .item-box_title { padding: 2.6em 0 0; }
}

/* ---------- 青地の上の本文・ウィジェット（404・アーカイブ説明・フッター前） ---------- */
#body_wrap:not(.single):not(.page) .post_content { color: #fff; }
#body_wrap:not(.single):not(.page) .post_content a,
#body_wrap .w-beforeFooter a,
#body_wrap .l-footer a { color: #cfe3ff; }
#body_wrap .w-beforeFooter .c-widget__title,
#body_wrap .l-footer .c-widget__title {
	padding: 0 0 .5em;
	border: none;
	border-bottom: 1.5px solid var(--bp-line);
	background: none;
	color: #fff;
}
#body_wrap .w-beforeFooter .c-widget__title::before,
#body_wrap .w-beforeFooter .c-widget__title::after,
#body_wrap .l-footer .c-widget__title::before,
#body_wrap .l-footer .c-widget__title::after { display: none; }
#body_wrap .is-style-more_btn a {
	border: 1.5px solid var(--bp-line);
	border-radius: 0;
	background: transparent;
	color: #fff !important;
	font-family: var(--bp-mono);
	text-decoration: none;
}
#body_wrap .is-style-more_btn a:hover { background: #fff; color: var(--bp-ink) !important; }


/* ==========================================================
   魔導の上書き（ここから下が魔法学校の要素）
   ========================================================== */

#body_wrap {
	/* 夜の青焼き＋金のインク、紙は羊皮紙寄りのトレーシングペーパー */
	--bp-blue: #0e2350;
	--bp-blue-deep: #0a1a3d;
	--bp-line: rgba(233, 206, 128, .85);
	--bp-line-soft: rgba(233, 206, 128, .32);
	--bp-paper: #f7f1e1;
	--bp-paper-2: #efe5cb;
	--bp-ink: #1b2d5c;
	--bp-ink-soft: #5a6a8f;
	--bp-text: #222a3f;
	--bp-link: #2343a8;
	--bp-red: #9e1b25;
	--ar-gold: #e9ce80;
	--ar-gold-deep: #9a7414;
	--ar-warm: #f6ecd2;
	--ar-serif: "Shippori Mincho B1", "Yu Mincho", serif;
	/* 英字ラベルは Cinzel（日本語は明朝へフォールバック）。コードは下で等幅に戻す */
	--bp-mono: "Cinzel", "Shippori Mincho B1", serif;
	--ar-code: "IBM Plex Mono", ui-monospace, monospace;

	--bp-grid:
		linear-gradient(rgba(233, 206, 128, .13) 1px, transparent 1px) 0 0 / 100px 100px,
		linear-gradient(90deg, rgba(233, 206, 128, .13) 1px, transparent 1px) 0 0 / 100px 100px,
		linear-gradient(rgba(233, 206, 128, .05) 1px, transparent 1px) 0 0 / 20px 20px,
		linear-gradient(90deg, rgba(233, 206, 128, .05) 1px, transparent 1px) 0 0 / 20px 20px;
	--bp-paper-grid:
		linear-gradient(rgba(27, 45, 92, .055) 1px, transparent 1px) 0 0 / 24px 24px,
		linear-gradient(90deg, rgba(27, 45, 92, .055) 1px, transparent 1px) 0 0 / 24px 24px;

	/* 四隅のトンボを小さな魔法陣に */
	--ar-sigil: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%231b2d5c' stroke-width='1'%3E%3Ccircle cx='10' cy='10' r='9'/%3E%3Ccircle cx='10' cy='10' r='6.2'/%3E%3Cpath d='M10 3.8 15.4 13.1H4.6Z'/%3E%3C/svg%3E");
	--bp-corners:
		var(--ar-sigil) left 7px top 7px / 16px 16px no-repeat,
		var(--ar-sigil) right 7px top 7px / 16px 16px no-repeat,
		var(--ar-sigil) left 7px bottom 7px / 16px 16px no-repeat,
		var(--ar-sigil) right 7px bottom 7px / 16px 16px no-repeat;
	/* 大きな魔法陣（ヘッダー・フッターの透かし） */
	--ar-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23e9ce80' stroke-width='.8'%3E%3Ccircle cx='100' cy='100' r='97'/%3E%3Ccircle cx='100' cy='100' r='86'/%3E%3Ccircle cx='100' cy='100' r='42'/%3E%3Cpath d='M100 14 174.5 143H25.5Z M100 186 25.5 57H174.5Z'/%3E%3Cpath d='M100 3V14 M100 186V197 M3 100H14 M186 100H197' stroke-width='2'/%3E%3C/svg%3E");
	--ar-circle-faint: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200' fill='none' stroke='%23e9ce80' stroke-opacity='.22' stroke-width='.8'%3E%3Ccircle cx='100' cy='100' r='97'/%3E%3Ccircle cx='100' cy='100' r='86'/%3E%3Ccircle cx='100' cy='100' r='42'/%3E%3Cpath d='M100 14 174.5 143H25.5Z M100 186 25.5 57H174.5Z'/%3E%3C/svg%3E");
	/* 金の四芒星 */
	--ar-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 0 12 8 20 10 12 12 10 20 8 12 0 10 8 8Z' fill='%239a7414'/%3E%3C/svg%3E");

	background: var(--bp-grid), var(--bp-blue);
}
body { background: #0e2350; }
#body_wrap ::selection { background: var(--ar-gold); color: var(--bp-ink); }

/* コード類は等幅に戻す */
#body_wrap .post_content code:not(pre code),
#body_wrap .hcb_wrap pre { font-family: var(--ar-code); }

/* ---------- ヘッダー：金の線と魔法陣の透かし ---------- */
#body_wrap .l-header {
	position: relative;
	overflow: hidden;
	background: var(--ar-circle-faint) left 230px center / 220px 220px no-repeat, var(--bp-blue-deep);
}
#body_wrap .l-header__bar { background: #071331; }
#body_wrap .c-catchphrase { color: rgba(246, 236, 210, .85); }
#body_wrap .c-catchphrase::before { content: "✦ "; color: var(--ar-gold); }
#body_wrap .c-headLogo__link {
	border-color: var(--ar-gold);
	color: var(--ar-warm);
	font-family: var(--ar-serif);
	text-shadow: 0 0 10px rgba(233, 206, 128, .45);
}
#body_wrap .c-headLogo__link::before { content: "ARCANUM · DWG. I"; color: var(--ar-gold); border-bottom-color: var(--bp-line-soft); }
#body_wrap .c-gnav > li > a { color: var(--ar-warm); font-family: var(--bp-mono); letter-spacing: .06em; }
#body_wrap .c-gnav > li > a::after { background: var(--ar-gold); }
#body_wrap .c-gnav > li > a:hover { color: var(--ar-gold); }
#body_wrap .p-breadcrumb__list::before { content: "VIA /"; color: var(--ar-gold); }
#body_wrap .p-breadcrumb__text { color: var(--ar-warm); }

/* ---------- 紙面 ---------- */
#body_wrap.single .l-mainContent__inner,
#body_wrap.page .l-mainContent__inner {
	background:
		var(--bp-corners),
		radial-gradient(ellipse at 15% 10%, rgba(176, 140, 60, .10), transparent 45%),
		radial-gradient(ellipse at 90% 85%, rgba(176, 140, 60, .12), transparent 50%),
		var(--bp-paper-grid),
		var(--bp-paper);
	box-shadow: 0 0 0 1px var(--bp-ink), 0 0 0 5px var(--bp-paper), 0 0 0 6px var(--ar-gold-deep), 10px 10px 0 4px rgba(3, 10, 28, .5);
}
#body_wrap.single .l-mainContent__inner::before,
#body_wrap.page .l-mainContent__inner::before { content: "SHEET I — ARCANE SCHEMATIC"; color: var(--ar-gold-deep); }

#body_wrap .c-postTitle__ttl { font-family: var(--ar-serif); letter-spacing: .02em; }
#body_wrap .c-postTitle__ttl::before { content: "TITULUS · 表題"; color: var(--ar-gold-deep); }
#body_wrap .c-postTitle__date { font-family: var(--ar-serif); }
#body_wrap .c-prNotation { background: rgba(233, 206, 128, .22) !important; }

/* アイキャッチ：金の額縁 */
#body_wrap .p-articleThumb { border: 3px double var(--ar-gold-deep); background: var(--bp-paper); }
#body_wrap .p-articleThumb::after { content: "FIG. I"; background: var(--bp-ink); color: var(--ar-gold); }

/* ---------- 本文 ---------- */
/* 冒頭の段落にドロップキャップ（藍の枠に金の文字） */
#body_wrap.single .post_content > p:first-of-type::first-letter {
	float: left;
	margin: .08em .45em 0 0;
	padding: .12em .24em;
	border: 1.5px solid var(--ar-gold-deep);
	background: var(--bp-ink);
	color: var(--ar-gold);
	font: 700 2.6em/1 var(--ar-serif);
	box-shadow: inset 0 0 0 3px var(--bp-ink), inset 0 0 0 4px var(--ar-gold);
}

/* h2：寸法線の矢印を金の星に、番号をローマ数字に */
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title)) { font-family: var(--ar-serif); }
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::before {
	background:
		var(--ar-star) left -1px center / 14px 14px no-repeat,
		var(--ar-star) right -1px center / 14px 14px no-repeat,
		linear-gradient(var(--bp-ink), var(--bp-ink)) center / calc(100% - 26px) 1.5px no-repeat;
	border-left-color: var(--ar-gold-deep);
	border-right-color: var(--ar-gold-deep);
}
#body_wrap .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title))::after {
	content: "CAP. " counter(bp-h2, upper-roman);
	border: 1px solid var(--ar-gold-deep);
	box-shadow: inset 0 0 0 2px var(--bp-paper), inset 0 0 0 3px var(--ar-gold-deep);
	padding: 3px 10px;
	color: var(--bp-ink);
	font-weight: 700;
}
/* h3：二重の円 */
#body_wrap .post_content h3:where(:not([class^="swell-block-"])) { font-family: var(--ar-serif); }
#body_wrap .post_content h3:where(:not([class^="swell-block-"]))::before {
	border-color: var(--ar-gold-deep);
	box-shadow: inset 0 0 0 3px var(--bp-paper), inset 0 0 0 4px var(--ar-gold-deep);
	color: var(--bp-ink);
	font-weight: 700;
}
#body_wrap .post_content h4:where(:not([class^="swell-block-"]))::before { content: "✦ "; color: var(--ar-gold-deep); }
#body_wrap .post_content ul > li::marker { content: "✧ "; color: var(--ar-gold-deep); }
#body_wrap .post_content strong,
#body_wrap .post_content b { background: linear-gradient(transparent 60%, rgba(233, 206, 128, .55) 0); }

/* 目次：魔導書の索引 */
#body_wrap .p-toc { border: 1.5px solid var(--bp-ink); box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px var(--ar-gold-deep); }
#body_wrap .p-toc__ttl { background: var(--bp-ink); color: var(--ar-warm); font-family: var(--ar-serif); }
#body_wrap .p-toc__ttl::before { content: "GRIMOIRE INDEX ／ "; color: var(--ar-gold); font-family: var(--bp-mono); }

/* 吹き出し・ボックス・ブログカード */
#body_wrap .c-balloon .c-balloon__text { background: #fffdf6; box-shadow: 3px 3px 0 rgba(154, 116, 20, .25); }
#body_wrap .c-balloon .c-balloon__before { border-right-color: #fffdf6; }
#body_wrap .c-balloon__icon img { border-color: var(--ar-gold-deep); }
#body_wrap .box_style { --keni-box-bg: #fffdf6; }
#body_wrap .box_style_title_inner { font-family: var(--ar-serif); }
#body_wrap .box_style_title_inner::before { content: "✦ "; opacity: 1; color: var(--ar-gold); }
#body_wrap .p-blogCard__inner { background: var(--bp-corners), #fffdf6; box-shadow: 5px 5px 0 rgba(154, 116, 20, .22); }
#body_wrap .p-blogCard__caption::before { content: "✦ REF. "; color: var(--ar-gold); }

/* CTA：承認スタンプ → 赤い封蝋 */
#body_wrap .item-box02 { background: var(--bp-corners), var(--bp-paper-grid), #fffdf6; box-shadow: 0 0 0 4px #fffdf6, 0 0 0 5px var(--ar-gold-deep), 8px 8px 0 4px rgba(27, 45, 92, .18); }
#body_wrap .item-box02::after {
	content: "承認";
	display: grid;
	place-items: center;
	width: 74px;
	height: 74px;
	padding: 0;
	border: none;
	border-radius: 50% 47% 52% 48%;
	background: radial-gradient(circle at 35% 30%, #c8333d, #8e1620 55%, #5e0c13);
	box-shadow: inset 0 0 0 5px rgba(0, 0, 0, .12), inset 0 0 0 7px rgba(255, 210, 160, .25), 2px 3px 6px rgba(0, 0, 0, .3);
	color: #f6dca8;
	font: 700 17px/1 var(--ar-serif);
	letter-spacing: .1em;
	opacity: 1;
	transform: rotate(-10deg);
}
#body_wrap .item-box_title { font-family: var(--ar-serif); }
#body_wrap .post_content a.btn,
#body_wrap .post_content a.btn_orange {
	border: 1.5px solid var(--ar-gold-deep);
	background: var(--bp-ink);
	box-shadow: inset 0 0 0 3px var(--bp-ink), inset 0 0 0 4px var(--ar-gold), 4px 4px 0 rgba(27, 45, 92, .3);
	color: var(--ar-warm);
	font-family: var(--ar-serif);
}
#body_wrap .post_content a.btn::after { content: "  ✦"; color: var(--ar-gold); font-family: inherit; }
#body_wrap .post_content a.btn:hover { background: #fffdf6; color: var(--bp-ink); }

/* ---------- サイドバー・一覧 ---------- */
#body_wrap .l-sidebar,
#body_wrap .c-widget,
#body_wrap .c-widget__title.-side,
#body_wrap .c-widget__title.-footer { color: var(--ar-warm); }
#body_wrap .c-widget__title.-side,
#body_wrap .c-widget__title.-footer { font-family: var(--ar-serif); }
#body_wrap .l-sidebar a,
#body_wrap .w-footer a { color: #f0dda3; }
#body_wrap .c-listMenu a { color: var(--ar-warm) !important; }
#body_wrap .c-listMenu .cat-post-count,
#body_wrap .c-listMenu a span,
#body_wrap .c-listMenu a::before { color: var(--ar-gold); border-color: var(--ar-gold); }
#body_wrap .c-searchForm__submit { background: var(--ar-gold) !important; color: var(--bp-ink); }
#body_wrap .p-postList__link { padding: 26px 22px 22px; background: var(--bp-corners), var(--bp-paper); box-shadow: 0 0 0 3px var(--bp-paper), 0 0 0 4px var(--ar-gold-deep), 7px 7px 0 3px rgba(3, 10, 28, .5); }
#body_wrap .p-postList__title { font-family: var(--ar-serif); }
#body_wrap .c-postThumb__cat { background: var(--bp-ink) !important; color: var(--ar-gold) !important; }
#body_wrap .p-postSlider .p-postList__link { box-shadow: none; }
#body_wrap .p-postSlider .p-postList__title { color: var(--ar-warm); }
#body_wrap .swiper-pagination-bullet-active { background: var(--ar-gold); }
#body_wrap .c-pagination a,
#body_wrap .c-pagination span { color: var(--ar-warm); }
#body_wrap .c-pagination .-current { background: var(--ar-gold); color: var(--bp-ink); }

/* ---------- 記事下・フッター ---------- */
#body_wrap .c-secTitle,
#body_wrap .l-articleBottom__title { font-family: var(--ar-serif); }
#body_wrap .c-secTitle::before { content: "✦ "; color: var(--ar-gold-deep); }
#body_wrap .l-footer { background: var(--ar-circle-faint) left 8% center / 300px 300px no-repeat, var(--bp-grid), var(--bp-blue-deep); color: var(--ar-warm); }
#body_wrap .l-footer__foot .l-container::before { content: "図番  DWG. NO.\A ARC-MMXXVI"; }
#body_wrap .l-footer__foot .l-container::after { content: "尺度 SCALE  1 : ∞\A 作成 DRAWN  MITSUKI"; }
#body_wrap .copyright { color: rgba(246, 236, 210, .85); }
#body_wrap .w-beforeFooter,
#body_wrap .w-beforeFooter .c-widget__title,
#body_wrap .l-footer .c-widget__title { color: var(--ar-warm); }

@media (prefers-reduced-motion: no-preference) {
	#body_wrap .c-headLogo__link { animation: ar-glow 4s ease-in-out infinite; }
}
@keyframes ar-glow { 50% { text-shadow: 0 0 16px rgba(233, 206, 128, .7); } }

/* ---------- スマホ：封蝋を小さくしてCTAタイトルと重ならないように ---------- */
@media (max-width: 959px) {
	#body_wrap .item-box02::after {
		top: 10px;
		right: 10px;
		width: 52px;
		height: 52px;
		font-size: 13px;
	}
	#body_wrap .item-box_title { padding: .3em 58px 0 0; }
}

/* ---------- キャッチフレーズ帯：SWELL標準の「幅50%・1行・はみ出しは非表示」をやめて全文表示 ---------- */
#body_wrap .l-header__bar .c-catchphrase {
	flex: 1 1 auto;
	width: auto;
	padding: 5px 1em 5px 0;
	overflow: visible;
	white-space: normal;
	line-height: 1.5;
}
#body_wrap .l-header__bar .c-iconList { flex: 0 0 auto; display: flex; flex-wrap: nowrap; }

/* ---------- 目次の「もっと見る」：枠の内側に収める ---------- */
#body_wrap .p-toc { padding-bottom: 1.2em; }
#body_wrap .p-toc .p-toc__expandBtn { margin: .4em auto 0; border-color: var(--bp-ink); background: #fffdf6; color: var(--bp-ink); font-family: var(--ar-serif); }
#body_wrap .p-toc.is-omitted:not([data-omit=nest])::before,
#body_wrap .p-toc.is-omitted:not([data-omit=nest])::after { display: none; }

/* ---------- Rinker：本文用のリンク装飾・箇条書きの印を当てない ---------- */
#body_wrap .post_content .yyi-rinker-contents li { list-style: none; }
#body_wrap .post_content .yyi-rinker-contents li::marker { content: none; }
#body_wrap .post_content .yyi-rinker-contents a { text-decoration: none; }
#body_wrap .post_content .yyi-rinker-contents .yyi-rinker-title a { color: var(--bp-ink); }
#body_wrap .post_content .yyi-rinker-contents .yyi-rinker-links a { color: #fff; }
#body_wrap .post_content .yyi-rinker-contents .yyi-rinker-links a:hover { color: #fff; opacity: .85; }
