/*
Theme Name: Octobiz 2026
Theme URI: https://octo.biz/
Author: Octobiz Ltd
Description: Editorial block theme for Octobiz, The Turnaround Architects. Octobiz CI (Amber #FEA610, Montserrat), quiet premium design for CEOs, family offices and private equity. Scroll-driven animations, cross-document view transitions, subgrid layouts, zero dependencies.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 7.4
Version: 3.0.0
License: Proprietary – © 2026 Octobiz Ltd
Text Domain: octobiz-2026
*/

/* ==========================================================================
   0. Tokens · Layout concept: editorial broadsheet grid, hairlines instead of boxes,
      dark only for hero, statements and footer; amber as a fine accent.
   ========================================================================== */
:root {
	--ob-amber: #FEA610;
	--ob-amber-ink: #9C6100;
	--ob-ink: #1F1F23;
	--ob-ink-2: #46464C;
	--ob-muted: #6F6F75;
	--ob-line: #E3E3E0;
	--ob-line-strong: #CFCFCB;
	--ob-paper: #FFFFFF;
	--ob-mist: #F6F6F6;
	--ob-night: #121214;
	--ob-on-dark: #F4F4F2;
	--ob-on-dark-2: #A9A9AE;
	--ob-hair-dark: rgba(255,255,255,.12);
	--ob-signal: var(--ob-amber);
	--ob-display: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ob-body: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
	--ob-ease: cubic-bezier(.22,.8,.18,1);
	--ob-ease-out: cubic-bezier(.16,1,.3,1);
	--ob-gutter: clamp(1.25rem, 4.5vw, 3rem);
	--ob-wide: 1240px;
	--ob-topbar-h: 40px;
	--ob-bar-h: 88px;
	--ob-header-h: calc(var(--ob-topbar-h) + var(--ob-bar-h));
	--ob-r: 2px;
	interpolate-size: allow-keywords;
	scroll-padding-top: calc(72px + 1rem);
}

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: ob-vt-out .35s var(--ob-ease) both; }
::view-transition-new(root) { animation: ob-vt-in .55s var(--ob-ease-out) both; }
@keyframes ob-vt-out { to { opacity: 0; } }
@keyframes ob-vt-in { from { opacity: 0; transform: translateY(12px); } }

/* ==========================================================================
   1. Base & typography
   ========================================================================== */
html { -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; }
body { background: var(--ob-paper); color: var(--ob-ink); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; font-size: 1.0625rem; line-height: 1.75; font-weight: 400; }
::selection { background: var(--ob-amber); color: var(--ob-night); }
img, video { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--ob-amber); outline-offset: 3px; }
strong, b { font-family: var(--ob-display); font-weight: 600; }
p { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: balance; }
h1, h2 { font-family: var(--ob-body) !important; font-weight: 350 !important; letter-spacing: -.025em; }
h1 { font-weight: 300 !important; }
h3, h4 { font-family: var(--ob-display); font-weight: 600; letter-spacing: -.005em; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); transition: color .25s, text-decoration-color .25s; }
a:hover { text-decoration-color: var(--ob-amber); }
.ob-muted { color: var(--ob-muted); }
.ob-small { font-size: .9rem; }
.wp-site-blocks > * { margin-block-start: 0; }
.ob-main > *, .ob-main > .wp-block-post-content > * { margin-block-start: 0 !important; }
.skip-link.screen-reader-text:focus { background: var(--ob-amber); color: var(--ob-night); }

/* Eyebrow: small caps label, no dash */
.ob-eyebrow { font-family: var(--ob-display); font-size: .75rem; line-height: 1.4; letter-spacing: .18em; text-transform: uppercase; color: var(--ob-amber-ink); margin: 0 0 1.25rem; }
.ob-eyebrow a { color: inherit; text-decoration: none; }
.ob-hero .ob-eyebrow, .ob-tone-rxi .ob-eyebrow, .ob-ctaband .ob-eyebrow, .ob-tone-accent .ob-eyebrow { color: var(--ob-amber); }

/* Buttons: square, quiet, with a moving arrow */
.wp-block-buttons { gap: .75rem 1.5rem; margin-top: 2.25rem; align-items: center; }
.wp-element-button, .wp-block-button__link {
	display: inline-flex; align-items: center; gap: .85em; border-radius: var(--ob-r) !important; padding: 1.05em 1.6em !important;
	background: var(--ob-night); color: #fff; box-shadow: none !important; font-family: var(--ob-display); font-size: .8125rem !important; letter-spacing: .08em; text-transform: uppercase; text-decoration: none;
	transition: background-color .35s var(--ob-ease), color .35s var(--ob-ease), transform .35s var(--ob-ease), border-color .35s;
}
.wp-element-button::after, .wp-block-button__link::after { content: "→"; font-family: var(--ob-body); letter-spacing: 0; transition: transform .35s var(--ob-ease); }
.wp-element-button:hover, .wp-block-button__link:hover { background: var(--ob-amber) !important; color: var(--ob-night) !important; }
.wp-element-button:hover::after, .wp-block-button__link:hover::after { transform: translateX(5px); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: currentColor; border: 1px solid color-mix(in srgb, currentColor 40%, transparent); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: transparent !important; color: inherit !important; border-color: var(--ob-amber); }
.wp-block-button.is-style-ob-arrow > .wp-block-button__link, .wp-block-button.is-style-ob-ghost > .wp-block-button__link {
	background: none; color: inherit; padding: .3em 0 !important; border-bottom: 1px solid var(--ob-amber) !important; border-radius: 0 !important;
}
.wp-block-button.is-style-ob-arrow > .wp-block-button__link:hover { background: none !important; color: inherit !important; }
.ob-hero .wp-block-button:not(.is-style-outline):not(.is-style-ob-arrow) .wp-element-button,
.ob-ctaband .wp-block-button:not(.is-style-outline) .wp-element-button,
.ob-tone-accent .wp-block-button:not(.is-style-outline):not(.is-style-ob-arrow) .wp-element-button,
.ob-tone-rxi .wp-block-button:not(.is-style-outline):not(.is-style-ob-arrow) .wp-element-button { background: var(--ob-amber); color: var(--ob-night); }
.ob-hero .wp-element-button:hover, .ob-ctaband .wp-element-button:hover, .ob-tone-rxi .wp-element-button:hover, .ob-tone-accent .wp-element-button:hover { background: #fff !important; color: var(--ob-night) !important; }

/* ==========================================================================
   2. Header (transparent on the hero, white once you scroll)
   ========================================================================== */
.ob-header { position: sticky; top: 0; z-index: 100; color: #fff; margin-bottom: calc(-1 * var(--ob-header-h)); view-transition-name: ob-header; transition: background-color .45s var(--ob-ease), color .45s, transform .55s var(--ob-ease), box-shadow .45s; }
.admin-bar .ob-header { top: var(--wp-admin--admin-bar--height, 32px); }
.ob-header.is-scrolled { background: rgba(255,255,255,.96); color: var(--ob-ink); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); box-shadow: 0 2px 0 var(--ob-line); }
.ob-header.is-hidden { transform: translateY(-105%); }
.ob-header > * { margin-block: 0 !important; }

/* Line 1: slim top bar with claim, phone, email and the call to action */
.ob-topbar { border-bottom: 1px solid var(--ob-hair-dark); font-size: .8125rem; line-height: 1; overflow: hidden; max-height: var(--ob-topbar-h); transition: max-height .45s var(--ob-ease), opacity .3s, border-color .45s; }
.ob-topbar__inner { max-width: calc(var(--ob-wide) + 2 * var(--ob-gutter)); margin: 0 auto !important; box-sizing: border-box; padding: 0 var(--ob-gutter); height: var(--ob-topbar-h); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.ob-topbar p { margin: 0; display: flex; align-items: center; gap: 1.75rem; white-space: nowrap; }
.ob-topbar__claim { color: var(--ob-on-dark-2); letter-spacing: .01em; }
.ob-topbar a { color: inherit; text-decoration: none; font-weight: 500; }
.ob-topbar a:hover { color: var(--ob-amber); }
.ob-topbar .ob-topbar__cta { color: var(--ob-amber); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .75rem; display: inline-flex; gap: .5em; align-items: center; }
.ob-topbar .ob-topbar__cta::after { content: "→"; transition: transform .35s var(--ob-ease); }
.ob-topbar .ob-topbar__cta:hover::after { transform: translateX(4px); }
.ob-header.is-scrolled .ob-topbar { max-height: 0; opacity: 0; border-color: transparent; }

/* Line 2: logo and main menu, larger and wider type */
.ob-header__bar { max-width: calc(var(--ob-wide) + 2 * var(--ob-gutter)); margin-inline: auto !important; padding: 0 var(--ob-gutter); min-height: var(--ob-bar-h); gap: 2.5rem; transition: min-height .45s var(--ob-ease); }
.ob-header.is-scrolled .ob-header__bar { min-height: 72px; }
.ob-brand { display: inline-grid; line-height: 0; flex: none; }
.ob-brand img { grid-area: 1 / 1; height: 44px; width: auto !important; max-width: none !important; transition: opacity .45s; }
.ob-header.is-scrolled .ob-brand img { height: 38px; }
.ob-brand__dark { opacity: 0; }
.ob-header.is-scrolled .ob-brand__light { opacity: 0; }
.ob-header.is-scrolled .ob-brand__dark { opacity: 1; }
.ob-footer .ob-brand__dark { display: none; }
.ob-nav { margin-left: auto; font-family: var(--ob-body); font-size: .96rem !important; font-weight: 500; letter-spacing: 0; }
.ob-header .ob-nav, .ob-header .ob-nav .wp-block-navigation__container { flex-wrap: nowrap !important; }
.ob-nav .wp-block-navigation__container { gap: clamp(1.25rem, 2.1vw, 2.25rem) !important; }
.ob-nav .wp-block-navigation-item__content { color: inherit; text-decoration: none; padding-block: .7rem; position: relative; white-space: nowrap; }
.ob-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: .3rem; height: 2px; background: var(--ob-amber); transform: scaleX(0); transform-origin: right; transition: transform .45s var(--ob-ease);
}
.ob-nav .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after { transform: scaleX(1); transform-origin: left; }
/* Current page (and its section) stays underlined */
.ob-nav .wp-block-navigation__container > .wp-block-navigation-item.is-current > .wp-block-navigation-item__content::after,
.ob-nav .wp-block-navigation__container > .wp-block-navigation-item.is-current-parent > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.ob-nav .wp-block-navigation__submenu-container .is-current > .wp-block-navigation-item__content { color: var(--ob-amber-ink); box-shadow: inset 2px 0 0 var(--ob-amber); }
.ob-nav .ob-nav__rxi > .wp-block-navigation-item__content { color: var(--ob-amber); }
.ob-header.is-scrolled .ob-nav .ob-nav__rxi > .wp-block-navigation-item__content { color: var(--ob-amber-ink); }
.ob-nav .wp-block-navigation__submenu-container {
	background: #fff !important; color: var(--ob-ink) !important; border: 1px solid var(--ob-line) !important; border-radius: var(--ob-r);
	padding: .6rem !important; min-width: 20rem !important; box-shadow: 0 24px 48px -24px rgba(18,18,20,.35); margin-top: .25rem;
}
.ob-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .7rem .9rem !important; font-size: .95rem; font-weight: 500; }
.ob-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--ob-amber-ink); background: var(--ob-mist); }
.ob-nav .wp-block-navigation__responsive-container-open, .ob-nav .wp-block-navigation__responsive-container-close { color: inherit; }
.ob-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ob-night) !important; color: #fff !important; padding: 2rem var(--ob-gutter); }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .6rem !important; font-size: 1.4rem; font-weight: 400; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; color: var(--ob-on-dark-2) !important; border: 0 !important; box-shadow: none; padding: 0 0 .75rem 1rem !important; min-width: 0 !important; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .is-current > .wp-block-navigation-item__content { color: var(--ob-amber); }

