/* Bonah — components / sections */

/* ================= HERO ================= */
.bn-hero { position: relative; min-height: 100svh; display: grid; align-items: center; padding-block: calc(var(--bn-header) + 60px) 110px; overflow: hidden; isolation: isolate; }
.bn-hero__bg { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: var(--bn-bg); }
.bn-hero__bg i { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .85; will-change: transform; }
.bn-hero__bg .a1 { width: 60vmax; height: 60vmax; inset-block-start: -22vmax; inset-inline-end: -12vmax; background: radial-gradient(closest-side, rgba(168, 201, 58, .55), transparent 70%); animation: bn-drift-1 22s ease-in-out infinite alternate; }
.bn-hero__bg .a2 { width: 46vmax; height: 46vmax; inset-block-end: -20vmax; inset-inline-start: -10vmax; background: radial-gradient(closest-side, rgba(110, 150, 30, .45), transparent 70%); animation: bn-drift-2 28s ease-in-out infinite alternate; }
.bn-hero__bg .a3 { width: 30vmax; height: 30vmax; inset-block-start: 30%; inset-inline-start: 38%; background: radial-gradient(closest-side, rgba(195, 225, 90, .22), transparent 70%); animation: bn-drift-3 18s ease-in-out infinite alternate; }
:root[data-theme="light"] .bn-hero__bg i { opacity: .65; }
.bn-hero__bg .grid {
	position: absolute; inset: 0; opacity: .5;
	background-image: linear-gradient(var(--bn-line) 1px, transparent 1px), linear-gradient(90deg, var(--bn-line) 1px, transparent 1px);
	background-size: 72px 72px; mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 70%);
}
.bn-hero__swoosh { position: absolute; z-index: -1; inset-inline: -4%; inset-block-end: -2%; width: 108%; max-width: none; height: auto; opacity: .32; pointer-events: none; }
.bn-hero__swoosh path { fill: none; stroke: var(--bn-accent); stroke-width: 18; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 2200; stroke-dashoffset: 2200; filter: drop-shadow(0 0 22px var(--bn-glow)); }
.js .bn-hero.is-in .bn-hero__swoosh path, html:not(.js) .bn-hero__swoosh path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.6s var(--bn-ease) .3s; }
.bn-hero__inner { position: relative; display: grid; gap: clamp(1.2rem, 2.4vw, 2rem); }
.bn-hero__title { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.4rem, 1rem + 6.1vw, 6.3rem); line-height: 1.2; max-width: 15ch; text-wrap: balance; letter-spacing: 0; }
:lang(en) .bn-hero__title { font-weight: 700; line-height: 1.02; letter-spacing: -.045em; font-size: clamp(2.6rem, 1rem + 7vw, 7rem); max-width: 13ch; }
.bn-hero__title em { font-style: normal; color: var(--bn-accent); }
.bn-w { display: inline-block; overflow: hidden; vertical-align: top; padding-block: .06em .12em; margin-block: -.06em -.12em; }
.bn-w > span { display: inline-block; }
.js .bn-w > span { transform: translateY(115%) rotate(4deg); }
.js .is-in .bn-w > span, .js .bn-w.is-in > span { transform: none; transition: transform 1.1s var(--bn-ease); transition-delay: calc(var(--wi, 0) * 80ms + 150ms); }
.bn-hero__lead { max-width: 56ch; font-size: clamp(1.05rem, 1rem + .6vw, 1.45rem); color: var(--bn-ink-2); }
.bn-hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; margin-block-start: .6rem; }
.bn-hero__kpis { display: flex; flex-wrap: wrap; gap: .7rem; margin-block-start: clamp(1rem, 3vw, 2.4rem); }
.bn-chip { display: inline-flex; align-items: baseline; gap: .55rem; padding: .6rem 1.1rem; border-radius: 999px; border: 1px solid var(--bn-line-2); background: var(--bn-glass); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: .9rem; color: var(--bn-ink-2); }
.bn-chip b { font-family: var(--bn-font-head); font-size: 1.15rem; color: var(--bn-ink); }
.bn-hero__scroll { position: absolute; inset-block-end: 28px; inset-inline-start: var(--bn-gutter); display: flex; align-items: center; gap: .8rem; font-size: .8rem; color: var(--bn-ink-3); font-family: var(--bn-font-head); }
.bn-hero__scroll i { position: relative; width: 22px; height: 38px; border: 1.5px solid var(--bn-line-2); border-radius: 12px; }
.bn-hero__scroll i::after { content: ""; position: absolute; inset-inline-start: 50%; inset-block-start: 7px; width: 3px; height: 8px; margin-inline-start: -1.5px; border-radius: 3px; background: var(--bn-accent); animation: bn-wheel 1.8s ease-in-out infinite; }
@keyframes bn-wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

/* ================= PAGE HERO ================= */
.bn-pagehero { position: relative; overflow: hidden; isolation: isolate; padding-block: calc(var(--bn-header) + clamp(60px, 9vw, 120px)) clamp(60px, 8vw, 110px); border-bottom: 1px solid var(--bn-line); }
.bn-pagehero .bn-hero__bg .a1 { width: 44vmax; height: 44vmax; }
.bn-pagehero__inner { display: grid; gap: 1.2rem; }
.bn-crumbs { display: flex; gap: .6rem; align-items: center; font-size: .85rem; color: var(--bn-ink-3); }
.bn-crumbs a:hover { color: var(--bn-accent-text); }
.bn-pagehero h1 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.3rem, 1.2rem + 5vw, 5.4rem); line-height: 1.15; max-width: 18ch; text-wrap: balance; }
:lang(en) .bn-pagehero h1 { font-weight: 700; letter-spacing: -.04em; line-height: 1.05; }

