/* キミタビDIVE：しおりの次の見開き。2026-09-29。
   色・書体は既存トークン。完成した紙面が標準、動きは .is-moving の下だけ。 */
.dive-body { margin: 0; background: var(--paper); color: var(--ink); font: 17px/1.9 var(--sans); -webkit-text-size-adjust: 100%; overflow-x: clip; }
.dive-body *, .dive-body *::before, .dive-body *::after { box-sizing: border-box; }
.dive-body .skip-link { position: fixed; top: -100px; left: 0; z-index: 200; padding: var(--s-3); background: var(--paper); color: var(--ink); }
.dive-body .skip-link:focus { top: 0; }
.dive-body :focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.dive img { display: block; max-width: 100%; height: auto; }
.dive a { color: var(--blue); text-underline-offset: 4px; }
.dive h1, .dive h2, .dive h3, .dive h4 { font-family: var(--serif); font-weight: 600; line-height: 1.6; margin: 0 0 var(--s-4); }
.dive h1 .heading-line { display: block; white-space: nowrap; }
.dive h3 { font-size: 20px; }
.dive h4 { font-size: 18px; }
.dive .heading-line { display: inline-block; }
.dive p { margin: 0 0 var(--s-3); }
.dive ul, .dive ol { padding-left: 1.4em; }
.dive-sec, .dive-fv { margin-inline: auto; scroll-margin-top: 96px; }
.dive-course { scroll-margin-top: 96px; }
.dive-sec { border-top: 1px solid var(--line); }
.dive-fv-photo { margin: 0; }
.dive-note, .dive-source { color: var(--muted); font-size: 16px; }
.dive-kicker, .dive-stage { color: var(--coral); font-weight: 600; }
.dive-lead { font-size: 18px; }
.dive-actions { display: flex; flex-wrap: wrap; }
.dive .dive-button { display: inline-flex; align-items: center; justify-content: center; font-weight: 600; text-decoration: none; }
.dive-table { width: 100%; border-collapse: collapse; margin: var(--s-6) 0; font-size: 16px; }
.dive-table caption { text-align: left; font-family: var(--serif); font-weight: 600; }
.dive-table th, .dive-table td { border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.dive-courses, .dive-included, .dive-skills, .dive-stay-photos { display: grid; gap: var(--s-6); margin: var(--s-6) 0; }
@media (min-width: 768px) {
  .dive-courses, .dive-included, .dive-stay-photos { grid-template-columns: 1fr 1fr; }
  .dive-skills { grid-template-columns: repeat(3, 1fr); }
}
.dive-price-regular s { text-decoration-thickness: 2px; }
.dive-voice blockquote { margin: 0; }
.dive-faq details { border-bottom: 1px solid var(--line); }
.dive-faq summary { min-height: 44px; cursor: pointer; font-weight: 600; }
.dive-closing { text-align: center; }

/* 2026-09-29：しおりの次の見開き。既存トークンだけで紙とインクを組む。 */
.dive { overflow: clip; }
.dive-sec { width: min(1120px, 100% - 2 * var(--s-8)); padding-block: var(--s-24); }
.dive h2 { font-size: clamp(26px, 3.3vw, 46px); line-height: 1.65; letter-spacing: -.035em; }
.dive h2 .heading-line { display: block; }
.dive p, .dive li { overflow-wrap: anywhere; }
.dive-fv { position: relative; width: min(1280px, 100% - 2 * var(--s-8)); display: block; padding: calc(80px + var(--s-8)) 0 var(--s-12); }
.dive .dive-question { margin: 0; padding-bottom: var(--s-4); border-bottom: 1px solid var(--ink); font-family: var(--serif); font-size: clamp(16px, 1.9vw, 25px); color: var(--ink); }
.dive-fv-scene { position: relative; height: 510px; isolation: isolate; }
.dive .dive-masthead { position: absolute; inset: 0 auto auto 0; margin: 0; line-height: .88; color: var(--ink); }
.dive-masthead > span { position: absolute; top: 29px; left: 5px; font-size: 18px; font-weight: 700; }
.dive-masthead b { display: block; font-family: Arial, sans-serif; font-weight: 900; font-size: clamp(180px, 23vw, 310px); letter-spacing: -.075em; }
.dive-fv-photo { position: absolute; top: 100px; right: 0; width: 57%; height: 374px; z-index: -1; }
.dive-fv-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 56%; filter: saturate(.78); }
.dive-fv-photo figcaption { padding-top: var(--s-2); font-size: 12px; line-height: 1.5; color: var(--muted); }
.dive-fv-copy { position: absolute; bottom: 0; left: 0; padding: var(--s-6) var(--s-8) var(--s-4) 0; background: var(--paper); }
.dive .dive-stage { font-family: var(--mono); font-size: 13px; margin-bottom: var(--s-3); }
.dive h1 { font-size: clamp(32px, 3.5vw, 48px); line-height: 1.55; letter-spacing: -.04em; margin-bottom: 0; }
.dive h1 .heading-line:last-child { color: var(--coral); }
.dive-seat-mark { position: absolute; display: flex; gap: var(--s-2); right: var(--s-5); top: var(--s-5); transform: rotate(-5deg); }
.dive-seat-mark i { width: 26px; height: 36px; border: 1px solid var(--coral); border-top: 5px solid var(--coral); background: var(--paper); }
.dive-fv-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); border-block: 1px solid var(--ink); padding-block: var(--s-5); margin-top: var(--s-8); }
.dive .dive-tags { display: grid; grid-template-columns: auto auto; column-gap: var(--s-5); row-gap: var(--s-1); list-style: none; padding: 0; margin: 0; }
.dive-tags li { padding: 0; border: 0; font-size: 16px; line-height: 1.7; }
.dive-tags strong { font-size: 22px; font-family: var(--serif); color: var(--coral); padding-inline: var(--s-1); }
.dive-actions { margin: 0; align-items: center; gap: var(--s-4); }
.dive .dive-button { min-height: 54px; padding: var(--s-3) var(--s-6); font-size: 16px; border-radius: 0; }
.dive .dive-button-line { background: var(--ink); color: var(--paper); gap: var(--s-8); border: 1px solid var(--ink); }
.dive-button-line::after { content: '↗'; font-size: 22px; line-height: 1; }
.dive .dive-button-sub { padding-inline: 0; border: 0; border-bottom: 1px solid var(--ink); gap: var(--s-4); }
.dive .dive-fv-lead { margin: var(--s-4) 0 0; color: var(--muted); font-size: 16px; }
.dive a:hover { text-decoration-thickness: 2px; }
.dive .dive-button-line:hover { background: var(--blue); }
@media (max-width: 767px) {
  .dive-sec { width: calc(100% - 2 * var(--s-5)); padding-block: var(--s-16); }
  .dive-fv { width: calc(100% - 2 * var(--s-5)); padding-top: calc(64px + var(--s-4)); padding-bottom: var(--s-8); }
  .dive .dive-question { font-size: 15px; padding-bottom: var(--s-3); white-space: nowrap; }
  .dive-fv-scene { height: 319px; }
  .dive-masthead b { font-size: clamp(108px, 30vw, 140px); }
  .dive-masthead > span { top: 7px; left: 2px; font-size: 11px; }
  .dive-fv-photo { top: 74px; width: 82%; height: 194px; }
  .dive-fv-photo figcaption { position: absolute; top: 100%; right: 0; max-width: 116px; font-size: 10px; padding-top: var(--s-2); }
  .dive-fv-copy { bottom: 0; padding: var(--s-3) var(--s-3) 0 0; }
  .dive .dive-stage { font-size: 10px; margin-bottom: var(--s-2); }
  .dive h1 { font-size: clamp(25px, 6.85vw, 30px); line-height: 1.55; }
  .dive-seat-mark { top: var(--s-3); right: 0; gap: var(--s-1); }
  .dive-seat-mark i { width: 11px; height: 20px; border-top-width: 3px; }
  .dive-fv-bottom { display: block; margin-top: var(--s-4); padding-block: var(--s-3); }
  .dive .dive-tags { grid-template-columns: auto auto; gap: 0 var(--s-2); }
  .dive-tags li { font-size: 12px; line-height: 1.9; }
  .dive-tags strong { font-size: 18px; }
  .dive-actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); margin-top: var(--s-3); }
  .dive .dive-button { min-height: 48px; padding-inline: var(--s-3); }
  .dive-actions .dive-button { font-size: 13px; gap: var(--s-2); }
  .dive .dive-button-sub { padding-inline: 0; }
  .dive .dive-fv-lead { margin-top: var(--s-3); font-size: 16px; }
}

/* 帰国後の余白と、現場に戻る理由。カードを重ねず、罫線で読む。 */
.dive-kicker { font-size: 16px; margin-bottom: var(--s-6); }
#after { padding-top: var(--s-24); }
#after h2 { max-width: 740px; margin-bottom: var(--s-12); }
.dive .dive-numbered { list-style: none; counter-reset: thought; padding: 0; margin: 0 0 var(--s-12) 22%; }
.dive-numbered li { counter-increment: thought; display: grid; grid-template-columns: 48px 1fr; align-items: baseline; padding-block: var(--s-5); border-bottom: 1px solid var(--line); font-size: clamp(18px, 1.8vw, 25px); font-family: var(--serif); }
.dive-numbered li::before { content: '0' counter(thought); font: 16px var(--mono); color: var(--coral); }
.dive-after-reflection { display: grid; grid-template-columns: 1fr 2fr; padding-block: var(--s-8); border-top: 1px solid var(--ink); }
.dive .dive-gained { list-style: none; margin: 0; padding: 0; }
.dive-gained li { padding-bottom: var(--s-3); color: var(--muted); }
.dive-left-questions { border-left: 1px solid var(--line); padding-left: var(--s-8); }
.dive-left-questions p:last-child { color: var(--coral); font-family: var(--serif); font-size: 22px; margin-top: var(--s-6); }
.dive .dive-bridge { margin: var(--s-8) 0 0; padding-top: var(--s-6); font-size: 18px; border-top: 1px solid var(--ink); }
#what { position: relative; background: var(--ticket-paper); box-shadow: 0 0 0 100vmax var(--ticket-paper); clip-path: inset(0 -100vmax); }
#what > .dive-lead { font-family: var(--serif); font-size: clamp(20px, 2.3vw, 30px); }
.dive-purpose { max-width: 730px; margin-top: var(--s-8); }
.dive-purpose h3 { color: var(--coral); font-family: var(--sans); font-size: 16px; }
.dive-purpose + .dive-purpose { margin-top: var(--s-3); }
.dive .dive-gap { padding: var(--s-6) 0; margin-block: var(--s-8); list-style: none; border-block: 1px solid var(--line); }
.dive-gap li { padding-block: var(--s-3); }
.dive-table { display: table; table-layout: fixed; width: 100%; overflow: visible; }
.dive-table th, .dive-table td { min-width: 0; padding: var(--s-5); }
.dive-table thead th { color: var(--muted); font-family: var(--sans); font-size: 16px; font-weight: 500; border-bottom-color: var(--ink); }
.dive-table caption { font-size: 24px; padding-block: var(--s-5); }
.dive-stages tbody tr:first-child { color: var(--muted); }
.dive-stages tbody tr:not(:first-child) { background: var(--paper); }
.dive-stages tbody tr:not(:first-child) td:first-child { color: var(--coral); }
.dive-stages + .dive-note { display: inline-block; border-bottom: 2px solid var(--coral); color: var(--ink); }
#why-cambodia { display: grid; grid-template-columns: 1.05fr 1fr; column-gap: var(--s-16); }
#why-cambodia > .dive-kicker { grid-column: 1 / -1; }
#why-cambodia > h2 { grid-column: 1; margin-bottom: var(--s-8); }
.dive-return-photo { grid-column: 2; grid-row: 2 / 4; margin: var(--s-4) 0 0; align-self: center; transform: rotate(2deg); }
.dive-return-photo img { width: 100%; border: 8px solid var(--ticket-paper); }
.dive-return-photo figcaption { margin-top: var(--s-2); font-size: 13px; color: var(--muted); }
.dive-prose p { margin-bottom: var(--s-6); }
#why-cambodia > .dive-prose { grid-column: 1; }
.dive .dive-reasons { grid-column: 1 / -1; list-style: none; padding: 0; margin: var(--s-10) 0; counter-reset: reason; }
.dive-reasons li { counter-increment: reason; display: grid; grid-template-columns: 44px .9fr 1fr; column-gap: var(--s-6); padding-block: var(--s-8); border-top: 1px solid var(--line); }
.dive-reasons li::before { content: '0' counter(reason); font-family: var(--mono); color: var(--coral); }
.dive-reasons h3 { font-size: 23px; margin-bottom: 0; }
.dive-reasons h3 .heading-line { display: block; }
.dive-reasons p { margin-bottom: 0; }
.dive-conclusion { grid-column: 1 / -1; font-family: var(--serif); font-size: clamp(20px, 2.2vw, 29px); padding-top: var(--s-8); border-top: 2px solid var(--ink); }
@media (max-width: 767px) {
  .dive .dive-numbered { margin-left: 0; }
  .dive-numbered li { grid-template-columns: 32px 1fr; }
  .dive-after-reflection { grid-template-columns: 1fr; gap: var(--s-6); }
  .dive .dive-gained { display: flex; flex-wrap: wrap; gap: var(--s-4); }
  .dive-gained li { padding: 0; font-size: 16px; }
  .dive-left-questions { padding-left: var(--s-4); }
  .dive-left-questions p:last-child { font-size: 20px; }
  .dive-stages, .dive-stages tbody, .dive-stages tr, .dive-stages td, .dive-stages th { display: block; }
  .dive-stages { table-layout: auto; }
  .dive-stages caption { display: block; font-size: 20px; }
  .dive-stages thead { display: none; }
  .dive-stages tr { padding: var(--s-5); border-top: 1px solid var(--line); }
  .dive-stages td, .dive-stages th { padding: var(--s-1) 0; border: 0; }
  .dive-stages th { font: 600 22px/1.6 var(--serif); }
  #why-cambodia { display: block; }
  .dive-return-photo { margin: var(--s-8) var(--s-2); }
  .dive-reasons li { grid-template-columns: 24px 1fr; gap: var(--s-3); }
  .dive-reasons h3 { font-size: 22px; }
  .dive-reasons p { grid-column: 2; }
}

