/* ============================================================
   TYPE v2 — the /medical-tourism reading, extracted as numbers (2026-08-11)
   Load order: shared.css → premium.css → motion.css → glow3.css → type.css

   WHY THIS FILE IS NOT A FONT-SIZE PASS.
   Shane pointed at /medical-tourism and asked for "the sizing and font" everywhere. Measured
   live against /clinic, the two columns came back:

       element      /medical-tourism        /clinic
       article p    17.5px / 600 / #0A0A0A  17.5px / 400 / #22304A
       article li   17px   / 600            18px   / 400
       article h2   30px   / 600            30px   / 600   <- identical
       article h3   22px   / 700            20px   / 700
       table td     15.5px / 400            15.5px / 400   <- identical

   The sizes were already equal, and `li` was already BIGGER on clinic. What reads as
   "bigger and bolder" is WEIGHT (600 vs 400) and INK (near-black vs blue-grey). Rolling out
   px values would have shipped a change nobody could see, on 25 pages. So this file changes
   weight, ink and hairlines — and deliberately leaves the size scale alone.

   GATED: rules only apply to `<body class="... type-v2">`. Roll out = add the class to a page.
   Roll back = remove it. Never copy these rules into a page's own <style> block — that is the
   drift ACCEPTANCE-STANDARD.md §1b was written for after tonight's gold-ring incident.

   The `body.type-v2` prefix is also load-bearing for specificity (0,2,x): every page carries its
   own <style> block (index 512 lines, google-maps 282), and a bare `article p` selector loses
   to them. That is the "`.premium h1` beat a bare `h1`" failure, avoided on purpose.

   SCOPE FIX 2026-08-11 — `article` → `:is(article,section)`.
   This file was scoped to `article` and had therefore been COMPLETELY INERT on 14 of the pages
   carrying the class, because those pages are built from <section> and contain no <article> at all:
       index · website · line-oa · about · case-mdcc · check · seo · geo-aeo
       google-ads · ai-visibility · factory · dorm · google-maps · privacy
   Measured live before the fix, their body prose sat at 14.5–16.5px / 400 / muted (#5C6660,
   #5F6B7A, #1C2321) while every page that happens to own an <article> read the intended
   19px / 600 / #0A0A0A. That gap — not the numbers in this file — is why those pages "look cheap".
   The class was on the body the whole time; the selector simply never matched anything.

   Why `:is(article,section)` and not a bare `section`, or dropping the scope entirely:
     - Specificity is UNCHANGED. `:is()` takes the specificity of its most specific argument, and
       `article` and `section` are both type selectors (0,0,1). `body.type-v2 :is(article,section) p`
       scores exactly what `body.type-v2 article p` scored, so the deliberate balance against each
       page's own <style> block described above is preserved bit for bit. Dropping the scope would
       have changed it, and would have caught chrome text too.
     - Chrome cannot bleed: verified on the parsed DOM of all 34 pages that no <section> is nested
       inside a <header>, <nav> or <footer>, and no <header>/<nav>/<footer> sits inside a <section>.
       Header, nav and footer type is therefore untouched by construction, not by luck.
     - Where a <section> nests inside an <article> the rules match twice with identical values.
       Harmless. Do not add complexity to avoid it.
   ============================================================ */

/* ---- 1. BODY PROSE — 400 → 600, blue-grey → near-black.
   SIZE BUMP 2026-08-11 (Shane: "use bigger fonts"). The earlier measurement said weight, not
   size, and that was right about why the reference LOOKED different — but he has now asked for
   bigger outright, which is a preference, not a measurement, and it wins. Raised from the
   17.5px shared base. Line-height rises with it or Thai ascenders/tone marks collide. ---- */
