@charset "UTF-8";
/* ==========================================================
   layout.css：リセット・変数・共通パーツ
   ========================================================== */

/* ---------- reset ---------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body,
h1, h2, h3, h4, h5, h6,
p, ul, ol, dl, dd, figure {
  margin: 0;
}
ul,
ol {
  padding: 0;
  list-style: none;
}
img,
picture,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}
a {
  color: inherit;
  text-decoration: none;
}

/* ---------- 変数 ---------- */
:root {
  --c-text: #231815;
  --c-line: #4f4949;     /* 見出し下線 */
  --c-border: #dddddd;   /* プラン見出し下線・区切り線 */
  --c-accent: #8b2346;   /* ホバー時の文字色（白地で 8.9:1） */
  --c-bg-gray: #f0f0ee;  /* 背景画像と同系色（WAIV 7_2B 対策） */

  --inner: 1500px;
  --gutter: 20px;

  --ff-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --ff-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
}

/* ---------- base ---------- */
body {
  font-family: var(--ff-sans);
  color: var(--c-text);
  background-color: #fff;
  line-height: 1.5;
}

/* ---------- 共通パーツ ---------- */
/* 視覚的に隠す（幅・高さ0にしない／nowrap を入れない） */
.reading {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  border: 0;
}

/* フォーカス表示 */
:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* 改行位置の調整用 */
.ib {
  display: inline-block;
}

/* スキップリンク：フォーカス時のみ表示 */
.skip-link {
  position: absolute;
  top: -200px;
  left: 8px;
  z-index: 100;
  padding: 0.5em 1em;
  background-color: #fff;
  color: var(--c-text);
  border: 2px solid currentColor;
}
.skip-link:focus {
  top: 8px;
}

/* インナー幅 */
.l-inner {
  width: min(100% - var(--gutter) * 2, var(--inner));
  margin-inline: auto;
}
