/* Letter typography, applied through the shared site and editor tokens. */
@font-face { font-family: "Albra Sans"; src: url("../fonts/Albra-Sans-Light.woff2") format("woff2"); font-weight: 300 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Neufile Grotesk"; src: url("../fonts/NeufileGrotesk-RegularExtended.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Neufile Grotesk"; src: url("../fonts/NeufileGrotesk-MediumExtended.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Neufile Grotesk"; src: url("../fonts/NeufileGrotesk-SemiBoldExtended.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
:root {
  --niwa-font-display: "Albra Sans", Georgia, serif;
  --niwa-font-body: "Neufile Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --niwa-font-code: Consolas, Monaco, monospace;
  --niwa-type-h1: clamp(42px, 4vw, 60px);
  --niwa-type-h2: clamp(32px, 3.2vw, 48px);
  --niwa-type-h3: clamp(26px, 2.4vw, 34px);
  --niwa-type-h4: clamp(22px, 1.8vw, 26px);
  --niwa-type-h5: 20px;
  --niwa-type-h6: 18px;
  --niwa-type-display-size: var(--niwa-type-h1);
  --niwa-type-display-line: 1.08;
  --niwa-type-display-tracking: -.025em;
  --niwa-type-hero-size: var(--niwa-type-h1);
  --niwa-type-page-size: var(--niwa-type-h1);
  --niwa-type-section-size: var(--niwa-type-h2);
  --niwa-type-feature-size: var(--niwa-type-h2);
  --niwa-type-heading-line: 1.12;
  --niwa-type-heading-tracking: -.025em;
  --niwa-type-intro-size: clamp(16px, 1.7vw, 19px);
  --niwa-type-intro-line: 1.55;
  --niwa-type-body-size: 15px;
  --niwa-type-body-line: 1.65;
  --niwa-type-label-size: 13px;
  --niwa-type-small-size: 11px;
}
body { font-family: var(--niwa-font-body); }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--niwa-font-display);
  font-weight: 400;
  line-height: var(--niwa-type-heading-line);
  letter-spacing: var(--niwa-type-heading-tracking);
}
h1 { font-size: var(--niwa-type-h1); line-height: 1.08; }
h2 { font-size: var(--niwa-type-h2); }
h3 { font-size: var(--niwa-type-h3); }
h4 { font-size: var(--niwa-type-h4); }
h5 { font-size: var(--niwa-type-h5); }
h6 { font-size: var(--niwa-type-h6); }
button, input, select, textarea { font-family: var(--niwa-font-body); }
code, pre, kbd, samp { font-family: var(--niwa-font-code); }
.font-display { font-family: var(--niwa-font-display); }
.niwa-type-section {
  font-family: var(--niwa-font-display);
  font-size: var(--niwa-type-section-size);
  font-weight: 400;
  line-height: var(--niwa-type-heading-line);
  letter-spacing: var(--niwa-type-heading-tracking);
}
@media (max-width: 720px) {
  :root {
    --niwa-type-h1: clamp(32px, 9.8vw, 42px);
    --niwa-type-h2: clamp(28px, 8.2vw, 34px);
    --niwa-type-h3: clamp(23px, 6.65vw, 28px);
    --niwa-type-h4: 22px;
  }
}
