00 — Logos

Logo Suite

All approved logo variants for PetalsWings. Each variant has a specific use case — use the right one for the context.

Primary Logo

The full circle lockup — iris, "Petals WINGS", and tagline. Default for most uses.

☀️ Light Background
Primary logo color
🌙 Dark Background
Primary logo white

Brandmark

The iris illustration alone — watermarks, small placements, patterns, merchandise.

☀️ Light Background
Brandmark color
🌙 Dark Background
Brandmark white

Wordmark

Text-only — "Petals WINGS" with the knockout overlap preserved. For footers, horizontal layouts, invoices.

☀️ Light Background
Wordmark color
🌙 Dark Background
Wordmark white

Stacked Badge

Self-contained circle badge with iris + text inside. For signage, t-shirts, stickers, embroidery.

☀️ Light Background
Stacked badge color
🌙 Dark Background
Stacked badge white

Monogram & Badge

The "PW" monogram — standalone and in a circle badge. For favicons, social profiles, watermarks, tiny placements.

Monogram
Monogram color
Monogram
Monogram white
Badge
Badge color
Badge
Badge white

Social & Favicon

Pre-sized assets for social media profiles, OG cards, and browser favicons.

Profile (400×400)
Social profile
OG Card (1200×630)
OG card
Favicon Set
Favicon 48 Favicon 32 Favicon 16
01 — Colors

Color Palette

Monochromatic purple with botanical green accents — extracted directly from the P&W logo.

#7B5EA7
Primary
--color-primary
Iris bloom violet — buttons, links, key UI
#5C4580
Primary Dark
--color-primary-dark
Hover states, headings, depth
#C4A8D8
Secondary
--color-secondary
Soft lavender — highlights, tags, accents
#8B9E7C
Accent
--color-accent
Sage green — decorative only (see accessibility)
#6B7E5C
Accent Dark
--color-accent-dark
Deeper sage — buttons & large text (AA large)
#1A1A2E
Text
--color-text
Navy-black — body copy, headings
#6B6B80
Text Light
--color-text-light
Muted — captions, meta, secondary
#FAFAF8
Background
--color-bg
Warm white — main canvas
#F3EEF7
Surface
--color-surface
Lavender tint — cards, alt sections
#E2D8EC
Border
--color-border
Soft purple — dividers, outlines
Color Combinations

How colors pair in real UI contexts — all combinations below pass WCAG AA.

Primary on White Text
Shop Our Irises
Buttons, CTAs, featured sections
Surface + Primary Dark
Your Family Iris Farm
Card backgrounds, alternating sections
Background + Text
Where heritage blooms
Default page canvas — body copy
Dark + Lavender
Growing since 1985
Footer, dark sections, dramatic contrast
Outlined Primary
Learn More →
Secondary buttons, outlined elements
Primary Dark on White
Explore Collections
Header text, hero headings over dark bg
02 — Typography

Typography

Lora for warm editorial elegance, DM Sans for modern readability.

Display Font Lora Google Fonts
Where Heritage Blooms
Every iris tells a story of patience, beauty, and generations of care
"Our family has been growing bearded irises for over three decades"

Weights: 400 Regular · 500 Medium · 600 Semi-Bold · 700 Bold + Italics
Use for: Hero headings, section titles, pull quotes, product names, prices
Why: Contemporary serif with calligraphic roots — warm, readable, and approachable. Balances elegance with friendliness, perfect for a family farm brand.

Body Font DM Sans Google Fonts
PetalsWings is a family-owned iris farm nestled in the rolling hills of Ohio. We specialize in rare and heritage bearded iris varieties, hand-selected for vibrant color, strong growth, and unforgettable garden performance. Each rhizome is dug fresh, inspected, and shipped with care.
Ships fresh from our farm · Family-owned since 1985 · 200+ iris varieties
YOUR FAMILY IRIS FARM · NEW ARRIVALS · BEST SELLERS · GROWING GUIDES

Weights: 400 Regular · 500 Medium · 600 Semi-Bold · 700 Bold
Use for: Body text, navigation, buttons, labels, tags, captions
Why: Clean geometric sans — pairs perfectly with Lora, great readability at all sizes.

02.5 — Voice & Tone

Voice & Tone

How PetalsWings speaks — rooted in Bonnie's passion, earned through two decades of growing.

The Origin

