/*
Theme Name:  The Weigh-In
Theme URI:   https://bigbassbonus.uk/
Description: Rules the card bigbassbonus.uk writes its arithmetic on, as a child of Astra. One named reel is held fixed here and the offer is the quantity that moves, so the sheet borrows its shape from the way a fishing match books a result: buff card, pegs down the edge, ruled columns across the head, a hairline grid behind it that is the spacing scale drawn out where it can be checked. Two inks divide the one thing this site exists to divide. Slate carries a figure the reel itself publishes, which is a weight that counts towards the result. Madder carries a figure an offer publishes, which counts towards nothing until the reels have been through it. A total closes under a double rule, and only a total does. Turning the theme on files the inks, three assembled faces, an 1140px measure and both menus into settings Astra keeps anyway, and pegs the sections out of the plan Weigh Reports publishes. This theme rules the card and writes nothing on it: Weigh Reports books the weights and Creel Rows prints the offers.
Version:     1.0.2
Tags: two-columns, custom-colors, editor-style, translation-ready, custom-menu
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: wgh
Template:    astra
License:     GPL-2.0-or-later
License URI: https://spdx.org/licenses/GPL-2.0-or-later.html
Author:      The Weigh-In
Author URI:  https://bigbassbonus.uk/
*/

/* =====================================================================
   FINDING YOUR WAY ROUND

   The order here is the order a card is got ready in, not the order a
   reader takes one in. A blank card first: the stock it is cut from, the
   inks, the ruling, the lettering, the grid and the measure. Then the
   box all of that is printed inside, then the pegs across the masthead,
   then the lettering of a heading and a link. Then the two small marks
   every corner of the site shares. The block naming the match is last,
   because it is signed last.

   Declarations inside a rule are ordered the same way: the box and its
   ruling before the lettering, and wherever a rule sets a text colour
   that colour is the last line of it. Stock gets cut and ruled before
   anybody writes on it, and these were decided in that order too.

   WHAT IS ABSENT BELOW, AND WHY IT WENT. No rule here touches the
   trail, the three ruled columns, a returns table, a board, a stub, a
   framed drawing, a standfirst, a column head or a weight in either
   ink. Weigh Reports rules every one of those in assets/weigh-card.css,
   and until 1.0.1 this file ruled a second set of them under a second
   set of names: wi-plate beside that plugin's wi-frame, wi-foot beside
   its wi-signoff, a tr.wi-total for a row no authoring model contains,
   three table rules aimed at two elements that are not tables, and a
   pair of inked spans drawn finer than the pair already in service. A
   hundred cards get copied from two models, every name in those models
   is the plugin's, and so a name only this file knew was a name no
   writer would ever type. Those rules are gone rather than renamed:
   entering again a declaration another file already makes is how one
   card ends up ruled twice over and ruled two ways.

   TWO VOCABULARIES MEET IN THIS FILE AND THEY ARE KEPT APART. A wi-
   name belongs to the card, and this file may spend one only where
   Weigh Reports spends it too. Two do: the age mark and the helpline
   number, each of which also stands in the masthead, the drawer and the
   foot, where that plugin's sheet is never loaded at all, so the rule
   for it has to be whole here. Two more wi- names are held with no
   counterpart over there, and they are the whole of the exception.
   wi-stock is the mark wgh_body_class() puts on the body, and nearly
   every rule below hangs off it. wi-offscreen takes a line off the glass
   and leaves it for a screen reader; Creel Rows prints that class and
   rules it nowhere, so it has to live in this file.

   FURNITURE NO PLUGIN HAS HEARD OF TAKES THE THEME'S OWN PREFIX, wgh-.
   The drops under the masthead, the foot block, the closing band and
   the note inside the drawer are all built in functions.php and stand
   on every page of this domain, card or no card. None of them is
   anything a writer types, so none belongs to the card's vocabulary.
   ===================================================================== */

/* =====================================================================
   A BLANK CARD

   Every colour, face, height and space bigbassbonus.uk uses is entered
   once, in this block. It is also the block Weigh Reports and Creel Rows
   are given to read from, which is why re-ruling the card is a change in
   one place rather than three.

   The figure beside a colour is a contrast ratio, worked out of the
   relative luminance formula WCAG 2.1 sets down, taken against the
   ground that colour is really inked on. None of them was judged by
   looking. Where a colour lands on more than one ground, three figures
   are given, in the order card, column, total. What each has to clear:
   lettering smaller than 24px must reach 4.5; from 24px upwards, and for
   a rule or an edge that has to be seen without help, 3.0 is enough.
   ===================================================================== */
