/* =====================================================================
   TRIWAYS â€” PARTNER INSIDE PAGES
   Loaded after triways-hub.css, triways-article.css and triways-visual.css.
   Linked per page (not from head.html).

   Travel Advisors page   (/partner/egypt-travel-advisors/)   Prefix: tv-ta-
   Built from docs/design/travel-advisors-mockup.png. Egypt comes from the
   photography alone â€” no ornament.
   Rhythm: hero (photo) â†’ ivory â†’ panoramic photo into ink â†’ ivory + paper
           â†’ ink mosaic â†’ light FAQ â†’ terrace photo â†’ footer.

   Components, named for reuse on the other Partner inside pages:
     .tv-ta-hero      full-bleed hero, title left, answer on an ink block right
     .tv-ta-ledger    one sentence in two halves, divided by a brass hairline
     .tv-ta-quad      four items, 2 Ã— 2, hairlines only
     .tv-ta-brief     panoramic photograph dissolving into an ink section
     .tv-ta-timeline  ordered steps on one continuous line with nodes
     .tv-ta-sheet     the proposal as a paper sheet (+ .tv-ta-sheets, the stack)
     .tv-ta-mosaic    photographic link tiles: one wide + three, then five
     .tv-ta-close     photograph under ink, copy left, form on an ink panel
   ===================================================================== */

.tv-ta {
  --ta-scrim: var(--tv-scrim);                 /* charcoal, rgb triplet */
  --ta-ink: 21, 21, 21;                        /* --hb-ink, rgb triplet */
  --ta-gap: clamp(1rem, 2vw, 2rem);
  --ta-hair: rgba(166, 138, 91, 0.55);         /* brass hairline on ivory */
  --ta-hair-dark: rgba(200, 183, 156, 0.7);    /* brass hairline on ink */
}

/* ---------------------------------------------------------------------
   1. HERO
   ------------------------------------------------------------------- */
.tv-ta-hero {
  position: relative; isolation: isolate;
  min-height: clamp(640px, 88vh, 900px);
  display: flex; align-items: flex-end;
  background: var(--tw-obsidian); color: var(--hb-champagne);
}
.tv-ta-hero__media { position: absolute; inset: 0; z-index: 0; }
.tv-ta-hero__media picture, .tv-ta-brief__media picture, .tv-ta-close__media picture { display: contents; }
.tv-ta-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; }
/* Charcoal from the left for the title, a top scrim behind the header, a low floor */
.tv-ta-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.88) 0%, rgba(var(--ta-scrim), 0.82) 24%, rgba(var(--ta-scrim), 0.64) 46%, rgba(var(--ta-scrim), 0) 66%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.5) 0%, rgba(var(--ta-scrim), 0) 32%),
    linear-gradient(180deg, rgba(var(--ta-scrim), 0.5) 0%, rgba(var(--ta-scrim), 0) 20%);
}
.tv-ta-hero__inner {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); align-items: end;
  padding-top: 7rem; padding-bottom: clamp(2rem, 4.5vh, 3.25rem);
}
.tv-ta-hero__lead { grid-column: 1 / span 7; padding-bottom: clamp(2rem, 9vh, 6rem); }
.tv-ta-hero .hub-crumbs { margin-bottom: clamp(1.5rem, 4vh, 2.75rem); }
.tv-ta-hero .hub-crumbs li { color: rgba(244, 240, 232, 0.78); }
.tv-ta-hero .hub-crumbs a { color: rgba(244, 240, 232, 0.9); }
.tv-ta-hero .hub-crumbs [aria-current="page"] { color: var(--hb-white); }
.tv-ta-hero .hb-eyebrow { color: var(--hb-champagne); }
.tv-ta-hero .hb-kicker { margin-bottom: 1.4rem; }
.tv-ta-hero .hb-kicker::after { background: var(--hb-champagne); opacity: 0.6; }
.tv-ta-hero__title {
  font-family: var(--hb-serif); font-weight: 500; color: #fff;
  font-size: clamp(2.9rem, 1.9rem + 2.9vw, 4.75rem); line-height: 1.04; letter-spacing: 0.002em;
  max-width: 7.2em; margin: 0;   /* Egypt DMC / Support for / Travel Advisors */
}
/* The answer: a solid ink block, a brass hairline down its left edge */
.tv-ta-hero__answer {
  grid-column: 8 / -1; justify-self: end; width: 100%; max-width: 31rem;
  background: rgba(var(--ta-ink), 0.9); border-left: 1px solid var(--ta-hair-dark);
  padding: clamp(1.75rem, 2.6vw, 2.75rem) clamp(1.5rem, 2.6vw, 2.75rem);
}
.tv-ta-hero .hub-hero__answer { border-top: 0; padding-top: 0; }
.tv-ta-hero .hub-hero__answer p { font-size: clamp(0.98rem, 0.92rem + 0.25vw, 1.08rem); line-height: 1.7; color: rgba(244, 240, 232, 0.9); max-width: none; }
.tv-ta-hero .art-hero__label { font-size: 0.68rem !important; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.6 !important; color: var(--hb-champagne) !important; margin: 0 0 1rem; }
.tv-ta-hero .art-named { margin-top: 1.6rem; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.9; }
.tv-ta-hero a:focus-visible { outline-color: var(--hb-champagne); }

/* ---------------------------------------------------------------------
   2. THE RELATIONSHIP â€” heading + portrait left; lead, ledger, 2 Ã— 2 right
   ------------------------------------------------------------------- */
.tv-ta-rel__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 4vw, 3.5rem) clamp(2rem, 4.5vw, 4.5rem); align-items: start; }
.tv-ta-rel__head .hb-eyebrow { color: var(--tv-brass-text); }
.tv-ta-rel__head .hb-heading { font-size: clamp(2rem, 1.5rem + 2vw, 3.1rem); line-height: 1.06; max-width: 7.4em; margin-bottom: clamp(1.5rem, 2.6vw, 2.25rem); }
.tv-ta-rel__media { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 2px; background: var(--tv-ivory-deep); }
.tv-ta-rel__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tv-ta-rel__body { padding-top: clamp(0rem, 2.4vw, 2.6rem); }   /* the lead sits level with the H2, below the eyebrow */
.tv-ta-rel__lead {
  font-family: var(--hb-serif); font-weight: 500; color: var(--hb-ink);
  font-size: clamp(2.2rem, 1.5rem + 2.3vw, 3.5rem); line-height: 1.04; letter-spacing: 0.002em; margin: 0 0 clamp(1rem, 1.8vw, 1.6rem);
}
/* The ledger line: one sentence, two halves, a hairline between */
.tv-ta-ledger {
  display: flex; flex-wrap: wrap; align-items: center;
  font-family: var(--hb-serif); font-weight: 400; color: var(--hb-ink-soft);
  font-size: clamp(1.45rem, 1.1rem + 1.2vw, 2.15rem); line-height: 1.25; margin: 0 0 clamp(2.25rem, 4vw, 3.5rem);
}
.tv-ta-ledger span + span { margin-left: 0.85em; padding: 0.3em 0 0.3em 0.95em; border-left: 1px solid var(--hb-gold); }

.tv-ta-quad { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--hb-line); }
.tv-ta-quad__item { padding: clamp(1.75rem, 3vw, 2.75rem) clamp(1.5rem, 3vw, 2.75rem) clamp(1.75rem, 3vw, 2.75rem) 0; }
.tv-ta-quad__item:nth-child(even) { padding-left: clamp(1.5rem, 3vw, 2.75rem); padding-right: 0; border-left: 1px solid var(--hb-line); }
.tv-ta-quad__item:nth-child(-n+2) { border-bottom: 1px solid var(--hb-line); }
.tv-ta-quad__item h3 { font-family: var(--hb-serif); font-weight: 500; color: var(--hb-ink); font-size: var(--hb-h3); line-height: 1.2; margin: 0 0 0.7rem; }
.tv-ta-quad__item p { font-size: 0.98rem; line-height: 1.75; color: var(--hb-text-dim); max-width: 44ch; }
.tv-ta-quad__item a { color: var(--hb-ink); border-bottom: 1px solid var(--hb-gold); }
.tv-ta-quad__item a:hover, .tv-ta-quad__item a:focus-visible { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   3. THE BRIEF â€” panoramic photograph into ink; five steps on one line
   ------------------------------------------------------------------- */
.tv-ta-brief { position: relative; isolation: isolate; overflow: hidden; padding-top: 0; }
.tv-ta-brief__media { position: absolute; top: 0; left: 0; right: 0; height: clamp(420px, 43vw, 660px); z-index: 0; }
.tv-ta-brief__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 42%; }
.tv-ta-brief__media::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0.9) 20%, rgba(var(--ta-ink), 0.58) 44%, rgba(var(--ta-ink), 0) 74%),
    linear-gradient(90deg, rgba(var(--ta-ink), 0.72) 0%, rgba(var(--ta-ink), 0.4) 36%, rgba(var(--ta-ink), 0) 62%);
}
.tv-ta-brief__inner { position: relative; z-index: 2; padding-top: clamp(12rem, 20vw, 19rem); }
.tv-ta-brief .hb-intro { max-width: 37rem; margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.tv-ta-brief .hb-copy { color: rgba(244, 240, 232, 0.92); }

.tv-ta-timeline { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: clamp(1.25rem, 2.6vw, 2.75rem); }
.tv-ta-timeline::before {   /* the line */
  content: ""; position: absolute; left: 0; right: 0; top: 6px; height: 1px;
  background: linear-gradient(90deg, var(--ta-hair-dark) 0%, var(--ta-hair-dark) 84%, rgba(200, 183, 156, 0.15) 100%);
}
.tv-ta-timeline__step { position: relative; padding-top: 2.9rem; }
.tv-ta-timeline__step::before {   /* the node: filled by default */
  content: ""; position: absolute; left: 0; top: 0; width: 13px; height: 13px; box-sizing: border-box;
  border: 1px solid var(--hb-champagne); border-radius: 50%; background: var(--hb-champagne);
}
.tv-ta-timeline__step--open::before { background: var(--hb-ink); }
.tv-ta-timeline__step--half::before { background: linear-gradient(90deg, var(--hb-ink) 50%, var(--hb-champagne) 50%); }
.tv-ta-timeline__ord { display: block; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-champagne); margin-bottom: 0.7rem; }
.tv-ta-timeline__name { font-family: var(--hb-serif); font-weight: 500; color: var(--hb-white); font-size: var(--hb-h3); line-height: 1.15; margin: 0 0 0.75rem; }
.tv-ta-timeline__step p { font-size: 0.95rem; line-height: 1.7; color: rgba(244, 240, 232, 0.76); max-width: 30ch; }

/* ---------------------------------------------------------------------
   4. CLIENT-READY MATERIALS â€” text left (over the desk photograph, washed
   into ivory), the proposal as paper right
   ------------------------------------------------------------------- */
.tv-ta-ready { position: relative; isolation: isolate; overflow: hidden; }
.tv-ta-ready__desk { position: absolute; top: 0; bottom: 0; left: 0; width: 54%; z-index: 0; }
.tv-ta-ready__desk img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tv-ta-ready__desk::after {
  content: ""; position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(244, 240, 232, 0.86) 0%, rgba(244, 240, 232, 0.8) 62%, var(--hb-ivory) 100%),
    linear-gradient(180deg, rgba(244, 240, 232, 0.5) 0%, rgba(244, 240, 232, 0.3) 62%, rgba(244, 240, 232, 0) 100%);
}
.tv-ta-ready__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: center; }
.tv-ta-ready__text .hb-eyebrow { color: var(--tv-brass-text); }
.tv-ta-ready__text .hb-heading { font-size: clamp(2.5rem, 1.7rem + 3vw, 4.25rem); line-height: 1.02; max-width: 6.6em; margin-bottom: 0.85rem; }
.tv-ta-ready__text p:not(.art-prose__lead) { font-size: 1rem; color: var(--hb-text); max-width: 31rem; }

.tv-ta-sheets { position: relative; padding: 0 16px 16px 0; }
.tv-ta-sheets::before {   /* the second sheet: hairline only, no shadow */
  content: ""; position: absolute; top: 16px; right: 0; bottom: 0; left: 16px;
  background: #FDFCF9; border: 1px solid var(--hb-line);
}
.tv-ta-sheet { position: relative; margin: 0; background: #fff; border: 1px solid var(--hb-line); padding: clamp(1.75rem, 3.4vw, 3.25rem); }
.tv-ta-sheet__head { padding-bottom: 1.15rem; border-bottom: 1px solid var(--hb-gold); }
.tv-ta-sheet__kicker { display: block; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--tv-brass-text); margin-bottom: 0.7rem; }
.tv-ta-sheet__title { display: block; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.5rem); line-height: 1.12; color: var(--hb-ink); }
.tv-ta-sheet__days { margin: 0; padding: 0; list-style: none; }
.tv-ta-sheet__days li {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1rem, 2.2vw, 1.9rem); align-items: center;
  padding: clamp(1.25rem, 2vw, 1.75rem) 0; border-bottom: 1px solid var(--hb-line);
}
.tv-ta-sheet__photo { aspect-ratio: 4 / 3; overflow: hidden; background: var(--tv-ivory-deep); }
.tv-ta-sheet__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tv-ta-sheet__day { display: block; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--tv-brass-text); margin-bottom: 0.45rem; }
.tv-ta-sheet__place { display: block; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.6rem); line-height: 1.2; color: var(--hb-ink); margin-bottom: 0.45rem; }
.tv-ta-sheet__days p { margin: 0; font-size: 0.88rem; line-height: 1.65; color: var(--hb-text-dim); }
.tv-ta-sheet__stay { display: block; margin-top: 0.6rem; font-size: 0.82rem; font-style: italic; color: var(--hb-ink); }
.tv-ta-sheet__more { margin: 0; padding: 1.15rem 0; border-bottom: 1px solid var(--hb-line); font-family: var(--hb-serif); font-style: italic; font-size: 1.1rem; line-height: 1.4; color: var(--hb-text-dim); }
.tv-ta-sheet figcaption { margin-top: 1.25rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-text-dim); }

/* ---------------------------------------------------------------------
   5. THE RANGE â€” a mosaic of nine link tiles: one wide + three portrait,
   then five. The grid has 20 columns (8 + 4 + 4 + 4, then 5 Ã— 4).
   ------------------------------------------------------------------- */
.tv-ta-range .hb-intro { max-width: 34rem; margin-bottom: clamp(2rem, 3.5vw, 3rem); }
.tv-ta-range__bleed { max-width: 1680px; margin: 0 auto; padding: 0 clamp(1rem, 1.7vw, 1.5rem); }
.tv-ta-mosaic {
  display: grid; grid-template-columns: repeat(20, minmax(0, 1fr));
  grid-template-rows: clamp(300px, 28vw, 430px) clamp(200px, 17.5vw, 275px); gap: 14px;
}
.tv-ta-mosaic__tile { position: relative; overflow: hidden; grid-column: span 4; display: grid; background: var(--hb-ink-soft); border-radius: 2px; color: #fff; }
.tv-ta-mosaic__tile--wide { grid-column: span 8; }
.tv-ta-mosaic__tile > * { grid-area: 1 / 1; min-width: 0; min-height: 0; }
.tv-ta-mosaic__media, .tv-ta-mosaic__media img { display: block; width: 100%; height: 100%; }
.tv-ta-mosaic__media img { object-fit: cover; transition: transform 0.4s var(--hb-ease); }
/* Travel Advisors photographs: where each crop sits (tile order: private, family, nile, vip, honeymoon, group, lifestyle, schools, experiences) */
.tv-ta-mosaic__tile:nth-child(1) img { object-position: 30% 50%; }
.tv-ta-mosaic__tile:nth-child(3) img { object-position: 25% 50%; }
.tv-ta-mosaic__tile:nth-child(4) img { object-position: 60% 50%; }
.tv-ta-mosaic__tile:nth-child(5) img { object-position: 30% 50%; }
.tv-ta-mosaic__tile:nth-child(7) img { object-position: 22% 50%; }
.tv-ta-mosaic__tile:nth-child(8) img { object-position: 62% 50%; }
.tv-ta-mosaic__tile::after {   /* a light floor for the title */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(var(--ta-scrim), 0) 40%, rgba(var(--ta-scrim), 0.62) 66%, rgba(var(--ta-scrim), 0.9) 100%);
}
.tv-ta-mosaic__name {   /* a grid item, not positioned: the link ::after below stretches over the whole tile */
  align-self: end; z-index: 1; margin: 0; padding: 1.1rem 1.2rem 1.15rem; text-wrap: balance;
  font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.3rem, 1rem + 0.8vw, 1.9rem); line-height: 1.12; color: #fff;
}
.tv-ta-mosaic__tile--wide .tv-ta-mosaic__name { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.4rem); padding: 1.4rem 1.6rem; }
.tv-ta-mosaic__name a {
  color: inherit;
  background: linear-gradient(var(--hb-champagne), var(--hb-champagne)) 0 100% / 0 1px no-repeat;
  transition: background-size 0.4s var(--hb-ease);
}
.tv-ta-mosaic__name a::after { content: ""; position: absolute; inset: 0; z-index: 2; }   /* the whole tile is the link */
.tv-ta-mosaic__name::after {
  content: "\2192" / ""; display: inline-block; margin-left: 0.5rem;
  font-family: var(--hb-sans); font-size: 0.55em; font-weight: 400; color: var(--hb-champagne); transition: transform 0.4s var(--hb-ease);
}
.tv-ta-mosaic__tile:focus-within { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }
.tv-ta-mosaic__tile a:focus-visible { outline: none; }
.tv-ta-mosaic__tile:focus-within .tv-ta-mosaic__name a { background-size: 100% 1px; }
@media (hover: hover) {
  .tv-ta-mosaic__tile:hover .tv-ta-mosaic__media img { transform: scale(1.04); }
  .tv-ta-mosaic__tile:hover .tv-ta-mosaic__name::after { transform: translateX(4px); }
  .tv-ta-mosaic__tile:hover .tv-ta-mosaic__name a { background-size: 100% 1px; }
}
.tv-ta-range__note { max-width: none; margin-top: clamp(2rem, 3.5vw, 3rem); padding-top: 1.25rem; border-top: 1px solid var(--hb-line-on-dark); color: rgba(244, 240, 232, 0.74) !important; }