body.type-v2 :is(article,section) p{font-size:19px;font-weight:600;color:#0A0A0A;line-height:1.85}
body.type-v2 :is(article,section) li{font-size:18.5px;font-weight:600;color:#2F3A49;line-height:1.8}
body.type-v2 .lead{font-size:20.5px;line-height:1.75}

/* Small print stays small print — captions, sources and notes must NOT go to 600, or the page
   loses its hierarchy and everything shouts at once. */
body.type-v2 :is(article,section) .cap,body.type-v2 :is(article,section) .srcline,
body.type-v2 :is(article,section) .meta,
body.type-v2 :is(article,section) figcaption,
body.type-v2 :is(article,section) small{font-weight:500;color:#5F6B7A}

/* ---- 2. HEADINGS — h3 only. h2 measured identical on both pages, so it is untouched. ---- */
body.type-v2 :is(article,section) h3{font-size:24px;font-weight:800;letter-spacing:-.01em;line-height:1.45}

/* ---- 3. TABLES — heavier header row, readable body. Cell padding grows with the type or the
   rows read as a wall of text. ---- */
body.type-v2 table th{font-weight:800;font-size:17px;color:#0A0A0A;padding:16px 18px}
body.type-v2 table td{font-weight:500;font-size:16.5px;padding:16px 18px;line-height:1.7}

/* ---- 4. HAIRLINES — the neutral #E6E9EE border that makes the reference read flat and clean.
   Colour only. No border-width, no radius, no box-shadow: the ring belongs to glow3.css and
   nothing here may compete with it. ---- */
body.type-v2 .blk,body.type-v2 .answer-box,body.type-v2 .cta-box,
body.type-v2 .faq-item,body.type-v2 .tbl-scroll{border-color:#E6E9EE}

/* ---- 5. BREATHING ROOM (2026-08-11) ----
   Shane: "everything look stuck together and really hard to read ... spread it out each box".
   The boxes did not move — the GLOW grew. A 44px halo on a box with a 12px margin puts two
   rings inside each other's space, and a column of FAQ cards reads as one solid slab. Spacing
   has to grow with the glow; those two numbers are coupled and were changed independently.

   Direct children of <article> only. Grid items (.mt-stats, .proofgrid, .vs) are spaced by
   their container's `gap` — adding margins there would break the grid instead of spacing it. */
body.type-v2 :is(article,section) > .lit,
body.type-v2 :is(article,section) > .blk,
body.type-v2 :is(article,section) > .tbl-scroll,
body.type-v2 :is(article,section) > .warn,
body.type-v2 :is(article,section) > .exhibit{margin-bottom:44px}
body.type-v2 :is(article,section) > .lit + .lit{margin-top:14px}

/* Stacked FAQ cards were the worst case in Shane's screenshot — rings touching, no separation.
   Raised 22 → 34px on the second pass ("seperate more space"). */
body.type-v2 .faq-item,body.type-v2 .faq details{margin-bottom:34px}

/* Inner padding too — a bigger typeface inside the same box is what makes text feel jammed
   against the border even when the boxes themselves are far apart. */
body.type-v2 .blk,body.type-v2 .answer-box,body.type-v2 .faq-item,
body.type-v2 .cta-box,body.type-v2 .warn{padding:30px 32px}

/* A caption or source line sitting immediately under a lit box was being overlapped by the
   halo and the accent bar. Push it clear. */
body.type-v2 .srcline,body.type-v2 .kw-note,body.type-v2 .cap{margin-top:18px}

/* Section rhythm: headings need air above them once the boxes carry glow. */
body.type-v2 :is(article,section) h2{margin-top:68px;margin-bottom:18px}
body.type-v2 :is(article,section) h3{margin-top:36px}
body.type-v2 :is(article,section) p{margin-bottom:20px}
body.type-v2 :is(article,section) li{margin-bottom:12px}

/* ---- 6. FIRST CHILD INSIDE A BOX (2026-08-13) ----
   Rule 5 gives headings 36-68px of air so they separate SECTIONS. When the
   heading is the first thing inside a card that margin lands inside the card's
   own padding instead, and every card opens with ~70px of dead space. Found
   while rolling the /medical-tourism structure onto /google-maps.
   Specificity (0,3,2) beats rule 5's `:is(article,section) h3` at (0,1,3) —
   deliberate, not accidental.
   h2 is DELIBERATELY excluded: the reference measures 10 of 10 h2s at 68/18
   including the ones that open a box, and matching it is the whole point. */
body.type-v2 :is(article,section) :is(.blk,.lit,.warn,.cta-box,.answer-box,.faq-item)>:is(h3,h4,p,ul,ol):first-child{margin-top:0}
