/*
 * Surge TCG — baseline reset
 *
 * The redesign's globals.css was authored against Tailwind 4's preflight and
 * defines almost no base element styles of its own: no img, ul, ol, p, dl,
 * button, select or svg rules. Removing the Tailwind import removes that
 * baseline, so this file restores only the parts the design depends on.
 *
 * ---------------------------------------------------------------------------
 * WHY EVERY SELECTOR IS WRAPPED IN :where()
 * ---------------------------------------------------------------------------
 * Preflight works because it is specificity-zero: `*{margin:0}` and
 * `h1{font-size:inherit}` lose to literally any authored rule. Scoping those
 * to `body.surge-page *` would RAISE specificity to (0,1,1) and the reset
 * would start beating the design it is meant to support — h1 renders at 16px
 * instead of 99px, headings lose their weight, and so on.
 *
 * :where() always contributes zero specificity, so `:where(body.surge-page) *`
 * scopes to Surge pages while still weighing (0,0,0). The design wins every
 * conflict, exactly as it did under Tailwind.
 *
 * Do not "simplify" these selectors by removing :where(). It will look like it
 * works and then silently flatten the typography.
 * ---------------------------------------------------------------------------
 */

:where(body.surge-page) *,
:where(body.surge-page) *::before,
:where(body.surge-page) *::after{box-sizing:border-box;border:0 solid;margin:0;padding:0}

:where(body.surge-page) h1,:where(body.surge-page) h2,:where(body.surge-page) h3,
:where(body.surge-page) h4,:where(body.surge-page) h5,:where(body.surge-page) h6{font-size:inherit;font-weight:inherit}

:where(body.surge-page) ul,:where(body.surge-page) ol{list-style:none}

:where(body.surge-page) a{color:inherit;text-decoration:inherit}

:where(body.surge-page) img,:where(body.surge-page) svg,:where(body.surge-page) video,
:where(body.surge-page) canvas,:where(body.surge-page) picture{display:block;vertical-align:middle}
:where(body.surge-page) img,:where(body.surge-page) video{max-width:100%;height:auto}

:where(body.surge-page) button,:where(body.surge-page) input,:where(body.surge-page) optgroup,
:where(body.surge-page) select,:where(body.surge-page) textarea{font:inherit;color:inherit;letter-spacing:inherit;background:transparent}
:where(body.surge-page) button,:where(body.surge-page) [type='button'],
:where(body.surge-page) [type='submit'],:where(body.surge-page) [type='reset']{-webkit-appearance:button;background-color:transparent;background-image:none}

:where(body.surge-page) table{border-collapse:collapse;text-indent:0;border-color:inherit}
:where(body.surge-page) ::placeholder{opacity:1;color:#7d7490}
:where(body.surge-page) [hidden]{display:none!important}

/* Astra wrapper neutralisation. These target Astra's own classes rather than
   generic elements, so normal specificity is correct and wanted here. */
body.surge-page .ast-container,
body.surge-page .site-content .ast-container,
body.surge-page .entry-content{max-width:none;padding:0;margin:0}
body.surge-page .entry-content > *{margin-block:0}
body.surge-page .site-content{padding:0}

/* ---------------------------------------------------------------
   Protect WordPress chrome. The element reset above is deliberately
   broad, so the logged-in admin bar gets its own defaults back.
   High specificity here is intentional.
   --------------------------------------------------------------- */
#wpadminbar,#wpadminbar *,#wpadminbar *::before,#wpadminbar *::after{box-sizing:content-box}
#wpadminbar img,#wpadminbar svg{display:inline-block}
#wpadminbar ul,#wpadminbar ol{list-style:none}