/* Menu collapses to the burger below 1140px, so the type never has to shrink */
@media (min-width: 600px) and (max-width: 1139px) {
	.ob-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.ob-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.ob-nav .wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; display: flex; flex-direction: column; overflow: auto; }
	.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
	.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; }
	.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static; opacity: 1; visibility: visible; width: auto; height: auto; }
}
@media (max-width: 899px) { .ob-topbar__claim, .ob-topbar__links a[href^="mailto"] { display: none !important; } .ob-topbar__inner { justify-content: flex-end; } }
@media (max-width: 599px) { .ob-brand img { height: 34px; } .ob-header__bar { gap: 1rem; } }

/* ==========================================================================
   3. Hero (dark, calm)
   ========================================================================== */
.ob-hero { --ob-mx: 75%; --ob-my: 20%; position: relative; isolation: isolate; overflow: clip; color: var(--ob-on-dark); background: var(--ob-night);
	padding: calc(var(--ob-header-h) + clamp(3.5rem, 9vw, 8rem)) var(--ob-gutter) clamp(4rem, 8vw, 7rem); }
.ob-hero__art { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.ob-hero__art span { position: absolute; display: block; }
.ob-hero__art span:nth-child(1) { inset: 0; background: radial-gradient(48rem 34rem at var(--ob-mx) var(--ob-my), rgba(254,166,16,.10), transparent 70%), linear-gradient(180deg, #151517 0%, #101012 100%); }
.ob-hero__art span:nth-child(2) { inset: 0; opacity: .6; background-image: linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: calc(min(100vw, var(--ob-wide)) / 6) 100%; background-position: center;
	mask-image: linear-gradient(180deg, transparent, #000 25%, #000 70%, transparent); -webkit-mask-image: linear-gradient(180deg, transparent, #000 25%, #000 70%, transparent); }
.ob-hero__art span:nth-child(3) { width: min(70vw, 52rem); aspect-ratio: 1; right: -18vw; top: 50%; translate: 0 -50%; border-radius: 50%; border: 1px solid rgba(255,255,255,.09); animation: ob-spin 120s linear infinite; }
.ob-hero__art span:nth-child(3)::before { content: ""; position: absolute; inset: 14%; border-radius: 50%; border: 1px solid rgba(255,255,255,.06); }
.ob-hero__art span:nth-child(3)::after { content: ""; position: absolute; width: 38%; height: 38%; right: 6%; top: 6%; border-radius: 0 100% 0 0; border-top: 1px solid rgba(254,166,16,.6); border-right: 1px solid rgba(254,166,16,.6); }
@keyframes ob-spin { to { rotate: 360deg; } }
.ob-hero__inner { max-width: var(--ob-wide); margin-inline: auto; display: grid; gap: clamp(2.5rem, 6vw, 6rem); grid-template-columns: minmax(0, 1fr); align-items: start; }
.ob-hero__inner:has(> .ob-hero__aside) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
@media (max-width: 980px) { .ob-hero__inner:has(> .ob-hero__aside) { grid-template-columns: minmax(0, 1fr); } }
.ob-hero__inner > * { margin: 0 !important; }
.ob-hero__copy > * { margin-block: 0; }
.ob-hero__copy > * + * { margin-top: 1.5rem; }
.ob-hero__title { font-size: clamp(2.6rem, 5.4vw, 4.75rem) !important; line-height: 1.04 !important; max-width: 17ch; margin-top: 0 !important; color: #fff; }
.ob-hero--home .ob-hero__title { font-size: clamp(3rem, 6.6vw, 6rem) !important; max-width: 13ch; }
.ob-hero__lead { font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.5; color: var(--ob-amber); max-width: 42ch; }
.ob-hero__copy > p:not([class]) { color: var(--ob-on-dark-2); max-width: 60ch; }
.ob-hero__copy a:not(.wp-element-button) { color: #fff; text-decoration-color: rgba(254,166,16,.7); }
.ob-hero__meta { font-size: .8125rem; color: var(--ob-on-dark-2); letter-spacing: .02em; padding-left: 1rem; border-left: 2px solid var(--ob-amber); }
.ob-hero--home { min-height: min(100svh, 960px); display: grid; align-items: center; padding-bottom: clamp(6rem, 10vw, 9rem); }
.ob-hero--compact, .ob-hero--legal, .ob-hero--article, .ob-hero--case { padding-bottom: clamp(3rem, 6vw, 5rem); }
.ob-hero--compact .ob-hero__title, .ob-hero--legal .ob-hero__title { font-size: clamp(2.4rem, 4.6vw, 3.9rem) !important; max-width: 22ch; }
.ob-hero--article .ob-hero__title, .ob-hero--case .ob-hero__title { font-size: clamp(2.1rem, 4vw, 3.4rem) !important; max-width: 24ch; }
.ob-hero--article .ob-hero__inner { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: end; }
@media (max-width: 980px) { .ob-hero--article .ob-hero__inner { grid-template-columns: 1fr; } }
.ob-hero__ctas { margin-top: 2.5rem !important; }
.ob-hero__aside { position: relative; }
@media (prefers-reduced-motion: no-preference) {
	.ob-hero__copy > *:not(.ob-hero__title), .ob-hero__aside { animation: ob-rise 1.1s var(--ob-ease-out) both; }
	.ob-hero__copy > *:nth-child(3) { animation-delay: .35s; }
	.ob-hero__copy > *:nth-child(4) { animation-delay: .45s; }
	.ob-hero__copy > *:nth-child(n+5) { animation-delay: .55s; }
	.ob-hero__aside { animation-delay: .5s; }
}
@keyframes ob-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes ob-fade { from { opacity: 0; } }

.ob-video { margin: 0; position: relative; overflow: hidden; background: #000; aspect-ratio: 16 / 10; border-radius: var(--ob-r); }
.ob-video video { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .92; }
.ob-video figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; gap: .6rem; align-items: center; font-size: .8125rem; padding: 1rem 1.25rem; color: #fff; background: linear-gradient(0deg, rgba(0,0,0,.6), transparent); }
.ob-pulse { width: .45rem; height: .45rem; border-radius: 50%; background: var(--ob-amber); display: inline-block; flex: none; animation: ob-pulse 2.6s infinite; }
@keyframes ob-pulse { 0% { box-shadow: 0 0 0 0 rgba(254,166,16,.6); } 70% { box-shadow: 0 0 0 .5rem transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }

/* ==========================================================================
   4. Consultation form (white panel on the dark hero)
   ========================================================================== */
.ob-formcard { position: relative; padding: clamp(1.75rem, 3vw, 2.5rem); background: #fff; color: var(--ob-ink); border-radius: var(--ob-r); box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); border-top: 3px solid var(--ob-amber); }
.ob-formcard > * { margin-block: 0; }
.ob-formcard > * + * { margin-top: 1rem; }
.ob-formcard__badge { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; font-family: var(--ob-display); display: inline-flex; gap: .6rem; align-items: center; color: var(--ob-muted); }
.ob-formcard__title { font-family: var(--ob-body) !important; font-weight: 400 !important; font-size: 1.6rem; line-height: 1.2; letter-spacing: -.01em; }
.ob-formcard__trust { font-size: .75rem; color: var(--ob-muted); border-top: 2px solid var(--ob-line); padding-top: 1rem; line-height: 1.6; }
.ob-formcard .wpcf7 form > p, .ob-formcard .wpcf7-form > p { margin: 0 0 1.1rem; }
.ob-formcard label { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-family: var(--ob-display); color: var(--ob-ink-2); display: block; }
.ob-formcard input:where([type=text], [type=email], [type=tel], [type=url], [type=number]), .ob-formcard select, .ob-formcard textarea {
	width: 100%; box-sizing: border-box; margin-top: .35rem; font: inherit; font-family: var(--ob-body); font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--ob-ink);
	background: transparent; border: 0; border-bottom: 1px solid var(--ob-line-strong); border-radius: 0; padding: .6rem 0; transition: border-color .3s, box-shadow .3s; appearance: none;
}
.ob-formcard select { background-image: linear-gradient(45deg, transparent 50%, var(--ob-ink) 50%), linear-gradient(135deg, var(--ob-ink) 50%, transparent 50%); background-position: calc(100% - 9px) 55%, calc(100% - 4px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 1.5rem; }
.ob-formcard textarea { min-height: 5.5rem; resize: vertical; }
.ob-formcard :is(input, select, textarea):focus { outline: none; border-bottom-color: var(--ob-amber); box-shadow: 0 1px 0 var(--ob-amber); }
.ob-formcard ::placeholder { color: var(--ob-muted); }
.ob-formcard .wpcf7-list-item { margin: .4rem 1.25rem 0 0; font-size: .9375rem; text-transform: none; letter-spacing: 0; font-family: var(--ob-body); }
.ob-formcard input[type=checkbox], .ob-formcard input[type=radio] { accent-color: var(--ob-amber); }
.ob-formcard input[type=submit], .ob-formcard .wpcf7-submit {
	width: 100%; cursor: pointer; border: 0; border-radius: var(--ob-r); padding: 1.1rem 1.5rem; font-family: var(--ob-display); font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase;
	background: var(--ob-night); color: #fff; transition: background-color .3s, color .3s;
}
.ob-formcard .wpcf7-submit:hover { background: var(--ob-amber); color: var(--ob-night); }
.ob-formcard .wpcf7-spinner { position: absolute; }
.ob-formcard .wpcf7-response-output { margin: 1rem 0 0 !important; font-size: .875rem; border-radius: var(--ob-r); }
.ob-formcard__fallback { margin-top: 1.25rem !important; }
.ob-formcard .wp-block-button:not(.is-style-outline) .wp-element-button { background: var(--ob-night); color: #fff; }
.ob-formcard .is-style-outline .wp-element-button { color: var(--ob-ink); }

/* ==========================================================================
   5. Sections
   ========================================================================== */
.ob-section { position: relative; padding: clamp(5rem, 10vw, 9rem) var(--ob-gutter); }
.ob-section > * { max-width: var(--ob-wide); margin-inline: auto !important; }
.ob-section:not(.ob-legal) > * + * { margin-block-start: clamp(2.5rem, 4vw, 3.75rem) !important; }
.ob-section.ob-narrow > * { max-width: 860px; }
.ob-section__head > * { margin-block: 0; }
.ob-section__head > * + * { margin-top: 1.25rem; }
.ob-section__title { font-size: clamp(2rem, 3.7vw, 3.25rem) !important; line-height: 1.1 !important; max-width: 22ch; }
.ob-narrow .ob-section__title { max-width: none; }
.ob-section__intro { max-width: 62ch; font-size: clamp(1.1rem, 1.35vw, 1.25rem); line-height: 1.6; color: var(--ob-ink-2); }
.ob-lead { font-size: clamp(1.15rem, 1.5vw, 1.35rem); line-height: 1.6; color: var(--ob-ink-2); }
.ob-section__title a, .ob-lead a { text-decoration-color: var(--ob-amber); }
.ob-tone-light, .ob-tone-dark { background: var(--ob-paper); }
.ob-tone-mist { background: var(--ob-mist); }
.ob-section:is(.ob-tone-light, .ob-tone-dark) + .ob-section:is(.ob-tone-light, .ob-tone-dark)::before {
	content: ""; position: absolute; top: 0; left: max(var(--ob-gutter), calc((100% - var(--ob-wide)) / 2)); right: max(var(--ob-gutter), calc((100% - var(--ob-wide)) / 2)); height: 2px; background: var(--ob-line);
}
.ob-tone-accent { background: var(--ob-night); color: var(--ob-on-dark); }
.ob-tone-accent .ob-section__intro { color: var(--ob-on-dark-2); }

/* Split layout: sticky heading left, content right. Also used for process timelines. */
@media (min-width: 980px) {
	.ob-split, .ob-section:has(> .ob-steps:not(.ob-steps--case)) {
		display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(3rem, 7vw, 7rem); align-items: start;
		padding-inline: max(var(--ob-gutter), calc((100% - var(--ob-wide)) / 2));
	}
	.ob-split > *, .ob-section:has(> .ob-steps:not(.ob-steps--case)) > * { max-width: none; margin: 0 !important; grid-column: 2; }
	.ob-split > .ob-section__head, .ob-section:has(> .ob-steps:not(.ob-steps--case)) > .ob-section__head { grid-column: 1; grid-row: 1 / span 12; position: sticky; top: calc(72px + 2.5rem); }
	.ob-section:has(> .ob-steps:not(.ob-steps--case)) > * + * { margin-top: 3rem !important; }
	.ob-section:has(> .ob-steps:not(.ob-steps--case)) > .ob-section__head + * { margin-top: 0 !important; }
}

.ob-panel { padding: clamp(2rem, 3.5vw, 3rem) 0 0; border-top: 2px solid var(--ob-ink); }
.ob-panel > * { margin-block: 0; } .ob-panel > * + * { margin-top: 1.1rem; }
.ob-panel h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem) !important; line-height: 1.15 !important; }
.ob-panel p { color: var(--ob-ink-2); }
.ob-panel--accent { border-top-color: var(--ob-amber); }

/* ==========================================================================
   6. Grids, cards, lists (hairlines, no boxes)
   ========================================================================== */
.ob-grid { --ob-min: 17rem; grid-template-columns: repeat(auto-fit, minmax(min(var(--ob-min), 100%), 1fr)) !important; gap: clamp(2.25rem, 3.5vw, 3.25rem) clamp(1.5rem, 3vw, 3rem) !important; }
.ob-grid > * { margin: 0 !important; }
.ob-min-100pc { --ob-min: 100%; } .ob-min-12rem { --ob-min: 12rem; } .ob-min-13rem { --ob-min: 13rem; } .ob-min-14rem { --ob-min: 14rem; }
.ob-min-15rem { --ob-min: 15rem; } .ob-min-17rem { --ob-min: 17rem; } .ob-min-19rem { --ob-min: 19rem; } .ob-min-20rem { --ob-min: 20rem; } .ob-min-22rem { --ob-min: 22rem; }

.ob-card { position: relative; display: flex; flex-direction: column; gap: .9rem; padding-top: 1.75rem; border-top: 2px solid var(--ob-line-strong); container-type: inline-size; }
.ob-card > * { margin: 0 !important; }
.ob-card::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 100%; background: var(--ob-amber); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--ob-ease); }
.ob-card:hover::before { transform: scaleX(1); }
.ob-card__title { font-size: 1.2rem; line-height: 1.35; }
.ob-card__title a { text-decoration: none; }
.ob-card__title a::after { content: ""; position: absolute; inset: 0; }
.ob-card p { color: var(--ob-ink-2); }
.ob-card__kicker { font-family: var(--ob-display); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ob-amber-ink) !important; }
.ob-card__link { margin-top: auto !important; padding-top: .75rem; font-family: var(--ob-display); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; position: relative; z-index: 1; }
.ob-card__link a { text-decoration: none; border-bottom: 1px solid var(--ob-amber); padding-bottom: .2rem; }
.ob-card__link a::after { content: " →"; display: inline-block; transition: transform .35s var(--ob-ease); }
.ob-card:hover .ob-card__link a::after { transform: translateX(4px); }
.ob-card__media { order: -1; margin: 0 0 .5rem !important; overflow: hidden; aspect-ratio: 3 / 2; background: var(--ob-mist); border-radius: var(--ob-r); }
.ob-card:has(.ob-card__media) { border-top: 0; padding-top: 0; }
.ob-card:has(.ob-card__media)::before { display: none; }
.ob-card__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); transition: transform 1.4s var(--ob-ease), filter .8s; filter: saturate(.8); }
.ob-card:hover .ob-card__media img { transform: scale(1.08); filter: saturate(1); }
.ob-card__media a { display: block; height: 100%; }
.ob-card--feature .ob-card__title { font-size: clamp(1.5rem, 2.2vw, 1.9rem); font-family: var(--ob-body); font-weight: 400; letter-spacing: -.01em; }
.ob-card--feature .ob-card__media { aspect-ratio: 16 / 10; }
.ob-cards--signal { counter-reset: ob-signal; }
.ob-cards--signal .ob-card { counter-increment: ob-signal; }
.ob-cards--signal .ob-card .ob-card__title::before { content: counter(ob-signal, decimal-leading-zero); display: block; font-family: var(--ob-display); font-size: .72rem; letter-spacing: .14em; color: var(--ob-amber-ink); margin-bottom: .75rem; }
.ob-card--contact .ob-card__title { font-family: var(--ob-body); font-weight: 400; font-size: 1.15rem; line-height: 1.5; }
.ob-card--contact .ob-card__title a { text-decoration: underline; text-decoration-color: var(--ob-amber); }
.ob-card--contact .ob-card__title a::after { content: none; }
.ob-card--person .ob-card__media { aspect-ratio: 4 / 5; }
.ob-card--person .ob-card__media img { filter: grayscale(1); }
.ob-card--person:hover .ob-card__media img { filter: grayscale(0); }
.ob-card--person .ob-card__title { font-size: 1.05rem; order: 2; }
.ob-card--person .ob-card__kicker { order: 3; text-transform: none; letter-spacing: 0; font-family: var(--ob-body); font-size: .9375rem; color: var(--ob-muted) !important; }

.ob-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.ob-checklist li { position: relative; padding: 1.1rem 0 1.1rem 2.25rem; border-top: 2px solid var(--ob-line); color: var(--ob-ink-2); }
.ob-checklist li:last-child { border-bottom: 2px solid var(--ob-line); }
.ob-checklist li::before { content: ""; position: absolute; left: 0; top: calc(1.1rem + .85em); width: 1.1rem; height: 2px; background: var(--ob-amber); }
.ob-checklist li strong { color: var(--ob-ink); }
.ob-checklist--grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); column-gap: 3rem; }
.ob-split .ob-checklist li { font-size: clamp(1.1rem, 1.5vw, 1.3rem); padding-block: 1.5rem; line-height: 1.5; color: var(--ob-ink); }
.ob-split .ob-checklist li::before { top: calc(1.5rem + .75em); }
.ob-card .ob-checklist li { padding-block: .8rem; }
.ob-card .ob-checklist li::before { top: calc(.8rem + .85em); }

.ob-num { display: flex; flex-direction: column; gap: .75rem; padding-top: 1.75rem; border-top: 2px solid var(--ob-line-strong); position: relative; }
.ob-num::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 2.5rem; background: var(--ob-amber); transition: width .9s var(--ob-ease); }
.ob-num:hover::before { width: 100%; }
.ob-num > * { margin: 0 !important; }
.ob-num__n { font-family: var(--ob-display); font-size: .75rem; letter-spacing: .14em; color: var(--ob-amber-ink); }
.ob-num__title { font-size: 1.2rem; line-height: 1.35; }
.ob-num p:not(.ob-num__n) { color: var(--ob-ink-2); }

/* Process timeline: vertical, the amber line draws as you scroll */
.ob-steps { position: relative; display: grid; gap: 0; }
.ob-steps > * { margin: 0 !important; }
.ob-steps::before, .ob-steps::after { content: ""; position: absolute; left: calc(1.375rem - 1px); top: 1.375rem; bottom: 1.375rem; width: 2px; background: var(--ob-line-strong); }
.ob-steps::after { background: var(--ob-amber); transform-origin: top; width: 2px; }
@supports (animation-timeline: view()) { @media (prefers-reduced-motion: no-preference) {
	.ob-steps::after { animation: ob-grow-y linear both; animation-timeline: view(); animation-range: entry 25% cover 75%; }
} }
.ob-js .ob-steps[style*="--ob-p"]::after { transform: scaleY(var(--ob-p)); transition: transform .2s linear; }
@keyframes ob-grow-y { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.ob-step { display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: clamp(1.25rem, 3vw, 2.25rem); position: relative; padding-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.ob-step:last-child { padding-bottom: 0; }
.ob-step > * { margin: 0 !important; }
.ob-step__n { width: 2.75rem; height: 2.75rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--ob-display); font-size: .72rem; letter-spacing: .04em; background: var(--ob-paper); color: var(--ob-ink); border: 1px solid var(--ob-line-strong); position: relative; z-index: 1; transition: background-color .6s, border-color .6s, color .6s; }
.ob-tone-mist .ob-step__n { background: var(--ob-mist); }
.ob-step.is-active .ob-step__n, .ob-step:hover .ob-step__n { background: var(--ob-amber); border-color: var(--ob-amber); color: var(--ob-night); }
.ob-step__body > * { margin-block: 0; }
.ob-step__body > * + * { margin-top: .75rem; }
.ob-step__title { font-size: 1.35rem !important; line-height: 1.3; padding-top: .6rem; }
.ob-step__body p { color: var(--ob-ink-2); }
.ob-step__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: .75rem 2rem; margin-top: 1.25rem !important; padding-top: 1rem; border-top: 2px solid var(--ob-line); font-size: .9375rem; }
.ob-step__meta span { display: flex; flex-direction: column; gap: .2rem; color: var(--ob-ink); }
.ob-step__meta strong { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-amber-ink); }
.ob-steps--case .ob-step__title { font-size: 1.15rem !important; }

