/* =================================================================
   dep-tour.css ― ツアー詳細ページ 雛形（宝塚ツアー例）専用
   スコープ：.dep-tour-page（body_classで付与）
   依存：dep-tokens.css / dep-base.css
        （.dep-sec / .dep-wrap / .dep-eyebrow / .dep-sec-title /
          .dep-sec-head / .dep-sec-head--center / .dep-sec--white /
          .dep-sec--bg / .dep-crumb 等）
   方針：共通プリミティブは再定義しない。本ページ固有のコンポーネントのみ。
   全幅：recruit/community/company/about/business と同じ手法。
   ★将来 CPT「ツアー」＋ACF へ移行予定。本CSSはそのまま流用できる設計。
================================================================= */

/* ページ地色＝生成り（帯のみ全幅で上書き／clipはdep-base済み） */
.dep-tour-page #content{ background:var(--dep-bg); }

/* Astra .entry-content の既定マージン打ち消し */
.dep-tour-page .entry-content p,
.dep-tour-page .entry-content h1,
.dep-tour-page .entry-content h2,
.dep-tour-page .entry-content h3,
.dep-tour-page .entry-content dl,
.dep-tour-page .entry-content dt,
.dep-tour-page .entry-content dd,
.dep-tour-page .entry-content ul{ margin:0; }
.dep-tour-page .entry-content ul{ padding:0; }

/* パンくず＝左揃え（共通仕様#4） */
.dep-tour-page .dep-crumb ol{ justify-content:flex-start; text-align:left; }

/* ===== ① ヒーロー（native合成：背景写真＋パネル＋俳優写真＋実テキスト） ===== */
.dep-tour-page .dep-tour-hero{
  position:relative; max-width:none !important; width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  padding:clamp(48px,7vw,88px) 20px; background:#12202c;
}
.dep-tour-page .dep-tour-hero__bg{ position:absolute; inset:0; z-index:0; }
.dep-tour-page .dep-tour-hero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.dep-tour-page .dep-tour-hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(9,20,30,.34) 0%,rgba(9,20,30,.52) 100%);
}
.dep-tour-page .dep-tour-hero__panel{
  position:relative; z-index:2; width:min(1000px,100%);
  background:rgba(255,255,255,.94); backdrop-filter:blur(3px);
  border-radius:var(--dep-radius,12px); box-shadow:0 24px 60px rgba(0,18,34,.34);
  display:grid; grid-template-columns:300px 1fr; gap:clamp(24px,3.4vw,44px);
  padding:clamp(24px,3vw,38px); align-items:center;
}

