Design Guidelines

Color Palette

Brand Colors

Primary Blue --primary-theme-color #314168
Accent Red --secondary-theme-color #c83d3d
Button Blue --primary-button-color #3d5494

Content Colors

Body Text --primary-content-text-color #1a1d23
Secondary Text --secondary-content-text-color #484d61
Muted Text --text-muted #555d6b

Surface & UI Colors

Background --primary-content-background-color #ffffff
Alt Background --section-alt-bg #f0f3f9
Border --border-color #dde2ed
Secondary Surface --secondary-content-background-color #bac5e1

Footer Colors

Footer Background --footer-background-color #1e1f22
Footer Text --footer-primary-text-color #e7e7e7
Footer Muted --footer-secondary-text-color #9ca3af

Rules

Do

  • Use CSS custom properties for all colors
  • Use --primary-theme-color for section headings
  • Use --secondary-theme-color for accent elements and CTAs
  • Use --secondary-content-text-color for supporting body copy

Don't

  • Hardcode hex values when a variable exists
  • Use the accent red for large areas of fill
  • Mix grays from outside the defined palette

Typography

The type system uses three families: Archivo for headings (weight 900, tight tracking), DM Sans for body text and UI, and DM Mono for labels and code. All loaded from Google Fonts. Font smoothing is set to antialiased globally.

Type Scale

3.6rem / 900 Hero Heading
2.8rem / 900 Page Heading
2.5rem / 900 CTA Heading
2rem / 900 Section Heading
1.5rem / 900 Card Title
1.05rem / 800 Card Subtitle
1rem / 700 Feature Label
1rem / 400 Body text uses regular weight with generous line-height for readability.
0.9rem / 400 Small body text for captions and card descriptions.
0.75rem / 700 LABEL / OVERLINE

Font Weight Scale

400 Regular Body copy, descriptions
500 Medium Nav links, labels
600 Semibold Buttons
700 Bold Feature labels, strong text
800 Extrabold Card subtitles, pricing emphasis
900 Black Headings (h1, h2, h3)

Rules

Elevation & Shadows

Three shadow tokens create a consistent depth hierarchy. Cards use --shadow-sm at rest and promote to --shadow-md on hover. Use --shadow-lg sparingly for highly elevated elements.

Small
--shadow-sm
Medium
--shadow-md
Large
--shadow-lg

Rules

Border Radius

A consistent radius scale keeps corners predictable. Match the radius to the element's size and role.

6px Buttons, inputs
12px Cards, pricing plans
16px Feature images
20px CTA containers
24px Device mockups
50% Avatars, icon buttons

Spacing

Section Padding

Major content sections use 96px vertical padding as the standard. Inner content containers may use 64px or 88px when semantically nested.

Context Value Usage
Major sections 96px Guarantees, testimonials, features (bottom)
CTA inner 88px Inner padding of CTA container
Pricing section 64px Pricing section vertical padding
CTA outer 56px Spacing around the CTA card
Hero top 96px Top padding inside the hero banner

Content Max Widths

Context Value
Feature sections, hero 1100px
CTA container 1300px
Page content (about, contact, etc.) 1000px
Guarantees, testimonials 780px - 960px
Footer 720px

Breakpoints

Name Max Width Usage
Mobile 480px Small phones, tight layouts
Tablet 768px Primary responsive breakpoint. Stacks columns, adjusts font sizes.
Desktop 769px+ Full layout with side-by-side features

Buttons

All interactive buttons use the .fancy-button class. Buttons are flat, solid-color, and use weight 600 with 1rem font size. No gradients, no inset shadows.

Variants

Specifications

Property Default Small
Height 48px 36px
Padding 0 28px 0 18px
Font size 1rem 0.875rem
Font weight 600 600
Border radius 6px 6px
Letter spacing 0.01em 0.01em

Interaction States

Color Tokens

Token Default (Red) Blue Variant
--button-background-color #c83d3d #3d5494
--button-hover-color #b03535 #334a82
--button-active-color #9c2e2e #2a3d6b

Cards

Cards use a consistent pattern: white background, 12px border radius, --shadow-sm at rest, --shadow-md on hover with a translateY(-3px) lift. All transitions are 0.2s ease.

Example

Card Title

Cards use --shadow-sm at rest and promote to --shadow-md on hover. Try hovering this card.

Another Card

Padding is typically 24px. Card titles use weight 800 in --primary-theme-color.

Card Types in Use

Card Padding Border Notes
Mini-feature 24px None (shadow only) Max-width 280px. Icon + title + description.
Guarantee 28px 24px 1px solid --border-color Border plus shadow for emphasis.
Pricing plan 28px 24px None (shadow only) Hover promotes to --shadow-lg.

Section Headings & Accents

Section Heading Pattern

Major content sections use a consistent heading treatment: weight 900, size 2rem, color --primary-theme-color, letter-spacing -0.025em, followed by a red accent bar.

Accent Bar

The accent bar is rendered via a ::after pseudo-element on section headings. It uses a fixed set of values across the entire site:

Property Value
Width 48px
Height 3px
Background var(--secondary-theme-color)
Border radius 2px
Margin top 14px
Alignment margin: 14px auto 0 (centered)

Header Top Border

The site header uses a 3px solid top border in --secondary-theme-color. This red stripe is a signature brand element and appears on both the desktop header and mobile navigation drawer.

Feature List Borders

Feature list items use a left accent border: 3px solid rgba(49, 65, 104, 0.15) with 18px left padding. This is a muted version of the primary blue, adding structure without competing with the content.

Gradients

The site uses two gradient patterns. Both are directional linear gradients within the blue palette.

Name Value Usage
Hero / Page Header linear-gradient(160deg, #f0f3fa 0%, #d5dff0 40%, #b0c2e6 100%) Hero banner background, inner page heading containers
CTA linear-gradient(135deg, #2a3758 0%, #314168 40%, #4a6aad 100%) Call-to-action container background (dark blue)

Transitions & Motion

All transitions use 0.2s ease as the standard timing. The only exception is the mobile navigation drawer, which uses a cubic-bezier curve for a more physical feel.

Element Properties Transitioned Timing
Buttons background-color, transform, box-shadow 0.2s ease
Cards (hover lift) box-shadow, transform 0.2s ease
Links color 0.2s ease
Nav underline width 0.2s ease
Form inputs border-color, box-shadow 0.2s ease
Mobile nav drawer transform 0.25s cubic-bezier(0.4, 0, 0.2, 1)

Hover Lift Pattern

Interactive cards and elevated elements share a common hover pattern:

Form Elements

Property Value
Border 1px solid var(--border-color)
Border radius 8px
Padding 12px 14px
Font size 1rem
Font family var(--base-font-family)
Focus border var(--primary-button-color)
Focus ring 0 0 0 3px rgba(61, 84, 148, 0.12)

Labels use weight 500 at 0.95rem. Required field indicators use --secondary-theme-color.

Layout Patterns

Feature Rows

Feature sections alternate image/text direction on desktop using :nth-child(even) to create a zigzag reading pattern. On tablet and below, all features stack vertically with the image on top (using column-reverse so the description appears first in source order).

Wide Feature Grid

The "Build protocols worth following" section uses a full-width column layout with a 3-column grid for sub-features. Each grid item gets a --section-alt-bg background with 10px border-radius instead of left-border accents. On mobile, the grid collapses to a single column.

Homepage Flow

The homepage follows a deliberate rhythm of alternating backgrounds: