/* Black Bag Security signature visual system v6.
 * Final composition and interaction authority for the redesigned English site.
 * Palette remains defined by bbs-theme-v4.css.
 */

/* ---------- shared scale and rhythm ---------- */
body.home-v2 {
  --bbs-wrap: 1360px;
  --bbs-gutter: 36px;
  --bbs-radius: 2px;
  --bbs-ease: cubic-bezier(.16,.84,.24,1);
  --bbs-shadow: 0 24px 60px rgba(0,0,0,.34);
  font-size: 16px;
}

body.home-v2 .wrap {
  width: min(var(--bbs-wrap), calc(100% - (var(--bbs-gutter) * 2)));
  max-width: none;
  margin-inline: auto;
}

body.home-v2 .site-main { overflow: clip; }

.home-v2 .site-header--v2 {
  position: relative;
  z-index: 30;
  min-height: 84px;
  backdrop-filter: blur(14px);
}

.home-v2 .header-v2__inner {
  min-height: 84px;
  gap: 44px;
}

.home-v2 .brand-v2__mark { width: 48px; height: 48px; }
.home-v2 .brand-v2__name { font-size: 1rem; letter-spacing: .035em; }
.home-v2 .brand-v2__security { font-size: .62rem; letter-spacing: .48em; }

.home-v2 .nav-v2 { gap: 30px; }
.home-v2 .nav-v2 a {
  position: relative;
  padding: 30px 0 27px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .105em;
  text-transform: uppercase;
}
.home-v2 .nav-v2 a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 19px;
  height: 2px;
  background: linear-gradient(90deg, var(--bbs-cyan), var(--bbs-lime));
  transform: scaleX(0);
  transform-origin: left;
  opacity: 0;
  transition: transform 220ms var(--bbs-ease), opacity 220ms ease;
}
.home-v2 .nav-v2 a:hover::after,
.home-v2 .nav-v2 a:focus-visible::after,
.home-v2 .nav-v2 a.is-active::after {
  transform: scaleX(1);
  opacity: .86;
}

.home-v2 .header-v2__motto {
  max-width: 190px;
  font-size: .62rem;
  line-height: 1.45;
  letter-spacing: .08em;
}

.home-v2 .footer-v2__inner {
  min-height: 92px;
  gap: 36px;
}
.home-v2 .footer-v2 nav { gap: 22px; }
.home-v2 .footer-v2 a { font-size: .67rem; letter-spacing: .07em; }

.home-v2 .section-title,
.services-v2-page .svc-section-title,
.method-v2-page .method-eyebrow,
.arsenal-v2-page .arsenal-project-kicker,
.supporting-v2-body .section__head > :first-child {
  letter-spacing: .08em;
}

.home-v2 .section-title {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 22px;
  margin-bottom: 30px;
  font-size: .86rem;
  font-weight: 800;
  text-transform: uppercase;
}
.home-v2 .section-title::after {
  content: "";
  height: 1px;
  background: linear-gradient(90deg, rgba(77,225,255,.42), rgba(148,163,184,.12) 62%, transparent);
}

/* ---------- buttons ---------- */
.home-v2 .home-btn {
  position: relative;
  min-height: 48px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
  overflow: hidden;
  transition: transform 220ms var(--bbs-ease), border-color 220ms ease, background 220ms ease, box-shadow 220ms ease;
}
.home-v2 .home-btn::after {
  content: "↗";
  font-size: .9rem;
  transition: transform 220ms var(--bbs-ease);
}
.home-v2 .home-btn--accent {
  background: linear-gradient(90deg, rgba(182,255,59,.88), rgba(182,255,59,.72));
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .home-v2 .home-btn:hover,
  .home-v2 .home-btn:focus-visible {
    transform: translateY(-4px);
    border-color: rgba(77,225,255,.56);
    box-shadow: 0 18px 38px rgba(0,0,0,.34), 0 0 0 1px rgba(77,225,255,.08);
  }
  .home-v2 .home-btn:hover::after,
  .home-v2 .home-btn:focus-visible::after { transform: translate(4px,-4px); }
}

/* ---------- homepage ---------- */
.home-v2-page > .home-v2-hero {
  min-height: 680px;
  padding: 96px 0 88px;
}
.home-v2-page > .home-v2-hero .home-v2-hero__grid {
  grid-template-columns: minmax(0,1.02fr) minmax(430px,.98fr);
  align-items: center;
  gap: 92px;
}
.home-v2-page > .home-v2-hero h1 {
  max-width: 850px;
  font-size: clamp(58px, 6.35vw, 96px);
  line-height: .91;
  letter-spacing: -.055em;
}
.home-v2-page > .home-v2-hero .home-v2-hero__eyebrow {
  margin-bottom: 26px;
  font-size: .78rem;
  letter-spacing: .06em;
}
.home-v2-page > .home-v2-hero .home-v2-hero__lead {
  max-width: 730px;
  margin-top: 26px;
  font-size: 1rem;
  line-height: 1.75;
}
.home-v2-page > .home-v2-hero .home-v2-hero__visual {
  transform: scale(1.08);
  transform-origin: center;
}

