Typography
Font Families
General Grotesque
Light 300
Regular 400
Demi 600
Bold 700
--wv-font-primary
Grotesque Mono
Regular 400
Demi 500
--wv-font-mono
Office Times Round
--wv-font-serif
Heading Classes — wv-typography.css
All classes: line-height 1 · letter-spacing -0.03em · font-family General Grotesque (unless noted)
.wv-h1
Light 300 · 70px
Page Title
.wv-h2
Regular 400 · 40px
Section Heading
.wv-h3
Light 300 · 40px
Subsection / Card Heading
.wv-h4
Bold 700 · 50px
Product names, bold callouts
Product Title
.wv-h5
Regular 400 · 24px
Policy sections, paragraph headings
Definitions
.wv-h6
Demi 600 · 16px
Tab Label · Policy Section · Compact Heading
.wv-h-serif
Office Times Round
Regular 400 · 55px
Quiz card, display contexts
Serif Heading
.wv-h-quiz
Office Times Round
Regular 400 · 48px
Quiz card headings
Take the Quiz
.wv-h-serif-sm
Office Times Round
Regular 400 · 36px · -0.03em
Blockquotes, smaller serif display
Ideas are tested in real life, refined over time.
.wv-h-serif-lg
Office Times Round
Regular 400 · 80px · -0.03em
1px outside stroke (accent)
Brand-led display headings (Comparison Table "Woodstock")
Woodstock
Body Classes
All body classes use line-height: 1.5 (WCAG 1.4.12 minimum for readability)
.wv-body-lg
Regular 400 · 18px
Most people are supplementing wrong. The answer isn't more — it's the right five. Dr. Neal built the First5 to address the gaps missing from even the best diets.
.wv-body
Regular 400 · 14px
Policies, descriptions, form help text
These Terms of Service constitute a legally binding agreement made between you, whether personally or on behalf of an entity, and Woodstock Vitamins, concerning your access to and use of the woodstockvitamins.com website.
.wv-body-bold
Demi 600 · 18px
Inline emphasis, callout text
Emphasized callout text within body copy.
.wv-body-sm
Regular 400 · 12px
Captions, disclaimers, small notes
Free shipping on orders over $60. Subscription orders ship automatically.
.wv-prose
Regular 400 · rich content (added v4)
Long-form article body + policy lists — consistent paragraph & list spacing
A prose wrapper for rich content: paragraphs, lists, and inline emphasis inherit consistent spacing and type.
- Foundation-first nutrition
- The First5 framework
Label Classes
.wv-label-reg
Regular 400 · 12px
text-transform: uppercase
.wv-label is obsolete alias
Trust Bar · Status Pill · Table Header
.wv-label-small
Grotesque Mono
Regular 400 · 12px
TOC default links, sidebar nav
Definitions · Data We Collect · How We Use It
.wv-label-small--active
Grotesque Mono
Regular 400 · 12px
+ underline
TOC active link
Data We Collect
.wv-label-nav
Demi 600 · 15px
Page nav headers, breadcrumbs
On This Page · Last Updated
.wv-label-btn
Regular 400 · 15px
text-transform: uppercase
ATC buttons, primary CTAs
Add to Cart · Shop the First5
.wv-label-legal
General Grotesque Regular 400 · 11px
letter-spacing: -0.03em
FDA: override to font-weight 700
FDA 21 CFR 101.93(e) requires boldface
†These statements have not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure, or prevent any disease.
.wv-prose
Body copy wrapper — lists, links, paragraphs
Applied to editor content containers
Sample paragraph text showing spacing.
- First bullet item
- Second bullet item
- Third bullet item
- First numbered item
- Second numbered item
Font Sizes — per-class tokens (--wv-fs-*)
Designer values are PX (rem shown at the 16px root — pixel-identical at default zoom). Mobile-first: scaling classes step up at 768px (tablet) → 1280px (desktop); locked classes hold one size at every viewport.
Scaling — mobile → tablet → desktop
--wv-fs-h146px / 2.875rem → 60px / 3.75rem → 70px / 4.375rem.wv-h1
--wv-fs-h226px / 1.625rem → 34px / 2.125rem → 40px / 2.5rem.wv-h2
--wv-fs-h326px / 1.625rem → 34px / 2.125rem → 40px / 2.5rem.wv-h3
--wv-fs-h433px / 2.0625rem → 43px / 2.6875rem → 50px / 3.125rem.wv-h4
--wv-fs-h520px / 1.25rem → 22px / 1.375rem → 24px / 1.5rem.wv-h5
--wv-fs-h-serif36px / 2.25rem → 47px / 2.9375rem → 55px / 3.4375rem.wv-h-serif
--wv-fs-h-serif-lg52px / 3.25rem → 68px / 4.25rem → 80px / 5rem.wv-h-serif-lg
--wv-fs-h-serif-sm23px / 1.4375rem → 31px / 1.9375rem → 36px / 2.25rem.wv-h-serif-sm
--wv-fs-h-quiz31px / 1.9375rem → 41px / 2.5625rem → 48px / 3rem.wv-h-quiz
Locked — single size at every viewport
--wv-fs-h616px / 1rem.wv-h6
--wv-fs-body-lg18px / 1.125rem.wv-body-lg
--wv-fs-body14px / 0.875rem.wv-body
--wv-fs-body-bold18px / 1.125rem.wv-body-bold
--wv-fs-body-sm12px / 0.75rem.wv-body-sm
--wv-fs-label-nav15px / 0.9375rem.wv-label-nav
--wv-fs-label-btn15px / 0.9375rem.wv-label-btn
--wv-fs-label-reg12px / 0.75rem.wv-label-reg / .wv-label
--wv-fs-label-small12px / 0.75rem.wv-label-small
--wv-fs-label-legal11px / 0.6875rem — FDA minimum (21 CFR 101.93).wv-label-legal
Legacy — --wv-text-* (general scale; prefer the per-class --wv-fs-* tokens)
--wv-text-xs11px / 0.6875rem
--wv-text-label12px / 0.75rem
--wv-text-sm15px / 0.9375rem
--wv-text-base16px / 1rem
--wv-text-md18px / 1.125rem
--wv-text-lg21px / 1.3125rem
--wv-text-xl27px / 1.6875rem
WV Style Guide · wv-tokens.css + wv-typography.css + style.css · wv- prefix · April 2026