/* 迷い2：比較を読んで、夜の現場ノートへ入る。 */
#why-month { background: var(--ink); color: var(--paper); box-shadow: 0 0 0 100vmax var(--ink); clip-path: inset(0 -100vmax); border: 0; }
#why-month .dive-kicker { color: var(--yellow); }
#why-month > .dive-prose { max-width: 750px; margin-block: var(--s-8); }
.dive-compare { margin-block: var(--s-12); }
.dive-compare th, .dive-compare td { border-color: var(--muted); padding: var(--s-6); }
.dive-compare thead th { color: var(--paper); font: 600 24px var(--serif); border-color: var(--paper); }
.dive-compare th + th, .dive-compare td + td { border-left: 1px solid var(--muted); color: var(--yellow); }
.dive-structure { padding-block: var(--s-8); border-bottom: 1px solid var(--muted); }
.dive-structure h3 { font-size: clamp(25px, 3vw, 38px); }
.dive-structure h3 .heading-line { white-space: pre; }
.dive .dive-structure ul { list-style: none; display: grid; grid-template-columns: 1fr 1fr; padding: 0; gap: var(--s-6); margin-block: var(--s-6); }
.dive-structure li { padding-block: var(--s-5); border-top: 1px solid var(--muted); }
.dive-structure > p { color: var(--yellow); }
.dive-resolve-track { display: grid; grid-template-columns: 1.1fr .85fr; gap: var(--s-16); padding-top: var(--s-24); }
.dive-resolve h3 { font-size: clamp(26px, 3.1vw, 42px); margin-bottom: var(--s-10); perspective: 700px; }
.dive-resolve h3 .heading-line { display: block; width: fit-content; transform-origin: 15% 70%; }
.dive-resolve h3 .heading-line:last-child { color: var(--yellow); }
.dive-resolve > p { margin-bottom: var(--s-4); }
.dive-resolve > p:nth-last-child(2) { font-family: var(--serif); font-size: 23px; color: var(--yellow); padding-block: var(--s-5); }
.dive-field-photo { align-self: center; margin: 0; padding-bottom: var(--s-16); transform: rotate(-3deg); }
.dive-field-photo img { width: 100%; max-width: 560px; border: 8px solid var(--ticket-paper); }
.dive-field-photo figcaption { font-size: 13px; margin-top: var(--s-3); color: var(--paper); }

/* 二つの現場ノート。W1〜W4の縦罫がスクロールを受け止める。 */
#courses { padding-bottom: var(--s-12); }
#courses > h2 { max-width: 860px; }
#courses > h2 .heading-line { display: inline-block; margin-right: .15em; }
#courses > h2 .heading-line:first-child { display: block; }
.dive-weeks-title { color: var(--coral); font-size: 20px; margin-top: var(--s-8); }
.dive-courses { gap: 0; margin-top: var(--s-12); border-block: 2px solid var(--ink); align-items: start; }
.dive-course { position: relative; min-width: 0; padding: var(--s-10) var(--s-8); border: 0; background: var(--ticket-paper); }
.dive-course + .dive-course { border-left: 1px solid var(--line); background: var(--paper); }
.dive-course-intro { min-height: 380px; }
.dive-course h3 { font-size: clamp(25px, 2.5vw, 34px); line-height: 1.5; margin-bottom: var(--s-6); }
.dive-course h3 .heading-line { display: block; }
.dive-course h3 .heading-line:last-child { font: 900 52px/.95 Arial, sans-serif; letter-spacing: -.05em; color: var(--coral); padding-top: var(--s-2); }
.dive-course-catch { font-family: var(--serif); font-weight: 600; font-size: 19px; }
.dive-course-intro > p { font-size: 16px; }
.dive-course-intro > p:last-child { padding-bottom: var(--s-6); border-bottom: 1px solid var(--line); }
.dive .dive-weeks { position: relative; list-style: none; padding: 0; margin: var(--s-8) 0; }
.dive-weeks::before, .dive-weeks::after { content: ''; position: absolute; top: 0; bottom: 0; left: 23px; width: 1px; background: var(--line); }
.dive-weeks::after { background: var(--coral); transform-origin: top; }
.dive-weeks li { position: relative; display: grid; grid-template-columns: 48px 1fr; align-items: start; gap: var(--s-4); padding-block: var(--s-6); min-height: 132px; border-bottom: 1px solid var(--line); }
.dive-weeks li b { z-index: 1; display: grid; place-items: center; width: 48px; height: 48px; background: var(--ticket-paper); border: 1px solid var(--coral); color: var(--coral); font: 700 18px var(--mono); }
.dive-weeks li span { padding-left: 1em; padding-top: var(--s-2); font-size: 19px; font-family: var(--serif); }
.dive-course + .dive-course .dive-weeks li b { background: var(--paper); }
.dive .dive-dates { list-style: none; padding: 0; margin: var(--s-8) 0 0; border-top: 1px solid var(--ink); }
.dive-dates li { padding-block: var(--s-5); border-bottom: 1px solid var(--line); font-size: 16px; }
.dive-budget { padding: var(--s-6); margin-top: var(--s-8); border: 1px solid var(--coral); position: relative; }
.dive-budget::after { content: ''; position: absolute; top: -1px; right: -1px; width: 25px; height: 25px; background: var(--paper); clip-path: polygon(0 0, 100% 0, 100% 100%); border-top: 1px solid var(--paper); }
.dive .dive-budget-amount { font: 500 clamp(58px, 6vw, 82px)/1 var(--mono); color: var(--coral); margin-bottom: var(--s-6); }
.dive-budget h4 { font-size: 24px; }
.dive-budget p { font-size: 16px; }

