@charset "UTF-8";
:root {
  /* 確定：ロゴのコーラル */
  --coral: #C85A54;
  /* AI提案：背景ごとに選び直すコーラルの濃淡。ブランド確定値ではない */
  --coral-deep: #B14A45;
  /* 白文字を載せる面 → 白文字と 5.34: 1 */
  --coral-light:#D97B74;
  /* #0B2C37 の上 → 4.92: 1 */
  --coral-pale:#EDA9A2;
  /* #123A48 / #1F4E5F の上 → 6.26 / 4.67: 1 */
  --ink:#1F4E5F;
  --ink-deep: #123A48;
  --ink-strong: #0B2C37;
  --paper: #F7F6F3;
  --canvas: #FFFFFF;
  --mist: #EDF3F2;
  --line: #C7D8D8;
  --line-strong: #91AFB2;
  /* 図（意味を持つ線）専用。--line-strong は白面 2.34: 1 で図には使えない */
  --fig-line:#6E9095;
  --fig-line-dark: #6B9099;
  --fig-fill-dark: #16333E;
  --on-dark: #FFFFFF;
  --on-dark-mute: #C2D5D6;
  --on-dark-nav: #D5E3E4;
  --text: #333333;
  --muted: #5A686B;
  --font-jp: "Yu Gothic",YuGothic,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  --font-en: Arial,sans-serif;
  --focus: var(--coral-deep);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-jp);
  color: var(--text);
  background: var(--canvas);
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
}

ul, ol {
  list-style: none;
}

svg {
  display: block;
}

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