/* ---------------------------------------------------------------------
   6. FAQ â€” shared .tv-faq; brass hairlines here
   ------------------------------------------------------------------- */
.tv-ta-faq .hb-faq { border-top-color: var(--ta-hair); }
.tv-ta-faq .hb-faq__item { border-bottom-color: var(--ta-hair); }
.tv-ta-faq .hb-faq__item > summary { font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem); }
.tv-ta-faq .hb-faq__item > summary::after { font-size: 1.7rem; }

/* ---------------------------------------------------------------------
   7. CLOSE â€” terrace photograph under ink; copy left, form on an ink panel
   ------------------------------------------------------------------- */
.tv-ta-close { position: relative; isolation: isolate; background: var(--tw-obsidian); padding: clamp(4rem, 7vw, 6.5rem) 0; }
.tv-ta-close__media { position: absolute; inset: 0; z-index: 0; }
.tv-ta-close__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 36% 70%; }
.tv-ta-close::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.84) 0%, rgba(var(--ta-scrim), 0.76) 40%, rgba(var(--ta-scrim), 0.6) 100%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.4), rgba(var(--ta-scrim), 0) 42%);
}
.tv-ta-close__grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); row-gap: 3rem; align-items: center; }
.tv-ta-close__copy { grid-column: 1 / span 5; }
.tv-ta-close__copy .hb-heading { color: var(--hb-white); max-width: 8.2em; }
.tv-ta-close__copy .hb-copy { color: rgba(244, 240, 232, 0.9); }
.tv-ta-close .art-enquiry__aside { color: rgba(244, 240, 232, 0.86); }
.tv-ta-close .art-enquiry__direct { align-items: flex-start; margin-top: 2rem; }
.tv-ta-close .hub-close__direct {   /* an outlined rectangular button */
  gap: 0.7rem; padding: 0.95rem 1.6rem; border: 1px solid var(--hb-champagne); border-radius: 0;
  font-size: 0.72rem; letter-spacing: 0.2em; color: var(--hb-champagne);
}
.tv-ta-close .hub-close__direct .bi { font-size: 1.05rem; }
.tv-ta-close .hub-close__direct:hover, .tv-ta-close .hub-close__direct:focus-visible { background: var(--hb-champagne); color: var(--hb-ink); }
.tv-ta-close__panel {
  grid-column: 7 / -1; background: rgba(var(--ta-ink), 0.9); border: 1px solid var(--hb-line-on-dark);
  padding: clamp(1.75rem, 3vw, 2.75rem);
}
.tv-ta-close__panel .hb-cta { border-radius: 0; }

/* ---------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-ta-hero__lead { grid-column: 1 / span 6; }
  .tv-ta-ledger { font-size: 1.5rem; }   /* one line in the narrower column */
  .tv-ta-hero__answer { grid-column: 7 / -1; }

  /* Mosaic: three columns of equal tiles */
  .tv-ta-mosaic { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: none; }
  .tv-ta-mosaic__tile, .tv-ta-mosaic__tile--wide { grid-column: auto; aspect-ratio: 1 / 1; }
  .tv-ta-mosaic__tile--wide .tv-ta-mosaic__name { font-size: clamp(1.3rem, 1rem + 0.8vw, 1.9rem); padding: 1.1rem 1.2rem 1.15rem; }

  .tv-ta-close__copy { grid-column: 1 / span 5; }
  .tv-ta-close__panel { grid-column: 6 / -1; }
}

@media (max-width: 1023.98px) {
  /* Hero: photograph on top, then title and the answer as plain text on solid ink */
  .tv-ta-hero { display: block; min-height: 0; background: var(--hb-ink); }
  .tv-ta-hero::before { display: none; }
  .tv-ta-hero__media { position: relative; aspect-ratio: 3 / 2; }
  .tv-ta-hero__media::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background:
      linear-gradient(180deg, rgba(var(--ta-scrim), 0.6) 0%, rgba(var(--ta-scrim), 0) 26%),
      linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0) 32%);
  }
  .tv-ta-hero__inner { display: block; padding-top: 0.5rem; padding-bottom: clamp(3rem, 8vw, 4.5rem); }
  .tv-ta-hero__lead { padding-bottom: clamp(2rem, 5vw, 3rem); }
  .tv-ta-hero__answer { justify-self: start; max-width: 40rem; background: none; border-left: 0; padding: 1.75rem 0 0; border-top: 1px solid var(--hb-line-on-dark); }
  /* The four facts as a 2 Ã— 2 list on hairlines */
  .tv-ta-hero .art-named { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2rem; border-top: 1px solid var(--hb-line-on-dark); }
  .tv-ta-hero .art-named li { padding: 1rem 1rem 1rem 0; border-bottom: 1px solid var(--hb-line-on-dark); line-height: 1.6; }
  .tv-ta-hero .art-named li:nth-child(even) { padding-left: 1rem; padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-ta-hero .art-named li::after { content: none; }

  .tv-ta-rel__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-ta-rel__head .hb-heading { max-width: 16ch; }
  .tv-ta-rel__media { aspect-ratio: 4 / 3; }
  .tv-ta-rel__media img { object-position: 50% 30%; }
  .tv-ta-rel__body { padding-top: 0; }

  /* Brief: photograph on top, then a vertical line with the nodes on the left */
  .tv-ta-brief__media { position: relative; height: auto; aspect-ratio: 16 / 9; }
  .tv-ta-brief__media::after { background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0.55) 34%, rgba(var(--ta-ink), 0) 70%); }
  .tv-ta-brief__inner { padding-top: 0; margin-top: -3.5rem; }
  .tv-ta-timeline { grid-template-columns: minmax(0, 1fr); }
  .tv-ta-timeline::before { left: 6px; right: auto; top: 6px; bottom: 0; width: 1px; height: auto; background: linear-gradient(180deg, var(--ta-hair-dark) 0%, var(--ta-hair-dark) 88%, rgba(200, 183, 156, 0.15) 100%); }
  .tv-ta-timeline__step { padding: 0 0 2.1rem 2.4rem; }
  .tv-ta-timeline__step:last-child { padding-bottom: 0; }
  .tv-ta-timeline__step::before { top: 0.1rem; }
  .tv-ta-timeline__step p { max-width: 52ch; }

  .tv-ta-ready__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ta-ready__desk { width: 100%; bottom: auto; height: 34rem; }
  .tv-ta-ready__desk::after { background: linear-gradient(180deg, rgba(244, 240, 232, 0.86) 0%, rgba(244, 240, 232, 0.84) 70%, var(--hb-ivory) 100%); }
  .tv-ta-ready__text .hb-heading { max-width: none; }
  .tv-ta-sheets { max-width: 44rem; }

  /* Close: photograph on top under a stronger scrim, then copy and form on solid ink */
  .tv-ta-close { background: var(--hb-ink); padding-top: 0; }
  .tv-ta-close::before { display: none; }
  .tv-ta-close__media { position: relative; aspect-ratio: 4 / 3; max-height: 28rem; width: 100%; }
  .tv-ta-close__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0.5) 45%, rgba(var(--ta-ink), 0.3) 100%); }
  .tv-ta-close__grid { margin-top: -2.5rem; }
  .tv-ta-close__copy, .tv-ta-close__panel { grid-column: 1 / -1; }
  .tv-ta-close__panel { background: none; border: 0; border-top: 1px solid var(--hb-line-on-dark); padding: 2.5rem 0 0; }
}

@media (max-width: 767.98px) {
  .tv-ta-hero__media { aspect-ratio: 4 / 5; }
  .tv-ta-hero__media img { object-position: center; }
  .tv-ta-hero__inner { margin-top: -3.5rem; position: relative; }
  .tv-ta-hero__title { font-size: clamp(2.6rem, 1.6rem + 5vw, 3.2rem); }

  /* Ledger: two lines, a short hairline between */
  .tv-ta-ledger { display: block; }
  .tv-ta-ledger span { display: block; }
  .tv-ta-ledger span + span { position: relative; margin: 0.75rem 0 0; padding: 0.75rem 0 0; border-left: 0; }
  .tv-ta-ledger span + span::before { content: ""; position: absolute; top: 0; left: 0; width: 46px; height: 1px; background: var(--hb-gold); }
  .tv-ta-quad { grid-template-columns: minmax(0, 1fr); }
  .tv-ta-quad__item, .tv-ta-quad__item:nth-child(even) { padding: 1.6rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line); }
  .tv-ta-quad__item:last-child { border-bottom: 0; padding-bottom: 0; }

  .tv-ta-brief__media { aspect-ratio: 4 / 3; }

  /* Sheet: full width, the photograph above each day, no second sheet */
  .tv-ta-sheets { padding: 0; }
  .tv-ta-sheets::before { display: none; }
  .tv-ta-sheet__days li { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .tv-ta-sheet__photo { aspect-ratio: 16 / 10; }

  /* Mosaic: a horizontal filmstrip with a peek of the next tile */
  .tv-ta-range__bleed { padding: 0 0 0 clamp(1.25rem, 4vw, 2.5rem); }
  .tv-ta-mosaic {
    display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    padding: 4px clamp(1.25rem, 4vw, 2.5rem) 0.5rem 0; scrollbar-width: none;
  }
  .tv-ta-mosaic::-webkit-scrollbar { display: none; }
  .tv-ta-mosaic__tile, .tv-ta-mosaic__tile--wide { flex: 0 0 72%; aspect-ratio: 4 / 5; scroll-snap-align: start; }
  .tv-ta-mosaic__tile:focus-within { outline-offset: -2px; }

  body.tv-ta main { background: var(--hb-ink); }   /* the room left for the fixed contact bar matches the close, not ivory */
  .tv-ta-close .hub-close__direct { width: 100%; justify-content: center; }
  .tv-ta-close__panel .hb-cta { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .tv-ta-mosaic__media img, .tv-ta-mosaic__name::after, .tv-ta-mosaic__name a { transition: none !important; transform: none !important; }
}

/* =====================================================================
   Tour operators   (/partner/egypt-tour-operators/)   Prefix: tv-to-
   body: tv-over-hero tv-ta tv-to. Built from docs/design/tour-operators-mockup-*.png.
   Reuses .tv-ta-hero, .tv-ta-brief (the photograph band) and .tv-ta-close.
   Egypt comes from the photography alone: no ornament.
   Rhythm: hero (photo) -> ivory, photograph off the left edge -> ink under a
           panoramic band -> ivory, sticky diagram -> ink, real photograph ->
           tinted ivory FAQ -> photograph under ink -> footer.

   Components:
     .tv-to-hero      hero variant: six facts as a 3 x 2 ledger under the title
     .tv-to-what      photograph off the left edge, heading, register on hairlines
     .tv-to-cap       heading left / text right under the band, then .tv-to-ledger
     .tv-to-ledger    six cells across the page, hairlines between
     .tv-to-terms     sticky aside with .tv-to-season, register right
     .tv-to-season    the twelve months as a strip, October first
     .tv-to-release   three points on a line
     .tv-to-rel       large photograph left, text right, .tv-to-register below
     .tv-to-faq       shared .tv-faq on tinted ivory, with a closing line
     .tv-to-close     .tv-ta-close with the links under a hairline
   ===================================================================== */

/* ---------------------------------------------------------------------
   TO 1. HERO
   ------------------------------------------------------------------- */
.tv-to-hero { min-height: clamp(640px, 85vh, 900px); }
.tv-to-hero .tv-ta-hero__media img { object-position: 60% 50%; }
/* Charcoal from the left for the title and ledger, a floor under the answer, a top scrim behind the header */
.tv-to-hero::before {
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.9) 0%, rgba(var(--ta-scrim), 0.86) 26%, rgba(var(--ta-scrim), 0.62) 46%, rgba(var(--ta-scrim), 0) 66%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.82) 0%, rgba(var(--ta-scrim), 0.6) 30%, rgba(var(--ta-scrim), 0.22) 56%, rgba(var(--ta-scrim), 0) 76%),
    linear-gradient(180deg, rgba(var(--ta-scrim), 0.55) 0%, rgba(var(--ta-scrim), 0) 20%);
}
.tv-to-hero .tv-ta-hero__inner { padding-bottom: clamp(2.5rem, 6vh, 4.25rem); }
.tv-to-hero .tv-ta-hero__lead { grid-column: 1 / span 7; padding-bottom: 0; }
.tv-to-hero .tv-ta-hero__title { font-size: clamp(2.9rem, 1.9rem + 2.8vw, 4.6rem); }
.tv-to-hero .art-standing { max-width: 40rem; gap: 0; margin: clamp(1.75rem, 4vh, 2.75rem) 0 0; border-top: 1px solid var(--ta-hair-dark); }
.tv-to-hero .art-standing > div { display: block; border-top: 0; }
.tv-to-hero .art-standing dt { margin: 0 0 0.45rem; font-size: 0.64rem; letter-spacing: 0.22em; }
.tv-to-hero .art-standing dd { font-size: clamp(1.25rem, 1.05rem + 0.55vw, 1.6rem); line-height: 1.15; }
@media (min-width: 768px) {
  .tv-to-hero .art-standing { grid-template-columns: minmax(0, 0.85fr) minmax(0, 0.9fr) minmax(0, 1.25fr); }
  .tv-to-hero .art-standing > div { padding: 1.05rem 1.25rem 1.2rem; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-to-hero .art-standing > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .tv-to-hero .art-standing > div:nth-child(-n+3) { border-bottom: 1px solid var(--hb-line-on-dark); }
}
/* The answer: ink at 80% (no blur). At 72% the small label drops under 4.5:1 over the white coach at 1024px behind a brass hairline; the tag line closes it */
.tv-to-hero .tv-ta-hero__answer { grid-column: 8 / -1; max-width: 30rem; background: rgba(var(--ta-ink), 0.8); padding: clamp(1.5rem, 2.2vw, 2.25rem) clamp(1.5rem, 2.4vw, 2.5rem); }
.tv-to-hero .art-named { margin-top: 1.5rem; padding-top: 1.15rem; border-top: 1px solid var(--hb-line-on-dark); }

/* ---------------------------------------------------------------------
   TO 2. WHAT OPERATORS GET: the photograph runs off the left edge and
   starts at the top of the section; heading beside it, register right
   ------------------------------------------------------------------- */
.tv-to-what { --to-bleed: calc(max(0px, (100vw - 1280px) / 2) + clamp(1.25rem, 4vw, 2.5rem)); padding-top: 0; overflow: hidden; }
.tv-to-what__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); }
.tv-to-what__media { grid-column: 1 / span 4; display: flex; flex-direction: column; margin: 0 0 0 calc(-1 * var(--to-bleed)); }
.tv-to-what__frame { position: relative; flex: 1 1 auto; min-height: clamp(30rem, 46vw, 44rem); overflow: hidden; background: var(--tv-ivory-deep); }
.tv-to-what__frame img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }   /* the guide stays in the tall crop */
.tv-to-what__media figcaption { padding: 0.95rem 0 0 var(--to-bleed); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.6; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-to-what { --to-top: clamp(3.5rem, 6.5vw, 6rem); }
.tv-to-what__head { grid-column: 5 / span 3; padding: var(--to-top) 0 0 clamp(0.25rem, 1.2vw, 1.25rem); }
.tv-to-what__head .hb-eyebrow { color: var(--tv-brass-text); }
.tv-to-what__head .hb-heading { font-size: clamp(2.2rem, 1.5rem + 2.1vw, 3.4rem); line-height: 1.04; margin: 0; }
.tv-to-what__body { grid-column: 8 / -1; padding-top: calc(var(--to-top) + 2.55rem); }   /* the lead sits level with the H2, below the eyebrow */
.tv-to-what__body .art-prose__lead { max-width: 25ch !important; margin-bottom: clamp(2rem, 3.5vw, 3rem); }
.tv-to-what__body .art-entry { padding-top: clamp(1.6rem, 2.6vw, 2.25rem); border-top: 1px solid var(--ta-hair); }
.tv-to-what__body .art-entry + .art-entry { margin-top: clamp(1.6rem, 2.6vw, 2.25rem); padding-top: clamp(1.6rem, 2.6vw, 2.25rem); border-top-color: var(--ta-hair); }
.tv-to-what__body .art-entry p { font-size: 1rem; line-height: 1.75; }
.tv-to-what__body a:hover, .tv-to-what__body a:focus-visible { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   TO 3. SERIES & FIT CAPACITY: panoramic band into ink, then the ledger
   ------------------------------------------------------------------- */
.tv-to-cap .tv-ta-brief__media img { object-position: 50% 64%; }
@media (min-width: 1024px) {
  .tv-to-cap { --to-band: clamp(330px, 33vw, 560px); }
  .tv-to-cap .tv-ta-brief__media { height: var(--to-band); }
  .tv-to-cap .tv-ta-brief__media::after { background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0.82) 14%, rgba(var(--ta-ink), 0.38) 28%, rgba(var(--ta-ink), 0) 42%); }
  .tv-to-cap .tv-ta-brief__inner { padding-top: calc(var(--to-band) - 1.25rem); }
}
.tv-to-cap__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem clamp(2rem, 5vw, 5rem); align-items: start; }
.tv-to-cap__head .hb-heading { font-size: clamp(2.5rem, 1.7rem + 3vw, 4.25rem); line-height: 1.02; max-width: 6.4em; margin-bottom: clamp(1.25rem, 2vw, 1.75rem); }
.tv-to-cap__head .art-prose__lead { max-width: 24ch !important; margin-bottom: 0; }
.tv-to-cap__body { padding-top: 2.75rem; }   /* level with the H2 */
.tv-to-cap__body p { color: rgba(244, 240, 232, 0.82); }
.tv-to-cap__body strong { font-weight: 600; color: var(--hb-white); }

