/* =====================================================================
   TRIWAYS — CAPABILITIES HUB (/capabilities/ only). Loaded after triways-visual.css.
   Prefix: tv-ch-   Built from docs/design/capabilities-hub-mockup-1/2: a photographic
   band under the solid header, an ivory three-column ledger, then seven chapters
   that alternate charcoal and ivory, each with the same head (name left, copy and
   a brass line of links right) and one of two media rows: a gallery of named
   photographs, or a photograph beside a hairline list.
   Egypt comes from the photography alone — no ornament, no texture, flat grounds.
   Rhythm: hero → ivory ledger → charcoal opener + Nile → ivory Road → charcoal Air
           → ivory Arrival → charcoal People → ivory Stay → charcoal Operation
           → ivory-light FAQ → ivory close → footer.
   Missing photographs are marked data-pending: the slot is hidden and the layout
   closes up around it (see each block).
   ===================================================================== */

/* Capabilities hub */
.tv-ch {
  --ch-cols: repeat(12, minmax(0, 1fr));
  --ch-gutter: clamp(1rem, 2vw, 2rem);
  --ch-y: clamp(4.5rem, 3rem + 5vw, 7.5rem);        /* ~120px chapter padding at 1440 */
  --ch-header: 4.35rem;                             /* the fixed header bar */
  --ch-brass-text: var(--tv-brass-text);            /* 4.9:1 on --hb-ivory (shared token) */
  --ch-stone-dark: rgba(244, 240, 232, 0.64);       /* stone on charcoal: 6.9:1 on --hb-ink */
  --ch-line-strong: rgba(41, 39, 37, 0.22);
}
.tv-ch .hb-section--ivory .hb-eyebrow,
.tv-ch-chapter--light .hb-eyebrow,
.tv-ch-faq .hb-eyebrow,
.tv-ch-close .hb-eyebrow { color: var(--ch-brass-text); }

/* ---------------------------------------------------------------------
   1. HERO — a photographic band below the solid header
   ------------------------------------------------------------------- */
.tv-ch-hero { background: var(--hb-ink); padding-top: var(--ch-header); color: var(--hb-champagne); }
.tv-ch-hero__band {
  position: relative; isolation: isolate;
  min-height: clamp(520px, 42vw, 680px);
  display: flex; align-items: center;
}
.tv-ch-hero__media { position: absolute; inset: 0; z-index: 0; display: block; margin: 0; }
.tv-ch-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
/* Charcoal from the left under the title, a light vignette at the foot for the answer */
.tv-ch-hero__band::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(var(--tv-scrim), 0.85) 0%, rgba(var(--tv-scrim), 0.7) 38%, rgba(var(--tv-scrim), 0.25) 100%),
    linear-gradient(0deg, rgba(var(--tv-scrim), 0.45) 0%, rgba(var(--tv-scrim), 0) 35%);
}
.tv-ch-hero__media[data-pending] { display: none; }
.tv-ch-hero__band:has(> .tv-ch-hero__media[data-pending])::before { display: none; }

