/* ============================================================
   Structure — signature / core.css

   Element resets and layout primitives. NO color, NO typography
   choices, NO component finish. Everything in this file is
   structural: how things are positioned, not how they look.

   Cascade discipline: this file declares two layers so packs can
   override structure rules without specificity wars. Pack CSS
   files declare @layer pack { ... }; their rules always beat
   structure rules at the same specificity.
   ============================================================ */

@layer structure, pack;

@layer structure {
  *, *::before, *::after { box-sizing: border-box; }

  html { scroll-behavior: smooth; }

  body {
    margin: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

  h1, h2, h3, h4, h5, h6, p { margin: 0; }
  ul, ol { margin: 0; padding: 0; list-style: none; }
  img, svg { display: block; max-width: 100%; }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }

  /* Page-level containers. These define the section rhythm but
     not the section finish — packs override padding / background
     via @layer pack rules and tokens. */
  .hd-page    { width: 100%; }
  .hd-wrap    { max-width: var(--page-max); margin: 0 auto; padding: 0 var(--page-gutter); }
  .hd-section { padding: var(--sp-10) 0; position: relative; }
  .hd-section--tight { padding: var(--sp-9) 0; }
}
