/*
 * Page-specific layout: beginner（初めての方へ）— thai-massage
 * 構成: page-header → 導入文 → ページ内アンカーナビ → 施術の流れ（画像付き）→ FAQ → 予約CTA
 * 参照 HP の「初めての方へ」構造のみ踏襲（色/class/コピー逐語流用なし・ルール7）。
 * 色は var(--color-*) のみ（ルール10）、文言は {{...}}（ルール1）。
 */

.page-beginner__main {
  display: block;
}

/* ── 導入文 ───────────────────────────────── */
.beginner-intro {
  max-width: 760px;
  margin: 0 auto;
  padding: var(--section-padding-y) var(--container-padding-x) 0;
  text-align: center;
}
.beginner-intro__lead {
  font-family: var(--font-serif-jp);
  font-size: var(--fs-heading-md);
  line-height: var(--lh-heading);
  color: var(--color-text);
  margin: 0 0 var(--gap-md);
}
.beginner-intro__lead:empty { display: none; }
.beginner-intro__body {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--color-text-secondary);
  margin: 0;
}
.beginner-intro__body:empty { display: none; }

/* ── ページ内アンカーナビ（施術の流れ / よくあるご質問） ── */
.page-anchor-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--gap-sm);
  max-width: var(--container-max-width);
  margin: var(--gap-xl) auto 0;
  padding: 0 var(--container-padding-x);
}
.page-anchor-nav__link {
  display: inline-flex;
  align-items: center;
  gap: var(--gap-xs);
  padding: 12px 28px;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-bg-section-alt);
  font-family: var(--font-serif-jp);
  font-size: var(--fs-body);
  letter-spacing: var(--tracking-wide);
  color: var(--color-text);
  text-decoration: none;
  transition:
    background var(--duration-normal) var(--easing-standard),
    color var(--duration-normal) var(--easing-standard),
    border-color var(--duration-normal) var(--easing-standard);
}
.page-anchor-nav__link::before {
  content: "▾";
  color: var(--color-accent);
}
.page-anchor-nav__link:hover,
.page-anchor-nav__link:focus-visible {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-on-dark);
}
.page-anchor-nav__link:hover::before,
.page-anchor-nav__link:focus-visible::before {
  color: var(--color-text-on-dark);
}

/* ── セクション共通 ───────────────────────── */
.beginner-section {
  padding: var(--section-padding-y) var(--container-padding-x);
}
.beginner-section--alt {
  background: var(--color-bg-section-alt);
}
.beginner-section .section-header {
  margin-bottom: var(--gap-2xl);
}

/* ── 施術の流れ（画像付きステップ・ジグザグ + 矢印） ── */
.beginner-flow {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 960px;
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.beginner-flow__step {
  position: relative;
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  align-items: center;
  gap: var(--gap-xl);
  padding: var(--gap-lg);
  background: var(--color-bg-main);
  border: 1px solid var(--color-border);
  border-radius: 8px;
}
.beginner-section--alt .beginner-flow__step {
  background: var(--color-bg-main);
}
/* 偶数ステップは画像を右に（ジグザグ） */
.beginner-flow__step:nth-child(even) .beginner-flow__media {
  order: 2;
}
/* ステップ間の下向き矢印（gold） */
.beginner-flow__step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -36px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 11px solid transparent;
  border-right: 11px solid transparent;
  border-top: 15px solid var(--color-accent);
}
/* 未設定ステップ（title 空）は非表示。矢印込みで消える */
.beginner-flow__step:has(.beginner-flow__title:empty) { display: none; }

.beginner-flow__media {
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 4 / 3;
  background: var(--color-bg-section-alt);
}
.beginner-flow__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* 画像未設定（src 空）の場合は画像枠を消して本文を全幅に */
.beginner-flow__step:has(.beginner-flow__media img[src=""]) {
  grid-template-columns: 1fr;
}
.beginner-flow__step:has(.beginner-flow__media img[src=""]) .beginner-flow__media {
  display: none;
}

.beginner-flow__body {
  display: flex;
  flex-direction: column;
  gap: var(--gap-sm);
}
.beginner-flow__step-label {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  align-self: flex-start;
  padding: 6px 16px;
  background: var(--color-primary);
  color: var(--color-text-on-dark);
  font-family: var(--font-display);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-wider);
  border-radius: 4px;
}
.beginner-flow__step-num {
  font-size: var(--fs-body);
  letter-spacing: 0;
}
.beginner-flow__title {
  font-family: var(--font-serif-jp);
  font-size: var(--fs-heading-md);
  font-weight: 500;
  line-height: var(--lh-heading);
  color: var(--color-text);
  margin: 0;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--gap-sm);
}
.beginner-flow__sub {
  font-family: var(--font-display);
  font-size: var(--fs-caption);
  letter-spacing: var(--tracking-wide);
  color: var(--color-accent);
}
.beginner-flow__sub:empty { display: none; }
.beginner-flow__text {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--color-text-secondary);
  margin: 0;
}

/* ── FAQ リスト ───────────────────────────── */
.beginner-faq-section .faq-list {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--gap-md);
}
/* 未設定 FAQ（質問テキスト空）は非表示 */
.beginner-faq-section .faq-item:has(.faq-item__q-text:empty) {
  display: none;
}

/* ── レスポンシブ ─────────────────────────── */
@media (max-width: 768px) {
  .beginner-intro {
    padding: var(--section-padding-y-mobile) var(--container-padding-x-mobile) 0;
  }
  .page-anchor-nav {
    padding: 0 var(--container-padding-x-mobile);
  }
  .beginner-section {
    padding: var(--section-padding-y-mobile) var(--container-padding-x-mobile);
  }
  .beginner-flow__step {
    grid-template-columns: 1fr;
    gap: var(--gap-md);
  }
  /* モバイルは常に画像が上（ジグザグ解除） */
  .beginner-flow__step:nth-child(even) .beginner-flow__media {
    order: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-anchor-nav__link {
    transition: none;
  }
}