.tv-ch-hero__inner {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: var(--ch-cols); column-gap: var(--ch-gutter);
  padding-top: clamp(3rem, 5vw, 4.5rem); padding-bottom: clamp(3rem, 5vw, 4.5rem);
}
.tv-ch-hero__lead { display: contents; }
.tv-ch-hero__lead > nav, .tv-ch-hero__lead > .hb-kicker, .tv-ch-hero__title { grid-column: 1 / span 6; }
.tv-ch-hero .hub-crumbs { margin-bottom: clamp(1.75rem, 3vw, 2.75rem); }
.tv-ch-hero .hb-eyebrow { color: var(--hb-champagne); }
.tv-ch-hero .hb-kicker { margin-bottom: 1.25rem; }
.tv-ch-hero .hb-kicker::after { background: var(--hb-champagne); opacity: 0.6; }
.tv-ch-hero__title {
  grid-row: 3;
  font-family: var(--hb-serif); font-weight: 500; color: #fff;
  font-size: clamp(3rem, 1.6rem + 4vw, 5.6rem); line-height: 1; letter-spacing: 0.002em;
  max-width: 5.4em;   /* "What We / Can Execute" */
  margin: 0;
}
.tv-ch-hero__answer { grid-column: 8 / span 5; grid-row: 3; align-self: center; max-width: 30rem; position: relative; }
/* A soft charcoal falloff behind the answer only: it sits over the brightest part of the sunset */
.tv-ch-hero__answer::before {
  content: ""; position: absolute; inset: -4rem -5rem; z-index: -1; pointer-events: none;
  background: radial-gradient(closest-side, rgba(var(--tv-scrim), 0.84) 0%, rgba(var(--tv-scrim), 0.74) 60%, rgba(var(--tv-scrim), 0) 100%);
}
.tv-ch-hero__answer p { font-size: clamp(1.05rem, 0.98rem + 0.25vw, 1.1875rem); line-height: 1.65; color: rgba(251, 250, 247, 0.9); }
.tv-ch-hero__answer p + p { margin-top: 1.4rem; font-size: 0.8125rem; line-height: 1.7; color: rgba(244, 240, 232, 0.82); }
.tv-ch-hero__answer a { color: var(--hb-champagne); border-bottom: 1px solid rgba(200, 183, 156, 0.45); }
.tv-ch-hero__answer a:hover { color: #fff; border-color: #fff; }
.tv-ch-hero a:focus-visible { outline-color: var(--hb-champagne); }

/* ---------------------------------------------------------------------
   2. SEVEN CAPABILITIES — the ledger: name · what it proves · named detail
   ------------------------------------------------------------------- */
.tv-ch-register__head { max-width: 640px; margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
.tv-ch-register__head .hb-heading { margin-bottom: 0.75rem; }
.tv-ch-register__sub { font-size: clamp(1.05rem, 0.98rem + 0.25vw, 1.1875rem); line-height: 1.6; color: var(--hb-text-dim); max-width: 32rem; }

.tv-ch-ledger { width: 100%; border-collapse: collapse; }
.tv-ch-ledger caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tv-ch-ledger thead th {
  text-align: left; padding: 0 1.5rem 0.9rem 0; border-bottom: 1px solid var(--ch-line-strong);
  font-size: 0.625rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-text-dim);
}
.tv-ch-ledger thead th:last-child { padding-left: 2rem; }
.tv-ch-ledger tbody tr { position: relative; }
.tv-ch-ledger tbody th, .tv-ch-ledger tbody td {
  text-align: left; vertical-align: top; font-weight: 400;
  padding: 2.1rem 1.5rem 2.1rem 0; border-bottom: 1px solid var(--hb-line);
  transition: background-color 0.4s var(--hb-ease), box-shadow 0.4s var(--hb-ease);
}
.tv-ch-ledger__cap { width: 31%; }
.tv-ch-ledger__proof { width: 33%; font-size: 0.9375rem; line-height: 1.7; color: var(--hb-text-dim); }
.tv-ch-ledger__proof { max-width: 24rem; }
.tv-ch-ledger__cap a {
  display: inline; font-family: var(--hb-serif); font-weight: 500; color: var(--hb-ink);
  font-size: clamp(1.55rem, 1.3rem + 0.6vw, 1.875rem); line-height: 1.15;
  background: linear-gradient(var(--hb-gold), var(--hb-gold)) 0 100% / 0 1px no-repeat;
  transition: background-size 0.4s var(--hb-ease);
}
.tv-ch-ledger__cap a::after { content: ""; position: absolute; inset: 0; z-index: 1; }   /* the whole row is the link */
.tv-ch-ledger__cap a:focus-visible { outline: none; background-size: 100% 1px; }
.tv-ch-ledger__cap a:focus-visible::after { outline: 2px solid var(--hb-gold); outline-offset: -2px; }
.tv-ch-ledger__named { position: relative; border-left: 0; padding-left: 2rem !important; padding-right: 3.25rem !important; }
.tv-ch-ledger__named::before { content: ""; position: absolute; left: 0; top: 2.1rem; bottom: 2.1rem; width: 1px; background: var(--ch-line-strong); }
.tv-ch-ledger__go {
  position: absolute; right: 0.25rem; top: 2.1rem;
  font-size: 1rem; line-height: 1.4; color: var(--hb-gold); transition: transform 0.4s var(--hb-ease);
}
.tv-ch-tags {
  display: flex; flex-wrap: wrap; row-gap: 0.45rem;
  font-size: 0.625rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1.6;
  color: var(--ch-brass-text); padding-top: 0.35rem;
}
.tv-ch-tags li::after { content: "\00B7"; margin: 0 0.75em; color: var(--hb-gold); }
.tv-ch-tags li:last-child::after { content: none; }
@media (hover: hover) {
  .tv-ch-ledger tbody tr:hover > * { background: var(--hb-white); }
  .tv-ch-ledger tbody tr:hover > th { box-shadow: -1.25rem 0 0 var(--hb-white); }
  .tv-ch-ledger tbody tr:hover > td:last-child { box-shadow: 1.25rem 0 0 var(--hb-white); }
  .tv-ch-ledger tbody tr:hover .tv-ch-ledger__cap a { background-size: 100% 1px; }
  .tv-ch-ledger tbody tr:hover .tv-ch-ledger__go { transform: translateX(4px); }
}

/* ---------------------------------------------------------------------
   3. THE POWER BEHIND THE JOURNEY — the opener, then seven chapters
   ------------------------------------------------------------------- */
.tv-ch-chapters { background: var(--hb-ink); }   /* no ivory seam between the opener and the first chapter */
.tv-ch-opener { background: var(--hb-ink); padding-top: var(--ch-y); }
.tv-ch-opener__kicker { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ch-stone-dark); margin-bottom: 0.9rem; }
.tv-ch-opener__title {
  display: flex; align-items: center; gap: 1.5rem;
  font-family: var(--hb-sans); font-size: 0.75rem; font-weight: 600; line-height: 1.4;
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--hb-champagne); margin: 0;
}
.tv-ch-opener__title::after { content: ""; flex: 0 0 120px; height: 1px; background: var(--hb-champagne); opacity: 0.6; }
.tv-ch-opener__sub { margin-top: 0.75rem; font-size: 0.9375rem; line-height: 1.6; color: var(--ch-stone-dark); }
.tv-ch-opener + .tv-ch-chapter { padding-top: 3rem; }

