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

html {
  scroll-behavior: auto;
  overflow-x: clip;
}

body {
  font-family: var(--font-body);
  color: var(--gray);
  background: var(--cream);
  line-height: normal;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

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

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

ul {
  list-style: none;
}

button,
input,
textarea {
  font: inherit;
  border: none;
  background: none;
}

.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;
}

/* Fluid type helper: maps Figma px at 1728px width */
.fz-286 { font-size: clamp(4.5rem, 16.55vw, 286px); }
.fz-225 { font-size: clamp(3.5rem, 13.02vw, 225px); }
.fz-200 { font-size: clamp(3rem, 11.57vw, 200px); }
.fz-110 { font-size: clamp(2.5rem, 6.37vw, 110px); }
.fz-91  { font-size: clamp(2rem, 5.27vw, 91px); }
.fz-75  { font-size: clamp(1.75rem, 4.34vw, 75px); }
.fz-74  { font-size: clamp(1.5rem, 4.28vw, 74px); }
.fz-40  { font-size: clamp(1.25rem, 2.31vw, 40px); }
.fz-38  { font-size: clamp(1.2rem, 2.2vw, 38px); }
.fz-36  { font-size: clamp(1.1rem, 2.08vw, 36px); }
.fz-32  { font-size: clamp(1rem, 1.85vw, 32px); }
.fz-30  { font-size: clamp(0.95rem, 1.74vw, 30px); }
.fz-27  { font-size: clamp(0.9rem, 1.56vw, 27px); }
.fz-25  { font-size: clamp(0.85rem, 1.45vw, 25px); }
.fz-24  { font-size: clamp(0.8rem, 1.39vw, 24px); }
.fz-21  { font-size: clamp(0.78rem, 1.22vw, 21px); }
.fz-20  { font-size: clamp(0.75rem, 1.16vw, 20px); }
.fz-18  { font-size: clamp(0.7rem, 1.04vw, 18px); }
.fz-16  { font-size: clamp(0.65rem, 0.93vw, 16px); }
.fz-22 { font-size: clamp(0.85rem, 1.27vw, 22px); }
.fz-15 { font-size: clamp(0.8rem, 0.87vw, 15px); }
