:root {
  --bg-base: #fdfdfd;         /* 全体の背景：クリアなホワイト */
  --bg-paper: #faf8f6;        /* サブ背景：温かみのあるニュアンスホワイト */
  --text-main: #333333;       /* メインテキスト：引き締まるダークグレー */
  --text-sub: #666666;        /* サブテキスト：柔らかいグレー */
  --text-muted: #999999;      /* 補足テキスト：薄いグレー */
  --gold: #bfa57d;            /* アクセント：シャンパンゴールド */
  --pink: #e8b3be;            /* アクセント：ダスティピンク（くすみピンク） */
  
  --line: rgba(0,0,0,0.08);
  --line-soft: rgba(0,0,0,0.04);
  --shadow-base: 0 10px 30px rgba(160, 140, 140, 0.05); /* ほんのり血色感のあるシャドウ */
  
  /* 💡 フォント設定 */
  --font-serif: 'Shippori Mincho', 'Noto Serif JP', 'Yu Mincho', serif;
  --font-sans: 'Montserrat', 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --font-en: 'Montserrat', sans-serif;
  
  --ease: cubic-bezier(0.25, 1, 0.5, 1);
}

/* =========================================================
   1. Reset & Base (完全初期化)
========================================================= */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
  background: var(--bg-base);
  color: var(--text-main);
  font-family: var(--font-sans); /* 基本は読みやすいゴシック */
  line-height: 1.8;
  letter-spacing: 0.08em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  
  /* 💡 過去の縦書きの呪縛を完全にリセット */
  writing-mode: horizontal-tb;
  word-break: normal;
  overflow-wrap: break-word;
}

/* 過去の暗いグラデーション背景を撤去し、クリーンな状態に */
body::before {
  display: none;
}

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

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: var(--pink);
}

button {
  font: inherit;
}

/* =========================================================
   2. Global Utilities (共通アニメーション・余白)
========================================================= */
/* フェードアップアニメーション */
.fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }

/* 共通セクションヘッダー（必要に応じて使用） */
.section-header {
  text-align: center;
  margin-bottom: 50px;
}
.section-header h2 {
  margin: 0;
  color: var(--text-main);
  font-family: var(--font-serif); /* 見出しは上品な明朝体 */
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  letter-spacing: 0.15em;
  font-weight: 800;
}
.section-header p {
  margin: 15px 0 0;
  color: var(--text-sub);
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.1em;
}