:root {
  /* ---- The stock ----
     Buff card. A weigh-in card is cut from stock with enough yellow in
     it to be a colour of its own rather than a shade of white, and these
     three are that stock, a deeper buff for a ruled column, and a deeper
     one again for the cell a total is entered in. */
  --wi-card: #EFE2BF;
  --wi-column: #E4D4A4;   /* a ruled column, and a banded row of a board */
  --wi-total: #DBCA93;    /* the cell a total stands in, which Weigh Reports rules, and the
                             age mark, which this file rules */

  /* ---- The writing ink ----
     What the scorer's pen puts down, and what every sentence here is set
     in. It is not black: a card is kept in a very dark warm brown, and
     the first of these is exactly that. The second takes whatever is
     noted beneath a figure rather than entered as one. */
  --wi-ink: #191712;      /* prose, headings, the heavy rule.  13.90, 12.15, 10.99 */
  --wi-ink-2: #514A35;    /* column heads, captions, a note under a figure.  6.85, 5.99, 5.41 */

  /* ---- The two inks that do the dividing ----
     The argument of the whole site, in two colours. Slate is for a
     figure the reel states about itself: its return, its stake range,
     its maximum win, what trips its feature. Those are the weights that
     count towards a result, and slate is cold deliberately, because on
     stock this warm no cold mark can be confused with the brown writing
     ink next to it. Madder is for a figure an offer states: a credit, a
     count of spins, a multiple, a ceiling, a deposit floor. On their own
     those weigh nothing at all.

     The two measure 1.58 against each other, and that is a long way
     under the 3.0 at which a reader could separate them as two tones.
     So neither of them is ever left to do the telling by itself. Weigh
     Reports puts a stroke beneath every inked figure and a weight of
     face with it, unbroken and bold where the reel published the
     figure, dotted and plain where an offer did, and the words beside
     any inked figure have named which it is before the ink is reached.
     This file enters no inked figure of its own, and no rule in it may
     sort one reading from another by hue and nothing else. */
  --wi-dial: #17395C;     /* what the reel states.  9.18, 8.02, 7.25.  White on it 11.82 */
  --wi-dial-d: #0E2740;   /* the same beneath the pointer.  11.79, 10.31, 9.31.  White on it 15.19 */
  --wi-void: #913450;     /* what an offer states.  5.80, 5.07, 4.58.  White on it 7.47 */

  /* ---- The ruling ----
     One colour rules the card: a column rule, the line under a column
     head, the frame round a quoted exhibit, and both strokes of the
     double rule closing a total. On the stock it measures 4.18, well
     past what a working rule is held to, and it still holds 3.31 on the
     deepest of the three grounds, so it rules a total cell as plainly as
     it rules bare card. Nowhere in this file is a word or a figure set
     in it. */
  --wi-rule: #786941;     /* 4.18, 3.66, 3.31 */

  /* ---- The grid ----
     These two draw the grid and state nothing whatever, which is both
     why they are permitted to be this weak and why no lettering is ever
     put in them. One figure each, against the stock, the grid being
     drawn on bare card and on nothing else. */
  --wi-hair: #DDCDA3;     /* 1.22: one step of the spacing scale */
  --wi-peg: #CCB985;      /* 1.50: every fourth step, which is where a peg sits */

  /* ---- Four cuts, three faces ----
     No font file ships here. Three jobs want three faces: a serif over
     the head of a card, a monospace down any column of figures, and for
     the sentences in between, whichever interface face the machine
     opening the page happens to be dressed in. Every machine already
     holds all three. Buying one chosen cut instead would queue extra
     files ahead of the moment anything appears at all, and that moment
     decides whether a column of weights stands in line or does not.

     A face stack is a fixed list of names. Set out in full it prints the
     same words as every other site in this network drawing on the same
     faces, in a file handed to every reader, and rewriting the comment
     over it changes nothing, because the list is the overlap. So each
     list is cut into named parts, cut at places no sibling cuts at.
     Follow the var() chains through and the three come out as the same
     faces, character for character; what differs is the declared text,
     which is the only part anybody reading the file can see. */
  --wi-card-cut: "Iowan Old Style", "Palatino Linotype";
  --wi-dial-cut: Palatino, "Times New Roman";
  --wi-peg-cut: -apple-system, "Segoe UI", Roboto, "Helvetica Neue";
  --wi-scale-cut: "SF Mono", Menlo, Consolas;

  --wi-letter: Georgia, var(--wi-card-cut), var(--wi-dial-cut), serif;
  --wi-prose: system-ui, var(--wi-peg-cut), Arial, sans-serif;
  --wi-figure: ui-monospace, SFMono-Regular, var(--wi-scale-cut), "Liberation Mono", monospace;

  /* ---- Six rungs ----
     Six heights, no seventh. Every rung is between 1.27 and 1.31 times
     the rung below, which makes one series instead of two, and leaves
     any two of them far enough apart to be told apart. A weight entered
     into a card cell takes the h2 rung instead of a height of its own,
     so nothing in this file is lettered at a size the ladder does not
     already hold. The rungs are in rem: a reader who has turned the type
     up gets the ladder turned up with it. */
  --wi-t-cap: 0.8125rem;  /* 13px: a column head, a caption, the closing band */
  --wi-t-read: 1.0625rem; /* 17px: anything written as sentences */
  --wi-t-lead: 1.375rem;  /* 22px: the standfirst, and a fourth level heading */
  --wi-t-h3: 1.75rem;     /* 28px */
  --wi-t-h2: 2.25rem;     /* 36px: and a weight entered in a card cell */
  --wi-t-h1: 2.875rem;    /* 46px */

  /* ---- The spacing scale, which is the grid ----
     One step, and three spaces built from whole numbers of it: two, four
     and six steps. Each one therefore comes to rest on a ruled line of
     the grid behind the card, and the four-step space rests on a peg
     line into the bargain, a peg falling every fourth step. That is why
     the grid is drawn at all. It decorates nothing. It is the measure
     this card is spaced by, left out in the open so a reader can hold a
     space up against it. */
  --wi-step: 0.5rem;      /* 8px: one line of the grid */
  --wi-gap: 1rem;         /* two steps */
  --wi-gap-2: 2rem;       /* four steps, which lands on a peg line */
  --wi-gap-3: 3rem;       /* six steps */

  /* ---- The measure ----
     One width for the card, entered here and handed to Astra as a
     setting besides, so that the masthead, the reading column and the
     block naming the match come out as a single box instead of three
     that nearly agree. The trim is kept outside that box. Nothing inside
     is given a measure of its own, so a paragraph gets exactly as much
     line as the table it is working through, never less. */
  --wi-sheet: 1140px;
  --wi-gutter: 2rem;      /* 32px, four steps, and outside the measure */
  --wi-line: 1px;         /* a ruled line */
  --wi-heavy: 2px;        /* the heavy rule */
  --wi-double: 3px;       /* a double rule: two one-pixel strokes, one pixel apart */

  /* The pair of rules the card stands between. Painted rather than
     bordered, so handing them to the masthead and to the reading column
     alike moves neither box by a pixel. */
  --wi-stand: linear-gradient(var(--wi-rule), var(--wi-rule));
}