/* ================= MARQUEE ================= */
.bn-marquee { position: relative; padding-block: 28px; border-block: 1px solid var(--bn-line); background: var(--bn-bg-2); overflow: hidden; display: grid; gap: 14px; }
.bn-marquee__row { display: flex; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.bn-marquee__track { display: flex; flex: none; align-items: center; gap: 2.2rem; padding-inline-end: 2.2rem; min-width: 100%; animation: bn-marquee 60s linear infinite; font-family: var(--bn-font-head); font-weight: 700; font-size: clamp(1.1rem, .9rem + 1vw, 1.7rem); color: var(--bn-ink-3); white-space: nowrap; }
.bn-marquee__row--rev .bn-marquee__track { animation-direction: reverse; animation-duration: 75s; }
.bn-marquee:hover .bn-marquee__track { animation-play-state: paused; }
.bn-marquee__track span { transition: color .3s; }
.bn-marquee__track span:hover { color: var(--bn-ink); }
[dir="rtl"] .bn-marquee__track { animation-name: bn-marquee-rtl; }
@keyframes bn-marquee { to { transform: translateX(-100%); } }
@keyframes bn-marquee-rtl { to { transform: translateX(100%); } }

/* ================= STATS ================= */
.bn-stats { grid-template-columns: repeat(3, 1fr); }
.bn-stat { position: relative; overflow: hidden; padding: clamp(24px, 2.6vw, 38px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); transition: border-color .4s, transform .6s var(--bn-ease); isolation: isolate; }
.bn-stat::before, .bn-spot::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s; background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), var(--bn-glow), transparent 60%); }
.bn-stat:hover::before, .bn-spot:hover::before { opacity: 1; }
.bn-stat:hover { border-color: color-mix(in srgb, var(--bn-accent) 55%, transparent); }
.bn-stat__value { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.8rem, 2rem + 3.6vw, 5.2rem); line-height: 1.05; color: var(--bn-ink); display: flex; align-items: baseline; gap: .1em; direction: ltr; justify-content: flex-start; }
[dir="rtl"] .bn-stat__value { justify-content: flex-end; }
.bn-stat__value sup { font-size: .5em; color: var(--bn-accent); top: 0; vertical-align: baseline; }
.bn-stat__label { margin-block-start: .5rem; font-family: var(--bn-font-head); font-weight: 700; font-size: 1.1rem; }
.bn-stat__text { margin-block-start: .4rem; color: var(--bn-ink-2); font-size: .95rem; line-height: 1.7; }
@media (max-width: 980px) { .bn-stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bn-stats { grid-template-columns: 1fr; } }

/* ================= STATEMENT / ABOUT ================= */
.bn-about { display: grid; gap: clamp(36px, 6vw, 80px); }
.bn-statement { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.7rem, 1rem + 3.2vw, 3.7rem); line-height: 1.5; max-width: 26ch; text-wrap: balance; }
:lang(en) .bn-statement { line-height: 1.2; letter-spacing: -.03em; font-weight: 600; max-width: 24ch; }
.bn-statement .sw { color: var(--bn-ink); opacity: .22; transition: opacity .5s; }
.bn-statement .sw.is-lit { opacity: 1; }
html:not(.js) .bn-statement .sw { opacity: 1; }
.bn-paras { display: grid; gap: 1.1rem; max-width: 64ch; color: var(--bn-ink-2); font-size: clamp(1.02rem, 1rem + .3vw, 1.2rem); }
.bn-vm { grid-template-columns: 1fr 1fr; }
.bn-vmcard { position: relative; padding: clamp(28px, 3vw, 48px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); overflow: hidden; isolation: isolate; display: grid; gap: 1rem; align-content: start; }
.bn-vmcard--accent { background: var(--bn-accent); color: var(--bn-accent-ink); border-color: transparent; }
.bn-vmcard--accent .bn-eyebrow { color: var(--bn-accent-ink); }
.bn-vmcard--accent .bn-diamond { background: var(--bn-accent-ink); }
.bn-vmcard__big { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.4rem, 1rem + 1.6vw, 2.2rem); line-height: 1.5; }
:lang(en) .bn-vmcard__big { line-height: 1.25; letter-spacing: -.02em; }
.bn-vmcard__note { opacity: .75; font-size: .98rem; }
@media (max-width: 860px) { .bn-vm { grid-template-columns: 1fr; } }

/* ================= WHY / BENTO ================= */
.bn-bento { grid-template-columns: repeat(6, 1fr); grid-auto-rows: minmax(250px, auto); }
.bn-bento__item { position: relative; overflow: hidden; padding: clamp(26px, 3vw, 44px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; isolation: isolate; transition: border-color .4s, transform .6s var(--bn-ease); transform-style: preserve-3d; }
.bn-bento__item:nth-child(1) { grid-column: span 3; grid-row: span 2; background: linear-gradient(160deg, var(--bn-surface-2), var(--bn-surface)); }
.bn-bento__item:nth-child(2) { grid-column: span 3; }
.bn-bento__item:nth-child(3) { grid-column: span 3; background: var(--bn-accent); color: var(--bn-accent-ink); border-color: transparent; }
.bn-bento__item:nth-child(3) .bn-bento__no { color: var(--bn-accent-ink); opacity: .35; }
.bn-bento__item:nth-child(3) p { color: color-mix(in srgb, var(--bn-accent-ink) 80%, transparent); }
.bn-bento__item:nth-child(4) { grid-column: span 6; flex-direction: row; align-items: center; }
.bn-bento__no { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(3.4rem, 2.4rem + 5vw, 8rem); line-height: .9; color: var(--bn-accent); opacity: .9; direction: ltr; align-self: flex-start; }
.bn-bento__item:nth-child(1) .bn-bento__no { font-size: clamp(6rem, 4rem + 9vw, 14rem); }
.bn-bento__item h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.3rem, 1.05rem + 1vw, 2rem); line-height: 1.35; margin-block-end: .5rem; }
.bn-bento__item p { color: var(--bn-ink-2); max-width: 44ch; }
.bn-bento__item:hover { border-color: color-mix(in srgb, var(--bn-accent) 55%, transparent); }
@media (max-width: 860px) { .bn-bento { grid-template-columns: 1fr; } .bn-bento__item:nth-child(n) { grid-column: auto; grid-row: auto; } .bn-bento__item:nth-child(4) { flex-direction: column; align-items: flex-start; } }

