/* ==========================================================================
   base.css — CSS変数・リセット・基本スタイル
   全ページで必ず読み込む
   ========================================================================== */

/* ===== CSS VARIABLES ===== */
:root {
  /* Brand */
  --color-brand: #0f1629;
  --color-brand-light: #1e2a4a;

  /* CTA */
  --color-cta: #30752f;
  --color-cta-hover: #265e25;

  /* Accent（サービスごとに上書き） */
  --color-accent: #0f1629;
  --color-accent-bg: #eef3ed;

  /* Text */
  --color-text: #1a1a1a;
  --color-text-sub: #4a4a4a;
  --color-text-muted: #6b6b6b;
  --color-text-light: #999999;

  /* Background */
  --color-bg: #ffffff;
  --color-bg-gray: #f7f8fa;

  /* Border / Placeholder */
  --color-border: #e5e7eb;
  --color-placeholder: #e8e8e8;
  --color-placeholder-text: #aaaaaa;

  /* Hero */
  --hero-bg: #f7f8fa;

  /* Layout */
  --container-max: 1100px;
  --section-padding: 96px;
  --gap-default: 24px;

  /* Border Radius */
  --radius: 8px;
  --radius-sm: 6px;

  /* Typography */
  --font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
  --font-size-base: 15px;
  --line-height-base: 1.8;
}

/* ===== RESET ===== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: var(--line-height-base);
  font-size: var(--font-size-base);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  letter-spacing: 0.02em;
}

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s, opacity 0.2s;
}

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

ul {
  list-style: none;
}
