01 Left text, right image
Hero and feature sections. Text leads, media supports. Stacks to one column at 991px, image drops below the text.
Eyebrow
Heading
Body
Body
CTA
Image or form card
.section > .padding-global > .container-large grid-template-columns: minmax(0,1fr) minmax(360px,520px) 991px and below: 1fr
Statement sections and intros. One column, capped at 750px. Already single-column, so mobile only tightens the type.
.section > .padding-global > .container-medium text-align: center max-width: 750px, auto margins
03 Menu left, cards right
Numbered index on the left, stacked panels on the right. The index is sticky on desktop. At 991px the index moves above the panels and loses the sticky.
.section > .padding-global > .container-large grid-template-columns: 0.4fr 1fr 991px and below: 1fr, index above panels
A single panel on its own. Forms, thank-you states, callouts. Capped at 520px, goes full width under that.
.section > .padding-global > .container-medium card max-width 520px, auto margins
05 Centered info, grid below
The most common section on the site. Centered heading block, then a grid. Three columns on desktop, two at 991px, one at 767px.
.section > .padding-global > .container-large heading block: max-width 750px, centered grid: 1fr 1fr 1fr 991px: 1fr 1fr 767px: 1fr
Six ways information is organised inside a card on the homepage and the Google Ads page. Pair one of these with a section layout above. Dotted boxes stand in for the real component.
A Deliverables card
offer-card_wrapper, sticky-tab content panel
Eyebrow with the red square, heading, dashed rule, then two columns of check rows or numbered steps. The homepage tabs and the Google Ads offer block both use this.
Heading
Footer line, price anchor or guarantee
div.offer-card_wrapper div.offer-card_head square + caption_new + heading-h5 div.offer-card_get-grid 1fr 1fr, check rows div.offer-card_steps 1fr 1fr, numbered rows
B Lead form card
gads-hero_card
Social proof first, then the ask. Team circles, heading, one line of reassurance, fields in pairs, three checkbox promises, a full-width submit, a note, and the Clutch row to close.
Team circles
Heading
Reassurance line
Submit
Note under button
Rating row
div.gads-hero_card img team-wrapper h2.heading-h4 + div.text-size-regular form.gads-hero_form-grid 1fr 1fr div.gads-hero_badge-row input.gads-hero_submit div.gads-hero_form-note + div.rating_wrapper
C CTA card
Dark cards at the foot of the homepage
A label chip, heading, two lines of body, a row of asterisk features, one button. Two of these side by side is the standard closing section.
Label chip
Heading
Body
Body
Button
Label chip
Heading
Body
Body
Button
div (1px outline, dark fill) div.text-pill label h3.heading-h3 + div.text-size-regular div.cta-features asterisk row a.button.is-light
D Testimonial card
Div Block 406 on the homepage
Brand name on top, star rating with score, the quote as the largest element, then author name and role. Nothing else. The quote carries the card.
Brand name
Quote
Author name
Role
div (1px stroke, beige fill) div.text-size-small.smallest brand div.rating-score stars + score div.richtext quote div.Heading-H6 + div.text-size-small.smaller author + role
E Result card
case-studies-card
Client logo, one line on what changed, and two numbers pinned to the bottom. The gap between headline and numbers flexes, so cards line up in a row regardless of copy length.
div.case-studies-card justify-content: space-between [logo + heading-h5] div.case-studies-card-stats 1.25fr .75fr subheading-1 + text-size-xsmall, twice
F Stat tile
stat-card, in rows of three to five
The smallest card. A number and a label, nothing else, at a fixed 2:1 ratio so a row of them reads as tiles. Shorten the label rather than let it wrap.
div.stat-in-card flex row, 16px gap div.stat-card 227px max, aspect 2/1 div.stat-card-heading subheading-1 div.text-size-xsmall label