/* ==========================================================================
   AOKI TRAVEL — page-tour.css（ツアー詳細3本で共有・子CC-B）
   詳細：左＝写真の縦積み＋キャプション／右＝sticky 申込カード（タブ3）
   → 紺帯「含まれるもの」→ 紙色「日程」タイムライン → 料金表 → 催行条件 → ギャラリー
   → 集合場所（地図）→ FAQ → 関連ツアー → CTA帯
   ========================================================================== */

/* ---------- 上部2列 ---------- */
.tour-top{padding:20px 0 var(--sec-pb)}
.tour-layout{display:grid;grid-template-columns:minmax(0,1fr) 560px;gap:48px;align-items:start}

/* 左：写真の縦積み */
.tour-photos{display:flex;flex-direction:column;gap:26px}
.tour-photos figure{margin:0}
.tour-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow-card)}
.tour-photos figcaption{margin-top:10px;padding-left:2px;font-size:var(--fs-small);color:var(--ink-2)}
.tour-photos figcaption .script{font-size:22px;line-height:1.1;color:var(--olive);margin-right:8px}

/* 右：sticky 申込カード */
.tour-card{position:sticky;top:24px;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:30px 32px 28px;border-top:8px solid var(--orange)}
.tour-card__title{margin:14px 0 14px}
.tour-card__meta{margin-bottom:20px}
.tour-card__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tour-card__price strong{font-family:var(--font-serif);font-weight:700;font-size:34px;line-height:1;color:var(--ink)}
.tour-card__price small{font-size:var(--fs-small);color:var(--ink-2)}
.tour-card__price .tour-card__from{display:block;width:100%;font-size:var(--fs-xs);color:var(--ink-2)}
.tour-card__cta{margin:20px 0 0}
.tour-card__note{margin:12px 0 0;font-size:var(--fs-xs);line-height:1.7;color:var(--ink-2)}
.tour-card__summary{margin:22px 0 6px;font-size:15px;line-height:1.8}
.tour-card .tabs__nav{margin-top:4px}
.tour-card .tabs__panel{padding-top:18px;font-size:15px}
.tour-card .checklist li{margin-bottom:8px;padding-left:28px}
.tour-card .checklist li::before{top:.1em;width:18px;height:18px}
.brief{margin:0}
.brief > div{display:grid;grid-template-columns:92px 1fr;gap:4px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
.brief > div:last-child{border-bottom:0}
.brief dt{font-weight:700;font-size:var(--fs-small);color:var(--orange-text);letter-spacing:.04em}
.brief dd{margin:0;font-size:15px}

/* ---------- 紺帯：含まれるもの／含まれないもの ---------- */
.incl .sec-head{margin-bottom:40px}
.incl__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:960px;margin:0 auto}
.incl__col{border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:28px 30px 20px}
.incl__col h3{margin-bottom:16px;color:var(--buff)}
.incl__col .checklist li{margin-bottom:10px}
.checklist--no{--x-buff:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23ebd999' stroke-width='2.2' stroke-linecap='round' d='M5 5l10 10M15 5L5 15'/%3E%3C/svg%3E")}
.checklist--no li::before{background-image:var(--x-buff);width:17px;height:17px;left:2px;top:.25em}

/* ---------- 日程（タイムライン） ---------- */
.itin__wrap{max-width:var(--text);margin:0 auto}
.itin__meta{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:-28px 0 40px}
.tl-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.tl-row .tag{position:relative;top:-2px}
.timeline .timeline__body{margin-top:6px;font-size:15px}
.timeline .timeline__body:empty{display:none}
.itin__note{max-width:var(--text);margin:18px auto 0;font-size:var(--fs-small);color:var(--ink-2)}

/* ---------- 料金表 ---------- */
.price .sec-head{margin-bottom:40px}
.price-table{min-width:760px}
.price-table thead tr:first-child th{border-bottom-color:rgba(255,255,255,.25)}
.price-table thead th[colspan]{text-align:center}
.price-table thead tr:last-child th{text-align:right;font-weight:400;color:rgba(255,255,255,.85)}
.price-table .col-hi{border-left:1px solid var(--line)}
.price-table thead .col-hi{border-left-color:rgba(255,255,255,.25)}
.price-table .price-min{color:var(--orange-text)}
.price-table td.is-na{text-align:center;font-family:var(--font-body);font-weight:400;color:var(--ink-2)}
.price-notes{max-width:var(--text);margin:20px auto 0;font-size:var(--fs-small);color:var(--ink-2)}
.price-notes li{position:relative;padding-left:1.2em;margin-bottom:4px}
.price-notes li::before{content:"※";position:absolute;left:0}
.price-legend{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin:0 0 18px;font-size:var(--fs-small);color:var(--ink-2)}
.price-legend .price-min{font-weight:700}
.price-hint{display:none;margin:0 0 8px;text-align:right;font-size:var(--fs-xs);color:var(--ink-2)}
@media (max-width:767px){.price-hint{display:block}}

/* ---------- 催行条件・難易度・持ち物 ---------- */
.cond__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:start}
.cond__grid .dl-table{background:var(--white)}
.cond__grid .dl-table dt{background:var(--white);color:var(--orange-text)}
.cond__level{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 8px}
.cond__level .level{font-size:16px}
.cond__level .level__dots i{width:10px;height:10px}
.cond__legend{margin:0 0 28px;font-size:var(--fs-xs);color:var(--ink-2)}
.cond h3{margin-bottom:12px}
.cond__items{columns:2;column-gap:24px}
.cond__items li{break-inside:avoid;margin-bottom:8px}

/* ---------- ギャラリー ---------- */
.gal .gallery{max-width:1103px;margin:0 auto}

