/*
 * T09: /maidstone/ band CSS (post 4811 only). Enqueued from
 * inc/bands-maidstone.php behind myth_maid_is_route(), filemtime-versioned.
 *
 * A NEW file on purpose (spec section 20, Vesper's decision recorded in
 * loop/DECISIONS.md): css/myth-bands.css, css/myth-games.css and
 * css/myth-gillingham.css are not edited, extended or promoted into a
 * shared location stylesheet in this task. The shared atoms this file
 * reuses without restyling: .myth-btn and its variants, .myth-card hover,
 * .myth-reveal, .myth-parallax and .myth-band-faq*. Everything else is
 * namespaced myth-maid-*.
 *
 * Palette, spec section 0, no other colour anywhere:
 *   Ink #1C1310 . Charcoal #231F1E . White #FFFFFF . Muted Grey #767676
 *   Gold #D4A94A . Maroon #6E0C01
 * Contrast law (brand.config.json palette.contrastLaws): Gold is never text
 * on a light surface. On the three Parchment bands Gold appears only as a
 * bar, a border or a hairline. Gold IS this page's location accent, so
 * every Maidstone booking button carries the Gold fill. MANUAL-12
 * (2026-09-08) corrects HOW: it used to be .myth-btn--secondary, because
 * Secondary was defined as a Gold fill; it is now
 * .myth-btn--primary .myth-btn--gold, because level is fill weight and
 * tone is a separate axis. The colour is identical, the level is not, and
 * Maroon is still printed on no control on this route. Maroon's only two
 * roles here are Parchment headings and the hover hairline on a Gold fill.
 * Every scrim stop below is taken from the measured table in spec section
 * 0, never from a look.
 *
 * Band padding 96 / 64 / 48 comes from .myth-band in css/myth-bands.css;
 * this file only overrides the side padding so the 390 column is 326px.
 */

/* -----------------------------------------------------------------------
 * 0. Page-wide: type scale, measure, the centring rule, the atoms.
 * --------------------------------------------------------------------- */

.myth-maid-hero,
.myth-maid-open,
.myth-maid-soon,
.myth-maid-faq,
.myth-maid-booking {
  position: relative;
  overflow: hidden;
  padding-left: 32px;
  padding-right: 32px;
}

@media (min-width: 768px) {
  .myth-maid-hero,
  .myth-maid-open,
  .myth-maid-soon,
  .myth-maid-faq,
  .myth-maid-booking {
    padding-left: 64px;
    padding-right: 64px;
  }
}

.myth-maid-open h2,
.myth-maid-open h3,
.myth-maid-soon h2,
.myth-maid-soon h3,
.myth-maid-faq h2,
.myth-maid-booking h2 {
  font-family: "Julius Sans One", sans-serif;
  margin: 0;
  text-align: left;
}

/* Every paragraph on this page is left aligned at every width (law section
   4, spec section 2). MANUAL-18: with the hero scroll cue deleted, the only
   centred text left on the route is the "Coming soon" label in its slot and
   the frozen carousel's own heading; there is no centred paragraph
   anywhere.

   MANUAL-51 (2026-09-14, the user's own instruction): the hero band is now
   the exception, carved out below and centred; every other band named
   here (open, soon, faq, booking) stays exactly as this note describes. */
.myth-maid-open p,
.myth-maid-soon p,
.myth-maid-faq p,
.myth-maid-booking p {
  font-family: Karma, serif;
  font-size: 17px;
  line-height: 1.6;
  margin: 0;
  text-align: left;
}

@media (min-width: 768px) {
  .myth-maid-open p,
  .myth-maid-soon p,
  .myth-maid-faq p,
  .myth-maid-booking p {
    font-size: 18px;
  }
}

/* REVIEW-03 (review A2 and E1, question 1): every eyebrow on this page is
   removed, so the eyebrow atom, its 768 step, its gold bar and its two tone
   modifiers are deleted with the markup they styled. No selector in this
   file targets an eyebrow any more. */

/* Shared inline text link. Ink on Parchment, White on Ink and Poster, both
   with a 2px Gold underline drawn from the left on hover.

   Copied from .myth-gill-link with Fold's pending T08 Gate F2 fix already
   applied: that rule is `display: inline-block` with uncompensated vertical
   padding and produces a doubled line box. This version is `display: inline`
   with no vertical padding and the underline drawn with background-image,
   so the defect is not copied forward and Fold has a working reference. */
.myth-maid-link {
  color: #1C1310;
  font-family: Karma, serif;
  text-decoration: none;
  background-image: linear-gradient(#D4A94A, #D4A94A);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0% 2px;
  transition: background-size 200ms ease;
  display: inline;
  padding: 0;
}

@media (hover: hover) {
  .myth-maid-link:hover {
    background-size: 100% 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .myth-maid-link {
    transition: none;
  }
}

.myth-maid-link:focus-visible {
  outline: 2px solid #1C1310;
  outline-offset: 2px;
}

.myth-maid-link--onink,
.myth-maid-link--onposter {
  color: #FFFFFF;
}

.myth-maid-link--onink:focus-visible,
.myth-maid-link--onposter:focus-visible {
  outline-color: #D4A94A;
}

/* MANUAL-12: the two route-scoped ghost recolours are DELETED. They
   existed because the shared ghost shipped Gold text on a Gold border,
   which is 2.19:1 on Parchment and a second gold element beside a gold
   Book button on the dark bands. The shared atom now carries a REQUIRED
   surface variant (--on-light and --on-dark) that says the same thing once
   for the whole site, and this route's three former ghosts are all
   secondaries now anyway: the two room panels' second action and the
   coming-soon card's, all part of the sitewide card CTA rule. */

/* -----------------------------------------------------------------------
 * 1. Band 1: Hero (Poster). Layered hero, spec section 6.
 * --------------------------------------------------------------------- */

.myth-maid-hero {
  display: flex;
  align-items: flex-end;
  min-height: 560px;
  padding-top: 48px;
  /* MANUAL-18 (user, 2026-09-08), Vesper section 1.3. Was 24px. The deleted
     scroll cue was margin: 24px 0 0 on a 24px line box, so its removal took
     48px out of the hero's inner block; the band does not shrink, because
     it is align-items: flex-end at min-height 560px, so the button simply
     dropped 48px closer to the band's bottom edge and would have landed
     24px off it. A flat 48px foot at every width, which is what
     /gillingham/'s hero uses, and the T09 safe-area allowance for the
     sticky rail is kept. The 768 rule below is already 48px and is
     unchanged. */
  padding-bottom: calc(48px + env(safe-area-inset-bottom, 0px));
  background-color: #1C1310;
}

@media (min-width: 768px) {
  .myth-maid-hero {
    min-height: 520px;
    padding-bottom: 48px;
  }
}

@media (min-width: 1024px) {
  .myth-maid-hero {
    min-height: 640px;
    align-items: center;
  }
}

.myth-maid-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.myth-maid-hero__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* MANUAL-14 (user, 2026-09-08). The video ground, in the same absolute media
   div the plate filled, so the layered composition above it does not move. */
.myth-maid-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* The video floor. The measured worst frame of the clip is pure white (a
   full white flash at 11.41s to 11.78s), so this flat layer sits under the
   text only while the video is the ground. The poster branch keeps its own
   measured values with no floor at all. */
.myth-maid-hero__scrim-video {
  position: absolute;
  inset: 0;
  display: none;
  background-color: rgba(28, 19, 16, 0.30);
}

@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .myth-maid-hero__img {
    display: none;
  }

  .myth-maid-hero__scrim-video {
    display: block;
  }
}

@media (max-width: 767px), (prefers-reduced-motion: reduce) {
  .myth-maid-hero__video {
    display: none;
  }
}

/* Bottom-heavy under 1024: the plate reads across the top of the band and
   every glyph sits at 0.78 or deeper (White 9.57:1).

   MANUAL-14. Restopped for the poster swap, not for the video. The hero
   line's
   top edge sits at 48.7 percent of the band at 390 and at 38.6 percent at
   768. The old ramp put 0.56 and 0.51 there, which held against the antidote
   bg-section plate (brightest pixel L 0.6937) and does NOT hold against
   antidote landscape-untitled, whose brightest pixel is pure white: measured
   4.19:1 for that white line at 390, under the 4.5:1 floor. The new stops
   put 0.772 at 390 (8.85:1) and 0.731 at 768 (7.59:1) while the top fifth of
   the band still opens at 0.30 so the plate reads. */
.myth-maid-hero__scrim-v {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    180deg,
    rgba(28, 19, 16, 0.30) 0%,
    rgba(28, 19, 16, 0.42) 20%,
    rgba(28, 19, 16, 0.72) 36%,
    rgba(28, 19, 16, 0.86) 70%,
    rgba(28, 19, 16, 0.92) 100%
  );
}

