/* Owner-approved typography, 2026-10-14. Shared by the site and local proposals. */
@import url("./fonts/montserrat/font-face.css");

/* A private family name avoids Windows treating the bare name Helvetica as an
   alias for Arial. These faces resolve ONLY real, locally installed Helvetica. */
@font-face {
  font-family: "Fullsend Helvetica";
  src: local("Helvetica"), local("Helvetica Regular"), local("Helvetica-Regular");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Fullsend Helvetica";
  src: local("Helvetica Bold"), local("Helvetica-Bold");
  font-weight: 700;
  font-style: normal;
  font-display: block;
}
@font-face {
  font-family: "Fullsend Helvetica";
  src: local("Helvetica Oblique"), local("Helvetica-Oblique");
  font-weight: 400;
  font-style: italic;
  font-display: block;
}
@font-face {
  font-family: "Fullsend Helvetica";
  src: local("Helvetica Bold Oblique"), local("Helvetica-BoldOblique");
  font-weight: 700;
  font-style: italic;
  font-display: block;
}

:root {
  --font: "Fullsend Helvetica", Montserrat, Arial;
  --font-heading: var(--font);
  /* Owner-approved semantic scale, 2026-10-14. Sizes/leading stay in rem so
     browser text preferences and zoom are not defeated by fixed pixels. */
  --type-weight-body: 400;
  --type-weight-strong: 600;
  --type-page-size: 3rem;
  --type-page-leading: 3.5rem;
  --type-section-size: 1.5rem;
  --type-section-leading: 2rem;
  --type-subsection-size: 1.125rem;
  --type-subsection-leading: 1.625rem;
  --type-lead-size: 1.25rem;
  --type-lead-leading: 2rem;
  --type-body-size: 1.125rem;
  --type-body-leading: 1.875rem;
  --type-support-size: 1rem;
  --type-support-leading: 1.625rem;
  --type-ui-size: 1rem;
  --type-ui-leading: 1.5rem;
  --type-meta-size: 0.875rem;
  --type-meta-leading: 1.375rem;
  --type-eyebrow-size: 0.75rem;
  --type-eyebrow-leading: 1.125rem;
  --type-tracking: 0;
  --type-page-measure: 57.5rem;
  --type-lead-measure: 45rem;
  --type-body-measure: 42.5rem;
}

@media (max-width: 1100px) {
  :root {
    --type-page-size: 2.5rem;
    --type-page-leading: 3rem;
  }
}
@media (max-width: 600px) {
  :root {
    --type-page-size: 2rem;
    --type-page-leading: 2.5rem;
    --type-section-size: 1.375rem;
    --type-section-leading: 1.75rem;
    --type-lead-size: 1.125rem;
    --type-lead-leading: 1.75rem;
    --type-body-size: 1rem;
    --type-body-leading: 1.625rem;
  }
}
@media (max-width: 360px) {
  :root {
    --type-ui-size: 0.875rem;
  }
}

html {
  font-family: var(--font);
}

/* Standalone error documents and isolated previews load this file without the
   app's layout stylesheet, so semantic HTML also has a complete type baseline. */
body {
  font-size: var(--type-body-size);
  line-height: var(--type-body-leading);
  font-weight: var(--type-weight-body);
  letter-spacing: var(--type-tracking);
}
h1 {
  font-size: var(--type-page-size);
  line-height: var(--type-page-leading);
}
h2 {
  font-size: var(--type-section-size);
  line-height: var(--type-section-leading);
}
h3, h4, h5, h6 {
  font-size: var(--type-subsection-size);
  line-height: var(--type-subsection-leading);
}
h1, h2, h3, h4, h5, h6 {
  font-weight: var(--type-weight-strong);
  letter-spacing: var(--type-tracking);
  overflow-wrap: anywhere;
}
button {
  font-size: var(--type-ui-size);
  line-height: var(--type-ui-leading);
  font-weight: var(--type-weight-strong);
}

strong,
b {
  font-weight: var(--type-weight-strong);
}

body,
button,
input,
select,
textarea,
option,
optgroup,
code,
kbd,
pre,
samp {
  font-family: var(--font);
}