/* 出発前の準備と、同じ街にいる人。 */
#prep { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--s-16); }
#prep > h2 { grid-row: span 2; }
#prep h2 .heading-line { display: block; }
#prep > .dive-lead { font-family: var(--serif); font-size: 22px; }
.dive .dive-prep-items { grid-column: 1 / -1; padding: 0; margin: var(--s-8) 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.dive-prep-items li { padding: var(--s-5); border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.dive-prep-items li:nth-child(3n + 1) { border-left: 0; }
#prep > .dive-note { grid-column: 1 / -1; }
#people { display: grid; grid-template-columns: 1.1fr .8fr; column-gap: var(--s-16); background: var(--ticket-band); box-shadow: 0 0 0 100vmax var(--ticket-band); clip-path: inset(0 -100vmax); border: 0; }
#people > .dive-kicker, #people > h2, #people > p:not(.dive-note) { grid-column: 1; }
.dive-people-photo { grid-column: 2; grid-row: 2 / 5; align-self: center; margin: 0; }
.dive-people-photo img { width: 100%; max-width: 440px; object-fit: cover; }
.dive-people-photo figcaption { font-size: 13px; padding-top: var(--s-2); }
.dive .dive-people { padding: 0; list-style: none; margin-block: var(--s-6); grid-column: 1; }
.dive-people li { padding-block: var(--s-5); border-top: 1px solid var(--ticket-band-rule); }
#people > .dive-note { grid-column: 1 / -1; font: 600 clamp(22px, 2.5vw, 32px)/1.8 var(--serif); padding-top: var(--s-8); border-top: 1px solid var(--ink); margin-top: var(--s-8); color: var(--ink); }

/* 持ち帰るものは、言葉と、出所のある数字。 */
.dive-skills { gap: var(--s-8); margin-block: var(--s-12); }
.dive-skills article { min-width: 0; padding-top: var(--s-6); border-top: 2px solid var(--ink); }
.dive-skills h3 { min-height: 170px; font-size: 24px; }
.dive-skill-no { display: block; font: 16px var(--mono); color: var(--coral); margin-bottom: var(--s-6); }
.dive-skills h3 [lang] { display: block; font: 16px/1.8 var(--mono); margin-top: var(--s-3); color: var(--muted); }
.dive-use { padding-top: var(--s-5); border-top: 1px solid var(--line); color: var(--muted); font-size: 16px; }
.dive-numbers { padding: var(--s-10); border: 1px solid var(--ink); background: var(--ticket-paper); }
.dive-numbers h3 { font-size: 25px; }
.dive .dive-numbers ul { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; padding: 0; gap: var(--s-8); margin-block: var(--s-8); }
.dive-numbers li { font-size: 16px; }
.dive-numbers li > span { display: block; }
.dive-numbers strong { display: block; font: 500 clamp(40px, 5vw, 68px)/1.3 var(--mono); color: var(--coral); }
.dive-numbers strong small { font-size: 22px; }
.dive-numbers li:last-child { grid-column: 1 / -1; padding-top: var(--s-6); border-top: 1px solid var(--line); }
.dive-source { margin-bottom: 0; }
.dive-voices-text { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-12); margin-top: var(--s-12); }
.dive-voice { margin: 0; padding: var(--s-8) 0; border-block: 1px solid var(--line); }
.dive-voice blockquote { font: 500 21px/2.1 var(--serif); }
.dive-voice figcaption { color: var(--muted); font-size: 16px; margin-top: var(--s-6); }
#voices { border-top: 2px solid var(--ink); }
#voices h2 { max-width: 850px; }

/* 滞在の実物、保護者にもそのまま見せられる明細。 */
.dive-stay-photos { gap: var(--s-5); margin-block: var(--s-8); }
.dive-stay-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.dive .dive-life { padding: 0; list-style: none; margin-block: var(--s-8); }
.dive-life li { padding-block: var(--s-6); border-top: 1px solid var(--line); }
#life > .dive-note { border-left: 2px solid var(--coral); padding-left: var(--s-5); }
#fee { border: 1px solid var(--ink); padding: var(--s-12); margin-block: var(--s-8) var(--s-16); background: var(--ticket-paper); position: relative; }
#fee::before { content: ''; position: absolute; width: 100%; top: var(--s-2); left: var(--s-2); bottom: calc(-1 * var(--s-2)); border: 1px solid var(--line); z-index: -1; }
#fee > h2 { margin-bottom: var(--s-2); }
.dive-price { display: grid; grid-template-columns: 1fr auto; column-gap: var(--s-8); padding-block: var(--s-8); border-block: 1px solid var(--line); margin-block: var(--s-8); }
.dive .dive-price-now { grid-column: 1; font: 500 clamp(46px, 6vw, 78px)/1.4 var(--serif); color: var(--coral); margin: 0; }
.dive-price > p:nth-child(2) { grid-column: 1; }
.dive-price > p:nth-child(3) { grid-column: 1 / -1; padding-top: var(--s-6); margin-top: var(--s-4); border-top: 1px dashed var(--line); }
.dive-price-regular { grid-column: 2; grid-row: 1; align-self: center; color: var(--muted); }
.dive-included { gap: var(--s-12); margin-block: var(--s-10); }
.dive-included h3 { font-size: 23px; border-bottom: 1px solid var(--ink); padding-bottom: var(--s-4); }
.dive-included li { padding-bottom: var(--s-2); }
.dive-flight { border: 1px solid var(--coral); padding: var(--s-5); }
.dive-schedule { margin-top: var(--s-10); }
.dive-schedule th:first-child { width: 34%; }
.dive-schedule th:last-child { width: 19%; }
.dive-schedule td:last-child { font-weight: 700; color: var(--coral); }

/* 決める手前で、迷いを一つずつほどく。 */
.dive .dive-which { display: grid; grid-template-columns: 1fr 1fr; list-style: none; padding: 0; gap: var(--s-10); margin-block: var(--s-10); }
.dive-which li { padding-block: var(--s-8); border-block: 1px solid var(--ink); }
.dive-which li > p:first-child { min-height: 100px; }
.dive-which li > p:last-child { margin: 0; font: 600 24px/1.6 var(--serif); }
.dive-which a { display: inline-flex; align-items: center; min-height: 48px; }
.dive .dive-flow { list-style: none; padding: 0; margin: var(--s-10) 0; counter-reset: flow; }
.dive-flow li { position: relative; counter-increment: flow; display: grid; grid-template-columns: 54px 1fr; column-gap: var(--s-6); padding-block: var(--s-6); border-bottom: 1px solid var(--line); }
.dive-flow li::before { content: '0' counter(flow); grid-row: 1 / 3; font: 26px/1.5 var(--mono); color: var(--coral); }
.dive-flow b { font: 600 22px/1.7 var(--serif); }
.dive-flow span { grid-column: 2; color: var(--muted); font-size: 16px; }
.dive-faq { margin-top: var(--s-10); border-top: 1px solid var(--ink); }
.dive-faq summary { display: grid; grid-template-columns: 1fr 24px; align-items: baseline; list-style: none; padding: var(--s-6) 0; gap: var(--s-5); font-size: 18px; }
.dive-faq summary::-webkit-details-marker { display: none; }
.dive-faq summary::after { content: '+'; font: 26px/1 var(--mono); color: var(--coral); }
.dive-faq details[open] summary::after { content: '−'; }
.dive-faq details[open] { border-bottom-color: var(--ink); }
.dive-faq details > p { max-width: 850px; padding: 0 var(--s-8) var(--s-6) 0; }
.dive-faq p a { display: inline-block; min-height: 44px; }
#closing { position: relative; padding-block: var(--s-24); background: var(--ink); color: var(--paper); box-shadow: 0 0 0 100vmax var(--ink); clip-path: inset(0 -100vmax); border: 0; }
#closing h2 { margin-bottom: var(--s-8); }
#closing h2 .heading-line { display: block; }
#closing h2 .heading-line:last-child { color: var(--yellow); }
#closing > p { margin-bottom: var(--s-8); }
#closing .dive-button { background: var(--paper); color: var(--ink); min-width: 260px; }
.dive-closing-seats { display: flex; justify-content: center; gap: var(--s-3); margin: var(--s-12) auto var(--s-6); perspective: 600px; }
.dive-closing-seats i { display: block; width: 42px; height: 56px; border: 1px solid var(--yellow); border-top: 6px solid var(--yellow); }
.dive .dive-last { font-family: var(--serif); margin: 0; font-size: 20px; }
#why-month :focus-visible, #closing :focus-visible { outline-color: var(--yellow); }

@media (max-width: 1000px) and (min-width: 768px) {
  .dive-fv-bottom { align-items: stretch; }
  .dive-actions { flex-direction: column; align-items: stretch; }
  .dive-course { padding-inline: var(--s-5); }
  .dive-course-intro { min-height: 460px; }
  .dive-skills h3 { min-height: 200px; }
  #prep { display: block; }
}
@media (max-width: 767px) {
  .dive h2 { font-size: clamp(25px, 6.7vw, 29px); }
  .dive h2 .heading-line { white-space: nowrap; }
  .dive .dive-question { font-size: 15px; letter-spacing: -.04em; }
  .dive-tags li { font-size: 14px; }
  .dive-actions .dive-button { font-size: 14px; }
  .dive-compare th, .dive-compare td { padding: var(--s-5) var(--s-3); }
  .dive-compare thead th { font-size: 20px; }
  .dive .dive-structure ul { display: block; }
  .dive-structure h3 { font-size: 24px; }
  .dive-structure h3 .heading-line { display: block; }
  .dive-resolve-track { display: block; padding-top: var(--s-16); }
  .dive-resolve h3 { font-size: 28px; }
  .dive-field-photo { margin: var(--s-10) var(--s-4) 0; padding: 0; }
  #courses > h2 .heading-line { display: block; }
  .dive-courses { display: block; margin-bottom: 0; }
  .dive-course { padding: var(--s-8) var(--s-4); }
  .dive-course + .dive-course { border-left: 0; border-top: 2px solid var(--ink); }
  .dive-course-intro { min-height: 0; }
  .dive-course h3 { font-size: 25px; }
  .dive-course h3 .heading-line:last-child { font-size: 48px; }
  .dive-weeks li { min-height: 120px; gap: var(--s-2); }
  .dive-weeks li span { font-size: 18px; }
  .dive-budget { padding: var(--s-5); }
  #prep { display: block; }
  .dive .dive-prep-items { grid-template-columns: 1fr 1fr; }
  .dive-prep-items li { padding: var(--s-4) var(--s-3); font-size: 16px; }
  .dive-prep-items li:nth-child(3n + 1) { border-left: 1px solid var(--line); }
  .dive-prep-items li:nth-child(2n + 1) { border-left: 0; }
  #people { display: block; }
  .dive-people-photo { width: 76%; margin: var(--s-8) auto; }
  #people > .dive-note { font-size: 23px; }
  .dive-skills { gap: var(--s-8); }
  .dive-skills h3 { min-height: 0; }
  .dive-numbers { padding: var(--s-6) var(--s-5); }
  .dive .dive-numbers ul { grid-template-columns: 1fr; gap: var(--s-6); }
  .dive-numbers li { border-top: 1px solid var(--line); padding-top: var(--s-5); }
  .dive-numbers strong { font-size: 58px; }
  .dive-voices-text { grid-template-columns: 1fr; gap: var(--s-6); }
  .dive-voice blockquote { font-size: 20px; }
  .dive-stay-photos { grid-template-columns: 1fr; }
  .dive-stay-photos img:last-child { aspect-ratio: 800 / 404; }
  #fee { padding: var(--s-8) var(--s-5); }
  .dive-price { grid-template-columns: 1fr; gap: 0; }
  .dive-price-regular { grid-row: 1; grid-column: 1; }
  .dive .dive-price-now { grid-row: 2; font-size: clamp(42px, 11.8vw, 51px); }
  .dive-included { gap: var(--s-8); }
  .dive-schedule, .dive-schedule tbody, .dive-schedule tr, .dive-schedule td, .dive-schedule th { display: block; width: 100%; }
  .dive-schedule thead { display: none; }
  .dive-schedule tr { border-top: 1px solid var(--ink); padding-block: var(--s-5); }
  .dive-schedule th, .dive-schedule td { border: 0; padding: var(--s-1) 0; }
  .dive-schedule th:first-child { width: 100%; font-family: var(--serif); font-size: 19px; }
  .dive .dive-which { grid-template-columns: 1fr; gap: var(--s-6); }
  .dive-which li > p:first-child { min-height: 0; }
  .dive-which li > p:last-child { font-size: 21px; }
  .dive-flow li { grid-template-columns: 36px 1fr; column-gap: var(--s-3); }
  .dive-flow b { font-size: 20px; }
  .dive-faq summary { font-size: 17px; }
  #closing { padding-block: var(--s-20); }
  #closing h2 { font-size: clamp(23px, 6vw, 27px); }
  .dive .dive-last { font-size: 18px; }
}

/* 動きのない完成形が標準。JS・動きの許可の両方が揃ったときだけ紙面が動く。 */
.dive-opening { display: none; }
.dive-masthead b > span { display: inline-block; }
.dive-sec > h2 { transform-origin: left bottom; }
.dive-kicker::after { content: ''; display: block; width: 64px; height: 1px; background: currentColor; margin-top: var(--s-4); transform-origin: left; }
.dive-closing-seats i, .dive-seat-mark i { clip-path: polygon(0 0, 100% 0, 100% 85%, 78% 85%, 78% 100%, 22% 100%, 22% 85%, 0 85%); }

@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-opening { display: block; position: absolute; inset: 0; z-index: 4; perspective: 1100px; pointer-events: none; }
  .is-moving .dive-opening > i { position: absolute; top: 0; bottom: 0; width: 50%; background: var(--ticket-paper); border-block: 1px solid var(--line); backface-visibility: hidden; animation: dive-page-left 1.45s var(--ease-out) both; }
  .is-moving .dive-opening > i::before, .is-moving .dive-opening > i::after { content: ''; position: absolute; left: 8%; right: 8%; top: 30%; height: 1px; background: var(--line); }
  .is-moving .dive-opening > i::after { top: 68%; }
  .is-moving .dive-opening > i:first-child { left: 0; transform-origin: right center; border-right: 1px solid var(--ticket-perforation); }
  .is-moving .dive-opening > i:last-child { right: 0; transform-origin: left center; animation-name: dive-page-right; border-left: 1px solid var(--ticket-perforation); }
  .is-moving .dive-masthead { transform: perspective(900px) translate3d(0, calc(var(--dive-depth, 0) * -80px), calc(var(--dive-depth, 0) * -180px)) rotateX(calc(var(--dive-depth, 0) * 22deg)); transform-origin: center top; }
  .is-moving .dive-masthead b > span { animation: dive-type-in 1.2s var(--ease-out) both; }
  .is-moving .dive-masthead b > span:nth-child(2) { animation-delay: .08s; }
  .is-moving .dive-masthead b > span:nth-child(3) { animation-delay: .16s; }
  .is-moving .dive-masthead b > span:nth-child(4) { animation-delay: .24s; }
  .is-moving .dive-fv-photo { transform: perspective(1000px) translate3d(0, calc(var(--dive-depth, 0) * 48px), calc(var(--dive-depth, 0) * -100px)) rotateX(calc(var(--dive-depth, 0) * -6deg)); }
  .is-moving .dive-fv-photo img { animation: dive-photo-open 1.5s var(--ease-out) both; }
  .is-moving .dive-fv-copy { animation: dive-copy-unfold 1.2s .15s var(--ease-out) both; transform-origin: left bottom; }
  .is-moving .dive-seat-mark i { animation: dive-seat-cut .65s var(--ease-out) both; }
  .is-moving .dive-seat-mark i:nth-child(1) { animation-delay: .4s; }
  .is-moving .dive-seat-mark i:nth-child(2) { animation-delay: .53s; }
  .is-moving .dive-seat-mark i:nth-child(3) { animation-delay: .66s; }
  .is-moving .dive-seat-mark i:nth-child(4) { animation-delay: .79s; }
  .is-moving .dive-seat-mark i:nth-child(5) { animation-delay: .92s; }
  .is-moving .dive-sec > h2 { transform: perspective(900px) rotateX(8deg) translateY(26px); transition: transform .95s var(--ease-out); }
  .is-moving .dive-sec.is-open > h2 { transform: none; }
  .is-moving .dive-kicker::after { transform: scaleX(0); transition: transform 1s var(--ease-out); }
  .is-moving .is-open .dive-kicker::after { transform: scaleX(1); }
  .is-moving .dive-numbered li { transform: perspective(800px) rotateY(calc((1 - var(--dive-enter, 1)) * -18deg)) translateX(calc((1 - var(--dive-enter, 1)) * 40px)); transform-origin: left; }
  .is-moving .dive-numbered li:nth-child(2) { transform: perspective(800px) rotateY(calc((1 - var(--dive-enter, 1)) * -28deg)) translateX(calc((1 - var(--dive-enter, 1)) * 60px)); }
  .is-moving .dive-numbered li:nth-child(3) { transform: perspective(800px) rotateY(calc((1 - var(--dive-enter, 1)) * -38deg)) translateX(calc((1 - var(--dive-enter, 1)) * 80px)); }
  .is-moving .dive-stages tbody tr:not(:first-child) { transform: translateX(calc((1 - var(--dive-enter, 1)) * 36px)); }
  .is-moving .dive-stages tbody tr:last-child { transform: translateX(calc((1 - var(--dive-enter, 1)) * 64px)); }
  .is-moving [data-dive-track='photo'] > img { clip-path: inset(calc((1 - var(--dive-enter, 1)) * 12%) calc((1 - var(--dive-enter, 1)) * 20%) calc((1 - var(--dive-enter, 1)) * 12%) 0); }
  .is-moving .dive-return-photo { transform: translateY(calc((1 - var(--dive-enter, 1)) * 64px)) rotate(calc(2deg + (1 - var(--dive-enter, 1)) * 5deg)); }
  .is-moving .dive-resolve h3 .heading-line:nth-child(1) { transform: translate3d(calc(var(--dive-fracture, 0) * -22px), calc(var(--dive-fracture, 0) * -12px), 0) rotate(calc(var(--dive-fracture, 0) * -5deg)); }
  .is-moving .dive-resolve h3 .heading-line:nth-child(2) { transform: translate3d(calc(var(--dive-fracture, 0) * 54px), calc(var(--dive-fracture, 0) * 18px), 0) rotate(calc(var(--dive-fracture, 0) * 8deg)); }
  .is-moving .dive-resolve h3 .heading-line:nth-child(3) { transform: translate3d(calc(var(--dive-fracture, 0) * -12px), calc(var(--dive-fracture, 0) * 38px), 0) rotate(calc(var(--dive-fracture, 0) * -9deg)); }
  .is-moving .dive-field-photo { transform: perspective(800px) rotateY(calc(var(--dive-fracture, 0) * -12deg)) rotate(calc(-3deg + var(--dive-fracture, 0) * 9deg)); }
  .is-moving .dive-weeks::after { transform: scaleY(var(--dive-week-progress, 1)); }
  .is-moving .dive-weeks li b { transform: rotate(-7deg); transition: transform .5s var(--ease-out), background .3s, color .3s; }
  .is-moving .dive-weeks li.is-written b { background: var(--coral); color: var(--paper); transform: rotate(0deg); }
  .is-moving .dive-weeks li span { transform: translateX(12px); transition: transform .5s var(--ease-out); }
  .is-moving .dive-weeks li.is-written span { transform: translateX(0); }
  .is-moving .dive-weeks li.is-current span { text-decoration: underline; text-decoration-color: var(--coral); text-underline-offset: 8px; text-decoration-thickness: 1px; }
  .is-moving .dive-numbers strong { transform: translateY(calc((1 - var(--dive-enter, 1)) * 26px)); }
  .is-moving .dive-closing-seats.is-cut i { animation: dive-seat-cut .75s var(--ease-out) both; }
  .is-moving .dive-closing-seats.is-cut i:nth-child(2) { animation-delay: .12s; }
  .is-moving .dive-closing-seats.is-cut i:nth-child(3) { animation-delay: .24s; }
  .is-moving .dive-closing-seats.is-cut i:nth-child(4) { animation-delay: .36s; }
  .is-moving .dive-closing-seats.is-cut i:nth-child(5) { animation-delay: .48s; }
  .is-moving .dive-faq details[open] > p { animation: dive-answer .35s var(--ease-out); }
  .is-moving .dive-button { transition: transform .25s var(--ease-out), background .25s; }
  .is-moving .dive-button:hover { transform: translateY(-3px); }
  .is-moving .dive-button:active { transform: translateY(1px); }
  @keyframes dive-page-left { 0%, 8% { transform: rotateY(0deg); opacity: 1; } 75% { opacity: 1; } 100% { transform: rotateY(112deg); opacity: 0; } }
  @keyframes dive-page-right { 0%, 8% { transform: rotateY(0deg); opacity: 1; } 75% { opacity: 1; } 100% { transform: rotateY(-112deg); opacity: 0; } }
  @keyframes dive-type-in { from { transform: perspective(700px) translateY(48px) rotateX(-60deg); } to { transform: none; } }
  @keyframes dive-photo-open { from { clip-path: polygon(50% 0, 52% 0, 52% 100%, 50% 100%); } to { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); } }
  @keyframes dive-copy-unfold { from { transform: perspective(900px) rotateX(16deg) translateY(24px); } to { transform: none; } }
  @keyframes dive-seat-cut { from { transform: perspective(600px) rotateX(-90deg) translateY(-18px); clip-path: inset(0 0 100%); } to { transform: none; clip-path: polygon(0 0, 100% 0, 100% 85%, 78% 85%, 78% 100%, 22% 100%, 22% 85%, 0 85%); } }
  @keyframes dive-answer { from { transform: translateY(-8px); } to { transform: none; } }
}
@media (prefers-reduced-motion: no-preference) and (min-width: 1024px) and (min-height: 800px) {
  .is-moving .dive-resolve-track { min-height: 125svh; align-items: start; }
  .is-moving .dive-resolve, .is-moving .dive-field-photo { position: sticky; top: 120px; }
  .is-moving .dive-field-photo { margin-top: var(--s-16); }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 767px) {
  .is-moving .dive-resolve h3 .heading-line:nth-child(1) { transform: translateY(calc(var(--dive-fracture, 0) * -8px)) rotate(calc(var(--dive-fracture, 0) * -3deg)); }
  .is-moving .dive-resolve h3 .heading-line:nth-child(2) { transform: translate(calc(var(--dive-fracture, 0) * 18px), calc(var(--dive-fracture, 0) * 6px)) rotate(calc(var(--dive-fracture, 0) * 5deg)); }
  .is-moving .dive-resolve h3 .heading-line:nth-child(3) { transform: translateY(calc(var(--dive-fracture, 0) * 20px)) rotate(calc(var(--dive-fracture, 0) * -6deg)); }
}
@media (prefers-reduced-motion: reduce) {
  .dive *, .dive *::before, .dive *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* 第二稿：現場の顔をページの主役に。FVは一枚の写真から開く。 */
.dive-fv { width: 100%; height: calc(100svh - 80px); min-height: 720px; max-height: 1000px; padding: 0; margin-top: 80px; background: var(--ink); color: var(--paper); }
.dive-fv-scene { position: absolute; inset: 0 0 122px; height: auto; overflow: clip; }
.dive-fv-photo { inset: 0; width: 100%; height: 100%; z-index: -1; }
.dive-fv-photo::after { content: ''; position: absolute; inset: 0; background: var(--ink); opacity: .18; pointer-events: none; }
.dive-fv-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; filter: none; }
.dive-fv-photo figcaption { position: absolute; bottom: var(--s-4); right: var(--s-8); max-width: none; padding: var(--s-1) var(--s-2); color: var(--paper); background: var(--ink); font-size: 12px; z-index: 1; white-space: nowrap; }
.dive .dive-question { position: absolute; top: var(--s-8); left: var(--s-12); border: 0; color: var(--paper); padding: var(--s-2) var(--s-3); background: var(--ink); font-size: 21px; font-weight: 500; }
.dive .dive-masthead { top: 106px; left: var(--s-12); color: var(--paper); }
.dive-masthead > span { position: static; display: block; font-size: 24px; font-weight: 700; padding-left: var(--s-2); margin-bottom: var(--s-3); line-height: 1.4; }
.dive-masthead b { font-size: clamp(130px, 15vw, 218px); letter-spacing: -.055em; }
.dive-fv-copy { left: var(--s-12); bottom: var(--s-10); padding: 0; background: none; }
.dive h1 { font-size: clamp(35px, 3.8vw, 55px); line-height: 1.55; letter-spacing: -.035em; }
.dive h1 .heading-line { width: fit-content; padding-inline: var(--s-3); background: var(--ink); margin-top: var(--s-1); }
.dive h1 .heading-line:last-child { color: var(--yellow); }
.dive-seat-mark { top: var(--s-10); right: var(--s-12); width: 175px; transform: rotate(-4deg); }
.dive-seat-mark svg { width: 100%; stroke: var(--paper); stroke-width: 2; stroke-linecap: square; filter: drop-shadow(0 1px 2px var(--ink)); }
.dive-fv-bottom { position: absolute; inset: auto 0 0; height: 122px; padding: var(--s-5) var(--s-12); margin: 0; background: var(--paper); color: var(--ink); border: 0; }
.dive .dive-tags { column-gap: var(--s-10); }
.dive-tags li { font-size: 17px; }
.dive-tags strong { font-size: 30px; }
.dive-fv-postscript { max-width: 1280px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: var(--s-6); padding: var(--s-6) var(--s-8); border-bottom: 1px solid var(--line); }
.dive .dive-fv-postscript p { margin: 0; }
.dive-fv-postscript .dive-stage { font-size: 14px; }
@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-fv-photo { transform: scale(calc(1 + var(--dive-depth, 0) * .12)) translateY(calc(var(--dive-depth, 0) * 40px)); }
  .is-moving .dive-fv-photo img { animation: dive-photo-open 1.3s var(--ease-out) both; }
  .is-moving .dive-seat-mark g { transform-box: fill-box; transform-origin: center bottom; animation: dive-chair-write .6s var(--ease-out) both; }
  .is-moving .dive-seat-mark g:nth-child(2) { animation-delay: .15s; }
  .is-moving .dive-seat-mark g:nth-child(3) { animation-delay: .3s; }
  .is-moving .dive-seat-mark g:nth-child(4) { animation-delay: .45s; }
  .is-moving .dive-seat-mark g:nth-child(5) { animation-delay: .6s; }
  @keyframes dive-chair-write { from { opacity: 0; clip-path: inset(0 0 100%); } to { opacity: 1; clip-path: inset(0); } }
}
@media (max-width: 767px) {
  .dive-fv { margin-top: 64px; height: calc(100svh - 64px); min-height: 600px; max-height: 840px; }
  .dive-fv-scene { bottom: 148px; }
  .dive-fv-photo img { object-position: 46% 35%; }
  .dive .dive-question { left: var(--s-4); top: var(--s-4); font-size: 14px; padding: var(--s-1) var(--s-2); letter-spacing: -.04em; }
  .dive .dive-masthead { top: 66px; left: var(--s-5); }
  .dive-masthead > span { font-size: 15px; margin-bottom: var(--s-1); padding: 0; }
  .dive-masthead b { font-size: 90px; }
  .dive-fv-copy { left: var(--s-4); bottom: var(--s-10); }
  .dive h1 { font-size: 27px; line-height: 1.45; }
  .dive h1 .heading-line { padding-inline: var(--s-2); margin-top: var(--s-1); }
  .dive-seat-mark { top: 78px; right: var(--s-5); width: 105px; }
  .dive-fv-photo figcaption { right: var(--s-4); bottom: var(--s-2); font-size: 10px; padding: var(--s-1); }
  .dive-fv-bottom { height: 148px; padding: var(--s-3) var(--s-5); }
  .dive .dive-tags { gap: 0 var(--s-3); }
  .dive-tags li { font-size: 14px; line-height: 1.8; }
  .dive-tags strong { font-size: 24px; }
  .dive-actions { margin-top: var(--s-2); }
  .dive-fv-postscript { display: block; padding: var(--s-5); }
  .dive .dive-fv-postscript .dive-stage { font-size: 12px; margin-bottom: var(--s-2); }
  .dive .dive-fv-postscript .dive-fv-lead { font-size: 16px; }
}