.home-v2-why { padding: 54px 0 58px; }
.home-v2-why__grid { gap: 0; }
.home-v2-why__item {
  min-height: 132px;
  padding: 26px 28px;
  gap: 20px;
  border-right: 1px solid rgba(148,163,184,.18);
  transition: background 220ms ease, transform 220ms var(--bbs-ease), border-color 220ms ease;
}
.home-v2-why__item:last-child { border-right: 0; }
.home-v2-why__item .icon-mask { width: 34px; height: 34px; }
.home-v2-why__item h3 { font-size: .9rem; letter-spacing: .01em; }
.home-v2-why__item p { font-size: .83rem; line-height: 1.62; }

.home-v2-services { padding: 78px 0 92px; }
.home-v2-services__grid {
  display: grid;
  grid-template-columns: repeat(12,minmax(0,1fr));
  gap: 18px;
}
.home-v2-service-card {
  position: relative;
  min-height: 260px;
  padding: 32px 30px 30px;
  overflow: hidden;
  grid-column: span 6;
  transition: transform 260ms var(--bbs-ease), border-color 220ms ease, box-shadow 260ms ease, background 220ms ease;
}
.home-v2-service-card:nth-child(1),
.home-v2-service-card:nth-child(4) { grid-column: span 7; }
.home-v2-service-card:nth-child(2),
.home-v2-service-card:nth-child(3) { grid-column: span 5; }
.home-v2-service-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 34%;
  height: 2px;
  background: linear-gradient(90deg,var(--bbs-cyan),var(--bbs-lime));
  transform: scaleX(.28);
  transform-origin: left;
  opacity: .72;
  transition: transform 260ms var(--bbs-ease), opacity 220ms ease;
}
.home-v2-service-card::after {
  content: "↗";
  position: absolute;
  right: 26px;
  bottom: 24px;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(182,255,59,.36);
  color: var(--bbs-lime);
  background: rgba(182,255,59,.06);
  transition: transform 260ms var(--bbs-ease), background 220ms ease;
}
.home-v2-service-card .icon-mask { width: 36px; height: 36px; margin-bottom: 26px; }
.home-v2-service-card h3 { font-size: 1.28rem; line-height: 1.02; }
.home-v2-service-card p { max-width: 520px; font-size: .9rem; line-height: 1.68; }

.home-v2-timeline { padding: 76px 0 86px; }
.home-v2-timeline__line {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 26px;
  padding-top: 28px;
}
.home-v2-timeline__line::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 10px;
  height: 1px;
  background: linear-gradient(90deg,var(--bbs-cyan),rgba(77,225,255,.18) 42%,rgba(182,255,59,.46));
}
.home-v2-timeline__item { position: relative; align-items: flex-start; gap: 18px; }
.home-v2-timeline__item::before {
  content: "";
  position: absolute;
  top: -22px;
  left: 16px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bbs-lime);
  box-shadow: 0 0 0 5px rgba(182,255,59,.08), 0 0 18px rgba(182,255,59,.35);
}
.home-v2-timeline__icon { width: 48px; height: 48px; flex: 0 0 48px; }
.home-v2-timeline__copy strong { font-size: .78rem; }
.home-v2-timeline__copy p { font-size: .78rem; line-height: 1.58; }

.home-v2-principal { padding: 46px 0 58px; }
.home-v2-principal__panel {
  grid-template-columns: 220px minmax(0,1fr) 350px;
  min-height: 310px;
  border-top: 2px solid rgba(182,255,59,.78);
  box-shadow: 0 30px 68px rgba(0,0,0,.34);
}
.home-v2-principal__bio { padding: 40px 44px; }
.home-v2-principal__bio h2 { font-size: 2rem; }
.home-v2-principal__bio p { font-size: .92rem; line-height: 1.72; }
.home-v2-principal__proof { padding: 34px 28px; }

.home-v2-commitments { padding: 26px 0 72px; }
.home-v2-commitments__grid { gap: 14px; }
.home-v2-commitment {
  min-height: 118px;
  padding: 24px 24px;
  transition: transform 240ms var(--bbs-ease), border-color 220ms ease, box-shadow 240ms ease;
}

