/* ============================================================
   utilities.css — 最小限の間隔/表示ユーティリティ
   ============================================================ */

/* 余白（top margin） */
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: var(--sp-1); }
.mt-2 { margin-top: var(--sp-2); }
.mt-3 { margin-top: var(--sp-3); }
.mt-4 { margin-top: var(--sp-4); }
.mt-5 { margin-top: var(--sp-5); }
.mt-6 { margin-top: var(--sp-6); }

/* テキスト整列 */
.text-center { text-align: center; }
.text-sub { color: var(--color-text-sub); }
.text-sm { font-size: var(--fs-sm); }

/* 表示制御 */
.is-hidden { display: none !important; }

@media (max-width: 639px) {
  .hide-sm { display: none !important; }
}
@media (min-width: 1024px) {
  .hide-lg { display: none !important; }
}

/* レイアウト補助 */
.flow > * + * {
  margin-top: var(--sp-3);
}
.stack-center {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cluster {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.cluster--center {
  justify-content: center;
}

/* DV支援ページ用ソフトテーマ上書き */
body[data-theme="soft"] {
  --color-primary: var(--soft-primary);
  --color-primary-dark: var(--soft-primary-dark);
  --color-accent: var(--soft-accent);
  --color-accent-soft: var(--soft-accent-soft);
  --color-bg: var(--soft-bg);
  --radius-md: 12px;
  --radius-lg: 16px;
}
/* フッターは濃紺に固定（淡いsoft色だとフッター内テキストが4.5:1を割るため） */
body[data-theme="soft"] .site-footer {
  background: #152743;
}