/* 第二稿：章ごとに写真・実物・数字が主役になる構図。 */
.dive-sec { position: relative; }
.dive figure[data-dive-track] { margin-inline: 0; }
.dive figure[data-dive-track] img { width: 100%; object-fit: cover; }
.dive figure[data-dive-track] figcaption { font: 12px/1.7 var(--sans); padding-top: var(--s-2); color: var(--muted); }
.dive h2 { font-size: clamp(32px, 4vw, 58px); }
#after { padding-top: var(--s-24); }
#after > .dive-kicker { width: 50%; }
#after > h2 { max-width: 52%; font-size: 42px; }
.dive-after-collage { position: absolute; top: var(--s-24); right: 0; width: 48%; height: 490px; perspective: 900px; }
.dive-after-collage figure { position: absolute; width: 62%; padding: var(--s-3); background: var(--ticket-paper); border: 1px solid var(--line); box-shadow: 0 12px 24px var(--ticket-shadow); }
.dive-after-collage img { height: 340px; }
.dive-note-before { top: 0; left: 0; transform: rotate(-8deg); }
.dive-note-after { top: 96px; right: 0; transform: rotate(7deg); }
.dive .dive-numbered { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-8); margin: 180px 0 var(--s-12); }
.dive-numbered li { display: block; font-size: 28px; line-height: 1.8; padding: var(--s-8) 0; border-block: 1px solid var(--line); }
.dive-numbered li::before { display: block; font-size: 18px; margin-bottom: var(--s-6); }
#what { background: var(--paper); box-shadow: none; clip-path: none; }
#what > h2 { font: 600 22px/1.6 var(--sans); color: var(--coral); }
#what > .dive-lead { font-size: clamp(25px, 3.5vw, 48px); max-width: 980px; }
.dive-what-photo { position: relative; width: 100vw; margin: var(--s-12) calc((1120px - 100vw) / 2) !important; }
.dive-what-photo img { height: min(68vw, 650px); object-position: center 40%; }
.dive-what-photo figcaption { position: absolute; right: var(--s-6); bottom: var(--s-5); color: var(--paper) !important; background: var(--ink); padding: var(--s-1) var(--s-2) !important; }
.dive-purpose { display: inline-block; vertical-align: top; width: 46%; margin: var(--s-6) 3% var(--s-6) 0; }
.dive-purpose p { font-size: 22px; }
.dive-purpose + .dive-purpose { margin-top: var(--s-6); }
.dive-stages caption { font-size: 30px; }
.dive-stages tbody tr:not(:first-child) { background: var(--ticket-band); }
#why-cambodia { display: block; padding-top: 0; }
.dive-chapter-cover { position: relative; width: 100vw; margin-left: calc((1120px - 100vw) / 2); height: 680px; background: var(--ink); isolation: isolate; padding: var(--s-16) max(var(--s-8), calc((100vw - 1120px) / 2)); display: flex; flex-direction: column; justify-content: end; color: var(--paper); margin-bottom: var(--s-16); }
.dive-chapter-cover .dive-kicker { color: var(--paper); position: absolute; top: var(--s-12); }
.dive-chapter-cover h2 { font-size: 58px; margin: 0; position: relative; z-index: 1; }
.dive-chapter-cover h2 .heading-line { background: var(--ink); width: fit-content; padding-inline: var(--s-3); }
.dive-return-photo { position: absolute; inset: 0; margin: 0; width: 100%; height: 100%; transform: none; z-index: -1; }
.dive-return-photo img { height: 100%; border: 0; }
.dive-return-photo figcaption { position: absolute; bottom: var(--s-5); right: var(--s-6); color: var(--paper) !important; background: var(--ink); padding: var(--s-1) var(--s-2) !important; }
#why-cambodia > .dive-prose { max-width: 880px; margin: 0 auto; }
#why-cambodia > .dive-prose p { font-size: 19px; }
#why-cambodia > .dive-prose p:nth-child(2) { font: 600 32px/1.9 var(--serif); color: var(--coral); margin-block: var(--s-10); }
.dive .dive-reasons { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-8); margin-block: var(--s-16); }
.dive-reasons li { display: block; border-top: 2px solid var(--ink); }
.dive-reasons li::before { display: block; margin-bottom: var(--s-5); }
.dive-reasons h3 { font-size: 26px; margin-bottom: var(--s-6); }
.dive-conclusion { font-size: 30px; }
#why-month > h2 { font-size: 66px; }
.dive-compare thead th { font-size: 30px; }
.dive-structure h3 { font-size: 48px; }
.dive-resolve-track { grid-template-columns: 1fr 1fr; gap: var(--s-10); position: relative; padding-top: var(--s-16); padding-bottom: 210px; }
.dive-resolve { grid-column: 2; grid-row: 1; align-self: center; }
.dive-resolve h3 { font-size: 42px; }
.dive-resolve-wide { grid-column: 1; grid-row: 1; width: 100%; margin: 0; }
.dive-resolve-wide img { height: 700px; }
.dive-resolve-wide figcaption { color: var(--paper) !important; }
.dive-field-photo { position: absolute; right: var(--s-12); bottom: 0; width: 280px; margin: 0; padding: 0; }
.dive-courses { margin-top: var(--s-12); width: calc(100% + 2 * var(--s-8)); margin-left: calc(-1 * var(--s-8)); border: 0; }
.dive-course { padding: 0 var(--s-8) var(--s-10); }
.dive-course-photo { margin: 0 calc(-1 * var(--s-8)) var(--s-8) !important; width: calc(100% + 2 * var(--s-8)); }
.dive-course-photo img { height: 350px; }
.dive-course-photo figcaption { padding-inline: var(--s-4); }
.dive-course h3 { font-size: 32px; }
.dive-course h3 .heading-line:last-child { font-size: 82px; }
.dive-course-intro { min-height: 400px; }
.dive-weeks li { min-height: 145px; grid-template-columns: 74px 1fr; }
.dive-weeks li b { width: 74px; height: 74px; font-size: 28px; }
.dive-weeks::before, .dive-weeks::after { left: 36px; }
.dive-weeks li span { font-size: 23px; }
.dive .dive-budget-amount { font-size: 110px; }
#prep { grid-template-columns: 1fr 1fr; gap: var(--s-6) var(--s-12); }
#prep > h2 { grid-column: 2; grid-row: 1; font-size: 42px; }
#prep > .dive-lead, #prep > p { grid-column: 2; }
.dive-prep-photo { grid-column: 1; grid-row: 1 / 5; margin: 0; padding: var(--s-5); background: var(--ticket-stub); transform: rotate(-3deg); }
.dive-prep-photo img { height: 610px; }
.dive .dive-prep-items { grid-column: 2; grid-template-columns: 1fr 1fr; margin-block: var(--s-3); }
.dive-prep-items li { border-left: 0 !important; padding: var(--s-4) 0; margin-right: var(--s-4); }
#prep > .dive-note { grid-column: 2; }
#people { display: block; padding-top: var(--s-16); }
#people > h2 { max-width: 900px; }
#people > p:not(.dive-note) { max-width: 780px; }
.dive-people-visual { position: relative; margin: var(--s-10) 0 var(--s-16); }
.dive-people-wide { width: calc(100% + 2 * var(--s-8)); margin: 0 calc(-1 * var(--s-8)) !important; }
.dive-people-wide img { height: 620px; }
.dive-people-wide figcaption { padding-inline: var(--s-4); }
.dive-people-photo { position: absolute; width: 240px; right: var(--s-6); bottom: calc(-1 * var(--s-10)); padding: var(--s-2); margin: 0 !important; background: var(--paper); transform: rotate(5deg); box-shadow: 0 12px 24px var(--ticket-shadow); }
.dive-people-photo img { height: 220px; }
.dive .dive-people { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-8); margin-top: var(--s-20); }
.dive-people li { font-size: 20px; }
#people > .dive-note { font-size: 38px; }
.dive-outcome-photo { margin-block: var(--s-12) 0; }
.dive-outcome-photo img { height: 510px; }
.dive-numbers { position: relative; padding: var(--s-16) 0; margin-top: var(--s-12); color: var(--paper); background: var(--ink); box-shadow: 0 0 0 100vmax var(--ink); clip-path: inset(0 -100vmax); border: 0; }
.dive-numbers h3 { font-size: 32px; }
.dive .dive-numbers ul { column-gap: var(--s-10); margin-block: var(--s-12); }
.dive-numbers li { font-size: 18px; }
.dive-numbers strong { font-size: clamp(85px, 9.6vw, 138px); color: var(--yellow); letter-spacing: -.07em; line-height: 1; white-space: nowrap; }
.dive-numbers strong small { font-size: 30px; letter-spacing: 0; }
.dive-numbers .dive-source { color: var(--paper); font-size: 16px; }
.dive-voices-text { padding-block: var(--s-8); }
.dive-voice blockquote { font-size: 24px; }
#life > h2 { font-size: 58px; }
.dive-stay-photos { gap: var(--s-4); width: calc(100% + 2 * var(--s-8)); margin-left: calc(-1 * var(--s-8)); }
.dive-stay-photos img { height: 430px; aspect-ratio: auto; }
#fee { background: var(--paper); margin-top: var(--s-12); padding: var(--s-12); }
.dive-fee-photo { position: relative; margin: calc(-1 * var(--s-12)) calc(-1 * var(--s-12)) var(--s-12) !important; width: calc(100% + 2 * var(--s-12)); }
.dive-fee-photo img { height: 360px; }
.dive-fee-photo figcaption { padding-inline: var(--s-4); }
#fee > h2 { font-size: 58px; }
.dive-price { display: flex; flex-direction: column; gap: 0; border-top: 2px solid var(--ink); }
.dive-price-regular { order: -1; align-self: flex-start; font-size: 28px; }
.dive .dive-price-now { font-size: clamp(75px, 10.5vw, 152px); line-height: 1.3; letter-spacing: -.055em; }
.dive-price > p:nth-child(2) { font-size: 22px; }
.dive .dive-which { gap: var(--s-8); }
.dive-which li { border: 0; padding-top: 0; }
.dive-choice-photo { margin-block: 0 var(--s-6); }
.dive-choice-photo img { height: 320px; }
#flow { display: grid; grid-template-columns: .85fr 1.15fr; gap: 0 var(--s-12); }
#flow > h2 { grid-column: 1 / -1; }
.dive-flow-photo { grid-column: 1; grid-row: 2 / 4; margin-block: var(--s-10) 0; }
.dive-flow-photo img { height: 690px; }
.dive .dive-flow { grid-column: 2; }
#flow > .dive-button { grid-column: 2; justify-self: start; }
#closing { width: 100%; min-height: 850px; display: flex; flex-direction: column; align-items: center; justify-content: center; isolation: isolate; padding-inline: var(--s-8); box-shadow: none; clip-path: none; }
.dive-closing-photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.dive-closing-photo img { height: 100%; }
.dive-closing-photo::after { content: ''; position: absolute; inset: 0; background: var(--ink); opacity: .75; }
.dive-closing-photo figcaption { position: absolute; bottom: var(--s-5); right: var(--s-6); color: var(--paper) !important; z-index: 1; }
#closing h2 { font-size: 54px; }
#closing > p { font-size: 20px; }
#closing .dive-button { min-height: 64px; min-width: 300px; }
@media (max-width: 1184px) {
  .dive-what-photo, .dive-chapter-cover { margin-left: calc(-1 * var(--s-8)) !important; }
}
@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-return-photo { transform: none; }
  .is-moving [data-dive-track='photo'] > img { clip-path: inset(calc((1 - var(--dive-enter, 1)) * 9%) calc((1 - var(--dive-enter, 1)) * 13%)); }
  .is-moving .dive-after-collage .dive-note-before { transform: perspective(900px) rotateY(calc((1 - var(--dive-enter, 1)) * 28deg)) rotate(-8deg) translateX(calc((1 - var(--dive-enter, 1)) * -50px)); }
  .is-moving .dive-after-collage .dive-note-after { transform: perspective(900px) rotateY(calc((1 - var(--dive-enter, 1)) * -30deg)) rotate(7deg) translateX(calc((1 - var(--dive-enter, 1)) * 50px)); }
  .is-moving .dive-resolve-track { min-height: 0; }
  .is-moving .dive-resolve { position: relative; top: auto; }
  .is-moving .dive-field-photo { position: absolute; top: auto; margin: 0; }
}
@media (max-width: 767px) {
  .dive h2 { font-size: 29px; }
  #after > .dive-kicker { width: 100%; }
  #after > h2 { max-width: 100%; font-size: 29px; margin-bottom: var(--s-8); }
  .dive-after-collage { position: relative; inset: auto; width: 100%; height: 390px; }
  .dive-after-collage figure { width: 63%; padding: var(--s-2); }
  .dive-after-collage img { height: 265px; }
  .dive-note-after { top: var(--s-16); }
  .dive .dive-numbered { display: block; margin: var(--s-6) 0 var(--s-10); }
  .dive-numbered li { font-size: 25px; padding-block: var(--s-6); border-top: 0; }
  .dive-numbered li::before { margin-bottom: var(--s-3); }
  #what > .dive-lead { font-size: 27px; }
  .dive-what-photo, .dive-chapter-cover { margin-left: calc(-1 * var(--s-5)) !important; }
  .dive-what-photo img { height: 390px; }
  .dive-purpose { display: block; width: 100%; margin: var(--s-6) 0; }
  .dive-purpose p { font-size: 21px; }
  .dive-chapter-cover { height: 540px; padding: var(--s-8) var(--s-5) var(--s-16); margin-bottom: var(--s-10); }
  .dive-chapter-cover h2 { font-size: 29px; }
  .dive-chapter-cover .dive-kicker { top: var(--s-8); background: var(--ink); padding: var(--s-1) var(--s-2); }
  #why-cambodia > .dive-prose p { font-size: 17px; }
  #why-cambodia > .dive-prose p:nth-child(2) { font-size: 25px; }
  .dive .dive-reasons { display: block; margin-block: var(--s-10); }
  .dive-reasons h3 { font-size: 26px; }
  .dive-conclusion { font-size: 24px; }
  #why-month > h2 { font-size: 37px; }
  .dive-compare thead th { font-size: 20px; }
  .dive-structure h3 { font-size: 32px; }
  .dive-resolve-track { display: flex; flex-direction: column; gap: var(--s-8); padding-bottom: 0; }
  .dive-resolve-wide { order: -1; }
  .dive-resolve-wide img { height: 420px; }
  .dive-resolve h3 { font-size: 32px; }
  .dive-field-photo, .is-moving .dive-field-photo { position: relative; inset: auto; width: 240px; align-self: end; margin: 0 var(--s-4) !important; }
  .dive-courses { width: 100%; margin-left: 0; }
  .dive-course { padding-inline: var(--s-4); }
  .dive-course-photo { width: calc(100% + 2 * var(--s-4)); margin-inline: calc(-1 * var(--s-4)) !important; }
  .dive-course-photo img { height: 280px; }
  .dive-course + .dive-course { border: 0; padding-top: var(--s-10); }
  .dive-course h3 { font-size: 27px; }
  .dive-course h3 .heading-line:last-child { font-size: 72px; }
  .dive-course-intro { min-height: 0; }
  .dive-weeks li { grid-template-columns: 58px 1fr; min-height: 136px; }
  .dive-weeks li b { width: 58px; height: 58px; font-size: 22px; }
  .dive-weeks::before, .dive-weeks::after { left: 28px; }
  .dive-weeks li span { font-size: 20px; }
  .dive .dive-budget-amount { font-size: 90px; }
  #prep { display: block; }
  #prep > h2 { font-size: 29px; }
  .dive-prep-photo { width: 90%; margin: var(--s-8) auto !important; padding: var(--s-3); }
  .dive-prep-photo img { height: 380px; }
  .dive-people-wide { width: 100vw; margin-left: calc(-1 * var(--s-5)) !important; }
  .dive-people-wide img { height: 430px; object-position: 64% center; }
  .dive-people-photo { width: 155px; right: 0; bottom: calc(-1 * var(--s-8)); }
  .dive-people-photo img { height: 142px; }
  .dive .dive-people { display: block; margin-top: var(--s-16); }
  .dive-people li { font-size: 18px; }
  #people > .dive-note { font-size: 28px; }
  .dive-outcome-photo img { height: 320px; }
  .dive-numbers { padding-block: var(--s-12); padding-inline: 0; }
  .dive-numbers h3 { font-size: 25px; }
  .dive-numbers strong { font-size: 116px; }
  .dive-numbers strong small { font-size: 28px; }
  .dive-numbers li { padding-block: var(--s-6); border-color: var(--muted); }
  .dive-numbers li > span { font-size: 17px; }
  .dive-numbers li:last-child { font-size: 16px; }
  .dive-voice blockquote { font-size: 22px; }
  #life > h2 { font-size: 34px; }
  .dive-stay-photos { width: 100%; margin-left: 0; }
  .dive-stay-photos img { height: auto; }
  #fee { padding: var(--s-8) var(--s-5); }
  .dive-fee-photo { width: calc(100% + 2 * var(--s-5)); margin: calc(-1 * var(--s-8)) calc(-1 * var(--s-5)) var(--s-8) !important; }
  .dive-fee-photo img { height: 280px; }
  #fee > h2 { font-size: 34px; }
  .dive-price-regular { font-size: 22px; }
  .dive .dive-price-now { font-size: clamp(48px, 14vw, 60px); }
  .dive-price > p:nth-child(2) { font-size: 18px; }
  .dive-choice-photo img { height: 260px; }
  #flow { display: block; }
  .dive-flow-photo img { height: 360px; }
  #closing { min-height: 800px; padding-inline: var(--s-5); }
  #closing h2 { font-size: 27px; }
  #closing > p { font-size: 17px; }
  .dive-closing-photo img { object-position: 50% center; }
}

