/* =============================================================================
   Navigator — Print stylesheet
   ----------------------------------------------------------------------------
   Optimises article printing:
   - Strip chrome (header, footer, sidebar, sticky nav, CTAs, ads, drawers, FAB)
   - Black-on-white for ink savings
   - Expand collapsed regions; remove animations
   - Print link URLs as footnotes via `a[href]::after`
   - A4 portrait page-break heuristics
   - Keep figure/heading pairs together
   - Hide injected widgets (W3 Total Cache toolbar, etc.)
   ========================================================================== */

@media print {
	/* ----- 1. Page setup ----- */
	@page {
		size: A4 portrait;
		margin: 18mm 14mm 22mm;
	}

	html, body {
		background: #fff !important;
		color: #000 !important;
		font-size: 11pt !important;
		line-height: 1.55 !important;
		font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN",
		             "Yu Gothic", Meiryo, sans-serif !important;
		-webkit-print-color-adjust: economy;
		print-color-adjust: economy;
	}

	/* ----- 2. Strip site chrome ----- */
	.site-header,
	.site-footer,
	.wn-header-banner,
	.wn-footer-signal,
	.wn-footer-meta,
	.wn-utility-bar,
	.wn-side-sticky,
	.wn-sidebar,
	#secondary,
	.sidebar,
	aside.widget-area,
	.wn-mobile-bottom-nav,
	.wn-sos-fab,
	.mobile-drawer,
	.wn-exit-modal,
	.wn-progress-bar,
	.wn-related,
	.wn-share,
	.wn-share-fixed,
	.wn-share-floating,
	.wn-cta,
	.wn-cta-finale,
	.wn-cta-emergency,
	.wn-services,
	.wn-voices,
	.wn-pricing,
	.wn-guarantees,
	.wn-exit-modal,
	#wpadminbar,
	.toc-collapse,
	.skip-link,
	.wp-block-search,
	.wn-search-form,
	form#searchform,
	.breadcrumb,
	.breadcrumbs,
	.wn-breadcrumb,
	.wn-meta-line button,
	.no-print {
		display: none !important;
	}

	/* ----- 3. Layout reset for body content ----- */
	.site,
	.site-content,
	main,
	.post-single,
	.post-single__inner,
	.post-single__content,
	.entry-content,
	article,
	.wn-wrap,
	.wn-wrap-narrow {
		display: block !important;
		float: none !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		box-shadow: none !important;
		background: none !important;
	}

	/* ----- 4. Decoration kill ----- */
	*,
	*::before,
	*::after {
		background: transparent !important;
		background-image: none !important;
		text-shadow: none !important;
		box-shadow: none !important;
		filter: none !important;
		animation: none !important;
		transition: none !important;
		mix-blend-mode: normal !important;
	}

	/* ----- 5. Typography ----- */
	h1, h2, h3, h4, h5, h6 {
		color: #000 !important;
		page-break-after: avoid;
		break-after: avoid;
	}
	/* 2026-05-22 コンパクト化 (Option A 連動: h1=20pt/h2=15pt/h3=12pt/h4=11pt/h5=10pt/h6=9.5pt) */
	h1 { font-size: 20pt !important; margin-top: 0 !important; }
	h2 { font-size: 15pt !important; margin: 18pt 0 8pt !important; }
	h3 { font-size: 12pt !important; margin: 14pt 0 6pt !important; }
	h4 { font-size: 11pt   !important; margin: 10pt 0 4pt !important; }
	h5 { font-size: 10pt   !important; margin: 9pt  0 3pt !important; }
	h6 { font-size: 9.5pt  !important; margin: 8pt  0 3pt !important; }

	p, li {
		orphans: 3;
		widows: 3;
	}

	/* Keep figure + caption together */
	figure, blockquote, table, pre, .wp-block-image {
		page-break-inside: avoid;
		break-inside: avoid;
	}

	img {
		max-width: 100% !important;
		height: auto !important;
		page-break-inside: avoid;
	}

	pre, code {
		background: #f4f4f4 !important;
		color: #000 !important;
		border: 1px solid #ccc !important;
		font-size: 9pt !important;
		line-height: 1.4 !important;
		page-break-inside: avoid;
	}

	pre {
		padding: 8pt !important;
		white-space: pre-wrap !important;
		word-wrap: break-word !important;
	}

	/* ----- 6. Link URLs as footnotes ----- */
	a, a:visited {
		color: #000 !important;
		text-decoration: underline !important;
	}

	/* External / absolute links get their URL appended in parens */
	a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 9pt;
		color: #555;
		word-break: break-all;
	}

	/* Hide URL for anchors and javascript links */
	a[href^="#"]::after,
	a[href^="javascript:"]::after,
	a[href^="mailto:"]::after,
	a[href^="tel:"]::after {
		content: "" !important;
	}

	/* Don't duplicate URL if link text is already the URL */
	a[href^="http"]:where([data-print-url-hide])::after { content: "" !important; }

	/* ----- 7. Print-only branding ----- */
	.post-single__title,
	h1.wn-hero-title,
	h1.post-title {
		border-bottom: 2pt solid #000 !important;
		padding-bottom: 6pt !important;
		margin-bottom: 12pt !important;
	}

	.post-single__inner::before {
		content: "WEB先案内 ITブログ — web-navigator.blog";
		display: block;
		font-size: 9pt;
		color: #555;
		margin-bottom: 6pt;
		letter-spacing: .04em;
	}

	/* Footer URL marker on every page */
	@page :first { margin-top: 22mm; }
	@page :left  { @bottom-left  { content: "WEB先案内 ITブログ"; font-size: 8pt; color: #888; } }
	@page :right { @bottom-right { content: counter(page); font-size: 8pt; color: #888; } }

	/* ----- 8. TOC simplification ----- */
	.wn-toc,
	.toc-container,
	.post-single__toc {
		border: 1pt solid #ccc !important;
		padding: 8pt !important;
		margin: 12pt 0 !important;
		page-break-inside: avoid;
	}

	/* ----- 9. Author profile card minimal ----- */
	.wn-author-card,
	.wn-profile {
		border: 1pt solid #ccc !important;
		padding: 8pt !important;
		page-break-inside: avoid;
	}

	/* ----- 10. Embeds → URL only ----- */
	iframe, embed, object, video, .wp-embedded-content {
		display: none !important;
	}
	iframe::after,
	.wp-embedded-content::after {
		content: "[埋め込みコンテンツ — 印刷では非表示]";
		display: block;
		font-size: 9pt;
		color: #888;
	}

	/* ----- 11. wn-callout simplified ----- */
	.wn-callout {
		border: 1pt solid #999 !important;
		padding: 6pt 8pt !important;
		page-break-inside: avoid;
	}

	/* ----- 12. wn/speech ブロック印刷最適化(2026-05-26 追加) -----
	   独自のカスタムブロック。画面ではアバター付き吹き出しだが、紙では
	   「話者名: 発言内容」というインタビュー記事形式に変換し、
	   キャラ画像は省く(白黒では情報量にならない)。 */
	.wp-block-wn-speech,
	.wn-speech {
		display: block !important;
		margin: 8pt 0 !important;
		padding: 6pt 8pt 6pt 12pt !important;
		border-left: 2pt solid #333 !important;
		border-radius: 0 !important;
		background: transparent !important;
		page-break-inside: avoid;
	}
	.wn-speech__avatar,
	.wn-speech__image,
	.wn-speech__bubble-tail {
		display: none !important;
	}
	.wn-speech__name {
		display: inline !important;
		font-weight: 700 !important;
		color: #000 !important;
		margin-right: .5em !important;
	}
	.wn-speech__name::after {
		content: ":";
		margin-right: .25em;
	}
	.wn-speech__text {
		display: inline !important;
		font-style: italic !important;
	}

	/* ----- 13. 表(table)の罫線復活 -----
	   §4 で *::before/after を含む装飾を全部消したため、表が罫線ナシで
	   読みにくくなる。データ系コンテンツは表で示すケースが多いので
	   印刷時は明示的に黒線を復活。 */
	table {
		width: 100% !important;
		border-collapse: collapse !important;
		font-size: 9.5pt !important;
		page-break-inside: avoid;
		margin: 8pt 0 !important;
	}
	th, td {
		border: 0.5pt solid #000 !important;
		padding: 4pt 6pt !important;
		text-align: left !important;
		vertical-align: top !important;
	}
	th {
		background: #f0f0f0 !important;
		font-weight: 700 !important;
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}

	/* ----- 14. 引用ブロック ----- */
	blockquote,
	.wp-block-quote {
		border-left: 3pt solid #555 !important;
		padding: 4pt 0 4pt 10pt !important;
		margin: 8pt 0 !important;
		color: #333 !important;
		font-style: italic !important;
	}
	blockquote cite,
	.wp-block-quote cite {
		display: block;
		margin-top: 4pt;
		font-size: 9pt;
		font-style: normal;
		color: #666;
	}

	/* ----- 15. 数字 stat 強調維持 -----
	   stat-num の数字ジャンプ率は印刷でも有効な視覚要素なので残す。 */
	.stat-num,
	.wn-stat-num {
		font-size: 24pt !important;
		font-weight: 900 !important;
		color: #000 !important;
		line-height: 1 !important;
	}
	.stat-label,
	.wn-stat-label {
		font-size: 9pt !important;
		color: #555 !important;
	}

	/* ----- 16. 図表キャプション ----- */
	figcaption,
	.wp-block-image figcaption {
		font-size: 9pt !important;
		font-style: italic !important;
		color: #555 !important;
		margin-top: 2pt !important;
		text-align: center !important;
	}

	/* ----- 17. 連載シリーズナビ印刷時に簡素化 ----- */
	.wn-series-nav {
		border: 1pt solid #ccc !important;
		padding: 6pt 8pt !important;
		margin: 10pt 0 !important;
		font-size: 9.5pt !important;
		page-break-inside: avoid;
	}
}