/* ================= METHODOLOGY (sticky stack) ================= */
.bn-method { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.bn-method__intro { position: sticky; inset-block-start: calc(var(--bn-header) + 40px); display: grid; gap: 1.2rem; }
.bn-rail { position: relative; display: grid; gap: .9rem; margin-block-start: 1.6rem; padding-inline-start: 26px; }
.bn-rail::before { content: ""; position: absolute; inset-block: 8px; inset-inline-start: 6px; width: 2px; background: var(--bn-line-2); }
.bn-rail::after { content: ""; position: absolute; inset-block-start: 8px; inset-inline-start: 6px; width: 2px; height: calc((100% - 16px) * var(--rail, 0)); background: var(--bn-accent); transition: height .5s var(--bn-ease); box-shadow: 0 0 14px var(--bn-glow); }
.bn-rail span { position: relative; color: var(--bn-ink-3); font-family: var(--bn-font-head); font-weight: 600; transition: color .4s; }
.bn-rail span::before { content: ""; position: absolute; inset-inline-start: -26px; inset-block-start: .6em; width: 14px; height: 14px; margin-top: -3px; background: var(--bn-bg); border: 2px solid var(--bn-line-2); transform: rotate(45deg); border-radius: 2px; transition: background-color .4s, border-color .4s; }
.bn-rail span.is-on { color: var(--bn-ink); }
.bn-rail span.is-on::before { background: var(--bn-accent); border-color: var(--bn-accent); }
.bn-phases { display: grid; gap: 28px; }
.bn-phase { position: sticky; inset-block-start: calc(var(--bn-header) + 30px + var(--k, 0) * 22px); padding: clamp(28px, 3.4vw, 52px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); box-shadow: var(--bn-shadow); display: grid; gap: 1.3rem; transition: transform .6s var(--bn-ease), opacity .6s, filter .6s; transform-origin: 50% 0; }
.bn-phase:nth-child(4) { background: var(--bn-accent); color: var(--bn-accent-ink); border-color: transparent; }
.bn-phase:nth-child(4) .bn-phase__tag, .bn-phase:nth-child(4) li { color: var(--bn-accent-ink); }
.bn-phase:nth-child(4) li { border-color: color-mix(in srgb, var(--bn-accent-ink) 22%, transparent); }
.bn-phase:nth-child(4) li::before { background: var(--bn-accent-ink); }
.bn-phase.is-past { transform: scale(.955); opacity: .55; filter: saturate(.7); }
.bn-phase__head { display: flex; align-items: baseline; gap: 1.2rem; }
.bn-phase__no { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.6rem, 2rem + 2.6vw, 4.6rem); line-height: 1; color: var(--bn-accent); direction: ltr; }
.bn-phase:nth-child(4) .bn-phase__no { color: var(--bn-accent-ink); opacity: .45; }
.bn-phase h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.5rem); }
.bn-phase__tag { color: var(--bn-ink-2); font-size: clamp(1.05rem, 1rem + .3vw, 1.2rem); font-weight: 500; }
.bn-phase ul { display: grid; }
.bn-phase li { position: relative; padding: .85rem 0 .85rem 1.6rem; padding-inline: 1.6rem 0; border-top: 1px solid var(--bn-line); color: var(--bn-ink-2); }
.bn-phase li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 1.45em; width: 8px; height: 8px; background: var(--bn-accent); transform: rotate(45deg); border-radius: 1px; }
@media (max-width: 980px) { .bn-method { grid-template-columns: 1fr; } .bn-method__intro { position: static; } .bn-rail { display: none; } }

/* ================= SERVICES (accordion packs) ================= */
.bn-packs { display: flex; gap: 14px; min-height: 560px; }
.bn-pack { position: relative; flex: 1 1 0; min-width: 0; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; gap: 1.6rem; padding: clamp(24px, 2.6vw, 40px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); cursor: pointer; transition: flex-grow .9s var(--bn-ease), background-color .5s, border-color .5s; isolation: isolate; }
.bn-pack::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; background: radial-gradient(520px circle at 80% 0%, var(--bn-glow), transparent 65%); transition: opacity .6s; }
.bn-pack.is-active { flex-grow: 3.2; border-color: color-mix(in srgb, var(--bn-accent) 60%, transparent); background: var(--bn-surface-2); cursor: default; }
.bn-pack.is-active::before { opacity: 1; }
.bn-pack__letter { font-family: var(--bn-font-head); font-weight: 800; line-height: .85; font-size: clamp(5rem, 3rem + 8vw, 11rem); color: color-mix(in srgb, var(--bn-accent) 30%, transparent); direction: ltr; align-self: flex-start; transition: color .6s, transform .8s var(--bn-ease); }
.bn-pack.is-active .bn-pack__letter { color: var(--bn-accent); transform: scale(.82); transform-origin: left top; }
[dir="rtl"] .bn-pack.is-active .bn-pack__letter { transform-origin: right top; }
.bn-pack__body { display: grid; gap: 1rem; }
.bn-pack h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.15rem, 1rem + .7vw, 1.65rem); line-height: 1.4; }
.bn-pack__more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .8s var(--bn-ease); }
.bn-pack.is-active .bn-pack__more { grid-template-rows: 1fr; }
.bn-pack__more > div { overflow: hidden; display: grid; gap: 1.2rem; opacity: 0; transition: opacity .5s; }
.bn-pack.is-active .bn-pack__more > div { opacity: 1; transition-delay: .25s; }
.bn-pack ul { display: grid; gap: .5rem; }
.bn-pack li { position: relative; padding-inline-start: 1.5rem; color: var(--bn-ink-2); }
.bn-pack li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .78em; width: 8px; height: 8px; background: var(--bn-accent); transform: rotate(45deg); border-radius: 1px; }
@media (max-width: 980px) {
	.bn-packs { flex-direction: column; min-height: 0; }
	.bn-pack { flex: none; }
	.bn-pack__letter, .bn-pack.is-active .bn-pack__letter { font-size: 4.4rem; transform: none; }
	.bn-pack__more { grid-template-rows: 1fr; }
	.bn-pack__more > div { opacity: 1; }
}
/* services page: row layout */
.bn-rows { display: grid; gap: 18px; }
.bn-row { position: relative; display: grid; grid-template-columns: minmax(0, .5fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: clamp(20px, 4vw, 64px); align-items: start; padding: clamp(28px, 3.4vw, 52px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); overflow: hidden; isolation: isolate; }
.bn-row .bn-pack__letter { font-size: clamp(5rem, 3rem + 6vw, 9rem); color: var(--bn-accent); -webkit-text-stroke: 0; }
.bn-row h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2.2rem); line-height: 1.35; }
.bn-row ul { display: grid; gap: .7rem; }
.bn-row li { position: relative; padding: .8rem 0 .8rem 0; padding-inline-start: 1.6rem; border-bottom: 1px solid var(--bn-line); color: var(--bn-ink-2); }
.bn-row li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 1.45em; width: 8px; height: 8px; background: var(--bn-accent); transform: rotate(45deg); border-radius: 1px; }
.bn-row .bn-link { margin-block-start: 1.2rem; }
@media (max-width: 900px) { .bn-row { grid-template-columns: 1fr; } }