/* 写真上の顔と文字を分け、席をFVと結びで同じ絵にする。 */
.dive-tags strong { line-height: 1; }
.dive-closing-seats svg { width: 250px; stroke: var(--yellow); stroke-width: 1.5; stroke-linecap: square; }
.dive-price { position: relative; }
.dive-price::before { content: ''; position: absolute; top: -2px; left: 0; width: 100%; height: 2px; background: var(--coral); transform-origin: left; }
@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-price::before { transform: scaleX(var(--dive-enter, 1)); }
  .is-moving .dive-price-now { transform: translateX(calc((1 - var(--dive-enter, 1)) * 32px)); }
  .is-moving .dive-closing-seats.is-cut g { animation: dive-chair-write .6s var(--ease-out) both; }
  .is-moving .dive-closing-seats.is-cut g:nth-child(2) { animation-delay: .08s; }
  .is-moving .dive-closing-seats.is-cut g:nth-child(3) { animation-delay: .16s; }
  .is-moving .dive-closing-seats.is-cut g:nth-child(4) { animation-delay: .24s; }
  .is-moving .dive-closing-seats.is-cut g:nth-child(5) { animation-delay: .32s; }
}
@media (max-width: 767px) {
  .dive-fv-bottom { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: var(--s-2); }
  .dive-fv-bottom .dive-actions { margin: 0; }
  .dive-actions .dive-button { padding: var(--s-2); line-height: 1.5; min-height: 48px; }
  #closing h2 { font-size: 25px; }
}
@media (max-width: 767px) and (max-height: 760px) {
  .dive-fv-photo img { object-position: 20% center; }
  .dive-masthead b { font-size: 80px; }
}