.myth-maid-hero__scrim-h {
  position: absolute;
  inset: 0;
  display: none;
}

/* Horizontal from 1024: the hero line's column ends at 56% where the scrim is
   0.73 or deeper (8.1:1) and the H1 column ends at 63% where it is 0.65
   (6.3:1, over the 3:1 large-text floor). */
@media (min-width: 1024px) {
  .myth-maid-hero__scrim-h {
    display: block;
    background-image: linear-gradient(
      90deg,
      rgba(28, 19, 16, 0.88) 0%,
      rgba(28, 19, 16, 0.86) 40%,
      rgba(28, 19, 16, 0.72) 58%,
      rgba(28, 19, 16, 0.4) 78%,
      rgba(28, 19, 16, 0.22) 100%
    );
  }

  .myth-maid-hero__scrim-v {
    display: none;
  }
}

.myth-maid-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* MANUAL-51 (2026-09-14, the user's own instruction): `display: flex;
   flex-direction: column; align-items: center;` added, same technique
   and same reasoning as css/myth-gillingham.css's own identical fix on
   `.myth-gill-hero__content` (both hero content boxes are now centred as
   boxes, not just internally text-aligned); each child's own max-width
   is untouched.

   MANUAL-53 (2026-09-14, the user's own instruction): same incomplete
   fix, same correction, as css/myth-gillingham.css's own identical
   MANUAL-53 comment on `.myth-gill-hero__content`: MANUAL-51 centred
   this row's own contents but never this box within its parent
   (`.myth-maid-hero__inner`), so from 1024 up, where max-width caps at
   66.667%, this box sat flush left instead of centred in the "columns 1
   to 7/8 of 12" composition below. `margin: 0 auto` fixes it at every
   width without touching that composition or either breakpoint's own
   max-width value. */
.myth-maid-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 326px;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .myth-maid-hero__content {
    max-width: 640px;
  }
}

/* H1 in columns 1 to 8, the hero line in columns 1 to 7. Columns 9 to 12 hold
   nothing but picture, and the plate's right edge is the only thing
   reaching the viewport edge on that side. */
@media (min-width: 1024px) {
  .myth-maid-hero__content {
    max-width: 66.667%;
  }
}

/* The hero line is a sentence, not an eyebrow, and it is set at 0,2,1 so
   the page's own `p` rule can never move it. REVIEW-03 renamed it from
   `__kicker` to `__line`: A2 removed eyebrows, and this line is neither
   small, uppercase nor tracked, so its words stayed. REVIEW-10 moved the
   words under the H1 (question 3) and gave the role ONE ladder across both
   location heroes (Vesper sections 1.2 and 1.4).

   Four declarations change and no other: 16px becomes 17px under 768, which
   is the law's body floor and what /gillingham/'s line takes; `padding: 0`
   is REQUIRED because Divi ships `p { padding-bottom: 1em }` and it would
   otherwise add 17 or 18px of dead space above the Book button; the bottom
   margin goes 16px to 32px, the step this role uses on both routes; and the
   max width ladder 326 / 640 / 87.5% becomes 326px under 768 and 52ch from
   768, so the measure is set by the type and not by the column. 18px from
   768 is unchanged. Copy budget for this role: 72 characters.

   MANUAL-51 (2026-09-14): centred, and `font-family` restated. This rule
   never declared its own font-family, relying on the shared
   `.myth-maid-hero p` membership (section 0) for Karma; that membership
   is now removed (the hero is carved out, centred, while every other
   band section 0 still names stays left aligned), so Karma and the
   centring are both stated here directly. */
.myth-maid-hero p.myth-maid-hero__line {
  font-family: Karma, serif;
  font-size: 17px;
  line-height: 1.5;
  color: #FFFFFF;
  text-align: center;
  padding: 0;
  margin: 0 0 32px;
  max-width: 326px;
}

@media (min-width: 768px) {
  .myth-maid-hero p.myth-maid-hero__line {
    font-size: 18px;
    max-width: 52ch;
  }
}

/* DEPART from law section 4, this selector only (spec section 2). The law's
   H1 clamp is (2.6rem, 6vw, 4.6rem). The layered hero's whole argument is
   an oversized H1, and at 25 characters this is the shortest H1 on the site,
   the only one that can sit at the top of the scale and still hold two clean
   lines at 390. Delta: 0 at 390, 9.7px at 768, 2.4px at 1440. THE CLAMP IS
   UNCHANGED at REVIEW-10; the string goes to sentence case and Julius Sans
   One draws lowercase as small capitals, so the measured cost is 4.56px of
   width at 1440 (661.97 becomes 657.41).

   REVIEW-10, Vesper section 0 and 1.4. The selector gains a step, from
   0,1,0 to 0,2,0. It has to: section 0's own `.myth-maid-hero h1 { margin:
   0 }` is 0,1,1 and BEAT this rule, so the 32px this block declared has
   never rendered on the shipped page and what spaced the H1 was nothing at
   all. The declared rhythm now renders, and it is the pair rhythm both
   location heroes use, 16px under 768 and 24px from 768.

   `min-height: calc(2 * 1.05em)` with `padding-bottom: 0` is the two line
   reserve. The H1 is this page's largest paint and Julius Sans One is a
   webfont: a narrower fallback can set this string on ONE line where the
   loaded face sets it on two, and the swap would then push the fact line
   and the Book button down. Reserving two line boxes removes that shift
   whichever face paints first. It does not clip: at 320 the string sets on
   three lines and the box simply grows, which the hero's min-height band
   absorbs. Computed reserve: 87.36px at 320 and 390, 116.11 at 768, 154.83
   at 1024, 159.59 at 1200 and 1440.

   MANUAL-51 (2026-09-14, the user's own instruction): centred, and
   `font-family` restated for the same reason as the fact line above
   (the shared `.myth-maid-hero h1` membership in section 0, which used
   to supply it, is removed). */
.myth-maid-hero .myth-maid-hero__h1 {
  font-family: "Julius Sans One", sans-serif;
  font-size: clamp(2.6rem, 7.2vw, 4.75rem);
  line-height: 1.05;
  color: #FFFFFF;
  text-align: center;
  padding-bottom: 0;
  margin: 0 0 16px;
  min-height: calc(2 * 1.05em);
}

@media (min-width: 768px) {
  .myth-maid-hero .myth-maid-hero__h1 {
    margin-bottom: 24px;
  }
}

/* MANUAL-18 (user, 2026-09-08), item 1: the Book Maidstone button was
   moved from centred (the shared `.myth-band-hero__actions { justify-
   content: center }` in css/myth-bands.css) to left aligned under the
   H1, matching /gillingham/'s hero.
   SUPERSEDED, MANUAL-51 (2026-09-14, the user's own instruction): back to
   centred, which now matches the H1 and fact line above it (both centred
   the same day) and the content container's own new `align-items:
   center` (this file, above). This reverses MANUAL-18 item 1 for the
   hero band specifically; nothing else that decision touched is
   reopened. */
.myth-maid-hero__actions {
  display: flex;
  justify-content: center;
  gap: 16px;
}

@media (max-width: 767px) {
  .myth-maid-hero__actions .myth-btn {
    width: 100%;
    min-height: 52px;
  }
}

/* MANUAL-18 (user, 2026-09-08), Vesper section 1.1. The three scroll-cue
   rules that stood here, .myth-maid-hero p.myth-maid-hero__cue at base and
   at 768 and .myth-maid-hero__chevron, are DELETED with the markup they
   styled. No cue replaces them; see the note in inc/bands-maidstone.php. */


/* -----------------------------------------------------------------------
 * 2. The three Parchment bands: 3, 6 and 8.
 * --------------------------------------------------------------------- */

/* MANUAL-23 (user, 2026-09-08) SPLITS THIS RULE. The FAQ band leaves the
   parchment group and becomes a Poster band on the Raiders of the Lost
   Galleon plate under a bronze tint (section 7b). .myth-maid-open keeps the
   texture, unchanged, and is now the only band on this page that paints it.
   Splitting rather than overriding: an unused parchment texture painted
   under an opaque plate is bytes nobody sees and a maintainer's trap. */
.myth-maid-open {
  background-color: #FFFFFF;
  background-image: url("../../../uploads/2022/09/main-content-bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #1C1310;
}

.myth-maid-faq {
  background-color: #1C1310;
  color: #FFFFFF;
}

/* -----------------------------------------------------------------------
 * 3. Band 2: Open now on Church Street (Parchment).
 *
 * MANUAL-18 (user, 2026-09-08), Vesper section 2. The whole of the old
 * section 3, the mirrored open-room pair, is deleted with the markup it
 * styled. The card's own anatomy is not restated here: these two cards are
 * the shared component and css/myth-card.css owns every pixel inside them.
 * What is left is the band's geometry, which is all this band adds.
 *
 * Parchment, and it has to be. The alternation runs Poster (hero),
 * Parchment (here), Ink (coming soon), Parchment (FAQ), Poster (cross-town
 * head), and the coming-soon band cannot move off Ink: its gold H2, its
 * 0.05 motif and its ink cards are all designed against that ground. This
 * is also the reading band, which is the right job for two cards each
 * carrying a client-copy excerpt.
 * --------------------------------------------------------------------- */

.myth-maid-open__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* REVIEW-10, Vesper sections 0 and 3.4. The selector gains a step, 0,1,0 to
   0,2,0, for the same reason the hero H1 did: section 0's
   `.myth-maid-open h2 { margin: 0 }` is 0,1,1 and beat it, so the 16px this
   block has always declared has never rendered. The value does not change.
   ONE relationship, ONE value across all four heading blocks on the two
   location pages: heading, 16px, line, 40px, cards. */
.myth-maid-open .myth-maid-open__heading {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  color: #6E0C01;
  margin: 0 0 16px;
}

/* REVIEW-10. The direct answer, between the H2 and the band's one line
   (Beacon section 2.6). It takes the band's own paragraph type, set in
   section 0, and only its measure and its step: 70ch is the same cap the
   line below it uses, so the two paragraphs share one measure, and 16px is
   the heading step repeated, which keeps the header block reading as one
   unit above the 40px gap to the cards. 0,2,1, so the page-wide `p` rule
   cannot flatten the margin the way it flattened the headings. */
.myth-maid-open p.myth-maid-open__answer {
  margin: 0 0 16px;
  max-width: 70ch;
}

.myth-maid-open p.myth-maid-open__body {
  margin: 0 0 40px;
  max-width: 70ch;
}

/* MANUAL-25 (Sightline, 2026-09-11). The heading, the direct answer and the
 * one line are `.myth-maid-open__inner`'s only children above the card
 * grid: a single-column block running the block's full measure (816px from
 * 1024, the same box the two cards below share), so alignment rule 2
 * applies. Section 0's page-wide "every paragraph on this page is left
 * aligned" was written against centred walls of running prose (spec
 * section 2); these two paragraphs are short, 70ch-capped direct answers,
 * which is the shape rule 2 asks to centre, not the shape that rule guarded
 * against, so this is not a reversal of that decision, only a narrower one
 * on top of it. 0,2,1 already outranks the page-wide `p` rule for margin;
 * the same selectors take text-align here, and the two capped paragraphs
 * gain the auto margins a centred capped block needs to sit centred rather
 * than flush left. Card copy inside `.myth-rcard` and the FAQ answers below
 * are untouched: rule 3 and the recorded FAQ exception still apply there. */
.myth-maid-open .myth-maid-open__heading {
  text-align: center;
}

.myth-maid-open p.myth-maid-open__answer,
.myth-maid-open p.myth-maid-open__body {
  text-align: center;
  margin-inline: auto;
}

.myth-maid-open__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .myth-maid-open__grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* From 1024 the WHOLE inner narrows to 816px and centres, the heading and
   the line included, so the header block and the cards share one left
   edge. 816 is 2 x 396 plus the 24px gap, which is the card width the
   grid's own sizes attribute is written against. */
@media (min-width: 1024px) {
  .myth-maid-open__inner {
    max-width: 816px;
  }
}

/* -----------------------------------------------------------------------
 * 4. Band 5: Three more rooms on the way (Ink). The signature band.
 * --------------------------------------------------------------------- */

.myth-maid-soon {
  background-color: #1C1310;
  color: #FFFFFF;
}

.myth-maid-soon__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

/* The motif carries no information. At 0.05 it must read as texture and not
   as a scene; if it reads as a scene it is dropped and the band ships flat
   Ink, never swapped for another slug (spec section 10). */
.myth-maid-soon__motif {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.05;
}

.myth-maid-soon__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* REVIEW-10, Vesper sections 0 and 3.4. 0,1,0 to 0,2,0, so the declared
   step renders; and 24px becomes 16px, which is the one value all four
   heading blocks on the two location pages now share. */
.myth-maid-soon .myth-maid-soon__heading {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  color: #D4A94A;
  margin: 0 0 16px;
}

.myth-maid-soon p.myth-maid-soon__body {
  color: #FFFFFF;
  max-width: 690px;
  margin: 0 0 40px;
}

/* MANUAL-25 (Sightline, 2026-09-11). Same shape as the open band above:
 * heading and one line, single column, full band measure (1200px) above
 * the three-card fan-out grid, so alignment rule 2 centres them together.
 * The fan-out signature is unaffected: it translates and rotates the
 * cards, not this header block, and nothing here touches
 * `.myth-fan`/`.myth-fan__card`. */
.myth-maid-soon .myth-maid-soon__heading {
  text-align: center;
}

.myth-maid-soon p.myth-maid-soon__body {
  text-align: center;
  margin-inline: auto;
}

/* MANUAL-18: a <div> of <article> now, not a <ul> of <li>, so list-style
   goes; and grid-template-columns is stated at the base rather than left
   implicit, because the cards are no longer list items that stack by
   default. The 32px bottom margin goes with the "See all twelve rooms"
   tail it separated: the band's own 32 / 64 / 64 of bottom padding is the
   foot now. */
.myth-maid-soon__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin: 0;
  padding: 0;
}

/* The scroll-snap alignment the old <li> carried, given to the shared
   card so the rail under 1024 still snaps card by card. */
.myth-maid-soon__grid > .myth-rcard {
  scroll-snap-align: start;
}

/* Three up inside the 1200 cap. Symmetric on purpose: it is a set, and a
   set that leans is a mistake. Asymmetry returns in band 6. */
@media (min-width: 1024px) {
  .myth-maid-soon__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }
}

/* Under 1024 a scroll-snap rail, not two up with a third wrapping. Three
   cards, so the rail is short and cannot become a scroll tunnel. */
@media (max-width: 1023px) {
  .myth-maid-soon__grid {
    grid-auto-flow: column;
    grid-auto-columns: 320px;
    grid-template-columns: none;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 8px;
    margin-right: -64px;
    padding-right: 64px;
  }
}

@media (max-width: 767px) {
  .myth-maid-soon__grid {
    grid-auto-columns: 304px;
    margin-right: -32px;
    padding-right: 32px;
  }
}

/* MANUAL-18: the whole coming-soon card anatomy is DELETED,
   .myth-maid-soon__card, __frame, __img, __name, __spec, __copy, __actions
   and __actions > *. Every one of them is now css/myth-card.css's
   .myth-rcard, which is the same component the open-rooms band above and
   both Gillingham venue bands print. Two things worth naming as they go:

   - .myth-maid-soon__name's margin: 24px 24px 12px was the misalignment
     defect. It lost to section 0's .myth-maid-soon h3 { margin: 0 } at
     0,1,1 and the name sat 1px from the card border while everything under
     it sat at 25px. The shared card pads the card BOX, so the question
     cannot be asked again.
   - .myth-maid-soon__actions carried its own 24px side margins because the
     card body supplied no padding. The shared card's 16px padding supplies
     it, so the row is the plain .myth-card-actions with nothing restated,
     which is also what loop/verify.mjs measures. */

/* MANUAL-18: .myth-maid-soon__tail is deleted with the "See all twelve
   rooms" link it carried. */

/* -----------------------------------------------------------------------
 * 5 and 6: DELETED (MANUAL-18, user, 2026-09-08).
 *
 * Section 5 styled "Be the first to have an opinion" and section 6 styled
 * "Before you book, and finding Church Street". Both bands are gone from
 * inc/bands-maidstone.php and from page 4811, so every rule in both goes
 * with them: .myth-maid-note*, .myth-maid-practical* and .myth-maid-panel*,
 * here and in sections 0, 10, 11 and 12.
 *
 * The facts they carried did not go with them. See the note over the two
 * deleted shortcodes in inc/bands-maidstone.php: the address, the phone,
 * the email and both player counts are FAQ items 7, 8 and 9 plus the FAQ
 * band's fact foot below, the three tertiary controls are the cross-town
 * band's link row, and myth_maid_facts() still feeds all of them.
 * --------------------------------------------------------------------- */

/* -----------------------------------------------------------------------
 * 7. Band 8: If you're still deciding (Parchment).
 *
 * The shared .myth-band-faq* rules are tuned for the homepage's Ink band,
 * so this band scopes its own colours under .myth-maid-faq. No shared rule
 * is edited, and no !important is used: every override wins on class count.
 * --------------------------------------------------------------------- */

/* THE INK SLAB, nulled from the first commit. css/myth-bands.css line 1104
   paints `background:#1C1310; color:#FFFFFF` on `.myth-band-faq` for the
   homepage's Ink band. On a Parchment band that paints an ink rectangle
   over the parchment texture and lands Ink answers on Ink at 1:1 and Maroon
   questions on Ink at 1.49:1. That was T08's gate refusal (cortex.md
   section 13) and it is paid for here before the page is served, not after.
   Specificity 0,2,0, matching the T08 fix, so the frozen homepage's own
   `.myth-band-faq` and its `--joined` variant are untouched. */
