/* base: body, font, link, color — light theme（全ページ共通） */
:root {
  --color-black: #1a1a1a;
  --color-bg: #ffffff;
  --color-bg-section: #f7f5f0;
  --color-bg-panel: #ffffff;
  --color-bg-elevated: #faf9f7;
  --color-border: rgba(0, 0, 0, 0.08);
  --color-accent: #b30000;
  --color-accent-hover: #d41515;
  --color-accent-soft: rgba(179, 0, 0, 0.22);
  --color-main: #e8ebe9;
  --color-main-dark: #1b4332;
  --color-text: #333333;
  --color-text-muted: #666666;
  --color-white: #ffffff;
  --color-en-stroke: rgba(27, 67, 50, 0.12);
  --color-red-band: #8f0000;
  --font-sans: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  --max-inner: 1200px;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --header-h: 7rem;
}

@media (max-width: 768px) {
  :root {
    --header-h: 5.25rem;
  }
}

html {
  overflow-x: clip;
}

body {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.7;
  color: var(--color-text);
  background: #fff;
  overflow-x: clip;
}

a {
  color: #0f2f24;
  transition: color 0.2s var(--ease-out), opacity 0.2s var(--ease-out);
}

a:hover {
  color: #2d6a4f;
}

a:focus-visible {
  outline: 2px solid #2d6a4f;
  outline-offset: 2px;
}

.inner {
  width: min(100% - 2rem, var(--max-inner));
  margin-inline: auto;
}

.pc-only {
  display: block;
}

.sp-only {
  display: none;
}

@media (max-width: 768px) {
  body {
    font-size: 0.9375rem;
  }

  .inner {
    width: min(100% - 1.5rem, var(--max-inner));
  }

  .pc-only {
    display: none;
  }

  .sp-only {
    display: block;
  }

  button.sp-only {
    display: inline-flex;
  }
}
