/* ============ Display face: Archivo ============
   Loaded after css/styles.css on the two pages that name products. Archivo
   sets the type that NAMES things — product names, their index and category
   labels, and the two headlines that introduce the portfolio. Body copy,
   feature lists, status pills, CTAs and the legal pages stay Inter.

   ---- Why a second family ----

   Inter is the default of every AI product and Vercel template, and reads that
   way. The usual escape is switching on Inter's own alternates — cv11 for the
   single-storey a, ss02 for disambiguation — which re-voices it for zero bytes.
   That is not available here: the Google Fonts build this site ships carries
   only calt, ccmp, dnom, frac, locl, numr, pnum and tnum. No cvXX, no ssXX.
   Verified against the actual woff2, not assumed.

   ---- Why Archivo ----

   - Variable across 100-900, so the 650/680/690/720/760 weights this
     stylesheet asks for resolve properly. A face that stops at 700 — Instrument
     Sans, Space Grotesk — snaps to its nearest static weight, which is exactly
     the defect f5464eb fixed when Inter was not loading at all.
   - At equal pixel size it sets "Roots Costa Rica" within 0.3% of Inter's width
     (331px vs 330px at 40px/720), so every measured clamp and wrap decision in
     styles.css holds unchanged. That width parity is the reason this is a safe
     swap rather than a re-derivation.
   - Latin subset only, 34,940 bytes — smaller than Inter's 48,432. No latin-ext
     needed: every string it sets is ASCII plus the em dash in the product
     labels, and the latin subset covers U+2014, so nothing falls back
     mid-label.

   ---- Deliberately no size-adjust ----

   Archivo's cap-height is 0.686em against Inter's 0.7275em, so at equal
   font-size it reads about 6% smaller. size-adjust: 103.8% would equalise the
   x-heights, but it scales widths too and would push Archivo ~4% wider than
   Inter — trading away the width parity that keeps the clamps valid, for a
   purely optical gain. The two faces never meet on the same line, so matching
   x-height buys nothing here. If the product names read small on review, raise
   the clamp; do not reach for size-adjust.

   SIL OFL 1.1. The license sits beside the font, as Inter's does. */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../assets/fonts/archivo-latin-var.woff2') format('woff2');
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329,
    U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Inter leads the fallback stack on purpose. If the woff2 is ever missing the
   headings quietly render as they do today rather than dropping to a system
   grotesk, so a half-deployed state is never a broken-looking one. */
.products-intro h1,
.product-identity h2,
.product-num,
#products .section-heading h2,
.product-card h3,
.product-topline,
.hero-product-list a {
  font-family:
    Archivo,
    Inter,
    ui-sans-serif,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    sans-serif;
}