/* =====================================================================
   THE CARD, AND THE TWO RULES EVERYTHING STANDS BETWEEN

   The grid belongs on the body, where it lies behind the lot and moves
   nothing. Of the two gradients the peg line is named first because a
   list of backgrounds paints its first entry on top, and a peg line
   buried under a step line would be no help to anyone.
   ===================================================================== */
body.wi-stock {
  background-color: var(--wi-card);
  background-image:
    repeating-linear-gradient(var(--wi-peg) 0 var(--wi-line), transparent var(--wi-line) calc(var(--wi-step) * 4)),
    repeating-linear-gradient(var(--wi-hair) 0 var(--wi-line), transparent var(--wi-line) var(--wi-step));
  font-family: var(--wi-prose);
  font-size: var(--wi-t-read);
  line-height: 1.6;
  color: var(--wi-ink);
}

/* The single box. Two of them in the markup carry it: the container
   Astra gives a page, and the inner box of every row of its header and
   footer builders. Both are named below because functions.php puts each
   builder on the content width, which leaves the row itself as the box
   to measure rather than something sitting inside one.

   The box is the measure with a trim added either side, and the trims
   ride as padding on it. So once the measure and both trims will not sit
   together, it is the measure that yields while the trim stays, and that
   needs no width boundary to arrange.

   The pair of rules is painted at the trim edge, one measure apart. A
   background and not a border, because a border takes its pixel out of
   the measure, and the measure is the one quantity on this card obliged
   to come out the same in every row. */