"Inspired after 9/11, I began growing bearded iris to create a red, white, and blue garden. What started with 3 plants has grown into 700+ varieties of Bearded Iris. With 20,000+ orders filled, I proudly maintain a 5-star rating."

— Bonnie, Founder

Brand Voice

PetalsWings is Bonnie — warm, knowledgeable, and genuinely proud of what she grows. Not corporate. Not trendy. Earned.

favorite Passionate

Bonnie loves irises. That love comes through in every word — not as hype, but as genuine enthusiasm from someone who's been in the dirt for 20+ years.

psychology Knowledgeable

700+ varieties doesn't happen by accident. She knows irises inside-out — growth habits, soil needs, bloom times, fragrance profiles. Share that expertise generously.

handshake Personal

This isn't a faceless farm. It's Bonnie, her family, and her friends — real people who work the garden together. Write like you're talking to a neighbor.

verified Earned, Not Claimed

20,000+ orders. 5-star rating. 700+ varieties. Let the numbers speak — don't oversell. The track record IS the trust signal.

Tone Spectrum

The same voice adapts to context — warmer for storytelling, crisper for product info.

Homepage / About

Warm, story-driven, emotional. Lead with "why" and heritage.

Product Pages

Knowledgeable + practical. Bloom times, heights, soil needs, companion plants.

Blog / Guides

Teaching voice — generous with tips, seasonal advice, behind-the-scenes peeks.

Email / Social

Casual, excited, seasonal. "The reblooming irises are showing off again!" energy.

Do & Don't

check_circle Do
  • ✓ "What started with 3 plants has grown into 700+ varieties"
  • ✓ "We've been growing together for over two decades"
  • ✓ "This variety reblooms in fall — twice the beauty in one garden"
  • ✓ "Bonnie hand-selects every rhizome before it ships"
  • ✓ Use "we" and "our garden" — it's a family operation
  • ✓ Share real growing tips — this is expertise, not marketing
cancel Don't
  • ✗ "Premium luxury botanical curations" — too corporate
  • ✗ "Shop our exclusive collection!" — too salesy
  • ✗ "Best irises on the internet" — unearned claims
  • ✗ Trendy millennial/Gen-Z slang — doesn't fit the heritage
  • ✗ Overly formal academic tone — Bonnie talks to neighbors
  • ✗ Generic placeholder copy — every word should feel like PetalsWings

Trust Numbers

These aren't marketing claims — they're Bonnie's real track record. Use them.

700+
Iris Varieties
20,000+
Orders Filled
5 ★
Customer Rating
20+
Years Growing

Sample Copy

Reference copy in the PetalsWings voice — use these as starting points.

Hero Headline

Where Heritage Blooms

Inspired by a red, white, and blue garden after 9/11 — Bonnie turned three iris plants into 700+ varieties and a family farm loved by thousands.

About Section

It started with a moment of hope. After September 11th, Bonnie planted her first irises — red, white, and blue, a small garden of resilience. Those three plants became a calling. Two decades later, PetalsWings is home to over 700 bearded iris varieties, tended by Bonnie, her family, and her friends. With 20,000 orders shipped and a 5-star rating earned one garden at a time, this is still what it always was — a labor of love.

Product Description (example)

Tall Bearded Iris stand 27½ inches and above — the queens of the iris garden. These are the classic showstoppers that stop neighbors mid-walk. Plant them in full sun, well-drained soil, and give them room to breathe. They'll reward you every spring.

03 — Headings

Headings

Heading scale using Lora display font — consistent sizing from hero down to sub-sections.

H1
4rem / 64px
Weight: 400
Line-h: 1.1
PetalsWings
H2
2.5rem / 40px
Weight: 400
Line-h: 1.2
Our Collections
H3
1.75rem / 28px
Weight: 500
Line-h: 1.3
Tall Bearded Irises
H4
1.375rem / 22px
Weight: 600
Line-h: 1.35
Spring Collection 2026
H5
1.125rem / 18px
Weight: 600
Line-h: 1.4
Immortality Reblooming Iris
H6
0.875rem / 14px
Weight: 700
Letter-sp: 1px
Ships July – September
04 — Paragraphs

Paragraphs

Body text styles at actual sizes — DM Sans across all paragraph roles.

