/* October 22 approved blue/ice/ink system. Editorial marketing headings,
   Inter product typography. Loaded last; no remote font requests. */
@font-face {
  font-family: 'Noto Serif Display';
  src: url('/assets/fonts/noto-serif-display/noto-serif-display-regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  src: url('/assets/fonts/inter/inter-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
html { font-family: var(--brand-font); }
body {
  font-family: var(--brand-font) !important;
  font-size: 16px;
  font-weight: var(--brand-body-weight);
  line-height: var(--brand-body-leading);
  -webkit-font-smoothing: antialiased;
}
/* Legacy component shorthands cannot restore old typefaces. */
body :where(*) { font-family: inherit !important; }
body :where(code, pre, kbd, samp) { font-family: ui-monospace, monospace !important; }
button, input, textarea, select, option { font-family: inherit; }
body :is(h1, h2) {
  font-family: var(--font-heading) !important;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
body h1 {
  font-size: var(--brand-display-size) !important;
  font-weight: var(--brand-h1-weight) !important;
  letter-spacing: -.02em !important;
  line-height: var(--brand-h1-leading) !important;
}
body h2 {
  font-size: var(--brand-section-size) !important;
  font-weight: var(--brand-h2-weight) !important;
  letter-spacing: -.02em !important;
  line-height: var(--brand-h2-leading) !important;
}
body h3 {
  font-weight: var(--brand-h3-weight) !important;
  letter-spacing: -.02em !important;
  line-height: var(--brand-h3-leading) !important;
}
body p {
  font-size: clamp(15px, 1.2vw, 17px) !important;
  font-weight: var(--brand-body-weight);
  line-height: 1.55 !important;
}
/* Product descriptions use the body scale; metadata and dense controls retain their sizes. */
body main > p, body main section > p, body .hero-copy,
body .section-heading > p, body .editorial > p {
  font-size: clamp(15px, 1.2vw, 17px) !important;
  line-height: 1.55 !important;
}
body :is(.kicker, .eyebrow, .goal-eyebrow, .goal-motion-eyebrow, .workspace-eyebrow),
body label:not(:has(input, select, textarea)) {
  font-family: var(--font-sans) !important;
  font-size: clamp(11px, .8vw, 12px) !important;
  font-weight: 600 !important;
  letter-spacing: .18em !important;
}

/* Product/card/dialog headings remain compact sans; never apply editorial type to tools. */
body :is(h3,h4,h5,h6),
body.dashboard-route :is(h1,h2),
body.checkout-route :is(h1,h2),
body :is(dialog,.echo-concierge,.site-header,.site-footer,.feed-center,.feed-sidebar,.bd-listings,.pricing-grid,.checkout-form) :is(h1,h2) {
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
}
body.dashboard-route :is(h1,h2), body.checkout-route :is(h1,h2) { --brand-display-size:clamp(28px,3.5vw,40px); --brand-section-size:clamp(22px,2.5vw,32px); }
body :is([class*="stat"],[class*="metric"],[class*="price"],[class*="total"]) { font-variant-numeric: tabular-nums; }
