/* theme-birthday.css — 誕生日撮影（birthday）テーマ層
   依存：global.css / components.css / menu.css / menu-shared.css（この順で読み込み＝後勝ち）
   読み込み条件：functions.php で is_page_template('_menu.php') かつ post_slug === 'birthday'
   役割：共通骨格 menu-shared.css（寒色デフォルト基調）の上に per-slug の配色＋柄を重ねる。
        .nb__page スコープで詳細度を上げて骨格を上書き（他メニューは menu-shared のみ＝非影響）。
   配色コンセプト：お祝いのマリーゴールド × 爽やかティール。原色を抑えた上品なポップで「明るく楽しい誕生日」を写真館らしく品よく
   ※配色は配色リサーチWorkflow（Web検索＋WCAG AA敵対検証・2026-06-04）で確定。deep色は白背景4.5:1以上、
     urgency暗背景は白文字4.5:1以上を満たす。family/baby/753/20th と一目で見分く色相。
   ================================================================ */

/* ── 配色トークン（accent＝メイン／sub＝さし色） ── */
.nb__page {
  --nb-terra:      #e8c25a;   /* メインアクセント（線・装飾・帯・主役バッジ） */
  --nb-terra-deep: #856316;   /* 濃アクセント：明背景の文字/アイコン（白4.5:1+） */
  --nb-terra-lt:   #fdf7e3;   /* 淡アクセント背景 */
  --nb-terra-lt2:  #f8edc8;   /* 淡アクセント背景（濃）グラデ用 */
  --nb-cha:        #cf9a4d;   /* さし色 */
  --nb-cha-deep:   #8a5e1a;   /* 濃さし色：文字用（白4.5:1+） */
  --nb-cha-lt:     #fdf4e6;   /* 淡さし色背景 */
  --nb-cha-lt2:    #f6e6cc;   /* 淡さし色背景（濃）グラデ用 */
  --nb-text-warm:  #4f4733;   /* 本文色（淡背景で4.5:1+） */
}

/* セクション区切り線：accent→sub のグラデ */
.nb__page .jm__hdiv { width: 44px; height: 2px; background: linear-gradient(90deg, var(--nb-terra), var(--nb-cha)); }
.nb__flow-detail .jm__hdiv,
.nb__chapter--cta .jm__hdiv { background: linear-gradient(90deg, rgba(232, 194, 90, .85), rgba(138, 94, 26, .7)); }
/* 料金 主役カードのバッジ：濃アクセント背景（白文字） */
.nb__page .nb__price-badge { background: var(--nb-terra-deep); }