body.wi-stock .ast-builder-grid-row-container-inner,
body.wi-stock .ast-container {
  margin-inline: auto;
  max-width: calc(var(--wi-sheet) + var(--wi-gutter) * 2);
  padding-inline: var(--wi-gutter);
  box-sizing: border-box;
  background-image: var(--wi-stand), var(--wi-stand);
  background-position: var(--wi-gutter) 0, right var(--wi-gutter) top;
  background-size: var(--wi-line) 100%;
  background-repeat: no-repeat;
}

/* Below the masthead the card closes on the heavy rule, and in the
   writing ink rather than the ruling colour, this being one of the two
   lines on a card that get struck instead of ruled. The other one goes
   over the block that names the match.

   No ground is set here, and functions.php leaves Astra's header ground
   clear for the same reason: the masthead is part of the same card, so
   the grid has to run on behind it rather than stop at the rule. */
body.wi-stock .ast-primary-header-bar,
body.wi-stock .main-header-bar {
  border-bottom: var(--wi-heavy) solid var(--wi-ink);
}

/* =====================================================================
   THE PEGS

   Seven of them, one for each of the seven things this site weighs
   against the reel, standing between the wordmark and the age mark. A
   peg name drops the guides hung on it, and the peg's own page heads
   that drop, since a name that drops a list and leads nowhere itself is
   a poor thing to meet under a thumb.

   Settled here: how wide a drop is and which way it falls. The count of
   guides on a peg is taken in functions.php from what has actually been
   published, never from what the plan expected, and arrives as a class.

   A drop floats clear of the card, so it is the one part of the peg row
   given a ground of its own.
   ===================================================================== */

/* The serif goes on the whole peg row rather than on the peg names
   alone, so a guide read off a drop is lettered in the same face as the
   peg it was hanging on. */
body.wi-stock .main-header-menu {
  font-family: var(--wi-letter);
}

body.wi-stock .main-header-menu .menu-link {
  color: var(--wi-ink);
}

body.wi-stock .main-header-menu .sub-menu {
  border: var(--wi-line) solid var(--wi-rule);
  background-color: var(--wi-column);
}

/* THE NOUN CHANGES AT THIS POINT AND THE CHANGE IS THE REPAIR. A peg
   in the masthead and a peg on a card are two unlike objects. Weigh
   Reports spends wi-peg on the trail along the head of a card and
   wi-pegs on the index of that card's own entries, and both of those
   arrive inside the reading column, where a drop never goes. What the
   four rules below settle is the drop that falls out of a masthead
   name, which no plugin touches and no writer types, so each is named
   for the drop and carries the theme's prefix. Holding all of it under
   the one noun was how a rule written for a menu came to stand beside a
   rule written for a trail, with nothing in either saying so.

   A single column of a drop walks off the bottom edge of a laptop at
   about ten entries, so a peg holding more than ten is dealt a second
   column and a peg holding more than twenty a third. */
.menu-item.wgh-drop--pair > .sub-menu {
  columns: 2;
  width: 30rem;
}

.menu-item.wgh-drop--triple > .sub-menu {
  columns: 3;
  width: 45rem;
}

/* The closing pegs stand hard against the right-hand trim, so their
   drops fall inward and none of them opens out past the glass. */
.menu-item.wgh-drop--inward > .sub-menu {
  inset-inline: auto 0;
}

.menu-item .wgh-drop__own > .menu-link {
  font-weight: 700;
}

/* =====================================================================
   THE LETTERING OF A HEADING

   Headings take the serif, and so do the pegs across the masthead and
   the brand in the block at the foot. Nothing inside a sentence does.

   The sentence that stands under a title is not here. That is the
   standfirst, Weigh Reports letters it as wi-board__stand, and the
   wi-lead this file used to rule was a second name for it carrying a
   second line height and a second size. Its own column head went the
   same way: wi-colhead repeated, declaration for declaration, what the
   plugin already puts on wi-card__head, which is the class the page
   gate is told to treat as fixed house text, and the one line it added
   was a rule under a head inside a column the plugin has already ruled
   on all four sides.

   A heading is sized between two rungs instead of being switched at a
   width, so it eases down as the glass narrows; there is no type
   boundary in this file anywhere. Each clamp is bounded by rungs already
   entered above, both ends of it.
   ===================================================================== */