.tv-to .tv-to-ledger { gap: 0; margin: clamp(2.75rem, 5vw, 4.5rem) 0 0; border-top: 1px solid var(--ta-hair-dark); border-bottom: 1px solid var(--ta-hair-dark); }
.tv-to .tv-to-ledger > div { display: block; padding: 1.5rem 1.4rem 1.65rem; border-bottom: 0; }
.tv-to .tv-to-ledger dt { margin: 0 0 0.7rem; font-size: 0.64rem; letter-spacing: 0.22em; }
.tv-to .tv-to-ledger dd { font-size: clamp(1.4rem, 1.05rem + 1vw, 1.9rem); line-height: 1.12; }
@media (min-width: 1024px) {
  .tv-to .tv-to-ledger { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr) minmax(0, 0.9fr) minmax(0, 0.7fr); }
  .tv-to .tv-to-ledger > div { border-left: 1px solid var(--hb-line-on-dark); }
  .tv-to .tv-to-ledger > div:first-child { padding-left: 0; border-left: 0; }
}
.tv-to-cap__note { max-width: none; margin-top: 1.4rem; font-size: 0.95rem; color: rgba(244, 240, 232, 0.8) !important; }

/* ---------------------------------------------------------------------
   TO 4. CONTRACTING & ALLOTMENTS: the aside stays in view, the season
   drawn beneath it; five items on hairlines right
   ------------------------------------------------------------------- */
.tv-to-terms__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 4.5vw, 4.5rem); align-items: start; }
.tv-to-terms__aside .hb-eyebrow { color: var(--tv-brass-text); }
.tv-to-terms__aside .hb-heading { font-size: clamp(2.4rem, 1.7rem + 2.7vw, 3.9rem); line-height: 1.03; margin-bottom: clamp(1.25rem, 2vw, 1.75rem); }
.tv-to-terms__aside .art-prose__lead { max-width: 22ch !important; margin-bottom: clamp(2rem, 3.5vw, 3rem); }
.tv-to-terms__body { padding-left: clamp(2rem, 4.5vw, 4.5rem); border-left: 1px solid var(--ta-hair); }
.tv-to-terms__body .art-entry + .art-entry { margin-top: clamp(1.75rem, 3vw, 2.5rem); padding-top: clamp(1.75rem, 3vw, 2.5rem); }
.tv-to-terms__body .art-entry h3 { font-size: clamp(1.5rem, 1.25rem + 0.8vw, 1.9rem); margin-bottom: 0.7rem; }
.tv-to-terms__body .art-entry p { font-size: 1rem; line-height: 1.75; }
.tv-to-terms__body .art-note { max-width: 62ch; margin-top: clamp(1.75rem, 3vw, 2.5rem); padding-top: 1.25rem; border-top: 1px solid var(--hb-line); font-size: 0.92rem; color: var(--hb-text); }
@media (min-width: 1024px) { .tv-to-terms__aside { position: sticky; top: 7rem; } }

/* The season: twelve months, October first, so the peak reads as one block */
.tv-to-season { max-width: 30rem; margin: 0; font-family: var(--hb-sans); color: var(--hb-text); }
.tv-to-season__title { margin: 0 0 0.9rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-to-season__months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border: 1px solid var(--ta-hair); border-bottom: 0; }
.tv-to-season__months li { padding: 0.6rem 0 0.55rem; text-align: center; font-size: 0.56rem; font-weight: 600; letter-spacing: 0.08em; line-height: 1; text-transform: uppercase; }
.tv-to-season__bar { display: grid; grid-template-columns: 7fr 5fr; height: 1.5rem; border: 1px solid var(--ta-hair); border-top: 0; }
.tv-to-season__bar span:first-child { background: var(--hb-gold); }
.tv-to-season__bar span:last-child { background: rgba(166, 138, 91, 0.2); }
.tv-to-season__keys { display: grid; grid-template-columns: 7fr 5fr; }
.tv-to-season__keys p { margin: 0; padding: 0.75rem 0.4rem 0.8rem; text-align: center; font-size: 0.56rem; font-weight: 500; letter-spacing: 0.16em; line-height: 1.7; text-transform: uppercase; border: 1px solid var(--ta-hair); border-top: 0; }
.tv-to-season__keys p + p { border-left: 0; }
.tv-to-season__keys b { display: block; font-weight: 600; letter-spacing: 0.2em; color: var(--hb-ink); }
.tv-to-season__keys span { display: block; }
/* Dates within the peak, placed by month: ticks for the two fixed days, a bar for the feast that moves */
.tv-to-season__marks { position: relative; height: 2.6rem; margin: 1.5rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair); }
.tv-to-season__marks li { position: absolute; top: 0; padding-top: 0.85rem; font-size: 0.56rem; font-weight: 600; letter-spacing: 0.18em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.tv-to-season__marks li::before { content: ""; position: absolute; top: -7px; width: 1px; height: 13px; background: var(--hb-ink); }
.tv-to-season__mark--xmas { right: 76.7%; padding-right: 0.5rem; }            /* 25 December: 2.8 of 12 */
.tv-to-season__mark--xmas::before { right: 0; }
.tv-to-season__mark--ny { left: 25%; padding-left: 0.5rem; }                  /* 1 January: 3 of 12 */
.tv-to-season__mark--ny::before { left: 0; }
.tv-to-season__mark--easter { left: 41.667%; width: 16.667%; text-align: center; }   /* March to April */
.tv-to-season__marks .tv-to-season__mark--easter::before { top: -2px; left: 0; width: 100%; height: 3px; background: var(--hb-ink); }
.tv-to-season__sea { display: flex; align-items: center; gap: 0.9rem; margin: 0.6rem 0 0; font-size: 0.56rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.6; text-transform: uppercase; color: var(--tv-brass-text); white-space: nowrap; }
.tv-to-season__sea::before, .tv-to-season__sea::after { content: ""; flex: 1 1 0; height: 1px; background: var(--hb-gold); }

/* Release: three points on one line, the deadline filled */
.tv-to-release { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 34rem; margin-top: 1.9rem; padding-top: 1.6rem; font-family: var(--hb-sans); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.5; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-to-release::before { content: ""; position: absolute; top: 5px; left: 0; right: 0; height: 1px; background: var(--hb-gold); }
.tv-to-release span { position: relative; }
.tv-to-release span::before { content: ""; position: absolute; top: -1.6rem; left: 0; width: 11px; height: 11px; box-sizing: border-box; border: 1px solid var(--hb-gold); border-radius: 50%; background: var(--hb-ivory); }
.tv-to-release span:nth-child(2) { text-align: center; }
.tv-to-release span:nth-child(2)::before { left: calc(50% - 5.5px); background: var(--hb-gold); }
.tv-to-release span:nth-child(3) { text-align: right; }
.tv-to-release span:nth-child(3)::before { left: auto; right: 0; }

/* ---------------------------------------------------------------------
   TO 5. OPERATIONAL RELIABILITY: the real photograph large, text right,
   the companies as three columns of plain text
   ------------------------------------------------------------------- */
.tv-to-rel__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); align-items: start; }
.tv-to-rel__grid .tv-to-rel__media { grid-column: 1 / span 7; max-width: none; }
.tv-to-rel__media img { border-radius: 0; aspect-ratio: 16 / 9; object-fit: cover; object-position: 50% 0%; }   /* the vehicles, less of the asphalt; never wider than the 1200px source */
.tv-to-rel__media figcaption { border-top: 0; padding-top: 0; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; color: rgba(244, 240, 232, 0.74); }
.tv-to-rel__body { grid-column: 8 / -1; padding-left: clamp(0.5rem, 1.6vw, 1.75rem); }
.tv-to-rel__body .hb-heading { font-size: clamp(2.3rem, 1.6rem + 2.4vw, 3.6rem); line-height: 1.04; margin-bottom: clamp(1.1rem, 1.8vw, 1.5rem); }
.tv-to-rel__body .art-prose__lead { max-width: 20ch !important; }
.tv-to-rel__body p:not(.art-prose__lead) { font-size: 1rem; line-height: 1.75; color: rgba(244, 240, 232, 0.82); }
.tv-to-register { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(2rem, 3.5vw, 2.75rem); border-top: 1px solid var(--ta-hair-dark); }
.tv-to-register > .hb-eyebrow { margin-bottom: clamp(1.5rem, 2.5vw, 2.25rem); }
.tv-to-register .art-coverage { gap: 0; border-top: 0; }
.tv-to-register .art-coverage__region { padding: 0.2rem clamp(1.5rem, 3vw, 3rem) 0.4rem; border-bottom: 0; border-left: 1px solid var(--ta-hair-dark); }
.tv-to-register .art-coverage__region:first-child { padding-left: 0; border-left: 0; }
.tv-to-register .art-coverage__name { font-family: var(--hb-sans); margin-bottom: 0.8rem; font-size: 0.64rem; letter-spacing: 0.22em; }
.tv-to-register .art-coverage li li { padding: 0.35rem 0; font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.65rem); color: rgba(244, 240, 232, 0.92); }

/* ---------------------------------------------------------------------
   TO 6. FAQ: shared .tv-faq on tinted ivory, brass hairlines
   ------------------------------------------------------------------- */
.tv-to-faq { background: var(--tv-ivory-deep); }
.tv-to-faq .hb-faq { max-width: none; border-top-color: var(--ta-hair); }
.tv-to-faq .hb-faq__item { padding: 0.75rem 0; border-bottom-color: var(--ta-hair); }
.tv-to-faq .hb-faq__item > summary { min-height: 48px; font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem); }
.tv-to-faq .hb-faq__item > summary::after { font-size: 1.7rem; color: var(--tv-brass-text); }
.tv-to-faq .hb-faq__item > summary:focus-visible { outline: 2px solid var(--tv-brass-text); outline-offset: 4px; }
.tv-to-faq .hb-faq__item p { margin: 0.35rem 0 0.9rem; color: var(--hb-text); }
.tv-to-faq__more { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 2.25rem; }
.tv-to-faq__more p { margin: 0; font-family: var(--hb-serif); font-style: italic; font-size: 1.25rem; color: var(--hb-ink); }
.tv-to-faq__more .hb-cta { padding: 0.85rem 1.5rem; border-radius: 0; font-size: 0.7rem; letter-spacing: 0.2em; }

/* ---------------------------------------------------------------------
   TO 7. CLOSE: quay photograph under ink; links under a hairline, the form on an ink panel
   ------------------------------------------------------------------- */
.tv-to-close .tv-ta-close__media img { object-position: 50% 60%; }
.tv-to-close.tv-ta-close::before {
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.88) 0%, rgba(var(--ta-scrim), 0.8) 42%, rgba(var(--ta-scrim), 0.66) 100%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.5), rgba(var(--ta-scrim), 0) 46%);
}
.tv-to-close .tv-ta-close__grid { align-items: start; }
.tv-to-close .tv-ta-close__copy .hb-heading { font-size: clamp(2.4rem, 1.7rem + 2.5vw, 3.7rem); line-height: 1.03; }
.tv-to-close .tv-ta-close__copy .hb-copy { margin-bottom: 0; }
.tv-to-close__links { max-width: 30rem; margin-top: clamp(2rem, 3.5vw, 3rem); padding-top: 1.75rem; border-top: 1px solid var(--ta-hair-dark); }
.tv-to-close .art-enquiry__direct { margin-top: 1.4rem; }
.tv-to-close .hub-close__direct { gap: 0.75rem; padding: 0; border: 0; font-size: 0.74rem; letter-spacing: 0.2em; }   /* a text link here, not the outlined button */
.tv-to-close .hub-close__direct .bi { font-size: 1.25rem; }
.tv-to-close .hub-close__direct:hover, .tv-to-close .hub-close__direct:focus-visible { background: none; color: var(--hb-white); }
.tv-to-close .art-enquiry__aside { margin-top: 1.4rem; }
.tv-to-close .tv-ta-close__copy { grid-column: 1 / span 5; padding-right: clamp(0rem, 2vw, 2rem); }
.tv-to-close .tv-ta-close__panel { grid-column: 6 / -1; background: rgba(var(--ta-ink), 0.86); }
.tv-to-close .art-form__field { justify-content: flex-end; }   /* inputs stay level when a label wraps */
.tv-to-close .art-form input::placeholder, .tv-to-close .art-form textarea::placeholder { font-size: 0.9rem; }

/* ---------------------------------------------------------------------
   TO RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-to-hero .tv-ta-hero__lead { grid-column: 1 / span 7; }
  .tv-to-hero .tv-ta-hero__answer { grid-column: 8 / -1; }

  /* What: photograph in five columns, heading and register stacked beside it */
  .tv-to-what__grid { grid-template-rows: auto 1fr; }
  .tv-to-what__media { grid-column: 1 / span 5; grid-row: 1 / span 2; }
  .tv-to-what__head { grid-column: 6 / -1; grid-row: 1; padding-left: clamp(0.5rem, 2vw, 1.5rem); }
  .tv-to-what__head .hb-heading { margin-bottom: 1.25rem; }
  .tv-to-what__body { grid-column: 6 / -1; grid-row: 2; padding-top: 0; padding-left: clamp(0.5rem, 2vw, 1.5rem); }
  .tv-to-what__body .art-prose__lead { max-width: 26ch !important; }
}