/* ① HERO直下ジャーニー：クリーム背景＋accentドット */
.nb__page .nb__hero-jrn { background: var(--cream); border-top: 1px solid var(--light-gray); }
.nb__page .nb__hero-jrn-h2 { color: var(--charcoal); }
.nb__page .nb__hero-jrn-h2 em { color: var(--nb-terra-deep); }
.nb__page .nb__hero-jrn-sub { color: var(--nb-text-warm); }
.nb__page .nb__hero-jrn-label { color: var(--nb-terra-deep); }
.nb__page .nb__hero-jrn-title { color: var(--nb-text-warm); }
.nb__page .nb__hero-jrn-dot { background: #ffffff; border-color: var(--nb-terra-deep); }
.nb__page .nb__hero-jrn-dot svg { stroke: var(--nb-terra-deep); }
.nb__page .nb__hero-jrn-dot--active { background: var(--nb-terra); border-color: var(--nb-terra); }
.nb__page .nb__hero-jrn-dot--active svg { stroke: #ffffff; }
.nb__page .nb__hero-jrn-step:not(:last-child)::before { background: rgba(133, 99, 22, .35); }
@media (max-width: 767px) {
  .nb__page .nb__hero-jrn-steps::before { background: rgba(133, 99, 22, .35); }
  .nb__page .nb__hero-jrn-dot { background: #ffffff; }
  .nb__page .nb__hero-jrn-dot--active { background: var(--nb-terra); }
}

/* ② 中間CTA：淡accentグラデ */
.nb__page .nb__mid-cta { background: linear-gradient(160deg, var(--nb-terra-lt) 0%, var(--nb-terra-lt2) 100%); }
.nb__page .nb__mid-cta-title { color: var(--charcoal); }
.nb__page .nb__mid-cta-sub { color: var(--nb-text-warm); text-shadow: none; }
.nb__page .nb__mid-cta-example { color: var(--nb-text-warm) !important; text-shadow: none; }

/* ③ 料金後CTA：淡subグラデ（さし色） */
.nb__page .nb__price-after-cta { background: linear-gradient(160deg, var(--nb-terra-lt) 0%, var(--nb-terra-lt2) 100%); }
.nb__page .nb__price-after-cta::before { background: var(--nb-terra); width: 56px; height: 2px; }
.nb__page .nb__price-after-cta-en { color: var(--nb-terra-deep); opacity: 1; }
.nb__page .nb__price-after-cta-title { color: var(--charcoal); }
.nb__page .nb__price-after-cta-title em { color: var(--nb-terra-deep); }
.nb__page .nb__price-after-cta-desc { color: var(--nb-text-warm); }
.nb__page .nb__price-after-cta-note { color: var(--nb-text-warm); }

/* ④ 撮影の流れ：淡accentグラデ */
.nb__page .nb__flow-detail { background: linear-gradient(180deg, var(--nb-terra-lt) 0%, var(--nb-terra-lt2) 100%); }
.nb__page .nb__flow-detail .jm__sec-h2 { color: var(--charcoal); }
.nb__page .nb__flow-detail .jm__sec-sub { color: var(--nb-text-warm); }
.nb__page .nb__flow-dl-dot { background: #ffffff; border-color: var(--nb-terra-deep); color: var(--nb-terra-deep); }
.nb__page .nb__flow-dl-phase { color: var(--nb-terra-deep); opacity: 1; }
.nb__page .nb__flow-dl-title { color: var(--charcoal); }
.nb__page .nb__flow-dl-desc { color: var(--nb-text-warm); }
.nb__page .nb__flow-dl-cost { color: var(--nb-terra-deep); background: var(--warm-white); border-color: rgba(133, 99, 22, .26); }
.nb__page .nb__flow-dl-item:not(:last-child)::after { background: linear-gradient(to bottom, rgba(133, 99, 22, .5), rgba(133, 99, 22, .1)); }
.nb__page .nb__flow-dl-qa { background: var(--warm-white); border: 1px solid rgba(133, 99, 22, .18); }
.nb__page .nb__flow-dl-qa-q { color: var(--nb-terra-deep); }
.nb__page .nb__flow-dl-qa-a { color: var(--nb-text-warm); }
/* 「当日の目安」ブロック（CH6冒頭）＝明地テーマの上書き。罫線と余白で組む（カード化・角丸影・一辺色バーなし）。 */
.nb__page .nb__flow-est-heading { color: var(--nb-terra-deep); border-bottom-color: color-mix(in srgb, var(--nb-terra-deep) 32%, transparent); }
.nb__page .nb__flow-est-row { border-bottom-color: color-mix(in srgb, var(--nb-terra-deep) 16%, transparent); }
.nb__page .nb__flow-est-label { color: var(--nb-text-warm); }
.nb__page .nb__flow-est-val { color: var(--charcoal); }
.nb__page .nb__flow-est-note { color: var(--nb-text-warm); }

.nb__page .nb__flow-detail .line-cta-btn {
  background: #06C755; /* LINE公式ブランド色（オーナー確定・2026-07-09） */ color: #fff; border: .5px solid rgba(255, 255, 255, .45);
  box-shadow: inset 1px 1px 1.8px rgba(255, 255, 255, .5), 0 4px 14px rgba(0, 0, 0, .12);
}
.nb__page .nb__flow-detail .line-cta-btn:hover { background: #05b34c; /* LINE公式hover（2026-07-09） */ color: #fff; border-color: rgba(255, 255, 255, .6); }

/* ⑤ 緊急性ブロック：暗背景グラデ（白文字維持・AA） */
.nb__page .nb__urgency { background: linear-gradient(135deg,#92711f 0%,#664d12 100%); }
.nb__page .nb__urgency-text { color: rgba(255, 255, 255, .92); }

/* ⑥ 最終CTA overlay：暗色（背景写真の上に重ねる） */
.nb__page .nb__cta-bg-overlay { background: linear-gradient(to bottom, rgba(29,106,98,0.55) 0%, rgba(14,61,55,0.88) 100%); }

/* ⑦ 比較表ヘッダー（ch1）：accentグラデ（白文字） */
.nb__page .nb__compare-thead { background: linear-gradient(135deg, var(--nb-terra) 0%, var(--nb-terra-deep) 100%); }
.nb__page .nb__compare-col--us { color: #ffffff !important; }
.nb__page .nb__yn--no   { color: #6f6259; }
.nb__page .nb__yn--cond { color: #786a5a; }
.nb__page .nb__compare-cell--us .nb__yn--yes { color: var(--nb-terra-deep); }
.nb__page .nb__compare-cell:not(.nb__compare-cell--us) .nb__yn--yes { color: var(--gold-dk); }

/* ⑧ 定義ボックス（AIO）：淡accentの小札 */
.nb__page .nb__definition {
  border-left: none; border: 1px solid var(--nb-terra-lt2); border-radius: 12px;
  background: linear-gradient(165deg, var(--nb-terra-lt) 0%, var(--warm-white) 70%);
}
.nb__page .nb__definition-label {
  font-family: var(--jp); font-size: .8rem; letter-spacing: .04em; text-transform: none;
  color: var(--nb-terra-deep); display: inline-flex; align-items: center;
}
.nb__page .nb__definition-label::before {
  content: ''; display: inline-block; width: 13px; height: 13px; margin-right: 8px;
  background-color: var(--nb-terra-deep);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.nb__page .nb__definition-text strong { color: var(--nb-terra-deep); }

/* ⑨ 料金カード画像未登録時のアイコン背景：プラン別に accent／sub を循環 */
.nb__page .nb__price-card-media--icon { background: linear-gradient(160deg, var(--nb-terra-lt) 0%, var(--warm-white) 100%); }
.nb__page .nb__price-card-media--icon svg { color: var(--nb-terra-deep); opacity: .9; }
.nb__page .nb__price-plans .nb__price-card:nth-child(2) .nb__price-card-media--icon { background: linear-gradient(160deg, var(--nb-cha-lt) 0%, var(--warm-white) 100%); }
.nb__page .nb__price-plans .nb__price-card:nth-child(2) .nb__price-card-media--icon svg { color: var(--nb-cha-deep); }
.nb__page .nb__price-plans .nb__price-card:nth-child(3) .nb__price-card-media--icon { background: linear-gradient(160deg, var(--nb-terra-lt2) 0%, var(--warm-white) 100%); }
.nb__page .nb__price-plans .nb__price-card:nth-child(4) .nb__price-card-media--icon svg { color: var(--nb-cha-deep); }

/* ⑩ CH5 なぜカードの大数字：濃accentでAA確保 */
.nb__page .nb__why-val { color: var(--nb-terra-deep); }

/* ⑪ 章見出しラベル：丸ドットを添える（明朝・濃accent） */
.nb__page .jm__marker-label { font-family: var(--jp); font-size: .82rem; letter-spacing: .08em; color: var(--nb-terra-deep); }
.nb__page .jm__marker-label::before {
  content: ''; display: inline-block; width: 12px; height: 12px; margin-right: 7px; vertical-align: -1px;
  background-color: var(--nb-terra);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E") center / contain no-repeat;
}
.nb__page .nb__chapter--cta .jm__marker-label { color: var(--nb-terra); }
.nb__page .nb__chapter--cta .jm__marker-label::before { background-color: var(--nb-terra); }
.nb__page .nb__hero-card-en { color: var(--nb-terra); }


/* ⑬ 注意ボックス（CH4 案内）：淡accentトーン */
.nb__page .nb__price-note-box { background: var(--nb-terra-lt); border-color: rgba(133, 99, 22, .18); color: var(--nb-text-warm); }

/* ⑭ 写真帯overlay：暗色（白クォートの可読性確保） */
.nb__page .nb__photo-band-overlay { background: linear-gradient(180deg, rgba(29,106,98,0.55) 0%, rgba(14,61,55,0.88) 100%); }

/* ⑮ アンカーナビ：accent基調（色のみ上書き＝ガラス構造/JS/sticky-glass-spec は不可触） */
.nb__page .nb__page-nav:not(.is-stuck) { background-color: #fdf3d6; border-bottom-color: rgba(133, 99, 22, .18); }
.nb__page .nb__page-nav:not(.is-stuck) .nb__page-nav-link { color: var(--nb-terra-deep); }
.nb__page .nb__page-nav:not(.is-stuck) .nb__page-nav-link.is-current { border-bottom-color: var(--nb-terra-deep); }
.nb__page .nb__page-nav.is-stuck .nb__page-nav-link.is-current {
  color: var(--nb-terra-deep); border-bottom-color: var(--nb-terra-deep); background: rgba(133, 99, 22, .10);
}
@media (hover: hover) and (pointer: fine) {
  .nb__page .nb__page-nav.is-stuck .nb__page-nav-link:hover { color: var(--nb-terra-deep); border-bottom-color: var(--nb-terra-deep); }
  .nb__page .nb__page-nav:not(.is-stuck) .nb__page-nav-link:hover { color: var(--nb-terra-deep); border-bottom-color: var(--nb-terra-deep); }
}
.nb__page .nb__page-nav-link:focus-visible { outline-color: var(--nb-terra-deep); }
.nb__page .nb__page-nav:not(.is-stuck) .nb__page-nav-link:focus-visible { outline-color: var(--nb-terra-deep); }


/* 専用写真が無い間のヒーロー背景：緊急性ブロックと同じテーマ色暗版グラデで統一（写真が来たら hero に実パスを設定） */
.nb__page .nb__hero--noimg .nb__hero-bg { background: linear-gradient(135deg,#92711f 0%,#664d12 100%); }

/* ═══════════════════════════════════════════════
   柄（地紋）：オーナー提供 balloon / balloon2 / cake を実際の表示順で交互に（隣接で同じSVGを使わない）。
   小さめ・間隔広め・低opacityで上品に。クリームイエロー基調。本文 z-index:1。
═══════════════════════════════════════════════ */
/* hero下：風船(balloon) */
.nb__page .nb__hero-jrn { position: relative; overflow: hidden; }
.nb__page .nb__hero-jrn > * { position: relative; z-index: 1; }
.nb__page .nb__hero-jrn::after {
  content: ''; position: absolute; inset: 0;
  background: url("../../img/menu/birthday/tile-balloon-hero.svg") 0 0 / 300px 300px repeat;
  opacity: 0.32; pointer-events: none; z-index: 0;
}

/* 中間CTA：ケーキ(cake) */
.nb__page .nb__mid-cta { position: relative; overflow: hidden; }
.nb__page .nb__mid-cta > * { position: relative; z-index: 1; }
.nb__page .nb__mid-cta::after {
  content: ''; position: absolute; inset: 0;
  background: url("../../img/menu/birthday/tile-cake-mid.svg") 0 0 / 300px 300px repeat;
  opacity: 0.17; pointer-events: none; z-index: 0;
}

/* 料金後CTA：風船(balloon2) */
.nb__page .nb__price-after-cta { position: relative; overflow: hidden; }
.nb__page .nb__price-after-cta-inner { position: relative; z-index: 1; }
.nb__page .nb__price-after-cta::after {
  content: ''; position: absolute; inset: 0;
  background: url("../../img/menu/birthday/tile-balloon2-price.svg") 0 0 / 300px 300px repeat;
  opacity: 0.17; pointer-events: none; z-index: 0;
}

/* 撮影の流れ：ケーキ(cake) */
.nb__page .nb__flow-detail { position: relative; overflow: hidden; }
.nb__page .nb__flow-detail-inner { position: relative; z-index: 1; }
.nb__page .nb__flow-detail::before {
  content: ''; position: absolute; inset: 0;
  background: url("../../img/menu/birthday/tile-cake-mid.svg") 0 0 / 300px 300px repeat;
  opacity: 0.17; pointer-events: none; z-index: 0;
}

/* 緊急性：風船(balloon2)を白で */
.nb__page .nb__urgency { position: relative; overflow: hidden; }
.nb__page .nb__urgency-body, .nb__page .nb__urgency-badge { position: relative; z-index: 1; }
.nb__page .nb__urgency::after {
  content: ''; position: absolute; inset: 0;
  background: url("../../img/menu/birthday/tile-balloon2-urgency.svg") 0 0 / 300px 300px repeat;
  opacity: 0.17; pointer-events: none; z-index: 0;
}

