/* ============================================================
   PRIME ACADEMY GROUP — v6 · ABOUT
   pag-v6-about-elementor.css — About's own bridge.

   Loads after pag-v6-elementor.css and only on About.

   WHY THIS FILE EXISTS SEPARATELY FROM THE SHARED BRIDGE
   `pag-v6-elementor.css` is one file every v6 page loads, and every session
   building a page would be appending to the same tail. The second to save
   wipes the first — silently, with no error, which is exactly how
   `pag-elementor.css` bit the v4.7 build. So anything true of one page only
   lives in that page's own file, and the shared bridge is claimed before it is
   touched.

   Everything here re-points a v6 rule that Elementor's markup stopped
   matching. Nothing here changes the design, and nothing here restates a v6
   value — no padding, no colour, no size. Every rule was written from a
   measurement, not from reading; the section heights it closes are recorded
   against each one.

   WHAT IS NOT HERE, BECAUSE THE SHARED BRIDGE ALREADY CARRIES IT
     · the `.open` band — §28, written for both inner pages
     · `.open` / `.panel` / `.close-grid` margins — §26.6, §26.7
     · `[id]{scroll-margin-top}` — §26.5, which covers this page's one in-page
       jump, the opening's "How the two names relate" → `#relationship`
     · every button wrapper's `display:contents` — §7
     · heading line heights — §13
   ============================================================ */


/* ------------------------------------------------------------
   1. THE ADDRESS ROW RUNS ACROSS, NOT DOWN
   v6.1.2 writes `<span class="rel-links">` and gives it `display:flex` with no
   direction, so it takes the initial `row`. An Elementor container is a flex
   COLUMN — it sets `flex-direction:var(--flex-direction)` and defaults that to
   column — so the two addresses stacked.

   It measured as a wrap rather than a stack, which sent me looking at widths
   first: the row reported `flex-wrap:wrap` and both children fitted easily
   inside it (106px and 186px in a 527px row), and the second still sat on its
   own line 32px down. 32 is one 24px line plus v6's own 8px `row-gap` — a
   column, not a wrapped row.

   The same shape as `.open-cta` in §28 of the shared bridge and `.foot-end` in
   §10. Any v6 element that is a flex ROW and becomes a container needs this.

   Card 2's closing row: 55px -> 24. The card: 388 -> 332.
   ------------------------------------------------------------ */
body.pag-v6 .rel-links{ flex-direction:row; }


/* ------------------------------------------------------------
   2. THE RELATIONSHIP CARD'S OWN CHILDREN
   v6 makes the card a flex column and grows its paragraph — `.rel-card p
   {flex:1}` — so that both cards' addresses sit on the floor whatever the copy
   above them is. A Text Editor puts that paragraph inside a widget wrapper, so
   the WRAPPER was the flex child and the paragraph sat at its natural height
   with the rule applying to nothing.

   The wrappers step out of the box tree, so the elements v6 wrote its rules
   against are the flex children again. Same repair as §11 of the shared
   bridge, which does it for the homepage's option card.

   `.rel-links`' wrapper is included for the same reason one level down: the
   eyebrow and the address are its flex items, and with the wrappers in place
   the first took the whole row and pushed the second onto a second line.
   ------------------------------------------------------------ */
body.pag-v6 .rel-card > .elementor-widget-text-editor,
body.pag-v6 .rel-card > .elementor-widget-text-editor > .elementor-widget-container,
body.pag-v6 .rel-links > .elementor-widget-text-editor,
body.pag-v6 .rel-links > .elementor-widget-text-editor > .elementor-widget-container{ display:contents; }


/* ------------------------------------------------------------
   3. THE PHOTOGRAPHS. THE ONE THAT NO MEASUREMENT COULD SEE.

   v6 fills both figures with `position:absolute; inset:0`, against a figure
   that is `position:relative`. Elementor's Image widget wrapper is ALSO
   `position:relative`, so it became the nearest positioned ancestor — and a
   wrapper whose only child is absolutely positioned has no content, so it is
   zero pixels tall. `inset:0` against a zero-height box renders the
   photograph at zero height.

   EVERY MEASUREMENT PASSED. `.cap-fig` holds its box open with
   `aspect-ratio:16/10` and `.who-fig` stretches to its grid row, so both
   figures measured exactly right — 385x241 and 576x557, to the pixel, against
   v6.1.2 — with no picture in them at all. Seven sections agreed at 1440 and
   the width ladder was flat. Only the pixel diff saw it:

       who   49.67% differing at TOL=12, 36.11% at TOL=64
       caps  52.47% differing at TOL=12, 43.70% at TOL=64

   A difference that does not collapse as the tolerance rises is real, and
   nothing else in the harness would ever have reported this one. It is trap 2
   in V6-BUILD-RULES.md, hit exactly as written.

   The wrapper steps out of the box tree, so the figure is the positioned
   ancestor its rules were written against.
   ------------------------------------------------------------ */