/* Sector cards on subgrid: name, both challenges and the measure line up across a row */
.ob-sectors { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; border-bottom: 2px solid var(--ob-line); }
.ob-sector { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 1.25rem; padding-block: clamp(2rem, 3.5vw, 2.75rem); border-top: 2px solid var(--ob-line); position: relative; }
@media (min-width: 900px) {
	.ob-sector { grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 4.5fr); column-gap: clamp(2rem, 4vw, 4rem); align-items: start; }
	.ob-sector > .ob-sector__name { grid-column: 1; grid-row: 1 / span 4; }
	.ob-sector > .ob-sector__challenge { grid-column: 2; }
	.ob-sector > .ob-sector__measure { grid-column: 3; grid-row: 1 / span 4; }
}
.ob-sector > * { margin: 0 !important; }
.ob-sector::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--ob-amber); transition: width 1.1s var(--ob-ease); }
.ob-sector:hover::before, .ob-sector.is-in::before { width: clamp(3rem, 12%, 8rem); }
.ob-sector:hover::before { width: 100%; }
.ob-sector__name { font-size: clamp(1.5rem, 2.4vw, 2rem); font-family: var(--ob-body) !important; font-weight: 400 !important; letter-spacing: -.015em; line-height: 1.2; }
.ob-sector__challenge > * { margin: 0; }
.ob-sector__challenge p:first-child strong { font-size: .95rem; }
.ob-sector__challenge p + p { margin-top: .35rem; color: var(--ob-ink-2); font-size: .9375rem; line-height: 1.6; }
.ob-sector__measure { padding: .25rem 0 0 1.1rem; border-left: 2px solid var(--ob-amber); align-self: start; }
.ob-sector__measure > * { margin: 0; }
.ob-sector__measure p:last-child { color: var(--ob-ink); font-size: .9375rem; line-height: 1.6; }
.ob-sector__measure a { text-decoration-color: var(--ob-amber); }
.ob-sector__label { font-family: var(--ob-display); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ob-amber-ink); margin-bottom: .4rem !important; }