/* R07 (review A10) adds the hairline colour here. The hairline's GEOMETRY
   is declared once, at the component, in css/myth-bands.css: 1px solid
   under every item and over the first, with 8px of air under the trigger.
   This band, on parchment, only says what colour it is drawn in, and it is
   the same Ink 12% it drew before. The Poster variant in section 13 sets
   White 24% over this, which is the user's 2026-09-09 addition kept
   exactly. */
.myth-maid-faq .myth-band-faq {
  --myth-faq-rule: rgba(28, 19, 16, 0.12);
  background: transparent;
  color: #1C1310;
}

/* MANUAL-20 (user, 2026-09-08), Vesper section 1.4. Section 0 gives every
   band on this page `position: relative; overflow: hidden`. An ancestor with
   overflow: hidden is a scroll container, so `position: sticky` inside it
   computes and never sticks, which is measured, not theoretical: the
   prototype's right column did not stick at 1200 or at 1440 until this was
   corrected. This band has no absolutely positioned child, no bleeding image
   and no motif, so nothing is being clipped and visible costs nothing.
   0,1,0, after the page-wide rule it corrects, so it wins on source order.
   Not overflow: clip, which would also work but is Safari 16 and up for no
   gain here. */
.myth-maid-faq {
  overflow: visible;
}