@media (max-width: 1023.98px) {
  /* Hero: photograph on top, then title, ledger and the answer as plain text on solid ink */
  .tv-to-hero { min-height: 0; }
  .tv-to-hero .tv-ta-hero__lead { padding-bottom: clamp(2rem, 5vw, 3rem); }
  .tv-to-hero .tv-ta-hero__answer { max-width: 40rem; background: none; padding: 1.75rem 0 0; }
  .tv-to-hero .art-named { display: flex; margin-top: 1.5rem; padding-top: 1.15rem; border-top: 1px solid var(--hb-line-on-dark); }
  .tv-to-hero .art-named li, .tv-to-hero .art-named li:nth-child(even) { padding: 0; border: 0; line-height: 1.9; }
  .tv-to-hero .art-named li::after { content: "\00B7"; }
  .tv-to-hero .art-named li:last-child::after { content: none; }

  .tv-to-cap__grid { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .tv-to-cap__head .hb-heading { max-width: none; }
  .tv-to-cap__body { padding-top: 0; }
  .tv-to .tv-to-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tv-to .tv-to-ledger > div { border-left: 1px solid var(--hb-line-on-dark); }
  .tv-to .tv-to-ledger > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .tv-to .tv-to-ledger > div:nth-child(-n+3) { border-bottom: 1px solid var(--hb-line-on-dark); }

  /* Terms: one column; the season sits under the lead, the release line under its text */
  .tv-to-terms__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-to-terms__body { padding-left: 0; border-left: 0; padding-top: clamp(2rem, 4vw, 3rem); border-top: 1px solid var(--ta-hair); }
  .tv-to-terms__aside .art-prose__lead { max-width: 30ch !important; }

  .tv-to-rel__grid { grid-template-columns: minmax(0, 1fr); row-gap: 2rem; }
  .tv-to-rel__grid .tv-to-rel__media, .tv-to-rel__body { grid-column: 1 / -1; }
  .tv-to-rel__body { padding-left: 0; }
  .tv-to-rel__body .art-prose__lead { max-width: 30ch !important; }
  .tv-to-register .art-coverage { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .tv-to-close .tv-ta-close__copy, .tv-to-close .tv-ta-close__panel { grid-column: 1 / -1; }
  .tv-to-close .tv-ta-close__copy { padding-right: 0; }
  .tv-to-close .tv-ta-close__panel { background: none; }
}

@media (max-width: 767.98px) {
  .tv-to-hero .art-standing { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
  .tv-to-hero .art-standing > div { padding: 0.95rem 0.9rem 1rem 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-to-hero .art-standing > div:nth-child(even) { padding-left: 1rem; padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-to-hero .art-standing > div:nth-last-child(-n+2) { border-bottom: 0; }

  /* What: photograph first, edge to edge, then heading, lead and the three blocks */
  .tv-to-what__grid { display: block; }
  .tv-to-what__media { margin: 0 calc(-1 * var(--to-bleed)); }
  .tv-to-what__frame { min-height: 0; aspect-ratio: 4 / 3; }
  .tv-to-what__frame img { object-position: 50% 30%; }
  .tv-to-what__media figcaption { padding-right: var(--to-bleed); }
  .tv-to-what__head { padding: clamp(2.5rem, 9vw, 3.5rem) 0 0; }
  .tv-to-what__body { padding: 0; }

  .tv-to-cap .tv-ta-brief__media { aspect-ratio: 16 / 10; }
  .tv-to .tv-to-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-to .tv-to-ledger > div, .tv-to .tv-to-ledger > div:nth-child(3n+1) { padding: 1.15rem 0.9rem 1.25rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-to .tv-to-ledger > div:nth-child(even) { padding-left: 1rem; padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-to .tv-to-ledger > div:nth-last-child(-n+2) { border-bottom: 0; }
  .tv-to .tv-to-ledger dt { margin-bottom: 0.5rem; }

  .tv-to-season { max-width: none; }
  .tv-to-season__months li { font-size: 0.52rem; letter-spacing: 0.04em; }
  .tv-to-season__keys p { letter-spacing: 0.1em; }
  .tv-to-season__sea { letter-spacing: 0.14em; gap: 0.6rem; }
  .tv-to-release { letter-spacing: 0.14em; }
  .tv-to-season__marks li { letter-spacing: 0.12em; }

  .tv-to-register .art-coverage { grid-template-columns: minmax(0, 1fr); }
  .tv-to-register .art-coverage__region, .tv-to-register .art-coverage__region:first-child { padding: 1.4rem 0; border-left: 0; border-top: 1px solid var(--hb-line-on-dark); }
  .tv-to-register .art-coverage__region:first-child { padding-top: 0; border-top: 0; }
  .tv-to-register .art-coverage__region:last-child { padding-bottom: 0; }

  .tv-to-faq__more .hb-cta { width: 100%; justify-content: center; }
  .tv-to-close.tv-ta-close .hub-close__direct { width: auto; justify-content: flex-start; }
}

@media (max-width: 479.98px) {
  /* New Year and Easter sit too close on one line at this width: Easter drops a row */
  .tv-to-season__marks { height: 3.6rem; }
  .tv-to-season__marks .tv-to-season__mark--easter { padding-top: 1.9rem; }
}

/* =====================================================================
   Travel designers   (/partner/egypt-travel-designers/)   Prefix: tv-td-
   body: tv-over-hero tv-ta tv-td. Built from docs/design/travel-designers-mockup.png.
   Reuses .tv-ta-hero, .tv-ta-close + .tv-to-close, .tv-faq + .tv-to-faq,
   and the article patterns .art-req and .art-cases.
   Egypt comes from the photography alone: no ornament.
   Rhythm: hero (photo) -> ivory, portrait + three statements -> ink, six
           photographic rows -> ivory, a four-row table of standards -> ink,
           door photograph off the left edge -> tinted ivory FAQ ->
           photograph under ink -> footer.

   Components:
     .tv-td-hero      hero variant: the answer panel closes on .tv-td-chips
     .tv-td-chips     outlined, square link chips
     .tv-td-apart     portrait, heading, then .tv-td-steps
     .tv-td-steps     numbered statements on hairlines
     .tv-td-access    .art-req with a wide photograph and an underlined Explore
     .tv-td-cases     .art-cases as three aligned columns, equal row heights
     .tv-td-door      photograph off the left edge, full section height; .tv-td-quad right
     .tv-td-quad      four items, 2 x 2, line icons
     .tv-td-contact   contact lines with icons
   ===================================================================== */
.tv-td .hb-section--ivory .hb-eyebrow { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   TD 1. HERO
   ------------------------------------------------------------------- */
.tv-td-hero { min-height: clamp(640px, 86vh, 880px); }
.tv-td-hero .tv-ta-hero__media img { object-position: 72% 50%; }
/* Charcoal from the left for the title, a floor under the panel, a top scrim behind the header */
.tv-td-hero::before {
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.9) 0%, rgba(var(--ta-scrim), 0.84) 26%, rgba(var(--ta-scrim), 0.58) 46%, rgba(var(--ta-scrim), 0) 68%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.7) 0%, rgba(var(--ta-scrim), 0.3) 34%, rgba(var(--ta-scrim), 0) 60%),
    linear-gradient(180deg, rgba(var(--ta-scrim), 0.6) 0%, rgba(var(--ta-scrim), 0) 22%);
}
.tv-td-hero .tv-ta-hero__inner { padding-bottom: clamp(2.5rem, 6vh, 4.25rem); }
.tv-td-hero .tv-ta-hero__lead { grid-column: 1 / span 6; padding-bottom: 0; }
.tv-td-hero .tv-ta-hero__title { max-width: 8.6em; font-size: clamp(2.8rem, 1.9rem + 2.6vw, 4.4rem); text-wrap: balance; }
.tv-td-hero .tv-ta-hero__answer { grid-column: 8 / -1; max-width: 31rem; background: rgba(var(--ta-ink), 0.82); border: 1px solid var(--hb-line-on-dark); border-left-color: var(--ta-hair-dark); }

.tv-td-chips { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 1.6rem 0 0; padding: 1.3rem 0 0; list-style: none; border-top: 1px solid var(--hb-line-on-dark); }
.tv-td-chips a {
  display: inline-flex; align-items: center; min-height: 2.5rem; padding: 0 0.95rem;
  border: 1px solid rgba(200, 183, 156, 0.6);
  font-size: 0.64rem; font-weight: 600; letter-spacing: 0.18em; line-height: 1.3; text-transform: uppercase; color: var(--hb-champagne);
  transition: background-color 0.25s var(--hb-ease), color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease);
}
.tv-td-chips a:hover, .tv-td-chips a:focus-visible { background: var(--hb-champagne); border-color: var(--hb-champagne); color: var(--hb-ink); }

/* ---------------------------------------------------------------------
   TD 2. WHAT SETS THIS APART: portrait, heading, three numbered statements
   ------------------------------------------------------------------- */
.tv-td-apart__grid { display: grid; grid-template-columns: minmax(0, 3.9fr) minmax(0, 3.5fr) minmax(0, 4.6fr); column-gap: clamp(2rem, 4vw, 4rem); align-items: start; }
.tv-td-apart__media { margin: 0; aspect-ratio: 4 / 5; overflow: hidden; background: var(--tv-ivory-deep); }
.tv-td-apart__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tv-td-apart__head .hb-heading { font-size: clamp(2rem, 1.45rem + 1.9vw, 3.1rem); line-height: 1.06; margin: 0 0 clamp(1.25rem, 2vw, 1.75rem); }
.tv-td-apart__head .art-prose__lead { max-width: none !important; margin: 0; font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.7rem) !important; }
.tv-td-apart__body > p { max-width: 54ch; margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); font-size: 1rem; line-height: 1.8; color: var(--hb-text-dim); }
.tv-td-steps { margin: 0; padding: 0; list-style: none; counter-reset: td-step; border-top: 1px solid var(--ta-hair); }
.tv-td-steps li { counter-increment: td-step; display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); column-gap: 1rem; padding: clamp(1.5rem, 2.4vw, 2.1rem) 0; border-bottom: 1px solid var(--ta-hair); }
.tv-td-steps li::before {
  content: counter(td-step, decimal-leading-zero) / ""; grid-row: 1 / span 2;
  font-family: var(--hb-serif); font-weight: 400; font-size: clamp(1.9rem, 1.6rem + 1vw, 2.5rem); line-height: 0.95; color: #8F7446;
}
.tv-td-steps h3 { grid-column: 2; margin: 0 0 0.6rem; font-family: var(--hb-serif); font-weight: 500; font-size: var(--hb-h3); line-height: 1.2; color: var(--hb-ink); }
.tv-td-steps p { grid-column: 2; margin: 0; max-width: 50ch; font-size: 1rem; line-height: 1.75; color: var(--hb-text-dim); }

/* ---------------------------------------------------------------------
   TD 3. EXCLUSIVE ACCESS: six rows, a wide photograph, an underlined Explore
   ------------------------------------------------------------------- */
.tv-td-access .art-req__row { grid-template-columns: minmax(0, 38%) minmax(0, 1fr) auto; gap: 1.25rem clamp(1.5rem, 3.5vw, 3.5rem); padding: clamp(1.1rem, 1.8vw, 1.5rem) 0; }
.tv-td-access .art-req__media { aspect-ratio: 2 / 1; border-radius: 0; }
.tv-td-access .art-req__name { font-size: clamp(1.6rem, 1.25rem + 1.1vw, 2.2rem); }
.tv-td-access .art-req__go { padding-bottom: 0.4rem; border-bottom: 1px solid var(--hb-champagne); font-size: 0.7rem; letter-spacing: 0.2em; transition: color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease); }
.tv-td-access .art-req__row:hover .art-req__go, .tv-td-access .art-req__row:focus-within .art-req__go { border-bottom-color: #fff; }
.tv-td-access + .art-note { max-width: none; margin-top: clamp(1.75rem, 3vw, 2.5rem); font-size: 0.95rem; color: rgba(244, 240, 232, 0.8); }

/* ---------------------------------------------------------------------
   TD 4. WHITE-GLOVE STANDARDS: the statement, then two aligned columns;
   every row takes the height of the tallest
   ------------------------------------------------------------------- */
.tv-td-cases { border-top-color: var(--ta-hair); }
.tv-td-cases .art-cases__row { border-bottom-color: var(--ta-hair); }
.tv-td-cases .art-cases__moment { max-width: 13ch; font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.6rem); }
.tv-td-cases .art-cases__label { margin-bottom: 0.65rem; color: var(--tv-brass-text); }
.tv-td-cases .art-cases__body p { font-size: 1rem; line-height: 1.75; }
@media (min-width: 1024px) {
  .tv-td-cases { display: grid; grid-auto-rows: 1fr; }
  .tv-td-cases .art-cases__row { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0 var(--ta-gap); align-items: stretch; padding: 0; }
  .tv-td-cases .art-cases__moment { align-self: center; padding: clamp(1.75rem, 3vw, 2.5rem) 0; }
  .tv-td-cases .art-cases__body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-td-cases .art-cases__body p { max-width: none; margin: 0; padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.25rem, 2.4vw, 2.25rem); border-left: 1px solid var(--ta-hair); }
  .tv-td-cases .art-cases__body p:last-child { padding-right: 0; }
}
.tv-td-cases + .art-cases-note { max-width: 76ch; margin-top: clamp(1.75rem, 3vw, 2.5rem); font-size: 0.95rem; color: var(--hb-text); }
.tv-td-cases + .art-cases-note a:hover, .tv-td-cases + .art-cases-note a:focus-visible { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   TD 5. CONFIDENTIALITY: the door photograph runs off the left edge at the
   full height of the section; heading and four items right
   ------------------------------------------------------------------- */
.tv-td-door { --td-bleed: calc(max(0px, (100vw - 1280px) / 2) + clamp(1.25rem, 4vw, 2.5rem)); padding: 0; overflow: hidden; }
.tv-td-door__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); }
.tv-td-door__media { grid-column: 1 / span 4; position: relative; margin: 0 0 0 calc(-1 * var(--td-bleed)); min-height: clamp(30rem, 44vw, 40rem); overflow: hidden; background: var(--hb-ink-soft); }
.tv-td-door__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 82% 50%; }   /* the ring handle stays in the tall crop */
.tv-td-door__body { grid-column: 5 / -1; padding: var(--hb-section-y) 0 var(--hb-section-y) clamp(1rem, 3vw, 3rem); }
.tv-td-door__body .hb-heading { font-size: clamp(2.1rem, 1.6rem + 2.1vw, 3.3rem); line-height: 1.06; }
.tv-td-door__body .hb-copy { max-width: 36rem; color: rgba(244, 240, 232, 0.82); }

.tv-td-quad { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(2rem, 3.5vw, 3rem) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair-dark); }
.tv-td-quad li { display: grid; grid-template-columns: 2rem minmax(0, 1fr); column-gap: 1.15rem; align-content: start; padding: clamp(1.5rem, 2.6vw, 2.25rem) clamp(1.25rem, 2.4vw, 2.25rem) clamp(1.5rem, 2.6vw, 2.25rem) 0; border-bottom: 1px solid var(--hb-line-on-dark); }
.tv-td-quad li:nth-child(even) { padding-left: clamp(1.25rem, 2.4vw, 2.25rem); padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
.tv-td-quad li:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: 0; }
.tv-td-quad svg { grid-row: 1 / span 3; width: 2rem; height: 2rem; margin-top: 0.15rem; fill: none; stroke: var(--hb-champagne); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.tv-td-quad svg * { vector-effect: non-scaling-stroke; }
.tv-td-quad__tag { grid-column: 2; display: block; margin-bottom: 0.5rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--hb-champagne); }
.tv-td-quad h3 { grid-column: 2; margin: 0 0 0.6rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.85rem); line-height: 1.15; color: var(--hb-white); }
.tv-td-quad p { grid-column: 2; margin: 0; max-width: 40ch; font-size: 0.96rem; line-height: 1.75; color: rgba(244, 240, 232, 0.78); }
.tv-td-quad a { color: var(--hb-champagne); border-bottom: 1px solid rgba(200, 183, 156, 0.45); transition: color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease); }
.tv-td-quad a:hover, .tv-td-quad a:focus-visible { color: #fff; border-color: #fff; }
.tv-td-quad a:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }

/* ---------------------------------------------------------------------
   TD 7. CLOSE: riverside photograph under ink (.tv-ta-close + .tv-to-close)
   ------------------------------------------------------------------- */
.tv-td-close .tv-ta-close__media img { object-position: 50% 50%; }
.tv-td-contact { display: grid; justify-items: start; gap: 0.1rem; margin: 1.1rem 0 0; padding: 0; list-style: none; }
.tv-td-contact a { display: inline-flex; align-items: center; gap: 0.9rem; min-height: 2.75rem; font-size: 0.95rem; line-height: 1.4; color: rgba(244, 240, 232, 0.9); transition: color 0.25s var(--hb-ease); }
.tv-td-contact .bi { flex: 0 0 1.25rem; font-size: 1.05rem; color: var(--hb-champagne); }
.tv-td-contact a:hover, .tv-td-contact a:focus-visible { color: #fff; }
.tv-td-contact a:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }
.tv-td-close .tv-ta-close__panel .hb-cta { min-height: 3rem; }

/* ---------------------------------------------------------------------
   TD RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-td-hero .tv-ta-hero__lead { grid-column: 1 / span 6; }
  .tv-td-hero .tv-ta-hero__answer { grid-column: 7 / -1; }

  /* Apart: the portrait keeps the left column; heading, then the statements, beside it */
  .tv-td-apart__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); row-gap: clamp(1.75rem, 3vw, 2.5rem); }
  .tv-td-apart__media { grid-row: 1 / span 2; }
  .tv-td-apart__head, .tv-td-apart__body { grid-column: 2; }
}

@media (max-width: 1023.98px) {
  /* Hero: photograph on top, then title and the answer as plain text on solid ink */
  .tv-td-hero { min-height: 0; }
  .tv-td-hero .tv-ta-hero__lead { padding-bottom: clamp(2rem, 5vw, 3rem); }
  .tv-td-hero .tv-ta-hero__answer { max-width: 40rem; background: none; border: 0; border-top: 1px solid var(--hb-line-on-dark); padding: 1.75rem 0 0; }
  .tv-td-chips a { min-height: 2.75rem; }

  .tv-td-access .art-req__row { grid-template-columns: minmax(0, 42%) minmax(0, 1fr); }
  .tv-td-access .art-req__go { grid-column: 2; justify-self: start; }

  /* Door: photograph on top as a band, then the text */
  .tv-td-door__grid { display: block; }
  .tv-td-door__media { margin: 0 calc(-1 * var(--td-bleed)); min-height: 0; aspect-ratio: 16 / 9; }
  .tv-td-door__media img { object-position: 50% 50%; }
  .tv-td-door__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0) 40%); }
  .tv-td-door__body { padding-left: 0; }
}

@media (max-width: 767.98px) {
  /* Apart: portrait first, then heading, then the statements */
  .tv-td-apart__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-td-apart__media { grid-row: auto; }
  .tv-td-apart__head, .tv-td-apart__body { grid-column: 1; }
  .tv-td-steps li { grid-template-columns: 2.9rem minmax(0, 1fr); column-gap: 0.75rem; }

  /* Access: photograph above the text */
  .tv-td-access .art-req__row { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0 1.75rem; }
  .tv-td-access .art-req__media { aspect-ratio: 16 / 9; max-width: none; }
  .tv-td-access .art-req__go { grid-column: auto; }

  .tv-td-cases .art-cases__moment { max-width: 16ch; margin-bottom: 0.4rem; }

  .tv-td-quad { grid-template-columns: minmax(0, 1fr); }
  .tv-td-quad li, .tv-td-quad li:nth-child(even) { padding: 1.6rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-td-quad li:nth-last-child(-n+2) { padding-bottom: 1.6rem; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-td-quad li:nth-last-child(-n+2):last-child { border-bottom: 0; padding-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .tv-td-chips a, .tv-td-access .art-req__media img, .tv-td-access .art-req__go, .tv-td-quad a, .tv-td-contact a { transition: none !important; }
  .tv-td-access .art-req__row:hover .art-req__media img { transform: none !important; }
}

/* =====================================================================
   MICE specialists   (/partner/egypt-mice-specialists/)   Prefix: tv-ms-
   body: tv-over-hero tv-ta tv-ms. Built from the client's design brief of
   2026-10-04 (no mockup). Reuses .tv-ta-hero + .tv-to-hero (title, six-fact
   ledger, answer panel), .tv-faq + .tv-to-faq, .tv-to-close__links and
   .tv-td-contact, and the article patterns .art-register and .art-cases.
   Egypt comes from the photography alone: no ornament.
   Rhythm: hero (photo) -> ivory, the statement large + three undertakings ->
           ink, a counted table of six -> ivory, framed plate + pull-quote ->
           ink, three rows of moment / behind / message -> tinted ivory FAQ ->
           ink, form on a hairline panel -> footer.

   Components:
     .tv-ms-hero      hero variant: the answer panel closes on two actions
     .tv-ms-btn       solid champagne button, square
     .tv-ms-get       the statement in two halves left, undertakings right
     .tv-ms-register  .art-register as a counted three-column table; the
                      last row (.tv-ms-register__honest) is set apart
     .tv-ms-venue     plate in an offset hairline frame, text right
     .tv-ms-quote     a statement behind a brass rule
     .tv-ms-cases     .art-cases as three aligned columns on ink
     .tv-ms-heard     what the agency hears, set as a message
     .tv-ms-close     form on a hairline panel, an assurance beside the button
   ===================================================================== */
.tv-ms .hb-section--ivory .hb-eyebrow { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   MS 1. HERO: title and actions left, the answer right, six facts as one
   strip across the foot
   ------------------------------------------------------------------- */
.tv-ms-hero { min-height: clamp(700px, 94vh, 960px); }
.tv-ms-hero .tv-ta-hero__media img { object-position: 84% 50%; }   /* the temple and its reflection stay right of the title */
/* Charcoal from the left for the title, a floor under the panel and the strip, a top scrim behind the header */
.tv-ms-hero::before {
  background:
    linear-gradient(90deg, rgba(var(--ta-scrim), 0.92) 0%, rgba(var(--ta-scrim), 0.86) 28%, rgba(var(--ta-scrim), 0.6) 48%, rgba(var(--ta-scrim), 0.1) 70%, rgba(var(--ta-scrim), 0) 82%),
    linear-gradient(0deg, rgba(var(--ta-scrim), 0.94) 0%, rgba(var(--ta-scrim), 0.86) 16%, rgba(var(--ta-scrim), 0.5) 38%, rgba(var(--ta-scrim), 0) 66%),
    linear-gradient(180deg, rgba(var(--ta-scrim), 0.66) 0%, rgba(var(--ta-scrim), 0) 24%);
}
.tv-ms-hero .tv-ta-hero__inner { row-gap: clamp(2rem, 4.5vh, 3.25rem); padding-bottom: clamp(1.75rem, 4vh, 2.75rem); }
.tv-ms-hero .tv-ta-hero__lead { grid-column: 1 / span 7; padding-bottom: 0; }
.tv-ms-hero .tv-ta-hero__title { max-width: 9.2em; font-size: clamp(3rem, 1.9rem + 3.1vw, 5rem); line-height: 1.02; text-wrap: balance; }
.tv-ms-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: clamp(1.75rem, 4vh, 2.5rem); }
.tv-ms-hero__actions .hb-link { color: var(--hb-champagne); }
.tv-ms-hero__actions .hb-link:hover, .tv-ms-hero__actions .hb-link:focus-visible { color: #fff; }
.tv-ms-hero .tv-ta-hero__answer { grid-column: 8 / -1; max-width: 31rem; background: rgba(var(--ta-ink), 0.86); border: 1px solid var(--hb-line-on-dark); border-left-color: var(--ta-hair-dark); padding: clamp(1.5rem, 2.2vw, 2.25rem) clamp(1.5rem, 2.4vw, 2.5rem); }
.tv-ms-hero .hub-hero__answer .tv-ms-hero__pledge { margin-top: 1.1rem; font-family: var(--hb-serif); font-style: italic; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.35; color: #fff; }
.tv-ms-hero .art-named { margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid var(--hb-line-on-dark); }

.tv-ms-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: 0 1.75rem;
  background: var(--hb-champagne); border: 1px solid var(--hb-champagne); border-radius: 0;
  font-family: var(--hb-sans); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.2; text-transform: uppercase; color: var(--hb-ink);
  transition: background-color 0.25s var(--hb-ease), color 0.25s var(--hb-ease);
}
.tv-ms-btn:hover, .tv-ms-btn:focus-visible { background: transparent; color: var(--hb-champagne); }
.tv-ms-btn:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }

/* The strip: six cells on one brass hairline, serif values, hairlines between */
.tv-ms .tv-ms-strip { grid-column: 1 / -1; max-width: none; gap: 0; margin: 0; border-top: 1px solid var(--ta-hair-dark); grid-template-columns: repeat(6, minmax(0, 1fr)); }
.tv-ms .tv-ms-strip > div { display: block; padding: 1.2rem 1.25rem 0.4rem; border: 0; border-left: 1px solid var(--hb-line-on-dark); }
.tv-ms .tv-ms-strip > div:first-child { padding-left: 0; border-left: 0; }
.tv-ms .tv-ms-strip dt { margin: 0 0 0.5rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-champagne); }
.tv-ms .tv-ms-strip dd { margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.3rem, 0.95rem + 0.9vw, 1.8rem); line-height: 1.12; color: #fff; text-wrap: balance; }
@media (min-width: 1200px) { .tv-ms .tv-ms-strip { grid-template-columns: 0.9fr 0.9fr 0.7fr 1.5fr 1fr 0.9fr; } }

/* ---------------------------------------------------------------------
   MS 2. WHAT AGENCIES GET: heading and photograph left, four statements
   2 x 2 on brass hairlines right
   ------------------------------------------------------------------- */
.tv-ms-get__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 2.5rem clamp(2rem, 5vw, 5.5rem); align-items: start; }
.tv-ms-get__head .hb-heading { max-width: 6em; margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); font-size: clamp(2.4rem, 1.7rem + 2.6vw, 3.9rem); line-height: 1.02; }
.tv-ms-get__media { margin: 0; aspect-ratio: 3 / 2; overflow: hidden; background: var(--tv-ivory-deep); }
.tv-ms-get__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tv-ms-quad { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.75rem, 3.5vw, 3.5rem); counter-reset: ms-get; padding-top: 0.5rem; }
.tv-ms-quad__item { counter-increment: ms-get; display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); align-content: start; padding: clamp(1.6rem, 2.6vw, 2.25rem) 0 clamp(2rem, 3.4vw, 3rem); border-top: 1px solid var(--ta-hair); }
.tv-ms-quad__item::before {
  content: counter(ms-get, decimal-leading-zero) / ""; grid-row: 1 / span 2;
  font-family: var(--hb-serif); font-weight: 400; font-size: clamp(1.7rem, 1.45rem + 0.8vw, 2.2rem); line-height: 1; color: #8F7446;
}
.tv-ms-quad__name { grid-column: 2; margin: 0 0 0.75rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.5rem, 1.25rem + 0.8vw, 1.9rem); line-height: 1.14; color: var(--hb-ink); text-wrap: balance; }
.tv-ms-quad__item p:not(.tv-ms-quad__name) { grid-column: 2; margin: 0; max-width: 44ch; font-size: 0.98rem; line-height: 1.75; color: var(--hb-text-dim); }
.tv-ms-quad__item a { color: var(--hb-ink); border-bottom: 1px solid var(--hb-gold); }
.tv-ms-quad__item a:hover, .tv-ms-quad__item a:focus-visible { color: var(--tv-brass-text); }
.tv-ms-quad__item:nth-last-child(-n+2) { padding-bottom: 0; }