/* KPI band */
.ob-statband { position: relative; z-index: 2; padding: 0 var(--ob-gutter); background: linear-gradient(180deg, var(--ob-night) 0 3.5rem, var(--ob-paper) 3.5rem); }
.ob-statband > * { max-width: var(--ob-wide); margin-inline: auto; margin-block: 0 !important; }
.ob-stats { gap: 0 !important; grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)) !important; }
.ob-statband .ob-stats { background: var(--ob-paper); border-top: 3px solid var(--ob-amber); box-shadow: 0 30px 60px -40px rgba(18,18,20,.5); }
.ob-stat { padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem); border-right: 2px solid var(--ob-line); }
.ob-stat:last-child { border-right: 0; }
.ob-stat > * { margin: 0; }
.ob-stat__value { font-family: var(--ob-body); font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1; letter-spacing: -.02em; color: var(--ob-ink); font-variant-numeric: tabular-nums; }
.ob-stat__label { margin-top: .75rem !important; font-size: .9rem; color: var(--ob-muted); line-height: 1.5; }
@media (max-width: 760px) { .ob-stat { border-right: 0; border-bottom: 2px solid var(--ob-line); } .ob-stat:last-child { border-bottom: 0; } }
.ob-section .ob-stats { border-top: 2px solid var(--ob-line-strong); }
.ob-section .ob-stat:first-child { padding-left: 0; }

/* Industry ticker */
.ob-tickerband { padding: clamp(2.75rem, 5vw, 4rem) 0; background: var(--ob-paper); border-bottom: 2px solid var(--ob-line); overflow: hidden; }
.ob-tickerband > * { margin: 0 !important; }
.ob-ticker { mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.ob-ticker__track { display: flex; width: max-content; animation: ob-marquee 70s linear infinite; }
.ob-ticker:hover .ob-ticker__track { animation-play-state: paused; }
.ob-ticker__set { display: flex; flex: none; }
.ob-ticker__set span { font-family: var(--ob-body); font-size: clamp(1.4rem, 2.6vw, 2.2rem); letter-spacing: -.01em; color: var(--ob-ink-2); padding: 0 clamp(1.5rem, 3vw, 2.75rem); display: inline-flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.75rem); white-space: nowrap; }
.ob-ticker__set span::after { content: ""; flex: none; width: .62em; height: .62em; background: var(--ob-amber); border-radius: 0 100% 0 0; margin-left: clamp(1.5rem, 3vw, 2.75rem); translate: 0 -.12em; } /* the quarter "cake piece" of the logo */
@keyframes ob-marquee { to { transform: translateX(-50%); } }

.ob-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.ob-chips span { padding: .45rem .9rem; border: 1px solid var(--ob-line-strong); border-radius: var(--ob-r); font-size: .875rem; color: var(--ob-ink-2); transition: border-color .3s, color .3s; }
.ob-chips span:hover { border-color: var(--ob-amber); color: var(--ob-ink); }

.ob-glance { padding: clamp(1.75rem, 3vw, 2.5rem); background: var(--ob-mist); border-top: 2px solid var(--ob-ink); container-type: inline-size; }
.ob-glance > * { margin: 0; }
.ob-glance__title { font-size: 1.1rem; margin-bottom: 1rem !important; }
.ob-glance__row { display: grid; grid-template-columns: minmax(7rem, 36%) 1fr; gap: .25rem 1.25rem; padding: .85rem 0; border-top: 2px solid var(--ob-line); font-size: .9375rem; }
.ob-glance__row strong { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-amber-ink); padding-top: .25rem; }
.ob-glance__row span { color: var(--ob-ink); }
@container (max-width: 360px) { .ob-glance__row { grid-template-columns: 1fr; } }
.ob-glance--inline { background: transparent; border-top: 0; padding: 0; }
.ob-glance--inline .ob-glance__row:last-child { border-bottom: 2px solid var(--ob-line); }

