/* Building-block sections (loaded on every page and in the editor). Generated from tools/templates/blocks.css. */
.gb {
	--gb-accent: var(--water);
	--gb-accent-text: var(--water-deep);
	--gb-tint: var(--water-soft);
	font-family: var(--body-font);
	color: var(--ink);
	line-height: 1.65;
}
.gb *,
.gb *::before,
.gb *::after { box-sizing: border-box; }
.gb-wrap { max-width: 1220px; margin: 0 auto; padding: 0 28px; }
.gb-narrow { max-width: 820px; }
.gb-label { display: block; margin: 0 0 14px; font: 600 12px/1.4 var(--display); letter-spacing: .2em; text-transform: uppercase; color: var(--gb-accent-text); }
.gb-label:empty { display: none; }
.gb-h2 { margin: 0 0 22px; font: 700 clamp(26px, 3.2vw, 42px)/1.15 var(--display); letter-spacing: -.015em; color: var(--ink); text-wrap: balance; }
.gb-h2 em, .gb-title em { font-style: normal; color: var(--gb-accent); }
.gb p { margin: 0 0 18px; color: var(--body); font-size: 17px; }

/* Page heading */
.gb-hero { padding: 96px 0 72px; background: linear-gradient(125deg, var(--cream) 0%, var(--gb-tint) 100%); border-bottom: 1px solid var(--line); }
.gb-title { margin: 0 0 18px; max-width: 22ch; font: 700 clamp(34px, 5vw, 64px)/1.08 var(--display); letter-spacing: -.02em; color: var(--ink); text-wrap: balance; }
.gb-lede { max-width: 60ch; margin: 0; font-size: clamp(17px, 1.6vw, 20px); color: var(--body); }
.gb-lede:empty { display: none; }

/* Text, text with image */
.gb-text { padding: 72px 0; background: var(--paper); }
.gb-split { padding: 80px 0; background: var(--paper); }
.gb-cols { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.gb-flip .gb-col-img { order: -1; }
.gb-col-img { margin: 0; }
.gb-col-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }

/* Cards */
.gb-cards { padding: 80px 0; background: var(--cream); }
.gb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; margin-top: 36px; }
.gb-card { padding: 30px 28px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--gb-accent); }
.gb-card h3 { margin: 0 0 10px; font: 700 20px/1.3 var(--display); color: var(--ink); }
.gb-card p { margin: 0; font-size: 16px; }

/* Key figures */
.gb-figures { padding: 56px 0; background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gb-figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px; text-align: center; }
.gb-fig strong { display: block; font: 800 clamp(40px, 5vw, 64px)/1.1 var(--display); color: var(--gb-accent); }
.gb-fig span { display: block; margin-top: 6px; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }

/* Wide image */
.gb-image { padding: 40px 0; background: var(--paper); }
.gb-image figure { margin: 0; }
.gb-image img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 2px; }
.gb-image figcaption { margin-top: 10px; font-size: 14px; color: var(--muted); }
.gb-image figcaption:empty { display: none; }

/* Call to action */
.gb-cta { padding: 56px 0; background: var(--gb-tint); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.gb-cta-in { display: flex; flex-wrap: wrap; gap: 24px 48px; align-items: center; justify-content: space-between; }
.gb-cta .gb-h2 { margin-bottom: 8px; }
.gb-cta p { margin: 0; }
.gb-btn { display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px; background: var(--ink); color: #fff; font: 700 13px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; border-radius: 2px; transition: background .25s, gap .25s; }
.gb-btn:hover { background: var(--gb-accent); gap: 16px; }
.gb-btn svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

@media (max-width: 800px) {
	.gb-cols { grid-template-columns: 1fr; }
	.gb-flip .gb-col-img { order: 0; }
	.gb-hero { padding: 64px 0 48px; }
}
