/* Homepage sections: introduction, ecosystem, presence, partnerships, contact.
   One system with the hero: Midnight Navy, Warm Ivory, Champagne, Plus Jakarta Sans. Loads only when a section block is on the page. */
.cb-sec {
	--deep: var(--wp--preset--color--deep); --navy-900: var(--wp--preset--color--navy-900); --navy-800: var(--wp--preset--color--navy-800); --navy-700: var(--wp--preset--color--navy-700); --navy-300: var(--wp--preset--color--navy-300);
	--ivory: var(--wp--preset--color--ivory); --pearl: var(--wp--preset--color--pearl); --line: var(--wp--preset--color--line); --line-2: var(--wp--custom--color--line-2);
	--ink: var(--wp--preset--color--ink); --ink-2: var(--wp--preset--color--ink-2); --ink-3: var(--wp--preset--color--ink-3);
	--on-dark: var(--wp--preset--color--on-dark); --gold: var(--wp--preset--color--gold); --gold-hover: var(--wp--custom--color--gold-hover); --gold-light: var(--wp--preset--color--gold-light); --gold-deep: var(--wp--preset--color--gold-deep);
	--ease: var(--wp--custom--ease);
	--gutter: var(--wp--preset--spacing--gutter);
	--sec-y: clamp(4.5rem, 2.5rem + 7vw, 9.5rem);
	position: relative; isolation: isolate; overflow: hidden; padding-block: var(--sec-y);
	font-family: var(--wp--preset--font-family--jakarta); color: var(--ink); -webkit-font-smoothing: antialiased;
	scroll-margin-top: 0;
}
.cb-sec, .cb-sec *, .cb-sec *::before, .cb-sec *::after { box-sizing: border-box; }
.wp-block-post-content > .cb-sec, .wp-block-post-content > .cb-hero { margin-block: 0; }
:where(.cb-sec) :is(h2, h3, p, ul, dl, dd) { margin: 0; padding: 0; }
.cb-sec.cb-sec :is(h2, h3) { color: inherit; }
:where(.cb-sec) ul { list-style: none; }
:where(.cb-sec) a { text-decoration: none; color: inherit; }
:where(.cb-sec) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cb-sec ::selection { background: var(--gold); color: var(--deep); }
.cb-sec :focus-visible { outline: 2px solid var(--navy-700); outline-offset: 3px; border-radius: 6px; }
.cb-ico { flex: none; }
.cb-wrap { width: 100%; max-width: calc(1440px + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }
.cb-sec .sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.cb-h2 { font-size: clamp(2rem, 1.3rem + 2.2vw, 3.4rem); line-height: 1.08; font-weight: 600; letter-spacing: -0.03em; text-wrap: balance; }
.cb-lead { font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.6; color: var(--ink-2); max-width: 34rem; text-wrap: pretty; }

/* Links and buttons */
.cb-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; font-size: 0.9375rem; color: var(--navy-700); }
.cb-link span { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; padding-bottom: 3px; transition: background-size 420ms var(--ease); }
.cb-link:hover span, .cb-link:focus-visible span { background-size: 100% 1.5px; }
.cb-link .cb-ico { transition: translate 420ms var(--ease); }
.cb-link:hover .cb-ico { translate: 3px 0; }
.cb-link--light { color: var(--on-dark); }
.cb-btn { display: inline-flex; align-items: center; gap: 14px; min-height: 54px; padding: 0 26px; border-radius: 999px; font-size: 0.9375rem; font-weight: 600; letter-spacing: -0.005em; white-space: nowrap; transition: background-color 420ms var(--ease), box-shadow 420ms var(--ease), scale 160ms var(--ease); }
.cb-btn:active { scale: 0.96; }
.cb-btn__icon { display: grid; place-items: center; width: 38px; height: 38px; margin-inline-end: -18px; border-radius: 50%; transition: translate 420ms var(--ease); }
.cb-btn:hover .cb-btn__icon { translate: 3px 0; }
.cb-btn--gold { background: var(--gold); color: var(--deep); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 14px 28px -16px rgba(198, 165, 108, 0.6); }
.cb-btn--gold .cb-btn__icon { background: rgba(8, 14, 26, 0.1); }
.cb-btn--gold:hover { background: var(--gold-hover); }
.cb-btn--ghost { color: var(--on-dark); box-shadow: 0 0 0 1px rgba(244, 241, 234, 0.32) inset; }
.cb-btn--ghost:hover { background: rgba(244, 241, 234, 0.08); box-shadow: 0 0 0 1px rgba(244, 241, 234, 0.62) inset; }
/* The theme.json link hover colour (navy) would otherwise win on hover and focus and make these labels unreadable on dark surfaces. */
.cb-btn--ghost:hover, .cb-btn--ghost:focus-visible, .cb-btn--dark:hover, .cb-btn--dark:focus-visible { color: var(--on-dark); }
.cb-btn--gold:hover, .cb-btn--gold:focus-visible { color: var(--deep); }
.cb-link--light:hover, .cb-link--light:focus-visible { color: var(--on-dark); }
.cb-btn--dark { background: var(--navy-900); color: var(--on-dark); box-shadow: 0 14px 28px -18px rgba(16, 27, 51, 0.6); }
.cb-btn--dark .cb-btn__icon { background: rgba(244, 241, 234, 0.12); }
.cb-btn--dark:hover { background: var(--navy-800); }
.cb-btn.is-disabled { background: transparent; color: var(--ink-3); box-shadow: 0 0 0 1px var(--line-2) inset; cursor: not-allowed; }
.cb-btn.is-disabled:active { scale: 1; }

/* Line reveal helper */
.cb-line { display: block; overflow: hidden; padding-bottom: 0.1em; margin-bottom: -0.1em; }
.cb-line > span { display: block; }

/* ---------- Motion: one reveal vocabulary, enabled only when JS is running ---------- */
@keyframes cbs-panel-in { from { opacity: 0; transform: translateY(14px) scale(0.99); } to { opacity: 1; transform: none; } }
.cb-js [data-reveal="fade"] { opacity: 0; transform: translateY(18px); transition: opacity 900ms var(--ease), transform 900ms var(--ease); }
.cb-js [data-reveal="fade"].is-in { opacity: 1; transform: none; }
.cb-js [data-reveal="lines"] .cb-line > span { transform: translateY(105%); transition: transform 1.1s var(--ease); }
.cb-js [data-reveal="lines"] .cb-line:nth-child(2) > span { transition-delay: 120ms; }
.cb-js [data-reveal="lines"].is-in .cb-line > span { transform: none; }
.cb-js [data-reveal="rows"] > * { opacity: 0; transform: translateY(14px); transition: opacity 800ms var(--ease) calc(var(--i, 0) * 110ms), transform 800ms var(--ease) calc(var(--i, 0) * 110ms), translate 420ms var(--ease), color 420ms var(--ease), padding 420ms var(--ease); }
.cb-js [data-reveal="rows"].is-in > * { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.cb-sec *, .cb-sec *::before, .cb-sec *::after { animation: none !important; transition-duration: 0.01ms !important; transition-delay: 0ms !important; }
	.cb-js [data-reveal], .cb-js [data-reveal] > *, .cb-js [data-reveal] .cb-line > span { opacity: 1 !important; transform: none !important; }
}