/* ================= PRESENCE / MAP ================= */
.bn-presence { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: center; }
.bn-map { width: 100%; height: auto; overflow: visible; }
.bn-map .dots { fill: none; stroke: var(--bn-ink-3); stroke-width: 6; stroke-linecap: round; opacity: .45; }
.bn-map .arc { fill: none; stroke: var(--bn-accent); stroke-width: 2; stroke-dasharray: 6 8; opacity: .8; }
.bn-map .arc.is-hot { stroke-width: 3; stroke-dasharray: none; opacity: 1; filter: drop-shadow(0 0 8px var(--bn-accent)); }
.bn-map .node { cursor: pointer; }
.bn-map .node circle.core { fill: var(--bn-accent); }
.bn-map .node circle.ring { fill: none; stroke: var(--bn-accent); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: bn-ping 2.6s ease-out infinite; }
.bn-map .node.is-hot circle.core { filter: drop-shadow(0 0 10px var(--bn-accent)); }
.bn-map .node text { font-family: var(--bn-font-head); font-size: 22px; font-weight: 700; fill: var(--bn-ink); paint-order: stroke; stroke: var(--bn-bg); stroke-width: 6px; stroke-linejoin: round; }
@keyframes bn-ping { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }
.bn-offices { display: grid; gap: 10px; }
.bn-office { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.3rem; border-radius: var(--bn-radius-sm); border: 1px solid var(--bn-line); background: var(--bn-surface); transition: border-color .4s, background-color .4s, transform .5s var(--bn-ease); cursor: pointer; }
.bn-office:hover, .bn-office.is-hot { border-color: var(--bn-accent); background: var(--bn-surface-2); transform: translateX(6px); }
[dir="rtl"] .bn-office:hover, [dir="rtl"] .bn-office.is-hot { transform: translateX(-6px); }
.bn-office b { font-family: var(--bn-font-head); font-size: 1.25rem; }
.bn-office small { display: block; color: var(--bn-ink-3); line-height: 1.4; }
.bn-office .bn-badge { margin-inline-start: auto; }
.bn-badge { display: inline-block; padding: .2rem .7rem; border-radius: 999px; background: var(--bn-accent); color: var(--bn-accent-ink); font-size: .75rem; font-weight: 700; font-family: var(--bn-font-head); }
@media (max-width: 900px) { .bn-presence { grid-template-columns: 1fr; } }

/* ================= SECTORS INDEX ================= */
.bn-index { border-top: 1px solid var(--bn-line-2); }
.bn-index__row { position: relative; display: grid; grid-template-columns: 4.2rem 1fr auto; align-items: start; gap: 1rem; padding-block: clamp(18px, 2.4vw, 30px); border-bottom: 1px solid var(--bn-line); cursor: pointer; transition: padding .6s var(--bn-ease); }
.bn-index__row::before { content: ""; position: absolute; inset-block: 0; inset-inline: -1.5rem; z-index: -1; background: linear-gradient(90deg, var(--bn-glow), transparent); opacity: 0; transition: opacity .5s; }
[dir="rtl"] .bn-index__row::before { background: linear-gradient(270deg, var(--bn-glow), transparent); }
.bn-index__no { font-family: var(--bn-font-head); font-weight: 700; color: var(--bn-ink-3); padding-block-start: .5em; direction: ltr; transition: color .4s; }
.bn-index__title { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.4rem, 1rem + 1.8vw, 2.6rem); line-height: 1.3; transition: transform .6s var(--bn-ease), color .4s; }
:lang(en) .bn-index__title { letter-spacing: -.02em; font-weight: 600; }
.bn-index__desc { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--bn-ease); }
.bn-index__desc > p { overflow: hidden; color: var(--bn-ink-2); max-width: 56ch; }
.bn-index__row.is-open .bn-index__desc, .bn-index__row:hover .bn-index__desc, .bn-index__row:focus-visible .bn-index__desc { grid-template-rows: 1fr; }
.bn-index__row.is-open .bn-index__desc > p, .bn-index__row:hover .bn-index__desc > p { padding-block-start: .6rem; }
.bn-index__row:hover::before, .bn-index__row.is-open::before { opacity: 1; }
.bn-index__row:hover .bn-index__title, .bn-index__row.is-open .bn-index__title { color: var(--bn-accent-text); transform: translateX(10px); }
[dir="rtl"] .bn-index__row:hover .bn-index__title, [dir="rtl"] .bn-index__row.is-open .bn-index__title { transform: translateX(-10px); }
.bn-index__row:hover .bn-index__no, .bn-index__row.is-open .bn-index__no { color: var(--bn-accent-text); }
.bn-index__mark { padding-block-start: .9em; transform: scale(0) rotate(0); transition: transform .6s var(--bn-ease); }
.bn-index__row:hover .bn-index__mark, .bn-index__row.is-open .bn-index__mark { transform: scale(1.6) rotate(45deg); }
.bn-pull { margin-block-start: clamp(40px, 6vw, 80px); padding-inline-start: 1.6rem; border-inline-start: 4px solid var(--bn-accent); font-family: var(--bn-font-head); font-weight: 700; font-size: clamp(1.3rem, 1rem + 1.4vw, 2.1rem); line-height: 1.5; max-width: 30ch; }