.ob-callout { padding: .5rem 0 .5rem 1.75rem; border-left: 2px solid var(--ob-amber); }
.ob-callout > * { margin: 0; } .ob-callout > * + * { margin-top: .5rem; }
.ob-callout p:not(.ob-callout__label) { font-size: 1.1rem; line-height: 1.6; color: var(--ob-ink); }
.ob-callout__label { font-family: var(--ob-display); font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ob-amber-ink); }
.ob-case { padding: clamp(2rem, 4vw, 3rem) 0 0; border-top: 2px solid var(--ob-ink); }
.ob-case > * { margin-block: 0; } .ob-case > * + * { margin-top: 1.1rem; }
.ob-case p { color: var(--ob-ink-2); }
.ob-case .ob-card__title { font-size: 1.3rem; }

/* ==========================================================================
   7. Tables
   ========================================================================== */
.ob-table { margin: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; border-top: 2px solid var(--ob-ink); }
.ob-table table { border-collapse: collapse; width: 100%; min-width: 640px; }
.ob-table th, .ob-table td { border: 0 !important; border-bottom: 2px solid var(--ob-line) !important; padding: 1.1rem 1.25rem 1.1rem 0; text-align: left; vertical-align: top; line-height: 1.55; font-size: .9375rem; }
.ob-table thead th { font-family: var(--ob-display); font-weight: 600; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-muted); }
.ob-table tbody td { color: var(--ob-ink-2); }
.ob-table tbody td:first-child { font-family: var(--ob-display); color: var(--ob-ink); }
.ob-table tbody tr { transition: background-color .3s; }
.ob-table tbody tr:hover { background: var(--ob-mist); }
.ob-table--stages tbody td:first-child { padding-left: 1.25rem; position: relative; }
.ob-table--stages tbody td:first-child::before { content: ""; position: absolute; left: 0; top: 1.55rem; width: .5rem; height: .5rem; border-radius: 50%; border: 1px solid var(--ob-amber); }
.ob-table--stages tbody tr:nth-child(2) td:first-child::before { background: rgba(254,166,16,.35); }
.ob-table--stages tbody tr:nth-child(3) td:first-child::before { background: var(--ob-amber); }
.ob-table--stages tbody tr:nth-child(4) td:first-child::before { background: #C93B32; border-color: #C93B32; }
.ob-table--compare tbody td:last-child, .ob-table--compare thead th:last-child { background: rgba(254,166,16,.08); padding-left: 1rem; }
.ob-table--compare thead th:last-child { color: var(--ob-amber-ink); }

/* ==========================================================================
   8. FAQ
   ========================================================================== */
.ob-faq { display: grid; gap: 0; border-top: 2px solid var(--ob-ink); }
.ob-faq > * { margin: 0 !important; }
.ob-faq__item { border-bottom: 2px solid var(--ob-line); padding: 0; }
.ob-faq__item summary { list-style: none; cursor: pointer; padding: 1.5rem 3.5rem 1.5rem 0; font-family: var(--ob-body); font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.45; position: relative; transition: color .3s; }
.ob-faq__item summary:hover { color: var(--ob-amber-ink); }
.ob-faq__item summary::-webkit-details-marker { display: none; }
.ob-faq__item summary::before, .ob-faq__item summary::after { content: ""; position: absolute; right: .5rem; top: 50%; width: 14px; height: 2px; background: currentColor; transition: rotate .45s var(--ob-ease); }
.ob-faq__item summary::after { rotate: 90deg; }
.ob-faq__item[open] summary::after { rotate: 0deg; }
.ob-faq__item > :not(summary) { margin: 0; padding: 0 3.5rem 1.75rem 0; color: var(--ob-ink-2); }
.ob-faq__item::details-content { block-size: 0; overflow: clip; transition: block-size .5s var(--ob-ease), content-visibility .5s allow-discrete; }
.ob-faq__item[open]::details-content { block-size: auto; }

/* ==========================================================================
   9. People
   ========================================================================== */
.ob-team { grid-template-columns: repeat(auto-fit, minmax(min(8.75rem, 100%), 1fr)) !important; gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.ob-team > * { margin: 0 !important; }
.ob-person { display: flex; flex-direction: column; gap: .15rem; }
.ob-person > * { margin: 0 !important; }
.ob-person__photo { aspect-ratio: 4 / 5; overflow: hidden; margin-bottom: 1rem !important; background: var(--ob-mist); border-radius: var(--ob-r); }
.ob-person__photo a, .ob-card__media a, .ob-profile__photo a { display: block; height: 100%; }
.ob-person__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.03); transition: filter .8s var(--ob-ease), transform 1.4s var(--ob-ease); }
.ob-person:hover .ob-person__photo img { filter: grayscale(0); transform: scale(1.03); }
.ob-person__name { font-size: 1rem; }
.ob-person__role { font-size: .875rem; color: var(--ob-muted); line-height: 1.45; }
.ob-person--partner .ob-person__name::after { content: ""; display: block; width: 1.25rem; height: 2px; background: var(--ob-amber); margin-top: .5rem; }

.ob-profiles > .ob-profile { max-width: var(--ob-wide); }
.ob-profile { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; padding-block: clamp(2.5rem, 5vw, 4rem); border-top: 2px solid var(--ob-ink); }
.ob-profile__photo { margin: 0; overflow: hidden; aspect-ratio: 4 / 5; position: sticky; top: calc(72px + 2rem); border-radius: var(--ob-r); }
.ob-profile__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.2); }
.ob-profile__body > * { margin-block: 0; } .ob-profile__body > * + * { margin-top: 1.25rem; }
.ob-profile__name { font-size: clamp(2rem, 3.4vw, 2.9rem) !important; }
.ob-profile__body > p:not([class]) { color: var(--ob-ink-2); max-width: 64ch; }
@media (max-width: 760px) { .ob-profile { grid-template-columns: 1fr; } .ob-profile__photo { position: static; max-width: 280px; } }

/* ==========================================================================
   10. Success stories
   ========================================================================== */
