/* ==========================================================
   Redesign（試作）：Hakuhodo DY ONE の「大きな英字見出し」と
   unique one の「大きな丸み・やさしい配色・ラベル見出し」を参考に
   ========================================================== */
:root {
  --color-primary: #ff5a4f;          /* コーラル（主役） */
  --color-primary-dark: #e8443a;
  --color-primary-light: #fff0ee;
  --color-accent: #ff5a4f;
  --color-accent-dark: #e8443a;
  --color-accent-gradient: linear-gradient(135deg, #ff6a5c 0%, #ff4f6e 100%);
  --color-ink: #161a2b;              /* 濃紺（文字・ダーク面） */
  --color-bg-alt: #fff6f4;           /* ごく淡いコーラル */
  --color-text: #161a2b;
  --color-text-light: #5d6272;
  --color-border: #f0e3df;
  --color-lime: #dcff4a;             /* 小さなハイライト */
  --radius-md: 20px;
  --radius-lg: 32px;
  --shadow-sm: none;
  --shadow-md: 0 10px 30px rgba(22, 26, 43, 0.06);
  --shadow-lg: 0 18px 40px rgba(22, 26, 43, 0.10);
  --font-display: "Unbounded", "Noto Sans JP", sans-serif;
}

body { color: var(--color-text); font-feature-settings: "palt"; }

/* ---------- ヘッダー ---------- */
.site-header { background: rgba(255, 255, 255, 0.96); border-bottom: 1px solid var(--color-border); backdrop-filter: blur(8px); }
.site-header .logo { color: var(--color-ink); }
.site-header .logo span { color: var(--color-primary); }
.global-nav a { color: var(--color-ink); font-weight: 700; }
.global-nav a:hover, .global-nav a[aria-current="page"] { color: var(--color-primary); background: transparent; }
@media (min-width: 1181px) {
  .global-nav li:last-child a { margin-left: 8px; padding: 10px 22px; border-radius: 999px; background: var(--color-primary); color: #fff; }
  .global-nav li:last-child a:hover { background: var(--color-primary-dark); color: #fff; }
}

/* ---------- ボタン ---------- */
.btn { box-shadow: none; font-weight: 800; letter-spacing: 0.02em; }
.btn-primary { background: var(--color-primary); box-shadow: 0 8px 20px rgba(255, 90, 79, 0.28); }
.btn-primary:hover { background: var(--color-primary-dark); transform: translateY(-2px); }
.btn-secondary { background: var(--color-ink); box-shadow: none; }
.btn-secondary:hover { background: #2a2f47; transform: translateY(-2px); }
.btn-outline { background: #fff; color: var(--color-ink); border: 2px solid var(--color-ink); }
.btn-outline:hover { background: var(--color-ink); color: #fff; }

/* ---------- セクション見出し：大きな英字 ＋ 日本語 ---------- */
.section { padding: 104px 0; }
.section-alt { background: var(--color-bg-alt); }
.section-head { text-align: left; max-width: none; margin-bottom: 48px; }
.section-head .eyebrow {
  display: block;
  margin-bottom: 14px;
  font-family: var(--font-display);
  font-size: clamp(2rem, 5.2vw, 3.6rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--color-ink);
}
.section-head .eyebrow::after { content: "."; color: var(--color-primary); }
.section-title { font-size: clamp(1.25rem, 2.6vw, 1.7rem); font-weight: 800; line-height: 1.5; }
.section-title.is-sub { font-size: 1.35rem; }
.section-desc { max-width: 720px; margin-left: 0; color: var(--color-text-light); }

/* ---------- ヒーロー ---------- */
.hero--photo { position: relative; padding: 132px 0 72px; overflow: hidden; background: #fff; border-bottom: none; }
.hero--photo::before {                      /* 右側の大きな丸みパネル */
  content: ""; position: absolute; top: 76px; right: 0; bottom: 140px; left: 44%;
  background: var(--color-primary);
  border-bottom-left-radius: 140px;
}
.hero--photo .container { position: relative; z-index: 1; }
.hero-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; }
.hero .eyebrow { display: block; margin-bottom: 18px; font-family: var(--font-display); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; color: var(--color-primary); }
.hero h1, .hero .hero-catch {               /* 白いラベルに乗った見出し */
  display: inline; background: #fff; padding: 0.08em 0.35em;
  box-decoration-break: clone; -webkit-box-decoration-break: clone; border-radius: 10px;
  line-height: 1.9;
}
.hero h1 { font-size: clamp(1.9rem, 4.2vw, 3rem); font-weight: 900; color: var(--color-ink); box-shadow: 0 0 0 6px #fff; }
.hero h1 .accent { background: none; color: var(--color-primary); -webkit-text-fill-color: var(--color-primary); }
.hero .hero-catch { display: inline; font-size: clamp(1.15rem, 2.4vw, 1.6rem); color: var(--color-primary); box-shadow: 0 0 0 6px #fff; }
.hero .hero-inner > h1 + br { display: none; }
.hero .hero-inner h1, .hero .hero-inner .hero-catch { margin-bottom: 0; }
.hero .hero-inner h1::after { content: ""; display: block; height: 18px; }
.hero .lead { margin-top: 26px; color: var(--color-ink); }
.hero-photo { position: relative; }
.hero-photo img:not(.hero-sticker) { border-radius: 28px; box-shadow: none; border: 8px solid #fff; }
.hero-photo figcaption { color: #fff; text-align: left; font-weight: 700; }
.hero-photo .hero-sticker { position: absolute; z-index: 2; width: 112px; height: auto; border: 0; border-radius: 0; box-shadow: none; filter: drop-shadow(0 6px 10px rgba(22, 26, 43, 0.18)); pointer-events: none; }
.hero-photo .hero-sticker.s1 { top: -38px; right: -18px; transform: rotate(8deg); }
.hero-photo .hero-sticker.s2 { bottom: 26px; left: -34px; transform: rotate(-8deg); width: 100px; }
.hero-photo .hero-sticker.s3 { bottom: -22px; right: 20px; transform: rotate(5deg); width: 96px; }

.hero-stats { margin-top: 64px; padding-top: 40px; border-top: 2px solid var(--color-ink); justify-content: flex-start; gap: 72px; }
.hero-stats .stat-num { font-family: var(--font-display); font-size: 3rem; font-weight: 700; letter-spacing: -0.03em; color: var(--color-ink); line-height: 1.1; }
.hero-stats .stat-num span { font-family: "Noto Sans JP", sans-serif; font-size: 1rem; font-weight: 800; letter-spacing: 0; color: var(--color-primary); margin-left: 6px; }
.hero-stats .stat-label { color: var(--color-text-light); font-weight: 700; }

/* ---------- カード類 ---------- */
.card, .price-card, .schedule-card, .venue-card, .monitor-terms, .stamp-work, .faq-item {
  border-radius: var(--radius-md); border-color: var(--color-border); box-shadow: none;
}
.card:hover, .schedule-card:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.card-icon { font-family: var(--font-display); color: var(--color-primary); background: var(--color-primary-light); border-radius: 14px; }

/* 日程：日付を大きく、第◯回はライムのマーカー */
.schedule-card { border-radius: 28px; padding: 28px; background: #fff; }
.schedule-date { border-radius: 20px; background: var(--color-primary-light); color: var(--color-primary); }
.schedule-date.is-oneday { background: var(--color-ink); color: #fff; }
.schedule-date.is-oneday .month, .schedule-date.is-oneday .day, .schedule-date.is-oneday .weekday { color: #fff; }
.schedule-date .day { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.04em; }
.tag { border-radius: 999px; font-weight: 800; }
.tag:not(.tag-outline) { background: var(--color-lime); color: var(--color-ink); }
.tag-outline { border-color: var(--color-ink); color: var(--color-ink); }

/* 料金 */
.price-card { border-radius: 28px; border: 2px solid var(--color-border); background: #fff; }
.price-card.is-featured { border-color: var(--color-primary); box-shadow: 0 16px 36px rgba(255, 90, 79, 0.14); }
.price-card .plan-price, .price-card .plan-price span { color: var(--color-primary); }
.price-card .plan-price { font-family: var(--font-display); letter-spacing: -0.03em; }
.step-badge { background: var(--color-ink); border-radius: 999px; }
.set-price { background: var(--color-primary-light); border: 0; border-radius: 28px; }
.set-price-amount { font-family: var(--font-display); }
.promo-banner { border-radius: 24px; }

/* AI顧問・ダーク面 */
.section-advisor { background: var(--color-bg-alt); }
.step-flow li.is-current { border-color: var(--color-primary); }
.cta-band { background: var(--color-ink); border-radius: 48px 48px 0 0; }
.cta-band .section-title { color: #fff; }
.cta-band .section-desc { color: #c9cde0; margin-left: auto; margin-right: auto; text-align: center; }
.cta-band .section-title { text-align: center; }
.btn-outline-invert { border-color: #fff; color: #fff; }

/* フッター */
.site-footer { background: #fff; border-top: 1px solid var(--color-border); }

/* 実績・FAQ */
.faq-item { background: #fff; border: 2px solid var(--color-border); }
.faq-item[open] { border-color: var(--color-ink); }
.history-details summary { font-weight: 800; }

/* ---------- スマホ ---------- */
@media (max-width: 960px) {
  .hero--photo::before { left: 0; top: auto; bottom: 90px; height: 46%; border-bottom-left-radius: 0; border-top-left-radius: 90px; }
  .hero-split { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .hero-photo { margin: 0 6px; }
  .hero-photo .hero-sticker { width: 84px; }
  .hero-photo .hero-sticker.s1 { top: -30px; right: -6px; }
  .hero-photo .hero-sticker.s2 { left: -10px; width: 76px; }
  .hero-photo .hero-sticker.s3 { right: 10px; width: 72px; }
}
@media (max-width: 768px) {
  .hero h1, .hero .hero-catch { line-height: 1.65; }
  .hero .hero-inner h1::after { height: 8px; }
  .section { padding: 72px 0; }
  .hero--photo { padding: 100px 0 56px; text-align: left; }
  .hero .lead { margin-left: 0; margin-right: 0; }
  .hero .hero-actions, .hero .hero-stats { justify-content: flex-start; }
  .hero-stats { gap: 28px 40px; }
  .hero-stats .stat-num { font-size: 2.2rem; }
  .cta-band { border-radius: 32px 32px 0 0; }
}

/* ---------- 下層ページの冒頭 ---------- */
.hero-sub { padding: 120px 0 72px; background: var(--color-bg-alt); border-radius: 0 0 56px 56px; border-bottom: none; }
.hero-sub h1 { font-size: clamp(1.7rem, 4vw, 2.6rem); font-weight: 900; color: var(--color-ink); }
.hero-sub .breadcrumb, .hero-sub .eyebrow { color: var(--color-primary); }
@media (max-width: 768px) { .hero-sub { padding: 96px 0 48px; border-radius: 0 0 32px 32px; } }
