*{
	box-sizing:border-box;
}html{
	scroll-behavior:smooth;-webkit-text-size-adjust:100%;
}body{
	margin:0;padding:20px 12px;background:#f7f9fa;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",Roboto,Arial,sans-serif;font-size:clamp(16px,1.2vw,18px);line-height:1.8;overflow-wrap:anywhere
}.container{
	width:min(100%,860px);margin:auto;padding:28px 34px;background:#fff;border-radius:8px;box-shadow:0 2px 12px #0001
}a{
	color:#0000ee;text-decoration:underline;text-underline-offset:2px
}a:visited{
	color:#551a8b;
}a:hover{
	color:#b22222;
}.title-area{
	margin-bottom:24px;
}.site-logo{
	width:160px;max-width:45vw;height:auto;margin:0 0 10px;
}h1{
	margin:8px 0 18px;padding-bottom:8px;border-bottom:2px solid #000080;color:#000080;font-size:clamp(1.45rem,3vw,1.85rem);line-height:1.4;
}h2{
	margin:38px 0 14px;padding:7px 10px;border-left:6px solid #c85a32;border-radius:0 4px 4px 0;background:#fdf5f2;color:#191970;font-size:clamp(1.2rem,2.5vw,1.5rem);line-height:1.45;
}h3{
	margin:26px 0 10px;padding-bottom:4px;border-bottom:1px dashed #bcc3ca;color:#000080;font-size:clamp(1.08rem,2vw,1.25rem)
}p{
	margin:0 0 1.1em;
}ul,ol{
	padding-left:1.5em;
}li{
	margin:.25em 0;
}img{
	display:block;max-width:100%;height:auto;margin:10px auto;border-radius:2px;
}.img-link{
	display:block;text-decoration:none;
}.caption{
	margin:.3rem 0 1rem;color:#666;text-align:center;font-size:.9rem;
}.card-block{
	margin:18px 0;padding:20px 22px;border:1px solid #dce2e8;border-radius:6px;background:#fafbfd;
}.callout-warn,.callout-danger{
	margin:16px 0;padding:12px 16px;
}.callout-warn{
	border-left:4px solid #f0a000;background:#fff9e6;
}.callout-danger{
	border-left:4px solid #d94332;background:#fdf0ed;
}.row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}.col-half{
	flex:1 1 340px;min-width:0;
}.toc-box{
	margin:20px 0;padding:15px 20px;border:1px solid #c9d5e2;border-radius:5px;background:#f0f4f8;
}.table-scroll{
	width:100%;margin:20px 0;overflow-x:auto;-webkit-overflow-scrolling:touch
}table.data-table{
	width:100%;min-width:520px;border-collapse:collapse;background:#fff;
}table.data-table th,table.data-table td{
	padding:8px 12px;border:1px solid #bcc3ca;vertical-align:top;font-size:.95rem;
}table.data-table th{
	background:#e9eef3;color:#191970;
}blockquote{
	margin:1em 0;padding:.5em 1em;border-left:4px solid #bcc3ca;background:#f7f8fa;
}hr{
	margin:28px 0;border:0;border-top:1px solid #d6d6d6;
}.to-top{
	margin:14px 0;text-align:right;font-size:.9rem;
}.social-share-area{
	margin:36px 0 20px;padding:16px 0;border-block:1px dashed #cbd5e1;text-align:center;
}.share-btn{
	display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 22px;border:0;border-radius:5px;background:#1877f2;color:#fff;font:inherit;font-weight:700;cursor:pointer;
}.share-btn:hover{
	background:#166fe5;color:#fff;
}.footer{
	margin-top:44px;padding-top:16px;border-top:1px solid #ccc;color:#555;font-size:.9rem;
}@media(max-width:650px){body{
	padding:0;background:#fff;
}.container{
	padding:16px 14px;border-radius:0;box-shadow:none;
}.card-block{
	padding:15px 14px;
}h2{
	margin-top:30px;
}.row{
	display:block;
}.to-top{
	text-align:center;
}.share-btn{
	width:100%;
}}

/* 第49話などの共通補助スタイル */
.subtitle { margin-top:-8px; margin-bottom:24px; color:#191970; font-weight:bold; font-size:1.1rem; }
.note { color:#555; font-size:.92rem; }


/* 共通レイアウトを main / div のどちらにも確実に適用 */
main.container, div.container, body > main {
  display:block;
  width:100%;
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
  padding:28px 34px;
  background:#fff;
  border-radius:8px;
  box-shadow:0 2px 12px rgba(0,0,0,.07);
  min-width:0;
}
.container img, main img { max-width:100%; height:auto; }
.container .site-logo, main .site-logo { width:160px; max-width:45vw; height:auto; margin:0 0 10px; }
.container .data-table, main .data-table { max-width:100%; }
.subtitle { margin-top:-8px; margin-bottom:24px; color:#191970; font-weight:700; font-size:1.1rem; }
.note { font-size:.92rem; color:#555; }
@media(max-width:650px) {
  main.container, div.container, body > main {
    width:100%; max-width:100%; padding:16px 14px;
    border-radius:0; box-shadow:none;
  }
}