/* One chapter component; the modifier sets the ground and the palette */
.tv-ch-chapter { padding: var(--ch-y) 0; }
.tv-ch-chapter--dark {
  background: var(--hb-ink);
  --ch-title: #FBFAF7; --ch-text: rgba(244, 240, 232, 0.8); --ch-stone: var(--ch-stone-dark);
  --ch-brass: var(--hb-champagne); --ch-line: var(--hb-line-on-dark); --ch-slot: #232120;
}
.tv-ch-chapter--light {
  background: var(--hb-ivory);
  --ch-title: var(--hb-ink); --ch-text: var(--hb-text-dim); --ch-stone: var(--hb-text-dim);
  --ch-brass: var(--ch-brass-text); --ch-line: var(--ch-line-strong); --ch-slot: #E6DFD2;
}

.tv-ch-chapter__head {
  display: grid; grid-template-columns: var(--ch-cols); column-gap: var(--ch-gutter); row-gap: 1.75rem;
  align-items: end; margin-bottom: clamp(2.5rem, 4vw, 3.5rem);
}
.tv-ch-chapter__name { grid-column: 1 / span 6; }
.tv-ch-chapter__name .hb-kicker { margin-bottom: 1.1rem; }
.tv-ch-chapter__name .hb-eyebrow { font-size: 0.6875rem; }
.tv-ch-chapter__title {
  font-family: var(--hb-serif); font-weight: 500; color: var(--ch-title);
  font-size: clamp(2.75rem, 1.5rem + 3.2vw, 4.25rem); line-height: 1; letter-spacing: 0.002em; margin: 0;
}
.tv-ch-chapter__copy { grid-column: 8 / span 5; padding-bottom: 0.4rem; }
.tv-ch-chapter__copy p { font-size: 1rem; line-height: 1.75; color: var(--ch-text); max-width: 30rem; }
.tv-ch-chapter__copy p + p { margin-top: 0.8rem; }
.tv-ch-chapter__copy p a { color: var(--ch-title); border-bottom: 1px solid var(--hb-gold); }
.tv-ch-chapter__copy p a:hover { color: var(--ch-brass); }

