/* 全ページ共通：基本設定と文字。色・書体の仕上げはtheme.cssで上書きします。 */
:root {
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic", Meiryo, sans-serif;
  --color-text: #262626;
  --color-muted: #656565;
  --color-surface: #fff;
  --color-soft: #f5f5f5;
  --color-line: #d8d8d8;
  --color-accent: #333;
  --container-width: 1120px;
  --section-space: clamp(2.5rem, 6vw, 5rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 1rem; }
body { margin: 0; color: var(--color-text); background: var(--color-surface); font-family: var(--font-body); line-height: 1.8; overflow-wrap: anywhere; }
img, svg, video { max-width: 100%; height: auto; }
h1, h2, h3, p, ul, ol, dl { margin-top: 0; }
h1, h2, h3 { line-height: 1.5; }
h1 { font-size: clamp(1.8rem, 4vw, 3rem); }
h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
h3 { font-size: 1.125rem; }
a { color: inherit; text-underline-offset: .25em; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea { font-size: 16px; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .5; }
input, select, textarea { max-width: 100%; }
textarea { resize: vertical; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #2766a8; outline-offset: 4px; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 20; background: #fff; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
#main-content:focus:not(:focus-visible) { outline: none; }