/* ================= WORK ================= */
.bn-keyresult { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: clamp(20px, 4vw, 64px); padding: clamp(28px, 4vw, 64px); border-radius: var(--bn-radius); background: var(--bn-accent); color: var(--bn-accent-ink); overflow: hidden; position: relative; isolation: isolate; }
.bn-keyresult::after { content: ""; position: absolute; inset-inline-end: -10%; inset-block-start: -40%; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .4), transparent); z-index: -1; }
.bn-keyresult .bn-eyebrow { color: var(--bn-accent-ink); }
.bn-keyresult .bn-diamond { background: var(--bn-accent-ink); }
.bn-keyresult__n { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(5rem, 3rem + 11vw, 13rem); line-height: .9; direction: ltr; display: flex; align-items: baseline; }
.bn-keyresult__n sup { font-size: .5em; top: 0; vertical-align: baseline; }
.bn-keyresult p { font-family: var(--bn-font-head); font-weight: 700; font-size: clamp(1.15rem, 1rem + .9vw, 1.8rem); line-height: 1.55; max-width: 36ch; margin-block-start: .8rem; }
@media (max-width: 760px) { .bn-keyresult { grid-template-columns: 1fr; } }
.bn-carousel { position: relative; margin-block-start: clamp(28px, 4vw, 56px); }
.bn-carousel__track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-block: 6px 14px; margin-inline: calc(var(--bn-gutter) * -1); padding-inline: var(--bn-gutter); cursor: grab; }
.bn-carousel__track::-webkit-scrollbar { display: none; }
.bn-carousel__track.is-drag { cursor: grabbing; scroll-snap-type: none; }
.bn-hl { flex: none; width: min(380px, 82vw); min-height: 280px; scroll-snap-align: start; padding: clamp(24px, 2.6vw, 36px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); display: flex; flex-direction: column; justify-content: space-between; gap: 1.4rem; position: relative; overflow: hidden; isolation: isolate; user-select: none; }
.bn-hl__tag { align-self: flex-start; padding: .25rem .8rem; border-radius: 999px; border: 1px solid var(--bn-line-2); font-size: .78rem; font-weight: 700; color: var(--bn-accent-text); font-family: var(--bn-font-head); }
.bn-hl__n { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.6rem, 2rem + 2vw, 4rem); line-height: 1; color: var(--bn-accent); direction: ltr; }
.bn-hl p { color: var(--bn-ink); font-weight: 500; line-height: 1.7; }
.bn-carousel__ctrl { display: flex; gap: .6rem; justify-content: flex-end; margin-block-start: 1rem; }
.bn-carousel__ctrl button, .bn-quotes__ctrl button { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--bn-line-2); background: transparent; display: grid; place-items: center; transition: background-color .3s, border-color .3s, color .3s; }
.bn-carousel__ctrl button:hover, .bn-quotes__ctrl button:hover { background: var(--bn-accent); color: #121509; border-color: var(--bn-accent); }
.bn-carousel__ctrl button svg, .bn-quotes__ctrl button svg { transition: none; }
.bn-carousel__ctrl [data-prev] svg, .bn-quotes__ctrl [data-prev] svg { transform: scaleX(-1); }
[dir="rtl"] .bn-carousel__ctrl [data-prev] svg, [dir="rtl"] .bn-quotes__ctrl [data-prev] svg { transform: none; }
[dir="rtl"] .bn-carousel__ctrl [data-next] svg, [dir="rtl"] .bn-quotes__ctrl [data-next] svg { transform: scaleX(-1); }
.bn-tabs { display: flex; flex-wrap: wrap; gap: .6rem; margin-block-end: 28px; }
.bn-tab { padding: .7rem 1.3rem; border-radius: 999px; border: 1px solid var(--bn-line-2); background: transparent; font-family: var(--bn-font-head); font-weight: 700; font-size: .92rem; transition: background-color .3s, color .3s, border-color .3s; }
.bn-tab:hover { border-color: var(--bn-accent); }
.bn-tab[aria-selected="true"] { background: var(--bn-accent); color: var(--bn-accent-ink); border-color: var(--bn-accent); }
.bn-cases { grid-template-columns: repeat(3, 1fr); }
.bn-case { position: relative; padding: clamp(22px, 2.4vw, 32px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); display: grid; gap: .8rem; align-content: start; overflow: hidden; isolation: isolate; transition: border-color .4s, transform .6s var(--bn-ease), opacity .4s; }
.bn-case:hover { border-color: color-mix(in srgb, var(--bn-accent) 55%, transparent); transform: translateY(-4px); }
.bn-case[hidden] { display: none !important; }
.bn-case__pk { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.bn-case__l { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: color-mix(in srgb, var(--bn-accent) 18%, transparent); color: var(--bn-accent-text); font-family: var(--bn-font-head); font-weight: 800; }
.bn-case h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: 1.12rem; line-height: 1.5; }
.bn-case p { color: var(--bn-ink-2); font-size: .98rem; line-height: 1.75; }
@media (max-width: 980px) { .bn-cases { grid-template-columns: 1fr 1fr; } }
@media (max-width: 620px) { .bn-cases { grid-template-columns: 1fr; } }
.bn-partners { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--bn-line); border-inline-start: 1px solid var(--bn-line); }
.bn-partner { padding: clamp(18px, 2vw, 28px); border-bottom: 1px solid var(--bn-line); border-inline-end: 1px solid var(--bn-line); font-family: var(--bn-font-head); font-weight: 700; line-height: 1.5; color: var(--bn-ink-2); min-height: 108px; display: flex; align-items: center; transition: background-color .4s, color .4s; }
.bn-partner:hover { background: var(--bn-surface); color: var(--bn-ink); }
@media (max-width: 980px) { .bn-partners { grid-template-columns: repeat(2, 1fr); } }
.bn-partnerhead { display: grid; grid-template-columns: auto 1fr; gap: clamp(20px, 4vw, 60px); align-items: center; margin-block-end: 36px; }
.bn-partnerhead .n { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(4rem, 3rem + 7vw, 9rem); line-height: .9; color: var(--bn-accent); direction: ltr; }
@media (max-width: 720px) { .bn-partnerhead { grid-template-columns: 1fr; } }

/* ================= QUOTES ================= */
.bn-quotes { position: relative; }
.bn-quotes__stage { position: relative; display: grid; }
.bn-quote { grid-area: 1 / 1; display: grid; gap: 2rem; align-content: center; opacity: 0; transform: translateY(24px); visibility: hidden; transition: opacity .7s var(--bn-ease), transform .9s var(--bn-ease), visibility 0s .7s; }
.bn-quote.is-on { opacity: 1; transform: none; visibility: visible; transition-delay: 0s; }
html:not(.js) .bn-quote { grid-area: auto; opacity: 1; transform: none; visibility: visible; margin-block-end: 2rem; }
.bn-quote blockquote { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.6rem, 1rem + 3vw, 3.6rem); line-height: 1.5; max-width: 26ch; text-wrap: balance; }
:lang(en) .bn-quote blockquote { line-height: 1.2; letter-spacing: -.03em; font-weight: 600; }
.bn-quote blockquote::before { content: "\201C"; display: block; font-size: 2.2em; line-height: .6; color: var(--bn-accent); margin-block-end: .2em; }
[dir="rtl"] .bn-quote blockquote::before { content: "\201D"; }
.bn-quote figcaption { display: flex; align-items: center; gap: 1rem; }
.bn-quote figcaption b { display: block; font-family: var(--bn-font-head); }
.bn-quote figcaption span { color: var(--bn-ink-3); font-size: .95rem; }
.bn-quotes__ctrl { display: flex; align-items: center; gap: .6rem; margin-block-start: 2.2rem; }
.bn-quotes__dots { display: flex; gap: .5rem; margin-inline-end: 1rem; }
.bn-quotes__dots i { width: 10px; height: 10px; border: 2px solid var(--bn-line-2); transform: rotate(45deg); border-radius: 2px; transition: background-color .4s, border-color .4s, transform .4s; cursor: pointer; }
.bn-quotes__dots i.is-on { background: var(--bn-accent); border-color: var(--bn-accent); transform: rotate(45deg) scale(1.3); }

/* ================= TEAM ================= */
.bn-team { grid-template-columns: repeat(3, 1fr); }
.bn-member { position: relative; padding: clamp(26px, 3vw, 44px); border-radius: var(--bn-radius); background: var(--bn-surface); border: 1px solid var(--bn-line); display: grid; gap: 1.1rem; align-content: start; overflow: hidden; isolation: isolate; transition: border-color .4s, transform .6s var(--bn-ease); }
.bn-member:hover { border-color: color-mix(in srgb, var(--bn-accent) 55%, transparent); transform: translateY(-6px); }
.bn-mono { position: relative; width: 92px; height: 92px; display: grid; place-items: center; font-family: var(--bn-font-head); font-weight: 800; font-size: 1.9rem; color: var(--bn-accent-ink); margin-block-end: .6rem; }
.bn-mono::before { content: ""; position: absolute; inset: 8px; background: linear-gradient(135deg, var(--bn-lime-hi), var(--bn-accent) 45%, var(--bn-lime-lo)); transform: rotate(45deg); border-radius: 14px; transition: transform .8s var(--bn-ease); }
.bn-member:hover .bn-mono::before { transform: rotate(135deg); }
.bn-mono span { position: relative; }
.bn-member h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: 1.35rem; line-height: 1.4; }
.bn-member .role { color: var(--bn-accent-text); font-weight: 700; font-family: var(--bn-font-head); font-size: .95rem; }
.bn-member p { color: var(--bn-ink-2); font-size: .98rem; }
@media (max-width: 980px) { .bn-team { grid-template-columns: 1fr; } }