/* The brass line: the chapter's own links in tracked caps, middots between */
/* Each link carries its middot in the gap to its left; the container's negative margin and clip hide
   the dot of whichever link starts a line, so a wrapped line never opens with a stray middot. */
.tv-ch-links {
  display: flex; flex-wrap: wrap; align-items: center; row-gap: 0.6rem;
  margin: 1.4rem 0 0 -2.2rem; clip-path: inset(-8px -8px -8px 1.7rem);
}
.tv-ch-links a {
  position: relative; margin-left: 2.2rem;
  display: inline-flex; align-items: center; gap: 0.45rem;
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.5;
  color: var(--ch-brass);
}
.tv-ch-links a::before { content: "\00B7" / ""; position: absolute; left: -1.3rem; color: var(--ch-brass); }
.tv-ch-links .hb-arrow { transition: transform 0.4s var(--hb-ease); }
.tv-ch-links a:hover, .tv-ch-links a:focus-visible { color: var(--ch-title); }
.tv-ch-links a:hover .hb-arrow { transform: translateX(4px); }

/* ---- Gallery: named photographs, captions in small tracked caps ---- */
.tv-ch-gallery { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.tv-ch-tile { margin: 0; }
.tv-ch-tile__frame { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--ch-slot); }
.tv-ch-tile__frame img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s var(--hb-ease); }
.tv-ch-tile figcaption {
  margin-top: 0.85rem;
  font-size: 0.625rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.6; color: var(--ch-stone);
}
.tv-ch-tile figcaption span { display: block; margin-top: 0.15rem; font-weight: 400; letter-spacing: 0.04em; text-transform: none; font-size: 0.78rem; }

