/* ==========================================================================
   Beck & Caul — Content blocks layouts (all layouts in one file)
   Each layout is scoped to .bc-<layout-name>.
   ========================================================================== */

/* ---------- shared orb ---------- */
.bc-orb {
	position: absolute; inset: 0; border-radius: 50%;
	background: radial-gradient(closest-side,
		var(--ink) 26.6%, var(--orb-1) 38.7%, var(--orb-2) 50.8%, var(--orb-3) 62.9%,
		var(--orb-4) 75%, var(--orb-5) 94.7%, var(--orb-6) 99.4%, rgba(224, 56, 69, 0) 100%);
	animation: bc-breathe 9s ease-in-out infinite;
	will-change: transform;
}
.bc-orb__glow {
	position: absolute; inset: -2%; border-radius: 50%;
	background: conic-gradient(from 0deg, transparent 0 20%, rgba(251, 93, 91, .35) 30%, transparent 45% 70%, rgba(156, 34, 95, .4) 82%, transparent 92%);
	mask: radial-gradient(closest-side, transparent 80%, #000 96%, transparent 100%);
	-webkit-mask: radial-gradient(closest-side, transparent 80%, #000 96%, transparent 100%);
	animation: bc-spin 18s linear infinite;
	mix-blend-mode: screen;
}
@keyframes bc-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
@keyframes bc-spin { to { transform: rotate(360deg); } }

/* ==========================================================================
   hero_orb
   ========================================================================== */
.bc-hero {
	min-height: 100vh; min-height: 100svh; padding: 0; overflow: hidden; isolation: isolate;
	display: flex; flex-direction: column; justify-content: flex-end;
}
.bc-hero.is-tall { min-height: 80vh; }
.bc-hero__orb {
	position: absolute; left: 50%; top: 50%; z-index: -1;
	width: max(86.7vw, 900px); aspect-ratio: 1;
	translate: calc(-50% + var(--mx, 0px)) calc(-50% + var(--my, 0px));
	scale: var(--s, 1); opacity: var(--o, 1);
	transition: translate 1.2s var(--ease-out);
}
.js .bc-hero__orb { animation: bc-orb-in 2.2s var(--ease-out) both; }
@keyframes bc-orb-in { from { scale: .35; opacity: 0; filter: blur(30px); } to { scale: var(--s, 1); opacity: 1; filter: none; } }
.bc-hero__inner { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding-block: clamp(190px, 34.7vh, 312px) 47px; gap: 60px; }
.bc-hero__title {
	max-width: 1240px; text-align: center; color: #fff;
	font-size: clamp(40px, 4.51vw, 65px); line-height: 1.24; letter-spacing: -0.035em;
}
.bc-hero__bar {
	position: relative; width: 100%; min-height: 95px; padding: 18px 30px; border-radius: 50px;
	display: flex; align-items: center; justify-content: center; gap: clamp(20px, 5vw, 72px);
	isolation: isolate;
}
.bc-hero__bar::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
	background: rgba(237, 230, 225, .3); mix-blend-mode: plus-lighter;
	backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.js .bc-hero__bar { opacity: 0; transform: translateY(40px) scale(.96); transition: opacity 1s .9s var(--ease-out), transform 1.2s .9s var(--ease-out); }
.js .bc-hero.is-in .bc-hero__bar { opacity: 1; transform: none; }
.bc-hero__label { font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 72; font-size: 26px; line-height: 1.28; letter-spacing: -0.02em; color: #fff; max-width: 150px; }
.bc-hero__buttons { flex: 1; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bc-hero__buttons .bc-btn { flex: 0 1 186px; }
.js .bc-hero__buttons .bc-btn { opacity: 0; transform: translateY(16px); transition: opacity .7s, transform .7s var(--ease-out), color .35s; }
.js .bc-hero.is-in .bc-hero__buttons .bc-btn { opacity: 1; transform: none; }
.js .bc-hero.is-in .bc-hero__buttons .bc-btn:nth-child(1) { transition-delay: 1.2s, 1.2s, 0s; }
.js .bc-hero.is-in .bc-hero__buttons .bc-btn:nth-child(2) { transition-delay: 1.3s, 1.3s, 0s; }
.js .bc-hero.is-in .bc-hero__buttons .bc-btn:nth-child(3) { transition-delay: 1.4s, 1.4s, 0s; }
.js .bc-hero.is-in .bc-hero__buttons .bc-btn:nth-child(n+4) { transition-delay: 1.5s, 1.5s, 0s; }
.bc-hero .bc-btn--coral::before {background: var(--ink);}
.bc-hero .bc-btn--coral:hover {color: white;/* background: var(--ink); */}

/* ==========================================================================
   title_banner
   ========================================================================== */
.bc-banner { overflow: hidden; isolation: isolate; padding-block: clamp(170px, 18vw, 240px) clamp(70px, 8vw, 120px); }
.bc-banner__orb { position: absolute; z-index: -1; width: 70vw; aspect-ratio: 1; right: -24vw; top: -30vw; translate: var(--mx, 0) var(--my, 0); transition: translate 1.2s var(--ease-out); }
.bc-banner__inner { display: grid; gap: 24px; max-width: var(--wrap); margin-left: max(var(--gutter), (100% - var(--wrap)) / 2); }
.bc-banner__inner > :not(.bc-banner__buttons) { max-width: 900px; }
.bc-banner__title {color: #fff;font-size: clamp(40px, 3.51vw, 48px);line-height: 1.15;letter-spacing: -0.035em;}
.bc-banner.is-whitebg .bc-banner__title, .bc-banner.is-lightbg .bc-banner__title { color: var(--ink); }
.bc-banner .bc-lede { max-width: 620px; }

/* ==========================================================================
   intro_image
   ========================================================================== */
.bc-intro-image {min-height: 700px;display: flex;align-items: center;}
	.bc-intro-image#aboutintro{min-height: 0px; padding-top:60px;}
.bc-intro__grid { display: grid; grid-template-columns: 609fr 608fr; gap: 23px; align-items: center; }
.bc-intro-image.imageleft .bc-intro__media { order: -1; }
.bc-intro__copy { display: grid; gap: 0; }
.bc-intro__copy .bc-eyebrow { margin-bottom: 42px; }
.bc-intro__copy .bc-h2 { color: var(--ink); margin-bottom: 42px; }
.bc-intro__copy .bc-prose { font-size: 17px; line-height: 1.36; }
.bc-intro__copy .bc-buttons { margin-top: 43px; }
.bc-intro-image.is-darkbg .bc-h2 { color: var(--cream); }
.bc-intro__media { margin: 0; aspect-ratio: 608 / 427; border-radius: var(--radius); overflow: hidden; position: relative; translate: 0 var(--py, 0); }
.bc-intro__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 1.8s var(--ease-out); }
.js .bc-wipe { clip-path: inset(0 0 0 100% round var(--radius)); transition: clip-path 1.4s var(--ease-out); }
.bc-intro-image.imageleft .bc-wipe { clip-path: inset(0 100% 0 0 round var(--radius)); }
.js .bc-wipe.is-in { clip-path: inset(0 0 0 0 round var(--radius)); }
.bc-wipe.is-in img { transform: scale(1); }
.bc-intro__media:hover img { transform: scale(1.03); }

/* ==========================================================================
   service_cards
   ========================================================================== */
.bc-service-cards { padding-block: 114px 114px; }
.bc-services__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 125px; margin-bottom: 42px; }
.bc-services__head .bc-h2 { color: var(--black); }
.bc-service-cards.is-darkbg .bc-services__head .bc-h2 { color: var(--cream); }
.bc-services__grid { display: grid; grid-template-columns: repeat(var(--cols, 4), 1fr); border-block: .5px solid var(--line); }
.bc-service {
	position: relative; min-height: 376px; padding: 20px; display: flex; flex-direction: column; justify-content: center; gap: 44px;
	border-right: .5px solid var(--line); overflow: hidden; isolation: isolate;
}
.bc-service:last-child { border-right: 0; }
.bc-service::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: #fff;
	transform: scaleY(0); transform-origin: bottom; transition: transform .6s var(--ease-out);
}
.bc-service::after { content: ""; position: absolute; left: 0; top: 0; height: 2px; width: 100%; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease-out); }
.bc-service:hover::before { transform: none; }
.bc-service:hover::after { transform: none; }
.bc-service__icon { width: 24px; height: 24px; display: block; transition: transform .7s var(--ease-out); }
.bc-service__icon svg, .bc-service__icon img { width: 24px; height: 24px; }
.bc-service:hover .bc-service__icon {/* transform: rotate(-18deg) scale(1.6); */}
.bc-service__body { display: grid; gap: 12px; }
.bc-service__body .bc-h3 { color: var(--black); }
.bc-service-cards.is-darkbg .bc-service__body .bc-h3, .bc-service-cards.is-darkbg .bc-link { color: var(--cream); }
.bc-service-cards.is-darkbg .bc-service::before { background: rgba(255,255,255,.06); }
.bc-service .bc-link { margin-top: -8px; }

/* ==========================================================================
   layer_stack
   ========================================================================== */
.bc-layer-stack { padding-block: 100px; }
.bc-stack__grid { display: grid; grid-template-columns: 503px 503px; justify-content: space-between; align-items: center; gap: 60px; }
.bc-stack__copy { display: grid; gap: 27px; }
.bc-stack__copy .bc-eyebrow { margin-bottom: -11px; }
.bc-stack__copy .bc-h2 { color: var(--ink); }
.bc-layer-stack.is-darkbg .bc-stack__copy .bc-h2 { color: var(--cream); }
.bc-stack__layers { display: grid; gap: 30px; }
.bc-stack__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 27px; }
.bc-layer {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px;
	border: .75px solid var(--black); border-radius: 20px; background: #fff; white-space: nowrap;
	transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out), background .3s;
}
.bc-layer__title { font-size: 17px; line-height: 1.36; color: var(--ink); }
.bc-layer__note { font-size: 15px; line-height: 1.55; color: var(--note); text-align: right; }
.bc-layer.is-foundation { background: var(--ink); border-color: var(--ink); }
.bc-layer.is-foundation .bc-layer__title { color: #fff; }
.bc-layer:hover { transform: translateX(-10px); box-shadow: 10px 10px 0 -1px var(--coral); }
.bc-layer.is-foundation:hover { box-shadow: 10px 10px 0 -1px var(--coral); }
/* build from the foundation up */
.js [data-stack] .bc-layer { opacity: 0; transform: translateY(-40px) scale(.97); transition: opacity .6s var(--ease-out), transform .8s var(--ease-out), box-shadow .5s; transition-delay: calc(var(--b) * 160ms + 150ms); }
.js [data-stack].is-in .bc-layer { opacity: 1; transform: none; }
.js [data-stack].is-in .bc-layer:hover { transform: translateX(-10px); transition-delay: 0s; }
.js [data-stack] .bc-layer.is-foundation { transform: translateY(20px); }
.bc-stack__caption { color: var(--muted); }

/* ==========================================================================
   case_studies
   ========================================================================== */
.bc-case-studies { padding-block: 100px; min-height: 900px; display: flex; flex-direction: column; justify-content: center; }
.bc-case-studies > .bc-container { width: min(1238px, 100% - 2 * var(--gutter)); }
.bc-cases__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
.bc-cases__head .bc-h2 { color: var(--ink); }
.bc-case-studies.is-darkbg .bc-cases__head .bc-h2 { color: var(--cream); }
.bc-cases__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 25px; perspective: 1200px; padding-top: 17px; }
.bc-case {
	display: flex; flex-direction: column; text-decoration: none; color: var(--black);
	border-radius: var(--radius); transform-style: preserve-3d;
	transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
	transition: transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
}
.bc-case:hover { box-shadow: 0 30px 60px -30px rgba(35, 9, 11, .35); }
.bc-case__top {
	position: relative; height: 212px; padding: 20px; overflow: hidden; isolation: isolate;
	border-radius: var(--radius) var(--radius) 0 0; background: var(--ink);
}
.bc-case__top:before { content:""; display:block; width:120%; height:120%; background: linear-gradient(to bottom,  rgba(0,0,0,0.41) 0%,rgba(0,0,0,0.41) 1%,rgba(0,0,0,0) 50%);
; position:absolute; top:0; left:0; }
.bc-case__top .bc-eyebrow { color: #fff; position: relative; }
.bc-case__top img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; transition: transform 1s var(--ease-out); }
.bc-case:hover .bc-case__top img { transform: scale(1.06); }
.bc-case__orb {
	position: absolute; z-index: -1; width: 380px; aspect-ratio: 1; border-radius: 50%;
	left: calc(95% - 190px); top: calc(105% - 190px);
	background: radial-gradient(closest-side, var(--orb-7) 0%, var(--orb-4) 63.6%, var(--orb-8) 82.2%, var(--orb-6) 99.4%, rgba(224,56,69,0) 100%);
	transition: transform 1s var(--ease-out);
}
.bc-case:hover .bc-case__orb { transform: translate(-70px, -36px) scale(1.25); }
.bc-case__body { flex: 1; display: flex; flex-direction: column; justify-content: space-between; gap: 72px; padding: 20px; background: var(--paper); border-radius: 0 0 var(--radius) var(--radius); }
.bc-case-studies.is-whitebg .bc-case__body { background: #fff; }
.bc-case__text { display: grid; gap: 32px; }
.bc-case__text .bc-eyebrow {/* color: var(--black); */}
.bc-case__text .bc-h3 { margin-bottom: -21px; }
.bc-case__result {
	position: relative; padding: 10px; border-top: 1px solid var(--line);
	font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 72; font-size: 26px; line-height: 1.28; letter-spacing: -0.02em; color: var(--coral);
}
.bc-case__result::before { content: ""; position: absolute; left: 0; top: -1px; height: 1px; width: 100%; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--ease-out); }
.bc-case:hover .bc-case__result::before { transform: none; }