.ob-casegrid { gap: clamp(2.5rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem) !important; }
.ob-casegrid > * { margin: 0 !important; }
.ob-casecard { position: relative; display: flex; flex-direction: column; gap: .9rem; padding-top: 1.5rem; border-top: 2px solid var(--ob-ink); }
.ob-casecard::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--ob-amber); transition: width .9s var(--ob-ease); }
.ob-casecard:hover::before { width: 100%; }
.ob-casecard > * { margin: 0 !important; }
.ob-casecard__top { display: flex; justify-content: space-between; gap: 1rem; font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-muted); font-family: var(--ob-display); }
.ob-casecard__top span:first-child { color: var(--ob-amber-ink); }
.ob-casecard__kpi { display: flex; flex-direction: column; padding-block: .5rem; }
.ob-casecard__kpi strong { font-family: var(--ob-body); font-weight: 400; font-size: clamp(2.4rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.02em; color: var(--ob-ink); font-variant-numeric: tabular-nums; }
.ob-casecard__kpi span { font-size: .9rem; color: var(--ob-muted); margin-top: .5rem; }
.ob-casecard__title { font-size: 1.2rem; line-height: 1.35; }
.ob-casecard__title a { text-decoration: none; }
.ob-casecard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.ob-casecard__meta { font-size: .8125rem; color: var(--ob-muted); }
.ob-casecard__excerpt { font-size: .9375rem; color: var(--ob-ink-2); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.ob-casecard__more { margin-top: auto !important; padding-top: .5rem; font-family: var(--ob-display); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.ob-casecard__more a { text-decoration: none; border-bottom: 1px solid var(--ob-amber); padding-bottom: .15rem; }
.ob-casegrid--compact .ob-casecard__excerpt { -webkit-line-clamp: 3; }
@media (min-width: 1100px) {
	.ob-casegrid:not(.ob-casegrid--compact) { grid-template-columns: repeat(6, 1fr) !important; }
	.ob-casegrid:not(.ob-casegrid--compact) > .ob-casecard { grid-column: span 2; }
	.ob-casegrid:not(.ob-casegrid--compact) > .ob-casecard:is(:nth-child(-n+2), :nth-child(n+6)) { grid-column: span 3; } /* 7 cases: rows of 2, 3, 2 */
	.ob-casegrid:not(.ob-casegrid--compact) > .ob-casecard:is(:nth-child(-n+2), :nth-child(n+6)) .ob-casecard__kpi strong { font-size: 4.5rem; }
	}
.ob-case .wp-block-post-content > * { margin-block: 0; }
.ob-case .wp-block-post-content > * + * { margin-top: clamp(2rem, 4vw, 3rem); }
.ob-casestudy .ob-case { border-top: 0; padding-top: clamp(3rem, 6vw, 5rem); }
.ob-case__subtitle { font-size: 1.25rem; }
.ob-glance--case { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0 2rem; background: transparent; padding: 0; border-top: 2px solid var(--ob-ink); }
.ob-glance--case .ob-glance__row { grid-template-columns: 1fr; border-top: 0; padding: 1.1rem 0; }
.ob-case__block > * { margin-block: 0; } .ob-case__block > * + * { margin-top: 1rem; }
.ob-case__block { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 1rem 3rem; padding-top: 2rem; border-top: 2px solid var(--ob-line); }
.ob-case__block > .ob-eyebrow { grid-column: 1; margin: 0 !important; }
.ob-case__block > :not(.ob-eyebrow) { grid-column: 2; margin: 0 !important; }
.ob-case__block p { color: var(--ob-ink-2); }
.ob-case__block--outcome { border-top: 2px solid var(--ob-amber); }
.ob-case__block--outcome .ob-lead { color: var(--ob-ink); font-size: clamp(1.2rem, 1.8vw, 1.5rem); }
@media (max-width: 760px) { .ob-case__block { grid-template-columns: 1fr; } .ob-case__block > * { grid-column: 1 !important; } }

/* ==========================================================================
   11. Blog & article
   ========================================================================== */
.ob-postgrid { gap: clamp(2.25rem, 3.5vw, 3rem) clamp(1.5rem, 3vw, 2.5rem) !important; }
.ob-postgrid > * { margin: 0 !important; }
.ob-postcard { height: 100%; display: flex; flex-direction: column; position: relative; }
.ob-postcard__media { margin: 0 0 1.25rem !important; overflow: hidden; border-radius: var(--ob-r); aspect-ratio: 3 / 2; background: var(--ob-mist); }
.ob-postcard__media img { transition: transform 1.4s var(--ob-ease); height: 100%; object-fit: cover; }
.ob-postcard:hover .ob-postcard__media img { transform: scale(1.05); }
.ob-postcard__body { display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.ob-postcard__body > * { margin: 0 !important; }
.ob-postcard__date { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ob-amber-ink); font-family: var(--ob-display); }
.ob-postcard__title { font-size: 1.2rem; line-height: 1.35; }
.ob-postcard__title a { text-decoration: none; }
.ob-postcard__title a::after { content: ""; position: absolute; inset: 0; }
.ob-postcard__excerpt, .ob-postcard__excerpt p { font-size: .9375rem; color: var(--ob-ink-2); margin: 0; }
.ob-postcard__more, .ob-postcard__excerpt .wp-block-post-excerpt__more-link { margin-top: auto; font-family: var(--ob-display); font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.ob-postcard__more::after, .ob-postcard__excerpt .wp-block-post-excerpt__more-link::after { content: " →"; color: var(--ob-amber-ink); }
.ob-pagination { margin-top: 4rem; gap: .5rem; font-family: var(--ob-display); }
.ob-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.75rem; height: 2.75rem; border: 1px solid var(--ob-line); text-decoration: none; }
.ob-pagination .page-numbers.current { background: var(--ob-night); color: #fff; border-color: var(--ob-night); }
.ob-progress { position: fixed; left: 0; right: 0; top: 0; height: 2px; background: var(--ob-amber); transform-origin: 0 50%; transform: scaleX(0); z-index: 200; }
@supports (animation-timeline: scroll()) { .ob-progress { animation: ob-progress linear both; animation-timeline: scroll(root block); } }
@keyframes ob-progress { to { transform: scaleX(1); } }
.ob-article__meta { gap: .5rem 1.5rem; align-items: center; font-size: .8125rem; color: var(--ob-on-dark-2); }
.ob-article__meta > * { margin: 0 !important; }
.ob-article__meta .ob-eyebrow { margin: 0; }
.ob-article__cover { margin: 0 !important; overflow: hidden; border-radius: var(--ob-r); }
.ob-prose { padding-top: clamp(3.5rem, 7vw, 6rem); }
.ob-prose .wp-block-post-content { font-size: 1.15rem; line-height: 1.8; color: var(--ob-ink-2); }
.ob-prose .wp-block-post-content > * { max-width: 700px; }
.ob-prose h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem) !important; line-height: 1.2 !important; margin-top: 2.5em; color: var(--ob-ink); }
.ob-prose h3 { font-size: 1.2rem; margin-top: 2em; color: var(--ob-ink); }
.ob-prose h2 + *, .ob-prose h3 + * { margin-top: .8em; }
.ob-prose strong { color: var(--ob-ink); }
.ob-prose ul, .ob-prose ol { padding-left: 1.25rem; }
.ob-prose li { margin-block: .45rem; }
.ob-prose li::marker { color: var(--ob-amber-ink); }
.ob-prose a { text-decoration-color: var(--ob-amber); }
.ob-prose .ob-table { max-width: 960px !important; margin-block: 3rem; }
.ob-standfirst { font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.5; color: var(--ob-ink); }
.ob-pullquote, .ob-prose blockquote { margin: 3rem 0; padding: 0 0 0 1.75rem; border-left: 2px solid var(--ob-amber); font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.4; color: var(--ob-ink); }
.ob-pullquote p { margin: 0; }
.ob-authorbox { padding: 0 var(--ob-gutter) clamp(4rem, 7vw, 6rem); }
.ob-authorbox__inner { max-width: 700px; margin-inline: auto; padding-top: 2rem; gap: 1.5rem; border-top: 2px solid var(--ob-ink); }
.ob-authorbox__inner p { margin: 0; }
.ob-authorbox__photo { margin: 0; flex: none; }
.ob-authorbox__photo img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; filter: grayscale(1); }
.ob-authorbox .ob-eyebrow { margin-bottom: .3rem; }

.ob-legal { max-width: 860px; margin-inline: auto; padding-top: clamp(3.5rem, 7vw, 6rem); }
.ob-legal > * { max-width: 100%; }
.ob-legal > * + * { margin-top: 1rem; }
.ob-legal h2 { font-size: 1.5rem !important; margin-top: 3rem; padding-top: 2rem; border-top: 2px solid var(--ob-line); }
.ob-legal p, .ob-legal li { color: var(--ob-ink-2); }
.ob-legal-facts { margin-bottom: 1.5rem; }
.ob-legal-facts .ob-card { padding-top: 1.25rem; gap: .3rem; }
.ob-legal-facts .ob-eyebrow { margin-bottom: .4rem; }
.ob-legal__version { margin-top: 3rem !important; color: var(--ob-muted); }
.ob-search { max-width: 32rem; }
.ob-search .wp-block-search__input { border: 0; border-bottom: 1px solid rgba(255,255,255,.4); background: transparent; color: #fff; padding: .8rem 0; border-radius: 0; }
.ob-search .wp-block-search__button { border-radius: var(--ob-r); margin-left: 1rem; }

/* ==========================================================================
   12. Statement band (CTA) and footer
   ========================================================================== */
.ob-ctaband { position: relative; overflow: hidden; isolation: isolate; padding: clamp(6rem, 12vw, 10rem) var(--ob-gutter); background: var(--ob-night); color: var(--ob-on-dark); }
.ob-ctaband__inner { max-width: var(--ob-wide); margin-inline: auto; position: relative; z-index: 1; }
.ob-ctaband__inner > * { margin-block: 0; }
.ob-ctaband__title { font-size: clamp(2.6rem, 6vw, 5.5rem) !important; line-height: 1.02 !important; max-width: 16ch; margin-top: 1.25rem !important; color: #fff; }
.ob-ctaband .is-style-outline .wp-element-button { color: #fff; border-color: rgba(255,255,255,.4); }
.ob-ctaband__art { position: absolute; right: -8vw; top: 50%; width: min(64vw, 44rem); translate: 0 -50%; color: rgba(255,255,255,.05); z-index: 0; animation: ob-spin 140s linear infinite reverse; }

.ob-footer { background: var(--ob-night); color: var(--ob-on-dark-2); padding: clamp(4rem, 8vw, 6.5rem) var(--ob-gutter) 2.25rem; font-size: .9375rem; border-top: 2px solid var(--ob-hair-dark); }
.ob-footer a { color: inherit; text-decoration: none; transition: color .3s; }
.ob-footer a:hover { color: #fff; }
.ob-footer__grid { gap: 3rem !important; }
@media (min-width: 1000px) { .ob-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.25fr !important; } }
.ob-footer__brand .ob-brand img { height: 48px; }
.ob-footer__tagline { margin-top: 1.75rem; max-width: 26ch; font-family: var(--ob-body); color: #fff; font-size: 1.25rem; line-height: 1.45; letter-spacing: -.01em; }
.ob-footer__h { font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ob-amber); margin: 0 0 1.25rem; }
.ob-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.ob-footer__contact { line-height: 1.9; }
.ob-footer__legal { max-width: var(--ob-wide); margin: 4rem auto 0 !important; padding-top: 1.75rem; border-top: 2px solid var(--ob-hair-dark); font-size: .8125rem; }
.ob-footer__legal p { margin: 0; }
.ob-footer__inner > * + * { margin-top: 0; }

/* ==========================================================================
   13. Motion (no plugins). Everything is visible without JS; JS only adds the
       hidden start state (.ob-js) and reveals on scroll.
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {
	.ob-js .ob-split-words .ob-w { display: inline-block; overflow: clip; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
	.ob-js .ob-split-words .ob-w > i { display: inline-block; font-style: normal; transform: translateY(110%); transition: transform 1.1s var(--ob-ease-out); transition-delay: calc(var(--w, 0) * 45ms); }
	.ob-js .ob-split-words.is-in .ob-w > i { transform: none; }
	.ob-js .ob-io { opacity: 0; transform: translateY(32px); transition: opacity 1s var(--ob-ease-out), transform 1.1s var(--ob-ease-out); transition-delay: calc(var(--ob-i, 0) * 90ms); }
	.ob-js .ob-io.is-in { opacity: 1; transform: none; }
	.ob-js .ob-unveil { clip-path: inset(0 0 100% 0); transition: clip-path 1.4s var(--ob-ease-out); }
	.ob-js .ob-unveil.is-in { clip-path: inset(0 0 0 0); }
	.ob-js .ob-unveil img { transform: scale(1.15); transition: transform 2s var(--ob-ease-out), filter .8s; }
	.ob-js .ob-unveil.is-in img { transform: scale(1.04); }
	.ob-js .ob-card:hover .ob-unveil.is-in img { transform: scale(1.08); }
	.ob-js .ob-rule { transform: scaleX(0); transform-origin: left; transition: transform 1.4s var(--ob-ease-out); }
	.ob-js .ob-rule.is-in { transform: none; }
	@supports (animation-timeline: scroll()) {
		.ob-hero__inner { animation: ob-hero-out linear both; animation-timeline: scroll(root block); animation-range: 0 90vh; }
		.ob-figure img, .ob-profile__photo img { animation: ob-drift linear both; animation-timeline: view(); }
		.ob-ticker { animation: ob-fade linear both; animation-timeline: view(); animation-range: entry 0% entry 60%; }
	}
}
@keyframes ob-hero-out { to { transform: translateY(-5vh); opacity: .3; } }
@keyframes ob-drift { from { transform: translateY(-3%) scale(1.07); } to { transform: translateY(3%) scale(1.07); } }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	@view-transition { navigation: none; }
}
.ob-magnetic { transform: translate(var(--mx, 0), var(--my, 0)); transition: transform .5s var(--ob-ease-out) !important; }

/* ==========================================================================
   14. Inflection · RXI (dark product world, amber accent)
   ========================================================================== */
.ob-tone-rxi, .ob-hero--rxi { background: #17171A; color: var(--ob-on-dark); }
.ob-tone-rxi > * { position: relative; z-index: 1; }
.ob-tone-rxi::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(40rem 26rem at 90% 0%, rgba(254,166,16,.10), transparent 65%); }
.ob-tone-rxi .ob-section__intro, .ob-tone-rxi p, .ob-tone-rxi .ob-card p { color: var(--ob-on-dark-2); }
.ob-tone-rxi .ob-card { border-top-color: var(--ob-hair-dark); }
.ob-tone-rxi .ob-card__title, .ob-tone-rxi h2, .ob-tone-rxi h3 { color: #fff; }
.ob-tone-rxi .ob-card__kicker { color: var(--ob-amber) !important; }
.ob-tone-rxi .ob-checklist li { border-color: var(--ob-hair-dark); color: var(--ob-on-dark-2); }
.ob-tone-rxi .ob-checklist li strong { color: #fff; }
.ob-tone-rxi .ob-chips span { border-color: var(--ob-hair-dark); color: var(--ob-on-dark); }
.ob-tone-rxi .ob-chips span:hover { border-color: var(--ob-amber); }
.ob-figure { margin: 0; overflow: hidden; border-radius: var(--ob-r); }
.ob-figure img { width: 100%; display: block; }
.ob-rxi-aside > * { margin-block: 0; } .ob-rxi-aside > * + * { margin-top: 1.5rem; }
.ob-disclaimer { max-width: var(--ob-wide); margin: 0 auto !important; padding: 1.75rem var(--ob-gutter); font-size: .8125rem; color: var(--ob-muted); }
.ob-rxi-console { margin: 0; overflow: hidden; background: #0E0E10; border: 1px solid var(--ob-hair-dark); border-radius: var(--ob-r); font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .8rem; color: #D9D9DC; box-shadow: 0 40px 80px -40px rgba(0,0,0,.9); }
.ob-rxi-console__bar { display: flex; gap: .4rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid var(--ob-hair-dark); color: var(--ob-on-dark-2); }
.ob-rxi-console__bar i { width: .55rem; height: .55rem; border-radius: 50%; background: #3a3a3e; display: inline-block; }
.ob-rxi-console__bar i:nth-child(2) { background: var(--ob-amber); }
.ob-rxi-console__bar span { margin-left: .5rem; }
.ob-rxi-console__body { padding: 1.5rem; display: grid; gap: 1.1rem; }
.ob-rxi-console__row { display: grid; grid-template-columns: 8.5rem 1fr auto; gap: .9rem; align-items: center; }
.ob-rxi-console__bar-track { height: 2px; background: rgba(255,255,255,.1); overflow: hidden; }
.ob-rxi-console__bar-track b { display: block; height: 100%; width: var(--v, 50%); background: var(--ob-amber); transform-origin: left; animation: ob-grow-x 1.8s var(--ob-ease-out) both .8s; }
@keyframes ob-grow-x { from { transform: scaleX(0); } }
.ob-rxi-console__score { color: var(--ob-amber); }
.ob-rxi-console__line { color: var(--ob-on-dark-2); border-top: 1px solid var(--ob-hair-dark); padding-top: 1rem; }
.ob-rxi-console__line b { color: #fff; font-weight: 400; }
.ob-rxi-console__caret { display: inline-block; width: .5em; height: 1em; background: var(--ob-amber); vertical-align: -.15em; animation: ob-blink 1s steps(1) infinite; }
@keyframes ob-blink { 50% { opacity: 0; } }
@media (max-width: 520px) { .ob-rxi-console__row { grid-template-columns: 1fr auto; } .ob-rxi-console__bar-track { grid-column: 1 / -1; order: 3; } }
.ob-rxi-teaser__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
@media (max-width: 980px) { .ob-rxi-teaser__inner { grid-template-columns: 1fr; } }
.ob-rxi-teaser__inner > * { margin: 0 !important; }
.ob-rxi-teaser__copy > * { margin-block: 0; } .ob-rxi-teaser__copy > * + * { margin-top: 1.25rem; }
/* Two-engine diagram: Stage 1 → Stage 2 on one line, the result below with room to breathe */
.ob-engines { display: grid; grid-template-columns: minmax(0, 1fr) 3.5rem minmax(0, 1fr); grid-template-rows: auto 4.5rem auto; align-items: stretch; }
.ob-engine { min-width: 0; padding: 1.6rem 1.5rem; border: 2px solid var(--ob-hair-dark); display: flex; flex-direction: column; gap: .4rem; color: #fff; }
.ob-engine small { font-family: var(--ob-display); font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ob-amber); }
.ob-engine strong { font-family: var(--ob-body); font-weight: 400; font-size: 1.6rem; letter-spacing: -.01em; }
.ob-engine span { font-size: .9rem; color: var(--ob-on-dark-2); }
.ob-engine--rxi { border-color: var(--ob-amber); background: rgba(254,166,16,.06); }
.ob-engines > .ob-engine:nth-of-type(1) { grid-area: 1 / 1; }
.ob-engines > .ob-engine:nth-of-type(2) { grid-area: 1 / 3; }
.ob-engine--out { grid-area: 3 / 1 / 4 / 4 !important; border-style: dashed; display: grid; grid-template-columns: auto 1fr; column-gap: 1.5rem; row-gap: .4rem; align-items: center; }
.ob-engine--out small { grid-column: 1 / -1; }
.ob-engine--out strong { grid-column: 1; }
.ob-engine--out span { grid-column: 2; }
.ob-engine__meter { grid-column: 1 / -1; display: block; height: 4px; background: rgba(255,255,255,.1); margin-top: .9rem; position: relative; }
.ob-engine__meter em { position: absolute; inset: 0 auto 0 0; width: 72%; background: linear-gradient(90deg, #6F6F75, var(--ob-amber)); transform-origin: left; }
.ob-engine__meter::after { content: "0 · 100"; position: absolute; right: 0; top: .7rem; font-size: .65rem; letter-spacing: .14em; color: var(--ob-on-dark-2); font-style: normal; }
/* Arrow 1: horizontal, between the two stages */
.ob-engines > i { position: relative; display: block; }
.ob-engines > i:nth-of-type(1) { grid-area: 1 / 2; align-self: center; height: 2px; background: var(--ob-amber); margin-inline: .5rem; }
.ob-engines > i:nth-of-type(1)::after { content: ""; position: absolute; right: -1px; top: -4px; width: 9px; height: 9px; border-top: 2px solid var(--ob-amber); border-right: 2px solid var(--ob-amber); rotate: 45deg; }
/* Arrow 2: both stages merge into the result below */
.ob-engines > i:nth-of-type(2) { grid-area: 2 / 1 / 3 / 4; }
.ob-engines > i:nth-of-type(2)::before { content: ""; position: absolute; left: 25%; right: 25%; top: 0; height: 50%; border: 2px solid var(--ob-amber); border-top: 0; opacity: .55; }
.ob-engines > i:nth-of-type(2)::after { content: ""; position: absolute; left: 50%; top: 50%; bottom: 6px; width: 2px; translate: -1px 0; background: var(--ob-amber);
	-webkit-mask: linear-gradient(#000, #000); }
.ob-engines > i:nth-of-type(2) { --ob-arrow: 1; }
.ob-engines::after { content: ""; grid-area: 2 / 1 / 3 / 4; justify-self: center; align-self: end; width: 9px; height: 9px; border-right: 2px solid var(--ob-amber); border-bottom: 2px solid var(--ob-amber); rotate: 45deg; translate: 0 -2px; }
@media (prefers-reduced-motion: no-preference) {
	.ob-js .ob-engines.ob-io > * { opacity: 0; transform: translateY(14px); transition: opacity .8s var(--ob-ease-out), transform .8s var(--ob-ease-out); }
	.ob-js .ob-engines.ob-io.is-in > * { opacity: 1; transform: none; }
	.ob-js .ob-engines.ob-io.is-in > :nth-child(2) { transition-delay: .25s; } .ob-js .ob-engines.ob-io.is-in > :nth-child(3) { transition-delay: .45s; }
	.ob-js .ob-engines.ob-io.is-in > :nth-child(4) { transition-delay: .7s; } .ob-js .ob-engines.ob-io.is-in > :nth-child(5) { transition-delay: .95s; }
	.ob-js .ob-engines.ob-io .ob-engine__meter em { transform: scaleX(0); transition: transform 1.6s var(--ob-ease-out) 1.3s; }
	.ob-js .ob-engines.ob-io.is-in .ob-engine__meter em { transform: none; }
}
@media (max-width: 640px) {
	.ob-engines { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 2.5rem auto 4rem auto; }
	.ob-engines > .ob-engine:nth-of-type(1) { grid-area: 1 / 1; } .ob-engines > .ob-engine:nth-of-type(2) { grid-area: 3 / 1; }
	.ob-engine--out { grid-area: 5 / 1 / 6 / 2 !important; grid-template-columns: 1fr; } .ob-engine--out span { grid-column: 1; }
	.ob-engines > i:nth-of-type(1) { grid-area: 2 / 1; justify-self: start; margin-left: 2rem; width: 2px; height: 100%; margin-inline: 2rem 0; }
	.ob-engines > i:nth-of-type(1)::after { right: auto; left: -4px; top: auto; bottom: 0; rotate: 135deg; }
	.ob-engines > i:nth-of-type(2) { grid-area: 4 / 1; } .ob-engines > i:nth-of-type(2)::before { display: none; }
	.ob-engines > i:nth-of-type(2)::after { left: 2rem; top: 0; }
	.ob-engines::after { grid-area: 4 / 1; justify-self: start; margin-left: calc(2rem - 4px); }
}

/* ==========================================================================
   15. Editor & print
   ========================================================================== */
.editor-styles-wrapper .ob-io, .editor-styles-wrapper .ob-unveil { opacity: 1 !important; transform: none !important; clip-path: none !important; }
.editor-styles-wrapper .ob-hero { padding-top: 4rem; }
@media print { .ob-header, .ob-footer, .ob-ctaband, .ob-hero__art, .ob-progress, .ob-tickerband { display: none !important; } .ob-hero { background: #fff !important; color: #000 !important; } }

/* Latest articles (home, team): six compact cards with small thumbnails */
.ob-latest .ob-postgrid { gap: 0 clamp(1.5rem, 3vw, 2.5rem) !important; }
.ob-latest .ob-postcard { flex-direction: row; align-items: flex-start; gap: 1.25rem; padding-block: 1.5rem; border-top: 2px solid var(--ob-line); }
.ob-latest .ob-postcard::before { content: ""; position: absolute; left: 0; top: -2px; height: 2px; width: 0; background: var(--ob-amber); transition: width .9s var(--ob-ease); }
.ob-latest .ob-postcard:hover::before { width: 100%; }
.ob-latest .ob-postcard__media { flex: 0 0 6.5rem; width: 6.5rem; aspect-ratio: 1 !important; margin: 0 !important; }
.ob-latest .ob-postcard__media img { aspect-ratio: 1 !important; width: 100%; }
.ob-latest .ob-postcard__body { gap: .45rem; }
.ob-latest .ob-postcard__title { font-size: 1rem; line-height: 1.4; }
.ob-latest .ob-postcard__more { font-size: .68rem; }
.ob-ctaband .wp-block-buttons { margin-top: clamp(3rem, 5vw, 4.5rem) !important; }
.ob-formcard { container-type: inline-size; }
.ob-formcard__trust { font-size: clamp(.66rem, calc(100cqi / 33), .75rem); letter-spacing: 0; }
@container (min-width: 350px) { .ob-formcard__trust { white-space: nowrap; } }
@media (min-width: 700px) and (max-width: 1099px) {
	.ob-casegrid:not(.ob-casegrid--compact) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.ob-casegrid:not(.ob-casegrid--compact) > .ob-casecard:first-child { grid-column: 1 / -1; }
}
/* ==========================================================================
   Hero film: silent kinetic typography, 16 s loop, no video file needed
   ========================================================================== */
.ob-film { margin: 0; position: relative; overflow: hidden; aspect-ratio: 16 / 10; background: #121214; border-radius: var(--ob-r, 2px); box-shadow: 0 40px 80px -40px rgba(0,0,0,.9); border: 1px solid rgba(255,255,255,.08); }
.ob-film svg { display: block; width: 100%; height: 100%; font-family: "Montserrat", system-ui, sans-serif; }
.ob-film__bg line { stroke: rgba(255,255,255,.035); stroke-width: 2; }
.ob-film__orbit circle { fill: none; stroke: rgba(255,255,255,.06); stroke-width: 2; }
.ob-film__orbit-arc { fill: none; stroke: rgba(254,166,16,.45); stroke-width: 3; }
.ob-film__orbit { transform-origin: 1290px 470px; animation: ob-film-orbit 48s linear infinite; }
.ob-film__kicker { fill: #FEA610; font-size: 26px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.ob-film__h { fill: #fff; font-size: 96px; font-weight: 300; letter-spacing: -.02em; }
.ob-film__h--amber { fill: #FEA610; }
.ob-film__small, .ob-film__plabel { fill: #A9A9AE; font-size: 20px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.ob-film__plabel { font-size: 17px; }
.ob-film__value { fill: #FEA610; font-size: 54px; font-weight: 400; }
.ob-film__big { fill: #fff; font-size: 84px; font-weight: 300; letter-spacing: -.02em; }
.ob-film__step { fill: #E9E9EC; font-size: 34px; font-weight: 400; }
.ob-film__tick { fill: #FEA610; }
.ob-film__word { fill: #fff; font-size: 92px; font-weight: 700; letter-spacing: -.01em; }
.ob-film__tag { fill: #A9A9AE; font-size: 19px; font-weight: 600; letter-spacing: .22em; }
.ob-film__axis { stroke: rgba(255,255,255,.18); stroke-width: 2; }
.ob-film__line { fill: none; stroke: #FEA610; stroke-width: 5; stroke-linecap: round; }
.ob-film__dot { fill: #FEA610; }
.ob-film__track { fill: none; stroke: rgba(255,255,255,.1); stroke-width: 14; }
.ob-film__clock { fill: none; stroke: #FEA610; stroke-width: 14; stroke-linecap: round; }
.ob-film__bar { fill: rgba(255,255,255,.22); }
.ob-film__bar--hi { fill: #FEA610; }
.ob-film__ptrack { fill: rgba(255,255,255,.14); }
.ob-film__pfill { fill: #FEA610; transform-box: fill-box; transform-origin: left center; }

@media (prefers-reduced-motion: no-preference) {
	.ob-film__scene { opacity: 0; animation: ob-film-scene 16s linear var(--d, 0s) infinite both; }
	.ob-film__rise { transform-box: fill-box; animation: ob-film-rise 16s var(--ob-ease-out, ease-out) calc(var(--d, 0s) + var(--s, 0s)) infinite both; }
	.ob-film__pop { transform-box: fill-box; transform-origin: center; animation: ob-film-pop 16s var(--ob-ease-out, ease-out) calc(var(--d, 0s) + 2.2s) infinite both; }
	.ob-film__draw { stroke-dasharray: 1; animation: ob-film-draw 16s cubic-bezier(.4,0,.2,1) calc(var(--d, 0s) + .5s) infinite both; }
	.ob-film__bar { transform-box: fill-box; transform-origin: bottom; animation: ob-film-bar 16s var(--ob-ease-out, ease-out) calc(var(--d, 0s) + .6s + var(--s, 0s)) infinite both; }
	.ob-film__ring { stroke-dasharray: 1; animation: ob-film-draw 16s cubic-bezier(.4,0,.2,1) calc(var(--d, 0s) + .3s) infinite both; }
	.ob-film__piece { transform-box: fill-box; animation: ob-film-piece 16s var(--ob-ease-out, ease-out) calc(var(--d, 0s) + 1.2s) infinite both; }
	.ob-film__pfill { animation: 16s linear infinite both; }
	.ob-film__pfill--1 { animation-name: ob-film-p1; } .ob-film__pfill--2 { animation-name: ob-film-p2; }
	.ob-film__pfill--3 { animation-name: ob-film-p3; } .ob-film__pfill--4 { animation-name: ob-film-p4; }
	.ob-film:hover .ob-film__scene, .ob-film:hover .ob-film__scene *, .ob-film:hover .ob-film__pfill { animation-play-state: paused; }
}
@media (prefers-reduced-motion: reduce) {
	.ob-film__scene { display: none; } .ob-film__scene--end { display: inline; }
}
@keyframes ob-film-orbit { to { transform: rotate(360deg); } }
@keyframes ob-film-scene { 0% { opacity: 0; } 2% { opacity: 1; } 23.5% { opacity: 1; } 25%, 100% { opacity: 0; } }
@keyframes ob-film-rise { 0% { opacity: 0; transform: translateY(34px); } 4.5%, 100% { opacity: 1; transform: none; } }
@keyframes ob-film-pop { 0% { opacity: 0; transform: scale(.8); } 3%, 100% { opacity: 1; transform: none; } }
@keyframes ob-film-draw { 0% { stroke-dashoffset: 1; } 12%, 100% { stroke-dashoffset: 0; } }
@keyframes ob-film-bar { 0% { transform: scaleY(0); } 3.5%, 100% { transform: scaleY(1); } }
@keyframes ob-film-piece { 0% { opacity: 0; transform: translate(70px, -70px); } 5%, 100% { opacity: 1; transform: none; } }
@keyframes ob-film-p1 { 0% { transform: scaleX(0); } 25%, 99.9% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes ob-film-p2 { 0%, 25% { transform: scaleX(0); } 50%, 99.9% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes ob-film-p3 { 0%, 50% { transform: scaleX(0); } 75%, 99.9% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
@keyframes ob-film-p4 { 0%, 75% { transform: scaleX(0); } 99.9% { transform: scaleX(1); } 100% { transform: scaleX(0); } }
/* Home hero: copy and film share the stage equally */
@media (min-width: 981px) {
	.ob-hero--home .ob-hero__inner:has(> .ob-hero__aside) { grid-template-columns: minmax(0, 5.4fr) minmax(0, 6.6fr); gap: clamp(2.5rem, 4.5vw, 4.5rem); align-items: center; }
	.ob-hero--home .ob-hero__title { font-size: clamp(3rem, 5.2vw, 5.1rem) !important; }
}
.ob-stat__value { white-space: nowrap; font-size: clamp(1.8rem, 2.9vw, 2.7rem) !important; }

/* Burger overlay (tablet and phone): left-aligned, large primary items, calmer sub items */
.ob-nav .ob-nav__cta { display: none !important; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .ob-nav__cta { display: flex !important; margin-top: 1.5rem; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .ob-nav__cta > .wp-block-navigation-item__content { background: var(--ob-amber); color: var(--ob-night) !important; padding: .9rem 1.4rem !important; font-size: .85rem !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-size: clamp(1.4rem, 4.5vw, 1.9rem) !important; font-weight: 300; letter-spacing: -.01em; padding-block: .35rem; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1rem !important; padding: .35rem 0 !important; color: var(--ob-on-dark-2); }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: .25rem 0 .75rem 1.25rem !important; border-left: 2px solid var(--ob-hair-dark) !important; margin: .25rem 0 .5rem; }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: none; color: var(--ob-amber); }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .is-current > .wp-block-navigation-item__content { box-shadow: none; color: var(--ob-amber); }
.ob-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
