Genuine Products
Icon + title + copy. A amber rule wipes across the top edge on hover, and the icon box tilts.
Every colour, type style, component and icon used across the site, in one place. Built on Poppins, a deep-blue brand gradient and a soft, layered shadow scale. Hand-written HTML5 and CSS3 — no frameworks, no build step, no dependencies.
Deep blue carries every primary action. Golden amber is the accent — highlights, active states and hovers. Yellow appears only inside the logo lock-up and star ratings. Everything else is neutral, so the brand colours never have to compete for attention.
linear-gradient(135deg, var(--primary), var(--primary-400)) — icon boxes, step numbers, seals, avatars.
linear-gradient(115deg, --primary-900, --primary, --primary-400) — the full-width closing CTA on every page.
--primary-050 · --accent-050 · --success-050 — badge and icon-box backgrounds only.
Headings are tight (-.02em to -.035em) and heavy. Body copy runs at 1.65 line-height in the softer --text-2 grey. Every heading size is fluid — it scales with the viewport using clamp(), so nothing has to be re-tuned per breakpoint.
Free inspection, free nitrogen filling and expert fitting — on every set we sell.
.leadBody copy. Every tyre and battery is sourced through authorized channels with a verifiable manufacturer warranty.
body pSmall text — used for card copy, hints and secondary lines.
.smallTiny + muted — disclaimers, mockup notes and image credits.
.tiny .mutedPill-shaped, 600 weight, always with a 2px lift on hover. Primary blue is reserved for the single most important action on a screen. Arrows inside buttons slide 4px on hover.
.btn--lg (18/34) · .btn (14/26) · .btn--sm (10/18) · .btn--icon (46px circle)
.btn--block — used inside cards and the mobile drawer.
.link-arrow — the arrow slides right on hover. Used in split section headings.
Badges are tinted, never saturated — the only exception is .badge--dark, which sits on photography. The Bridgestone trust badge is a component of its own and must not be recoloured or rebuilt out of ordinary badges.
.badge--blue · --amber · --success · --grey · --dark
.badge-auth — hero, page heroes and any page that sells Bridgestone stock. One per screen.
Five card types cover the whole site. All of them share the same recipe: white surface, 1px --border, --r-lg radius, --sh-xs at rest, and a 6px lift into --sh-lg on hover.
The generic surface — used for hours, directions, notes and anything that does not need a photo. Modifiers: .card--flat, .card--pad-lg, .card--hover.
Icon + title + copy. A amber rule wipes across the top edge on hover, and the icon box tilts.
16:9 image, badges, title, copy and a footer that is pinned to the bottom of the card.
“Walked in for a puncture, walked out with an honest opinion that two of my tyres still had a season left.”
.icon-box (54px) with --amber · --success · --dark · --solid · --sm (42px, used in .info-tile).
All fields share a 1.5px border, a 12px radius and a 13/15px pad. On focus the border turns brand blue and a 4px rgba(15,76,129,.1) ring appears — the same focus treatment across inputs, selects and textareas.
Field hint — .field-hint, .76rem, --text-3.
.field wraps a label + control. .span-2 makes it full width inside .form-grid. Required markers use .req.
.chips > .chip — filter pills. The selected chip takes .is-active (solid blue + blue shadow).
Focus ring: border-color: var(--primary) + box-shadow: 0 0 0 4px rgba(15,76,129,.1). Keyboard focus elsewhere uses a 3px blue :focus-visible outline. .form-success.is-visible replaces the form after a mock submit.
Every icon on the site is inline SVG on a 24×24 grid, 1.9–2px stroke, round caps and joins, drawn in currentColor so it inherits from its parent. No icon font, no sprite sheet, no external requests. Brand-filled icons (WhatsApp, social, stars) are the only fills.
Icons are drawn from the Feather/Lucide 24×24 grid and hand-tuned. Copy the SVG straight out of the markup — there is nothing to import.
One spacing scale, one radius scale, one shadow scale. If a value is not on a scale, it does not belong in the stylesheet. Sections breathe at 56–104px; cards sit on 20–32px.
Utilities: .mt-4 · .mt-5 · .mt-6 · .mt-7 · .mb-4 · .mb-5 · .mb-6 and the grid gaps (.gap-2 · .gap-3 · .gap-4) all read from this scale.
Inputs use --r-sm, cards --r-lg, panels and bands --r-xl, buttons and badges --r-pill.
Shadows are cool-grey (rgba(16,24,40,·)) and never exceed 10% opacity — except --sh-primary, which tints the primary button.
Colour, border and small transforms.
Card lifts, shadows, icon boxes.
Image zooms and slider tracks.
Scroll-in fade with 70ms stagger steps.
Easing is --ease cubic-bezier(.22,.61,.36,1) for UI and --ease-out cubic-bezier(.16,1,.3,1) for entrances. Everything is disabled under prefers-reduced-motion.
Everything on this page is live markup from css/style.css — copy a component straight out of the source and it will look exactly like this.