DONT: full-width sibling between parts of LEFT content while a sidebar exists; px-5 on section.ancestry-box when a sibling .practical-box sits inside a padded outer (widths diverge); Bulma my-* alone on empty divider nodes (use .my-*rem).
Demo — .article-flow
PC: this column sits beside the sticky sidebar (~ content width). Keep only the upper tour block here (about / media / highlights).
Photo grid
.photo-grid = layout. .pt-photos = lightbox behaviour. .photo-caption under each image.
Caption under image A
Caption under image B
Caption under image C
Highlights
.highlights-grid / .highlight-item
.highlight-item
Second highlight
Demo — .article-below
PC: full shell width (not only the left column). Put itinerary and everything below the intro here. Mobile order: after flow, before sidebar.
Itinerary
.itinerary / .itin-row — space after </strong> in .itin-desc.
Stop A
.itin-desc title Body text after the strong title.
Stop B
Second stop Short description sample.
Breakout — .w-breakout
Background across the viewport while still inside the shell. Inner .w-content keeps text readable.
.w-breakout.bg-white + inner .w-content — use for included blocks / white bands that must reach the screen edges.
Stat — .stat-highlight
01
.stat-number + .stat-label — accent callout.
.practical-box
.prac-label
.prac-text — dark practical panel.
.ancestry-box
CTA / research panel — same column width as .practical-box here (both full below).
Helpers
Dividers — empty div
Empty separator between sections. Bulma my-6 on an empty block collapses — use shared .my-3rem / .my-6rem / .my-9rem. Height via .vh-0-25 / .vh-0-50 / .vh-1. Colour via .bg-*. Width via .w-shell (or .w-content). In class="": layout first, then margin, then padding if any — e.g. vh-0-25 bg-gold w-shell my-6rem.
Preferred cover name (suffix -block, same family as .process-block). Legacy alias: .stories-salon. Inner: .stories-grid / .story-card / carousel + read-more (JS pt-article-stories).
.story-tag.real
.story-body h3
.story-byline
Lead paragraph always visible.
.story-more — expanded by .read-more-btn.
.story-tag.ww1
Second card
Optional byline
Cards use .photo-carousel, .carousel-slide, .carousel-btn, .carousel-dot.
Practical full — .practical-block + .practical-box
.practical-block = optional outer cover. Width helper + Bulma px-* belong on the outer section — not on the *-box itself. Inner .practical-box then matches sibling boxes.
Label A
Detail text for practical information.
Label B
Second practical row.
CTA — .ancestry-box
Same outer (.w-content + px-5) as practical above; box class only on the inner panel so widths match.