/* ---------------------------------------------------------------------
   MS 3. RFP & PROPOSAL TURNAROUND: the deck photograph runs off the left
   edge at the full height of the section; heading beside it; six parts of
   a response, counted
   ------------------------------------------------------------------- */
.tv-ms-rfp { --ms-bleed: calc(max(0px, (100vw - 1280px) / 2) + clamp(1.25rem, 4vw, 2.5rem)); padding: 0; overflow: hidden; }
.tv-ms-rfp__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); }
.tv-ms-rfp__media { grid-column: 1 / span 3; position: relative; margin: 0 0 0 calc(-1 * var(--ms-bleed)); min-height: 32rem; overflow: hidden; background: var(--hb-ink-soft); }
.tv-ms-rfp__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 73% 50%; }   /* the temple, the felucca and the lanterns along the rail */
.tv-ms-rfp__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(270deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0) 34%); }
.tv-ms-rfp__head { grid-column: 4 / span 3; padding: var(--hb-section-y) 0; }
.tv-ms-rfp__head .hb-heading { margin: 0 0 clamp(1.25rem, 2vw, 1.75rem); font-size: clamp(2.2rem, 1.5rem + 2vw, 3.2rem); line-height: 1.04; }
.tv-ms-rfp__head .hb-copy { margin: 0; font-size: 1rem; line-height: 1.75; color: rgba(244, 240, 232, 0.84); }
.tv-ms-rfp .tv-ms-register { grid-column: 7 / -1; align-self: center; margin: var(--hb-section-y) 0; padding-left: clamp(0rem, 1.2vw, 1.25rem); }

.tv-ms-register { counter-reset: ms-part; border-top-color: var(--ta-hair-dark); }
.tv-ms-register .art-register__row {
  counter-increment: ms-part;
  grid-template-columns: 2.75rem minmax(0, 5fr) minmax(0, 6fr); gap: 0.6rem clamp(1rem, 1.8vw, 1.75rem); align-items: baseline;
  padding: clamp(1.25rem, 2vw, 1.6rem) 0;
}
.tv-ms-register .art-register__row::before {
  content: counter(ms-part, decimal-leading-zero) / "";
  font-family: var(--hb-serif); font-weight: 400; font-size: clamp(1.35rem, 1.2rem + 0.4vw, 1.6rem); line-height: 1; color: var(--hb-champagne);
}
.tv-ms-register .art-register__tag { margin-bottom: 0.45rem; font-size: 0.62rem; letter-spacing: 0.22em; }
.tv-ms-register .art-register__name { font-size: clamp(1.4rem, 1.15rem + 0.7vw, 1.75rem); line-height: 1.14; }
.tv-ms-register .art-prose p { max-width: 52ch; margin: 0; font-size: 0.95rem; line-height: 1.7; color: rgba(244, 240, 232, 0.82); }
/* The honest part: a brass outline and a faint wash; it reads as the row that was added on purpose */
.tv-ms-register .tv-ms-register__honest {
  margin-top: clamp(1rem, 1.6vw, 1.4rem); padding-left: clamp(1rem, 1.6vw, 1.4rem); padding-right: clamp(1rem, 1.6vw, 1.4rem);
  border: 1px solid var(--ta-hair-dark); background: rgba(200, 183, 156, 0.07);
}
.tv-ms-register__honest .art-prose p { color: rgba(244, 240, 232, 0.94); }
.tv-ms-register .art-register__row:nth-last-child(2) { border-bottom: 0; }

/* ---------------------------------------------------------------------
   MS 4. VENUE SOURCING: text left, the ballroom in an offset hairline frame right
   ------------------------------------------------------------------- */
.tv-ms-venue__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 2.5rem clamp(2.5rem, 5.5vw, 6rem); align-items: center; }
.tv-ms-venue__plate { margin: 0; }
.tv-ms-venue__frame { position: relative; display: block; margin: 0 14px 14px 0; background: var(--tv-ivory-deep); }
.tv-ms-venue__frame::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--ta-hair); pointer-events: none; }
.tv-ms-venue__frame img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 42% 50%; }
.tv-ms-venue__plate figcaption { margin-top: 1.6rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-ms-venue__body .hb-heading { margin-bottom: clamp(1.5rem, 2.6vw, 2.25rem); font-size: clamp(2.3rem, 1.6rem + 2.4vw, 3.6rem); line-height: 1.04; max-width: 7em; }
.tv-ms-quote {
  max-width: 22ch; margin: 0 0 clamp(1.75rem, 3vw, 2.5rem); padding-left: clamp(1.1rem, 2vw, 1.75rem); border-left: 1px solid var(--hb-gold);
  font-family: var(--hb-serif); font-style: italic; font-weight: 400; font-size: clamp(1.8rem, 1.35rem + 1.7vw, 2.8rem); line-height: 1.12; color: var(--hb-ink); text-wrap: balance;
}
.tv-ms-venue__body .art-prose p { max-width: 60ch; font-size: 1rem; line-height: 1.8; }
.tv-ms-venue__body .art-prose a:hover, .tv-ms-venue__body .art-prose a:focus-visible { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   MS 5. PROGRAMME DELIVERY: moment / behind the scenes / what you hear
   ------------------------------------------------------------------- */
.tv-ms-delivery__intro { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.5rem clamp(2rem, 5.5vw, 6rem); align-items: end; margin-bottom: clamp(2.5rem, 4.5vw, 4rem); }
.tv-ms-delivery__intro .hb-heading { margin: 0; max-width: 9em; font-size: clamp(2.3rem, 1.6rem + 2.4vw, 3.6rem); line-height: 1.04; }
.tv-ms-delivery__intro .hb-copy { margin: 0; max-width: 58ch; color: rgba(244, 240, 232, 0.84); }
.tv-ms-cases { border-top-color: var(--ta-hair-dark); }
.tv-ms-cases .art-cases__moment { max-width: 12ch; font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.9rem); }
.tv-ms-cases .art-cases__label { margin-bottom: 0.7rem; font-size: 0.64rem; letter-spacing: 0.22em; }
.tv-ms-cases .art-cases__body p { margin: 0; font-size: 1rem; line-height: 1.75; color: rgba(244, 240, 232, 0.82); }
/* The message: a square block on a faint wash behind a brass rule, the words in serif */
.tv-ms-cases .art-cases__body .tv-ms-heard {
  padding: 1.25rem 1.4rem 1.35rem; background: rgba(244, 240, 232, 0.055); border: 1px solid var(--hb-line-on-dark); border-left: 2px solid var(--hb-champagne);
  font-family: var(--hb-serif); font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.35; color: #fff;
}
.tv-ms-heard .art-cases__label { font-family: var(--hb-sans); }
@media (min-width: 1024px) {
  .tv-ms-cases .art-cases__row { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0 var(--ta-gap); align-items: center; padding: clamp(2rem, 3.4vw, 3rem) 0; }
  .tv-ms-cases .art-cases__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(1.5rem, 3vw, 3rem); align-items: center; }
  .tv-ms-cases .art-cases__body p { max-width: none; }
}
.tv-ms-cases + .art-cases-note { max-width: 76ch; margin-top: clamp(1.75rem, 3vw, 2.5rem); font-size: 0.95rem; color: rgba(244, 240, 232, 0.8); }

/* ---------------------------------------------------------------------
   MS 7. CLOSE: the form on a hairline panel, an assurance beside the button
   ------------------------------------------------------------------- */
.tv-ms-close .art-enquiry { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 4.5vw, 5rem); }
.tv-ms-close .art-enquiry__head .hb-heading { font-size: clamp(2.4rem, 1.7rem + 2.5vw, 3.7rem); line-height: 1.03; max-width: 9em; }
.tv-ms-close .art-enquiry__head .hb-copy { margin-bottom: 0; color: rgba(244, 240, 232, 0.86); }
.tv-ms-close__panel { padding: clamp(1.75rem, 3vw, 2.75rem); border: 1px solid var(--hb-line-on-dark); border-top-color: var(--ta-hair-dark); background: rgba(244, 240, 232, 0.03); }
.tv-ms-close .art-form__field { justify-content: flex-end; }   /* inputs stay level when a label wraps */
.tv-ms-close .art-form input::placeholder, .tv-ms-close .art-form textarea::placeholder { font-size: 0.9rem; }
.tv-ms-close .art-form__submit { margin-top: 0.8rem; }
.tv-ms-close__panel .hb-cta { min-height: 3.25rem; padding-left: 2.25rem; padding-right: 2.25rem; border-radius: 0; }
.tv-ms-close__assure { flex: 1 1 14rem; max-width: 24rem; margin: 0; font-size: 0.88rem; line-height: 1.6; color: rgba(244, 240, 232, 0.78); }
.tv-ms-close .art-form__status { flex: 1 0 100%; }
.tv-ms-close .art-form__status:empty { display: none; }