/* ================= CTA ================= */
.bn-cta { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(90px, 13vw, 190px); text-align: center; border-top: 1px solid var(--bn-line); }
.bn-cta .bn-hero__bg .a1 { inset-inline-end: auto; inset-inline-start: 20%; inset-block-start: -30vmax; }
.bn-cta__inner { display: grid; gap: 2rem; justify-items: center; }
.bn-cta h2 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.4rem, 1.2rem + 6vw, 6.4rem); line-height: 1.2; max-width: 14ch; text-wrap: balance; }
:lang(en) .bn-cta h2 { font-weight: 700; letter-spacing: -.04em; line-height: 1.05; }
.bn-cta__row { display: flex; flex-wrap: wrap; gap: .9rem; justify-content: center; }

/* ================= CONTACT ================= */
.bn-contact { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.bn-ccards { display: grid; gap: 14px; }
.bn-ccard { display: flex; align-items: center; gap: 1.1rem; padding: 1.3rem 1.5rem; border-radius: var(--bn-radius-sm); background: var(--bn-surface); border: 1px solid var(--bn-line); transition: border-color .4s, transform .5s var(--bn-ease); }
a.bn-ccard:hover { border-color: var(--bn-accent); transform: translateY(-3px); }
.bn-ccard__ic { flex: none; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--bn-accent) 18%, transparent); color: var(--bn-accent-text); }
.bn-ccard small { display: block; color: var(--bn-ink-3); font-size: .85rem; line-height: 1.4; }
.bn-ccard b { font-family: var(--bn-font-head); font-weight: 700; direction: ltr; unicode-bidi: plaintext; word-break: break-word; }
.bn-formcard { padding: clamp(24px, 3.4vw, 48px); border-radius: var(--bn-radius); background: var(--bn-surface-2); border: 1px solid var(--bn-line); }
@media (max-width: 900px) { .bn-contact { grid-template-columns: 1fr; } }

/* utility */
.bn-more { margin-block-start: clamp(28px, 4vw, 48px); display: flex; }
.bn-404 { min-height: 80vh; display: grid; align-content: center; justify-items: center; gap: 1rem; text-align: center; padding: 120px 24px; }

/* values + contact helpers */
.bn-values { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .bn-values { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .bn-values { grid-template-columns: 1fr; } }
.bn-contact > *, .bn-formcard > * { margin: 0 !important; }
.bn-main { display: block; }
.bn-main > * { margin: 0 !important; }

/* isolate numerals so "300+" never renders as "+300" in RTL */
.bn-chip b, .bn-badge, .bn-hl__n, .bn-bento__no, .bn-keyresult__n, .bn-partnerhead .n { direction: ltr; unicode-bidi: isolate; }
.bn-field select:invalid { color: transparent; }
.bn-field select option { color: var(--bn-ink); background: var(--bn-surface); }


/* =====================================================================
   v2 layouts — less "cards", more editorial variety
   ===================================================================== */

/* ---- page hero (inner pages) ---- */
.bn-pagehero { padding-block: calc(var(--bn-header) + clamp(48px, 7vw, 96px)) clamp(110px, 12vw, 170px); }
.bn-pagehero__inner { display: grid; gap: clamp(1.6rem, 3vw, 2.6rem); }
.bn-pagehero__grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: end; }
.bn-pagehero__main { display: grid; gap: 1.1rem; }
.bn-pagehero h1 { font-size: clamp(2.2rem, 1rem + 4.6vw, 5rem); line-height: 1.2; max-width: 14ch; }
:lang(en) .bn-pagehero h1 { line-height: 1.04; max-width: 13ch; }
.bn-pagehero__lead { font-size: clamp(1rem, .96rem + .45vw, 1.2rem); padding-block-end: .4rem; border-inline-start: 3px solid var(--bn-accent); padding-inline-start: 1.2rem; }
.bn-hero__line { position: absolute; z-index: -1; inset: auto 0 0 0; width: 100%; height: clamp(70px, 9vw, 120px); pointer-events: none; }
.bn-hero__line path { stroke: var(--bn-accent); stroke-width: 7; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; filter: drop-shadow(0 0 14px var(--bn-glow)); opacity: .9; }
.js .is-in .bn-hero__line path, html:not(.js) .bn-hero__line path { stroke-dashoffset: 0; transition: stroke-dashoffset 2.2s var(--bn-ease) .35s; }
@media (max-width: 860px) { .bn-pagehero__grid { grid-template-columns: 1fr; } .bn-pagehero { padding-block-end: 120px; } }

/* ---- stats: typographic row, no boxes ---- */
.bn-statrow { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: clamp(24px, 4vw, 64px); }
.bn-sstat { padding-block: clamp(26px, 3vw, 44px); border-top: 1px solid var(--bn-line-2); transition: border-color .4s; }
.bn-sstat:hover { border-top-color: var(--bn-accent); }
.bn-sstat__v { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(3rem, 2rem + 4.4vw, 6.4rem); line-height: 1.05; display: flex; align-items: baseline; gap: .08em; direction: ltr; justify-content: flex-start; color: var(--bn-ink); transition: color .4s; }
[dir="rtl"] .bn-sstat__v { justify-content: flex-end; }
.bn-sstat:hover .bn-sstat__v { color: var(--bn-accent-text); }
.bn-sstat__v sup { font-size: .45em; color: var(--bn-accent); top: 0; vertical-align: baseline; }
.bn-sstat__l { margin-block-start: .6rem; font-family: var(--bn-font-head); font-weight: 700; font-size: 1.15rem; }
.bn-sstat__t { margin-block-start: .35rem; color: var(--bn-ink-2); font-size: .95rem; line-height: 1.75; max-width: 34ch; }
@media (max-width: 860px) { .bn-statrow { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .bn-statrow { grid-template-columns: 1fr; } }

/* ---- about: statement, lime vision band, mission as editorial row ---- */
.bn-intro2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); }
.bn-vision { position: relative; padding: clamp(32px, 5vw, 80px); border-radius: var(--bn-radius); background: var(--bn-accent); color: var(--bn-accent-ink); display: grid; gap: 1.4rem; overflow: hidden; isolation: isolate; }
.bn-vision::after { content: ""; position: absolute; inset-inline-end: -8%; inset-block-end: -50%; width: 55%; aspect-ratio: 1; border: 2px solid rgba(18, 21, 9, .18); transform: rotate(45deg); z-index: -1; }
.bn-vision .bn-eyebrow { color: var(--bn-accent-ink); }
.bn-vision .bn-diamond { background: var(--bn-accent-ink); }
.bn-vision__big { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.7rem, 1rem + 3vw, 3.6rem); line-height: 1.4; max-width: 24ch; }
:lang(en) .bn-vision__big { line-height: 1.15; letter-spacing: -.03em; font-weight: 700; }
.bn-vision__note { opacity: .75; max-width: 52ch; }
.bn-mission { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); padding-block-start: clamp(28px, 3vw, 44px); border-top: 1px solid var(--bn-line-2); }
.bn-mission__big { font-family: var(--bn-font-head); font-weight: 700; font-size: clamp(1.25rem, 1rem + 1.3vw, 2rem); line-height: 1.6; }
:lang(en) .bn-mission__big { line-height: 1.3; letter-spacing: -.02em; }
.bn-mission__note { margin-block-start: .9rem; color: var(--bn-ink-2); }
@media (max-width: 860px) { .bn-intro2, .bn-mission { grid-template-columns: 1fr; } }

