/* framework.css — Client-First-style utilities + base type (see spec §5, §6.2)
   Ships largely unchanged across builds. Project specifics live in site.css. */

/* ---- Base type ---- */
body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  color: var(--utility--black);
  background: var(--utility--white);
}
h1, h2, h3, h4, .display {
  font-family: "Montserrat", system-ui, sans-serif;
  line-height: 1.1;
}

/* ---- Containers & section shell (§5.1) ---- */
.padding-global { padding-left: 5%; padding-right: 5%; }
.container-large  { width: 100%; max-width: 80rem; margin: 0 auto; }
.container-medium { width: 100%; max-width: 64rem; margin: 0 auto; }
.container-small  { width: 100%; max-width: 48rem; margin: 0 auto; }

.padding-section-small  { padding-top: 3rem; padding-bottom: 3rem; }
.padding-section-medium { padding-top: 5rem; padding-bottom: 5rem; }
.padding-section-large  { padding-top: 7rem; padding-bottom: 7rem; }

/* ---- Spacing scale (§5.2) ---- */
.padding-tiny{padding:.125rem}.padding-xxsmall{padding:.25rem}.padding-xsmall{padding:.5rem}
.padding-small{padding:1rem}.padding-medium{padding:2rem}.padding-large{padding:3rem}
.padding-top-small{padding-top:1rem}.padding-top-medium{padding-top:2rem}
.padding-bottom-small{padding-bottom:1rem}.padding-bottom-medium{padding-bottom:2rem}
.margin-top-small{margin-top:1rem}.margin-top-medium{margin-top:2rem}.margin-top-large{margin-top:3rem}
.margin-bottom-small{margin-bottom:1rem}.margin-bottom-medium{margin-bottom:2rem}.margin-bottom-large{margin-bottom:3rem}
.spacer-small{height:1rem}.spacer-medium{height:2rem}.spacer-large{height:3rem}.spacer-xlarge{height:4rem}

/* ---- Max-width helpers ---- */
.max-width-small{max-width:20rem}.max-width-medium{max-width:35rem}.max-width-large{max-width:48rem}
.max-width-full{max-width:none}
.align-center{margin-left:auto;margin-right:auto}

/* ---- Type utilities (§6.2) ---- */
.text-size-tiny{font-size:.8rem}.text-size-small{font-size:.9rem}.text-size-regular{font-size:1rem}
.text-size-medium{font-size:1.25rem}.text-size-large{font-size:1.6rem}
.text-size-xlarge{font-size:2.25rem}.text-size-xxlarge{font-size:3rem}
.text-weight-light{font-weight:300}.text-weight-normal{font-weight:400}.text-weight-medium{font-weight:500}
.text-weight-semibold{font-weight:600}.text-weight-bold{font-weight:700}
.text-align-left{text-align:left}.text-align-center{text-align:center}.text-align-right{text-align:right}
.text-color-primary{color:var(--primary--color)}.text-color-secondary{color:var(--secondary--color)}
.text-color-white{color:var(--utility--white)}.text-color-black{color:var(--utility--black)}
.text-style-allcaps{text-transform:uppercase;letter-spacing:2px}
.text-style-italic{font-style:italic}
.background-color-primary{background-color:var(--primary--color)}
.background-color-secondary{background-color:var(--secondary--color)}
.background-color-white{background-color:var(--utility--white)}

/* ---- Base body paragraph ---- */
.body-p { font-size: 1.125rem; line-height: 1.65; color: #26364d; }