.myth-maid-faq__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* The accordion in columns 1 to 8, columns 9 to 12 left open. */
@media (min-width: 1024px) {
  .myth-maid-faq__heading,
  .myth-maid-faq__list,
  .myth-maid-faq__tail {
    max-width: 66.667%;
  }
}

.myth-maid-faq__heading {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  color: #6E0C01;
}

/* REVIEW-21 (Sightline, 2026-09-11). The 32px margin-bottom above never
   rendered: 0,1,0 losing to this page's own `.myth-maid-hero h1,
   .myth-maid-open h2, ... { margin: 0 }` reset (0,1,1), the same
   inert-margin shape MANUAL-25 already fixed on the Gillingham FAQ
   heading. Restated at 0,2,0. */
.myth-maid-faq .myth-maid-faq__heading {
  margin: 0 0 32px;
}

.myth-maid-faq .myth-band-faq__q-heading {
  margin: 0;
}

/* MANUAL-61 (2026-09-15, user-reported). Same fix, same reason, as
   css/myth-gillingham.css's own identical comment on
   `.myth-gill-faq .myth-band-faq__question`: this rule's own `width:
   100%` never carried the shared component's overflow trick and never
   needed a margin of its own, but the shared rule's `margin-left:
   -16px; margin-right: auto;` still cascaded in on the one property
   left unset here, shifting the button 16px off its own container with
   nothing to cancel it against. `margin: 0` stops that inheritance. */
.myth-maid-faq .myth-band-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 44px;
  margin: 0;
  padding: 16px 0;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: "Julius Sans One", sans-serif;
  font-size: 1.5rem;
  line-height: 1.2;
  color: #6E0C01;
}

@media (min-width: 768px) {
  .myth-maid-faq .myth-band-faq__question {
    min-height: 48px;
  }
}

/* MANUAL-55 (2026-09-14, the user's own instruction): the hover rule that
   stood here (restated to stop depending on enqueue order against the
   shared component's own hover) is removed with the shared rule it
   existed to override; see css/myth-bands.css's own base
   `.myth-band-faq__question` rule for the sitewide note. */

/* The sitewide band-role ring at css/myth-bands.css line 68,
   `.myth-band-faq button:not(.myth-btn):focus-visible`, is 0,3,1 and would
   otherwise pull the Ink-band Gold ring onto this parchment surface at
   1.94:1 against a 3:1 non-text floor. The `.myth-band-faq` step takes this
   to 0,4,0, which wins on class count with no !important and with the
   shared rule untouched. */
.myth-maid-faq .myth-band-faq .myth-band-faq__question:focus-visible {
  outline: 2px solid #6E0C01;
  outline-offset: 2px;
}

/* The icon is built from this element's own ::before and ::after, a Maroon
   plus that closes to a Maroon minus. css/myth-bands.css line 1204 also
   gives `.myth-band-faq__icon` a 2px Gold border and `rotate(45deg)`, a gold
   chevron for the homepage's Ink band, and line 1210 rotates it again when
   open. Both are nulled here, in both states, rather than edited in the
   shared file; the open-state rule is 0,3,0, so the second selector carries
   the extra class it needs to outrank it. */
.myth-maid-faq .myth-band-faq__icon {
  position: relative;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  /* R07: the component pins the mark to the FIRST line of a wrapped
     question with `align-self: flex-start` and a margin of half the
     difference between the line box and the icon box. `align-self` is
     inherited from there; only the two margin declarations are restated,
     because this band's plus is a 16px box and not the shared 12px
     chevron. The px line is the fallback for an engine without `lh` and
     is this band's own 1.5rem/1.2 arithmetic: (28.8 - 16) / 2. */
  margin-top: 6.4px;
  margin-top: calc((1lh - 16px) / 2);
  border: 0;
  /* R04 (review A1): the shared chevron's translate is nulled with its
     rotation, because this band's plus is drawn from the element's own
     ::before and ::after and its ink already fills the 16px box exactly.
     What is kept is the optical correction: measured against the first
     line's cap height centre the plus sat 0.97px low in Chromium and
     0.57px low in WebKit at 390, 768 and 1440, so it takes the mean,
     0.77px, and lands at -0.20 / +0.20. Paint only; no box changes. */
  transform: translateY(-0.77px);
}

.myth-maid-faq .myth-band-faq .myth-band-faq__question[aria-expanded="true"] .myth-band-faq__icon {
  transform: translateY(-0.77px);
}

.myth-maid-faq .myth-band-faq__icon::before,
.myth-maid-faq .myth-band-faq__icon::after {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 16px;
  height: 2px;
  background-color: #6E0C01;
  transition: transform 300ms ease;
}

.myth-maid-faq .myth-band-faq__icon::after {
  transform: rotate(90deg);
}

.myth-maid-faq .myth-band-faq__question[aria-expanded="true"] .myth-band-faq__icon::after {
  transform: rotate(0deg);
}

@media (prefers-reduced-motion: reduce) {
  .myth-maid-faq .myth-band-faq__icon::before,
  .myth-maid-faq .myth-band-faq__icon::after {
    transition: none;
  }
}

.myth-maid-faq .myth-band-faq__answer {
  color: #1C1310;
  max-width: 70ch;
  padding-bottom: 16px;
}

.myth-maid-faq .myth-band-faq__answer + .myth-band-faq__answer {
  padding-top: 8px;
}

.myth-maid-faq p.myth-maid-faq__tail {
  margin: 24px 0 0;
}

/* MANUAL-20, Vesper section 1.3. The 1024 caps above hold the accordion in
   columns 1 to 8 of the band's own 1200px inner while the band is one
   column. From 1200 the COLUMN is the measure: the grid gives the main
   column 643.19px at 1200 and 720px at 1440, and a 66.667% cap inside that
   would starve it. Nulled, not overwritten with a second number. This file
   prints after css/myth-card.css, so these are the same specificity as the
   caps they replace and win on order. */
@media (min-width: 1200px) {
  .myth-maid-faq__heading,
  .myth-maid-faq__list,
  .myth-maid-faq__tail {
    max-width: none;
  }
}

/* MANUAL-20 (user, 2026-09-08), Vesper section 2. MANUAL-18's fact foot is
   deleted with the markup it styled: .myth-maid-faq__facts, three
   .myth-maid-faq__pair rules, its 768 three-column arm and the F6 hit-area
   rule on the two controls inside it. Nothing replaces its spacing. The
   tail link already carries margin: 24px 0 0, which is the same 24px
   /gillingham/ uses under its accordion, so the two pages land on one
   value with no new rule. */

/* -----------------------------------------------------------------------
 * 8. Band 9: Ready when you are (Poster, closes the page).
 * --------------------------------------------------------------------- */

.myth-maid-booking {
  background-color: #1C1310;
  color: #FFFFFF;
  min-height: 520px;
  display: flex;
  align-items: center;
}

@media (min-width: 768px) {
  .myth-maid-booking {
    min-height: 480px;
  }
}

@media (min-width: 1024px) {
  .myth-maid-booking {
    min-height: 560px;
  }
}

