@charset "UTF-8";

/*
	Noto Serif JPを使うとき：
	font-family: "Noto Serif JP", serif;

	Sorts Mill Goudyを使うとき：
	font-family: "Sorts Mill Goudy", serif;
*/

/* =========================================
   ベース（既存仕様）
   ========================================= */
*, *::before, *::after {
	box-sizing: border-box;
}

html {
	font: 62.5%/1.5 "Noto Serif JP", serif;
	/* --- 安全強化（視覚変化なし） --- */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	position: relative;
	margin: 0;
	padding: 0;
	font-size: 1.6rem;
	letter-spacing: 0.15rem;
	background-color: #fbf4f1;
	color: #3d1b21;

	/* --- 滑らかな文字表示（見た目はほぼ不変） --- */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ul, ol, li, figure, table, tr, th, td {
	margin: 0;
	padding: 0;
	font-weight: normal;
}

ul, ol {
	list-style: none;
}

table {
	width: 100%;
	border-collapse: collapse;
}

img {
	max-width: 100%;
	vertical-align: bottom;

	/* --- レイアウト安定＆にじみ軽減（視覚差なし想定） --- */
	display: block;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges; /* 非対応ブラウザは無視 */
}

/* =========================================
   ホバー・リンク系ユーティリティ（既存仕様）
   ========================================= */
.hover-op {
	opacity: 1;
	transition: opacity 0.3s;
}
.hover-op:hover,
.hover-op:active {
	opacity: 0.7;
}

.hover-ul {
	text-decoration: none;
}
.hover-ul:hover,
.hover-ul:active {
	text-decoration: underline;
}

.hover-pointer:hover,
.hover-pointer:active {
	cursor: pointer;
}

/* =========================================
   === GPT SAFE ENHANCE（非破壊の改善）===
   ========================================= */

/* 1) フォーカス可視化（キーボード操作の迷子防止／色は既存トーンに合わせる） */
:focus:not(:focus-visible) { outline: none; }
:focus-visible {
	outline: 2px solid #711111;
	outline-offset: 2px;
}

/* 2) タップ時のハイライト抑制（モバイルの違和感軽減／見た目ほぼ不変） */
a, button, [role="button"] {
	-webkit-tap-highlight-color: transparent;
}

/* 3) アニメ苦手ユーザー配慮＆Core Web Vitalsへの寄与（視覚差ほぼ無し） */
@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* 4) 画面には出さないが読み上げには必要なテキスト用（必要時にHTMLで付与） */
.sr-only,
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* 5) 長い英数字の折り返し（崩れ防止／既存見た目は維持） */
.wrap-anywhere {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* 6) アンカー(#)クリック時の見出しかぶり防止
      固定ヘッダーぶんだけ余白を確保（数値のみ必要に応じ調整） */
[id] { scroll-margin-top: 96px; }          /* PC */
@media (max-width: 768px) {
	[id] { scroll-margin-top: 80px; }       /* スマホ */
}