/* ---------------------------------------------------------------------
   MS RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-ms-hero .tv-ta-hero__lead { grid-column: 1 / span 6; }
  .tv-ms-hero .tv-ta-hero__answer { grid-column: 7 / -1; }
  .tv-ms .tv-ms-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tv-ms .tv-ms-strip > div { padding: 1.1rem 1rem 1.2rem; }
  .tv-ms .tv-ms-strip > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .tv-ms .tv-ms-strip > div:nth-child(-n+3) { border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-ms .tv-ms-strip > div:nth-child(n+4) { padding-bottom: 0; }

  .tv-ms-get__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-ms-get__head { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(2rem, 5vw, 5.5rem); align-items: end; }
  .tv-ms-get__head .hb-kicker { grid-column: 1 / -1; }
  .tv-ms-get__head .hb-heading { margin-bottom: 0; }

  /* RFP: the photograph becomes a band across the top, then heading and the table at full width */
  .tv-ms-rfp__grid { display: block; }
  .tv-ms-rfp__media { margin: 0 calc(-1 * var(--ms-bleed)); min-height: 0; aspect-ratio: 21 / 9; }
  .tv-ms-rfp__media img { object-position: 50% 50%; }
  .tv-ms-rfp__media::after { background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0) 40%); }
  .tv-ms-rfp__head { max-width: 44rem; padding: clamp(2.5rem, 5vw, 3.5rem) 0 clamp(2rem, 4vw, 3rem); }
  .tv-ms-rfp .tv-ms-register { margin: 0 0 var(--hb-section-y); padding-left: 0; }
  .tv-ms-register .art-register__row { grid-template-columns: 3.25rem minmax(0, 4fr) minmax(0, 7fr); padding: clamp(1.4rem, 2.6vw, 2rem) 0; }
  .tv-ms-register .art-register__name { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
  .tv-ms-register .art-prose p { font-size: 1rem; }
  .tv-ms-register .tv-ms-register__honest { padding-left: clamp(1rem, 2vw, 1.5rem); padding-right: clamp(1rem, 2vw, 1.5rem); }

  .tv-ms-delivery__intro { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ms-delivery__intro .hb-heading { max-width: none; }
}

@media (max-width: 1023.98px) {
  /* Hero: photograph on top, then title, actions, the answer as plain text, and the strip 3 x 2 on solid ink */
  .tv-ms-hero { min-height: 0; }
  .tv-ms-hero .tv-ta-hero__media img { object-position: 76% 50%; }
  .tv-ms-hero .tv-ta-hero__lead { padding-bottom: clamp(2rem, 5vw, 3rem); }
  .tv-ms-hero .tv-ta-hero__answer { max-width: 40rem; background: none; border: 0; border-top: 1px solid var(--hb-line-on-dark); padding: 1.75rem 0 0; }
  .tv-ms-hero .art-named { display: flex; margin-top: 1.4rem; padding-top: 1.1rem; border-top: 1px solid var(--hb-line-on-dark); }
  .tv-ms-hero .art-named li, .tv-ms-hero .art-named li:nth-child(even) { padding: 0; border: 0; line-height: 1.9; }
  .tv-ms-hero .art-named li::after { content: "\00B7"; }
  .tv-ms-hero .art-named li:last-child::after { content: none; }
  .tv-ms .tv-ms-strip { margin-top: clamp(2rem, 5vw, 3rem); }

  .tv-ms-venue__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ms-venue__body .hb-heading { max-width: none; }
  .tv-ms-venue__frame img { aspect-ratio: 16 / 9; }
  .tv-ms-quote { max-width: 20ch; }

  .tv-ms-delivery__intro { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ms-delivery__intro .hb-heading { max-width: none; }
  .tv-ms-cases .art-cases__body { display: grid; gap: 1.25rem; }
  .tv-ms-cases .art-cases__moment { max-width: 18ch; margin-bottom: 0.5rem; }

  .tv-ms-close .art-enquiry { grid-template-columns: minmax(0, 1fr); }
  .tv-ms-close .art-enquiry__head .hb-heading { max-width: none; }
}

@media (max-width: 767.98px) {
  .tv-ms-hero .tv-ta-hero__media img { object-position: center; }
  .tv-ms-hero .tv-ta-hero__title { font-size: clamp(2.6rem, 1.6rem + 5vw, 3.2rem); }
  .tv-ms-hero__actions .tv-ms-btn { width: 100%; }
  .tv-ms-hero__actions .hb-link { min-height: 2.75rem; display: inline-flex; align-items: center; }
  /* The strip wraps to two columns, three rows */
  .tv-ms .tv-ms-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-ms .tv-ms-strip > div, .tv-ms .tv-ms-strip > div:nth-child(3n+1), .tv-ms .tv-ms-strip > div:nth-child(n+4) { padding: 1rem 0.9rem 1.1rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-ms .tv-ms-strip > div:nth-child(even) { padding-left: 1rem; padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-ms .tv-ms-strip > div:nth-last-child(-n+2) { border-bottom: 0; padding-bottom: 0; }

  .tv-ms-get__head { display: block; }
  .tv-ms-get__head .hb-heading { margin-bottom: 1.75rem; }
  .tv-ms-quad { grid-template-columns: minmax(0, 1fr); }
  .tv-ms-quad__item, .tv-ms-quad__item:nth-last-child(-n+2) { grid-template-columns: 2.9rem minmax(0, 1fr); padding: 1.6rem 0 1.9rem; }
  .tv-ms-quad__item:last-child { padding-bottom: 0; }

  /* The table becomes stacked cards: the count, the label and name, then the text */
  .tv-ms-rfp__media { aspect-ratio: 4 / 3; }
  .tv-ms-rfp__media img { object-position: 70% 50%; }
  .tv-ms-register .art-register__row { grid-template-columns: 2.75rem minmax(0, 1fr); gap: 0.6rem 0.5rem; padding: 1.4rem 0 1.5rem; }
  .tv-ms-register .art-register__row > .art-prose { grid-column: 2; }
  .tv-ms-register .tv-ms-register__honest { padding: 1.4rem 1.1rem 1.5rem; }

  .tv-ms-venue__frame { margin: 0 10px 10px 0; }
  .tv-ms-venue__frame::before { inset: 10px -10px -10px 10px; }
  .tv-ms-venue__frame img { aspect-ratio: 3 / 2; }

  .tv-ms-close__panel { padding: 2.25rem 0 0; border: 0; border-top: 1px solid var(--hb-line-on-dark); background: none; }
  .tv-ms-close__panel .hb-cta { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .tv-ms-btn { transition: none !important; }
}

/* =====================================================================
   Corporate travel   (/partner/egypt-corporate-travel/)   Prefix: tv-ct-
   body: tv-over-hero tv-ta tv-ct. Built from docs/design/corporate-travel-mockup.png.
   Reuses .tv-ta-hero (photograph, title), .tv-ta-brief (the photograph
   band), .tv-faq, .tv-td-contact and .art-form. The FAQ uses the site's
   [data-accordion] behaviour in js/hub.js; no script is added.
   Egypt comes from the photography alone: no ornament.
   Rhythm: hero (ink + photograph) and the facts strip -> ivory, one sheet
           in three parts -> ink under a photograph, four rows -> ivory,
           the statement sheet -> ink, five columns -> ivory, the names on
           one panel -> ink FAQ -> ivory, photograph / copy / form -> footer.

   Components:
     .tv-ct-hero     hero variant: ink left, photograph from 34% rightwards
     .tv-ct-btn      champagne button, square (+ --line, outlined)
     .tv-ct-strip    six facts with line icons, on solid ink under the hero
     .tv-ct-trio     three parts on one white sheet, hairlines between
     .tv-ct-rows     icon / name / text / chevron rows on hairlines
     .tv-ct-sheet    the account statement as a paper sheet with a table
     .tv-ct-five     five columns with icons, hairlines between
     .tv-ct-orgs     names in three groups on one white panel
     .tv-ct-acc      accordion: button + aria-expanded, plus turning to minus
     .tv-ct-close    photograph off the left edge / copy / form, on ivory
     .tv-ct-form     .art-form recoloured for an ivory ground
   ===================================================================== */
.tv-ct { --ct-icon: #8F7446; --ct-shadow: 0 30px 60px -38px rgba(41, 39, 37, 0.38), 0 2px 6px rgba(41, 39, 37, 0.04); }
.tv-ct .hb-section--ivory .hb-eyebrow { color: var(--tv-brass-text); }
.tv-ct main section[id] { scroll-margin-top: 4.5rem; }
.tv-ct-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.tv-ct main svg { fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.tv-ct-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------------------------------------------------------------------
   CT 1. HERO: ink left, the arrival photograph right; the facts beneath
   ------------------------------------------------------------------- */
.tv-ct-top { background: var(--hb-ink); }
.tv-ct-hero { min-height: clamp(620px, 80vh, 800px); background: var(--hb-ink); }
.tv-ct-hero .tv-ta-hero__inner { padding-bottom: clamp(2.5rem, 6vh, 4rem); }
.tv-ct-hero .tv-ta-hero__lead { grid-column: 1 / span 6; padding-bottom: 0; }
.tv-ct-hero .tv-ta-hero__title { max-width: 8em; font-size: clamp(2.7rem, 1.8rem + 2.6vw, 4.3rem); line-height: 1.03; text-wrap: balance; }
.tv-ct-hero__answer { max-width: 34rem; margin-top: clamp(1.4rem, 3vh, 2rem); }
.tv-ct-hero__answer p + p { margin-top: 0.75rem; }
.tv-ct-hero .art-hero__label { margin-bottom: 0.7rem; }
.tv-ct-hero__actions { display: flex; flex-wrap: wrap; gap: 0.85rem; margin-top: clamp(1.6rem, 3.5vh, 2.25rem); }
@media (min-width: 1024px) {
  .tv-ct-hero .tv-ta-hero__media { left: 34%; }
  .tv-ct-hero .tv-ta-hero__media img { object-position: 17% 50%; }   /* the open door and the chauffeur sit right of the text */
  /* Solid ink to the photograph's edge, then it dissolves; a top scrim behind the header, a low floor */
  .tv-ct-hero::before {
    background:
      linear-gradient(90deg, rgb(var(--ta-ink)) 0%, rgb(var(--ta-ink)) 34%, rgba(var(--ta-ink), 0.9) 40%, rgba(var(--ta-ink), 0.5) 50%, rgba(var(--ta-ink), 0) 62%),
      linear-gradient(0deg, rgba(var(--ta-ink), 0.75) 0%, rgba(var(--ta-ink), 0) 24%),
      linear-gradient(180deg, rgba(var(--ta-ink), 0.7) 0%, rgba(var(--ta-ink), 0) 24%);
  }
}

.tv-ct-btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 3.1rem; padding: 0 1.75rem;
  background: var(--hb-champagne); border: 1px solid var(--hb-champagne); border-radius: 0; cursor: pointer;
  font-family: var(--hb-sans); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.2; text-transform: uppercase; color: var(--hb-ink);
  transition: background-color 0.25s var(--hb-ease), color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease);
}
.tv-ct-btn:hover, .tv-ct-btn:focus-visible { background: transparent; color: var(--hb-champagne); }
.tv-ct-btn:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }
.tv-ct-btn--line { background: transparent; border-color: rgba(200, 183, 156, 0.75); color: var(--hb-white); }
.tv-ct-btn--line:hover, .tv-ct-btn--line:focus-visible { background: var(--hb-champagne); border-color: var(--hb-champagne); color: var(--hb-ink); }

/* The strip: six facts, an icon beside each, hairlines between */
.tv-ct-facts { background: var(--hb-ink); border-top: 1px solid var(--hb-line-on-dark); padding: clamp(1.4rem, 2.4vw, 2rem) 0; }
.tv-ct-strip { display: grid; grid-template-columns: 0.95fr 0.95fr 0.8fr 0.95fr 0.95fr 1.4fr; margin: 0; padding: 0; }
.tv-ct-strip > div { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); column-gap: 0.9rem; align-items: center; padding: 0.3rem 1rem 0.3rem 1.25rem; border-left: 1px solid var(--hb-line-on-dark); }
.tv-ct-strip > div:first-child { padding-left: 0; border-left: 0; }
.tv-ct-strip svg { grid-row: 1 / span 2; width: 2.25rem; height: 2.25rem; color: var(--hb-champagne); }
.tv-ct-strip dt { align-self: end; margin: 0 0 0.2rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.4; text-transform: uppercase; color: var(--hb-champagne); }
.tv-ct-strip dd { align-self: start; margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.2rem, 0.95rem + 0.7vw, 1.55rem); line-height: 1.12; color: #fff; }

/* ---------------------------------------------------------------------
   CT 2. WHAT THE ACCOUNT INCLUDES: heading left, statement right, then
   three parts on one white sheet
   ------------------------------------------------------------------- */
.tv-ct-incl__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.75rem clamp(2rem, 5vw, 5.5rem); align-items: start; }
.tv-ct-incl__head .hb-heading { max-width: 8em; margin: 0; font-size: clamp(2.2rem, 1.6rem + 2.2vw, 3.4rem); line-height: 1.05; }
.tv-ct-incl__body { padding-top: 2.55rem; }   /* the statement sits level with the H2, below the eyebrow */
.tv-ct-incl__body .art-prose__lead { max-width: 32ch !important; }
.tv-ct-incl__body a:hover, .tv-ct-incl__body a:focus-visible { color: var(--tv-brass-text); }
.tv-ct-trio {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: clamp(2.75rem, 5vw, 4.25rem) 0 0; padding: 0; list-style: none;
  background: #fff; border: 1px solid var(--hb-line); border-top: 1px solid var(--hb-gold); box-shadow: var(--ct-shadow);
}
.tv-ct-trio li { padding: clamp(1.75rem, 3vw, 2.75rem); border-left: 1px solid var(--hb-line); }
.tv-ct-trio li:first-child { border-left: 0; }
.tv-ct-trio svg { display: block; width: 2.5rem; height: 2.5rem; margin-bottom: 1.5rem; color: var(--ct-icon); }
.tv-ct-trio h3 { margin: 0 0 0.7rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.85rem); line-height: 1.15; color: var(--hb-ink); }
.tv-ct-trio p { margin: 0; max-width: 40ch; font-size: 0.98rem; line-height: 1.75; color: var(--hb-text-dim); }

/* ---------------------------------------------------------------------
   CT 3. ACCOUNT MANAGEMENT: the meeting photograph into ink, then four rows
   ------------------------------------------------------------------- */
.tv-ct-acct .tv-ta-brief__media img { object-position: 50% 30%; }
@media (min-width: 1024px) {
  .tv-ct-acct { --ct-band: clamp(320px, 31vw, 520px); }
  .tv-ct-acct .tv-ta-brief__media { height: var(--ct-band); }
  .tv-ct-acct .tv-ta-brief__media::after { background: linear-gradient(0deg, var(--hb-ink) 0%, rgba(var(--ta-ink), 0.8) 16%, rgba(var(--ta-ink), 0.3) 34%, rgba(var(--ta-ink), 0) 52%); }
  .tv-ct-acct .tv-ta-brief__inner { padding-top: calc(var(--ct-band) - 0.5rem); }
}
.tv-ct-acct__intro { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 1.5rem clamp(2rem, 5vw, 6rem); align-items: end; margin-bottom: clamp(2.25rem, 4vw, 3.5rem); }
.tv-ct-acct__intro .hb-heading { margin: 0; max-width: 11em; font-size: clamp(2.2rem, 1.6rem + 2.2vw, 3.4rem); line-height: 1.05; }
.tv-ct-acct__intro .hb-copy { margin: 0; color: rgba(244, 240, 232, 0.86); }
.tv-ct-rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair-dark); }
.tv-ct-rows__row {
  display: grid; grid-template-columns: 2.5rem minmax(0, 4fr) minmax(0, 7fr) 1.25rem; gap: 0.75rem clamp(1.25rem, 2.6vw, 2.75rem); align-items: center;
  padding: clamp(1.4rem, 2.2vw, 1.9rem) clamp(0.5rem, 1.2vw, 1.25rem); border-bottom: 1px solid var(--hb-line-on-dark);
  transition: background-color 0.3s var(--hb-ease);
}
.tv-ct-rows__icon { width: 2.25rem; height: 2.25rem; color: var(--hb-champagne); }
.tv-ct-rows__tag { display: block; margin-bottom: 0.4rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-champagne); }
.tv-ct-rows__name { margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.9rem); line-height: 1.14; color: #fff; }
.tv-ct-rows__row p { margin: 0; max-width: 56ch; font-size: 0.98rem; line-height: 1.7; color: rgba(244, 240, 232, 0.82); }
.tv-ct-rows__go { width: 1.25rem; height: 1.25rem; color: rgba(200, 183, 156, 0.6); transition: transform 0.3s var(--hb-ease), color 0.3s var(--hb-ease); }
@media (hover: hover) {
  .tv-ct-rows__row:hover { background: rgba(200, 183, 156, 0.06); }
  .tv-ct-rows__row:hover .tv-ct-rows__go { transform: translateX(4px); color: var(--hb-champagne); }
}

/* ---------------------------------------------------------------------
   CT 4. INVOICING: text left, the statement as a paper sheet right
   ------------------------------------------------------------------- */
.tv-ct-inv__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 5vw, 5.5rem); align-items: center; }
.tv-ct-inv__text .hb-heading { font-size: clamp(2.2rem, 1.6rem + 2.2vw, 3.4rem); line-height: 1.06; }
.tv-ct-inv__text p:not(.art-prose__lead) { font-size: 1rem; }
.tv-ct-sheet { margin: 0; min-width: 0; }
.tv-ct-sheet__paper { background: #fff; border: 1px solid var(--hb-line); box-shadow: var(--ct-shadow); padding: clamp(1.5rem, 3vw, 2.75rem) clamp(1.25rem, 3vw, 2.75rem) clamp(1.25rem, 2.4vw, 2rem); }
.tv-ct-sheet__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem 2rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--hb-gold); }
.tv-ct-sheet__logo { display: block; width: auto; height: 2.6rem; }
.tv-ct-sheet__head p { margin: 0; text-align: right; }
.tv-ct-sheet__kicker { display: block; margin-bottom: 0.4rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-ct-sheet__title { display: block; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.2; color: var(--hb-ink); }
.tv-ct-sheet__scroll { overflow-x: auto; }
.tv-ct-sheet__scroll:focus-visible { outline: 2px solid var(--tv-brass-text); outline-offset: 4px; }
.tv-ct-sheet__table { width: 100%; min-width: 31rem; border-collapse: collapse; font-family: var(--hb-sans); }
.tv-ct-sheet__table th, .tv-ct-sheet__table td { padding: 1rem 1rem 1rem 0; text-align: left; vertical-align: top; }
.tv-ct-sheet__table thead th { padding-top: 1.1rem; padding-bottom: 0.7rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--hb-text-dim); border-bottom: 1px solid var(--hb-text); }
.tv-ct-sheet__table tbody tr { border-bottom: 1px solid var(--hb-line); }
.tv-ct-sheet__table tbody th { padding-top: 1.2rem; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; white-space: nowrap; color: var(--tv-brass-text); }
.tv-ct-sheet__table td { font-size: 0.88rem; line-height: 1.6; color: var(--hb-text-dim); }
.tv-ct-sheet__table td b { display: block; font-family: var(--hb-serif); font-weight: 500; font-size: 1.18rem; line-height: 1.25; color: var(--hb-ink); }
.tv-ct-sheet__table td span:not(.tv-ct-sr) { display: block; margin-top: 0.25rem; font-size: 0.78rem; color: var(--hb-ink); }
.tv-ct-sheet__table thead th:first-child { width: 4.6rem; }
.tv-ct-sheet__table thead th:nth-child(2) { width: 36%; }
.tv-ct-sheet__table .tv-ct-sheet__num { width: 5.5rem; padding-right: 0; text-align: right; }
.tv-ct-sheet__num i { display: inline-block; width: 3.5rem; height: 0; margin-top: 0.85rem; border-bottom: 1px solid rgba(41, 39, 37, 0.4); }   /* a blank rule where a figure would be */
.tv-ct-sheet__table tfoot td { padding-top: 1.15rem; padding-bottom: 0.5rem; border-top: 1px solid var(--hb-text); font-family: var(--hb-serif); font-style: italic; font-size: 1.1rem; line-height: 1.4; }
.tv-ct-sheet__table tfoot i { width: 4.5rem; border-bottom: 3px double rgba(41, 39, 37, 0.55); }
.tv-ct-sheet figcaption { margin-top: 1.15rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.6; text-transform: uppercase; color: var(--hb-text-dim); }

/* ---------------------------------------------------------------------
   CT 5. DUTY OF CARE: five columns, an icon over each, hairlines between
   ------------------------------------------------------------------- */
.tv-ct-duty__intro { max-width: 46rem; margin-bottom: clamp(2.25rem, 4vw, 3.5rem); }
.tv-ct-duty__intro .hb-heading { font-size: clamp(2.2rem, 1.6rem + 2.2vw, 3.4rem); line-height: 1.05; }
.tv-ct-duty__intro .hb-copy { color: rgba(244, 240, 232, 0.86); }
.tv-ct-five { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair-dark); }
.tv-ct-five li { padding: clamp(1.6rem, 2.6vw, 2.25rem) clamp(1rem, 1.7vw, 1.6rem) 0.25rem; border-left: 1px solid var(--hb-line-on-dark); }
.tv-ct-five li:first-child { padding-left: 0; border-left: 0; }
.tv-ct-five li:last-child { padding-right: 0; }
.tv-ct-five svg { display: block; width: 2.25rem; height: 2.25rem; margin-bottom: 1.25rem; color: var(--hb-champagne); }
.tv-ct-five__tag { display: block; margin-bottom: 0.45rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-champagne); }
.tv-ct-five h3 { margin: 0 0 0.7rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.35rem, 1.1rem + 0.7vw, 1.65rem); line-height: 1.15; color: #fff; }
.tv-ct-five p { margin: 0; font-size: 0.95rem; line-height: 1.7; color: rgba(244, 240, 232, 0.84); }
.tv-ct-five a { font-weight: 500; color: var(--hb-champagne); border-bottom: 1px solid rgba(200, 183, 156, 0.6); transition: color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease); }
.tv-ct-five a:hover, .tv-ct-five a:focus-visible { color: #fff; border-color: #fff; }
.tv-ct-five a:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }

/* ---------------------------------------------------------------------
   CT 6. ORGANISATIONS: the names as text, three groups on one white panel
   ------------------------------------------------------------------- */
.tv-ct-orgs__title { max-width: 13em; margin: 0 0 clamp(2rem, 3.6vw, 3rem); font-size: clamp(2rem, 1.5rem + 2vw, 3.1rem); line-height: 1.06; text-wrap: balance; }
.tv-ct-orgs__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.3fr); margin: 0; padding: 0; list-style: none; background: #fff; border: 1px solid var(--hb-line); border-top: 1px solid var(--hb-gold); box-shadow: var(--ct-shadow); }
.tv-ct-orgs__group { padding: clamp(1.75rem, 3vw, 2.75rem); border-left: 1px solid var(--hb-line); }
.tv-ct-orgs__group:first-child { border-left: 0; }
.tv-ct-orgs__group h3 { margin: 0 0 1.1rem; font-family: var(--hb-sans); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.22em; line-height: 1.5; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-ct-orgs__group ul { margin: 0; padding: 0; list-style: none; }
.tv-ct-orgs__group li { padding: 0.5rem 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.4rem, 1.15rem + 0.8vw, 1.9rem); line-height: 1.15; color: var(--hb-ink); }
.tv-ct-orgs__group li span { display: block; margin-top: 0.25rem; font-family: var(--hb-sans); font-weight: 400; font-size: 0.82rem; line-height: 1.5; letter-spacing: 0.01em; color: var(--hb-text-dim); }

