/* Core site foundation */
:root {
  --rouge-burgundy: #922c43;
  --rouge-ink: #1d1d1f;
  --rouge-muted: #6e6e73;
  --rouge-soft: #f5f5f7;
  --rouge-line: #e5e5e7;
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

*, *::before, *::after { box-sizing: inherit; }

body {
  margin: 0;
  min-width: 320px;
  background: #fff;
  color: var(--rouge-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

main, header, footer, nav, section, article, aside { display: block; }
img, svg, video { max-width: 100%; }
img { height: auto; }

button, input, textarea, select { font: inherit; }
button { color: inherit; }
a { color: inherit; }

h1, h2, h3, h4, h5, h6, p, ul, ol, blockquote, figure { margin-top: 0; }

.page-wrapper { min-height: 100vh; background: #fff; }
.container {
  width: min(1120px, calc(100% - 40px));
  margin-inline: auto;
}

[hidden] { display: none !important; }

:focus-visible {
  outline: 2px solid var(--rouge-burgundy);
  outline-offset: 3px;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* Mobile typography and spacing */
main [id], main section[id] {
  scroll-margin-top: 68px;
}

@media (max-width: 640px) {
  main h1, main h2, main h3, main h4 {
    text-wrap: balance;
  }

  main p, main li, main blockquote {
    text-wrap: pretty;
  }

  main p, main li, .rouge-footer {
    overflow-wrap: anywhere;
  }
}