/* 磨き（2026-09-29 Opus）：孤立文字ゼロ。日本語は文節で折り、最後の行に1〜2字だけ落ちないようにする */
.dive p, .dive li, .dive td, .dive th, .dive summary, .dive figcaption, .dive caption, .dive blockquote, .dive b { word-break: auto-phrase; text-wrap: pretty; line-break: strict; }
.dive h1, .dive h2, .dive h3, .dive h4 { word-break: auto-phrase; }
/* 改行の単位。文字は変えず、span で折れる場所だけを決める */
.dive .dive-phrase, .dive .dive-nobr { display: inline-block; max-width: 100%; text-indent: 0; }
.dive .dive-sep { display: none; }
.dive-numbers h3 .heading-line:first-child { margin-right: .6em; }
.dive-dates .dive-nobr:first-of-type { margin-right: 1em; }
.dive-weeks li span span { padding-top: 0; padding-left: 0; font: inherit; }
.is-moving .dive-weeks li span span { transform: none; }
/* 数字は明朝で。等幅（Courier）だと「8 . 0」と間が空いて見えた */
.dive-numbers strong { font-family: var(--serif); font-weight: 500; letter-spacing: -.02em; font-variant-numeric: lining-nums; }
.dive-numbers strong small { font-family: var(--sans); margin-left: .12em; }
/* 小さい写真（800px）は引き伸ばさない。4:3 のまま、紙に貼った記録写真の大きさで */
.dive-prep-photo img { height: auto; aspect-ratio: 4 / 3; }
.dive-outcome-photo { max-width: 720px; margin-inline: auto !important; padding: var(--s-3); background: var(--ticket-paper); border: 1px solid var(--line); box-shadow: 0 12px 24px var(--ticket-shadow); transform: rotate(-1.5deg); }
.dive-outcome-photo img { height: auto !important; aspect-ratio: 4 / 3; }
/* 写真の注記：ページで1回 */
.dive .dive-photo-credit { width: min(1120px, 100% - 2 * var(--s-8)); margin: 0 auto; padding-block: var(--s-6); color: var(--muted); font-size: 14px; }
@media (max-width: 767px) {
  .dive .dive-photo-credit { width: calc(100% - 2 * var(--s-5)); }
  .dive-fv-photo figcaption { font-size: 12px; }
}
.dive-field-photo figcaption, .dive-people-photo figcaption { white-space: nowrap; }
@media (max-width: 767px) {
  /* スマホ：注記は写真の右端に縦書きで（h1 と重ならない）。第一稿の top:100% が残って潰れていた */
  .dive-fv-photo figcaption { top: auto; bottom: var(--s-4); right: 0; max-width: none; writing-mode: vertical-rl; padding: var(--s-2) var(--s-1); line-height: 1.4; letter-spacing: .04em; }
}
.dive-numbers strong { word-spacing: -.25em; }
/* 読める大きさ：本文 16px 以上、対比 4.5:1 以上（2026-09-29 Opus） */
.dive-stages tbody tr:not(:first-child) td:first-child { color: var(--ink); font-weight: 600; box-shadow: inset 3px 0 var(--coral); }
#people > .dive-kicker { color: var(--ink); }
.dive-field-photo figcaption, .dive-people-photo figcaption { font-size: 14px; }
.dive .dive-photo-credit { font-size: 16px; }
@media (max-width: 767px) {
  .dive .dive-question { font-size: 16px; letter-spacing: -.02em; }
  .dive-masthead > span { font-size: 16px; }
  .dive-tags li { font-size: 16px; line-height: 1.7; }
  .dive-actions { flex-wrap: nowrap; gap: var(--s-4); }
  .dive .dive-actions .dive-button { font-size: 16px; letter-spacing: -.02em; white-space: nowrap; }
  .dive .dive-actions .dive-button-line { flex: 1 1 auto; padding-inline: var(--s-3); gap: var(--s-2); }
  .dive-fv-photo figcaption { font-size: 13px; }
  .dive .dive-fv-postscript .dive-stage { font-size: 14px; }
}
.dive-prep-photo { align-self: start; }
.dive-flow-photo img { object-position: 38% 50%; }

/* 最終採点（84点）の直し・2026-09-29 Opus */
.dive-fv { overflow: clip; }
.dive .dive-fv-credit { display: none; }
@media (max-width: 767px) {
  /* 写真の注記は子どもの顔にかけない。札の下に横書きで1行 */
  .dive-fv-photo figcaption { display: none; }
  .dive .dive-fv-credit { display: block; margin: 0 0 var(--s-1); font-size: 12px; line-height: 1.5; color: var(--muted); white-space: nowrap; }
  /* 帯の高さは固定しない。写真の場面は残りの高さ */
  .dive-fv { display: flex; flex-direction: column; }
  .dive-fv-scene { position: relative; inset: auto; flex: 1 1 auto; min-height: 0; }
  .dive-fv-bottom { position: relative; inset: auto; height: auto; min-height: 148px; flex: 0 0 auto; }
  .dive .dive-actions .dive-button { white-space: nowrap; }
}
@media (max-width: 380px) {
  .dive .dive-actions .dive-button { font-size: 15px; letter-spacing: -.03em; }
  .dive .dive-actions { gap: var(--s-3); }
  .dive .dive-actions .dive-button-sub { gap: var(--s-2); }
}
/* 1440：#after は 01〜03 を太い罫で区切った1列、右にノートのコラージュを3行ぶんの高さで */
@media (min-width: 768px) {
  #after { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); column-gap: var(--s-16); }
  #after > * { grid-column: 1 / -1; }
  #after > .dive-kicker, #after > h2 { width: auto; max-width: none; }
  #after > .dive-numbered { grid-column: 1; grid-row: 3; }
  #after > .dive-after-collage { grid-column: 2; grid-row: 3; position: relative; inset: auto; width: auto; height: auto; min-height: 0; align-self: stretch; }
  .dive-after-collage figure { width: 60%; height: 84%; }
  .dive-after-collage img { height: 100%; }
  .dive-after-collage .dive-note-before { top: 0; left: 0; }
  .dive-after-collage .dive-note-after { top: 16%; right: 0; }
  .dive .dive-numbered { display: block; margin: 0 0 var(--s-12); }
  .dive-numbered li { display: grid; grid-template-columns: 64px 1fr; align-items: baseline; font-size: 25px; line-height: 1.7; padding: var(--s-8) 0; border: 0; }
  .dive-numbered li + li { border-top: 2px solid var(--ink); }
  .dive-numbered li::before { margin: 0; font-size: 16px; }
  /* #what：目的は1列（730px）、右に傾けたポラロイド */
  .dive-what-purpose { display: grid; grid-template-columns: minmax(0, 730px) minmax(0, 1fr); column-gap: var(--s-12); align-items: center; margin-block: var(--s-10); }
  .dive-what-purpose .dive-purpose { display: block; width: auto; margin: 0 0 var(--s-6); }
}
.dive-what-polaroid { margin: var(--s-8) 0 0; transform: rotate(2deg); }
.dive-what-polaroid img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border: 8px solid var(--ticket-paper); box-shadow: 0 12px 24px var(--ticket-shadow); }
@media (min-width: 768px) { .dive-what-polaroid { margin: 0; } }
@media (max-width: 767px) { .dive-what-polaroid { margin: var(--s-6) var(--s-2) var(--s-8); } }
/* 週の字は W の札と同じ高さの中央に揃える（札と字が別の行に見えないように） */
.dive-weeks li { align-items: center; }
.dive-weeks li > span { padding-top: 0; }
@media (prefers-reduced-motion: no-preference) and (min-width: 768px) {
  /* 太い罫が斜めに歪まないよう、PC は縦にずらして順に置くだけにする */
  .is-moving .dive-numbered li, .is-moving .dive-numbered li:nth-child(2), .is-moving .dive-numbered li:nth-child(3) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 28px)); }
  .is-moving .dive-numbered li:nth-child(2) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 56px)); }
  .is-moving .dive-numbered li:nth-child(3) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 84px)); }
}
@media (min-width: 768px) {
  .dive-after-collage figure { height: 80%; }
  .dive-after-collage .dive-note-after { top: 13%; }
}