.tv-ch-gallery--nile { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tv-ch-gallery__lead { grid-column: 1 / -1; }
.tv-ch-gallery__lead .tv-ch-tile__frame { aspect-ratio: 16 / 5; }
.tv-ch-gallery__lead img { object-position: 50% 58%; }   /* Esmeralda: the whole ship, water below, a band of sky above */

.tv-ch-gallery--road { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tv-ch-gallery--road .tv-ch-tile__frame { aspect-ratio: 4 / 3; }

.tv-ch-gallery--stay { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tv-ch-gallery--stay .tv-ch-tile__frame { aspect-ratio: 4 / 5; }

.tv-ch-note { margin-top: 1.5rem; max-width: 40rem; font-family: var(--hb-serif); font-style: italic; font-size: 1.05rem; line-height: 1.55; color: var(--ch-stone); }

/* ---- Photograph + hairline list ---- */
.tv-ch-split { display: grid; grid-template-columns: var(--ch-cols); column-gap: var(--ch-gutter); align-items: center; }
.tv-ch-split__media { grid-column: 1 / span 8; margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: var(--ch-slot); }
.tv-ch-split__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 55% 40%; transition: transform 0.4s var(--hb-ease); }
.tv-ch-split__media--team img { object-position: 50% 30%; }   /* faces stay in frame when cropped to 4:3 */
.tv-ch-split__list { grid-column: 9 / -1; align-self: stretch; display: flex; flex-direction: column; justify-content: center; border-left: 1px solid var(--ch-line); padding: 1.5rem 0 1.5rem clamp(1.5rem, 3vw, 2.75rem); }

.tv-ch-list li {
  display: grid; grid-template-columns: 1rem minmax(0, 1fr); column-gap: 1rem;
  font-size: 0.875rem; line-height: 1.5; color: var(--ch-title);
}
.tv-ch-list li + li { margin-top: 1.75rem; }
.tv-ch-list li::before { content: ""; grid-column: 1; grid-row: 1; height: 1px; margin-top: 0.75em; background: var(--ch-brass); opacity: 0.85; }
.tv-ch-list--pillars li { font-size: 0.9375rem; font-weight: 500; }
.tv-ch-list--pillars li > span { grid-column: 2; margin-top: 0.3rem; font-size: 0.8125rem; font-weight: 400; line-height: 1.6; color: var(--ch-stone); max-width: 26ch; }
.tv-ch-list__cap {
  margin-top: 2rem; padding-left: 2rem;
  font-size: 0.625rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.7; color: var(--ch-stone);
}

/* Pending photograph: the slot is hidden and the list opens out into a hairline row
   under the head, set larger so the chapter still has a focal line */
.tv-ch-split__media[data-pending] { display: none; }
.tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-split__list {
  grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--ch-line); padding: 1.75rem 0 0;
}
.tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-list {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); column-gap: var(--ch-gutter); row-gap: 1.5rem;
}
.tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-list li { margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.95rem); line-height: 1.2; }
.tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-list li::before { margin-top: 0.62em; }
.tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-list--pillars li > span { font-family: var(--hb-sans); margin-top: 0.55rem; }

/* ---- The Stay: the hospitality strip, logos in one charcoal tone on ivory ---- */
.tv-ch-marquee { margin-top: clamp(3rem, 5vw, 4.5rem); padding-top: clamp(2.5rem, 4vw, 3.25rem); border-top: 1px solid var(--ch-line); }
.tv-ch-marquee .tw-hospitality-marquee__label { color: var(--ch-brass-text); font-size: 0.6875rem; letter-spacing: 0.22em; margin-bottom: 1.5rem; }
.tv-ch-marquee .tw-hospitality-marquee__group img { filter: brightness(0); opacity: 0.72; }
.tv-ch-marquee .tw-hospitality-marquee__viewport:focus-visible { outline-color: var(--hb-gold); }
.tv-ch-marquee .tw-hospitality-marquee__toggle { color: var(--hb-text-dim); border-bottom-color: var(--ch-line-strong); }
.tv-ch-marquee .tw-hospitality-marquee__toggle:hover, .tv-ch-marquee .tw-hospitality-marquee__toggle:focus-visible { color: var(--hb-ink); border-color: var(--hb-ink); }
.tv-ch-marquee .tw-hospitality-marquee__toggle:focus-visible { outline-color: var(--hb-gold); }

@media (hover: hover) {
  .tv-ch-tile:hover .tv-ch-tile__frame img, .tv-ch-split__media:hover img { transform: scale(1.035); }
}

/* ---------------------------------------------------------------------
   4. FAQ — ivory-light ground; layout is the shared .tv-faq (triways-visual.css)
   ------------------------------------------------------------------- */
.tv-ch-faq { background: var(--hb-white); }

/* ---------------------------------------------------------------------
   5. CLOSE — ivory, three columns: invitation · action · where next
   ------------------------------------------------------------------- */
