*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text-heading);font-weight:var(--fw-semibold);line-height:var(--lh-heading);letter-spacing:var(--ls-heading);margin:0}
h1{font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:var(--ls-display)}
h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4{font-size:var(--fs-h4)}
p{margin:0}
a{color:var(--text-link);text-decoration:none;border-bottom:1px solid rgba(27,61,133,.28);transition:var(--transition-control)}
a:hover{color:var(--text-link-hover);border-bottom-color:var(--green-500)}
ul,ol{margin:0;padding-left:1.15em}
li::marker{color:var(--brand-green)}
:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
/* height:auto is load-bearing, not decoration. WordPress emits width and height
   attributes on every wp_get_attachment_image(), and those become presentational
   hints for the CSS width/height properties. Author CSS overrides the width hint
   but nothing was overriding the height one, so both dimensions ended up definite
   and every `aspect-ratio` in the system was silently ignored — object-fit:cover
   was cropping into a box the intrinsic height had already decided. The design
   system's own <img> tags carry no such attributes, which is why the UI kit
   preview cropped correctly and the build did not. */
img{max-width:100%;height:auto;display:block}
.eyebrow{font-family:var(--font-body);font-size:var(--fs-eyebrow);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:var(--eyebrow-transform);color:var(--green-700)}
.lead{font-size:var(--fs-lead);line-height:var(--lh-snug);color:var(--neutral-600);max-width:var(--measure-lead)}