/* ===== 第三稿（2026-09-29 Opus）：渡邉さん「情報量が少ないのに縦長」。#after・#what を1画面の見開きに組み直す ===== */
.dive .dive-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dive .dive-colon { display: none; }

/* FV：帯をやめ、札の近くに段とリード */
.dive-fv-postscript { display: none; }
.dive .dive-fv-leadbox { margin: 0; }
.dive .dive-fv-leadbox p { margin: 0; }
.dive .dive-fv-leadbox .dive-stage { font: 600 15px/1.6 var(--sans); color: var(--coral); letter-spacing: .02em; }
.dive .dive-fv-leadbox .dive-fv-lead { font: 500 19px/1.6 var(--serif); color: var(--ink); }
@media (min-width: 768px) {
  .dive-fv-scene { bottom: 136px; }
  .dive-fv-bottom { height: 136px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: var(--s-10); }
  .dive-fv-bottom .dive-actions { margin: 0; }
  .dive .dive-fv-leadbox { padding-left: var(--s-8); border-left: 1px solid var(--line); }
}
@media (max-width: 767px) {
  .dive .dive-fv-leadbox { padding-block: var(--s-2) var(--s-1); border-top: 1px solid var(--line); margin-top: var(--s-1); }
  .dive .dive-fv-leadbox .dive-stage { font-size: 13px; }
  .dive .dive-fv-leadbox .dive-fv-lead { font-size: 16px; line-height: 1.5; }
}

/* 章の上下の余白を詰める（今の 6〜7 割） */
.dive .dive-sec:not(#why-cambodia):not(#closing):not(#what) { padding-block: 64px; }
@media (max-width: 767px) { .dive .dive-sec:not(#why-cambodia):not(#closing):not(#what) { padding-block: 44px; } }

/* --- #after：見出し＋ノート／3つの声を横3列／得たもの↔残った問い／締めの問い --- */
#after.dive-after2 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-6); align-items: start; }
#after.dive-after2 > * { grid-column: 1 / -1; min-width: 0; }
#after.dive-after2 .dive-after-head { grid-column: 1 / 8; grid-row: 1; }
#after.dive-after2 .dive-kicker { width: auto; font-size: 18px; margin-bottom: var(--s-4); }
#after.dive-after2 h2 { max-width: none; font-size: clamp(34px, 3.4vw, 46px); line-height: 1.5; margin: 0; }
#after.dive-after2 .dive-after-collage { grid-column: 8 / -1; grid-row: 1; position: relative; inset: auto; width: auto; height: 330px; margin: 0 0 -60px; z-index: 1; perspective: 900px; }
#after.dive-after2 .dive-after-collage figure { position: absolute; width: 52%; height: auto; padding: var(--s-2); background: var(--ticket-paper); border: 1px solid var(--line); box-shadow: 0 14px 28px var(--ticket-shadow); }
#after.dive-after2 .dive-after-collage img { height: 300px; object-fit: cover; }
#after.dive-after2 .dive-note-before { top: 0; left: 4%; right: auto; }
#after.dive-after2 .dive-note-after { top: 36px; right: 0; left: auto; }
#after.dive-after2 .dive-voices3 { grid-row: 2; list-style: none; padding: 0; margin: var(--s-10) 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); counter-reset: voice; position: relative; z-index: 2; }
.dive-voices3 li { counter-increment: voice; padding: var(--s-6) var(--s-6) var(--s-8) 0; font: 500 26px/1.6 var(--serif); letter-spacing: -.01em; }
.dive-voices3 li + li { padding-left: var(--s-6); border-left: 1px solid var(--line); }
.dive-voices3 li::before { content: '0' counter(voice); display: block; font: 500 64px/1 var(--serif); color: var(--coral); margin-bottom: var(--s-4); letter-spacing: -.03em; }
#after.dive-after2 .dive-after-pairs { grid-column: 1 / 9; grid-row: 3; display: grid; grid-template-columns: 210px 32px minmax(0, 1fr); margin: var(--s-6) 0 0; padding: var(--s-4) var(--s-8); background: var(--ticket-paper); border: 1px solid var(--line); box-shadow: 0 10px 22px var(--ticket-shadow); }
#after.dive-after2 .dive-after-pairs ul { display: contents; list-style: none; }
.dive-after-pairs li { padding-block: var(--s-4); border-bottom: 1px solid var(--line); display: flex; align-items: center; }
.dive-after-pairs .dive-gained li { grid-column: 1; font: 700 19px/1.5 var(--sans); color: var(--ink); gap: var(--s-2); }
.dive-after-pairs .dive-gained li::before { content: '✓' / ''; flex: none; display: grid; place-items: center; width: 28px; height: 28px; border: 2px solid var(--ink); border-radius: 50%; font-size: 15px; line-height: 1; }
.dive-after-pairs .dive-left-questions li { grid-column: 3; min-width: 0; font: 500 20px/1.6 var(--serif); color: var(--ink); }
.dive-after-pairs .dive-gained li:nth-child(1), .dive-after-pairs .dive-left-questions li:nth-child(1) { grid-row: 1; }
.dive-after-pairs .dive-gained li:nth-child(2), .dive-after-pairs .dive-left-questions li:nth-child(2) { grid-row: 2; }
.dive-after-pairs .dive-gained li:nth-child(3), .dive-after-pairs .dive-left-questions li:nth-child(3) { grid-row: 3; border-bottom: 0; }
.dive-after-pairs::before { content: ''; grid-column: 2; grid-row: 1 / 4; justify-self: center; width: 2px; background: repeating-linear-gradient(var(--coral) 0 6px, transparent 6px 12px); }
#after.dive-after2 .dive-after-end { grid-column: 9 / -1; grid-row: 3; align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; margin: var(--s-6) 0 0; padding-left: var(--s-4); }
.dive .dive-after-last { margin: 0; font: 600 36px/1.5 var(--serif); color: var(--coral); letter-spacing: -.01em; }
.dive #after .dive-bridge { margin: var(--s-6) 0 0; padding-top: var(--s-4); border-top: 2px solid var(--ink); font: 500 18px/1.7 var(--sans); }
.dive #after .dive-bridge::after { content: '↓' / ''; display: block; font-size: 28px; line-height: 1; margin-top: var(--s-2); color: var(--coral); }
@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-voices3 li { transform: translateY(calc((1 - var(--dive-enter, 1)) * 40px)); }
  .is-moving .dive-voices3 li:nth-child(2) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 80px)); }
  .is-moving .dive-voices3 li:nth-child(3) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 120px)); }
  .is-moving .dive-after-pairs .dive-left-questions li { transform: translateX(calc((1 - var(--dive-enter, 1)) * 48px)); }
}
@media (max-width: 1023px) {
  #after.dive-after2 .dive-after-head, #after.dive-after2 .dive-after-collage, #after.dive-after2 .dive-after-pairs, #after.dive-after2 .dive-after-end { grid-column: 1 / -1; grid-row: auto; }
  #after.dive-after2 .dive-after-collage { margin: var(--s-6) 0 0; }
  #after.dive-after2 .dive-voices3 { grid-row: auto; }
  #after.dive-after2 .dive-after-end { padding-left: 0; }
}
@media (max-width: 767px) {
  #after.dive-after2 { display: block; }
  #after.dive-after2 h2 { font-size: 29px; }
  #after.dive-after2 .dive-kicker { font-size: 16px; }
  #after.dive-after2 .dive-after-collage { height: 280px; margin: var(--s-6) 0 0; }
  #after.dive-after2 .dive-after-collage figure { width: 56%; }
  #after.dive-after2 .dive-after-collage img { height: 240px; }
  #after.dive-after2 .dive-note-after { top: 28px; }
  #after.dive-after2 .dive-voices3 { display: block; margin-top: var(--s-6); }
  .dive-voices3 li, .dive-voices3 li + li { display: grid; grid-template-columns: 56px 1fr; align-items: baseline; padding: var(--s-5) 0; border-left: 0; border-bottom: 1px solid var(--line); font-size: 22px; }
  .dive-voices3 li::before { font-size: 38px; margin: 0; }
  #after.dive-after2 .dive-after-pairs { display: block; padding: var(--s-2) var(--s-5); margin-top: var(--s-8); }
  #after.dive-after2 .dive-after-pairs::before { content: none; }
  #after.dive-after2 .dive-after-pairs ul { display: block; padding: 0; margin: 0; }
  .dive-after-pairs li { border-bottom: 1px solid var(--line); }
  .dive-after-pairs .dive-gained { display: flex !important; flex-wrap: wrap; gap: var(--s-2) var(--s-4); padding: var(--s-4) 0 !important; border-bottom: 2px solid var(--ink); }
  .dive-after-pairs .dive-gained li { border: 0; padding: 0; font-size: 17px; }
  .dive-after-pairs .dive-gained li::before { width: 24px; height: 24px; font-size: 13px; }
  .dive-after-pairs .dive-left-questions li { font-size: 19px; }
  .dive-after-pairs .dive-left-questions li:last-child { border-bottom: 0; }
  .dive .dive-after-last { font-size: 28px; margin-top: var(--s-8); }
  .is-moving .dive-after-pairs .dive-left-questions li { transform: none; }
}