/* ---------------------------------------------------------------------
   CT 7. FAQ on ink: button + aria-expanded; the plus loses its upright
   ------------------------------------------------------------------- */
.tv-ct-faq .tv-faq__head .hb-eyebrow { color: var(--hb-champagne); }
.tv-ct-acc { border-top: 1px solid var(--ta-hair-dark); }
.tv-ct-acc__item { border-bottom: 1px solid var(--hb-line-on-dark); }
.tv-ct-acc h3 { margin: 0; font: inherit; }
.tv-ct-acc button {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; width: 100%; min-height: 4rem; padding: 1.1rem 0;
  background: none; border: 0; border-radius: 0; text-align: left; cursor: pointer;
  font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.2rem, 1.05rem + 0.5vw, 1.5rem); line-height: 1.3; color: var(--hb-white);
  transition: color 0.25s var(--hb-ease);
}
.tv-ct-acc button::after {
  content: ""; flex: 0 0 1rem; height: 1rem;
  background:
    linear-gradient(var(--hb-champagne), var(--hb-champagne)) center / 100% 1.5px no-repeat,
    linear-gradient(var(--hb-champagne), var(--hb-champagne)) center / 1.5px 100% no-repeat;
  transition: background-size 0.3s var(--hb-ease);
}
.tv-ct-acc button[aria-expanded="true"]::after { background-size: 100% 1.5px, 1.5px 0; }
.tv-ct-acc button:hover { color: var(--hb-champagne); }
.tv-ct-acc button:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 2px; }
/* Open and close on a grid row, so the height animates; a closed panel stays out of the tab order and the accessibility tree */
.tv-ct-acc__panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows 0.35s var(--hb-ease), visibility 0s; }
.tv-ct-acc__panel[hidden] { display: grid !important; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows 0.35s var(--hb-ease), visibility 0s 0.35s; }
.tv-ct-acc__panel > div { min-height: 0; overflow: hidden; }
.tv-ct-acc__panel p { margin: 0; padding: 0 3rem 1.6rem 0; max-width: 66ch; font-size: 1rem; line-height: 1.75; color: rgba(244, 240, 232, 0.84); }
.tv-ct-acc__panel a { color: var(--hb-champagne); border-bottom: 1px solid rgba(200, 183, 156, 0.6); }
.tv-ct-acc__panel a:hover, .tv-ct-acc__panel a:focus-visible { color: #fff; border-color: #fff; }

/* ---------------------------------------------------------------------
   CT 8. CLOSE on ivory: the terrace photograph runs off the left edge at
   the full height of the section; copy in the middle, the form right
   ------------------------------------------------------------------- */
.tv-ct-close { --ct-bleed: calc(max(0px, (100vw - 1280px) / 2) + clamp(1.25rem, 4vw, 2.5rem)); --ct-close-y: clamp(3.5rem, 6vw, 6rem); padding: 0; overflow: hidden; }
.tv-ct-close__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); }
.tv-ct-close__media { grid-column: 1 / span 3; position: relative; margin: 0 0 0 calc(-1 * var(--ct-bleed)); min-height: 34rem; overflow: hidden; background: var(--tv-ivory-deep); }
.tv-ct-close__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 66% 50%; }   /* the feluccas stay in the tall crop */
.tv-ct-close__copy { grid-column: 4 / span 4; padding: var(--ct-close-y) 0 var(--ct-close-y) clamp(0.75rem, 2.4vw, 2.5rem); }
.tv-ct-close__copy .hb-heading { font-size: clamp(2rem, 1.5rem + 1.8vw, 2.9rem); line-height: 1.06; text-wrap: balance; }
.tv-ct-close__copy .hb-copy { margin-bottom: 1.5rem; color: var(--hb-text); }
.tv-ct-close__copy .hb-link:hover, .tv-ct-close__copy .hb-link:focus-visible { color: var(--tv-brass-text); border-color: var(--tv-brass-text); }
.tv-ct-contact { margin-top: 1.75rem; padding-top: 1.1rem; border-top: 1px solid var(--ta-hair); }
.tv-ct-contact a { color: var(--hb-text); }
.tv-ct-contact .bi { color: var(--tv-brass-text); }
.tv-ct-contact a:hover, .tv-ct-contact a:focus-visible { color: var(--tv-brass-text); }
.tv-ct-contact a:focus-visible { outline-color: var(--tv-brass-text); }

.tv-ct-form { grid-column: 8 / -1; align-self: center; padding: var(--ct-close-y) 0; gap: 1.4rem clamp(1rem, 2vw, 1.75rem); }
.tv-ct-form .art-form__field { justify-content: flex-end; }   /* inputs stay level when a label wraps */
.tv-ct-form label { color: var(--tv-brass-text); }
.tv-ct-form label i { color: var(--hb-text-dim); }
.tv-ct-form input, .tv-ct-form select, .tv-ct-form textarea { color: var(--hb-ink); border-bottom-color: rgba(41, 39, 37, 0.42); }
.tv-ct-form select { background-image: linear-gradient(45deg, transparent 50%, var(--tv-brass-text) 50%), linear-gradient(135deg, var(--tv-brass-text) 50%, transparent 50%); }
.tv-ct-form input::placeholder, .tv-ct-form textarea::placeholder { font-size: 0.9rem; color: rgba(92, 86, 76, 0.85); }
.tv-ct-form input:hover, .tv-ct-form select:hover, .tv-ct-form textarea:hover { border-bottom-color: var(--hb-ink); }
.tv-ct-form input:focus-visible, .tv-ct-form select:focus-visible, .tv-ct-form textarea:focus-visible { outline-color: var(--tv-brass-text); }
.tv-ct-form input:user-invalid, .tv-ct-form select:user-invalid { border-bottom-color: #a4442f; }
@supports (appearance: base-select) {
  .tv-ct-form select { background-image: none; }
  .tv-ct-form select::picker-icon { border-color: var(--tv-brass-text); }
}
.tv-ct-form .art-form__submit { margin-top: 0.6rem; }
.tv-ct-form .tv-ct-btn { padding: 0 2.25rem; }
.tv-ct-form .tv-ct-btn:hover, .tv-ct-form .tv-ct-btn:focus-visible { background: var(--hb-ink); border-color: var(--hb-ink); color: var(--hb-ivory); }
.tv-ct-form .tv-ct-btn:focus-visible { outline-color: var(--tv-brass-text); }
.tv-ct-form .tv-ct-btn:disabled { opacity: 0.6; cursor: progress; }
.tv-ct-form .art-form__status { color: var(--tv-brass-text); }
.tv-ct-form .art-form__status[data-state="error"] { color: #a4442f; }
.tv-ct-form .art-form__status:empty { display: none; }

/* ---------------------------------------------------------------------
   CT RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-ct-hero .tv-ta-hero__lead { grid-column: 1 / span 6; }
  .tv-ct-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 0; }
  .tv-ct-strip > div { padding: 1rem 1rem 1rem 1.25rem; }
  .tv-ct-strip > div:nth-child(3n+1) { padding-left: 0; border-left: 0; }
  .tv-ct-strip > div:nth-child(-n+3) { border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-ct-facts { padding: 0.5rem 0; }

  /* Close: the photograph keeps the left; copy, then the form, beside it */
  .tv-ct-close__media { grid-column: 1 / span 4; grid-row: 1 / span 2; }
  .tv-ct-close__copy { grid-column: 5 / -1; padding-bottom: 0; }
  .tv-ct-form { grid-column: 5 / -1; padding-top: 2.5rem; padding-left: clamp(0.75rem, 2.4vw, 2.5rem); }
}

@media (max-width: 1023.98px) {
  /* Hero: photograph on top, then title, the answer and the two actions on solid ink */
  .tv-ct-hero { min-height: 0; }
  .tv-ct-hero .tv-ta-hero__media img { object-position: 22% 50%; }
  .tv-ct-hero .tv-ta-hero__inner { padding-bottom: clamp(2.5rem, 6vw, 3.5rem); }
  .tv-ct-hero .tv-ta-hero__lead { padding-bottom: 0; }

  .tv-ct-incl__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-ct-incl__head .hb-heading { max-width: none; }
  .tv-ct-incl__body { padding-top: 0; }
  /* The sheet becomes three rows, the icon beside each */
  .tv-ct-trio { grid-template-columns: minmax(0, 1fr); }
  .tv-ct-trio li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: 1.25rem; padding: 1.6rem clamp(1.25rem, 3vw, 2rem); border-left: 0; border-top: 1px solid var(--hb-line); }
  .tv-ct-trio li:first-child { border-top: 0; }
  .tv-ct-trio svg { grid-row: 1 / span 2; margin: 0.1rem 0 0; }
  .tv-ct-trio h3, .tv-ct-trio p { grid-column: 2; }
  .tv-ct-trio p { max-width: 58ch; }

  .tv-ct-acct .tv-ta-brief__media img { object-position: 50% 30%; }
  .tv-ct-acct__intro { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ct-acct__intro .hb-heading { max-width: none; }
  .tv-ct-rows__row { grid-template-columns: 2.5rem minmax(0, 1fr) 1.25rem; padding-left: 0; padding-right: 0; }
  .tv-ct-rows__row p { grid-column: 2; }
  .tv-ct-rows__go { grid-column: 3; grid-row: 1; }

  .tv-ct-inv__grid { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .tv-ct-sheet { max-width: 46rem; }

  /* Five columns become five rows, the icon beside each */
  .tv-ct-five { grid-template-columns: minmax(0, 1fr); }
  .tv-ct-five li, .tv-ct-five li:first-child, .tv-ct-five li:last-child { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: 1.25rem; padding: 1.5rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-ct-five li:last-child { border-bottom: 0; padding-bottom: 0; }
  .tv-ct-five svg { grid-row: 1 / span 3; margin: 0.15rem 0 0; }
  .tv-ct-five__tag, .tv-ct-five h3, .tv-ct-five p { grid-column: 2; }
  .tv-ct-five p { max-width: 58ch; font-size: 1rem; }

  /* Close: the photograph as a band across the top, then copy and the form */
  .tv-ct-close__grid { display: block; padding-bottom: var(--ct-close-y); }
  .tv-ct-close__media { margin: 0 calc(-1 * var(--ct-bleed)); min-height: 0; aspect-ratio: 21 / 9; }
  .tv-ct-close__media img { object-position: 50% 62%; }
  .tv-ct-close__copy { padding: clamp(2.5rem, 6vw, 3.5rem) 0 0; }
  .tv-ct-form { padding: 2.5rem 0 0; }
}

@media (max-width: 767.98px) {
  .tv-ct-hero .tv-ta-hero__media img { object-position: center; }
  .tv-ct-hero .tv-ta-hero__title { max-width: none; font-size: clamp(2.5rem, 1.5rem + 5vw, 3.1rem); }
  .tv-ct-hero__actions .tv-ct-btn { flex: 1 1 100%; }
  /* The strip wraps to two columns, three rows */
  .tv-ct-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-ct-strip > div, .tv-ct-strip > div:nth-child(3n+1) { grid-template-columns: 1.9rem minmax(0, 1fr); column-gap: 0.7rem; padding: 1rem 0.5rem 1rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-ct-strip > div:nth-child(even) { padding-left: 0.9rem; padding-right: 0; border-left: 1px solid var(--hb-line-on-dark); }
  .tv-ct-strip > div:nth-last-child(-n+2) { border-bottom: 0; }
  .tv-ct-strip svg { width: 1.9rem; height: 1.9rem; }
  .tv-ct-strip dt { letter-spacing: 0.16em; }

  .tv-ct-trio li { grid-template-columns: 2.1rem minmax(0, 1fr); column-gap: 1rem; padding: 1.5rem 1.15rem; }
  .tv-ct-trio svg { width: 2.1rem; height: 2.1rem; }

  .tv-ct-rows__row { grid-template-columns: 2.1rem minmax(0, 1fr); column-gap: 1rem; }
  .tv-ct-rows__icon { width: 2.1rem; height: 2.1rem; align-self: start; margin-top: 0.2rem; }
  .tv-ct-rows__go { display: none; }

  .tv-ct-sheet__paper { padding: 1.4rem 1.15rem 1.15rem; }
  .tv-ct-sheet__head { flex-direction: column; }
  .tv-ct-sheet__head p { text-align: left; }
  .tv-ct-sheet__logo { height: 2.2rem; }

  .tv-ct-five li, .tv-ct-five li:first-child, .tv-ct-five li:last-child { grid-template-columns: 2.1rem minmax(0, 1fr); column-gap: 1rem; }
  .tv-ct-five svg { width: 2.1rem; height: 2.1rem; }

  .tv-ct-orgs__panel { grid-template-columns: minmax(0, 1fr); }
  .tv-ct-orgs__group { padding: 1.5rem 1.15rem; border-left: 0; border-top: 1px solid var(--hb-line); }
  .tv-ct-orgs__group:first-child { border-top: 0; }

  .tv-ct-acc__panel p { padding-right: 0; }

  .tv-ct-close__media { aspect-ratio: 4 / 3; }
  .tv-ct-form .tv-ct-btn { width: 100%; }
  body.tv-ta.tv-ct main { background: var(--hb-ivory); }   /* the room left for the fixed contact bar matches the close */
}

@media (prefers-reduced-motion: reduce) {
  .tv-ct-btn, .tv-ct-rows__row, .tv-ct-rows__go, .tv-ct-five a, .tv-ct-acc button, .tv-ct-acc button::after, .tv-ct-acc__panel, .tv-ct-acc__panel[hidden] { transition: none !important; }
  .tv-ct-rows__row:hover .tv-ct-rows__go { transform: none !important; }
}


/* =====================================================================
   DMC partners   (/partner/egypt-dmc-partners/)   Prefix: tv-dp-
   body: tv-over-hero tv-ta tv-dp. Built from docs/design/dmc-partners-mockup.png.
   Reuses .tv-ta-hero + .tv-ct-hero (ink left, photograph right), .tv-ct-btn,
   .tv-ct-facts (the band under the hero), .tv-faq + .hb-faq (native
   details), .tv-td-contact and .art-enquiry + .art-form. No script is added.
   Egypt comes from the photography and the relief map: no ornament.
   Rhythm: hero (ink + photograph) and the six figures -> ivory, two sheets
           -> sand, the map off the left edge -> white, four counted parts
           -> ink, photograph and four rows -> ivory FAQ -> ink, the form.

   Components:
     .tv-dp-stats    six figures on solid ink, numeral over label
     .tv-dp-pair     two equal sheets (.tv-dp-card: photograph + ticked list)
     .tv-dp-map      relief map plate bleeding left, fading right (+ .tv-dp-pin)
     .tv-dp-hot      hotspot over a pin (data-pin), lit with its row
     .tv-dp-row      a place as a row: thumbnail, name, one line (data-place)
     .tv-dp-quad     four counted parts, 2 x 2 on hairlines
     .tv-dp-rows     name left, text right, hairlines between, on ink
     .tv-dp-form     .art-form with a hairline down its left edge
   ===================================================================== */
.tv-dp {
  --dp-ground: #F2E9DB;          /* the sand the map artwork fades into */
  --dp-pin: #C9A24D;             /* the artwork's own pin gold */
  --dp-error: #F0A892;           /* invalid field / error text on ink: 9:1 */
  --dp-bleed: calc(max(0px, (100vw - 1280px) / 2) + clamp(1.25rem, 4vw, 2.5rem));
  --dp-shadow: 0 30px 60px -38px rgba(41, 39, 37, 0.38), 0 2px 6px rgba(41, 39, 37, 0.04);
  --dp-h2: clamp(2.2rem, 1.6rem + 2.2vw, 3.4rem);
}
.tv-dp .hb-section--ivory .hb-eyebrow, .tv-dp .hb-section--white .hb-eyebrow, .tv-dp-cover .hb-eyebrow { color: var(--tv-brass-text); }
.tv-dp main section[id] { scroll-margin-top: 4.5rem; }
.tv-dp-intro { max-width: 46rem; margin-bottom: clamp(2.25rem, 4vw, 3.5rem); }
.tv-dp-intro .hb-heading { font-size: var(--dp-h2); line-height: 1.06; text-wrap: balance; }

/* ---------------------------------------------------------------------
   DP 1. HERO: ink left, the Nile ship at dusk right; six figures beneath
   ------------------------------------------------------------------- */
.tv-dp-hero .tv-ta-hero__title { max-width: 7.6em; }
.tv-dp-hero .art-named { margin-top: 1.25rem; }
.tv-dp-hero .tv-ct-hero__answer { max-width: 31rem; }
@media (min-width: 1024px) {
  .tv-dp-hero .tv-ta-hero__media img { object-position: 74% 50%; }   /* the ship sits right of the text, the column closes the frame */
}
.tv-dp-facts { padding: clamp(1.75rem, 2.8vw, 2.5rem) 0; }
.tv-dp-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0; }
.tv-dp-stats > div { display: flex; flex-direction: column-reverse; align-items: center; gap: 0.6rem; padding: 0.2rem 0.75rem; text-align: center; border-left: 1px solid var(--hb-line-on-dark); }
.tv-dp-stats > div:first-child { border-left: 0; }
.tv-dp-stats dd { margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(2.5rem, 1.8rem + 2vw, 3.6rem); line-height: 0.95; font-variant-numeric: lining-nums; color: var(--hb-champagne); }
.tv-dp-stats dt { margin: 0; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.5; text-transform: uppercase; color: rgba(244, 240, 232, 0.86); }

/* ---------------------------------------------------------------------
   DP 2. TWO RELATIONSHIPS: two equal sheets, photograph left, list right
   ------------------------------------------------------------------- */
.tv-dp-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ta-gap); }
.tv-dp-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); background: #fff; border: 1px solid var(--hb-line); border-top-color: var(--hb-gold); box-shadow: var(--dp-shadow); }
.tv-dp-card__media { position: relative; min-height: 19rem; overflow: hidden; background: var(--tv-ivory-deep); }
.tv-dp-card__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.tv-dp-card + .tv-dp-card .tv-dp-card__media img { object-position: 30% 50%; }   /* the guide's raised arm stays in the tall crop */
.tv-dp-card__body { align-self: center; padding: clamp(1.6rem, 2.6vw, 2.5rem) clamp(1.4rem, 2.4vw, 2.25rem); }
.tv-dp-card__role { margin: 0 0 0.65rem; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.5; text-transform: uppercase; color: var(--tv-brass-text); }
.tv-dp-card h3 { margin: 0 0 1.2rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.55rem, 1.25rem + 0.9vw, 2.05rem); line-height: 1.1; color: var(--hb-ink); }
.tv-dp-card h3 a { color: inherit; border-bottom: 1px solid var(--hb-gold); transition: color 0.25s var(--hb-ease); }
.tv-dp-card h3 a:hover, .tv-dp-card h3 a:focus-visible { color: var(--tv-brass-text); }
.tv-dp-card h3 a:focus-visible { outline: 2px solid var(--tv-brass-text); outline-offset: 3px; }
.tv-dp-card ul { display: grid; gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.tv-dp-card li { position: relative; padding-left: 1.95rem; font-size: 0.95rem; line-height: 1.55; color: var(--hb-text); }
.tv-dp-card li::before {
  content: ""; position: absolute; left: 0; top: 0.16em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
  background: var(--hb-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.2 8.3l2.6 2.5 5-5.4'/%3E%3C/svg%3E") center / 0.72rem no-repeat;
}

/* ---------------------------------------------------------------------
   DP 3. COVERAGE: the relief map runs off the left edge and dissolves
   into the sand; the places sit over the fade, by region
   ------------------------------------------------------------------- */
.tv-dp-cover { background: var(--dp-ground); overflow-x: clip; }
.tv-dp-geo { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--ta-gap); align-items: start; }
.tv-dp-map { grid-column: 1 / span 7; grid-row: 1; position: sticky; top: 6.5rem; margin: 0 0 0 calc(-1 * var(--dp-bleed)); }
.tv-dp-map__plate { position: relative; container-type: inline-size; -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 74%, transparent 95%); mask-image: linear-gradient(90deg, #000 0%, #000 74%, transparent 95%); }
.tv-dp-map__plate img { display: block; width: 100%; height: auto; }
.tv-dp-map figcaption { display: none; margin: 0.9rem 0 0; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; line-height: 1.6; text-transform: uppercase; color: var(--hb-text-dim); }   /* the artwork carries the caption at desktop sizes */
/* Pins drawn over the artwork, in its own hand: the point of the pin sits on --x / --y */
.tv-dp-pin {
  position: absolute; left: var(--x); top: var(--y); display: flex; align-items: center; gap: 0.5em; transform: translate(-0.5em, -100%);
  font-family: var(--hb-serif); font-weight: 500; font-size: 2.15cqw; line-height: 1; white-space: nowrap; color: #fff; pointer-events: none;
  text-shadow: 0 0 0.5em rgba(20, 14, 6, 0.75), 0 0.05em 0.14em rgba(20, 14, 6, 0.9);
}
.tv-dp-pin::before {
  content: ""; flex: 0 0 1em; height: 1.42em; filter: drop-shadow(0 0.1em 0.14em rgba(20, 14, 6, 0.55));
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 34'%3E%3Cpath d='M12 33.5S1.5 19.6 1.5 11.8a10.5 10.5 0 1 1 21 0C22.5 19.6 12 33.5 12 33.5z' fill='%23C9A24D'/%3E%3Ccircle cx='12' cy='11.8' r='4.1' fill='%232A2012'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* A label set left of its pin, where the artwork has no room on the right */
.tv-dp-pin--left { flex-direction: row-reverse; transform: translate(calc(-100% + 0.5em), -100%); }
/* Hotspots: one over each pin head; a ring shows on hover, focus, or when its row in the list is active */
.tv-dp-hot { position: absolute; left: var(--x); top: var(--y); z-index: 1; width: max(24px, 3.9cqw); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; }
.tv-dp-hot::after {
  content: ""; position: absolute; inset: 10%; border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 7px rgba(255, 255, 255, 0.3), 0 0 1.2rem rgba(20, 14, 6, 0.5);
  opacity: 0; transform: scale(0.55); transition: opacity 0.25s var(--hb-ease), transform 0.25s var(--hb-ease);
}
.tv-dp-hot:hover::after, .tv-dp-hot.is-active::after, .tv-dp-hot:focus-visible::after { opacity: 1; transform: scale(1); }
.tv-dp-hot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* The places: three groups of rows; the whole row is the link to its destination page */
.tv-dp-places { grid-column: 8 / -1; grid-row: 1; position: relative; z-index: 1; }
.tv-dp-group + .tv-dp-group { margin-top: clamp(2.25rem, 3.6vw, 3.25rem); }
.tv-dp-group__name { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0; padding-bottom: 0.7rem; border-bottom: 1px solid var(--hb-text); font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.5rem, 1.3rem + 0.6vw, 1.75rem); line-height: 1.3; color: var(--hb-ink); }
.tv-dp-group__name span { font-family: var(--hb-sans); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; color: var(--tv-brass-text); }
.tv-dp-list { margin: 0; padding: 0; list-style: none; }
.tv-dp-row { position: relative; display: grid; grid-template-columns: 5.5rem minmax(0, 1fr) 1.25rem; align-items: center; gap: 0 1.1rem; padding: 0.85rem 0.5rem 0.85rem 0; border-bottom: 1px solid var(--hb-line); transition: background-color 0.3s var(--hb-ease); }
.tv-dp-row img { display: block; width: 5.5rem; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--tv-ivory-deep); }
.tv-dp-row h4 { margin: 0 0 0.15rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); line-height: 1.3; }
.tv-dp-row h4 a { color: var(--hb-ink); background: linear-gradient(var(--hb-gold), var(--hb-gold)) 0 100% / 0 1px no-repeat; transition: background-size 0.45s var(--hb-ease); }
.tv-dp-row h4 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tv-dp-row h4 a:focus-visible { outline: none; }
.tv-dp-row:focus-within { outline: 2px solid var(--tv-brass-text); outline-offset: 2px; }
.tv-dp-row p { margin: 0; font-size: 0.875rem; line-height: 1.5; color: var(--hb-text-dim); }
.tv-dp-row__go { color: var(--hb-ink); transition: transform 0.25s var(--hb-ease), color 0.25s var(--hb-ease); }
.tv-dp-row:hover, .tv-dp-row.is-active { background: rgba(255, 253, 248, 0.7); }
.tv-dp-row:hover h4 a, .tv-dp-row.is-active h4 a { background-size: 100% 1px; }
.tv-dp-row:hover .tv-dp-row__go, .tv-dp-row.is-active .tv-dp-row__go { transform: translateX(4px); color: var(--tv-brass-text); }
.tv-dp-cover__note { margin-top: clamp(2rem, 3.5vw, 3rem); max-width: 62ch; color: var(--hb-text); }
.tv-dp-cover__note a:hover, .tv-dp-cover__note a:focus-visible { color: var(--tv-brass-text); }

