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

html,
body {
  margin: 0;
  padding: 0;
}

/* past 1920 the page stops growing and stays centered */
html {
  background: var(--color-cream);
}

body {
  min-width: 320px;
  max-width: var(--page-max-width);
  margin-inline: auto;
  font-family: var(--font-family-base);
  background: var(--color-cream);
  color: var(--color-black);
  line-height: 1.1;
  overflow-x: hidden;
}

/* Outlined text: the fill sits on top of the stroke (paint-order), so only
   the outer half of the stroke shows and the outline stays clean. */
.is-outline {
  color: var(--color-cream);
  -webkit-text-fill-color: var(--color-cream);
  -webkit-text-stroke: 1.5px var(--outline-color, var(--color-outline));
  paint-order: stroke;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 0.8;
}

/* Twenty Twenty-Five sets text-wrap: pretty, which moves our line breaks */
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
caption,
figcaption,
p {
  text-wrap: wrap;
}

/* default paragraph, override per element when needed */
p {
  font-size: var(--body-r-size);
  font-weight: var(--body-r-weight);
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font-family: inherit;
  border: none;
  background: none;
  cursor: pointer;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

p,
h1,
h2,
h3,
h4 {
  margin: 0;
}

/* Phones: headings sit a little looser */
@media (max-width: 767px) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 0.9;
  }
}

/* Phones: no element is capped narrower than the screen */
@media (max-width: 767px) {
  *:not(html):not(body) {
    max-width: 100% !important;
  }
}