.myth-maid-booking__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.myth-maid-booking__ground {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* One profile at every width, bottom heavy. All content begins below the
   35% stop, so every glyph sits at 0.78 or deeper (White 9.57:1). */
.myth-maid-booking__scrim {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    180deg,
    rgba(28, 19, 16, 0.62) 0%,
    rgba(28, 19, 16, 0.78) 35%,
    rgba(28, 19, 16, 0.88) 100%
  );
}

.myth-maid-booking__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 15%;
}

@media (min-width: 1024px) {
  .myth-maid-booking__inner {
    padding-top: 0;
  }

  .myth-maid-booking__heading,
  .myth-maid-booking p.myth-maid-booking__body {
    max-width: 58.333%;
  }
}

.myth-maid-booking__heading {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
  color: #D4A94A;
  margin: 0 0 24px;
}

.myth-maid-booking p.myth-maid-booking__body {
  color: #FFFFFF;
  max-width: 70ch;
  margin: 0 0 32px;
}

.myth-maid-booking__actions {
  display: flex;
  gap: 16px;
}

@media (max-width: 767px) {
  .myth-maid-booking__actions .myth-btn {
    width: 100%;
    min-height: 52px;
  }

  /* The rail is 61px and fixed. The band clears it, its own 48px padding
     and the device's safe area, so the closing button is never under the
     rail at rest. The stand-down hook below covers the transit case, which
     padding provably cannot (T08 qa-adversary D1). */
  .myth-maid-booking {
    padding-bottom: calc(48px + 61px + env(safe-area-inset-bottom, 0px));
  }
}

/* -----------------------------------------------------------------------
 * 9. Chrome this route borrows by markup: the rail and the FAQ deep link.
 * --------------------------------------------------------------------- */

/* Band 9's action wrapper carries `.myth-gill-booking__actions` as a pure
   behaviour hook: css/myth-gillingham.css is enqueued only on that route, so
   it defines nothing here. The T08 initRailStandDown() block in
   js/myth-motion.js observes that selector and toggles this class on the
   rail, so THIS FILE has to declare it or the hook does nothing. Same three
   declarations as the frozen hidden state (css/myth-bands.css line 1327) so
   the two paths look identical. Do not tidy either name away. */
.myth-band-rail.myth-gill-rail--stood-down {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}

/* The T08 hash opener is already generic over `.myth-band-faq__item` and
   `.myth-band-faq__question`, which this band prints, so a deep link to a
   panel opens it with no JS added. The only thing it needs from this file
   is the scroll offset: the fragment target is the panel, so the browser
   aligns the panel's top edge and would park the question above the
   viewport behind the 61px fixed `.myth-bar`. Sizes carried from the T08
   measurements (question block 101px at 390, 72px from 768, bar 61px). */
.myth-maid-faq .myth-band-faq__panel {
  scroll-margin-top: 200px;
}

@media (min-width: 768px) {
  .myth-maid-faq .myth-band-faq__panel {
    /* MANUAL-10: track the stuck bar token, 85px from 1025, not the old 61px. */
    scroll-margin-top: calc(var(--myth-h-stuck) + 80px);
  }
}

@media (max-width: 767px) {
  /* Fold B1, route-scoped, as on /gillingham/. `.myth-band-rail` in the
     frozen sitewide file carries `padding: 8px` and no safe-area inset, so
     on a gesture-navigation phone the home indicator strip eats the bottom
     of a 61px bar whose buttons are 44px tall. Band 9's clearance above
     reads the same env() value, so the two stay in step. */
  .myth-band-rail {
    padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px));
  }
}

/* =======================================================================
 * 10. T09 FOLD, responsive pass, 2026-09-06. APPENDED ONLY: no rule above
 *     this line is edited. Widths walked 320 / 390 / 768 / 1024 / 1440,
 *     every number measured in Chromium, never eyeballed.
 *
 *     Six fixes. Three of them are one Divi element-level rule leaking
 *     into this page's own boxes, which is why they are grouped first.
 * =================================================================== */

/* F1. Divi paints `h1, h2, h3, h4, h5, h6 { padding-bottom: 10px }` at
   0,0,1 from the theme's own stylesheet. The page's heading rule (section
   0 above) sets `margin: 0` but no padding, so all 18 headings on this
   route carried 10px of off-scale space underneath: the H1, six H2s, five
   room and card H3s and the five FAQ question headings. Measured
   `padding-bottom: 10px` on every one at 390 and at 1440; the FAQ
   question heading measured 99.59px against the 89.59px trigger inside
   it, the 10px difference being exactly this.

   Written at 0,1,1 (and 0,2,0 for the FAQ heading, which the page's own
   heading rule does not cover) so the token rhythm each heading declares
   is the one that renders. */
.myth-maid-hero h1,
.myth-maid-open h2,
.myth-maid-open h3,
.myth-maid-soon h2,
.myth-maid-soon h3,
.myth-maid-faq h2,
.myth-maid-booking h2 {
  padding: 0;
}

.myth-maid-faq .myth-band-faq__q-heading {
  padding: 0;
  color: inherit;
}

/* Removing that 10px from the FAQ question heading took away the only
   thing that was separating two adjacent accordion triggers, which are
   the two largest tap targets on the page and sat 11px apart purely by
   accident. Measured straight after F1: 1px, under the 8px floor. The
   separation went where it structurally belongs, as the item's own bottom
   padding on the 8px scale rather than as stray padding inside a heading,
   so an open panel also gets 8px before the hairline instead of sitting on
   it. 9px of air between every pair of triggers (8px padding plus the 1px
   rule), at 390 and at 1440.

   R07: that 8px is now the component's, in css/myth-bands.css, because it
   is part of the one divider style and /gillingham/ and the homepage need
   it for the same reason this band did. The route-scoped copy is deleted
   rather than left to shadow it; the computed padding on this band is the
   same 8px, proved in loop/work/REVIEW-07/after.json. */

/* Hardening, same leak, colour side. The Divi rule also carries
   a gold that is not one of the six palette colours. It never
   paints today only because every H3 on this route holds its text inside
   an anchor that sets its own colour (Maroon on band 3, White on bands 4
   and 5) and the FAQ question heading holds a button that sets Maroon.
   Measured: `color: rgb(234, 177, 106)` computed on all five of those
   headings, and on none of their children. Neutralised on the three
   classes that carry no colour of their own, at 0,1,0, which cannot reach
   the H2 rules that DO set Gold and Maroon. */
/* MANUAL-18: .myth-maid-room__name is deleted with the room panels. The
   coming-soon card's name is now .myth-rcard__name, whose link sets its own
   colour on both tones in css/myth-card.css, so the Divi gold cannot reach
   it either. .myth-maid-soon__name is kept as the name of nothing rather
   than left pointing at markup that no longer exists: it goes too. */

/* MANUAL-18: F2 and F3 are both DELETED, and both for the same reason:
   every selector in them was scoped `.myth-maid-soon ul.myth-maid-soon__grid`
   and the grid is a <div> now, so neither could match anything.

   F2 restated `list-style: none`, `padding: 0` and the rail's
   `padding-right` / `margin-right` / `padding-bottom` at 0,2,1 to beat
   Divi's `#left-area ul, .entry-content ul, .et-l--body ul { padding: 0 0
   23px 1em; list-style-type: disc }`. That Divi rule cannot reach a <div>,
   so the leak it was written against no longer exists, and the rail
   measurements it protected (the 64px and 32px of trailing air, the 8px
   foot) are declared in section 4's own grid rules where they belong.
   Verified after the change: the rail's peek and its trailing air are
   present at 320, 390 and 768.

   F3 moved the three-up breakpoint from 1024 to 1200 because at 1024 the
   old card's action row needed 268.81px in 221.66px of usable width and the
   card's `overflow: hidden` clipped the ghost button by 23.15px. The shared
   card's row wraps to two full-width lines on its own measured width
   instead of overflowing, so the arithmetic that forced the move is gone.
   Measured after, at 1024: three-up, card 271.66px, actions stacked and
   level, 0px of row overflow, 0px of document overflow. The myth-fan
   breakpoints in css/myth-motion.css are NOT touched, per Vesper section
   3.4: between 1024 and 1199 the fan runs its translate-only variant over a
   three-up grid, which is safe because there is no horizontal scroller at
   that width for a rotation to disturb. */

/* MANUAL-12: the T09 F3 narrow-card gap and padding trim is DELETED. It
   pulled the row's gap to 12px and the ghost's side padding to 16px on
   this band only, to fit 59.17 + 12 + 177.64 into 254px of usable width
   in a 304px card at 390. The card size variant (13px label, 12px side
   padding) and the shared row's 8px gap and 138px flex basis do that job
   at every width now, and the row wraps to two full-width lines rather
   than squeezing when it has to. */

/* MANUAL-12: the T09 F4 fix is DELETED with the class it patched. See the
   note at .myth-chip--soon's old position above. */