/* ---------------------------------------------------------------------
   DP 4. SUB-CONTRACTED DELIVERY: heading left, four counted parts right
   ------------------------------------------------------------------- */
.tv-dp-deliv__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 2.5rem clamp(2rem, 5vw, 5.5rem); align-items: start; }
.tv-dp-deliv__head .hb-heading { max-width: 7em; margin: 0 0 1.4rem; font-size: var(--dp-h2); line-height: 1.06; }
.tv-dp-deliv__lead { margin: 0; max-width: 24ch; font-family: var(--hb-serif); font-weight: 400; font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.65rem); line-height: 1.35; color: var(--hb-ink-soft); }
.tv-dp-quad { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair); }
.tv-dp-quad li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: clamp(1rem, 1.8vw, 1.6rem); align-items: start; padding: clamp(1.75rem, 2.8vw, 2.5rem) clamp(1.25rem, 2.4vw, 2.25rem) clamp(1.75rem, 2.8vw, 2.5rem) 0; }
.tv-dp-quad li:nth-child(even) { padding-left: clamp(1.25rem, 2.4vw, 2.25rem); padding-right: 0; border-left: 1px solid var(--hb-line); }
.tv-dp-quad li:nth-child(-n+2) { border-bottom: 1px solid var(--hb-line); }
.tv-dp-quad__n { font-family: var(--hb-serif); font-weight: 400; font-size: clamp(2.6rem, 2rem + 1.8vw, 3.6rem); line-height: 0.86; font-variant-numeric: lining-nums; color: var(--hb-gold); }
.tv-dp-quad h3 { margin: 0 0 0.6rem; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.7rem); line-height: 1.15; color: var(--hb-ink); }
.tv-dp-quad p { margin: 0; font-size: 0.96rem; line-height: 1.72; color: var(--hb-text-dim); }
.tv-dp-quad a { color: var(--tv-brass-text); font-weight: 500; border-bottom: 1px solid var(--hb-gold); transition: color 0.25s var(--hb-ease); }
.tv-dp-quad a:hover, .tv-dp-quad a:focus-visible { color: var(--hb-ink); }
.tv-dp-quad a:focus-visible { outline: 2px solid var(--tv-brass-text); outline-offset: 3px; }

/* ---------------------------------------------------------------------
   DP 5. STANDARDS on ink: photograph left, heading and four rows right.
   The heading keeps its own line box (nothing clips or overlaps it).
   ------------------------------------------------------------------- */
.tv-dp-std__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 5vw, 5rem); align-items: start; }
.tv-dp-std__plate { margin: 0; }
.tv-dp-std__media { aspect-ratio: 1 / 1; overflow: hidden; background: var(--hb-ink-soft); }
.tv-dp-std__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 49% 50%; }
.tv-dp-std__plate figcaption { margin-top: 0.85rem; padding-top: 0.75rem; border-top: 1px solid var(--hb-line-on-dark); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(244, 240, 232, 0.78); }
.tv-dp-std__body .hb-heading { margin: 0 0 1.1rem; font-size: var(--dp-h2); line-height: 1.1; text-wrap: balance; overflow: visible; }
.tv-dp-std__body .hb-copy { max-width: 36rem; margin: 0 0 clamp(2rem, 3.5vw, 3rem); color: rgba(244, 240, 232, 0.86); }
.tv-dp-rows { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ta-hair-dark); }
.tv-dp-rows li { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0.75rem clamp(1.25rem, 2.6vw, 2.5rem); padding: clamp(1.3rem, 2vw, 1.75rem) 0; border-bottom: 1px solid var(--hb-line-on-dark); }
.tv-dp-rows__tag { display: block; margin-bottom: 0.4rem; font-size: 0.62rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--hb-champagne); }
.tv-dp-rows h3 { margin: 0; font-family: var(--hb-serif); font-weight: 500; font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.7rem); line-height: 1.15; color: #fff; }
.tv-dp-rows p { margin: 0; font-size: 0.96rem; line-height: 1.7; color: rgba(244, 240, 232, 0.84); }
.tv-dp-rows a { color: var(--hb-champagne); border-bottom: 1px solid rgba(200, 183, 156, 0.6); transition: color 0.25s var(--hb-ease), border-color 0.25s var(--hb-ease); }
.tv-dp-rows a:hover, .tv-dp-rows a:focus-visible { color: #fff; border-color: #fff; }
.tv-dp-rows a:focus-visible { outline: 2px solid var(--hb-champagne); outline-offset: 3px; }

/* ---------------------------------------------------------------------
   DP 6. FAQ on ivory: native details; the plus loses its upright when open
   ------------------------------------------------------------------- */
.tv-dp-faq .hb-faq { border-top-color: var(--ta-hair); }
.tv-dp-faq .hb-faq__item > summary::after {
  content: ""; flex: 0 0 1rem; height: 1rem; transform: none;
  background:
    linear-gradient(var(--tv-brass-text), var(--tv-brass-text)) center / 100% 1.5px no-repeat,
    linear-gradient(var(--tv-brass-text), var(--tv-brass-text)) center / 1.5px 100% no-repeat;
  transition: background-size 0.3s var(--hb-ease);
}
.tv-dp-faq .hb-faq__item[open] > summary::after { transform: none; background-size: 100% 1.5px, 1.5px 0; }
.tv-dp-faq .hb-faq__item > summary:focus-visible { outline: 2px solid var(--tv-brass-text); outline-offset: 4px; }
.tv-dp-faq .hb-faq__item p { max-width: 66ch; font-size: 1rem; line-height: 1.75; color: var(--hb-text); }

/* ---------------------------------------------------------------------
   DP 7. CLOSE on ink: copy and contact lines left, the form right
   ------------------------------------------------------------------- */
.tv-dp-close .art-enquiry__head .hb-heading { font-size: clamp(2.1rem, 1.55rem + 2vw, 3.2rem); line-height: 1.06; text-wrap: balance; }
.tv-dp-close .art-enquiry__head .hb-copy { color: rgba(244, 240, 232, 0.86); }
.tv-dp-close .tv-td-contact { max-width: 30rem; margin-top: 1.75rem; padding-top: 1.1rem; border-top: 1px solid var(--hb-line-on-dark); }
.tv-dp-form .art-form__field { justify-content: flex-end; }   /* inputs stay level when a label wraps */
.tv-dp-form label i { color: rgba(244, 240, 232, 0.7); }
.tv-dp-form input::placeholder, .tv-dp-form textarea::placeholder { font-size: 0.9rem; color: rgba(244, 240, 232, 0.6); }
.tv-dp-form input:hover, .tv-dp-form select:hover, .tv-dp-form textarea:hover { border-bottom-color: var(--hb-champagne); }
.tv-dp-form input:user-invalid, .tv-dp-form select:user-invalid, .tv-dp-form textarea:user-invalid { border-bottom-color: var(--dp-error); }
.tv-dp-form .art-form__submit { margin-top: 0.6rem; }
.tv-dp-form .tv-ct-btn { padding: 0 2.25rem; }
.tv-dp-form .tv-ct-btn:disabled { opacity: 0.6; cursor: progress; }
.tv-dp-form .art-form__status[data-state="error"] { color: var(--dp-error); }
.tv-dp-form .art-form__status:empty { display: none; }
@media (min-width: 1024px) {
  .tv-dp-form { padding-left: clamp(2rem, 4.5vw, 4.5rem); border-left: 1px solid var(--hb-line-on-dark); }
  .tv-dp-std__plate { position: sticky; top: 6.5rem; }   /* the photograph keeps the rows company */
}

/* ---------------------------------------------------------------------
   DP RESPONSIVE
   ------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
  .tv-dp-card { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); }
  .tv-dp-map { grid-column: 1 / span 6; }
  .tv-dp-places { grid-column: 7 / -1; }
}

@media (max-width: 1023.98px) {
  .tv-dp-hero .tv-ta-hero__media img { object-position: 72% 50%; }
  /* Six figures: three across, two rows */
  .tv-dp-facts { padding: 0.5rem 0; }
  .tv-dp-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tv-dp-stats > div { padding: 1.4rem 0.75rem; }
  .tv-dp-stats > div:nth-child(3n+1) { border-left: 0; }
  .tv-dp-stats > div:nth-child(-n+3) { border-bottom: 1px solid var(--hb-line-on-dark); }

  /* The two sheets stack; each keeps its photograph on the left */
  .tv-dp-pair { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .tv-dp-card__media { min-height: 16rem; }

  /* Coverage: the map across the full width, then the regions in three columns */
  .tv-dp-geo { display: block; }
  .tv-dp-map { position: static; margin: 0 calc(-1 * var(--dp-bleed)); }
  .tv-dp-map__plate { -webkit-mask-image: none; mask-image: none; }
  .tv-dp-map figcaption { display: block; margin-left: var(--dp-bleed); }
  .tv-dp-places { margin-top: 2.25rem; }

  .tv-dp-deliv__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-dp-deliv__head .hb-heading, .tv-dp-deliv__lead { max-width: none; }

  .tv-dp-std__grid { grid-template-columns: minmax(0, 1fr); }
  .tv-dp-std__media { aspect-ratio: 16 / 9; }
  .tv-dp-std__media img { object-position: 50% 40%; }
}

@media (max-width: 767.98px) {
  .tv-dp-hero .tv-ta-hero__media img { object-position: center; }
  .tv-dp-hero .tv-ta-hero__title { max-width: none; }
  /* Six figures: two across, three rows */
  .tv-dp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-dp-stats > div, .tv-dp-stats > div:nth-child(3n+1) { padding: 1.3rem 0.5rem; border-left: 0; border-bottom: 1px solid var(--hb-line-on-dark); }
  .tv-dp-stats > div:nth-child(even) { border-left: 1px solid var(--hb-line-on-dark); }
  .tv-dp-stats > div:nth-last-child(-n+2) { border-bottom: 0; }
  .tv-dp-stats dt { letter-spacing: 0.16em; }

  /* Sheets: photograph on top */
  .tv-dp-card { grid-template-columns: minmax(0, 1fr); }
  .tv-dp-card__media { min-height: 0; aspect-ratio: 16 / 10; }
  .tv-dp-card__media img, .tv-dp-card + .tv-dp-card .tv-dp-card__media img { object-position: 50% 40%; }
  .tv-dp-card__body { padding: 1.5rem 1.25rem 1.75rem; }

  .tv-dp-row { grid-template-columns: 4.5rem minmax(0, 1fr) 1rem; gap: 0 0.8rem; padding: 0.8rem 0; }
  .tv-dp-row img { width: 4.5rem; }
  .tv-dp-row p { font-size: 0.8125rem; }

  .tv-dp-quad { grid-template-columns: minmax(0, 1fr); }
  .tv-dp-quad li, .tv-dp-quad li:nth-child(even) { padding: 1.6rem 0; border-left: 0; border-bottom: 1px solid var(--hb-line); }
  .tv-dp-quad li:last-child { border-bottom: 0; padding-bottom: 0; }

  .tv-dp-std__media { aspect-ratio: 4 / 3; }
  .tv-dp-rows li { grid-template-columns: minmax(0, 1fr); }

  .tv-dp-form .tv-ct-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .tv-dp-card h3 a, .tv-dp-hot::after, .tv-dp-row, .tv-dp-row h4 a, .tv-dp-row__go, .tv-dp-quad a, .tv-dp-rows a, .tv-dp-faq .hb-faq__item > summary::after { transition: none !important; }
}