/* ---------- shared interactive cards ---------- */
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .home-v2-why a.home-v2-why__item:hover,
  .home-v2-why a.home-v2-why__item:focus-visible { transform: translateY(-5px); background: rgba(77,225,255,.035); }

  .home-v2-service-card:hover,
  .home-v2-service-card:focus-visible,
  .svc-line-card:hover,
  .svc-line-card:focus-within,
  .svc-specialist-card:hover,
  .svc-model-card:hover,
  .service-detail-card:hover,
  .arsenal-card:hover,
  .arsenal-card:focus-within,
  .arsenal-project-block:hover,
  .arsenal-repo-link:hover,
  .supporting-v2-body .stack:hover,
  .supporting-v2-body .model-card:hover,
  .supporting-v2-body .contact__card:hover {
    transform: translateY(-9px) scale(1.012);
    border-color: rgba(77,225,255,.48);
    box-shadow: 0 30px 68px rgba(0,0,0,.42), 0 0 0 1px rgba(77,225,255,.06);
  }
  .home-v2-service-card:hover::before,
  .home-v2-service-card:focus-visible::before { transform: scaleX(1); opacity: 1; }
  .home-v2-service-card:hover::after,
  .home-v2-service-card:focus-visible::after { transform: translate(4px,-4px); background: rgba(182,255,59,.12); }

  .home-v2-commitment:hover,
  .home-v2-commitment:focus-visible { transform: translateY(-6px); border-color: rgba(77,225,255,.42); box-shadow: 0 22px 46px rgba(0,0,0,.34); }
}