/* ---------- 集合場所 ---------- */
.meet__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:start}
.meet__map{display:block;width:100%;height:auto;aspect-ratio:4/3;border:0;border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--line)}
.meet__body h3{margin-bottom:10px}
.meet__body .dl-table{background:var(--white);margin-bottom:18px}
.meet__body .dl-table dt{background:var(--white);color:var(--orange-text)}
.meet__note{font-size:var(--fs-small);color:var(--ink-2)}

/* ---------- FAQ ---------- */
.tfaq .acc__btn > span:first-child{padding-right:8px}
.tfaq__more{margin:26px 0 0;text-align:center}

/* ---------- 関連ツアー ---------- */
.rel .sec-head{margin-bottom:40px}
.rel__more{margin-top:40px}

/* ---------- レスポンシブ ---------- */
@media (max-width:1199px){
  .tour-layout{grid-template-columns:minmax(0,1fr) 480px;gap:36px}
  .tour-card{padding:26px 26px 24px}
}
@media (max-width:1023px){
  .tour-layout{grid-template-columns:1fr;gap:32px}
  .tour-card{position:static;order:-1}
  .tour-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .tour-photos figure:first-child{grid-column:1/-1}
  .incl__grid{gap:20px}
  .cond__grid,.meet__grid{grid-template-columns:1fr;gap:32px}
}
@media (max-width:767px){
  .tour-top{padding-top:12px}
  .tour-card{padding:22px 20px 20px}
  .tour-card__price strong{font-size:30px}
  .tour-photos{gap:14px}
  .incl__grid{grid-template-columns:1fr}
  .incl__col{padding:22px 20px 14px}
  .itin__meta{margin:-16px 0 28px}
  .cond__items{columns:1}
  .price-notes,.itin__note{font-size:var(--fs-xs)}
}

/* ==========================================================================
   A-3／A-4／A-5：密疎のリズム・紙フレーム・出現の統一（Hallmark audit 反映）
   ========================================================================== */

/* A-4：左の写真列に「バフ色の紙フレーム」（憲法D③）を当てる。
   キャプションはフレーム内の下辺に置き、写真の下端で厚くなる紙の帯に載せる。 */
.tour-photos figure{margin:0;background:var(--buff);border-radius:3px;padding:8px 8px 0;box-shadow:var(--shadow-card)}
.tour-photos figure:nth-child(odd){transform:rotate(-.5deg)}
.tour-photos figure:nth-child(even){transform:rotate(.4deg)}
.tour-photos img{border-radius:2px;box-shadow:none}
.tour-photos figcaption{margin:0;padding:12px 6px 14px;color:var(--ink);font-size:var(--fs-small);line-height:1.7}
.tour-photos figcaption .script{color:var(--olive)}
@media (max-width:767px){
  .tour-photos figure:nth-child(odd),.tour-photos figure:nth-child(even){transform:none}
}

/* A-3：8セクションが全て 70/100・中央見出しの反復だったので緩急をつける。
   （会社概要ページと同じ考え方＝隣り合う面で余白と見出し位置を変える） */
.incl{padding-top:66px;padding-bottom:78px}
.itin{padding-top:80px;padding-bottom:96px}
.price{padding-top:64px;padding-bottom:84px}
.cond{padding-top:72px;padding-bottom:90px}
.gal{padding-top:60px;padding-bottom:76px}
.meet{padding-top:76px;padding-bottom:96px}
.tfaq{padding-top:64px;padding-bottom:80px}
.rel{padding-top:72px;padding-bottom:92px}

/* 日程と集合場所は左寄せ見出しにして、中央寄せ8連の単調さを断つ */
.itin .sec-head,.meet .sec-head{text-align:left;margin-left:0}
.itin .sec-head__en,.itin .sec-head__lead,.meet .sec-head__en,.meet .sec-head__lead{margin-left:0}
.itin .sec-head{max-width:var(--text);margin-right:auto}
.itin__meta{justify-content:flex-start}
@media (max-width:767px){
  .itin .sec-head,.meet .sec-head{text-align:center;margin-left:auto}
  .itin .sec-head__en,.meet .sec-head__en{margin-left:auto;margin-right:auto}
  .itin__meta{justify-content:center}
  .incl{padding-top:48px;padding-bottom:56px}
  .itin{padding-top:56px;padding-bottom:64px}
  .price{padding-top:46px;padding-bottom:58px}
  .cond{padding-top:52px;padding-bottom:62px}
  .gal{padding-top:44px;padding-bottom:52px}
  .meet{padding-top:54px;padding-bottom:64px}
  .tfaq{padding-top:46px;padding-bottom:56px}
  .rel{padding-top:52px;padding-bottom:62px}
}

/* ギャラリーは「思い出」＝TOPの4×2均等グリッドと同じ見え方を避け、
   1枚目を大きく取る非対称組みにする（憲法F詳細の写真スライダーの静的解） */
.gal .gallery{grid-template-columns:repeat(4,1fr)}
.gal .gallery a{height:100%}
.gal .gallery a img{width:100%;height:100%;object-fit:cover}
.gal .gallery a:first-child{grid-column:span 2;grid-row:span 2}
.gal .gallery a:first-child img{aspect-ratio:auto}
/* 8枚は 大1＋小7 で最終行に1枠余るので、締めの1枚を横2つ分に伸ばす */
.gal .gallery a:last-child{grid-column:span 2}
.gal .gallery a:last-child img{aspect-ratio:auto}
@media (max-width:1023px){
  .gal .gallery{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:767px){
  .gal .gallery{grid-template-columns:repeat(2,1fr)}
  .gal .gallery a:first-child{grid-column:span 2;grid-row:auto}
  .gal .gallery a:first-child img{aspect-ratio:4/3}
}