.tv-ch-close { background: var(--hb-ivory); border-top: 1px solid var(--hb-line); }
.tv-ch-close__grid { display: grid; grid-template-columns: var(--ch-cols); column-gap: var(--ch-gutter); row-gap: 2.75rem; align-items: start; }
.tv-ch-close__lead { grid-column: 1 / span 4; }
.tv-ch-close__lead .hb-heading { font-size: clamp(1.9rem, 1.45rem + 1.1vw, 2.5rem); line-height: 1.15; margin: 0; }
.tv-ch-close__body { grid-column: 6 / span 3; padding-top: 2.5rem; }
.tv-ch-close__body .hb-copy { font-size: 0.9375rem; line-height: 1.75; margin-bottom: 1.75rem; }
.tv-ch-close__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }
.tv-ch-close__direct {
  display: inline-flex; align-items: center; gap: 0.55rem;
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--hb-ink);
  border-bottom: 1px solid var(--ch-line-strong); padding-bottom: 0.25rem;
}
.tv-ch-close__direct .bi { color: var(--ch-brass-text); font-size: 0.85rem; }
.tv-ch-close__direct:hover, .tv-ch-close__direct:focus-visible { color: var(--ch-brass-text); border-color: var(--hb-gold); }
.tv-ch-close__next { grid-column: 10 / span 3; padding-top: 2.5rem; }
.tv-ch-close__next-label { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-text-dim); padding-bottom: 0.85rem; border-bottom: 1px solid var(--ch-line-strong); }
.tv-ch-close__next li { border-bottom: 1px solid var(--hb-line); }
.tv-ch-close__next a {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; align-items: center;
  padding: 0.9rem 0; font-family: var(--hb-serif); font-size: 1.15rem; line-height: 1.2; color: var(--hb-ink);
}
.tv-ch-close__next a span {
  grid-column: 1; grid-row: 2; margin-top: 0.3rem;
  font-family: var(--hb-sans); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hb-text-dim);
}
.tv-ch-close__next a::after { content: "\2192" / ""; grid-column: 2; grid-row: 1 / span 2; font-family: var(--hb-sans); font-size: 0.9rem; color: var(--hb-gold); transition: transform 0.4s var(--hb-ease); }
.tv-ch-close__next a:hover, .tv-ch-close__next a:focus-visible { color: var(--ch-brass-text); }
.tv-ch-close__next a:hover::after { transform: translateX(4px); }

/* ---------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-ch-close__lead { grid-column: 1 / span 5; }
  .tv-ch-close__body { grid-column: 7 / -1; }
  .tv-ch-close__next { grid-column: 7 / -1; padding-top: 0; }
}

@media (max-width: 1023.98px) {
  /* Ledger: the name across the top, what it proves and the names beneath it */
  .tv-ch-ledger thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tv-ch-ledger, .tv-ch-ledger tbody { display: block; }
  .tv-ch-ledger tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 2rem; row-gap: 0.85rem; padding: 1.75rem 0; border-bottom: 1px solid var(--hb-line); }
  .tv-ch-ledger tbody tr:first-child { border-top: 1px solid var(--ch-line-strong); }
  .tv-ch-ledger tbody th, .tv-ch-ledger tbody td { display: block; width: auto; padding: 0; border: 0; }
  .tv-ch-ledger__cap { grid-column: 1 / -1; padding-right: 2.5rem !important; }
  .tv-ch-ledger__proof { max-width: none; }
  .tv-ch-ledger__named { position: static; padding: 0 0 0 1.5rem !important; }
  .tv-ch-ledger__named::before { top: auto; bottom: auto; left: auto; display: none; }
  .tv-ch-ledger__named { border-left: 1px solid var(--ch-line-strong) !important; }
  .tv-ch-ledger__go { top: 1.85rem; right: 0; }
  .tv-ch-ledger tbody tr:hover > th, .tv-ch-ledger tbody tr:hover > td:last-child { box-shadow: none; }
  .tv-ch-ledger tbody tr:hover > * { background: none; }
}

