/* SerpAstra site fixes — 2026-10-31 (round 11).
   Rules for parts that live OUTSIDE <main class="hp"> (footer, consent): Base CSS is a
   hashed immutable asset, so these overrides ship as a linked file instead.
   Linked in every page's <head> after the Base stylesheet. Specificity beats the
   Base rules via the .site-footer[data-astro-cid-jo6i4kqk] prefix. */

/* Footer: the giant watermark moves behind the bottom bar, so the tall top padding
   it used to need goes away. */
.site-footer[data-astro-cid-jo6i4kqk]{padding-top:64px}
.site-footer[data-astro-cid-jo6i4kqk] .giant[data-astro-cid-jo6i4kqk]{top:auto;bottom:0}
/* Footer columns: minmax(0, ...) so long link text can never blow the grid out. */
.site-footer[data-astro-cid-jo6i4kqk] .cols[data-astro-cid-jo6i4kqk]{
  grid-template-columns:1.5fr minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr)}
.site-footer[data-astro-cid-jo6i4kqk] .cols[data-astro-cid-jo6i4kqk] > *{min-width:0}
/* Tap target: the footer email link. Two selectors because Cloudflare's email
   obfuscation rewrites the served href from mailto:... to
   /cdn-cgi/l/email-protection#... — the source keeps the plain mailto:. */
.site-footer[data-astro-cid-jo6i4kqk] a[href^="mailto:"],
.site-footer[data-astro-cid-jo6i4kqk] a[href*="email-protection"]{
  display:inline-flex;align-items:center;min-height:44px}

@media (width<=767px){
  /* Brand block full width on top, link groups in a 2-column grid. */
  .site-footer[data-astro-cid-jo6i4kqk] .cols[data-astro-cid-jo6i4kqk]{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
  .site-footer[data-astro-cid-jo6i4kqk] .about[data-astro-cid-jo6i4kqk]{grid-column:1/-1}
  /* Bottom bar centered. */
  .site-footer[data-astro-cid-jo6i4kqk] .legal[data-astro-cid-jo6i4kqk]{
    flex-direction:column;align-items:center;justify-content:center;text-align:center}
}

/* Card text padding (2026-11-01): the card body wrapper is a <span class="c">
   (inline), so its padding never reached the block-level title/excerpt/meta
   inside it — only the chip was indented, everything else sat flush on the
   card edge. display:block makes the 18px/20px/20px padding apply on all
   sides, on blog cards (.b2-postcard) and related cards (.b2-relcard). */
.b2-postcard .c,.b2-relcard .c{display:block}