/* ---------- services ---------- */
.services-v2-hero {
  min-height: 720px;
  padding: 106px 0 112px;
  background:
    radial-gradient(circle at 87% 30%, rgba(182,255,59,.12), transparent 20%),
    radial-gradient(circle at 84% 34%, rgba(77,225,255,.06), transparent 39%),
    linear-gradient(135deg,#0b0f14 0%,#0c121a 56%,#081018 100%);
}
.services-v2-hero::after { display: none; }
.services-v2-hero::before {
  width: 720px;
  height: 720px;
  right: -260px;
  top: -210px;
  border-color: rgba(182,255,59,.24);
  box-shadow: 0 0 0 82px rgba(182,255,59,.025), 0 0 0 164px rgba(77,225,255,.015);
}
.services-v2-hero__grid {
  grid-template-columns: minmax(0,1.12fr) minmax(440px,.72fr);
  align-items: center;
  gap: 100px;
}
.services-v2-hero h1 {
  max-width: 820px;
  font-size: clamp(64px,6.5vw,100px);
  line-height: .9;
  letter-spacing: -.058em;
}
.services-v2-hero__lead { max-width: 770px; font-size: 1rem; line-height: 1.76; }
.services-v2-hero__actions { margin-top: 34px; gap: 12px; }
.services-v2-hero__principles {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  margin: 0;
  transform: none;
  border-top: 2px solid rgba(77,225,255,.58);
  background: linear-gradient(145deg,rgba(16,25,35,.98),rgba(8,16,24,.96));
  box-shadow: 0 36px 82px rgba(0,0,0,.44);
}
.svc-principle {
  min-height: 160px;
  padding: 28px 24px;
  border: 0;
  border-right: 1px solid rgba(148,163,184,.13);
  border-bottom: 1px solid rgba(148,163,184,.13);
  align-items: flex-start;
}
.svc-principle:nth-child(even) { border-right: 0; }
.svc-principle:nth-child(n+3) { border-bottom: 0; }
.svc-principle .icon-mask { width: 28px; height: 28px; margin-bottom: 18px; }
.svc-principle strong { display:block; margin-bottom:10px; font-size:.74rem; letter-spacing:.07em; text-transform:uppercase; }
.svc-principle p { font-size:.78rem; line-height:1.56; }

.services-v2-lines { padding: 104px 0 116px; }
.services-v2-lines__intro {
  grid-template-columns: .72fr 1.28fr;
  gap: 110px;
  align-items: end;
  margin-bottom: 54px;
}
.services-v2-lines__intro h2 { max-width: 430px; font-size: 3.25rem; line-height: .98; letter-spacing: -.045em; }
.services-v2-lines__intro p { max-width: 760px; font-size: .94rem; line-height: 1.72; }
.services-v2-lines__grid { grid-template-columns: repeat(12,minmax(0,1fr)); gap: 18px; }
.svc-line-card {
  position: relative;
  min-height: 420px;
  padding: 38px 38px 34px;
  grid-column: span 6;
  overflow: hidden;
  transition: transform 260ms var(--bbs-ease), border-color 220ms ease, box-shadow 260ms ease;
}
.svc-line-card:nth-child(1), .svc-line-card:nth-child(4) { grid-column: span 7; }
.svc-line-card:nth-child(2), .svc-line-card:nth-child(3) { grid-column: span 5; }
.svc-line-card:nth-child(2), .svc-line-card:nth-child(4) { margin-top: 34px; }
.svc-line-card__number { font-size: .72rem; letter-spacing:.12em; }
.svc-line-card__number .icon-mask { width:34px; height:34px; }
.svc-line-card h3 { margin-top: 48px; font-size: 2rem; letter-spacing:-.035em; }
.svc-line-card__statement { max-width: 620px; font-size: .91rem; line-height:1.68; }
.svc-line-card__focus { margin-top: 28px; gap: 10px 24px; }
.svc-line-card__focus span { font-size:.73rem; line-height:1.5; }
.svc-text-link { margin-top: 32px; font-size:.72rem; letter-spacing:.06em; }

.services-v2-process { padding: 94px 0 106px; }
.services-v2-process__lead { max-width: 820px; font-size:.94rem; line-height:1.72; }
.services-v2-process__grid {
  position: relative;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  margin-top:50px;
  border-top:1px solid rgba(77,225,255,.22);
}
.svc-process-step {
  min-height: 260px;
  padding: 34px 28px 28px;
  border-left:1px solid rgba(148,163,184,.12);
  transition: background 220ms ease, transform 220ms var(--bbs-ease);
}
.svc-process-step:first-child { border-left:0; }
.svc-process-step__number { font-size:.7rem; letter-spacing:.09em; }
.svc-process-step h3 { margin-top:46px; font-size:1.18rem; }
.svc-process-step p { font-size:.8rem; line-height:1.62; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .svc-process-step:hover { transform: translateY(-7px); background: rgba(77,225,255,.035); }
  .svc-process-step:hover .svc-process-step__number { color:var(--bbs-cyan); transform:translateX(5px); }
}

.services-v2-specialist,
.services-v2-models { padding: 100px 0; }
.services-v2-specialist__head { grid-template-columns:.78fr 1.22fr; gap:90px; align-items:end; }
.services-v2-specialist__head h2 { font-size:3rem; line-height:1; }
.services-v2-specialist__grid { gap:16px; margin-top:48px; }
.svc-specialist-card { min-height:230px; padding:32px 30px; }
.svc-specialist-card strong { font-size:1rem; }
.svc-specialist-card p { font-size:.82rem; line-height:1.64; }
.services-v2-models__grid { gap:16px; }
.svc-model-card { min-height:260px; padding:34px 32px; }
.svc-model-card span { font-size:2.3rem; opacity:.55; }
.svc-model-card h3 { margin-top:38px; font-size:1.3rem; }

.services-v2-cta { padding: 86px 0 112px; }
.services-v2-cta__panel {
  min-height: 300px;
  padding: 54px 58px;
  border-top:2px solid rgba(182,255,59,.68);
  background:
    radial-gradient(circle at 88% 24%,rgba(182,255,59,.10),transparent 22%),
    linear-gradient(135deg,#101923,#081018);
}
.services-v2-cta__panel h2 { max-width:850px; font-size:2.6rem; line-height:1.03; }

/* service detail pages */
.service-detail-hero {
  min-height: 640px;
  padding: 92px 0 104px;
  background: radial-gradient(circle at 88% 24%,rgba(77,225,255,.08),transparent 24%),linear-gradient(135deg,#0b0f14,#081018);
}
.service-detail-hero::after { display:none; }
.service-detail-hero__grid { grid-template-columns:minmax(0,1.1fr) minmax(400px,.68fr); gap:100px; align-items:center; }
.service-detail-hero h1 { font-size:clamp(58px,6.4vw,96px); line-height:.9; letter-spacing:-.055em; }
.service-detail-summary { margin:0; transform:none; border-top:2px solid rgba(77,225,255,.5); }
.service-detail-section { padding:96px 0; }
.service-detail-intro { grid-template-columns:.72fr 1.28fr; gap:100px; margin-bottom:48px; }
.service-detail-intro h2 { font-size:2.75rem; }
.service-detail-card { min-height:230px; padding:30px 28px; transition:transform 240ms var(--bbs-ease),border-color 220ms ease,box-shadow 240ms ease; }

/* ---------- methodology ---------- */
.method-v2-hero {
  min-height: 700px;
  padding: 104px 0 120px;
}
.method-v2-hero__grid { grid-template-columns:minmax(0,1.08fr) minmax(430px,.72fr); gap:100px; align-items:center; }
.method-v2-hero h1 { max-width:850px; font-size:clamp(62px,6.5vw,98px); line-height:.9; letter-spacing:-.058em; }
.method-v2-hero__lead { max-width:760px; font-size:1rem; line-height:1.74; }
.method-v2-hero__expect { margin:0; transform:none; border-top:2px solid rgba(77,225,255,.54); }
.method-expect { min-height:98px; padding:22px 24px; }
.method-expect span { font-size:.72rem; }
.method-expect p { font-size:.8rem; line-height:1.58; }

.method-v2-promises { padding:110px 0 118px; }
.method-v2-intro { grid-template-columns:.78fr 1.22fr; gap:100px; align-items:end; }
.method-v2-intro h2,
.method-v2-lifecycle__head h2,
.method-v2-evidence__statement h2,
.method-v2-communication__head h2,
.method-v2-retest h2,
.method-v2-readers__head h2 { font-size:clamp(2.3rem,3.2vw,3.55rem); line-height:1; letter-spacing:-.04em; }
.method-v2-promises__grid { gap:16px; align-items:stretch; grid-auto-rows:1fr; }
.method-promise-card {
  min-height:300px;
  padding:32px 28px;
  display:grid;
  grid-template-rows:auto auto auto 1fr;
  align-content:start;
  transition:border-color 220ms ease,background 220ms ease,box-shadow 240ms ease;
}
.method-promise-card:nth-child(even) { transform:none; }
.method-promise-card::before { transform:scaleX(.36); transform-origin:left; transition:transform 260ms var(--bbs-ease); }
.method-promise-card__number { margin-bottom:20px; }
.method-promise-card .icon-mask { width:34px; height:34px; margin-bottom:20px; }
.method-promise-card h3 { font-size:1.18rem; }
.method-promise-card p { font-size:.82rem; line-height:1.62; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .method-promise-card:hover { border-color:rgba(77,225,255,.42); background:linear-gradient(145deg,#172536,#0f1823); box-shadow:0 22px 50px rgba(0,0,0,.36); }
  .method-promise-card:hover::before { transform:scaleX(1); }
  .method-promise-card:hover .method-promise-card__number { transform:translateX(5px); color:var(--bbs-cyan); }
  .method-promise-card:hover .icon-mask { transform:translateY(-5px) scale(1.1); color:var(--bbs-cyan); }
}

.method-v2-lifecycle { margin:0; padding:104px 0 112px; }
.method-v2-lifecycle__head { grid-template-columns:.8fr 1.2fr; gap:100px; align-items:end; }
.method-v2-lifecycle__grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:52px;
  background:rgba(148,163,184,.14);
  border:1px solid rgba(148,163,184,.14);
}
.method-step {
  position:relative;
  min-height:270px;
  padding:34px 32px;
  border:0;
  background:#0b1119;
  overflow:hidden;
  transition:background 220ms ease,transform 220ms var(--bbs-ease);
}
.method-step::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--bbs-cyan),var(--bbs-lime));
  transform:scaleY(0);
  transform-origin:top;
  transition:transform 240ms var(--bbs-ease);
}
.method-step > span { font-size:.72rem; letter-spacing:.1em; transition:transform 220ms var(--bbs-ease),color 220ms ease; }
.method-step h3 { margin-top:54px; font-size:1.28rem; transition:transform 220ms var(--bbs-ease); }
.method-step p { font-size:.82rem; line-height:1.65; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .method-step:hover { transform:translateY(-6px); background:#101b27; }
  .method-step:hover::before { transform:scaleY(1); }
  .method-step:hover > span,
  .method-step:hover h3 { transform:translateX(6px); }
  .method-step:hover > span { color:var(--bbs-cyan); }
}

.method-v2-evidence { padding:108px 0; }
.method-v2-evidence__grid { grid-template-columns:minmax(0,1fr) minmax(430px,.82fr); gap:110px; }
.method-v2-evidence__statement > .method-eyebrow { color:var(--bbs-cyan); }
.method-v2-evidence__statement blockquote {
  margin-top:40px;
  padding:30px 32px;
  font-size:1.25rem;
  line-height:1.56;
  border-left:4px solid var(--bbs-cyan);
  background:linear-gradient(90deg,rgba(77,225,255,.07),transparent);
}
.method-v2-evidence__qualities article { min-height:118px; padding:24px 0; }
.method-v2-evidence__qualities strong { font-size:.9rem; }
.method-v2-evidence__qualities p { font-size:.8rem; line-height:1.6; }

.method-v2-standards,
.method-v2-communication,
.method-v2-delivery,
.method-v2-retest,
.method-v2-readers { padding:96px 0; }
.method-v2-standards__grid,
.method-v2-communication__grid,
.method-v2-readers__grid { gap:16px; }
.method-v2-standards__grid article,
.method-v2-communication__grid article,
.method-v2-readers__grid article { min-height:230px; padding:30px 28px; }
.method-v2-delivery__grid { gap:16px; }
.method-v2-delivery__grid article { min-height:230px; padding:30px 28px; }
.method-v2-retest__grid { grid-template-columns:minmax(0,.92fr) minmax(500px,1.08fr); gap:100px; }
.method-v2-retest__states { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.method-v2-retest__states article { min-height:155px; padding:26px; }

/* ---------- arsenal ---------- */
.arsenal-v2-page > .home-v2-hero {
  min-height:720px;
  padding:104px 0 116px;
}
.arsenal-v2-page > .home-v2-hero .home-v2-hero__grid { grid-template-columns:minmax(0,1fr) minmax(440px,.9fr); gap:100px; align-items:center; }
.arsenal-v2-page > .home-v2-hero h1 { font-size:clamp(72px,7vw,112px); line-height:.84; letter-spacing:-.065em; }
.arsenal-v2-page > .home-v2-hero .home-v2-hero__lead { max-width:720px; font-size:1rem; line-height:1.7; }
.arsenal-v2-page > .home-v2-hero .home-v2-hero__visual { transform:scale(1.08); }

.arsenal-v2-page .home-v2-research { padding:110px 0 94px; }
.arsenal-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:18px;
  margin-top:36px;
}
.arsenal-card {
  position:relative;
  min-height:330px;
  padding:34px 32px 30px;
  grid-column:span 4;
  overflow:hidden;
  transition:transform 260ms var(--bbs-ease),border-color 220ms ease,box-shadow 260ms ease;
}
.arsenal-card:nth-child(1) { grid-column:span 7; min-height:430px; }
.arsenal-card:nth-child(2) { grid-column:span 5; min-height:430px; }
.arsenal-card:nth-child(n+3) { margin-top:18px; }
.arsenal-card::after {
  content:"";
  position:absolute;
  right:-95px;
  bottom:-95px;
  width:220px;
  height:220px;
  border:1px solid rgba(77,225,255,.12);
  border-radius:50%;
  box-shadow:0 0 0 42px rgba(77,225,255,.018),0 0 0 84px rgba(182,255,59,.012);
  transition:transform 360ms var(--bbs-ease),border-color 220ms ease;
}
.arsenal-card__meta { font-size:.67rem; letter-spacing:.08em; }
.arsenal-card h3 { margin-top:54px; max-width:680px; font-size:1.75rem; line-height:1.03; }
.arsenal-card:nth-child(-n+2) h3 { font-size:2.35rem; }
.arsenal-card p { max-width:680px; font-size:.86rem; line-height:1.66; }
.arsenal-card a { position:absolute; left:32px; bottom:30px; font-size:.72rem; letter-spacing:.06em; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .arsenal-card:hover::after { transform:translate(-24px,-24px) scale(1.08); border-color:rgba(77,225,255,.26); }
}

.arsenal-v2-page > .home-v2-why { padding:74px 0 86px; }
.arsenal-v2-page > .home-v2-why .home-v2-why__item { min-height:170px; }
.arsenal-v2-page > .home-v2-why .home-v2-why__item:hover { transform:none; background:rgba(77,225,255,.025); }

/* Arsenal project pages */
.arsenal-project-hero { min-height:680px; padding:84px 0 110px; }
.arsenal-project-hero__grid { grid-template-columns:minmax(0,1.08fr) minmax(400px,.66fr); gap:100px; align-items:center; }
.arsenal-project-hero h1 { max-width:900px; font-size:clamp(58px,6.1vw,94px); line-height:.92; letter-spacing:-.055em; }
.arsenal-project-lead { max-width:800px; font-size:1rem; line-height:1.75; }
.arsenal-project-summary { border-top:2px solid rgba(77,225,255,.5); box-shadow:var(--bbs-shadow); }
.arsenal-project-section { padding:100px 0; }
.arsenal-project-intro { grid-template-columns:.72fr 1.28fr; gap:100px; align-items:end; }
.arsenal-project-intro h2 { font-size:2.9rem; line-height:1; letter-spacing:-.04em; }
.arsenal-project-intro p { font-size:.92rem; line-height:1.72; }
.arsenal-project-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:16px; margin-top:48px; }
.arsenal-project-block { grid-column:span 4; min-height:245px; padding:30px 28px; transition:transform 240ms var(--bbs-ease),border-color 220ms ease,box-shadow 240ms ease; }
.arsenal-project-block:nth-child(1), .arsenal-project-block:nth-child(6) { grid-column:span 5; }
.arsenal-project-block:nth-child(2), .arsenal-project-block:nth-child(5) { grid-column:span 4; }
.arsenal-project-block:nth-child(3), .arsenal-project-block:nth-child(4) { grid-column:span 3; }
.arsenal-project-block > span { font-size:2rem; opacity:.5; }
.arsenal-project-block h3 { margin-top:40px; font-size:1.18rem; }
.arsenal-project-status { padding:100px 0; }
.arsenal-project-status__grid { grid-template-columns:.92fr 1.08fr; gap:100px; }
.arsenal-project-status h2 { font-size:2.8rem; line-height:1; letter-spacing:-.04em; }
.arsenal-status-item { min-height:145px; padding:26px 28px; }
.arsenal-project-actions { gap:12px; }
.arsenal-repo-link { min-height:58px; padding:0 22px; display:inline-flex; align-items:center; transition:transform 220ms var(--bbs-ease),border-color 220ms ease,box-shadow 220ms ease; }

/* ---------- supporting pages ---------- */
.supporting-v2-body .section { padding:92px 0; }
.supporting-v2-body .section:first-child { padding-top:110px; }
.supporting-v2-body .section__head { max-width:980px; margin-bottom:52px; }
.supporting-v2-body .section__head h1 { font-size:clamp(54px,5.3vw,86px); line-height:.92; letter-spacing:-.055em; }
.supporting-v2-body .section__head h2 { font-size:2.8rem; line-height:1; letter-spacing:-.04em; }
.supporting-v2-body .section__head p { max-width:820px; font-size:.96rem; line-height:1.72; }
.supporting-v2-body .split { gap:18px; }
.supporting-v2-body .stack,
.supporting-v2-body .model-card,
.supporting-v2-body .contact__card {
  min-height:220px;
  padding:30px 28px;
  transition:transform 240ms var(--bbs-ease),border-color 220ms ease,box-shadow 240ms ease;
}
.supporting-v2-body .stack h3,
.supporting-v2-body .model-card h3,
.supporting-v2-body .contact__card h3 { font-size:1.15rem; }
.supporting-v2-body .stack p,
.supporting-v2-body .model-card p,
.supporting-v2-body .contact__card p,
.supporting-v2-body .outcomes li { font-size:.84rem; line-height:1.65; }

/* ---------- focus and accessibility ---------- */
.home-v2 a:focus-visible,
.home-v2 button:focus-visible {
  outline:2px solid rgba(77,225,255,.86);
  outline-offset:4px;
}

/* ---------- responsive ---------- */
@media (max-width:1180px) {
  body.home-v2 { --bbs-gutter:28px; }
  .home-v2 .header-v2__motto { display:none; }
  .home-v2-page > .home-v2-hero .home-v2-hero__grid,
  .services-v2-hero__grid,
  .method-v2-hero__grid,
  .arsenal-v2-page > .home-v2-hero .home-v2-hero__grid,
  .service-detail-hero__grid,
  .arsenal-project-hero__grid { gap:58px; }
  .services-v2-hero__principles { grid-template-columns:1fr; }
  .svc-principle { min-height:auto; border-right:0; border-bottom:1px solid rgba(148,163,184,.13); }
  .svc-principle:last-child { border-bottom:0; }
  .home-v2-principal__panel { grid-template-columns:190px minmax(0,1fr) 300px; }
}

@media (max-width:900px) {
  body.home-v2 { --bbs-gutter:20px; }
  .home-v2 .site-header--v2,
  .home-v2 .header-v2__inner { min-height:72px; }
  .home-v2 .nav-v2 { gap:18px; }
  .home-v2 .nav-v2 a { padding:24px 0 22px; font-size:.67rem; }

  .home-v2-page > .home-v2-hero,
  .services-v2-hero,
  .method-v2-hero,
  .arsenal-v2-page > .home-v2-hero,
  .service-detail-hero,
  .arsenal-project-hero { min-height:auto; padding:78px 0 82px; }

  .home-v2-page > .home-v2-hero .home-v2-hero__grid,
  .services-v2-hero__grid,
  .method-v2-hero__grid,
  .arsenal-v2-page > .home-v2-hero .home-v2-hero__grid,
  .service-detail-hero__grid,
  .arsenal-project-hero__grid,
  .method-v2-evidence__grid,
  .method-v2-retest__grid,
  .arsenal-project-status__grid { grid-template-columns:1fr; gap:48px; }

  .home-v2-page > .home-v2-hero .home-v2-hero__visual,
  .arsenal-v2-page > .home-v2-hero .home-v2-hero__visual { transform:none; max-width:680px; margin-inline:auto; }

  .services-v2-lines__intro,
  .services-v2-specialist__head,
  .method-v2-intro,
  .method-v2-lifecycle__head,
  .arsenal-project-intro,
  .service-detail-intro { grid-template-columns:1fr; gap:26px; }

  .home-v2-service-card:nth-child(n),
  .svc-line-card:nth-child(n),
  .arsenal-card:nth-child(n),
  .arsenal-project-block:nth-child(n) { grid-column:span 6; margin-top:0; }
  .arsenal-card:nth-child(-n+2) { min-height:360px; }
  .services-v2-process__grid { grid-template-columns:repeat(2,1fr); }
  .svc-process-step { border-top:1px solid rgba(148,163,184,.12); }
  .method-v2-lifecycle__grid { grid-template-columns:repeat(2,1fr); }
  .home-v2-timeline__line { grid-template-columns:1fr; gap:20px; padding-left:28px; }
  .home-v2-timeline__line::before { left:8px; right:auto; top:18px; bottom:18px; width:1px; height:auto; }
  .home-v2-timeline__item::before { top:20px; left:-24px; }
  .home-v2-principal__panel { grid-template-columns:180px 1fr; }
  .home-v2-principal__proof { grid-column:1/-1; }
}

@media (max-width:760px) {
  body.home-v2 { --bbs-gutter:16px; font-size:15px; }
  .home-v2 .header-v2__inner { min-height:auto; padding:14px 0; }
  .home-v2 .brand-v2__mark { width:42px; height:42px; }
  .home-v2 .nav-v2 { width:100%; order:3; display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid rgba(148,163,184,.12); }
  .home-v2 .nav-v2 a { padding:14px 4px; text-align:center; font-size:.58rem; }
  .home-v2 .nav-v2 a::after { bottom:7px; }

  .home-v2-page > .home-v2-hero h1,
  .services-v2-hero h1,
  .method-v2-hero h1,
  .arsenal-v2-page > .home-v2-hero h1,
  .service-detail-hero h1,
  .arsenal-project-hero h1 { font-size:clamp(44px,13vw,64px); }

  .home-v2 .home-btn { width:100%; }
  .home-v2-why__grid,
  .home-v2-commitments__grid { grid-template-columns:1fr; }
  .home-v2-why__item { border-right:0; border-bottom:1px solid rgba(148,163,184,.14); }
  .home-v2-why__item:last-child { border-bottom:0; }
  .home-v2-service-card:nth-child(n),
  .svc-line-card:nth-child(n),
  .arsenal-card:nth-child(n),
  .arsenal-project-block:nth-child(n) { grid-column:1/-1; min-height:auto; }
  .home-v2-services__grid,
  .services-v2-lines__grid,
  .arsenal-grid,
  .arsenal-project-grid { gap:12px; }
  .home-v2-service-card,
  .svc-line-card,
  .arsenal-card,
  .arsenal-project-block { padding:28px 24px; }
  .svc-line-card h3,
  .arsenal-card h3,
  .arsenal-card:nth-child(-n+2) h3 { margin-top:30px; font-size:1.55rem; }
  .arsenal-card a { position:static; display:inline-block; margin-top:28px; }
  .services-v2-process__grid,
  .method-v2-lifecycle__grid,
  .method-v2-retest__states { grid-template-columns:1fr; }
  .svc-process-step { min-height:auto; }
  .home-v2-principal__panel { grid-template-columns:1fr; }
  .home-v2-principal__portrait { min-height:240px; }
  .home-v2-principal__proof { grid-column:auto; }
  .services-v2-hero__principles { grid-template-columns:1fr; }
  .supporting-v2-body .section { padding:68px 0; }
  .supporting-v2-body .section:first-child { padding-top:76px; }
}

@media (max-width:480px) {
  body.home-v2 { --bbs-gutter:12px; }
  .home-v2 .brand-v2__name { font-size:.9rem; }
  .home-v2 .brand-v2__security { font-size:.54rem; }
  .home-v2 .nav-v2 a { font-size:.52rem; letter-spacing:.04em; }
  .home-v2-page > .home-v2-hero,
  .services-v2-hero,
  .method-v2-hero,
  .arsenal-v2-page > .home-v2-hero,
  .service-detail-hero,
  .arsenal-project-hero { padding:60px 0 66px; }
  .home-v2-page > .home-v2-hero h1,
  .services-v2-hero h1,
  .method-v2-hero h1,
  .arsenal-v2-page > .home-v2-hero h1,
  .service-detail-hero h1,
  .arsenal-project-hero h1 { font-size:clamp(40px,12vw,54px); }
}

@media (prefers-reduced-motion:reduce) {
  .home-v2 *, .home-v2 *::before, .home-v2 *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
