/* Shared storefront type, based on the product page:
   Jost headings and doses; Outfit body text and spaced uppercase labels.
   Load after page styles. Receipt pages and workspaces do not load this file. */
body.storefront-type {
  --storefront-heading: "Jost", "Futura", "Avenir Next", "Segoe UI", sans-serif;
  --storefront-copy: "Outfit", "Segoe UI", sans-serif;
  --storefront-brand: "Outfit", "Arial", sans-serif;
  --body: var(--storefront-copy);
  --disp: var(--storefront-heading);
  --heading: var(--storefront-heading);
  --num: var(--storefront-copy);
  --mono: var(--storefront-copy);
  font-family: var(--storefront-copy);
}

/* Keep each component's responsive size, but use one heading treatment.
   Product titles retain the reference pairing. The homepage Quality headline
   keeps its original bold Outfit treatment, like the hero's own exception. */
body.storefront-type :is(h1, h2, h3, h4, h5, h6):not(:where(.hero-standard *, .quality-intro h2, .pdp-title, .pcard-title)) {
  font-family: var(--storefront-heading);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

/* Keep the homepage Featured heading's original sans-serif style and leading. */
body.storefront-type #popular .sec-head h2 {
  font-family: var(--storefront-brand);
  line-height: 1.12;
}

/* The catalog collection title also retains its original sans-serif face. */
body.storefront-type.page-catalog .catalog-hero h1 {
  font-family: var(--storefront-brand);
}

body.storefront-type :is(.eyebrow, .std-kicker, .coming-soon-kicker):not(:where(.hero-standard *)) {
  font-family: var(--storefront-copy);
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* These headings label controls or navigation rather than a page/section. */
body.storefront-type :is(.footer h4, .subscription-box > h2:not(:where(.subscription-empty h2))) {
  font-family: var(--storefront-copy);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.14em;
}

body.storefront-type :is(.pdp-acc summary, .search-suggestion-copy strong, .mobile-menu-links a) {
  font-family: var(--storefront-heading);
}

body.storefront-type .pcard:not(.pcard-cta) .pcard-card-dose {
  font-family: var(--product-dose);
  font-weight: 500;
}

/* A number within a sentence or title uses the same face as its letters.
   Existing tabular-number rules still align prices and quantities. */
body.storefront-type .num:not(:where(.hero-standard *)) {
  font-family: inherit;
}

body.storefront-type :is(code, kbd, samp) {
  font-family: var(--storefront-copy);
  font-variant-numeric: tabular-nums;
}

/* Preserve the established homepage hero and the Arete wordmarks. */
body.storefront-type .hero-standard {
  --disp: var(--storefront-brand);
  --num: Arial, Helvetica, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
}

body.storefront-type :is(.brand-name, .subscription-wordmark, .std-greek) {
  font-family: var(--storefront-brand);
}
