/* ==========================================================================
   SECTION HEADS — one treatment for every section label on the site.

   Two owner decisions land here.

   First, the numbering is gone. "03 — How to prepare" was sequence theatre:
   nothing on the page depended on being third, and a reader who arrived from
   a search result met a number with nothing to count from. The label is now
   just the label, set heavy enough to hold the position the number used to.

   Second, a section heading arrives with its section instead of already being
   there. The record scenes had no entrance at all since the motion engine was
   retired, so the page above them moved and they did not. The entrance is
   gated behind html.arrive-js, set by an inline script in the head, so a
   blocked or slow script leaves every heading visible rather than hidden, and
   nothing flashes before the stylesheet applies.

   The hero is excluded, on the owner's instruction and on the merits: the
   first thing a visitor sees must never wait for an observer.
   ========================================================================== */

/* One eyebrow weight. Manrope carries a real weight axis, so 800 is a drawn
   weight here and not a synthesised smear. */
.record-scene__kicker,
.shelf-head small,
.thread-head small,
.work-in small,
.work-turn > small,
.band-kicker {
  font-weight: 800;
  letter-spacing: .18em;
}
[dir="rtl"] .record-scene__kicker,
[dir="rtl"] .shelf-head small,
[dir="rtl"] .thread-head small,
[dir="rtl"] .work-in small,
[dir="rtl"] .work-turn > small,
[dir="rtl"] .band-kicker { letter-spacing: 0; }

/* The kicker had been sized down to .72rem to sit beside a number. On its own
   it can carry a little more weight on the page. */
.record-scene__kicker { font-size: .78rem; }
@media (min-width: 900px) { .record-scene__kicker { font-size: .82rem; } }

/* ---- what the numbers left behind ----
   Three layouts had reserved a column or a row for the number. Once it was
   gone the copy slid into the number's slot: the counsel index put every
   title into a 54px column, the enquiry steps put theirs into 46px and broke
   one word per line, and the library nodes kept an empty first row. */
/* The counsel index sets its track list eight different ways across the
   service pages and their breakpoints, four of them more specific than
   anything sane written here. Rather than chase that with !important, the two
   remaining children are told to span whatever tracks exist, so the leftover
   number column cannot squeeze a title into 25px however it is sized. */
.counsel-index a > strong,
.counsel-index a > small { grid-column: 1 / -1; }
.enquiry-step > summary { grid-template-columns: minmax(0, 1fr) auto; }
.enquiry-step__more { padding-inline-start: .9rem; }
[dir="rtl"] .enquiry-step__more { padding-inline-start: .9rem; padding-inline-end: .9rem; }
.thinking-node { grid-template-rows: auto auto; }
.thinking-node__label { grid-row: 1; }
.thinking-node__question { grid-row: 2; }
/* The entrance. Only the record scenes are handled here; the rebuilt sections
   stage their own children and already move on arrival. */
@media (prefers-reduced-motion: no-preference) {
  html.arrive-js main > .record-scene:not(.record-scene--hero):not(:first-child) :is(
    .record-scene__kicker,
    .record-scene__heading > h2,
    .record-scene__content > h2,
    .record-scene__heading > h1,
    .record-scene__content > h1
  ) {
    opacity: 0;
    translate: 0 20px;
  }
  /* The two :not()s have to be carried into the reveal rule as well. Without
     them the hide rule is one class more specific and simply wins, and every
     heading on the site stays at opacity 0 for good. */
  html.arrive-js main > .record-scene.in:not(.record-scene--hero):not(:first-child) :is(
    .record-scene__kicker,
    .record-scene__heading > h2,
    .record-scene__content > h2,
    .record-scene__heading > h1,
    .record-scene__content > h1
  ) {
    opacity: 1;
    translate: 0 0;
    transition: opacity .6s ease, translate .75s cubic-bezier(.25, .8, .25, 1);
  }
  html.arrive-js main > .record-scene.in:not(.record-scene--hero):not(:first-child) :is(
    .record-scene__heading > h2,
    .record-scene__content > h2,
    .record-scene__heading > h1,
    .record-scene__content > h1
  ) { transition-delay: .12s; }
}