/* F5. The two open-room panels are meant to mirror, and above 1024 they
   did not. Band 3's text is a 7fr column of a `7fr 5fr` grid with a 48px
   gap, so it measured 672px wide, from x=120 to x=792 at 1440. Band 4's
   text was placed with `margin-left: 41.667%`, a flat 5/12 of the inner
   width that takes no account of the gap, so it measured 700px, from
   x=620 to x=1320. The outer edges mirrored, the inner edges were 28px
   apart, and the two panels ran at two different measures. Same story at
   1024: 494.7px against 522.7px.

   Restated with band 3's own arithmetic and pushed right with an auto
   margin, so the two columns are the same width by construction and
   cannot drift apart again when the gap changes. After, at 1440: band 3
   120 to 792, band 4 648 to 1320, both 672px. At 1024: 64 to 558.67 and
   465.33 to 960, both 494.67px.

   Contrast moves the safe way: at 1440 the text column now starts at 45%
   of the viewport instead of 43.1%, and the horizontal scrim has reached
   0.80 by 42%, so every glyph sits on a deeper scrim than it did. */
/* MANUAL-18: the F5 mirror fix is deleted with the poster room panel it
   corrected. */

/* F6. Touch targets. Eleven standalone controls measured under the 44px
   floor at 390: the hero scroll cue at 22px, the two room-name links and
   the two short card-name links at 26px, and six quiet links at 25px
   (the band 5 tail, the group enquiry line, the address panel's phone
   and email, the gift line and the FAQ tail).

   Every one of them is the only thing in its block, so each is a
   standalone control rather than a word inside a sentence. `.myth-maid-
   link` is deliberately `display: inline` (spec section 1, so the T08
   Gate F2 doubled line box is not copied forward), and vertical padding
   on an inline box grows the hit area without touching the line box, so
   these targets grow and NOTHING on the page moves. Verified: body
   scrollHeight identical before and after at 390 and at 1440.

   `background-origin: content-box` comes with it because the link's gold
   hover underline is drawn as a background at `0 100%`, which would
   otherwise drop to the bottom of the new padding instead of sitting on
   the text.

   Measured air after the change, at 390: the smallest gap between any
   two of these and their nearest horizontally overlapping neighbour is
   10px (the FAQ tail under the last question trigger), against the 8px
   floor.

   NOT padded, and this is deliberate: the links that sit inside a running
   sentence. MANUAL-18: band 7's fact list is gone, so what is left in this
   category is the links inside FAQ answers, including the new item 8's
   phone and email, and the phone inside band 9's closing sentence. A hit box
   that straddles the prose lines above and below hands taps to a link
   the visitor was not aiming at. The phone number keeps a 44px target at
   390 regardless: the rail's Call button is on screen from band 2 to the
   footer. */
/* MANUAL-18: the hero cue's own F6 target rule is deleted with the cue. */

/* MANUAL-18: all four F6 targets in this rule are deleted with the markup
   they padded. The soon band's tail link, the strip's group-enquiry line,
   the address panel's phone and email and the gift line all leave the
   route. The phone and the email come back in the FAQ fact foot below,
   where they take their own rule, and inside FAQ answer 8, where they
   deliberately do NOT: a hit box that straddles the prose lines above and
   below hands taps to a link the visitor was not aiming at, which is the
   same reasoning F6 applied to the answers' existing links. */

/* The FAQ tail is the one of the eight that cannot take symmetric
   padding. Its paragraph sits 24px under the accordion, but the last
   question's trigger button overhangs the accordion's own bottom edge by
   15px, so the real gap from the trigger to the tail's text is 10px at
   390 and 9px at 1440. Ten of those ten would have gone to a top pad and
   the two hit boxes would have touched, measured at exactly 0px of air
   before this rule and minus 1px at 1440. It grows downwards only,
   into the band's 48px of bottom padding, where there is no other
   control: 44px at 390 and 46px at 1440, with the 10px and 9px of air
   above kept intact. */
.myth-maid-faq__tail .myth-maid-link {
  padding-block: 0 19px;
  background-origin: content-box;
}

/* MANUAL-18: the two card-name F6 target rules are deleted with the two
   card anatomies they patched. The shared component's .myth-rcard__link
   carries the same fix as padding-block: 9px with an equal negative block
   margin, so the 44px target survives the move and the layout does not
   change (css/myth-card.css). */

@media (max-width: 767px) {
  /* F7. Divi's back-to-top control, `span.et_pb_scroll_top`, is a 40x40px
     fixed span at z-index 99999: under the 44px floor, above the rail in
     the stacking order, and at 390 it renders at top 679 right 350,
     which is on top of the triptych rail's peek, the one affordance
     telling a visitor that rail scrolls. Hidden at phone widths only,
     exactly as `css/myth-gillingham.css` already does on the sibling
     route, so the two location pages behave the same way; above 768 it
     is left as Divi ships it. `!important` because Divi reveals the
     control with a jQuery fadeIn that writes `style="display: inline"`
     on the element, and an inline declaration from a third party's
     script cannot be outranked any other way. It is the only
     `!important` in this file. */
  span.et_pb_scroll_top {
    display: none !important;
  }
}

/* F8. Reading measure. Spec section 2 caps body at 70ch at every width.
   Two paragraphs ran past it above 1024, both for the same reason: a wide
   override REPLACED the ch cap instead of layering under it, which is the
   T08 Gate finding on `.myth-gill-compare__answer` repeated.

   Measured against each element's own `ch`:

     .myth-maid-note__body   70ch at 390 and 768, 76ch at 1440
                             (`max-width: 58.333%` at 1024 and up wins
                             outright over the base `max-width: 70ch`,
                             and 58.333% of the 1200 cap is 700px)
     .myth-maid-soon__body   74ch at 1024 and 1440 (a flat 690px, which is
                             spec section 10's stated measure, but 690px
                             at 18px Karma is 74 characters, not 70)

   Both restated as a `min()` so the geometry still wins wherever it is the
   narrower of the two and the ch cap catches it where it is not. After:
   both 70ch (648px) at 1024 and 1440, unchanged at 390 and 768. No other
   measure on the route exceeds 70ch: the widest remaining is the band 3
   lead at 70ch and the band 9 body at 70ch. MANUAL-25 note: this cap now
   sits on a centred box (`.myth-maid-soon p.myth-maid-soon__body`, above),
   which is what "nothing is centred" meant at F8; the measure itself is
   unchanged by that. */
.myth-maid-soon p.myth-maid-soon__body {
  max-width: min(690px, 70ch);
}

/* MANUAL-18: the note band's half of F8 is deleted with the band. The soon
   band's rule above stands. */

/* =======================================================================
 * 11. T09 CORTEX FIX ROUND, 2026-09-06. APPENDED ONLY: no rule above this
 *     line is edited, and Fold's section 10 is untouched. Four blocks:
 *     the 1440 CLS pre-declaration (Pulse F2), the in-page anchor offset
 *     (qa-adversary P2), and the rail stand-down state this route's new
 *     observer toggles (qa-adversary P1).
 * ===================================================================== */

/* 11.1 CLS, 1440. Pulse F2, and loop/DECISIONS.md 2026-09-06.
 *
 * Divi prints each row's own geometry in a DEFERRED inline <style> at the
 * END of the body (id et-builder-module-design-tb-5154-tb-5164-deferred-
 * 4811-cached-inline-styles, 5,555 B, 273 KB down the document, 68 KB after
 * the hero markup). Until it lands, every row on this page paints at Divi's
 * default .et_pb_row { width: 80%; max-width: 1080px }, so at 1440 the hero
 * row renders 1152px wide and then snaps to 1440px, dragging every band
 * below it. Measured: 0.08756 of a 0.0883 CLS, firing about 2ms after the
 * hero LCP paint.
 *
 * The two declarations below are copied BYTE FOR BYTE from what Divi
 * defers for .et_pb_row_0 through .et_pb_row_9 on this page, which is every
 * row it has: eight .myth-band rows, the frozen carousel row and the rail
 * row. So this changes no pixel of the settled layout. It only makes the
 * geometry correct at first paint and turns Divi's footer block into a
 * no-op restatement of what is already true.
 *
 * The selector is written against CONTENT, not against Divi's numbered
 * row classes, so inserting or reordering a section cannot silently
 * unhook it. The third arm is required: section.myth-carousel carries no
 * .myth-band class, and Pulse measured 0.01644 of residual shift without
 * it. This targets the Divi ROW WRAPPER only. It does not touch
 * inc/games-carousel.php, its markup or its logic, which stay frozen.
 *
 * Route scoped by enqueue: css/myth-maidstone.css is printed only behind
 * myth_maid_is_route(). The sitewide instance of the same Divi defect is
 * logged against T35. */
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-band),
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-band-rail),
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-carousel) {
  width: 100%;
  max-width: 100%;
}