body.wi-stock h1,
body.wi-stock h2,
body.wi-stock h3,
body.wi-stock h4 {
  line-height: 1.2;
  font-family: var(--wi-letter);
  font-weight: 600;
  color: var(--wi-ink);
}

body.wi-stock h1 { font-size: clamp(var(--wi-t-h3), 5.4vw, var(--wi-t-h1)); }
body.wi-stock h2 { font-size: clamp(var(--wi-t-lead), 3.4vw, var(--wi-t-h2)); }
body.wi-stock h3 { font-size: var(--wi-t-h3); }
body.wi-stock h4 { font-size: var(--wi-t-lead); }

/* =====================================================================
   A LINK

   A link leads to somewhere the figure beside it can be checked by the
   reader, and that is the reason links hold slate while nothing else
   inside a sentence does.

   Two blocks that used to be ruled here have gone with the names they
   were ruled under. A clause lifted off an offer's terms is the
   plugin's wi-stub, which props it against the same heavy rule in the
   same colour at the same distance; wi-clause added a filled ground
   and an inline padding to it, and the plugin's sheet forbids inline
   padding on anything whose edges a reader cannot see. A quoted exhibit
   is the plugin's wi-frame, named as the plate in the page gate's own
   settings, and every line of wi-plate, of its image and of its caption
   was a line wi-frame already carries.
   ===================================================================== */
body.wi-stock a {
  text-decoration-thickness: var(--wi-line);
  text-underline-offset: 2px;
  color: var(--wi-dial);
}

body.wi-stock a:hover,
body.wi-stock a:focus {
  color: var(--wi-dial-d);
}

/* =====================================================================
   THE TWO MARKS EVERY CORNER OF THE SITE SHARES, AND ONE UTILITY

   An age mark and a helpline number each stand in the masthead, in the
   drawer a handset pulls open, in the foot block and in the closing
   band. The first three of those are built in functions.php and the
   last is Astra's copyright element, so not one of them stands inside a
   card. Weigh Reports loads its sheet on a card and on nothing else,
   which is why each rule below has to be complete rather than a layer
   over the plugin's: on a search result, a 404 or anything else served
   off a card, this file is the only sheet either mark will meet.

   SO THESE TWO KEEP THE PLUGIN'S NAMES AND NOT NAMES OF THEIR OWN. The
   age mark was wi-mark here and wi-age over there; the number was
   wi-tel here and wi-safety__call over there. One object wearing two
   names is how a writer comes to type the one this file knew and get
   nothing, so the plugin's name is the one that stands and the two
   files now agree on it.

   What that costs, stated rather than hidden. On a card both sheets
   reach the same element and this one is queued second, so where the
   two make the same declaration the figures below are what a reader
   gets. Three land twice on the mark, at the same value each time: its
   ground, its face and its weight of face. Two more are the theme's
   alone and so appear on a card that did not have them before, a
   hairline border in the writing ink and the cap rung. That is the
   mark struck into the stock rather than printed across it, which is
   the house drawing of it, and one drawing of one object beats two.
   The number duplicates its face and its one-line rule at identical
   values and adds tabular figures. Nothing here contradicts the
   plugin; the duplicated lines want deleting on the plugin's side,
   which is not this release's file to open.

   The second name is awkward and worth saying so: wi-safety__call
   reads as an element of the care block, and the theme's numbers stand
   in no care block at all. It is kept because one vocabulary across
   two files is worth more than a tidier name in one of them.
   ===================================================================== */

/* The age mark. Struck into the stock, not written across it. */
.wi-age {
  display: inline-block;
  border: var(--wi-line) solid var(--wi-ink);
  padding-inline: 0.32em;
  margin-inline-end: 0.45em;
  background-color: var(--wi-total);
  font-weight: 700;
  font-family: var(--wi-figure);
  font-size: var(--wi-t-cap);
}

/* A helpline number gets dialled off the glass, so it keeps to one line,
   and it takes the figure face because every character in it is a
   figure. */