Body
1.125rem / 18px
Line-h: 1.78
Weight: 400
PetalsWings is a family-owned iris farm nestled in the rolling hills of Ohio. We specialize in rare and heritage bearded iris varieties, hand-selected for vibrant color, strong growth, and unforgettable garden performance. Each rhizome is dug fresh, inspected, and shipped with care directly from our farm to your garden.
Small / Meta
0.875rem / 14px
Line-h: 1.6
Weight: 400
Free shipping on orders over $75 · All irises ship July–September · Each rhizome arrives hand-inspected and ready to plant. Questions? Our growers are happy to help.
Label / Caps
0.75rem / 12px
Letter-sp: 2px
Weight: 600 · Caps
NEW ARRIVAL · BEST SELLER · LIMITED EDITION · REBLOOMER
Lead / Intro
1.25rem / 20px
Line-h: 1.65
Weight: 400
Discover over 200 varieties of bearded irises, each chosen for spectacular bloom, reliable growth, and lasting garden beauty.
06 — Buttons

Buttons & Actions

4 variants × 3 sizes. Pill shape, slide-fill hover, snap-down press. Every button on the site uses one of these — no exceptions.

Use for: The single most important action on any screen. Add to Cart, Shop Now, Checkout, Submit Order, Subscribe.
Rule: Maximum one primary button per visible section. Always includes the iris flower circle — it's our signature CTA style, not optional.
Class: .btn .btn-primary + .petal-circle inside
✓ Do
Add to Cart, Shop Now, Subscribe, Complete Purchase, Pre-Order — always with iris circle
✗ Don't
Cancel, Back, Close, Filter, Sort — those aren't revenue actions. Don't use primary without the iris circle.
Use for: The second-priority action that pairs with a primary. Learn Our Story (next to Shop Now), Browse Collections (next to Add to Cart), See More.
Rule: Always appears alongside or near a primary button. Never alone as the only CTA — if it's the only action, promote it to primary.
Class: .btn .btn-secondary
✓ Do
Our Story, Browse Collections, View All, Learn More, Compare
✗ Don't
Add to Cart, Checkout — those are primary. Don't use for utility actions either.
Use for: Non-commerce actions related to content, education, or garden tools. Growing Guides, Planting Tips, Download PDF, Quiz Flow steps.
Rule: The sage green signals "helpful content" vs "buy something." Use when the action helps the customer learn, not spend.
Class: .btn .btn-accent
✓ Do
Growing Guide, Planting Tips, Help Me Choose, Take the Quiz, Download Care Sheet
✗ Don't
Add to Cart, Checkout — sage = education, not commerce
Use for: The "quiet partner" in a CTA pair (e.g., "Our Story" next to "Shop Now"), plus utility actions like filter, sort, pagination.
Rule: When paired with a primary CTA (hero sections, landing pages), Ghost gets the iris circle with ghost-petal class. For pure utility actions (filter, sort), skip the iris circle.
Class: .btn .btn-ghost + .petal-circle .ghost-petal for CTA pairs
✓ Do
Hero CTA pairs (with iris circle), Filter, Sort, Clear All, Load More, Pagination (without iris circle)
✗ Don't
Revenue actions — Ghost is the quiet partner. Don't use it alone as the only CTA on a page.
Use for: When the action benefits from a visual cue — shopping cart, search, wishlist heart, shipping truck. Icon goes before text.
Rule: Use Material Symbols Outlined icons only. One icon per button. Material icon buttons skip the iris circle — icon replaces it. Use for utility actions where a standard icon communicates faster than the botanical circle.
Large (.btn-lg): Hero sections, full-width CTAs, landing page above-fold. Max 1-2 per page.
Default: Standard actions in page sections — Add to Cart, Browse, etc.
Small (.btn-sm): Inside cards, toolbars, inline actions, filter chips. Used where space is tight.
Use for: Out-of-stock products, ended seasons, unavailable actions. Communicates "this exists but you can't do it right now."
Rule: Always pair with context — why is it disabled? "Out of Stock" is better than a disabled "Add to Cart" with no explanation.
07 — Rich Text

Rich Text

A sample rich text block showing how body copy, headings, lists, and blockquotes look together in the PetalsWings voice.

About Our Iris Farm

PetalsWings began in 1985 when the Hartley family planted their first hundred iris rhizomes on a small plot in central Ohio. What started as a weekend hobby quickly grew into a passion — and then, quietly, into something more. Today we grow over 200 named varieties of bearded irises across twelve acres of gently rolling farmland.

"There's nothing quite like watching an iris open for the first time. It's patient work, but the reward is extraordinary."

— Carol Hartley, Co-Founder

What Makes Us Different