/* 11.2 In-page anchor landing. qa-adversary P2.
 *
 * MANUAL-18: the hero cue that this block was written for is gone, but
 * #open-now is NOT. It moves to the open-rooms band's H2 and is still
 * reachable from js/myth-motion.js's hash hold and from any external deep
 * link to /maidstone/#open-now, so the landing offset below still has to
 * hold. Historically: following #open-now natively parked the H2 behind the
 * fixed .myth-bar, and this route carried its own scroll-margin-top of
 * 101px for that, tuned by measurement to a 61px stuck bar.
 *
 * MANUAL-11: that rule is GONE and nothing replaces it here. The offset is
 * now one token-driven rule owned by the header, in the header's own CSS
 * (style.css, section FRAGMENT LANDINGS, built from ../build/part-2-CSS.txt):
 *
 *   :where(#et-main-area) [id]{
 *     scroll-margin-top: calc(var(--myth-h-stuck) + 1px + 16px);
 *   }
 *
 * which is the stuck bar's outer height plus 16px of air, and resolves to
 * 81px on phone and 101px from 1025, so the desktop value is the one this
 * file used to declare. It reaches every id on this route, including the
 * seven selectors this block used to name. The FAQ panel rule in section 9
 * keeps its own larger measured offsets, because its fragment target is the
 * PANEL and the question block sits above it: at (0,2,0) it still beats the
 * header rule's (0,1,0).
 *
 * The other half of this defect is Divi's delegated smooth scroll, which
 * computes its own destination and cannot see CSS. That is opted out of per
 * anchor in inc/bands-maidstone.php with Divi's own et_smooth_scroll_disabled
 * class, which hands the fragment back to the browser so the rule applies.
 * The DIRECT load path, which Divi's et_page_load_scroll_to_anchor() also
 * hijacks and which no CSS can reach, is handled once and generically in
 * js/myth-motion.js (the fragment aligner, MANUAL-11 fix 2c). */

/* 11.3 The rail stand-down state for this route's own action rows.
 *
 * qa-adversary P1: at 390 the fixed 61px rail sat over the "Book Maidstone"
 * buttons in bands 3 and 4 for the whole of their transit (scrollY 2181 to
 * 2223, and 3062). A real click on the visible button's centre navigated
 * nowhere; its left third dialled the phone instead. The T08
 * initRailStandDown() block cannot cover them: it resolves
 * .myth-gill-booking__actions with querySelector(), so it protects exactly
 * one element per page, and on this route that one is band 9's.
 *
 * A NEW class, not the T08 one. Two writers on one class is how flicker
 * starts (js/myth-motion.js says so in its own words), so the T09 observer
 * gets its own state and either mechanism can hide the rail independently.
 * Same three declarations as the frozen hidden state
 * (css/myth-bands.css:1327) and as section 9's, so all three paths look
 * identical to a visitor. Do not tidy any of the three names away. */
.myth-band-rail.myth-maid-rail--stood-down {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}

/* 11.1b The same defect, vertical. Measured after 11.1 landed: the width
   snap is gone (rows paint 1440px wide from the first frame) and the 1440
   CLS fell 0.0883 to 0.0708, all of it now ONE shift at ~785ms in which
   section.myth-maid-hero moves up 29px and the frozen carousel section
   goes from 90px tall to 148px. That is Divi's default section and row
   padding (.et_pb_section { padding: 4% 0 } and .et_pb_row { padding: 2em
   0 }) being zeroed by the same deferred block, 273 KB down the document.

   Same treatment, same source: these two declarations are copied from
   what Divi defers for .et_pb_section_0 through _9 and .et_pb_row_0
   through _9 on this page, which is every section and every row it has.
   The settled layout is unchanged to the pixel; only the first frame
   moves. Divi's own version carries !important and lands later, so it
   still wins outright and this stays a restatement, not an override.

   Content-addressed selectors again, so a reordered section cannot
   unhook them. Sections are not nested on this route, so :has() with a
   descendant combinator cannot match an ancestor by mistake. The frozen
   carousel's own markup, logic and background colour are untouched: this
   reaches the Divi SECTION and ROW wrappers only. */
#page-container .et-l .et_pb_section:has(.et_pb_module.et_pb_code .myth-band),
#page-container .et-l .et_pb_section:has(.et_pb_module.et_pb_code .myth-band-rail),
#page-container .et-l .et_pb_section:has(.et_pb_module.et_pb_code .myth-carousel),
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-band),
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-band-rail),
#page-container .et-l .et_pb_row:has(> .et_pb_column > .et_pb_module.et_pb_code .myth-carousel) {
  padding-top: 0;
  padding-bottom: 0;
}

/* =======================================================================
 * 12. T09 GATE FIX, contrast, 2026-09-06. APPENDED ONLY: no rule above
 *     this line is edited, and sections 10 and 11 are untouched. One
 *     block: band 3's spec line moves off Muted Grey.
 * ===================================================================== */

/* 12.1 Band 3 spec line: Muted Grey -> Ink. Gate F1, design-gate item 8.
 *
 * Section 3's comment above the superseded rule used to read "Muted Grey
 * on Parchment is 4.54:1, the body floor by 0.04", and now carries a
 * SUPERSEDED note pointing here. That 4.54:1 is Muted Grey
 * on PURE WHITE. The Parchment bands are not white: section 2 paints
 * uploads/2022/09/main-content-bg.jpg over #FFFFFF at background-size:
 * cover, and the texture is what sits behind the glyphs. Measured from
 * the rendered pixels, fully painted glyph against the darkest backdrop
 * pixel under those glyphs, Muted Grey ran 3.72:1 at 390 and 3.67:1 at
 * 1440 against a 4.5:1 body floor. 15px/500 is body text, so 4.5:1 binds,
 * not 3:1.
 *
 * Muted Grey cannot be rescued on this ground: it needs a pure #FFFFFF
 * backdrop to reach 4.54:1, and the darkest texture pixel would want
 * #686868 or darker, which is not one of the six palette roles and design
 * law section 10 forbids inventing one. So this is a token decision, not
 * a nudge, and it follows law section 1: a Parchment band carries Ink
 * text. Ink #1C1310 on the same measured backdrop is 14.77:1.
 *
 * Charcoal #231F1E was considered and rejected: Vesper's spec never names
 * it for a meta line. spec.md section 2's type table and section 4's room
 * panel anatomy both set the spec line in Muted Grey on Parchment and
 * White at 85% on Ink/Poster; Charcoal appears nowhere in either. Ink is
 * the band's own text colour, already declared on the band root in
 * section 2 of this file.
 *
 * Hierarchy is preserved by size, not by lightness: the spec line stays
 * 15px against 17px/18px body, so it still reads as the smaller line
 * without paying for it in legibility. No opacity is used, because an
 * alpha tint would put the ratio straight back below the floor.
 *
 * Scope, per Gate's constraint: this touched the Parchment room panel and
 * nothing else. MANUAL-18: that panel and .myth-maid-note are both gone,
 * so the rule this block explains is gone too and only the reasoning is
 * kept. .myth-maid-faq (band 8) shares the background-image rule at section
 * 2 and measures clean. The Poster spec line on band 4 keeps
 * rgba(255,255,255,0.85) and band 5's meta lines keep theirs; neither
 * selector is named below, so neither computed colour can move.
 *
 * This is the file's only Muted Grey declaration; a grep for #767676
 * returns this comment block, the superseded rule and the palette note in
 * the file header, and no other declaration on the route. */
/* MANUAL-18: the Gate F1 contrast fix is deleted with the parchment room
   panel. The fact it was fixing does not return: the shared card's meta
   line IS Muted Grey #767676, but it sits on the card's own opaque #FFFFFF
   rather than on the parchment texture, which is the 4.54:1 surface that
   colour was measured against and passes on. Measured after the rebuild at
   390 and 1440, both open-room cards: 4.54:1. */

/* -----------------------------------------------------------------------
 * 7b. MANUAL-23 (user, 2026-09-08). THE FAQ AS ITS OWN POSTER BAND.
 *
 * The user's rule: this band must READ AS A COLOUR, bronze here, so it is
 * never mistaken for the dark footer two elements below it. Not black, and
 * not the blue-teal /gillingham/ takes. So the scrim is a TINT drawn from
 * the plate's own gold, not an ink wash.
 *
 * The plate is the Raiders of the Lost Galleon bg-section (manifest id
 * 5230), sampled: average rgb(51, 44, 30), dominant warm family hue 27.7 to
 * 29.0 across three of the eight quantised bands, brightest pixel
 * rgb(171, 122, 63). The scrim is that same hue taken deep: rgb(72, 42, 14)
 * is hue 29, and 0.72 is the opacity that holds White at 4.5:1 or better
 * everywhere behind text. Computed at the plate's single brightest pixel,
 * which is the worst case anywhere in the band, the composite is
 * rgb(100, 64, 28) and White measures 9.2:1; the measured figures off the
 * rendered band are in loop/work/MANUAL-23/cortex.md. No local darkening
 * was needed behind the text columns, so the colour is uniform and the
 * open areas keep the plate.
 *
 * Every rule here is scoped to .myth-maid-faq--poster, so section 7 above
 * keeps its parchment tones intact and readable as the record of what this
 * band used to be. The texture itself is not overridden, it is split off at
 * section 2, because an unseen texture under an opaque plate is a trap.
 * --------------------------------------------------------------------- */