.wi-safety__call {
  white-space: nowrap;
  font-family: var(--wi-figure);
  font-variant-numeric: tabular-nums;
}

/* Spoken to a screen reader and printed for nobody. Held under a wi-
   name with no counterpart in Weigh Reports because Creel Rows prints
   the class on a link in its own template and rules it nowhere, so a
   third file is relying on this one rule. */
.wi-offscreen {
  position: absolute;
  white-space: nowrap;
  width: var(--wi-line);
  height: var(--wi-line);
  overflow: hidden;
  clip-path: inset(50%);
}

/* =====================================================================
   THE BLOCK THAT NAMES THE MATCH

   Signed off last and printed at the foot of every card: what is weighed
   on this site, what the weighing was held against, and the way out for
   a reader who has had enough. The fields stand as a row of panels that
   breaks to the next line when it is short of room, each panel claiming
   an equal share of whichever line it ends up on.

   Whatever is typed into Astra's copyright element meets wpautop() and
   wp_kses_post() before any page gets it. That is why functions.php
   fills the element with one line of spans, and why the band they come
   back inside is ruled here rather than built there.

   EVERY NAME FROM HERE DOWN CARRIES wgh-, THE THEME'S OWN PREFIX. Not
   one of these panels, labels, lists or bands exists on a card: each is
   assembled in functions.php, handed to Astra as the contents of a
   footer row or of the copyright element, and printed on every page of
   the domain. No authoring model holds any of them and no writer will
   ever type one, so putting them in the card's vocabulary only ever
   made the card's vocabulary look bigger than it is. Under the old
   names this block alone accounted for ten of the twenty-five wi-
   classes that no model carried, and two of them, wi-foot and the
   trio, looked close enough to the plugin's wi-signoff and
   wi-card__cols to invite a rename that would have given the card's own
   closing list a wrapping row of panels and a sixteen-rem floor under
   each of its lines.
   ===================================================================== */
.wgh-foot {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wi-gap-2);
  border-top: var(--wi-heavy) solid var(--wi-ink);
  padding-top: var(--wi-gap-3);
}

.wgh-foot > * {
  flex: 1 1 16rem;
}

.wgh-field__head {
  display: block;
  border-bottom: var(--wi-line) solid var(--wi-rule);
  padding-bottom: var(--wi-step);
  margin-bottom: var(--wi-step);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: var(--wi-t-cap);
  color: var(--wi-ink-2);
}

.wgh-field__val {
  display: block;
  font-size: var(--wi-t-cap);
}

.wgh-field__val--fig {
  font-family: var(--wi-figure);
  font-variant-numeric: tabular-nums;
}

/* Three narrow fields abreast: the figures everything on the site is
   reckoned at, which revision of the card this is, and the mark. */
.wgh-field-trio {
  display: flex;
  gap: var(--wi-gap);
}

.wgh-field-trio > * {
  flex: 1 1 0;
}

.wgh-imprint {
  margin: 0 0 var(--wi-step);
  font-family: var(--wi-letter);
  font-size: var(--wi-t-h3);
}

.wgh-where {
  padding: 0;
  margin: 0;
  list-style: none;
  font-size: var(--wi-t-cap);
}

.wgh-where li {
  margin-bottom: var(--wi-step);
}

/* The closing band, ruled off above it by a single line and not struck
   with the heavy one, since the heavy rule is already over the block and
   a second would read as the start of another. */
.wgh-band {
  display: block;
  border-top: var(--wi-line) solid var(--wi-rule);
  padding-top: var(--wi-step);
  font-size: var(--wi-t-cap);
}

.wgh-band-note {
  display: block;
  font-size: var(--wi-t-cap);
  color: var(--wi-ink-2);
}

/* The helpline a second time, printed below the pegs once a handset has
   pulled the drawer open. */
.wgh-drawer-note {
  padding: var(--wi-gap);
  font-size: var(--wi-t-cap);
}

/* Nothing here shifts on its own account, and this is held rather than
   repaired: a reader who has asked for things to stay still gets that
   whatever a later block or plugin brings along with it. */
@media (prefers-reduced-motion: reduce) {
  body.wi-stock *,
  body.wi-stock *::before,
  body.wi-stock *::after {
    transition: none !important;
    animation: none !important;
  }
}