Every rhizome we ship is hand-dug from our fields, trimmed, inspected, and labeled by our family and a small seasonal crew. We don't warehouse inventory — your order ships fresh from the farm, which means better establishment rates and healthier plants in your garden.

  • Over 200 registered iris varieties, including rare heritage cultivars
  • All orders ship July through September — peak planting season
  • Free shipping on orders over $75
  • Satisfaction guaranteed — we stand behind every rhizome

Growing Guides & Support

New to growing irises? Our free growing guides cover everything from planting depth to dividing mature clumps. We also offer a seasonal newsletter with bloom reports, new variety announcements, and care reminders timed to your growing zone.

  1. Choose your varieties and add to cart
  2. We confirm your order and schedule harvest
  3. Rhizomes ship fresh in late summer
  4. Plant in late August or early September
  5. Enjoy blooms the following spring
08 — Forms

Forms

Styled inputs, textareas, selects, and checkboxes — all production-ready and brand-consistent. Focus states use Primary purple ring.

Contact Us
Questions about your order, a specific variety, or growing conditions? We're happy to help.

We'll reply within 1–2 business days.

Order Preferences
Tell us about your garden and preferred iris types so we can personalise your experience.

Bloom reports, new arrivals, and care reminders. Unsubscribe anytime.

08.5 — Chips & Tags

Chips & Tags

Filter chips for the shop sidebar and product tags for cards, collections, and search results. Chips are interactive (click to filter). Tags are informational badges.