/* ---- values: open columns ---- */
.bn-vgrid { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: clamp(20px, 3vw, 48px); }
.bn-vcol { padding-block-start: 1.4rem; border-top: 2px solid var(--bn-line-2); display: grid; gap: .8rem; align-content: start; transition: border-color .4s; }
.bn-vcol:hover { border-top-color: var(--bn-accent); }
.bn-vcol__no { font-family: var(--bn-font-head); font-weight: 800; font-size: 1rem; color: var(--bn-accent-text); direction: ltr; justify-self: start; }
.bn-vcol h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.25rem, 1.05rem + .8vw, 1.7rem); line-height: 1.4; }
.bn-vcol p { color: var(--bn-ink-2); }
@media (max-width: 980px) { .bn-vgrid { grid-template-columns: 1fr 1fr; row-gap: 40px; } }
@media (max-width: 560px) { .bn-vgrid { grid-template-columns: 1fr; } }

/* ---- why: sticky intro + numbered editorial list ---- */
.bn-why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.bn-why__head { position: sticky; inset-block-start: calc(var(--bn-header) + 40px); }
.bn-why__head .bn-sechead { margin: 0; }
.bn-whyrow { display: grid; grid-template-columns: minmax(70px, 130px) 1fr; column-gap: clamp(16px, 3vw, 40px); row-gap: .5rem; padding-block: clamp(26px, 3vw, 44px); border-top: 1px solid var(--bn-line-2); transition: border-color .4s; }
.bn-whyrow:last-child { border-bottom: 1px solid var(--bn-line-2); }
.bn-whyrow:hover { border-top-color: var(--bn-accent); }
.bn-whyrow__no { grid-row: span 2; font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(2.6rem, 2rem + 3vw, 4.6rem); line-height: 1; color: color-mix(in srgb, var(--bn-accent) 32%, transparent); direction: ltr; transition: color .5s; }
.bn-whyrow:hover .bn-whyrow__no { color: var(--bn-accent); }
.bn-whyrow h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.3rem, 1.05rem + 1vw, 2rem); line-height: 1.4; }
.bn-whyrow p { color: var(--bn-ink-2); max-width: 46ch; }
@media (max-width: 900px) { .bn-why { grid-template-columns: 1fr; } .bn-why__head { position: static; } }

/* ---- highlights strip: open, top-ruled ---- */
.bn-hl { background: transparent; border: 0; border-top: 2px solid var(--bn-line-2); border-radius: 0; padding: 1.4rem .4rem 1rem; min-height: 240px; width: min(330px, 78vw); transition: border-color .4s; }
.bn-hl:hover { border-top-color: var(--bn-accent); }
.bn-hl p { font-weight: 500; color: var(--bn-ink); }
.bn-hl__n { font-size: clamp(3rem, 2.2rem + 3vw, 5rem); }

/* ---- case list: table-like rows ---- */
.bn-caselist { border-top: 1px solid var(--bn-line-2); }
.bn-caserow { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(14px, 3vw, 40px); align-items: start; padding-block: clamp(18px, 2vw, 28px); border-bottom: 1px solid var(--bn-line); transition: background-color .4s; }
.bn-caserow[hidden] { display: none !important; }
.bn-caserow:hover { background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bn-accent) 9%, transparent), transparent); }
.bn-caserow__l { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--bn-line-2); color: var(--bn-accent-text); font-family: var(--bn-font-head); font-weight: 800; font-size: .9rem; }
.bn-caserow h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: 1.12rem; line-height: 1.55; display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.bn-caserow p { color: var(--bn-ink-2); }
@media (max-width: 760px) { .bn-caserow { grid-template-columns: 2.6rem 1fr; } .bn-caserow p { grid-column: 2; } }

/* ---- team roster ---- */
.bn-roster { border-top: 1px solid var(--bn-line-2); }
.bn-person { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.4fr); gap: clamp(16px, 4vw, 56px); align-items: center; padding-block: clamp(22px, 3vw, 38px); border-bottom: 1px solid var(--bn-line); }
.bn-person .bn-mono { margin: 0; width: 84px; height: 84px; }
.bn-person:hover .bn-mono::before { transform: rotate(135deg); }
.bn-person h3 { font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.25rem, 1.05rem + 1vw, 1.9rem); line-height: 1.4; }
.bn-person .role { color: var(--bn-accent-text); font-weight: 700; font-family: var(--bn-font-head); font-size: .95rem; margin-block-start: .3rem; }
.bn-person__bio { color: var(--bn-ink-2); }
@media (max-width: 820px) { .bn-person { grid-template-columns: auto 1fr; } .bn-person__bio { grid-column: 1 / -1; } }

/* ---- flatter offices + contact lines ---- */
.bn-offices { gap: 0; border-top: 1px solid var(--bn-line-2); }
.bn-office { border: 0; border-bottom: 1px solid var(--bn-line); border-radius: 0; background: transparent; padding: 1.2rem .2rem; }
.bn-office:hover, .bn-office.is-hot { background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bn-accent) 9%, transparent), transparent); border-color: var(--bn-line); }
.bn-ccards { gap: 0; border-top: 1px solid var(--bn-line-2); }
.bn-ccard { border: 0; border-bottom: 1px solid var(--bn-line); border-radius: 0; background: transparent; padding: 1.3rem .2rem; }
a.bn-ccard:hover { transform: none; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bn-accent) 9%, transparent), transparent); }