/* 俳優写真：contain枠で“絶対にトリミングされない”（タレント写真トリミング禁止の要件担保） */
.dep-tour-page .dep-tour-actor{ margin:0; }
.dep-tour-page .dep-tour-actor__frame{
  position:relative; background:#0e1a26; border-radius:10px; overflow:hidden;
  aspect-ratio:731/1024; display:flex; align-items:center; justify-content:center;
}
.dep-tour-page .dep-tour-actor__frame img{ width:100%; height:100%; object-fit:contain; display:block; }
.dep-tour-page .dep-tour-actor figcaption{ margin-top:8px; font-size:11px; color:#7a7a7a; letter-spacing:.02em; line-height:1.7; }
.dep-tour-page .dep-tour-actor figcaption b{ color:#555; font-weight:700; }

/* ショルダーコピー・バッジ（状態プリセットで色＋文言が切替） */
.dep-tour-page .dep-tour-shoulder{
  display:inline-flex; align-items:center; gap:7px;
  font-size:13px; font-weight:700; letter-spacing:.04em; line-height:1;
  padding:8px 16px; border-radius:999px; margin:0 0 14px; color:#fff;
}
.dep-tour-page .dep-tour-shoulder::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.9; }
.dep-tour-page .dep-tour-shoulder.is-new{ background:var(--dep-accent); }
.dep-tour-page .dep-tour-shoulder.is-go{ background:var(--dep-primary); }
.dep-tour-page .dep-tour-shoulder.is-closed{ background:#8f8b84; }

.dep-tour-page .dep-tour-hero__en{
  font-family:var(--dep-en); font-size:12px; font-weight:600; letter-spacing:.16em;
  color:var(--dep-primary); text-transform:uppercase; display:block;
}
.dep-tour-page .dep-tour-hero__ttl{
  font-size:clamp(24px,3.2vw,34px); font-weight:700; line-height:1.4;
  letter-spacing:.02em; margin:10px 0 0;
}
.dep-tour-page .dep-tour-hero__ttl .seat{ color:var(--dep-accent); }
/* 公演組名リボン：組のイメージカラーで切替（--dep-group-color / --dep-group-text）
   色替えは HTML 側でプリセットクラス（.is-hana ほか）を付けるか、
   style="--dep-group-color:#xxxxxx;--dep-group-text:#xxxxxx;" を直接指定。
   ※ .dep-tour-hero__text を噛ませ詳細度 0,3,0 とし、
     .dep-tour-page .entry-content p{margin:0}(0,2,1) の打ち消しに勝たせる。 */
.dep-tour-page .dep-tour-hero__text .dep-tour-hero__group{
  --dep-group-color:#ffbccc;      /* 既定＝花組ピンク */
  --dep-group-text:#5a2a37;       /* リボン上の文字色 */
  position:relative; display:block; margin:18px 0 0;
  padding:11px 40px; text-align:center;
  font-size:16px; font-weight:800; letter-spacing:.14em; line-height:1.3;
  color:var(--dep-group-text);
  background:var(--dep-group-color);
  /* 両端を燕尾（スワロウテール）型に切り抜いたリボン */
  clip-path:polygon(0 0, 100% 0, calc(100% - 16px) 50%, 100% 100%, 0 100%, 16px 50%);
  filter:drop-shadow(0 3px 5px rgba(0,18,34,.10));
}
/* 組別プリセット（イメージカラー：数値は仮・運用で調整可）
   ★ヒーローのリボンと一覧カードのリボンで **同じ1か所** から色を配る（＝色の出所を分散させない）。
     カード側の形（サイズ・余白）は §CPT版で増えたコンポーネント の .dep-tour-rel__group を参照。 */
.dep-tour-page .dep-tour-hero__group.is-hana,
.dep-tour-page .dep-tour-rel__group.is-hana{ --dep-group-color:#ffbccc; --dep-group-text:#5a2a37; } /* 花：ピンク */
.dep-tour-page .dep-tour-hero__group.is-tsuki,
.dep-tour-page .dep-tour-rel__group.is-tsuki{ --dep-group-color:#f6d84b; --dep-group-text:#5a4a10; } /* 月：黄 */
.dep-tour-page .dep-tour-hero__group.is-yuki,
.dep-tour-page .dep-tour-rel__group.is-yuki{ --dep-group-color:#6cbf8f; --dep-group-text:#0f3a26; } /* 雪：緑 */
.dep-tour-page .dep-tour-hero__group.is-hoshi,
.dep-tour-page .dep-tour-rel__group.is-hoshi{ --dep-group-color:#6fb0dd; --dep-group-text:#0d3454; } /* 星：青 */
.dep-tour-page .dep-tour-hero__group.is-sora,
.dep-tour-page .dep-tour-rel__group.is-sora{ --dep-group-color:#b49ad6; --dep-group-text:#33205a; } /* 宙：紫 */
/* meta（dl）も .entry-content dl{margin:0}(0,2,1) に勝つよう 0,3,0 に */
.dep-tour-page .dep-tour-hero__text .dep-tour-hero__meta{ margin:30px 0 0; display:flex; flex-direction:column; gap:7px; }
.dep-tour-page .dep-tour-hero__meta div{ display:flex; gap:12px; align-items:baseline; font-size:14.5px; }
.dep-tour-page .dep-tour-hero__meta dt{ flex:0 0 62px; font-size:11.5px; font-weight:700; color:#8A857E; letter-spacing:.04em; }
.dep-tour-page .dep-tour-hero__meta dd{ margin:0; color:#3a3a3a; }
.dep-tour-page .dep-tour-hero__meta dd b{ font-weight:700; }
/* 公演日だけ 140%・ボールド（SPは「15:30 開演」前で改行＝.dep-br-sp） */
.dep-tour-page .dep-tour-hero__date{ font-size:1.4em; font-weight:700; }
.dep-tour-page .dep-tour-hero__tags{ margin:18px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.dep-tour-page .dep-tour-hero__tags span{
  font-size:12px; font-weight:700; color:var(--dep-primary);
  background:#E8F5FC; border-radius:999px; padding:5px 13px;
}

/* ===== ② 公演情報サマリー（クイックファクト） ===== */
.dep-tour-page .dep-tour-facts{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.dep-tour-page .dep-tour-fact{
  background:#fff; border:1px solid var(--dep-line); border-radius:var(--dep-radius,12px);
  padding:22px 16px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px;
}
.dep-tour-page .dep-tour-fact__ic{ width:40px; height:40px; color:var(--dep-primary); }
.dep-tour-page .dep-tour-fact__ic svg{ width:100%; height:100%; }
.dep-tour-page .dep-tour-fact__lb{ font-size:11px; font-weight:700; letter-spacing:.06em; color:#8A857E; }
.dep-tour-page .dep-tour-fact__vl{ font-size:14.5px; font-weight:700; line-height:1.55; color:var(--dep-text); }
.dep-tour-page .dep-tour-fact__vl small{ display:block; font-size:11.5px; font-weight:500; color:#777; margin-top:3px; }
/* カードの日付「10.18」だけ 140% */
.dep-tour-page .dep-tour-fact__date{ font-size:1.4em; }

/* ===== ③ 作品紹介（STORY）※見出し・本文をセンター ===== */
.dep-tour-page .dep-tour-story__name{
  font-size:clamp(19px,2.6vw,24px); font-weight:700; line-height:1.5;
  letter-spacing:.01em; margin:0 0 6px; text-align:center;
}
.dep-tour-page .dep-tour-story__name small{
  display:block; font-size:13px; font-weight:600; color:#8A857E; letter-spacing:.02em; margin-bottom:8px;
}
.dep-tour-page .dep-tour-story__body{
  max-width:820px; font-size:15px; line-height:2; color:#444; margin:18px auto 0; text-align:left;
}
/* 限定リッチテキスト（見出し・太字・改行のみ）用の最小スタイル */
.dep-tour-page .dep-tour-story__body strong,
.dep-tour-page .dep-tour-story__body b{ font-weight:700; color:var(--dep-text); }
.dep-tour-page .dep-tour-story__body h3,
.dep-tour-page .dep-tour-story__body h4{ font-size:17px; font-weight:700; margin:22px 0 8px; text-align:left; }
.dep-tour-page .dep-tour-rights{
  max-width:820px; margin:28px auto 0; background:#f3f2ec; border:1px solid var(--dep-line); border-radius:10px;
  padding:16px 20px; font-size:11.5px; line-height:1.85; color:#8a857e;
}
.dep-tour-page .dep-tour-rights b{
  display:block; font-size:11px; font-weight:700; letter-spacing:.08em; color:#a09a92;
  text-transform:uppercase; margin-bottom:6px;
}

/* ===== ④ 行程表（縦タイムライン／アイコン選択式）＝雛形の要 ===== */
.dep-tour-page .dep-tour-flow{ position:relative; max-width:760px; margin-inline:auto; padding-left:6px; }
.dep-tour-page .dep-tour-flow::before{
  content:""; position:absolute; left:31px; top:18px; bottom:18px; width:2px;
  background:linear-gradient(180deg,var(--dep-primary-light),var(--dep-line));
}
.dep-tour-page .dep-tour-step{
  position:relative; display:grid; grid-template-columns:64px 1fr; gap:20px;
  align-items:start; padding-bottom:26px;
}
.dep-tour-page .dep-tour-step:last-child{ padding-bottom:0; }
.dep-tour-page .dep-tour-step__node{
  position:relative; z-index:1; width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; border:4px solid var(--dep-bg);
  background:var(--dep-primary); color:#fff;
}
.dep-tour-page .dep-tour-step__node svg{ width:24px; height:24px; }
/* 「移動」ステップ＝白抜き（イベント/移動を構造で区別＝情報を持つ装飾） */
.dep-tour-page .dep-tour-step--move .dep-tour-step__node{
  background:#fff; color:var(--dep-primary); border-color:var(--dep-bg);
  box-shadow:inset 0 0 0 2px var(--dep-primary-light);
}
.dep-tour-page .dep-sec--white .dep-tour-step__node{ border-color:#fff; }
.dep-tour-page .dep-sec--white .dep-tour-step--move .dep-tour-step__node{ border-color:#fff; }
.dep-tour-page .dep-tour-step__card{
  background:#fff; border:1px solid var(--dep-line); border-radius:10px; padding:16px 20px;
}
.dep-tour-page .dep-tour-step--move .dep-tour-step__card{ background:transparent; border-style:dashed; }
.dep-tour-page .dep-tour-step__time{
  display:inline-flex; align-items:center; font-family:var(--dep-en); font-weight:700;
  font-size:13px; letter-spacing:.02em; color:var(--dep-accent);
  background:#FFF3EA; border-radius:6px; padding:3px 10px; margin-bottom:8px;
}
.dep-tour-page .dep-tour-step__ttl{ font-size:16px; font-weight:700; line-height:1.5; margin:0; }
.dep-tour-page .dep-tour-step__note{ margin:6px 0 0; font-size:13.5px; line-height:1.8; color:#666; }
/* 行程フッター：ブロックは行程(760px)に合わせて中央、テキストは左揃え。
   .dep-wrap を噛ませて 0,3,0 とし、.dep-tour-page .entry-content p{margin:0}(0,2,1) を上書き。 */
.dep-tour-page .dep-wrap .dep-tour-flow__foot{ max-width:760px; margin:22px auto 0; font-size:12px; color:#8A857E; text-align:left; }

/* ===== ⑤ 旅行代金・条件 ===== */
.dep-tour-page .dep-tour-price{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(24px,3vw,44px);
  align-items:center; max-width:960px; margin-inline:auto;
}
.dep-tour-page .dep-tour-price__amount{
  background:var(--dep-primary); color:#fff; border-radius:var(--dep-radius,12px);
  padding:clamp(26px,3vw,38px); text-align:center;
}
.dep-tour-page .dep-tour-price__lb{ font-size:13px; font-weight:600; letter-spacing:.04em; opacity:.92; }
.dep-tour-page .dep-tour-price__yen{
  font-family:var(--dep-en); font-weight:700; line-height:1; margin:10px 0 0;
  font-size:clamp(40px,6vw,58px);
}
.dep-tour-page .dep-tour-price__yen small{ font-family:var(--dep-jp); font-size:20px; font-weight:700; margin-left:4px; }
.dep-tour-page .dep-tour-price__note{ margin:12px 0 0; font-size:12px; opacity:.9; line-height:1.7; }
.dep-tour-page .dep-tour-price__list{ list-style:none; margin:0; padding:0; }
.dep-tour-page .dep-tour-price__list li{
  display:flex; gap:12px; align-items:baseline; padding:13px 2px;
  border-bottom:1px dashed var(--dep-line); font-size:14.5px;
}
.dep-tour-page .dep-tour-price__list li:last-child{ border-bottom:0; }
.dep-tour-page .dep-tour-price__list dt{ flex:0 0 118px; font-size:13px; font-weight:700; color:var(--dep-primary); }
.dep-tour-page .dep-tour-price__list dd{ margin:0; color:#454545; line-height:1.75; }
.dep-tour-page .dep-tour-incl{ display:flex; flex-wrap:wrap; gap:8px; }
.dep-tour-page .dep-tour-incl span{
  font-size:12.5px; font-weight:700; color:var(--dep-primary); background:#E8F5FC;
  border-radius:999px; padding:5px 13px;
}

/* ===== ⑥ 取消料（全ツアー共通＝再利用ブロック想定）※見出し・表をセンター ===== */
.dep-tour-page .dep-wrap .dep-tour-cancel__lead{
  max-width:820px; font-size:14px; color:#555; line-height:1.9; margin:0 auto 22px; text-align:left;
}
.dep-tour-page .dep-tour-cancel__table{
  max-width:820px; margin-inline:auto; border:1px solid var(--dep-line);
  border-radius:var(--dep-radius,12px); overflow:hidden;
}
.dep-tour-page .dep-tour-cancel__row{ display:grid; grid-template-columns:1.6fr 1fr; }
.dep-tour-page .dep-tour-cancel__row+.dep-tour-cancel__row{ border-top:1px solid var(--dep-line); }
.dep-tour-page .dep-tour-cancel__row--head{ background:rgba(0,129,204,.05); }
.dep-tour-page .dep-tour-cancel__row--head>div{ font-weight:700; font-size:13px; color:var(--dep-text); }
.dep-tour-page .dep-tour-cancel__row>div{ padding:14px 20px; font-size:14px; line-height:1.7; color:#454545; }
.dep-tour-page .dep-tour-cancel__row>div:first-child{ border-right:1px solid var(--dep-line); }
.dep-tour-page .dep-tour-cancel__row>div small{ display:block; font-size:12px; color:#888; margin-top:2px; }
.dep-tour-page .dep-tour-cancel__row--head>div:last-child,
.dep-tour-page .dep-tour-cancel__row>div:last-child{ text-align:right; font-weight:700; }

/* ===== ⑦ FAQ（法人LPと同仕様・details） ===== */
.dep-tour-page .dep-tour-faq{ max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:12px; }
.dep-tour-page .dep-tour-faq details{ background:#fff; border:1px solid var(--dep-line); border-radius:10px; overflow:hidden; }
.dep-tour-page .dep-tour-faq summary{
  list-style:none; cursor:pointer; padding:18px 22px; font-size:15.5px; font-weight:700;
  display:flex; align-items:center; gap:14px;
}
.dep-tour-page .dep-tour-faq summary::-webkit-details-marker{ display:none; }
.dep-tour-page .dep-tour-faq__q{ flex:0 0 auto; font-family:var(--dep-en); font-weight:700; color:var(--dep-primary); }
.dep-tour-page .dep-tour-faq__ic{ margin-left:auto; flex:0 0 auto; width:18px; height:18px; position:relative; transition:transform .25s ease; }
.dep-tour-page .dep-tour-faq__ic::before,
.dep-tour-page .dep-tour-faq__ic::after{ content:""; position:absolute; background:var(--dep-primary); border-radius:2px; }
.dep-tour-page .dep-tour-faq__ic::before{ left:0; top:8px; width:18px; height:2px; }
.dep-tour-page .dep-tour-faq__ic::after{ left:8px; top:0; width:2px; height:18px; transition:transform .25s ease; }
.dep-tour-page .dep-tour-faq details[open] summary .dep-tour-faq__ic::after{ transform:scaleY(0); }
.dep-tour-page .dep-tour-faq__a{ padding:0 22px 20px 54px; font-size:14.5px; line-height:1.95; color:#4a4a4a; }
.dep-tour-page .dep-tour-faq__a-label{ font-family:var(--dep-en); font-weight:700; color:var(--dep-accent); margin-right:6px; }

/* ===== ⑧ 申込導線（Googleフォーム／状態連動・全幅アクセント帯 #daeaf7） ===== */
.dep-tour-page .dep-tour-apply{
  max-width:none !important; width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; background:#daeaf7; text-align:center;
}
.dep-tour-page .dep-tour-apply .dep-eyebrow{ color:var(--dep-primary); justify-content:center; }
.dep-tour-page .dep-tour-apply__ttl{
  font-size:clamp(20px,2.6vw,26px); font-weight:700; color:#1E293B; margin:12px 0 0; line-height:1.5;
}
.dep-tour-page .dep-tour-apply__lead{ font-size:14px; color:#3a4a55; margin:14px 0 28px; }
/* ボタン＝ヘッダー .dep-contact 仕様（共通仕様#2） */
.dep-tour-page .dep-tour-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--dep-accent); color:#fff !important; font-weight:600; font-size:16px;
  padding:15px 40px; border-radius:999px; white-space:nowrap; border:1px solid var(--dep-accent);
  text-decoration:none !important; transition:background .2s,color .2s,border-color .2s;
}
.dep-tour-page .dep-tour-btn:hover{ background:#fff; color:var(--dep-accent) !important; }
.dep-tour-page .dep-tour-btn svg{ width:18px; height:18px; }
/* 販売終了時（状態＝closed）：非活性見た目＋文言差替 */
.dep-tour-page .dep-tour-btn.is-closed{
  background:#b7b2ab; border-color:#b7b2ab; color:#fff !important; pointer-events:none; cursor:default;
}
.dep-tour-page .dep-tour-apply__note{ font-size:12.5px; color:#5a6a75; margin:18px 0 0; }

/* ===== ⑨ 関連ツアー ===== */
.dep-tour-page .dep-tour-rel{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.dep-tour-page .dep-tour-rel__card{
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--dep-line);
  border-radius:var(--dep-radius,12px); overflow:hidden; text-decoration:none !important; color:inherit;
  transition:transform .18s,box-shadow .18s,border-color .18s;
}
.dep-tour-page .dep-tour-rel__card:hover{
  transform:translateY(-4px); box-shadow:0 12px 28px rgba(0,0,0,.08); border-color:var(--dep-primary-light);
}
.dep-tour-page .dep-tour-rel__photo{ position:relative; aspect-ratio:16/10; background:var(--dep-gray); overflow:hidden; }
.dep-tour-page .dep-tour-rel__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-rel__badge{
  position:absolute; top:10px; left:10px; font-size:11px; font-weight:700; color:#fff;
  padding:4px 10px; border-radius:999px; letter-spacing:.03em;
}
.dep-tour-page .dep-tour-rel__badge.is-go{ background:var(--dep-primary); }
.dep-tour-page .dep-tour-rel__badge.is-closed{ background:rgba(50,50,50,.72); }
/* ★ is-new（NEW！）はラフに現れなかったため未定義だった。CPT版はカードのバッジも
   状態プリセットから自動生成するため、地色が無いと白文字が読めなくなる（2026/8/11 プレビューで発見）。 */
.dep-tour-page .dep-tour-rel__badge.is-new{ background:var(--dep-accent); }
.dep-tour-page .dep-tour-rel__body{ padding:16px 18px 18px; display:flex; flex-direction:column; flex:1; }
/* 組名＝ヒーローと同じ燕尾（スワロウテール）リボン。色は組のイメージカラー＝「推し色」。
   ファンにとって推し色は公演を見分ける最短の手がかりのため、一覧カードでも同じ色で出す
   （2026/8/11 クライアント要望）。色の定義は上の「組別プリセット」に集約。 */
/* ★既定色は **わざと詳細度を下げて**（0,2,0）置く。
   組別プリセット（.dep-tour-rel__group.is-hoshi ＝0,3,0）はファイルの前方にあるため、
   ここに 0,3,0 で既定色を書くと「後に書いた同詳細度」が勝ってしまい、
   **全部ピンクになる**（2026/8/11 プレビューで発生）。形の指定だけを 0,3,0 に置く。 */
.dep-tour-page .dep-tour-rel__group{ --dep-group-color:#ffbccc; --dep-group-text:#5a2a37; } /* 組未選択のときの色 */
.dep-tour-page .dep-tour-rel__body .dep-tour-rel__group{
  display:block; margin:0 0 10px; padding:7px 24px; text-align:center;
  font-size:12.5px; font-weight:800; letter-spacing:.12em; line-height:1.35;
  color:var(--dep-group-text); background:var(--dep-group-color);
  clip-path:polygon(0 0, 100% 0, calc(100% - 11px) 50%, 100% 100%, 0 100%, 11px 50%);
  filter:drop-shadow(0 2px 4px rgba(0,18,34,.10));
}
/* ★詳細度：カード内のテキストは <p> のため .dep-tour-page .entry-content p{margin:0}(0,2,1) に負ける。
   祖先 .dep-tour-rel__body を噛ませて 0,3,0 に上げる（取消料リード・組リボンと同じ手筋）。
   これが無いと margin が全て 0 に潰れ、行が詰まって読めなくなる（2026/8/11 実機で確認）。 */
.dep-tour-page .dep-tour-rel__body .dep-tour-rel__ttl{ font-size:15px; font-weight:700; line-height:1.5; margin:6px 0 6px; }
/* 演目・主演＝同名タイトルのツアーを見分けるための行（クライアント要望・2026/8/11） */
.dep-tour-page .dep-tour-rel__body .dep-tour-rel__program{
  font-size:13.5px; font-weight:700; line-height:1.6; margin:0 0 4px; color:var(--dep-text);
}
.dep-tour-page .dep-tour-rel__body .dep-tour-rel__cast{
  font-size:12.5px; line-height:1.65; margin:0 0 10px; color:#6f6d66;
}
.dep-tour-page .dep-tour-rel__date{ font-family:var(--dep-en); font-size:12.5px; color:#8A857E; margin-top:auto; }

/* 俳優写真を下地写真の上に重ねる（contain＝トリミングしない）。
   詳細ページのヒーロー（.dep-tour-actor）と同じ「切り抜かない」約束をカードでも守る。 */
.dep-tour-page .dep-tour-rel__actor{
  position:absolute; right:10px; bottom:0; top:12px; width:44%; z-index:1;
  display:flex; align-items:flex-end; justify-content:flex-end; pointer-events:none;
}
.dep-tour-page .dep-tour-rel__actor img{
  width:100%; height:100%; object-fit:contain; object-position:bottom right; display:block;
  filter:drop-shadow(0 6px 16px rgba(0,18,34,.42));
}
/* 俳優写真を重ねるカードだけ、下地を少し沈めて人物を立たせる＋バッジの可読性を確保 */
.dep-tour-page .dep-tour-rel__photo.has-actor::after{
  content:""; position:absolute; inset:0; z-index:0;
  background:linear-gradient(100deg,rgba(9,20,30,.34) 0%,rgba(9,20,30,.12) 45%,rgba(9,20,30,0) 70%);
}
.dep-tour-page .dep-tour-rel__badge{ z-index:2; }

/* ===== レスポンシブ ===== */
@media (max-width:900px){
  .dep-tour-page .dep-tour-facts{ grid-template-columns:repeat(2,1fr); }
  .dep-tour-page .dep-tour-rel{ grid-template-columns:1fr; gap:16px; }
}
@media (max-width:768px){
  .dep-tour-page .dep-tour-hero{ padding:36px 16px; }
  .dep-tour-page .dep-tour-hero__panel{ grid-template-columns:1fr; gap:20px; padding:22px; }
  .dep-tour-page .dep-tour-actor__frame{ max-width:240px; margin-inline:auto; }
  .dep-tour-page .dep-tour-actor figcaption{ text-align:center; }
  .dep-tour-page .dep-tour-price{ grid-template-columns:1fr; gap:22px; }
  .dep-tour-page .dep-tour-cancel__row{ grid-template-columns:1fr; }
  .dep-tour-page .dep-tour-cancel__row>div:first-child{ border-right:0; border-bottom:1px solid var(--dep-line); }
  .dep-tour-page .dep-tour-cancel__row--head>div:last-child,
  .dep-tour-page .dep-tour-cancel__row>div:last-child{ text-align:left; }
  .dep-tour-page .dep-tour-faq__a{ padding-left:22px; }
  .dep-tour-page .dep-tour-step{ grid-template-columns:52px 1fr; gap:14px; }
  .dep-tour-page .dep-tour-flow::before{ left:25px; }
}


/* =================================================================
   genre: scenic-bus（絶景バスツアー）ジャンル差分
   - 上の雛形を流用し、本ジャンル固有の差分のみ追記（共通プリミティブは再定義しない）
   - スコープは .dep-tour-page。対象：a-tour-sample（暫定スラッグ／CPT移行時に差し替え）
   - 宝塚（俳優写真ヒーロー）は従来の .dep-tour-hero を使用。本ジャンルは .dep-tour-hero2 を使用。
================================================================= */

/* ① ヒーロー：画像ギャラリー＋情報の分離型（焼き込み型 .dep-tour-hero は不使用） */
.dep-tour-page .dep-tour-hero2{ padding-block:clamp(24px,3.4vw,40px); max-width:none !important; width:100vw !important; margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important; }
.dep-tour-page .dep-tour-hero2__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,52px); align-items:center; }
.dep-tour-page .dep-tour-hero2__info{ min-width:0; }
.dep-tour-page .dep-tour-hero__price{ margin:16px 0 0; font-size:14px; color:#3a3a3a; }
.dep-tour-page .dep-tour-hero__price b{ font-family:var(--dep-en); font-size:1.35em; font-weight:700; color:var(--dep-primary); }

/* 画像ギャラリー（メイン＋サムネ／クリック・スワイプ／1枚でも破綻しない） */
.dep-tour-page .dep-tour-gallery{ min-width:0; }
.dep-tour-page .dep-tour-gallery__main{ position:relative; aspect-ratio:16/10; border-radius:var(--dep-radius,12px); overflow:hidden; background:#0e1a26; box-shadow:0 18px 44px rgba(0,18,34,.16); }
.dep-tour-page .dep-tour-gallery__slide{ position:absolute; inset:0; opacity:0; transition:opacity .4s ease; pointer-events:none; }
.dep-tour-page .dep-tour-gallery__slide.is-active{ opacity:1; pointer-events:auto; }
.dep-tour-page .dep-tour-gallery__slide > div,
.dep-tour-page .dep-tour-gallery__slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-gallery__cap{ position:absolute; left:14px; bottom:12px; z-index:2; color:#fff; font-weight:700; font-size:13px; letter-spacing:.02em; text-shadow:0 1px 8px rgba(0,0,0,.55); }
/* ナビ矢印ボタン：親テーマ(Astra)の button 既定（padding / color:#fff / min-width 等）に
   潰されないよう、形状・サイズ・背景・色を明示リセット（!important で確実に上書き）。
   SVGは currentColor 依存をやめ stroke を直接指定＝白背景でも矢印が必ず見える。 */
.dep-tour-page .dep-tour-gallery__nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:3;
  -webkit-appearance:none; appearance:none; box-sizing:border-box !important;
  width:40px !important; height:40px !important; min-width:0 !important; min-height:0 !important;
  padding:0 !important; margin:0 !important; line-height:0 !important;
  border:0 !important; outline:none; border-radius:50% !important;
  background:rgba(255,255,255,.94) !important; color:var(--dep-text) !important;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 10px rgba(0,0,0,.18); transition:background .2s;
}
.dep-tour-page .dep-tour-gallery__nav:hover{ background:#fff !important; }
.dep-tour-page .dep-tour-gallery__nav svg{
  width:18px !important; height:18px !important; display:block;
  fill:none !important; stroke:var(--dep-primary) !important; stroke-width:2.2;
}
.dep-tour-page .dep-tour-gallery__nav--prev{ left:10px; }
.dep-tour-page .dep-tour-gallery__nav--next{ right:10px; }
.dep-tour-page .dep-tour-gallery__thumbs{ display:flex; gap:8px; margin-top:10px; }
.dep-tour-page .dep-tour-gallery__thumb{ flex:1 1 0; min-width:0; aspect-ratio:16/10; border-radius:8px; overflow:hidden; border:2px solid transparent; background:none; padding:0; cursor:pointer; transition:border-color .2s,transform .15s; }
.dep-tour-page .dep-tour-gallery__thumb > div,
.dep-tour-page .dep-tour-gallery__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-gallery__thumb:hover{ transform:translateY(-2px); }
.dep-tour-page .dep-tour-gallery__thumb.is-active{ border-color:var(--dep-primary); }
/* 画像1枚のとき：サムネ・矢印を自動的に隠す（JSが .is-single を付与） */
.dep-tour-page .dep-tour-gallery.is-single .dep-tour-gallery__thumbs,
.dep-tour-page .dep-tour-gallery.is-single .dep-tour-gallery__nav{ display:none; }

/* ③ 見どころ（STORYの本文枠 .dep-tour-story__body を intro に流用＋カードグリッド） */
.dep-tour-page .dep-tour-hl{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; max-width:960px; margin:clamp(28px,4vw,40px) auto 0; }
.dep-tour-page .dep-tour-hl__card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--dep-line); border-radius:var(--dep-radius,12px); overflow:hidden; }
.dep-tour-page .dep-tour-hl__photo{ position:relative; aspect-ratio:16/9; overflow:hidden; }
.dep-tour-page .dep-tour-hl__photo > div,
.dep-tour-page .dep-tour-hl__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-hl__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.42) 100%); }
.dep-tour-page .dep-tour-hl__cap{ position:absolute; left:14px; bottom:11px; z-index:1; color:#fff; font-weight:700; font-size:13px; letter-spacing:.02em; }
.dep-tour-page .dep-tour-hl__cap small{ display:block; font-size:11px; font-weight:600; opacity:.9; margin-top:2px; }
.dep-tour-page .dep-tour-hl__body{ padding:16px 20px 18px; }
.dep-tour-page .dep-tour-hl__ttl{ font-size:16px; font-weight:700; line-height:1.5; margin:0 0 7px; }
.dep-tour-page .dep-tour-hl__note{ margin:0; font-size:13.5px; line-height:1.9; color:#555; }

/* ④ 行程：Day見出し（1泊2日を区切る） */
.dep-tour-page .dep-tour-day{ max-width:760px; margin:0 auto clamp(16px,2.4vw,24px); display:flex; align-items:center; gap:14px; }
.dep-tour-page .dep-tour-flow + .dep-tour-day{ margin-top:clamp(30px,4vw,46px); }
.dep-tour-page .dep-tour-day__n{ font-family:var(--dep-en); font-weight:700; font-size:12.5px; letter-spacing:.06em; color:#fff; background:var(--dep-primary); border-radius:999px; padding:6px 16px; white-space:nowrap; }
.dep-tour-page .dep-tour-day__t{ font-size:14.5px; font-weight:700; color:var(--dep-text); }
.dep-tour-page .dep-tour-day::after{ content:""; flex:1; height:1px; background:var(--dep-line); }

/* ⑤ 宿泊のご案内 */
.dep-tour-page .dep-tour-stay{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,3.4vw,44px); max-width:1000px; margin-inline:auto; align-items:start; }
.dep-tour-page .dep-tour-stay__name{ font-size:clamp(19px,2.4vw,23px); font-weight:700; line-height:1.5; margin:0 0 4px; }
.dep-tour-page .dep-tour-stay__sub{ font-size:13px; font-weight:700; color:var(--dep-primary); margin:0 0 16px; }
.dep-tour-page .dep-tour-stay__lead{ font-size:14.5px; line-height:2; color:#555; margin:0 0 18px; }
.dep-tour-page .dep-tour-stay__spec{ list-style:none; margin:0; padding:0; }
.dep-tour-page .dep-tour-stay__spec li{ display:flex; gap:12px; align-items:baseline; padding:11px 2px; border-bottom:1px dashed var(--dep-line); font-size:14px; }
.dep-tour-page .dep-tour-stay__spec li:last-child{ border-bottom:0; }
.dep-tour-page .dep-tour-stay__spec li span:first-child{ flex:0 0 84px; font-size:13px; font-weight:700; color:var(--dep-primary); }
.dep-tour-page .dep-tour-stay__spec li span:last-child{ color:#454545; line-height:1.75; }
.dep-tour-page .dep-tour-stay__note{ font-size:12px; color:#8A857E; line-height:1.85; margin:14px 0 0; }
.dep-tour-page .dep-tour-stay__photos{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.dep-tour-page .dep-tour-stay__photo{ position:relative; margin:0; aspect-ratio:4/3; border-radius:10px; overflow:hidden; border:1px solid var(--dep-line); }
.dep-tour-page .dep-tour-stay__photo > div,
.dep-tour-page .dep-tour-stay__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-stay__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.4) 100%); }
.dep-tour-page .dep-tour-stay__photo figcaption{ position:absolute; left:10px; bottom:8px; z-index:1; color:#fff; font-size:12px; font-weight:700; letter-spacing:.02em; text-shadow:0 1px 6px rgba(0,0,0,.5); }

/* ⑥ 料金：レンジ表示（単価カード .dep-tour-price__amount をレンジ対応に） */
.dep-tour-page .dep-tour-price__yen--range{ font-size:clamp(26px,4vw,40px); }
.dep-tour-page .dep-tour-price__tilde{ font-family:var(--dep-jp); font-size:.5em; font-weight:700; margin:0 8px; opacity:.9; }

/* ⑥ 出発日別 料金テーブル（★出発日で料金・空席が変わるジャンル用） */
.dep-tour-page .dep-tour-dep{ max-width:960px; margin:clamp(30px,4vw,46px) auto 0; background:#fff; border:1px solid var(--dep-line); border-radius:var(--dep-radius,12px); overflow:hidden; }
.dep-tour-page .dep-tour-dep__cap{ max-width:960px; margin:0 auto 14px; text-align:center; font-size:15px; font-weight:700; color:var(--dep-text); }
.dep-tour-page .dep-tour-dep__row{ display:grid; grid-template-columns:1.4fr 1fr .95fr 1fr; align-items:center; }
.dep-tour-page .dep-tour-dep__row + .dep-tour-dep__row{ border-top:1px solid var(--dep-line); }
.dep-tour-page .dep-tour-dep__row--head{ background:rgba(0,129,204,.05); }
.dep-tour-page .dep-tour-dep__row--head > div{ font-size:12.5px; font-weight:700; color:var(--dep-text); }
.dep-tour-page .dep-tour-dep__row--full{ background:#faf9f5; }
.dep-tour-page .dep-tour-dep__row > div{ padding:15px 18px; font-size:14.5px; line-height:1.55; }
.dep-tour-page .dep-tour-dep__k{ display:none; }
.dep-tour-page .dep-tour-dep__date b{ font-weight:700; }
.dep-tour-page .dep-tour-dep__date small{ display:block; font-size:11.5px; color:#8A857E; margin-top:2px; }
.dep-tour-page .dep-tour-dep__peak{ display:inline-block; font-size:10.5px; font-weight:700; color:#9A4D12; background:#FFF3EA; border-radius:5px; padding:1px 7px; margin-left:6px; vertical-align:2px; }
.dep-tour-page .dep-tour-dep__price{ font-family:var(--dep-en); font-weight:700; font-size:16px; color:var(--dep-primary); }
.dep-tour-page .dep-tour-dep__price small{ font-family:var(--dep-jp); font-size:12px; font-weight:700; margin-left:2px; }
.dep-tour-page .dep-tour-dep__st{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; padding:4px 12px; border-radius:999px; line-height:1; }
.dep-tour-page .dep-tour-dep__st.is-open{ background:#E8F5FC; color:var(--dep-primary); }
.dep-tour-page .dep-tour-dep__st.is-open::before{ content:"\25CB"; }
.dep-tour-page .dep-tour-dep__st.is-few{ background:#FFF3EA; color:#c25e12; }
.dep-tour-page .dep-tour-dep__st.is-few::before{ content:"\25B3"; }
.dep-tour-page .dep-tour-dep__st.is-full{ background:#efeee9; color:#8f8b84; }
.dep-tour-page .dep-tour-dep__st.is-full::before{ content:"\00D7"; }
.dep-tour-page .dep-tour-dep__btn{ display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; padding:9px 20px; border-radius:999px; white-space:nowrap; background:var(--dep-accent); color:#fff !important; border:1px solid var(--dep-accent); text-decoration:none !important; transition:background .2s,color .2s; }
.dep-tour-page .dep-tour-dep__btn:hover{ background:#fff; color:var(--dep-accent) !important; }
.dep-tour-page .dep-tour-dep__btn.is-closed{ background:#c7c2ba; border-color:#c7c2ba; color:#fff !important; pointer-events:none; cursor:default; }
.dep-tour-page .dep-tour-dep__foot{ max-width:960px; margin:16px auto 0; font-size:12px; color:#8A857E; text-align:center; line-height:1.8; }

/* genre レスポンシブ */
@media (max-width:860px){
  .dep-tour-page .dep-tour-hero2__grid{ grid-template-columns:1fr; gap:22px; }
}
@media (max-width:768px){
  .dep-tour-page .dep-tour-hl{ grid-template-columns:1fr; gap:16px; }
  .dep-tour-page .dep-tour-stay{ grid-template-columns:1fr; gap:24px; }
  .dep-tour-page .dep-tour-dep__row--head{ display:none; }
  .dep-tour-page .dep-tour-dep__row{ grid-template-columns:1fr; gap:3px; padding:15px 16px; }
  .dep-tour-page .dep-tour-dep__row > div{ padding:3px 0; }
  .dep-tour-page .dep-tour-dep__date{ font-size:15px; }
  .dep-tour-page .dep-tour-dep__k{ display:inline-block; font-size:11px; font-weight:700; color:#8A857E; margin-right:8px; }
  .dep-tour-page .dep-tour-dep__apply{ margin-top:9px; }
  .dep-tour-page .dep-tour-day{ gap:10px; }
}


/* =================================================================
   CPT「ツアー」版で増えたコンポーネント（2026/08/11・v30）
   - 対象：/tour/（ハブ archive-tour.php）／/tour-{ジャンル}/（page-tour-genre.php）
   - 詳細ページ（single-tour.php）の見た目は上の雛形をそのまま使う＝ここには増やさない
   - スコープは従来どおり .dep-tour-page（body_class）
================================================================= */

/* ジャンルのヘッダー帯（背景写真＋見出し＋リード）＝全幅。
   ヒーロー（.dep-tour-hero）より軽い、一覧ページ用の帯。 */
.dep-tour-page .dep-tour-ghead{
  position:relative; overflow:hidden;
  max-width:none !important; width:100vw !important;
  margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;
  padding:clamp(40px,6vw,72px) 20px; background:#12202c; color:#fff; text-align:center;
}
.dep-tour-page .dep-tour-ghead__bg{ position:absolute; inset:0; z-index:0; }
.dep-tour-page .dep-tour-ghead__bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.dep-tour-page .dep-tour-ghead__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(9,20,30,.52) 0%,rgba(9,20,30,.66) 100%);
}
/* 写真が無いとき（ハブ）は生成りではなく落ち着いた紺地のまま＝文字が必ず読める */
.dep-tour-page .dep-tour-ghead__inner{ position:relative; z-index:2; width:min(880px,100%); margin-inline:auto; }
.dep-tour-page .dep-tour-ghead__en{
  font-family:var(--dep-en); font-size:12px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:#bfe3f7; display:block;
}
.dep-tour-page .dep-tour-ghead .dep-tour-ghead__ttl{
  font-size:clamp(24px,3.4vw,36px); font-weight:700; line-height:1.4; letter-spacing:.02em;
  margin:10px 0 0; color:#fff;
}
.dep-tour-page .dep-tour-ghead .dep-tour-ghead__lead{
  max-width:760px; margin:16px auto 0; font-size:14.5px; line-height:2; color:rgba(255,255,255,.9); text-align:left;
}

/* 一覧のカードグリッド（.dep-tour-rel を流用し、件数が増えても崩れないよう可変列に） */
.dep-tour-page .dep-tour-list{ grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); }
/* 写真が未設定のカード（アイキャッチ・ヒーロー背景・俳優写真のいずれも無いとき） */
.dep-tour-page .dep-tour-rel__ph{
  width:100%; height:100%;
  background:linear-gradient(135deg,#dfe7ec,#c3ced6);
}

/* 「○○の一覧を見る →」＝共通仕様#3（青テキスト＋矢印・ピル背景は使わない） */
.dep-tour-page .dep-wrap .dep-tour-more{ margin:clamp(22px,3vw,30px) 0 0; text-align:center; }
.dep-tour-page .dep-tour-more a{
  display:inline-flex; align-items:center; gap:6px;
  font-size:14.5px; font-weight:700; color:var(--dep-primary); text-decoration:none;
  transition:gap .2s;
}
.dep-tour-page .dep-tour-more a:hover{ gap:12px; }

/* ツアーが1本も無いジャンル（準備中） */
.dep-tour-page .dep-wrap .dep-tour-empty{
  max-width:820px; margin:0 auto; padding:36px 20px; text-align:center;
  font-size:14.5px; color:#8A857E; background:#fff;
  border:1px dashed var(--dep-line); border-radius:var(--dep-radius,12px);
}