@media (max-width: 991.98px) {
  /* Hero: the photograph on top at 4:3, the words on solid charcoal below */
  .tv-ch-hero__band { display: block; min-height: 0; }
  .tv-ch-hero__band::before { display: none; }
  .tv-ch-hero__media { position: relative; aspect-ratio: 4 / 3; }
  .tv-ch-hero__media img { object-position: 36% center; }   /* the lead cruise ship */
  .tv-ch-hero__inner { padding-top: 2rem; }
  .tv-ch-hero__lead > nav, .tv-ch-hero__lead > .hb-kicker, .tv-ch-hero__title, .tv-ch-hero__answer { grid-column: 1 / -1; }
  .tv-ch-hero__answer { grid-row: 4; padding-top: 1.75rem; max-width: 36rem; }
  .tv-ch-hero__answer::before { display: none; }
  .tv-ch-hero__band:has(> .tv-ch-hero__media[data-pending]) .tv-ch-hero__inner { padding-top: 3rem; }

  /* Chapter head stacks: eyebrow, title, copy, links */
  .tv-ch-chapter__name, .tv-ch-chapter__copy { grid-column: 1 / -1; }
  .tv-ch-chapter__copy p { max-width: 36rem; }

}

@media (max-width: 767.98px) {
  .tv-ch-hero__title { font-size: clamp(2.7rem, 1.6rem + 5vw, 3.4rem); }

  .tv-ch-ledger tbody tr { grid-template-columns: 1fr; row-gap: 0.7rem; padding: 1.5rem 0; }
  .tv-ch-ledger__named { border-left: 0 !important; padding: 0 !important; }
  .tv-ch-ledger__go { top: 1.6rem; }

  .tv-ch-opener__title { font-size: 0.6875rem; gap: 1rem; }
  .tv-ch-opener__title::after { flex-basis: 48px; }

  /* Galleries: the Nile lead full width then a 2 x 2; the Road and the Stay become filmstrips */
  .tv-ch-gallery--nile { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0.75rem; }
  .tv-ch-gallery__lead .tv-ch-tile__frame { aspect-ratio: 5 / 2; }   /* the whole vessel stays in frame */
  .tv-ch-gallery--road, .tv-ch-gallery--stay {
    display: flex; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-right: calc(-1 * clamp(1.25rem, 4vw, 2.5rem)); padding-right: clamp(1.25rem, 4vw, 2.5rem);
  }
  .tv-ch-gallery--road::-webkit-scrollbar, .tv-ch-gallery--stay::-webkit-scrollbar { display: none; }
  .tv-ch-gallery--road > li { flex: 0 0 80%; scroll-snap-align: start; }
  .tv-ch-gallery--stay > li { flex: 0 0 64%; scroll-snap-align: start; }

  /* Photograph + list: photograph full width at 4:3, the list below under a horizontal hairline */
  .tv-ch-split { display: block; }
  .tv-ch-split__media { aspect-ratio: 4 / 3; }
  .tv-ch-split__list { border-left: 0; border-top: 1px solid var(--ch-line); margin-top: 1.75rem; padding: 1.5rem 0 0; }
  .tv-ch-list li + li { margin-top: 1.1rem; }
  .tv-ch-list__cap { padding-left: 0; margin-top: 1.5rem; }
  .tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-split__list { margin-top: 0; }
  .tv-ch-split:has(> .tv-ch-split__media[data-pending]) .tv-ch-list { grid-template-columns: 1fr; row-gap: 1.1rem; }

  /* Close: stacked in the same order */
  .tv-ch-close__lead, .tv-ch-close__body, .tv-ch-close__next { grid-column: 1 / -1; padding-top: 0; }
  .tv-ch-close__actions { align-items: stretch; }
  .tv-ch-close .tv-btn { justify-content: center; }
  .tv-ch-close__direct { align-self: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .tv-ch-tile__frame img, .tv-ch-split__media img, .tv-ch-links .hb-arrow, .tv-ch-ledger__go,
  .tv-ch-ledger__cap a, .tv-ch-close__next a::after { transition: none !important; transform: none !important; }
}
