@layer reset, base;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
  ul[role="list"], ol[role="list"] { list-style: none; margin: 0; padding: 0; }
  img, picture, video, canvas, svg { display: block; max-width: 100%; }
  input, button, textarea, select { font: inherit; }
  button { cursor: pointer; }
  /* The UA's [hidden] rule is display:none at specificity (0,1,0), so any author
     rule that sets display on the same element beats it — .lead-dialog__panel
     { display: grid } left the success panel on screen under the form even though
     Blazor set hidden correctly. !important here rather than a higher-specificity
     selector because layer order, not specificity, is what decides: reset comes
     before components, and important declarations reverse layer order, so this is
     the only form that holds for every element a component may style. */
  [hidden] { display: none !important; }
}
@layer base {
  body { min-height: 100vh; color: var(--ink-950); background: var(--surface); font-family: var(--font-sans); line-height: 1.65; text-rendering: optimizeLegibility; }
  a { color: inherit; text-decoration: none; }
  a:hover { color: var(--brand-green-700); }
  h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 700; line-height: 1.15; letter-spacing: -.01em; }
  h1 { font-size: clamp(2.1rem, 4.6vw, 4.25rem); }
  h2 { font-size: clamp(1.65rem, 3vw, 2.65rem); }
  h3, h4 { font-family: var(--font-sans); font-weight: 700; font-size: clamp(1.15rem, 1.7vw, 1.45rem); }
  p { color: var(--ink-700); }
  :focus-visible { outline: 3px solid color-mix(in srgb, var(--brand-gold) 75%, white); outline-offset: 3px; }
  ::selection { color: white; background: var(--brand-green); }
  .container { width: min(var(--container), calc(100% - 2rem)); margin-inline: auto; }
  .section { padding-block: clamp(3.75rem, 8vw, 7.5rem); }
  .section--soft { background: var(--surface-soft); }
  .section--green { color: white; background: var(--brand-green-900); }
  .section--green p { color: #dcece3; }
  .stack { display: grid; gap: var(--space-6); }
  .cluster { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-4); }
  .grid { display: grid; gap: var(--space-6); }
  .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .skip-link { position: fixed; inset: .75rem auto auto .75rem; z-index: 9999; transform: translateY(-180%); padding: .75rem 1rem; color: white; background: var(--brand-green-900); border-radius: var(--radius-sm); }
  .skip-link:focus { transform: translateY(0); }
  @media (max-width: 900px) { .grid--4, .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 680px) { .grid--4, .grid--3, .grid--2 { grid-template-columns: 1fr; } .section { padding-block: 3.5rem; } }
  @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
}