/* ==========================================================================
   diagnostic
   ========================================================================== */
.bc-diagnostic { padding-block: 100px; }
.bc-diag__grid { display: grid; grid-template-columns: 442px 632px; justify-content: space-between; align-items: center; gap: 60px; }
.bc-diag__copy { display: grid; gap: 24px; }
.bc-diag__copy .bc-eyebrow { margin-bottom: 3px; }
.bc-diag__copy .bc-h2, .bc-diag__copy p:not(.bc-eyebrow) { color: var(--cream); }
.bc-diag__copy .bc-buttons { margin-top: 30px; }
.bc-diag__card { position: relative; border: 1px solid var(--cream); border-radius: var(--radius); padding: 20px 20px 26px; overflow: hidden; min-height: 400px; }
.bc-diag__progress { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: rgba(237, 230, 225, .12); }
.bc-diag__progress span { display: block; height: 100%; width: calc(var(--p) * 100%); background: var(--coral); transition: width .8s var(--ease-out); }
.bc-diag__q { border: 0; margin: 0; padding: 0; min-width: 0; }
.bc-diag__q legend { display: grid; gap: 36px; padding: 0; margin-bottom: 27px; width: 100%; }
.bc-diag__question { font-size: 21px; line-height: 1.55; color: var(--cream); }
.bc-diag__answers { display: grid; gap: 27px; padding-inline: 6px; }
.bc-diag__answer {
	position: relative; overflow: hidden; isolation: isolate; text-align: left; cursor: pointer;
	padding: 20px; border-radius: 20px; border: 1px solid var(--cream); background: var(--ink); color: var(--cream);
	font-size: 17px; line-height: 1.36; letter-spacing: -0.01em;
	transition: border-color .3s, color .3s, transform .4s var(--ease-out);
}
.bc-diag__answer::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--coral); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease-out); }
.bc-diag__answer:hover { border-color: var(--coral); transform: translateX(6px); }
.bc-diag__answer.is-picked { color: #fff; border-color: var(--coral); }
.bc-diag__answer.is-picked::before { transform: none; }
.bc-diag__q.is-entering { animation: bc-q-in .7s var(--ease-out) both; }
.bc-diag__q.is-entering .bc-diag__answer { animation: bc-q-in .7s var(--ease-out) both; }
.bc-diag__q.is-entering .bc-diag__answer:nth-child(2) { animation-delay: .06s; }
.bc-diag__q.is-entering .bc-diag__answer:nth-child(3) { animation-delay: .12s; }
.bc-diag__q.is-entering .bc-diag__answer:nth-child(4) { animation-delay: .18s; }
.bc-diag__q.is-leaving { animation: bc-q-out .45s var(--ease) both; }
@keyframes bc-q-in { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes bc-q-out { to { opacity: 0; transform: translateX(-40px); } }
.bc-diag__done { display: grid; gap: 28px; align-content: center; min-height: 360px; animation: bc-q-in .7s var(--ease-out) both; }
.bc-diag__amp svg { width: 64px; height: 64px; animation: bc-pop 1s var(--ease-out) both; }
@keyframes bc-pop { from { transform: scale(0) rotate(-90deg); } to { transform: none; } }

/* ---------- diagnostic: full assessment (layouts/diagnostic/assessment.php) ---------- */
.bca { --good: #5fbf8a; --mid: #e8b04a; --bad: #f0645f; --rule: rgba(237, 230, 225, .16); padding: 30px 30px 32px; color: var(--cream); }
.bca button.bc-link { background: none; border: 0; cursor: pointer; font-family: inherit; }
.bca__screen { display: grid; gap: 24px; align-content: start; }
.bca__screen > * { min-width: 0; }
.bca__screen.is-entering { animation: bc-q-in .6s var(--ease-out) both; }
.bca__screen.is-entering.is-back { animation-name: bca-in-back; }
.bca__q.is-leaving { animation: bc-q-out .38s var(--ease) both; }
@keyframes bca-in-back { from { opacity: 0; transform: translateX(-40px); } to { opacity: 1; transform: none; } }
.bca__title { outline: none; }
.bca__intro .bca__title, .bca__head .bca__title { font-size: clamp(26px, 2.3vw, 34px); line-height: 1.12; letter-spacing: -0.03em; }
.bca__text { display: grid; gap: 14px; color: var(--cream); }
.bca__actions, .bca__submit { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 6px; }
.bca__q { display: block; border: 0; margin: 0; padding: 0; min-width: 0; }
.bca__q > * + * { margin-top: 24px; }
.bca__q legend { display: grid; gap: 22px; padding: 0; width: 100%; float: left; }
.bca__q legend + * { clear: both; padding-top: 24px; margin-top: 0; }
.bca__hint { font-size: 15px; color: var(--note); }
.bca__answers { gap: 12px; }
.bca__answer { display: flex; align-items: center; gap: 14px; padding: 15px 20px; border-radius: 16px; }
.bca__answer.is-picked { color: #fff; }
.bca__tick { flex: none; position: relative; width: 20px; height: 20px; border: 1px solid currentColor; border-radius: 6px; transition: background .3s, border-color .3s; }
.bca__answer.is-picked .bca__tick { background: #fff; border-color: #fff; }
.bca__answer.is-picked .bca__tick::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid var(--coral); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.bca__nav { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; }
.bca__nav .bc-btn { min-width: 150px; }
.bca__nav .bc-btn[disabled] { opacity: .4; cursor: not-allowed; }
.bca__form { gap: 26px; }
.bca__form .bc-form__grid { gap: 18px 20px; }
.bca__req { font-style: normal; color: var(--coral); }
.bca__opt { font-style: normal; color: var(--note); }
.bca__consent { color: var(--note); }
.bca__consent a { color: var(--cream); }
.bca__form.is-sent .bc-form__note { color: #fff; font-weight: 500; }
.bca__form.is-sent .bc-field, .bca__form.is-sent .bc-form__grid { opacity: .5; pointer-events: none; }

/* results: the card goes full width */
.bc-diagnostic.has-assessment .bc-diag__grid { transition: grid-template-columns .6s var(--ease-out); }
.bc-diagnostic.is-expanded .bc-diag__grid { grid-template-columns: minmax(0, 1fr); }
.bc-diagnostic.is-expanded .bc-diag__copy { display: none; }
.bc-diagnostic.is-expanded .bca { padding: clamp(28px, 4vw, 56px); }
.bca__result { gap: 36px; max-width: 1040px; margin-inline: auto; width: 100%; }
.bca__score { display: grid; justify-items: center; text-align: center; position: relative; padding-top: 6px; }
.bca__dial { width: min(300px, 80%); }
.bca__dial svg { width: 100%; overflow: visible; }
.bca__dial path { fill: none; stroke-width: 9; stroke-linecap: round; }
.bca__dial-track { stroke: var(--rule); }
.bca__dial-fill { stroke: var(--coral); stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 1.4s var(--ease-out); }
.bca__pct { margin-top: -96px; font-family: var(--f-accent); font-size: clamp(64px, 6vw, 88px); line-height: 1; color: #fff; outline: none; }
.bca__pct small { font-size: .45em; color: var(--coral); margin-left: 2px; }
.bca__score-label { margin-top: 14px; color: var(--note); }
.bca__band { margin-top: 16px; padding: 8px 20px; border-radius: 50px; background: var(--coral); color: #fff; font-size: 16px; font-weight: 500; }
.bca__result[data-band="1"] .bca__band { background: var(--bad); }
.bca__lead { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.55; max-width: 820px; margin-inline: auto; text-align: center; }
.bca__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.bca__col { display: grid; gap: 18px; align-content: start; }
.bca__col > div { display: grid; gap: 18px; }
.bca__glance, .bca__opps { list-style: none; margin: 0; padding: 0; }
.bca__glance li { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--rule); font-size: 16px; }
.bca__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--note); }
.is-red .bca__dot { background: var(--bad); }
.is-amber .bca__dot { background: var(--mid); }
.is-green .bca__dot { background: var(--good); }
.bca__value { color: var(--note); font-size: 15px; font-variant-numeric: tabular-nums; }
.bca__strength { padding: 18px 20px; border-radius: 16px; background: rgba(95, 191, 138, .1); border: 1px solid rgba(95, 191, 138, .35); line-height: 1.55; margin-bottom: 18px; }
.bca__strength strong { font-weight: 600; color: #fff; }
.bca__opps { display: grid; gap: 0; }
.bca__opps li { display: grid; gap: 10px; padding: 20px 0; border-top: 1px solid var(--rule); }
.bca__opps li:last-child { border-bottom: 1px solid var(--rule); }
.bca__opp-head { display: flex; align-items: center; gap: 14px; font-size: 19px; color: #fff; }
.bca__rank { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--coral); color: var(--coral); font-size: 15px; }
.bca__opp-text { line-height: 1.6; padding-left: 46px; }
.bca__explainer { margin-top: 18px; padding: 18px 20px; border-radius: 16px; background: rgba(255, 255, 255, .06); line-height: 1.6; font-size: 15px; }
.bca__explainer-title { font-weight: 600; color: #fff; margin-bottom: 6px; }
.bca__cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 28px 30px; border: 1px solid var(--cream); border-radius: 20px; }
.bca__cta > div { display: grid; gap: 10px; max-width: 640px; }
.bca__cta .bc-h3 { color: #fff; }
.bca__sent { color: var(--note); text-align: center; }
.bca__result .bca__nav { justify-content: center; min-height: 0; }
/* variants: gated / open (data-mode is set by assessment.js for an A/B split) */
.bca[data-mode="open"] .bca__cta--gated, .bca[data-mode="open"] .bca__sent--gated, .bca[data-mode="gated"] .bca__cta--open { display: none; }
.bca__cta--open { flex-wrap: wrap; }
.bca__cta--open .bca__cta-copy { flex: 1 1 380px; display: grid; gap: 10px; }
.bca__cta-action { display: grid; justify-items: center; gap: 12px; text-align: center; }
.bca__call { color: var(--note); }
.bca__call strong { color: var(--cream); font-weight: 500; }
.bca__book { flex: 1 1 100%; gap: 22px; padding-top: 22px; border-top: 1px solid var(--rule); }
.bca__book.is-entering { animation: bc-q-in .6s var(--ease-out) both; }
.bca__book-title { font-size: 19px; color: #fff; }
.bca__booked { flex: 1 1 100%; padding: 18px 20px; border-radius: 16px; background: rgba(95, 191, 138, .1); border: 1px solid rgba(95, 191, 138, .35); line-height: 1.55; outline: none; }
.bca.is-loading .bca__q:not([hidden]) { opacity: .45; pointer-events: none; transition: opacity .3s; }
.bca.is-loading .bc-diag__progress span { animation: bca-pulse 1s ease-in-out infinite alternate; }
@keyframes bca-pulse { to { opacity: .35; } }

/* ==========================================================================
   achievements (result cards with small animated charts)
   ========================================================================== */
.bc-achievements { padding-block: clamp(40px, 4.2vw, 60px); }
.bc-ach { margin: 0; }
.bc-ach__grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: clamp(16px, 2.1vw, 30px); align-items: stretch; }
.bc-ach__grid.has-panel { padding: clamp(16px, 2.9vw, 42px); border-radius: 30px; background: #3c2b2c; }
.bc-ach__figcap { margin-top: 14px; font-size: 15px; line-height: 1.6; color: #6f605d; }
.bc-achievements.is-darkbg .bc-ach__figcap { color: var(--note); }

.bc-ach__card {
	--bg: #1b0506; --fg: #faf7f6; --sub: #c9bab6; --mute: #5b3d3f; --quiet: #3e2628; --off: #4a3133;
	display: flex; flex-direction: column; min-width: 0; min-height: 560px;
	padding: clamp(26px, 2.7vw, 38px) clamp(22px, 2.7vw, 38px) clamp(24px, 2.4vw, 34px);
	border-radius: 26px; background: var(--bg); color: var(--fg);
}
.bc-ach__card.is-light { --bg: #faf7f6; --fg: #1b0506; --sub: #6f605d; --mute: #d9d0cb; --quiet: #ebe4e0; --off: #d9d0cb; }
.bc-ach__tag { align-self: flex-start; padding: 6px 16px; border-radius: 50px; background: var(--coral); color: var(--ink); font-size: 13px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.bc-ach__stat { margin-top: 20px; font-size: clamp(64px, 7.4vw, 108px); font-weight: 500; line-height: .92; letter-spacing: -0.055em; font-variant-numeric: tabular-nums; }
.bc-ach__label { margin-top: 14px; font-size: 19px; line-height: 1.35; letter-spacing: -0.02em; }
.bc-ach__note { align-self: flex-start; margin-top: 14px; padding: 5px 16px; border: 1px solid currentColor; border-radius: 50px; font-size: 14px; line-height: 1.4; }
.bc-ach__chart { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; margin-top: clamp(28px, 3vw, 44px); }
.bc-ach__chart > div { display: grid; gap: 22px; }
.bc-ach__caption { margin-top: 26px; font-size: 13px; line-height: 1.55; color: var(--sub); }
.bc-ach__caption strong { font-weight: 600; color: var(--sub); }

/* bars + stacked: columns */
.bc-ach__plot { --plot: clamp(220px, 24vw, 320px); position: relative; display: flex; align-items: stretch; gap: clamp(6px, .9vw, 14px); }
.bc-ach__plot.has-marker { padding-top: 26px; }
.bc-ach__plot:not(.bc-ach__plot--groups) { justify-content: space-around; }
.bc-ach__col { flex: 1 1 0; min-width: 0; max-width: 150px; display: grid; gap: 12px; }
.bc-ach__area { position: relative; height: var(--plot); display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 8px; }
.bc-ach__val { min-height: 18px; font-size: 13px; font-weight: 600; line-height: 1.3; text-align: center; white-space: nowrap; }
.bc-ach__bar, .bc-ach__stack { display: block; height: max(6px, calc((100% - 26px) * var(--h) / 100)); border-radius: 9px; background: var(--mute); }
.bc-ach__col.is-hi .bc-ach__bar, .bc-ach__area--b .bc-ach__bar { background: var(--coral); }
.bc-ach__x { font-size: 12px; line-height: 1.2; text-align: center; color: var(--sub); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bc-ach__marker { position: relative; flex: 0 0 0; margin-inline: calc(clamp(6px, .9vw, 14px) / -2); align-self: flex-start; height: calc(var(--plot) + 26px); margin-top: -26px; border-left: 1.5px dashed var(--fg); opacity: .8; }
.bc-ach__marker em { position: absolute; left: 6px; top: 0; font-style: normal; font-size: 13px; font-weight: 600; white-space: nowrap; }
.bc-ach__marker.is-flip em { left: auto; right: 6px; text-align: right; }

/* grouped bars */
.bc-ach__plot--groups { justify-content: space-around; gap: clamp(16px, 3vw, 48px); }
.bc-ach__group { flex: 0 1 220px; min-width: 0; display: grid; gap: 12px; }
.bc-ach__pair { display: flex; gap: 6px; justify-content: center; }
.bc-ach__pair .bc-ach__area { flex: 1 1 0; max-width: 104px; }
.bc-ach__group:not(.is-hi) .bc-ach__area--b .bc-ach__bar { background: var(--quiet); }
.bc-ach__card.is-light .bc-ach__group:not(.is-hi) .bc-ach__area--b .bc-ach__bar { background: #8b6b6b; }
.bc-ach__plot--groups .bc-ach__x { font-size: 14px; }

/* stacked */
.bc-ach__plot--stacked { justify-content: space-around; gap: clamp(20px, 5vw, 80px); }
.bc-ach__plot--stacked .bc-ach__col { flex: 0 1 140px; }
.bc-ach__stack { display: flex; flex-direction: column-reverse; gap: 4px; background: none; border-radius: 0; }
.bc-ach__seg { flex: var(--h) 1 0; min-height: 4px; border-radius: 8px; background: var(--coral); }
.bc-ach__seg.is-s2 { background: #a3175e; }
.bc-ach__seg.is-s3 { background: #f6a8a3; }
.bc-ach__plot--stacked .bc-ach__x { font-size: 14px; }

/* legend */
.bc-ach__legend { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 13px; color: var(--sub); }
.bc-ach__legend span { display: inline-flex; align-items: center; gap: 8px; }
.bc-ach__legend span:empty { display: none; }
.bc-ach__legend span::before { content: ""; width: 11px; height: 11px; border-radius: 3px; background: var(--mute); }
.bc-ach__legend .is-b::before, .bc-ach__legend .is-s1::before { background: var(--coral); }
.bc-ach__legend .is-s2::before { background: #a3175e; }
.bc-ach__legend .is-s3::before { background: #f6a8a3; }

/* dot grid */
.bc-ach__dots { --dc: 10; display: grid; grid-template-columns: repeat(var(--dc), minmax(0, 1fr)); gap: clamp(6px, .9vw, 12px); max-width: min(100%, calc(var(--dc) * 48px)); }
.bc-ach__dots span { aspect-ratio: 1; border-radius: 50%; background: var(--off); }
.bc-ach__dots .is-on { background: var(--coral); }

/* share list */
.bc-ach__share { display: grid; gap: 6px; }
.bc-ach__row { display: flex; flex-direction: column; justify-content: space-between; min-height: max(40px, calc(var(--p) * 2.8px)); padding: 12px 14px; border-radius: 8px; background: var(--mute); }
.bc-ach__card.is-light .bc-ach__row:not(.is-hi):nth-child(n+2) { background: var(--quiet); }
.bc-ach__row.is-hi { background: var(--coral); color: var(--ink); }
.bc-ach__row-label { font-size: 15px; font-weight: 500; }
.bc-ach__row-pct { align-self: flex-end; font-size: clamp(28px, 2.6vw, 38px); line-height: 1; letter-spacing: -0.03em; }
.bc-ach__row.is-small { flex-direction: row; align-items: center; min-height: 0; padding-block: 5px; }
.bc-ach__row.is-small .bc-ach__row-label, .bc-ach__row.is-small .bc-ach__row-pct { font-size: 12px; font-weight: 400; }
.bc-ach__row.is-small .bc-ach__row-pct { align-self: center; margin-left: auto; }

/* image card */
.bc-ach__card--image { position: relative; overflow: hidden; padding: 0; background: #efe6e1; align-items: center; justify-content: center; }
.bc-ach__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bc-ach__placeholder { padding: 30px; text-align: center; color: #6f605d; font-size: 17px; }

/* animation: charts build when the card scrolls in */
.js .bc-ach__card.reveal .bc-ach__bar, .js .bc-ach__card.reveal .bc-ach__seg { transform: scaleY(0); transform-origin: bottom; transition: transform 1s var(--ease-out); transition-delay: calc(.3s + var(--i, 0) * 70ms + var(--s, 1) * 140ms - 140ms); }
.js .bc-ach__card.reveal .bc-ach__area .bc-ach__val, .js .bc-ach__card.reveal .bc-ach__legend { opacity: 0; transition: opacity .6s var(--ease); transition-delay: calc(.9s + var(--i, 0) * 70ms); }
.js .bc-ach__card.reveal .bc-ach__marker { transform: scaleY(0); transform-origin: top; transition: transform .9s var(--ease-out) .2s; }
.js .bc-ach__card.reveal .bc-ach__marker em { opacity: 0; transition: opacity .6s var(--ease) .8s; }
.js .bc-ach__card.reveal .bc-ach__dots span { transform: scale(0); transition: transform .5s var(--ease-out); transition-delay: calc(.3s + var(--i) * 9ms); }
.js .bc-ach__card.reveal .bc-ach__row { clip-path: inset(0 100% 0 0 round 8px); transition: clip-path .9s var(--ease-out); transition-delay: calc(.3s + var(--i) * 120ms); }
.js .bc-ach__card.reveal .bc-ach__img { transform: scale(1.08); transition: transform 1.6s var(--ease-out); }
.js .bc-ach__card.reveal.is-in .bc-ach__bar, .js .bc-ach__card.reveal.is-in .bc-ach__seg, .js .bc-ach__card.reveal.is-in .bc-ach__marker,
.js .bc-ach__card.reveal.is-in .bc-ach__dots span, .js .bc-ach__card.reveal.is-in .bc-ach__img { transform: none; }
.js .bc-ach__card.reveal.is-in .bc-ach__val, .js .bc-ach__card.reveal.is-in .bc-ach__legend, .js .bc-ach__card.reveal.is-in .bc-ach__marker em { opacity: 1; }
.js .bc-ach__card.reveal.is-in .bc-ach__row { clip-path: inset(0 0 0 0 round 8px); }
@media (hover: hover) {
	.bc-ach__col:hover .bc-ach__bar, .bc-ach__pair .bc-ach__area:hover .bc-ach__bar { filter: brightness(1.12); }
}
@media (prefers-reduced-motion: reduce) {
	.js .bc-ach__card.reveal .bc-ach__bar, .js .bc-ach__card.reveal .bc-ach__seg, .js .bc-ach__card.reveal .bc-ach__marker,
	.js .bc-ach__card.reveal .bc-ach__dots span, .js .bc-ach__card.reveal .bc-ach__img { transform: none; transition: none; }
	.js .bc-ach__card.reveal .bc-ach__val, .js .bc-ach__card.reveal .bc-ach__legend, .js .bc-ach__card.reveal .bc-ach__marker em { opacity: 1; transition: none; }
	.js .bc-ach__card.reveal .bc-ach__row { clip-path: none; transition: none; }
}
@media (max-width: 900px) {
	.bc-ach__grid { grid-template-columns: minmax(0, 1fr); }
	.bc-ach__card { min-height: 0; }
	.bc-ach__card--image { min-height: 320px; }
}
@media (max-width: 640px) {
	.bc-ach__grid.has-panel { border-radius: 22px; }
	.bc-ach__card { border-radius: 20px; }
	.bc-ach__plot { gap: 4px; }
	.bc-ach__plot--groups, .bc-ach__plot--stacked { gap: 16px; }
	.bc-ach__x { font-size: 11px; }
	.bc-ach__val { font-size: 11px; }
	.bc-ach__plot.has-marker { padding-top: 40px; }
	.bc-ach__marker { height: calc(var(--plot) + 40px); margin-top: -40px; }
	.bc-ach__marker em { white-space: normal; width: max-content; max-width: 118px; font-size: 12px; line-height: 1.25; }
}

/* ==========================================================================
   testimonials
   ========================================================================== */
.bc-testimonials { padding-block: 100px; }
.bc-quotes__head { max-width: 813px; margin: 0 auto 73px; display: grid; gap: 20px; text-align: center; }
.bc-quotes__head .bc-h2 { color: var(--ink); }
.bc-quotes__grid { display: grid; grid-template-columns: 585fr 608fr; gap: 48px; align-items: stretch; }
.bc-quotes__grid.is-single { grid-template-columns: minmax(0, 800px); justify-content: center; }
.bc-quotes__side { display: grid; gap: 24px; }
.bc-quote {
	position: relative; margin: 0; padding: 24px; border-radius: var(--radius);
	display: flex; flex-direction: column; justify-content: center; gap: 46px;
	background: rgba(255, 255, 255, .2); box-shadow: 0 0 15px rgba(0, 0, 0, .05);
	color: var(--ink); min-height: 226px;
	transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out);
}
.bc-quote:hover { transform: translateY(-6px); box-shadow: 0 20px 40px -18px rgba(35, 9, 11, .25); }
.bc-quote blockquote { margin: 0; max-width: 377px; }
.bc-quote figcaption { display: grid; gap: 6px; }
.bc-quote figcaption small { font-size: 15px; line-height: 1.55; }
.bc-quote--large { min-height: 476px; color: var(--coral); background: rgba(255, 255, 255, .1); }
.bc-quote--large blockquote { max-width: 481px; font-size: 21px; line-height: 1.55; letter-spacing: 0; }
.bc-quote__mark {
	position: absolute; top: 4px; left: 20px; font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 144;
	font-size: 160px; line-height: 1; color: var(--coral); opacity: .14; pointer-events: none;
	transform: translateY(20px); transition: transform 1.4s var(--ease-out), opacity 1.4s;
}
.bc-quote--large.is-in .bc-quote__mark { transform: none; }
.bc-testimonials.is-darkbg .bc-quotes__head .bc-h2, .bc-testimonials.is-darkbg .bc-quote { color: var(--cream); }
.bc-testimonials.is-darkbg .bc-quote--large { color: var(--coral); }

/* ==========================================================================
   contact_block
   ========================================================================== */
.bc-contact-block { overflow: hidden; isolation: isolate; padding-block: 100px; }
.bc-contact__orb {
	position: absolute; z-index: -1; width: 1150px; aspect-ratio: 1; left: calc(95.3% - 575px); top: calc(105.6% - 575px);
	scale: var(--s, .6); opacity: var(--o, .4); transition: scale .2s linear, opacity .2s linear;
}
.bc-contact__orb .bc-orb { background: radial-gradient(closest-side, var(--orb-7) 0%, var(--orb-4) 41.8%, var(--orb-8) 82.2%, var(--orb-6) 99.4%, rgba(224,56,69,0) 100%); }
.bc-contact__grid { display: grid; grid-template-columns: 442px 607px; justify-content: space-between; align-items: start; gap: 60px; }
.bc-contact__copy { padding-top: 12px; }
.bc-contact__copy { display: grid; gap: 24px; align-content: start; max-width: 396px; }
.bc-contact__copy .bc-eyebrow { margin-bottom: 3px; }
.bc-contact__copy .bc-h2 { color: var(--cream); }
.bc-contact-block.is-whitebg .bc-contact__copy .bc-h2, .bc-contact-block.is-lightbg .bc-contact__copy .bc-h2 { color: var(--ink); }
.bc-contact__copy .bc-prose p { margin: 0; }
.bc-contact__copy .bc-prose a { text-underline-position: from-font; }

/* form */
.bc-form { display: grid; gap: 41px; }
.bc-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 25px; }
.bc-field { display: grid; gap: 8px; }
.bc-field--wide { grid-column: 1 / -1; }
.bc-field > span { font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; color: var(--cream); }
.bc-field input, .bc-field select, .bc-field textarea {
	width: 100%; padding: 10px; border-radius: 10px; border: .75px solid var(--cream);
	background: rgba(255, 255, 255, .1); color: var(--cream);
	font: inherit; font-size: 17px; line-height: 1.36; letter-spacing: -0.01em;
	transition: border-color .3s, background .3s, box-shadow .3s;
}
.bc-field ::placeholder { color: var(--cream); opacity: 1; }
.bc-field input:focus, .bc-field select:focus, .bc-field textarea:focus {outline: none;border-color: var(--coral);background-color: rgba(255, 255, 255, .16);box-shadow: 0 0 0 4px rgba(251, 93, 91, .25);}
.bc-field textarea { min-height: 138px; resize: vertical; }
.bc-field--select select { appearance: none; -webkit-appearance: none; padding-right: 40px; color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 15.4 6 9.4 7.4 8l4.6 4.6L16.6 8 18 9.4z' fill='%23ffffff'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 8px center; }
.bc-field select option { color: var(--ink); }
.bc-field .is-invalid, .bc-field input.is-invalid, .bc-field textarea.is-invalid { border-color: var(--coral); box-shadow: 0 0 0 4px rgba(251, 93, 91, .35); }
.bc-form__foot { display: flex; align-items: center; gap: 24px; }
.bc-form__note { color: var(--cream); max-width: 397px; }
.bc-form__note.is-ok { color: #fff; font-weight: 500; }
.bc-form__note.is-error { color: var(--coral); font-weight: 500; }
.bc-form__status { font-weight: 500; }
.bc-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bc-form button[disabled] { opacity: .65; cursor: wait; }
.bc-contact-block.is-whitebg .bc-field > span, .bc-contact-block.is-lightbg .bc-field > span,
.bc-contact-block.is-whitebg .bc-field input, .bc-contact-block.is-lightbg .bc-field input,
.bc-contact-block.is-whitebg .bc-field textarea, .bc-contact-block.is-lightbg .bc-field textarea,
.bc-contact-block.is-whitebg .bc-form__note, .bc-contact-block.is-lightbg .bc-form__note, .bc-contact-block.is-lightbg select { color: var(--ink); border-color: var(--ink); }
.bc-contact-block.is-whitebg .bc-form__note::placeholder, .bc-contact-block.is-lightbg input::placeholder, .bc-contact-block.is-lightbg textarea::placeholder{ color:var(--ink)}

/* Contact Form 7 — styled like the built-in form */
.bc-contact__form .wpcf7-form { display: grid; gap: 24px; }
.bc-contact__form .wpcf7-form label { display: grid; gap: 8px; font-size: 15px; color: var(--cream); }
.bc-contact__form .wpcf7-form input:not([type="submit"]), .bc-contact__form .wpcf7-form select, .bc-contact__form .wpcf7-form textarea {
	width: 100%; padding: 10px; border-radius: 10px; border: .75px solid var(--cream); background: rgba(255, 255, 255, .1); color: var(--cream); font: inherit; font-size: 17px; }
.bc-contact__form .wpcf7-submit { height: 58px; min-width: 186px; border: 0; border-radius: 50px; background: var(--coral); color: #fff; font: 500 16px/1 var(--f-sans); cursor: pointer; }

/* ==========================================================================
   text_only
   ========================================================================== */
.bc-text-only { background: var(--bg, var(--paper)); color: var(--fg, var(--ink)); }
.bc-prose--wide { max-width: 820px; }

/* ==========================================================================
   title_banner — buttons (child pages / filters / custom)
   ========================================================================== */
.bc-banner:not(.has-orb) { padding-block: clamp(150px, 15vw, 200px) clamp(60px, 7vw, 100px); }
.bc-banner.has-orb .bc-orb { animation: bc-pulse 4.5s ease-in-out infinite; }
@keyframes bc-pulse { 0%, 100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.06); filter: brightness(1.12); } }
.bc-banner__buttons { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 20px; }
.bc-banner__buttons .bc-btn { transition: color .3s, border-color .3s, transform .35s var(--ease); }
.bc-case.is-filtered-out { display: none; }
.bc-case.is-filtering-in { animation: bc-card-in .6s var(--ease-out) both; }
@keyframes bc-card-in { from { opacity: 0; transform: translateY(24px) scale(.97); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   service_rows
   ========================================================================== */
.bc-service-rows { padding-block: 20px; }
.bc-service-rows .bc-container { display: grid; }
.bc-row {
	position: relative; display: grid; grid-template-columns: 48px 299px 1fr; column-gap: 0; align-items: start;
	padding-block: 31px; border-bottom: 1px solid rgba(237, 230, 225, .6); scroll-margin-top: 120px;
}
.bc-row:first-child { border-top: 1px solid rgba(237, 230, 225, .6); }
.bc-row__num { font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 72; font-size: 26px; line-height: 1.28; letter-spacing: -0.02em; color: var(--coral); transition: transform .6s var(--ease-out); transform-origin: left center; }
.bc-row__head { grid-column: 2; margin-left: 205px; width: 299px; display: grid; gap: 6px; color: var(--cream); }
.bc-row__body { grid-column: 3; margin-left: 81px; padding-left: 23px; display: grid; gap: 42px; justify-items: start; position: relative; max-width: 605px; color: var(--cream); }
.bc-row__body::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: rgba(237, 230, 225, .6); transform-origin: top; }
.bc-row__item { display: grid; gap: 17px; }
.bc-row { grid-template-columns: 48px auto 1fr; }
.bc-service-rows.is-whitebg .bc-row, .bc-service-rows.is-lightbg .bc-row { border-color: var(--line); }
.bc-service-rows.is-whitebg .bc-row__head, .bc-service-rows.is-lightbg .bc-row__head,
.bc-service-rows.is-whitebg .bc-row__body, .bc-service-rows.is-lightbg .bc-row__body { color: var(--ink); }
.bc-service-rows.is-whitebg .bc-row__body::before, .bc-service-rows.is-lightbg .bc-row__body::before { background: var(--line); }
/* animation: divider grows, numeral swings in, copy rises */
.js .bc-row .bc-row__body::before { transform: scaleY(0); transition: transform 1.1s .25s var(--ease-out); }
.js .bc-row .bc-row__num { opacity: 0; transform: translateX(-20px) rotate(-12deg); transition: opacity .8s, transform 1s var(--ease-out); }
.js .bc-row .bc-row__head, .js .bc-row .bc-row__item, .js .bc-row .bc-btn { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease-out), transform .9s var(--ease-out), color .35s; }
.js .bc-row .bc-row__item:nth-child(2) { transition-delay: .15s; }
.js .bc-row .bc-btn { transition-delay: .3s, .3s, 0s; }
.js .bc-row.is-in .bc-row__body::before { transform: none; }
.js .bc-row.is-in .bc-row__num, .js .bc-row.is-in .bc-row__head, .js .bc-row.is-in .bc-row__item, .js .bc-row.is-in .bc-btn { opacity: 1; transform: none; }
.js .bc-row.is-in:hover .bc-row__num { transform: scale(1.6); }

/* ==========================================================================
   caption_strip
   ========================================================================== */
.bc-caption-strip { padding-block: 24px; }
.bc-caption__text { text-align: center; color: var(--cream); }
.bc-caption-strip.is-whitebg .bc-caption__text, .bc-caption-strip.is-lightbg .bc-caption__text { color: var(--ink); }
.js [data-letters] { opacity: 0; letter-spacing: .5em; transition: opacity 1.2s var(--ease-out), letter-spacing 1.6s var(--ease-out); }
.js [data-letters].is-in { opacity: 1; letter-spacing: .16em; }

/* ==========================================================================
   two_column_copy
   ========================================================================== */
.bc-two-column-copy { min-height: 700px; display: flex; align-items: center; }
.bc-twocol__grid { display: grid; grid-template-columns: 503px 608px; justify-content: space-between; align-items: center; gap: 60px; }
.bc-twocol__copy { display: grid; gap: 27px; }
.bc-twocol__copy .bc-eyebrow { margin-bottom: -11px; }
.bc-twocol__copy .bc-h2 { color: var(--ink); }
.bc-twocol__copy .bc-prose p + p { margin-top: 10px; }
.bc-twocol__copy .bc-prose > * + * { margin-top: 10px; }
.bc-twocol__list { list-style: none; margin: 0; padding: 0; }
.bc-twocol__list li {
	position: relative; display: grid; padding-block: 20px; margin-bottom: -1px;
	transition: padding .5s var(--ease-out), background .4s;
}
.bc-twocol__list li::before, .bc-twocol__list li::after { content: ""; position: absolute; left: 0; right: 0; height: 1px; background: var(--muted); transform-origin: left; }
.bc-twocol__list li::before { top: 0; }
.bc-twocol__list li::after { bottom: 0; }
.bc-twocol__title { font-size: 21px; line-height: 1.36; letter-spacing: -0.02em; color: var(--black); transition: color .3s; }
.bc-twocol__text { font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; color: var(--muted); }
.bc-twocol__list li:hover { padding-left: 14px; }
.bc-twocol__list li:hover .bc-twocol__title { color: var(--coral); }
.js [data-ruled] li::before, .js [data-ruled] li::after { transform: scaleX(0); transition: transform 1s var(--ease-out); transition-delay: calc(var(--d) * 120ms); }
.js [data-ruled] li > span { opacity: 0; transform: translateY(14px); transition: opacity .7s, transform .8s var(--ease-out), color .3s; transition-delay: calc(var(--d) * 120ms + 200ms); }
.js [data-ruled].is-in li::before, .js [data-ruled].is-in li::after { transform: none; }
.js [data-ruled].is-in li > span { opacity: 1; transform: none; }
.bc-two-column-copy.is-darkbg .bc-twocol__copy .bc-h2, .bc-two-column-copy.is-darkbg .bc-twocol__title { color: var(--cream); }

/* ==========================================================================
   team
   ========================================================================== */
.bc-team { padding-block: 100px; }
.bc-team.is-tight { padding-top: 24px; }
.bc-team__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 61px; }
.bc-team__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 40px 25px; }
.bc-person__inner { display: grid; gap: 0; text-decoration: none; color: var(--black); }
.bc-person__photo {
	position: relative; display: block; aspect-ratio: 1; border-radius: 50%; overflow: hidden; isolation: isolate;
	background: var(--ink); margin-bottom: 23px;
}
.bc-person__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transform: scale(1.04); transition: filter .6s, transform .9s var(--ease-out); }
.bc-person:hover .bc-person__photo img { filter: none; transform: scale(1.1); }
.bc-person__orb {
	position: absolute; width: 140%; aspect-ratio: 1; border-radius: 50%; left: 34%; top: 18%;
	background: radial-gradient(closest-side, var(--orb-7) 0%, var(--orb-4) 52%, var(--orb-8) 84%, var(--orb-6) 99.4%, rgba(224,56,69,0) 100%);
	transition: transform 1s var(--ease-out);
}
.bc-person:hover .bc-person__orb {transform: translate(-26%, -16%) scale(1.08);}
.bc-person__photo::after { content: ""; position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 0 0 var(--coral); transition: box-shadow .5s var(--ease-out); }
.bc-person:hover .bc-person__photo::after {/* box-shadow: inset 0 0 0 4px var(--coral); */}
.bc-person__name { font-size: 21px; line-height: 1.36; letter-spacing: -0.02em; }
.bc-person__role { font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; }
.js .bc-team .bc-person.reveal { transform: translateY(40px) scale(.9); transition-delay: calc(var(--d, 0) * 90ms); }
.js .bc-team .bc-person.reveal.is-in { transform: none; }
.bc-team.is-darkbg .bc-person__inner { color: var(--cream); }

/* ==========================================================================
   case_studies — listing variant + loader
   ========================================================================== */
.bc-case-studies.is-listing { min-height: 0; display: block; padding-block: 118px 100px; }
.bc-case-studies.is-listing .bc-cases__grid { row-gap: 54px; }
.bc-case__body.is-meta { gap: 45px; }
.bc-case__byline { padding: 10px; border-top: 1px solid var(--line); font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; color: var(--ink); }
	.bc-case__byline.bc-muted{color: var(--muted);}
.bc-case[hidden] { display: none !important; }
.bc-cases__grid.is-loading .bc-case { transition: opacity .35s; }
.bc-cases__grid.is-swapping .bc-case { opacity: 0 !important; transform: translateY(16px) !important; transition: opacity .3s, transform .3s; }
.bc-cases__more { display: grid; justify-items: center; gap: 20px; margin-top: 60px; min-height: 58px; }
.js .bc-cases__more .bc-btn { display: none; }
.bc-cases__more.is-manual .bc-btn { display: inline-flex; }
.bc-loader { display: inline-flex; gap: 8px; opacity: 0; transition: opacity .3s; }
.bc-cases__more.is-loading .bc-loader { opacity: 1; }
.bc-loader span { width: 10px; height: 10px; border-radius: 50%; background: var(--coral); animation: bc-dot 1s ease-in-out infinite; }
.bc-loader span:nth-child(2) { animation-delay: .15s; }
.bc-loader span:nth-child(3) { animation-delay: .3s; }
@keyframes bc-dot { 0%, 100% { transform: scale(.5); opacity: .4; } 50% { transform: scale(1); opacity: 1; } }
.bc-cases__empty { padding-block: 40px; text-align: center; }

/* ==========================================================================
   client_list
   ========================================================================== */
.bc-client-list { padding-block: 80px 0; border-top: 1px solid var(--line); }
.bc-client-list.has-border { padding-bottom: 80px; }
.bc-client-list .bc-eyebrow { color: var(--orb-6); margin-bottom: 42px; }
.bc-clients { border-block: 1px solid var(--line); padding-block: 32px; overflow: hidden; }
.bc-clients__track { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 30px; width: max-content; min-width: 100%; }
.bc-client__inner { display: flex; align-items: center; height: 57px; padding: 10px; color: var(--muted); text-decoration: none; white-space: nowrap; font-size: 21px; line-height: 1.36; letter-spacing: -0.02em; transition: color .3s; }
.bc-client__inner img { max-height: 37px; width: auto; filter: grayscale(1); opacity: .7; transition: filter .4s, opacity .4s; }
.bc-client:hover .bc-client__inner { color: var(--ink); }
.bc-client:hover img { filter: none; opacity: 1; }
.bc-clients.is-marquee .bc-clients__track { justify-content: flex-start; animation: bc-marquee var(--dur, 40s) linear infinite; }
.bc-clients.is-marquee:hover .bc-clients__track { animation-play-state: paused; }
.bc-clients.is-marquee { -webkit-mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
@keyframes bc-marquee { to { transform: translateX(-50%); } }
.bc-client-list.is-darkbg .bc-client__inner { color: var(--note); }
.bc-client-list.is-darkbg .bc-client:hover .bc-client__inner { color: var(--cream); }

/* ==========================================================================
   responsive
   ========================================================================== */
@media (max-width: 1240px) {
	.bc-stack__grid, .bc-diag__grid, .bc-contact__grid { grid-template-columns: 1fr 1fr; }
	.bc-services__grid { grid-template-columns: repeat(2, 1fr); }
	.bc-service:nth-child(2n) { border-right: 0; }
	.bc-service:nth-child(n+3) { border-top: .5px solid var(--line); }
}
@media (max-width: 1240px) {
	.bc-row { grid-template-columns: 48px 1fr; row-gap: 28px; }
	.bc-row__head { grid-column: 2; margin-left: 0; width: auto; }
	.bc-row__body { grid-column: 2; margin-left: 0; }
	.bc-twocol__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1000px) {
	.bc-cases__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bc-twocol__grid { grid-template-columns: 1fr; }
	.bc-two-column-copy { min-height: 0; }
	.bc-team__grid { grid-template-columns: repeat(3, 1fr); }

	.bc-hero__bar { flex-direction: column; border-radius: 30px; padding: 24px; }
	.bc-hero__label { max-width: none; text-align: center; }
	.bc-hero__buttons { justify-content: center; }
	.bc-intro__grid, .bc-stack__grid, .bc-diag__grid, .bc-contact__grid, .bc-quotes__grid { grid-template-columns: 1fr; }
	.bca__grid { grid-template-columns: 1fr; gap: 36px; }
	.bc-intro-image { min-height: 0; }
	.bc-intro-image.imageleft .bc-intro__media { order: 0; }
	.bc-intro__media { margin-top: 32px; }
	.bc-layer { white-space: normal; }
	.bc-quote, .bc-quote--large { min-height: 0; }
	.bc-quote--large { padding-block: 60px; }
	.bc-contact__copy { max-width: none; }
	.bc-contact__orb { width: 900px; left: calc(100% - 520px); top: calc(100% - 420px); }
}
@media (max-width: 640px) {
	.bc-banner__buttons { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding-inline: var(--gutter); gap: 10px; margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); padding-bottom: 4px; scrollbar-width: none; }
	.bc-banner__buttons::-webkit-scrollbar { display: none; }
	.bc-banner__buttons .bc-btn { flex: none; min-width: 0; height: 46px; padding-inline: 20px; scroll-snap-align: start; }
	.bc-cases__grid { grid-template-columns: 1fr; }
	.bc-row { grid-template-columns: 34px 1fr; padding-block: 36px; }
	.bc-row__body { padding-left: 16px; gap: 28px; }
	.bc-team__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
	.bc-caption__text { letter-spacing: .1em; }

	.bc-services__grid { grid-template-columns: 1fr; }
	.bc-service { min-height: 0; border-right: 0; border-top: .5px solid var(--line); padding-block: 40px; gap: 28px; }
	.bc-service:first-child { border-top: 0; }
	.bc-hero__buttons .bc-btn { flex: 1 1 calc(50% - 8px); min-width: 0; padding-inline: 12px; }
	.bc-form__grid { grid-template-columns: 1fr; }
	.bc-form__foot { flex-direction: column; align-items: flex-start; }
	.bc-diag__card { padding-inline: 14px; }
	.bc-diag__answers { padding-inline: 0; }
	.bca { padding: 26px 18px 24px; }
	.bca__nav .bc-btn, .bca__submit .bc-btn { flex: 1 1 auto; min-width: 0; }
	.bca__cta { flex-direction: column; align-items: stretch; padding: 22px 20px; }
	.bc-diagnostic.is-expanded .bca { padding: 26px 18px 24px; }
	.bca .bc-btn { white-space: normal; height: auto; min-height: 58px; text-align: center; line-height: 1.2; }
	.bca__cta--open { flex-wrap: nowrap; }
	.bca__cta--open > * { flex: none; min-width: 0; }
	.bca__cta-action .bc-btn { width: 100%; }
	.bca__opp-text { padding-left: 0; }
	.bc-buttons .bc-btn { flex: 1 1 100%; }
	.bc-layer { flex-direction: column; align-items: flex-start; gap: 2px; }
	.bc-layer__note { text-align: left; }
}

/* ==========================================================================
   case_study_header — dark banner, wide image overlapping it, detail row
   ========================================================================== */
.bc-section.bc-csh { padding: 0; background: var(--paper); color: var(--ink); }
.bc-csh .bc-csh__banner { background: var(--ink); color: var(--cream); padding-block: clamp(150px, 14.5vw, 209px) clamp(24px, 2vw, 29px); }
.bc-csh .bc-banner__inner { gap: clamp(24px, 3.05vw, 44px); }
.bc-csh .bc-banner__buttons { margin-top: 0; }
.bc-csh .breadcrumbs { margin-bottom: 0; color: var(--coral); }
.bc-csh .breadcrumbs a { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color .3s; }
.bc-csh .breadcrumbs a:hover { color: var(--coral); }
.bc-csh .breadcrumbs span[aria-hidden] { color: var(--cream); }
.bc-csh__band { --overlap: clamp(32px, 4.93vw, 71px); background: linear-gradient(var(--ink) var(--overlap), var(--paper) var(--overlap)); }
.bc-csh__media { margin: 0; aspect-ratio: 1240 / 468; }
.bc-csh__media .bc-wipe { height: 100%; border-radius: var(--radius); overflow: hidden; background: #d9d9d9; }
.bc-csh__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1.8s var(--ease-out); }
.bc-csh__media .bc-wipe.is-in img { transform: scale(1); }
.bc-csh__placeholder { position: absolute; inset: 0; overflow: hidden; background: linear-gradient(135deg, var(--orb-1), var(--ink)); }
.bc-csh__placeholder .bc-case__orb { width: 70%; right: -12%; top: -40%; }
.bc-csh__details { margin: clamp(40px, 5.07vw, 73px) 0 0; padding-block: clamp(32px, 3.34vw, 48px); border-top: 1px solid var(--muted); display: grid; grid-template-columns: repeat(4, minmax(0, 224px)); column-gap: clamp(24px, 6.4vw, 92px); row-gap: 32px; }
.bc-csh__detail { display: grid; gap: 19px; align-content: start; }
.bc-csh__detail dt { color: var(--muted); }
.bc-csh__detail dd { margin: 0; display: grid; gap: 1px; }
.bc-csh__detail dd .bc-h3 { color: var(--ink); }
.bc-csh__detail dd small { color: var(--muted); }

/* ==========================================================================
   story — narrow long-form column
   ========================================================================== */
.bc-section.bc-story { padding-block: clamp(32px, 3.2vw, 46px); }
.bc-story__col { width: min(610px, 100% - 2 * var(--gutter)); display: grid; gap: clamp(32px, 3.26vw, 47px); }
.bc-story__head { display: grid; gap: 28px; }
.bc-story__col .bc-h2 { color: var(--ink); }
.bc-story__body { display: grid; gap: 29px; color: var(--ink); }
.bc-story__intro { font-size: clamp(19px, 1.46vw, 21px); line-height: 1.36; letter-spacing: -0.02em; }
.bc-story__text { font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-story__text ol {    padding-left: 1.5em;}
.bc-story__text ol li {    padding-left: 0.5em;	margin-bottom:20px;}
.bc-story__text ol li::marker {    color: var(--coral);    font-weight: 700;}
.bc-story__text.bc-prose > * + * { margin-top: 29px; }
.bc-story__text small { font-size: 15px; line-height: 1.55; }
.bc-story__quote { margin: 0; border-left: 3px solid var(--coral); padding-left: 36px; font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 72; font-size: clamp(22px, 1.81vw, 26px); line-height: 1.28; letter-spacing: -0.02em; color: var(--ink); }
.bc-story.is-darkbg .bc-h2, .bc-story.is-darkbg .bc-story__body, .bc-story.is-darkbg .bc-story__quote { color: var(--cream); }

/* ==========================================================================
   gallery
   ========================================================================== */
.bc-section.bc-gallery { padding-block: clamp(32px, 3.2vw, 46px) clamp(40px, 3.47vw, 50px); }
.bc-gallery__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 24px; align-items: start; }
.bc-gallery__item { margin: 0; display: grid; gap: 21px; }
.bc-gallery__item.is-full { grid-column: 1 / -1; }
.bc-gallery__media { position: relative; border-radius: var(--radius); overflow: hidden; background: #d9d9d9; aspect-ratio: 1240 / 468; }
.bc-gallery__item.is-half .bc-gallery__media { aspect-ratio: 608 / 468; }
.bc-gallery__media img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); transition: transform 1.8s var(--ease-out); }
.bc-gallery__media.is-in img { transform: scale(1); }
.bc-gallery__media.is-delayed { transition-delay: .15s; }
.bc-gallery__empty { position: absolute; inset: 0; }
.bc-gallery figcaption { font-size: 13px; line-height: 1.55; color: var(--black); }
.bc-gallery.is-darkbg figcaption { color: var(--cream); }

/* ==========================================================================
   results — numbers + call to action card
   ========================================================================== */
.bc-section.bc-results { padding-block: clamp(48px, 3.9vw, 56px); }
.bc-results__head { display: grid; gap: 42px; margin-bottom: 42px; }
.bc-results__head .bc-h2 { max-width: 400px; color: var(--paper); }
.bc-results.is-whitebg .bc-results__head .bc-h2, .bc-results.is-lightbg .bc-results__head .bc-h2 { color: var(--ink); }
.bc-results__grid { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); }
.bc-stat {min-height: 376px;padding: 20px;display: flex;flex-direction: column;gap: 12px;border: .5px solid var(--line);border-left: 0;color: var(--paper);justify-content: flex-start;}
.bc-results.is-whitebg .bc-stat, .bc-results.is-lightbg .bc-stat { color: var(--ink); }
.bc-stat__value {font-variant-numeric: tabular-nums;color: var(--coral);font-size: 4rem;font-weight: 600;}
.bc-stat .bc-small p + p { margin-top: 1.55em; }
.bc-results__cta { min-height: 376px; padding: 24px; background: var(--orb-4); color: var(--cream); display: flex; flex-direction: column; justify-content: flex-end; gap: 40px; }
.bc-results__amp { display: block; width: 113px; height: 113px; transform-origin: 40% 60%; transition: transform .9s var(--ease-out); }
.bc-results__amp svg { width: 113px; height: 113px; }
.bc-results__cta:hover .bc-results__amp { transform: rotate(-12deg) scale(1.08); }
.bc-results__ctabody { display: grid; gap: 36px; justify-items: start; }
.bc-results__cta .bc-h3 { color: var(--cream); }
.bc-results__cta .bc-link { color: var(--cream); gap: 28px; }
.bc-results__cta .bc-link svg path { fill: currentColor; }
.bc-results__note { margin-top: 42px; max-width: 930px; color: var(--muted); }

/* ==========================================================================
   quote — one large centred quote
   ========================================================================== */
.bc-bigquote { margin: 0 auto; width: min(840px, 100% - 2 * var(--gutter)); display: grid; justify-items: center; gap: 54px; text-align: center; }
.bc-bigquote__amp { display: block; width: 39px; height: 39px; }
.bc-bigquote__amp svg { width: 39px; height: 39px; }
.bc-bigquote blockquote { margin: 0; }
.bc-bigquote .bc-h2 { color: var(--black); }
.bc-bigquote figcaption { display: grid; }
.bc-bigquote figcaption span { font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; color: var(--black); }
.bc-bigquote figcaption small { font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; color: var(--muted); }
.bc-client-quote.is-darkbg .bc-bigquote .bc-h2, .bc-client-quote.is-darkbg .bc-bigquote figcaption span { color: var(--cream); }

@media (max-width: 1000px) {
	.bc-csh__details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bc-results__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bc-stat, .bc-results__cta { min-height: 280px; }
	.bc-stat:nth-child(odd) { border-left: .5px solid var(--line); }
}
@media (max-width: 640px) {
	.bc-csh__media { aspect-ratio: 4 / 3; }
	.bc-gallery__grid { grid-template-columns: 1fr; }
	.bc-gallery__item.is-half .bc-gallery__media { aspect-ratio: 4 / 3; }
	.bc-gallery__media.is-delayed { transition-delay: 0s; }
	.bc-results__grid { grid-template-columns: 1fr; }
	.bc-stat { min-height: 0; padding-block: 36px; border-left: 0; border-right: 0; }
	.bc-stat:nth-child(odd) { border-left: 0; }
	.bc-results__cta { min-height: 320px; }
	.bc-story__quote { padding-left: 24px; }
	.bc-bigquote { gap: 36px; }
}

/* ==========================================================================
   faq — heading left, accordion right; the open question turns dark
   ========================================================================== */
.bc-section.bc-faq { padding-block: var(--sect); }
.bc-section.is-whitebg + .bc-section.bc-faq.is-whitebg, .bc-section.is-lightbg + .bc-section.bc-faq.is-lightbg { padding-top: clamp(40px, 3.5vw, 50px); }
.bc-faq__grid { display: grid; grid-template-columns: minmax(0, 503fr) minmax(0, 617fr); column-gap: clamp(40px, 9vw, 130px); row-gap: 40px; align-items: start; }
.bc-faq__head { display: grid; gap: 27px; }
.bc-faq__titles { display: grid; gap: 16px; }
.bc-faq__titles .bc-h2 { color: var(--ink); }
.bc-faq__intro { font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; color: var(--muted); }
.bc-faq__list { display: grid; gap: 27px; }
.bc-faq__item { border: .75px solid var(--black); border-radius: 20px; background: var(--white); color: var(--ink); overflow: hidden; transition: background-color .45s var(--ease), border-color .45s var(--ease), color .45s var(--ease); }
.bc-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px; cursor: pointer; list-style: none; font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-faq__item summary::-webkit-details-marker { display: none; }
.bc-faq__item summary:focus-visible { outline: 2px solid var(--coral); outline-offset: -4px; border-radius: 20px; }
.bc-faq__icon { position: relative; flex: none; width: 9px; height: 9px; color: var(--coral); transition: transform .45s var(--ease-out), color .45s; }
.bc-faq__icon::before, .bc-faq__icon::after { content: ""; position: absolute; left: 0; top: 4px; width: 9px; height: 1px; background: currentColor; }
.bc-faq__icon::after { transform: rotate(90deg); transition: transform .45s var(--ease-out); }
.bc-faq__item:not([open]):hover { background: var(--paper); }
.bc-faq__item:not([open]):hover .bc-faq__icon { transform: rotate(90deg); }
.bc-faq__item[open] { background: var(--ink); border-color: var(--ink); color: #fff; }
.bc-faq__item[open] .bc-faq__icon { color: #fff; }
.bc-faq__item[open] .bc-faq__icon::after { transform: rotate(0deg); }
.bc-faq__item[open].is-closing { background: var(--white); border-color: var(--black); color: var(--ink); }
.bc-faq__item[open].is-closing .bc-faq__icon { color: var(--coral); }
.bc-faq__item[open].is-closing .bc-faq__icon::after { transform: rotate(90deg); }
.bc-faq__answer { overflow: hidden; }
.bc-faq__answer-inner { padding: 0 20px 22px; font-size: 15px; line-height: 1.55; letter-spacing: -0.01em; color: var(--cream); }
.bc-faq.is-darkbg .bc-faq__titles .bc-h2 { color: var(--cream); }
.bc-faq.is-darkbg .bc-faq__item { border-color: var(--line); background: transparent; color: var(--cream); }
.bc-faq.is-darkbg .bc-faq__item:not([open]):hover { background: rgba(237, 230, 225, .06); }
.bc-faq.is-darkbg .bc-faq__item[open] { background: var(--cream); color: var(--ink); }
.bc-faq.is-darkbg .bc-faq__item[open] .bc-faq__icon { color: var(--ink); }
.bc-faq.is-darkbg .bc-faq__answer-inner { color: var(--ink); }

/* ==========================================================================
   free_tool — rounded promo card
   ========================================================================== */
.bc-section.is-whitebg:not(.has-border) + .bc-section.bc-free-tool.is-whitebg, .bc-section.is-lightbg:not(.has-border) + .bc-section.bc-free-tool.is-lightbg { padding-top: 0; }
.bc-tool { min-height: 291px; padding: 40px clamp(24px, 4vw, 60px); display: flex; align-items: center; justify-content: center; gap: clamp(40px, 10vw, 145px); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.bc-free-tool.is-lightbg .bc-tool { background: var(--white); }
.bc-free-tool.is-darkbg .bc-tool { background: transparent; border-color: rgba(237, 230, 225, .3); }
.bc-tool__copy { width: 423px; max-width: 100%; display: grid; gap: 34px; }
.bc-tool__text { display: grid; gap: 15px; color: var(--black); font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-tool__text .bc-h3 { color: var(--black); }
.bc-free-tool.is-darkbg .bc-tool__text, .bc-free-tool.is-darkbg .bc-tool__text .bc-h3 { color: var(--cream); }
.bc-tool__actions { display: flex; align-items: center; gap: 55px; flex-wrap: wrap; }
.bc-tool__actions .bc-btn { min-width: 186px; }

@media (max-width: 1000px) {
	.bc-faq__grid { grid-template-columns: 1fr; }
	.bc-tool { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 32px; min-height: 0; }
}
@media (max-width: 640px) {
	.bc-faq__list { gap: 16px; }
	.bc-tool__actions { gap: 24px 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.bc-orb, .bc-orb__glow, .bc-clients.is-marquee .bc-clients__track { animation: none; }
	.js .bc-wipe { clip-path: none; }
	.bc-csh__media img, .bc-gallery__media img { transform: none; }
	.js [data-stack] .bc-layer, .js .bc-hero__bar, .js .bc-hero__buttons .bc-btn,
	.js .bc-row .bc-row__num, .js .bc-row .bc-row__head, .js .bc-row .bc-row__item, .js .bc-row .bc-btn, .js [data-ruled] li > span, .js [data-letters] { opacity: 1; transform: none; }
	.js .bc-row .bc-row__body::before, .js [data-ruled] li::before, .js [data-ruled] li::after { transform: none; }
}

/* ==========================================================================
   insights — feature panel + cards (layouts/insights), from Figma "Insights"
   ========================================================================== */
.bc-section.bc-insight-feature { padding-block: 100px; }
.bc-insight-feature__grid { display: grid; grid-template-columns: minmax(0, 442px) minmax(0, 632px); justify-content: space-between; align-items: stretch; gap: 60px; }
.bc-insight-feature__copy { display: grid; gap: 24px; align-content: center; max-width: 396px; }
.bc-insight-feature__copy .bc-eyebrow { margin-bottom: 3px; }
.bc-insight-feature__copy .bc-h2, .bc-insight-feature__copy p:not(.bc-eyebrow) { color: var(--cream); }
.bc-insight-feature__copy .bc-buttons { margin-top: 40px; flex-wrap: nowrap; }
.bc-insight-feature__copy .bc-btn--outline { min-width: 224px; }
.bc-insight-feature__media { display: block; min-height: 400px; border-radius: var(--radius); }
.bc-insight-feature__media .bc-wipe { display: block; position: relative; height: 100%; border-radius: var(--radius); overflow: hidden; }
.bc-insight-feature__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1.8s var(--ease-out); }
.bc-insight-feature__media .bc-wipe.is-in img { transform: scale(1); }
.bc-insight-feature__media:hover img { transform: scale(1.04); }
.bc-insight-feature__placeholder { position: absolute; inset: 0; overflow: hidden; isolation: isolate; background: linear-gradient(135deg, var(--orb-1), var(--ink)); }
.bc-insight-feature__placeholder .bc-case__orb { width: 80%; left: auto; right: -14%; top: auto; bottom: -50%; }

.bc-section.bc-insights { padding-block: 142px 100px; }
.bc-insights > .bc-container { width: min(1238px, 100% - 2 * var(--gutter)); scroll-margin-top: 80px; }
.bc-insights .bc-cases__grid { row-gap: 54px; }
.bc-insights.is-selection { padding-block: 100px; }
.bc-insights.is-whitebg .bc-case__body { background: #fff; }

/* ==========================================================================
   single insight (single.php), from Figma "Individual Insights"
   ========================================================================== */
.bc-section.bc-insight-head { padding-block: clamp(150px, 14.2vw, 204px) 100px; }
.bc-insight-head__inner { display: grid; gap: 60px; }
.bc-insight-head .breadcrumbs { margin: 0; color: var(--coral); }
.bc-insight-head .breadcrumbs a { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color .3s; }
.bc-insight-head .breadcrumbs a.is-current { color: var(--coral); text-decoration: none; }
.bc-insight-head .breadcrumbs a:hover { color: var(--coral); }
.bc-insight-head .breadcrumbs span[aria-hidden] { color: var(--cream); }
.bc-insight-head__text { display: grid; gap: 20px; }
.bc-insight-head .bc-banner__title { color: var(--cream); max-width: 1100px; }
.bc-insight-head__standfirst { max-width: 900px; color: var(--line); font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-insight-head__meta { color: var(--line); }

.bc-insight-media { background: var(--ink); padding-bottom: 100px; margin-top: -1px; }
.bc-insight-media__figure { margin: 0; aspect-ratio: 1240 / 468; }
.bc-insight-media__figure .bc-wipe { height: 100%; border-radius: var(--radius); overflow: hidden; background: #d9d9d9; }
.bc-insight-media__figure img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 1.8s var(--ease-out); }
.bc-insight-media__figure .bc-wipe.is-in img { transform: scale(1); }

.bc-article__grid { display: grid; grid-template-columns: minmax(0, 818px) 292px; justify-content: space-between; gap: 60px; align-items: start; }
.bc-article__grid.is-single { grid-template-columns: minmax(0, 818px); }

/* article text */
.bc-article__body { color: var(--ink); font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-article__body > :first-child { margin-top: 0; }
.bc-article__body > :last-child { margin-bottom: 0; }
.bc-article__body p { margin: 0; }
.bc-article__body p + p { margin-top: 10px; }
.bc-article__body > p:first-child { font-size: 21px; line-height: 1.55; letter-spacing: 0; margin-bottom: 33px; }
.bc-article__body > p:first-child + p { margin-top: 0; }
.bc-article__body h2 { font-size: 21px; line-height: 1.36; letter-spacing: -0.02em; margin: 48px 0 15px; scroll-margin-top: 120px; }
.bc-article__body h3 { font-size: 17px; font-weight: 700; line-height: 1.36; margin: 32px 0 10px; scroll-margin-top: 120px; }
.bc-article__body h2 + p, .bc-article__body h3 + p { margin-top: 0; }
.bc-article__body strong, .bc-article__body b { font-weight: 700; }
.bc-article__body a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color .3s; }
.bc-article__body a:hover { color: var(--coral); }
/* bullet lists read as a ruled list (the buying-group roles in the design) */
.bc-article__body ul { list-style: none; margin: 36px 0; padding: 0; max-width: 712px; }
.bc-article__body ul > li + li { margin-top: 23px; padding-top: 23px; border-top: 1px solid var(--line); }
.bc-article__body ol { margin: 32px 0; padding-left: 1.5em; }
.bc-article__body ol > li { padding-left: .5em; }
.bc-article__body ol > li + li { margin-top: 14px; }
.bc-article__body ol > li::marker { color: var(--coral); font-weight: 700; }
.bc-article__body ul + p, .bc-article__body ol + p { margin-top: 0; }
.bc-article__body blockquote { margin: 48px 0; padding: 0 0 0 36px; max-width: 646px; border-left: 3px solid var(--coral); font-family: var(--f-accent); font-variation-settings: "SOFT" 100, "opsz" 72; font-size: clamp(22px, 1.81vw, 26px); line-height: 1.28; letter-spacing: -0.02em; color: var(--ink); }
.bc-article__body blockquote p + p { margin-top: 10px; }
.bc-article__body blockquote cite { display: block; margin-top: 12px; font: 400 15px/1.55 var(--f-sans); letter-spacing: -0.01em; color: var(--muted); font-style: normal; }
.bc-article__body img { border-radius: var(--radius); height: auto; }
.bc-article__body figure { margin: 48px 0; }
.bc-article__body figcaption { margin-top: 12px; font-size: 13px; line-height: 1.55; color: var(--muted); }
.bc-article__body hr { border: 0; border-top: 1px solid var(--line); margin: 48px 0; max-width: 712px; }

/* author */
.bc-author { margin-top: 66px; padding-top: 39px; border-top: 1px solid var(--line); max-width: 712px; display: flex; align-items: center; gap: 24px; }
.bc-author__photo { flex: none; width: 81px; height: 81px; border-radius: 50%; overflow: hidden; }
.bc-author__photo img { width: 100%; height: 100%; object-fit: cover; }
.bc-author__photo.is-empty { background: radial-gradient(circle at 70% 75%, var(--orb-7), var(--orb-4) 45%, var(--ink) 100%); }
.bc-author__text { display: grid; gap: 10px; color: var(--black); }
.bc-author__name span { font-size: 21px; line-height: 1.55; }
.bc-author__name small { font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-author__bio { color: var(--muted); }

/* sidebar */
.bc-article__sticky { position: sticky; top: 120px; display: grid; gap: 51px; }
.bc-toc .bc-eyebrow { color: var(--ink); margin-bottom: 13px; }
.bc-toc ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.bc-toc li { border-bottom: 1px solid var(--line); }
.bc-toc a { display: block; padding-block: 6px; font-size: 13px; line-height: 1.55; color: var(--ink); text-decoration: none; transition: color .3s, padding .4s var(--ease-out); }
.bc-toc a:hover, .bc-toc a.is-current { color: var(--coral); }
.bc-toc a.is-current { padding-left: 10px; }
.bc-article__cta { display: grid; gap: 14px; justify-items: start; padding: 25px; border: 1px solid var(--line); border-radius: var(--radius); }
.bc-article__cta .bc-h3 { color: var(--black); }
.bc-article__cta .bc-link { margin-top: 4px; }

@media (max-width: 1240px) {
	.bc-insight-feature__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 1000px) {
	.bc-insight-feature__grid { grid-template-columns: 1fr; }
	.bc-insight-feature__copy { max-width: none; }
	.bc-insight-feature__media { min-height: 0; aspect-ratio: 16 / 10; }
	.bc-article__grid { grid-template-columns: 1fr; gap: 64px; }
	.bc-article__aside { max-width: 520px; }
	.bc-article__sticky { position: static; }
}
@media (max-width: 640px) {
	.bc-section.bc-insights { padding-block: 80px; }
	.bc-insight-feature__copy .bc-buttons { flex-wrap: wrap; }
	.bc-insight-feature__copy .bc-btn--outline { min-width: 186px; }
	.bc-insight-media { padding-bottom: 64px; }
	.bc-insight-media__figure { aspect-ratio: 4 / 3; }
	.bc-article__body > p:first-child { font-size: 19px; }
	.bc-article__body blockquote { padding-left: 24px; }
	.bc-author { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	.bc-insight-media__figure img, .bc-insight-feature__media img { transform: none; }
}

/* results: word tiles ("The outcome" on imported case studies) */
.bc-stat__value.is-word { font-size: clamp(24px, 2.2vw, 32px); line-height: 1.15; letter-spacing: -0.02em; font-weight: 500; font-variant-numeric: normal; }

/* insights: article pack elements — In short, info boxes, figures, tables, checklists */
.bc-article__body .bc-inshort { margin: 33px 0 40px; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); max-width: 712px; }
.bc-article__body .bc-inshort__tag { font-size: 13px; line-height: 1.4; letter-spacing: 0.16em; text-transform: uppercase; color: var(--coral); margin-bottom: 12px; }
.bc-article__body .bc-inshort ol { margin: 0; }
.bc-article__body blockquote.bc-callout { max-width: 712px; margin: 36px 0; padding: 4px 0 4px 24px; border-left: 3px solid var(--coral); font: inherit; font-size: 17px; line-height: 1.36; letter-spacing: -0.01em; }
.bc-article__body blockquote.bc-callout em { color: var(--muted); font-size: 15px; }
.bc-article__body .bc-figure { margin: 40px 0; }
.bc-article__body .bc-figure img { display: block; width: 100%; height: auto; border-radius: 12px; }
.bc-article__body .bc-figure.is-shot img { border: 1px solid var(--line); border-radius: 8px; }
.bc-article__body .bc-figure + .bc-figure { margin-top: -8px; }
.bc-article__body .bc-table { margin: 32px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bc-article__body table { width: 100%; border-collapse: collapse; margin: 32px 0; font-size: 15px; line-height: 1.45; }
.bc-article__body .bc-table table { margin: 0; }
.bc-article__body th, .bc-article__body td { text-align: left; vertical-align: top; padding: 10px 14px 10px 0; border-bottom: 1px solid var(--line); }
.bc-article__body th { font-weight: 500; border-bottom: 2px solid var(--ink); }
.bc-article__body th:last-child, .bc-article__body td:last-child { padding-right: 0; }

/* phones: each row becomes a card — first cell as its title, the rest as label / value lines
   (labels are copied from the header row by main.js into data-label) */
@media (max-width: 640px) {
	.bc-article__body table.is-stacked, .bc-article__body table.is-stacked tbody, .bc-article__body table.is-stacked tr, .bc-article__body table.is-stacked td { display: block; width: 100%; }
	.bc-article__body table.is-stacked thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.bc-article__body table.is-stacked tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
	.bc-article__body table.is-stacked tr:first-child { border-top: 2px solid var(--ink); }
	.bc-article__body table.is-stacked td { padding: 3px 0; border: 0; }
	.bc-article__body table.is-stacked td:first-child { font-size: 17px; font-weight: 500; padding-bottom: 6px; }
	.bc-article__body table.is-stacked td[data-label]:not(:first-child) { display: grid; grid-template-columns: minmax(0, 46%) minmax(0, 1fr); gap: 12px; }
	.bc-article__body table.is-stacked td[data-label]:not(:first-child)::before { content: attr(data-label); color: var(--muted); }
}.
bc-article__body ul.task-list > li { position: relative; padding-left: 34px; }
.bc-article__body ul.task-list > li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border: 1.5px solid var(--coral); border-radius: 5px; }
.bc-article__body ul.task-list > li + li::before { top: 25px; }
/* random case study cards: hidden until main.js has picked them (no JS: the first three show) */
.js [data-cs-random]:not(.is-picked) { visibility: hidden; }
html:not(.js) [data-cs-random] > .bc-case:nth-child(n+4) { display: none; }