Use for: Filtering products in the shop — iris type, color, bloom season, growing conditions, price range. Clickable toggle.
Rule: Default state = outline. Active state = filled purple. Always show a count when data is available.
Class: .chip — add .active for selected state, .chip-sm for compact version
✓ Do
Filter by iris type, color, bloom season, sun/shade, height, price. Show counts. Allow multi-select.
✗ Don't
Use chips for navigation or CTAs — those are buttons. Don't use more than ~8 chips in a single row without wrapping.
Use for: Status badges on product cards, collection headers, and search results. Not clickable — informational only.
Rule: Max 2 tags per product card (prioritize: sold out > sale > new > award > best seller). On detail pages, show all applicable tags.
Class: .tag .tag-{variant} — add .tag-lg for detail page size
star Best Seller eco New 2026 sell 20% Off Sold Out workspace_premium Award Winner autorenew Reblooming spa Fragrant shield Deer Resistant
star Best Seller eco New 2026 workspace_premium Award Winner autorenew Reblooming spa Fragrant
star Best Seller workspace_premium Award
Immortality
Reblooming Tall Bearded
$12.99
✓ Do
Best Seller, New, Sale, Award Winner, Reblooming, Fragrant, Deer Resistant on product cards. Max 2 per card.
✗ Don't
Use tags as buttons (they're not clickable). Don't stack more than 2 on a card — it clutters the image. On detail pages, all tags are fine.
08.7 — Testimonials

Testimonial Components

Carousel-style testimonials with botanical vine accent, slide animation, and arrow navigation. Use for customer reviews on Homepage and About page.

Anatomy

Element Token / Value
Section background var(--color-surface) — #F3EEF7
Author name Lora 600, 1.5rem, var(--color-text)
Author meta (zone/title) DM Sans 500, 0.875rem, var(--color-text-light)
Quote text Lora italic, 1.125rem, line-height 1.7, var(--color-text). Large ::before curly quote (4rem, var(--color-primary) at 35% opacity).
Star rating #D4A017 (gold), 1.1rem, letter-spacing 0.08em
Arrow buttons 40×40px circle, 2px border var(--color-accent-dark), hover: sage fill + white icon
Vine accent SVG, #8B9E7C, 18% opacity, positioned between author + quote columns. Hidden on mobile.
Slide animation Horizontal slide — outgoing: slides out 40px + fades. Incoming: slides in 40px + fades. Duration 0.45s, ease.
Layout 2-column grid (1fr author / 2fr quote), max-width 800px centered. Stacks to 1-col on ≤600px.

Preview

Margaret T.

Zone 6

The iris rhizomes arrived perfectly packed and started growing within a week. Bonnie even included a handwritten note with planting tips.
★★★★★

Usage Notes

  • Minimum 3 testimonials for the carousel to feel balanced
  • Include zone/location (not just name) — gardeners trust zone-matched reviews
  • Keep quotes under 2 lines on desktop for visual consistency
  • Vine SVG is decorative only — aria-hidden="true", hidden on mobile
  • Arrow buttons need aria-label for screen readers
  • Carousel region needs aria-live="polite" for slide change announcements
  • Slide animation: Horizontal slide (not fade) — outgoing element translates 40px in direction of travel + opacity 0, incoming translates from 40px + opacity 1. Duration 0.45s ease.
  • Do NOT auto-play — gardeners read slowly, auto-advancing frustrates
09 — Icons

Icon System

Google Material Symbols Outlined — free, open-source, 2,500+ icons. Curated set below with exact usage locations. White on sage circles. Dev name in mono.

Library: fonts.google.com/icons — Outlined variant only, weight 400, grade 0.
Rule: Never mix icon styles (no Rounded, Sharp, or Filled). If a concept isn't in this curated set, check the full library and add it here first before using.
shopping_cart
shopping_cart
Header cart icon, cart drawer, checkout
shopping_bag
shopping_bag
Alternative cart (used in homepage nav)
storefront
storefront
Shop page, store reference
inventory_2
inventory_2
In-stock badge, inventory status
local_shipping
local_shipping
Shipping info, trust bar "Ships Fresh"
favorite
favorite
Wishlist (filled state), saved items
favorite_border
favorite_border
Wishlist (empty state), product cards
star
star
Reviews, ratings, best seller badge
sell
sell
Sale badge, deals, price tag
notifications
notifications
Back-in-stock "Notify Me" button
local_florist
local_florist
Primary brand icon — iris/flower, buttons, badges
eco
eco
Trust bar "Family-Owned Farm", sustainability
yard
yard
Garden section, outdoor/planting context
grass
grass
Farm field, growing season, landscape
spa
spa
Fragrant varieties badge, beauty/wellness
filter_vintage
filter_vintage
Heritage/historic iris, vintage varieties
potted_plant
potted_plant
Beginner friendly, container growing
wb_sunny
wb_sunny
Full sun requirement, growing conditions
water_drop
water_drop
Moisture-loving, watering, soil conditions
thermostat
thermostat
Hardiness zone, temperature tolerance
search
search
Search bar, shop search, autocomplete
menu
menu
Mobile hamburger menu
close
close
Close modal, dismiss, mobile menu close
arrow_forward
arrow_forward
CTA direction, "next" in carousels
arrow_back
arrow_back
Back navigation, "prev" in carousels
tune
tune
Filter panel toggle, shop filters
sort
sort
Sort dropdown, reorder results
expand_more
expand_more
Dropdown arrows, accordion expand
check
check
Selection state, quiz answers, success
workspace_premium
workspace_premium
Award winner badge, product cards
verified
verified
Certified/trusted, quality guarantee
schedule
schedule
Bloom season, shipping timeline
groups
groups
Family-owned, community, testimonials
history_edu
history_edu
Our Story, Bonnie's journey, heritage
checklist
checklist
Growing guides, care checklists
menu_book
menu_book
Growing guides, care instructions, blog
article
article
Blog post, article, news update
lightbulb
lightbulb
Tips, "Did you know?", helpful hints
help_outline
help_outline
FAQ, "Help Me Choose" quiz, support
calendar_today
calendar_today
Seasonal calendar, planting schedule
phone
phone
Phone number, utility bar, contact page
email
email
Email, newsletter signup, contact form
location_on
location_on
Farm location, footer address
camera_alt
camera_alt
Instagram, photo gallery
share
share
Social share, "Share this variety"
send
send
Submit form, send message
10 — Spacing

Spacing Tokens

Consistent rhythm throughout the site — four semantic spacing values cover every layout need.

80px
Section Padding
--space-section
Between major page sections
32px
Card Padding
--space-card
Inside cards and panels
24px
Grid Gap
--space-grid
Between grid items
16px
Component Gap
--space-component
Inside components, inline gaps
11 — Components

Component Previews

How the design system comes together in real components — navigation, hero, trust bar, and product cards.

Navigation

Trust Bar

eco Family-Owned Farm
local_shipping Ships Fresh July–Sept
workspace_premium 200+ Varieties
shopping_cart Free Shipping $75+

Hero Section

YOUR FAMILY IRIS FARM

Where Heritage
Blooms

Hand-selected bearded irises grown with generations of care. From our fields to your garden.

Product Cards

local_florist
Best Seller
Immortality Iris
Pure white reblooming bearded iris. Blooms spring AND fall — the garden gift that keeps giving.
$12.95
filter_vintage
New Arrival
Dusky Challenger
Deep silky purple with ruffled falls. Award-winning tall bearded iris — a showstopper in every garden.
$14.95
yard
Limited Edition
Spring Collection Bundle
5 hand-picked varieties in complementary colors. Plant together for a stunning iris bed display.
$49.95
12 — Accessibility

Contrast Ratios

WCAG 2.1 AA compliance audit — only passing combinations shown. Failed pairs (sage green on light backgrounds) have been removed from the approved palette usage.

AA Normal Text
Requires ≥ 4.5:1
AA Large Text
Requires ≥ 3.0:1 (18pt+ or 14pt bold)
Formula
L = 0.2126R + 0.7152G + 0.0722B
Preview Foreground Background Ratio AA Normal AA Large Notes
Aa Text #1A1A2E Background #FAFAF8 16.32:1 Pass Pass Excellent — main body text
Aa Text #1A1A2E Surface #F3EEF7 14.93:1 Pass Pass Excellent — card text on surface
Aa Text #1A1A2E White #FFFFFF 17.06:1 Pass Pass Maximum — white card body text
Aa Text Light #6B6B80 Background #FAFAF8 4.97:1 Pass Pass Good — captions, meta text
Aa Text Light #6B6B80 Surface #F3EEF7 4.55:1 Pass Pass Marginal pass — avoid tiny text
Aa Text Light #6B6B80 White #FFFFFF 5.20:1 Pass Pass Good — muted text on white cards
Aa Primary #7B5EA7 Background #FAFAF8 5.02:1 Pass Pass Good — links and UI on page bg
Aa Primary #7B5EA7 White #FFFFFF 5.25:1 Pass Pass Good — links on white cards
Aa Primary Dark #5C4580 Background #FAFAF8 7.68:1 Pass Pass Strong — headings on page bg
Aa Primary Dark #5C4580 Surface #F3EEF7 7.02:1 Pass Pass Strong — headings on surface cards
Aa White #FFFFFF Primary #7B5EA7 5.25:1 Pass Pass Good — white text on purple buttons
Aa White #FFFFFF Primary Dark #5C4580 8.02:1 Pass Pass Strong — header, dark UI elements
Aa White #FFFFFF Accent Dark #6B7E5C 4.41:1 Large Only Pass Large text / headings / icons only — use Accent Dark for all green text
Aa Secondary #C4A8D8 Navy #1A1A2E 8.07:1 Pass Pass Excellent — footer lavender on dark
Border #E2D8EC Background #FAFAF8 1.32:1 Decorative Decorative Border color — never used for text, purely structural
14
Passing combinations
Full WCAG AA compliance
0
Failing combinations
Failed pairs removed from guide
⚠️ Sage Green Rule
Accent (#8B9E7C) is decorative only. For any text or interactive element use Accent Dark (#6B7E5C) — and only for large text/icons (≥18pt). Body copy stays in Text or Primary.

CSS Variables

Copy-paste ready — these power the entire design system

/* ===== PetalsWings Design Tokens ===== */
:root {
  /* Colors */
  --color-primary:       #7B5EA7;   /* iris bloom violet */
  --color-primary-dark:  #5C4580;   /* hover, headings */
  --color-secondary:     #C4A8D8;   /* soft lavender */
  --color-accent:        #8B9E7C;   /* sage — decorative only */
  --color-accent-dark:   #6B7E5C;   /* sage — large text / icons */
  --color-text:          #1A1A2E;   /* navy-black body copy */
  --color-text-light:    #6B6B80;   /* muted captions */
  --color-bg:            #FAFAF8;   /* warm white canvas */
  --color-surface:       #F3EEF7;   /* lavender card bg */
  --color-border:        #E2D8EC;   /* dividers / outlines */

  /* Typography */
  --font-display: 'Lora', Georgia, serif;
  --font-body:    'DM Sans', system-ui, sans-serif;

  /* Type Scale */
  --text-hero:    4rem;       /* 64px */
  --text-section: 2.5rem;     /* 40px */
  --text-card:    1.5rem;     /* 24px */
  --text-body:    1.125rem;   /* 18px */
  --text-small:   0.875rem;   /* 14px */
  --text-label:   0.75rem;    /* 12px */

  /* Spacing */
  --space-section:   80px;   /* between sections */
  --space-card:      32px;   /* card padding */
  --space-grid:      24px;   /* grid gaps */
  --space-component: 16px;   /* inline spacing */
}