body.pag-v6 .who-fig > .elementor-widget-image,
body.pag-v6 .who-fig > .elementor-widget-image > .elementor-widget-container,
body.pag-v6 .cap-fig > .elementor-widget-image,
body.pag-v6 .cap-fig > .elementor-widget-image > .elementor-widget-container{ display:contents; }


/* ------------------------------------------------------------
   4. THE RELATIONSHIP CARDS ARE LINKS. THEY WERE NOT.

   v6.1.2 makes each card a single `<a class="rel-card">`, so the whole card is
   clickable. An Elementor container cannot be an `<a>`, so the card is a
   container and its own inner link has to be stretched over it — §5 of the
   shared bridge does exactly this for the homepage's option cards and for the
   closing pair, and `.rel-card` needs the same and did not have it.

   NOTHING ELSE IN THE HARNESS WOULD HAVE FOUND THIS. Seven sections measured
   identical at 1440, the width ladder was flat, the copy was byte-identical,
   the section was pixel-identical at TOL=64, and all fourteen hover states
   matched — including `.rel-card:hover`, because the hover is on the container
   and the container was fine. Two of the page's cards simply did not work.
   `hit.mjs` did not catch it either: it asks whether every visible LINK is
   reachable, and the small "isoprime.com.au" anchor inside the card was. The
   card was not a link to ask about.

   Found by sampling `document.elementFromPoint` at five points inside each
   card and asking what anchor it lands in:

       v6.1.2   .rel-card[0] tag=A    / / / / /
       before   .rel-card[0] tag=DIV  — — — — —
       after    .rel-card[0] tag=DIV  /  /  /  /  /

   `position:relative` is not in page-about.css because v6 never needs it —
   the card IS the anchor there. It is the positioned ancestor the stretch
   resolves against, so it is structural to this pattern rather than a value
   borrowed from the design. `.opt` gets it from v6's own stylesheet; this one
   has to be given it, exactly as `.close-card` is in §5.

   The six capability cards deliberately get NO such rule: all six lead to the
   same page, so the section's one button carries it and the cards stay quiet.
   Verified still inert — `.cap` samples "— — — — —" on both sides.
   ------------------------------------------------------------ */
body.pag-v6 .rel-card{ position:relative; }
/* AND `.rel-links` MUST NOT BE A CONTAINING BLOCK.
   The stretch resolves against the nearest POSITIONED ancestor, and every
   Elementor container is `position:relative`. On the closing cards the link is
   a direct child, so that ancestor is the card and §5 works. Here the link
   sits one level down inside `.rel-links`, so the overlay sized itself to the
   24px address row and the card stayed dead — with the rule present, matching,
   and computing exactly as written. v6.1.2's `.rel-links` is a `<span>` with no
   position at all, so this is its own behaviour restored, not a new value. */
body.pag-v6 .rel-links{ position:static; }
body.pag-v6 .rel-card .link a::after{
  content:''; position:absolute; inset:0; z-index:1;
}


/* ------------------------------------------------------------
   5. NOT A RULE — A NOTE ON TWO THINGS FIXED IN THE BUILDER INSTEAD

   Both of these could have been closed with CSS here and should not have been,
   because the honest fix was that the markup was wrong.

   `.tag` AND `.rel-here` ARE SPANS, NOT PARAGRAPHS. v6.1.2 writes both as
   `<span>`. Built as `<p>` they were caught by `.rel-card p{flex:1;margin-
   bottom:var(--s5)}`, which in v6 can only ever match the card's body copy —
   so the eyebrow grew and the address carried a 24px margin that pushed the
   row onto two lines. Writing the class into the Text Editor's own markup
   rather than through the CSS Classes control keeps them spans, and the
   over-match disappears with nothing here to describe it. The control puts a
   class on the wrapper, and a `<span>` is not something it can produce.

   THE `.who` LEAD IS ONE TEXT EDITOR WITH THREE PARAGRAPHS, and its class is
   in the markup for a different reason: `.lead` sets a font SIZE, so on the
   widget wrapper it inherited into all three paragraphs and the block measured
   89px too tall with the body copy set at lead size. Splitting the lead into
   its own widget instead measured 24px SHORT, because a lone paragraph is
   `p:last-child` and §14 of the shared bridge zeroes that, while Elementor's
   own `.e-con .elementor-widget.elementor-widget{margin-block-end:0}` zeroes
   the wrapper — both boxes lose and `.who-text .lead{margin-bottom:var(--s5)}`
   lands on nothing. Third in a run of three the same paragraph is not
   `:last-child`, and v6's rule is the only one that applies.

       .who section:  533 (split) · 646 (merged, class on wrapper) · 557 (both
                      fixed) — against v6.1.2's 557.
   ------------------------------------------------------------ */