/* --- #what：暗い写真に白い明朝／目的／現状→その間→あるべき姿／段の階段 --- */
#what.dive-what2 { background: var(--paper); box-shadow: none; clip-path: none; padding-top: 0; }
.dive .dive-what-hero { position: relative; width: 100vw; margin-left: calc(50% - 50vw); min-height: 560px; display: flex; align-items: end; isolation: isolate; color: var(--paper); overflow: clip; }
.dive .dive-what-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; z-index: -2; }
.dive .dive-what-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, var(--ink) 0%, transparent 85%), var(--ink); opacity: .72; z-index: -1; }
.dive .dive-what-hero-copy { width: min(1120px, 100% - 2 * var(--s-8)); margin: 0 auto; padding: var(--s-24) 0 var(--s-12); }
.dive #what .dive-what-hero h2 { font: 600 18px/1.6 var(--sans); color: var(--yellow); margin: 0 0 var(--s-4); letter-spacing: .04em; }
.dive .dive-what-big { font: 600 clamp(40px, 4.6vw, 64px)/1.4 var(--serif); letter-spacing: -.02em; margin: 0 0 var(--s-4); }
.dive .dive-what-sub { font: 500 clamp(20px, 1.8vw, 26px)/1.6 var(--serif); margin: 0; opacity: .95; }
.dive .dive-what-purpose2 { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: var(--s-12); align-items: end; margin: var(--s-12) 0 var(--s-10); }
.dive-what-purpose2 .dive-purpose { display: block; width: auto; max-width: none; margin: 0; }
.dive-what-purpose2 h3 { font: 700 18px/1.6 var(--sans); color: var(--coral); margin-bottom: var(--s-2); }
.dive .dive-purpose-big { font: 600 clamp(28px, 2.8vw, 38px)/1.5 var(--serif); margin: 0; }
.dive-what-purpose2 .dive-purpose + .dive-purpose p { font-size: 20px; line-height: 1.8; margin: 0; padding-left: var(--s-6); border-left: 2px solid var(--coral); }
.dive .dive-gap3 { list-style: none; padding: 0; margin: 0 0 var(--s-16); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--s-10); position: relative; }
.dive-gap3 li { position: relative; padding: var(--s-6); border-top: 4px solid var(--ink); background: var(--ticket-paper); font-size: 18px; line-height: 1.75; }
.dive-gap3 li b { display: block; font: 600 26px/1.4 var(--serif); margin-bottom: var(--s-3); }
.dive-gap3 .dive-gap-mid { border-top-color: var(--coral); background: var(--paper); outline: 2px dashed var(--coral); outline-offset: -2px; }
.dive-gap3 .dive-gap-mid b { color: var(--coral); }
.dive-gap3 .dive-gap-goal { background: var(--ink); color: var(--paper); border-top-color: var(--yellow); }
.dive-gap3 .dive-gap-goal b { color: var(--yellow); }
.dive-gap3 li + li::before { content: '→' / ''; position: absolute; left: calc(-1 * var(--s-10)); top: 50%; width: var(--s-10); transform: translateY(-50%); text-align: center; font: 600 28px/1 var(--sans); color: var(--coral); }
.dive #what .dive-steps-title { font: 600 clamp(28px, 2.8vw, 38px)/1.5 var(--serif); margin: 0 0 var(--s-8); }
.dive .dive-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); align-items: end; }
.dive-step { position: relative; display: flex; flex-direction: column; background: var(--ticket-paper); border: 1px solid var(--line); box-shadow: 0 12px 24px var(--ticket-shadow); }
.dive-step:nth-child(1) { margin-bottom: 0; }
.dive-step:nth-child(2) { margin-bottom: 72px; }
.dive-step:nth-child(3) { margin-bottom: 144px; background: var(--ink); color: var(--paper); border-color: var(--ink); }
.dive-step::after { content: ''; position: absolute; left: -1px; right: -1px; top: 100%; background: repeating-linear-gradient(135deg, var(--ticket-band) 0 10px, var(--ticket-paper) 10px 20px); border: 1px solid var(--line); border-top: 3px solid var(--ink); }
.dive-step:nth-child(2)::after { height: 72px; }
.dive-step:nth-child(3)::after { height: 144px; }
.dive-step-photo { margin: 0; }
.dive-step-photo img { width: 100%; height: 190px; object-fit: cover; }
.dive-step:nth-child(1) .dive-step-photo img { object-position: 50% 30%; }
.dive-step dl { margin: 0; padding: var(--s-5) var(--s-5) var(--s-6); display: grid; grid-template-columns: auto 1fr; column-gap: var(--s-4); row-gap: var(--s-1); align-items: baseline; }
.dive-step dd { margin: 0; }
.dive-step dt:not(.dive-sr) { font: 600 14px/1.8 var(--sans); color: var(--muted); }
.dive-step:nth-child(3) dt:not(.dive-sr) { color: var(--ticket-band); }
.dive-step dd:not(.dive-step-stage):not(.dive-step-name) { font-size: 17px; line-height: 1.7; }
.dive-step .dive-step-stage { grid-column: 1 / -1; font: 700 16px/1.6 var(--sans); color: var(--coral); }
.dive-step:nth-child(3) .dive-step-stage { color: var(--yellow); }
.dive-step .dive-step-name { grid-column: 1 / -1; font: 600 26px/1.4 var(--serif); margin: 0 0 var(--s-3); }
.dive .dive-step-done { position: absolute; top: 150px; right: -8px; margin: 0; max-width: 200px; padding: var(--s-2) var(--s-3) var(--s-2) 46px; background: var(--paper); border: 2px solid var(--coral); color: var(--coral); font: 700 16px/1.5 var(--sans); transform: rotate(-4deg); box-shadow: 0 6px 14px var(--ticket-shadow); }
.dive .dive-step-done::before { content: '✓' / ''; position: absolute; left: 10px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--coral); color: var(--paper); font-size: 15px; }
.dive #what .dive-steps { margin-bottom: 144px; }
.dive #what { padding-bottom: 64px; }
@media (prefers-reduced-motion: no-preference) {
  .is-moving .dive-what-hero > img { transform: scale(calc(1.12 - var(--dive-enter, 1) * .12)); clip-path: none; }
  .is-moving .dive-gap3 li { transform: translateX(calc((1 - var(--dive-enter, 1)) * -40px)); }
  .is-moving .dive-gap3 li:nth-child(3) { transform: translateX(calc((1 - var(--dive-enter, 1)) * -80px)); }
  .is-moving .dive-step:nth-child(2) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 72px)); }
  .is-moving .dive-step:nth-child(3) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 144px)); }
  .is-moving .dive-step-done { transform: rotate(-4deg) scale(calc(1 + (1 - var(--dive-enter, 1)) * .6)); }
}
@media (max-width: 1023px) {
  .dive .dive-gap3 { grid-template-columns: 1fr; gap: var(--s-8); }
  .dive-gap3 li + li::before { content: '↓' / ''; left: 0; right: 0; top: calc(-1 * var(--s-8)); width: auto; transform: none; line-height: var(--s-8); }
  .is-moving .dive-gap3 li, .is-moving .dive-gap3 li:nth-child(3) { transform: translateY(calc((1 - var(--dive-enter, 1)) * 24px)); }
}
@media (max-width: 767px) {
  .dive .dive-what-hero { min-height: 520px; }
  .dive .dive-what-hero-copy { width: calc(100% - 2 * var(--s-5)); padding: var(--s-16) 0 var(--s-8); }
  .dive .dive-what-big { font-size: 34px; }
  .dive .dive-what-sub { font-size: 19px; }
  .dive .dive-what-purpose2 { display: block; margin: var(--s-8) 0; }
  .dive .dive-purpose-big { font-size: 27px; margin-bottom: var(--s-5); }
  .dive-what-purpose2 .dive-purpose + .dive-purpose p { font-size: 18px; padding-left: var(--s-4); }
  .dive .dive-gap3 { margin-bottom: var(--s-10); }
  .dive-gap3 li { padding: var(--s-5); font-size: 17px; }
  .dive-gap3 li b { font-size: 22px; }
  .dive #what .dive-steps-title { font-size: 25px; margin-bottom: var(--s-6); }
  .dive .dive-steps, .dive #what .dive-steps { display: block; margin: 0; }
  .dive-step { margin: 0 0 var(--s-5) !important; }
  .dive-step:nth-child(2) { margin-left: var(--s-4) !important; }
  .dive-step:nth-child(3) { margin-left: var(--s-8) !important; }
  .dive-step::after { content: none; }
  .dive-step { flex-direction: row; }
  .dive-step-photo { flex: 0 0 34%; }
  .dive-step-photo img { height: 100%; min-height: 150px; }
  .dive-step dl { padding: var(--s-3) var(--s-4) var(--s-4); display: block; }
  .dive-step .dive-step-name { font-size: 21px; margin-bottom: var(--s-2); }
  .dive-step .dive-step-stage { font-size: 15px; }
  .dive-step dt:not(.dive-sr) { font-size: 13px; line-height: 1.6; }
  .dive-step dd:not(.dive-step-stage):not(.dive-step-name) { font-size: 16px; line-height: 1.6; margin-bottom: var(--s-1); }
  .dive .dive-step-done { position: relative; top: auto; right: auto; order: 3; }
  .dive .dive-step.is-done { flex-wrap: wrap; }
  .dive .dive-step.is-done .dive-step-done { margin: 0 var(--s-4) var(--s-4) auto; }
  .is-moving .dive-step:nth-child(2), .is-moving .dive-step:nth-child(3) { transform: translateX(calc((1 - var(--dive-enter, 1)) * 40px)); }
}
.dive #what.dive-what2 { padding: 0 0 64px; border-top: 0; }
@media (max-width: 767px) { .dive #what.dive-what2 { padding-bottom: 44px; } }
.dive .dive-step-done { top: 150px; left: var(--s-4); right: auto; max-width: none; white-space: nowrap; }
.dive-gap3 .dive-gap-now { border: 1px solid var(--line); border-top: 4px solid var(--ink); }
@media (max-width: 767px) { .dive .dive-step-done { top: auto; left: auto; white-space: normal; } }
#after.dive-after2 .dive-left-questions { border-left: 0; padding-left: 0; }
/* PC の本文は 17〜18px。注記級の小さい字を減らす */
@media (min-width: 768px) {
  .dive .dive-note, .dive .dive-source, .dive .dive-use, .dive .dive-kicker, .dive .dive-course-catch, .dive-course-intro p, .dive-dates li, .dive-flow span, .dive .dive-photo-credit, .dive-voice figcaption { font-size: 17px; }
  .dive .dive-table { font-size: 17px; }
  .dive-course-intro p { line-height: 1.8; }
  .dive-flow span { color: var(--ink); }
  .dive-step dt:not(.dive-sr) { font-size: 15px; }
  .dive .dive-people-photo figcaption { font-size: 14px; }
  .dive .dive-skills article > p:not(.dive-use) { font-size: 18px; }
}
/* ほかの章も「小さい字と罫線だけ」をやめる：#prep の6項目・#people の3役・#life の3つの約束を札に */
.dive #prep .dive-prep-items { counter-reset: prep; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3); border: 0; margin: var(--s-6) 0; }
.dive #prep .dive-prep-items li { counter-increment: prep; display: flex; align-items: center; gap: var(--s-3); min-height: 72px; padding: var(--s-3) var(--s-4); border: 1px solid var(--line); border-left: 4px solid var(--coral); background: var(--ticket-paper); font: 600 18px/1.5 var(--sans); }
.dive #prep .dive-prep-items li::before { content: '0' counter(prep); font: 500 22px/1 var(--serif); color: var(--coral); }
.dive .dive-people, .dive .dive-life { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); }
.dive .dive-people li, .dive .dive-life li { padding: var(--s-6); border: 0; border-top: 4px solid var(--ink); background: var(--paper); font-size: 17px; line-height: 1.8; box-shadow: 0 8px 18px var(--ticket-shadow); }
.dive .dive-life li { background: var(--ticket-paper); }
.dive .dive-people li b, .dive .dive-life li b { display: block; font: 600 22px/1.5 var(--serif); margin-bottom: var(--s-2); }
.dive #people .dive-people { grid-column: 1 / -1; }
.dive .dive-faq summary { font-size: 18px; }
@media (max-width: 1023px) {
  .dive .dive-people, .dive .dive-life { grid-template-columns: 1fr; }
  .dive #prep .dive-prep-items { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767px) {
  .dive #prep .dive-prep-items li { min-height: 60px; padding: var(--s-2) var(--s-3); font-size: 16px; gap: var(--s-2); }
  .dive #prep .dive-prep-items li::before { font-size: 18px; }
  .dive .dive-people li, .dive .dive-life li { padding: var(--s-5); font-size: 16px; }
  .dive .dive-people li b, .dive .dive-life li b { font-size: 20px; }
  .dive .dive-faq summary { font-size: 17px; }
}
@media (min-width: 768px) {
  .dive #prep > .dive-prep-items { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dive #prep > .dive-note { grid-column: 1 / -1; }
}
.dive #prep .dive-prep-items li::before { white-space: nowrap; }
.dive #prep .dive-prep-items li { border-left: 4px solid var(--coral) !important; }
@media (max-width: 767px) {
  .dive #prep .dive-prep-items { grid-template-columns: 1fr; gap: var(--s-2); }
  .dive #prep .dive-prep-items li { min-height: 52px; }
}
@media (max-width: 767px) {
  .dive .dive-step, .dive .dive-step.is-done { flex-direction: column; flex-wrap: nowrap; }
  .dive-step-photo { flex: none; }
  .dive-step-photo img { height: 160px; min-height: 0; }
  .dive-step dt:not(.dive-sr) { font-size: 14px; }
  .dive .dive-step.is-done .dive-step-done { position: absolute; top: 118px; right: var(--s-3); left: auto; margin: 0; white-space: nowrap; }
}
.dive-step:nth-child(1) .dive-step-photo img { object-position: 50% 78%; }
.dive .dive-step-done, .dive .dive-step.is-done .dive-step-done { top: var(--s-3); }
.dive-step:nth-child(1) .dive-step-photo img { object-position: 50% 50%; }
.dive #what .dive-steps { margin-bottom: 0; }
.dive .dive-step-done, .dive .dive-step.is-done .dive-step-done { top: 162px; }
@media (max-width: 767px) { .dive .dive-step.is-done .dive-step-done { top: 134px; } }
@media (max-width: 767px) {
  .dive .dive-step.is-done .dive-step-done { position: relative; top: auto; right: auto; align-self: flex-start; margin: 0 var(--s-4) var(--s-5); white-space: normal; }
}
@media (max-width: 767px) { .dive .dive-step.is-done .dive-step-done { white-space: nowrap; } }
@media (min-width: 768px) { .dive .dive-step-done { top: 140px; } }

/* 正式ロゴ（2026-09-29 渡邉さん「正式ロゴをきちんと入れて」）。FV の「キミタビ」の字を白の横型ロゴに替えた。
   大きさは今までの字の大きさ（span の font-size）に合わせて em で決める */
.dive-masthead > .dive-masthead-logo img { display: block; height: 2em; width: auto; }