/* The media wrapper, following .myth-maid-booking__media / __ground /
   __scrim. overflow: hidden lives HERE and not on the section, because the
   section carries a position: sticky right column from 1200. */
.myth-maid-faq__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.myth-maid-faq__ground {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.myth-maid-faq__scrim {
  position: absolute;
  inset: 0;
  background-color: rgba(92, 54, 18, 0.72);
}

.myth-maid-faq--poster .myth-maid-faq__heading {
  color: #FFFFFF;
}

/* The accordion. Colour only: no size, no spacing and no border geometry
   moves, so an open panel is the same height as before. */
/* R07: the hairline colour moves onto the component's own variable, so
   this band states the colour and nothing about the rule's geometry. The
   computed border is the identical rgba(255, 255, 255, 0.24) 1px solid it
   was before, top and bottom, proved in loop/work/REVIEW-07/after.json. */
.myth-maid-faq--poster .myth-band-faq {
  --myth-faq-rule: rgba(255, 255, 255, 0.24);
  color: #FFFFFF;
}

.myth-maid-faq--poster .myth-band-faq__question {
  color: #FFFFFF;
}

/* MANUAL-55 (2026-09-14, the user's own instruction): the hover rule that
   stood here is removed with the shared rule it existed to override; see
   css/myth-bands.css's own base `.myth-band-faq__question` rule for the
   sitewide note. */

/* Section 7's ring is Maroon at 1.1:1 on this ground. Gold is the on-dark
   ring this page already uses on its Poster bands. The parchment rule it
   has to beat is 0,4,0, so this carries the same `.myth-band-faq` step and
   lands at 0,4,0 later in source. */
.myth-maid-faq--poster .myth-band-faq .myth-band-faq__question:focus-visible {
  outline-color: #D4A94A;
}

.myth-maid-faq--poster .myth-band-faq__icon::before,
.myth-maid-faq--poster .myth-band-faq__icon::after {
  background-color: #D4A94A;
}

.myth-maid-faq--poster .myth-band-faq__answer {
  color: #FFFFFF;
}

/* Links inside answers and the tail link keep the atom and its hit box and
   only change tone: White with the Gold underline. */
.myth-maid-faq--poster .myth-maid-link {
  color: #FFFFFF;
  background-image: linear-gradient(#D4A94A, #D4A94A);
}

.myth-maid-faq--poster .myth-maid-link:focus-visible {
  outline-color: #D4A94A;
}

/* The column divider and the cross-town right column. */
.myth-maid-faq--poster .myth-faq-cols__main {
  border-inline-end-color: rgba(255, 255, 255, 0.24);
}

.myth-maid-faq--poster .myth-xtown-block {
  border-top-color: rgba(255, 255, 255, 0.24);
}

.myth-maid-faq--poster .myth-xtown-block h3.myth-xtown-block__heading,
.myth-maid-faq--poster .myth-xtown-block p.myth-xtown-block__body {
  color: #FFFFFF;
}

/* REVIEW-03: the cross-town block's eyebrow and its 24 by 2px bar are
   removed with every other eyebrow on the site, so the on-dark tone this
   file used to give that bar goes with them. */

/* THE ONE BUTTON THAT CHANGES TONE, AND THE MEASUREMENT THAT FORCED IT.
   The cross-town PRIMARY on this page points at Gillingham, so it takes
   Gillingham's accent, Maroon. Maroon #6E0C01 against this band's ground
   measures 1.09:1: the fill and the band are the same darkness and the
   button has no edge at all. WCAG 1.4.11 wants 3:1 for the boundary of a
   control, and its label was never the problem (White on Maroon is 12.2:1).
   Gold gives the boundary 6.6:1 on this ground with Ink on Gold at 8.33:1
   for the label, so this one control takes the Gold tone here.

   Done in CSS and not in the markup because myth_xtown_copy() in
   inc/room-card.php is the shared source for both routes and its `tone`
   field is the town's accent, which has not changed: what changed is the
   surface this instance sits on. The three declarations are the Gold
   tone's own, restated, plus its hover pair, so the two can only drift if
   someone edits the atom. Recorded in loop/work/MANUAL-23/cortex.md. */
.myth-maid-faq--poster .myth-xtown-block__actions .myth-btn--primary {
  background-color: #D4A94A;
  border-color: #D4A94A;
  color: #1C1310;
}

@media (hover: hover) and (pointer: fine) {
  .myth-maid-faq--poster .myth-xtown-block__actions .myth-btn--primary:hover {
    border-color: #6E0C01;
    box-shadow: 0 8px 20px rgba(212, 169, 74, 0.34);
  }
}

/* The tertiary row under that button. It ships with .myth-btn--on-light,
   which is Maroon at 1.09:1 here, and this row DOES render on this page:
   only the Gillingham copy carries the links flag and this page reads it. */
.myth-maid-faq--poster .myth-xtown-block__links .myth-btn--ghost {
  color: #FFFFFF;
  background-image: linear-gradient(#D4A94A, #D4A94A);
}

/* =======================================================================
 * 13. REVIEW-10, 2026-09-10. APPENDED ONLY: no rule above this line is
 *     edited, and section 7b, the MANUAL-23 Raiders bronze plate and its
 *     tint, is not touched by a single declaration.
 *
 *     One block: the Church Street address inside FAQ answer 8 becomes the
 *     route's one outbound map link, and takes the link variant Vesper
 *     measured for /gillingham/'s two addresses (his section 2.3), ported
 *     to this band's tones.
 * ===================================================================== */

/* Scoped to a MODIFIER, `.myth-maid-link--address`, and not to every
   anchor in an FAQ answer. Vesper 7.4 item 3 names the selector
   `.myth-maid-faq .myth-band-faq__answer .myth-maid-link`, which would
   also restyle the four other anchors in this accordion (the two tel:
   links, the mailto: and the /gillingham/ link in answer 4). Those carry
   the same resting-underline defect Vesper's finding 3 records, and it is
   a sitewide-shaped fix, not this task's: R09 scoped its own version to
   the two address links for exactly this reason. The modifier keeps the
   variant to the one link the task names and leaves the rest for the
   sitewide pass. Recorded in loop/work/REVIEW-10/cortex.md.

   Four things change against the atom, each for a measured reason.

   1. `box-decoration-break: clone`, with the -webkit- form paired. The
      atom already computes `display: inline`, but an inline box paints ONE
      background across its fragments, so a wrapped address would draw the
      underline across the full line width under a two word last line. With
      clone each line fragment paints its own rule, sized to itself.
   2. `padding-block: 9.5px`, giving the 44px target. The hit box is the
      fragment's PADDING box and a fragment is the font's content area, 25px
      at 17px Karma and 27px at 18px, not the line box. 25 + 19 = 44.00px
      under 768, 27 + 19 = 46.00px from 768. Vertical padding on an inline
      box does not enter the line box, so this buys the target and costs no
      band height.
   3. `background-origin: content-box`, so the rule draws under the words
      and not 9.5px below them.
   4. A RESTING 1px hairline as the second layer, which is an accessibility
      fix and not taste. The atom draws its underline on hover only, behind
      `@media (hover: hover)`, so inside a sentence a touch visitor never
      sees one and the link is distinguished by colour alone. This band's
      answers are White and the link is White, so there is no colour
      difference to fall back on at all. The first layer is the atom's own
      2px Gold rule, still drawing 0 to 100 percent from the left on hover,
      still on the atom's `transition: background-size 200ms ease` and still
      nulled under `prefers-reduced-motion`. */
.myth-maid-faq .myth-band-faq__answer .myth-maid-link--address {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  padding-block: 9.5px;
  background-image: linear-gradient(#D4A94A, #D4A94A),
                    linear-gradient(#D4A94A, #D4A94A);
  background-repeat: no-repeat, no-repeat;
  background-position: 0 100%, 0 100%;
  background-origin: content-box, content-box;
  background-size: 0% 2px, 100% 1px;
}

@media (hover: hover) {
  .myth-maid-faq .myth-band-faq__answer .myth-maid-link--address:hover {
    background-size: 100% 2px, 100% 1px;
  }
}