/* ---- footer legal links ---- */
.bn-footer__legal { display: inline-flex; gap: 1.4rem; margin-inline: auto 1.2rem; }
.bn-footer__legal a { color: var(--bn-ink-2); transition: color .3s; }
.bn-footer__legal a:hover { color: var(--bn-accent-text); }
.bn-footer__bottom { gap: 1rem; flex-wrap: wrap; }

/* ---- legal pages ---- */
.bn-legal { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.bn-legal__toc { position: sticky; inset-block-start: calc(var(--bn-header) + 30px); }
.bn-legal__toc ol { counter-reset: t; display: grid; gap: .1rem; border-inline-start: 1px solid var(--bn-line-2); }
.bn-legal__toc li { counter-increment: t; }
.bn-legal__toc a { display: block; padding: .5rem 1rem; color: var(--bn-ink-2); font-size: .92rem; line-height: 1.5; border-inline-start: 2px solid transparent; margin-inline-start: -1px; transition: color .3s, border-color .3s; }
.bn-legal__toc a::before { content: counter(t, decimal-leading-zero) "  "; color: var(--bn-ink-3); font-variant-numeric: tabular-nums; }
.bn-legal__toc a:hover, .bn-legal__toc a.is-on { color: var(--bn-ink); border-inline-start-color: var(--bn-accent); }
.bn-legal__body { max-width: 74ch; }
.bn-legal__upd { display: inline-block; padding: .35rem 1rem; border: 1px solid var(--bn-line-2); border-radius: 999px; color: var(--bn-ink-3); font-size: .85rem; margin-block-end: 2.2rem; }
.bn-legal__sec { padding-block: 1.6rem 1rem; border-top: 1px solid var(--bn-line); scroll-margin-top: calc(var(--bn-header) + 24px); }
.bn-legal__sec:first-of-type { border-top: 0; padding-block-start: 0; }
.bn-legal__sec h2 { display: flex; align-items: baseline; gap: 1rem; font-family: var(--bn-font-head); font-weight: 800; font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.4; margin-block-end: 1rem; }
.bn-legal__n { color: var(--bn-accent-text); font-size: .85em; font-weight: 700; direction: ltr; }
.bn-legal__sec p { color: var(--bn-ink-2); margin-block-end: .9rem; }
.bn-legal__sec ul { display: grid; gap: .6rem; margin-block: .4rem 1rem; }
.bn-legal__sec li { position: relative; padding-inline-start: 1.5rem; color: var(--bn-ink-2); }
.bn-legal__sec li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .8em; width: 7px; height: 7px; background: var(--bn-accent); transform: rotate(45deg); border-radius: 1px; }
.bn-legal__sec a:not(.bn-link) { color: var(--bn-accent-text); text-decoration: underline; text-underline-offset: 3px; }
.bn-legal__other { margin-block-start: 2.4rem; padding-block-start: 1.6rem; border-top: 1px solid var(--bn-line-2); }
@media (max-width: 900px) { .bn-legal { grid-template-columns: 1fr; } .bn-legal__toc { position: static; } .bn-legal__toc ol { border-inline-start: 0; grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .bn-legal__toc ol { grid-template-columns: 1fr; } }

.bn-sstat__v, .bn-keyresult__n, .bn-hl__n, .bn-partnerhead .n, .bn-bento__no, .bn-phase__no { letter-spacing: -.03em; }

/* ===== TYPE SCALE v3 — smaller type (~18%). To revert: delete everything from this line to the end of the file. ===== */
html { font-size: 93.75%; }
.bn-hero__title { font-size: clamp(2rem, .8rem + 4.6vw, 4.8rem); }
:lang(en) .bn-hero__title { font-size: clamp(2.1rem, .8rem + 5.4vw, 5.4rem); }
.bn-pagehero h1 { font-size: clamp(1.9rem, .8rem + 3.5vw, 3.8rem); }
.bn-h2 { font-size: clamp(1.7rem, 1rem + 2.5vw, 3.1rem); }
.bn-statement { font-size: clamp(1.45rem, .9rem + 2.3vw, 2.8rem); }
.bn-vision__big { font-size: clamp(1.4rem, .9rem + 2.1vw, 2.7rem); }
.bn-mission__big { font-size: clamp(1.1rem, .9rem + 1vw, 1.55rem); }
.bn-sstat__v { font-size: clamp(2.4rem, 1.6rem + 3.2vw, 4.7rem); }
.bn-keyresult__n { font-size: clamp(3.8rem, 2.4rem + 8vw, 9.5rem); }
.bn-keyresult p { font-size: clamp(1rem, .9rem + .7vw, 1.4rem); }
.bn-whyrow__no { font-size: clamp(2.1rem, 1.6rem + 2.2vw, 3.5rem); }
.bn-whyrow h3 { font-size: clamp(1.15rem, .95rem + .7vw, 1.55rem); }
.bn-phase__no { font-size: clamp(2.1rem, 1.6rem + 1.9vw, 3.5rem); }
.bn-phase h3 { font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.95rem); }
.bn-index__title { font-size: clamp(1.2rem, .9rem + 1.3vw, 2rem); }
.bn-quote blockquote { font-size: clamp(1.35rem, .9rem + 2.1vw, 2.7rem); }
.bn-cta h2 { font-size: clamp(2rem, 1rem + 4.4vw, 4.8rem); }
.bn-pack__letter { font-size: clamp(4rem, 2.4rem + 6vw, 8.2rem); }
.bn-row .bn-pack__letter { font-size: clamp(4rem, 2.4rem + 4.5vw, 6.8rem); }
.bn-pack h3 { font-size: clamp(1rem, .9rem + .5vw, 1.35rem); }
.bn-row h3 { font-size: clamp(1.2rem, 1rem + .9vw, 1.7rem); }
.bn-hl__n { font-size: clamp(2.4rem, 1.8rem + 2.3vw, 3.8rem); }
.bn-partnerhead .n { font-size: clamp(3.2rem, 2.4rem + 5.2vw, 6.9rem); }
.bn-vcol h3 { font-size: clamp(1.1rem, .95rem + .6vw, 1.4rem); }
.bn-person h3 { font-size: clamp(1.1rem, .95rem + .7vw, 1.5rem); }
.bn-caserow h3 { font-size: 1rem; }
.bn-legal__sec h2 { font-size: clamp(1.2rem, 1rem + .7vw, 1.5rem); }
.bn-lead { font-size: clamp(1rem, .95rem + .35vw, 1.15rem); }
.bn-hero__lead { font-size: clamp(1rem, .95rem + .45vw, 1.25rem); }
.bn-pull { font-size: clamp(1.15rem, .95rem + 1vw, 1.65rem); }
.bn-office b { font-size: 1.1rem; }
