:root {
  --navy-950: #071c30;
  --navy-900: #0b2a4a;
  --navy-800: #123a61;
  --blue-600: #1d64a3;
  --blue-100: #e8f2fa;
  --blue-050: #f4f8fb;
  --ink: #182531;
  --muted: #5e6d79;
  --line: #d6e0e8;
  --line-dark: #bdccd8;
  --white: #fff;
  --max-width: 1180px;
  --header-height: 76px;
  --shadow: 0 16px 44px rgba(7, 28, 48, .09);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1rem); }
body { margin: 0; background: var(--white); color: var(--ink); font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 1rem; line-height: 1.85; text-rendering: optimizeLegibility; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea { color: inherit; }
h1, h2, h3, p, ul, ol, dl, figure { margin-top: 0; }
h1, h2, h3 { color: var(--navy-950); font-weight: 700; letter-spacing: .015em; line-height: 1.4; }
h1 { font-size: clamp(2.25rem, 5vw, 4.65rem); }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.8rem); }
h3 { font-size: 1.2rem; }
ul, ol { padding-left: 1.3em; }
:focus-visible { outline: 3px solid #f2aa38; outline-offset: 3px; }
.container { width: min(calc(100% - 3rem), var(--max-width)); margin-inline: auto; }
.no-break { white-space: nowrap; }
.skip-link { position: fixed; z-index: 1000; top: .5rem; left: .5rem; padding: .65rem 1rem; background: var(--white); color: var(--navy-950); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 720px) {
  :root { --header-height: 68px; }
  .container { width: min(calc(100% - 2rem), var(--max-width)); }
  body { line-height: 1.75; }
  .no-break { white-space: normal; }
}
