/**
 * Approach — operational systems architecture document (body.approach only)
 */

body.approach{
  --ap-max:1400px;
  --ap-line:rgba(17,17,17,0.08);
  --ap-line-strong:rgba(17,17,17,0.14);
  --ap-teal:rgba(34,162,159,0.92);
  --ap-teal-soft:rgba(34,162,159,0.22);
  --ap-prose:38rem;
  --ap-arch-ink:var(--bh-arch-base);
}

body.approach main{
  padding-bottom:clamp(var(--bh-space-9),12vw,calc(var(--bh-unit)*40));
}

body.approach a{
  color:inherit;
}

body.approach .ap-visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Shell */
body.approach .ap-shell{
  max-width:var(--ap-max);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--space-section-x);
  padding-right:var(--space-section-x);
  position:relative;
}

/* -------------------------------------------------------------------------
   Hero — structural surface + authority type
   ------------------------------------------------------------------------- */
body.approach .ap-hero{
  position:relative;
  padding:0;
  border-bottom:var(--bh-hairline) solid var(--ap-line);
  overflow:hidden;
}

body.approach .ap-hero__structural-bg{
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(108deg, transparent 0%, rgba(17,17,17,0.032) 44%, transparent 68%),
    repeating-linear-gradient(-13deg, transparent 0, transparent 15px, rgba(17,17,17,0.036) 15px, rgba(17,17,17,0.036) 16px);
  opacity:0.92;
  mask-image:linear-gradient(180deg, black 0%, black 84%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg, black 0%, black 84%, transparent 100%);
}

body.approach .ap-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(to right,var(--ap-line) 1px,transparent 1px),
    linear-gradient(to bottom,var(--ap-line) 1px,transparent 1px);
  background-size:52px 52px;
  opacity:0.5;
  pointer-events:none;
  mask-image:linear-gradient(90deg,black 0,black 56%,transparent 88%);
  -webkit-mask-image:linear-gradient(90deg,black 0,black 56%,transparent 88%);
}

body.approach .ap-hero::after{
  content:"";
  position:absolute;
  top:clamp(48px,12vh,112px);
  right:min(18%,200px);
  width:2px;
  height:clamp(120px,20vh,200px);
  background:linear-gradient(
    180deg,
    var(--ap-teal) 0,
    var(--ap-teal) 30%,
    var(--ap-line-strong) 30%,
    var(--ap-line-strong) 100%
  );
  pointer-events:none;
}

body.approach .ap-hero-inner{
  max-width:var(--ap-max);
  margin:0 auto;
  padding:clamp(72px,12vw,128px) var(--space-section-x) clamp(52px,8vw,96px);
  position:relative;
  z-index:1;
}

body.approach .ap-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(200px,0.92fr);
  gap:clamp(var(--bh-space-8),7vw,var(--bh-space-10));
  align-items:center;
}

body.approach .ap-hero-copy{
  position:relative;
  padding-left:calc(var(--bh-triangle-sm) + var(--bh-space-4));
  min-width:0;
}

body.approach .ap-hero-copy::before{
  content:"";
  position:absolute;
  left:0;
  top:0.35em;
  width:3px;
  height:3em;
  background:var(--bh-accent);
  opacity:0.92;
  clip-path:polygon(0 0,100% 10%,100% 90%,0 100%);
}

body.approach .ap-hero-kicker{
  margin:0 0 var(--bh-space-5);
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

body.approach .ap-hero h1{
  font-size:var(--bh-type-hero-display);
  font-weight:600;
  letter-spacing:var(--bh-track-hero-display);
  line-height:var(--bh-leading-hero);
  color:var(--bh-text);
  margin:0 0 clamp(var(--bh-space-6),4.5vw,var(--bh-space-8));
  max-width:15ch;
  text-transform:none;
}

body.approach .ap-hero-sub{
  font-size:var(--bh-type-prose-lede);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
  font-weight:400;
  margin:0;
  max-width:min(40rem,100%);
}

body.approach .ap-hero-visual{
  position:relative;
  min-height:clamp(180px,24vw,300px);
  margin-right:calc(-1 * clamp(16px,6vw,80px));
}

/* Architectural figure — engineered surfaces (CSS-only) */
body.approach .ap-arch{
  display:block;
  margin:0;
  width:100%;
}

body.approach .ap-arch__crop{
  position:relative;
  overflow:hidden;
  width:min(100%,520px);
  min-height:clamp(180px,24vw,300px);
  margin-left:auto;
  background:
    radial-gradient(110% 90% at 88% 8%, rgba(247,247,247,0.08) 0%, transparent 50%),
    var(--bh-arch-surface);
  border:var(--bh-hairline) solid rgba(255,255,255,0.07);
  clip-path:polygon(0 9%, 100% 0, 100% 91%, 0 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    inset 0 -1px 0 rgba(0,0,0,0.5);
  isolation:isolate;
}

body.approach .ap-arch__mesh{
  position:absolute;
  inset:0;
  opacity:0.52;
  background-image:
    repeating-linear-gradient(-24deg, transparent 0, transparent 22px, rgba(255,255,255,0.04) 22px, rgba(255,255,255,0.04) 23px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.025) 0, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 40px);
  mix-blend-mode:screen;
  pointer-events:none;
}

body.approach .ap-arch__mesh--dense{opacity:0.62}

body.approach .ap-arch__engineered{
  position:absolute;
  inset:0;
  opacity:0.32;
  background-image:repeating-linear-gradient(0deg, transparent, transparent 6px, rgba(34,162,159,0.065) 6px, rgba(34,162,159,0.065) 7px);
  mask-image:linear-gradient(90deg, transparent 0%, black 38%, black 76%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, black 38%, black 76%, transparent 100%);
  pointer-events:none;
}

body.approach .ap-arch__engineered--shift{
  mask-image:linear-gradient(180deg, black 0%, transparent 88%);
  -webkit-mask-image:linear-gradient(180deg, black 0%, transparent 88%);
}

body.approach .ap-arch__facets{position:absolute;inset:0;pointer-events:none}

body.approach .ap-arch__facet{
  position:absolute;
  display:block;
  border:var(--bh-hairline) solid rgba(255,255,255,0.08);
}

body.approach .ap-arch__facet--1{
  width:56%;height:40%;top:-5%;right:-11%;
  clip-path:polygon(14% 0,100% 0,100% 76%,0 100%);
  background:linear-gradient(200deg,#ececec 0%,#6a6a6a 100%);
}

body.approach .ap-arch__facet--2{
  width:44%;height:36%;bottom:7%;left:-13%;
  clip-path:polygon(0 20%,70% 0,100% 64%,22% 100%);
  background:linear-gradient(20deg,#D2CFCA 0%,#EBE8E3 100%);
}

body.approach .ap-arch__facet--3{
  width:40%;height:32%;top:40%;left:20%;
  clip-path:polygon(50% 0,100% 40%,65% 100%,0 78%);
  background:linear-gradient(135deg,rgba(34,162,159,0.2) 0%,#1a1a1a 88%);
  border-color:rgba(34,162,159,0.28);
}

body.approach .ap-arch__facet--p1{
  width:54%;height:42%;top:-6%;right:-9%;
  clip-path:polygon(18% 0,100% 0,100% 84%,0 100%);
  background:linear-gradient(205deg,#e8e8e8 0%,#555 100%);
}

body.approach .ap-arch__facet--p2{
  width:46%;height:38%;bottom:5%;left:-14%;
  clip-path:polygon(0 22%,68% 0,100% 68%,12% 100%);
  background:linear-gradient(22deg,#D0CDC8 0%,#E4E1DC 100%);
}

body.approach .ap-arch__ribs{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, transparent 58%, rgba(34,162,159,0.11) 58%, rgba(34,162,159,0.11) 58.2%, transparent 58.2%),
    linear-gradient(180deg, transparent 56%, rgba(255,255,255,0.05) 56%, rgba(255,255,255,0.05) 56.1%, transparent 56.1%);
  opacity:0.85;
  pointer-events:none;
}

body.approach .ap-arch__datum{
  position:absolute;top:10%;bottom:16%;left:54%;width:2px;margin-left:-1px;
  background:linear-gradient(180deg,transparent 0,var(--ap-teal) 10%,var(--ap-teal) 72%,transparent 100%);
  opacity:0.5;
  pointer-events:none;
}

body.approach .ap-arch__datum--thin{width:1px;left:60%;opacity:0.42}

body.approach .ap-arch__cap{
  position:absolute;
  font-size:9px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(245,245,245,0.4);
  pointer-events:none;
}

body.approach .ap-arch__cap--tl{top:var(--bh-space-5);left:var(--bh-space-5)}
body.approach .ap-arch__cap--br{right:var(--bh-space-5);bottom:var(--bh-space-5);text-align:right}

body.approach .ap-arch--panel .ap-arch__crop{
  margin-left:0;
  min-height:clamp(200px,28vw,340px);
  clip-path:polygon(0 0,100% 7%,100% 100%,0 93%);
}

body.approach .ap-arch--crop-right .ap-arch__crop{
  clip-path:polygon(0 0,100% 9%,100% 94%,0 100%);
}

body.approach .ap-arch__facets--mini .ap-arch__facet{opacity:0.9}

/* -------------------------------------------------------------------------
   Split section + counterweight
   ------------------------------------------------------------------------- */
body.approach .ap-split{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(160px,0.42fr);
  gap:clamp(var(--bh-space-8),8vw,var(--bh-space-10));
  align-items:start;
}

body.approach .ap-split__main{min-width:0}

body.approach .ap-split__counter{
  position:relative;
  margin-top:var(--bh-space-2);
}

body.approach .ap-split__counter-meta{
  display:flex;
  align-items:baseline;
  gap:var(--bh-space-4);
  margin-top:var(--bh-space-6);
  padding-top:var(--bh-space-5);
  border-top:var(--bh-hairline) solid var(--ap-line);
}

body.approach .ap-split__counter-idx{
  font-size:var(--bh-type-statement);
  font-weight:600;
  letter-spacing:var(--bh-track-statement);
  line-height:1;
  color:var(--bh-text);
}

body.approach .ap-split__counter-lbl{
  font-size:var(--bh-type-schema);
  font-weight:600;
  letter-spacing:var(--bh-letter-schema);
  text-transform:uppercase;
  color:rgba(17,17,17,0.4);
}

body.approach .ap-prose__emph{
  font-weight:600;
  color:var(--bh-text);
}

/* Blocks */
body.approach .ap-block{
  margin-top:0;
  padding:clamp(var(--bh-space-9),11vw,calc(var(--bh-unit)*38)) 0;
  border-top:var(--bh-hairline) solid var(--ap-line);
  position:relative;
}

body.approach .ap-block:first-of-type{border-top:none}

body.approach .ap-block--texture::before{
  content:"";
  position:absolute;
  top:0;
  right:0;
  width:min(46%,560px);
  height:100%;
  pointer-events:none;
  opacity:0.38;
  background:
    linear-gradient(118deg, transparent 44%, rgba(17,17,17,0.035) 44%, rgba(17,17,17,0.035) 44.5%, transparent 44.5%),
    linear-gradient(156deg, transparent 58%, rgba(247,247,247,0.92) 58%, rgba(247,247,247,0.92) 100%);
}

body.approach .ap-block--grid::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0.28;
  background-image:
    linear-gradient(to right, rgba(17,17,17,0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(17,17,17,0.05) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(180deg, black 0%, black 65%, transparent 100%);
  -webkit-mask-image:linear-gradient(180deg, black 0%, black 65%, transparent 100%);
}

body.approach .ap-block--diagram{
  background:linear-gradient(180deg, rgba(247,247,247,0.5) 0%, var(--bh-bg) 42%);
}

/* Typography */
body.approach .ap-h2{
  font-size:var(--bh-type-h2);
  font-weight:600;
  color:var(--bh-text);
  line-height:var(--bh-leading-h2);
  letter-spacing:var(--bh-track-h2);
  margin:0;
  text-align:left;
}

body.approach .ap-statement{
  font-size:var(--bh-type-statement);
  letter-spacing:var(--bh-track-statement);
  line-height:var(--bh-leading-statement);
  max-width:min(100%,42rem);
}

body.approach .ap-rule{
  display:block;
  height:var(--bh-hairline);
  width:clamp(4rem,14vw,5.5rem);
  margin:clamp(var(--bh-space-5),3.5vw,var(--bh-space-7)) 0 clamp(var(--bh-space-6),4vw,var(--bh-space-8));
  border:0;
  background:linear-gradient(
    90deg,
    var(--bh-accent) 0,
    var(--bh-accent) 36%,
    var(--ap-line-strong) 36%,
    var(--ap-line-strong) 100%
  );
}

body.approach .ap-prose{
  font-size:var(--bh-type-prose);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
  font-weight:400;
  text-align:left;
}

body.approach .ap-prose p{
  margin:clamp(var(--bh-space-5),3.2vw,var(--bh-space-6)) 0 0;
  max-width:var(--ap-prose);
}

body.approach .ap-prose p:first-child{margin-top:0}

body.approach .ap-prose--tight p{margin-top:var(--bh-space-4)}

body.approach .ap-prose--intro{
  margin:0;
  max-width:min(44rem,100%);
  font-size:var(--bh-type-prose);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
}

body.approach .ap-diag-intro{margin-bottom:clamp(var(--bh-space-7),6vw,var(--bh-space-9))}

body.approach .ap-diag-after{
  margin-top:clamp(var(--bh-space-8),7vw,var(--bh-space-10));
  padding-top:clamp(var(--bh-space-7),5vw,var(--bh-space-8));
  border-top:var(--bh-hairline) solid var(--ap-line);
}

/* Diagram frame + rail (balance) */
body.approach .ap-diag-frame{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(var(--bh-space-5),4vw,var(--bh-space-8));
  align-items:stretch;
  position:relative;
  z-index:1;
}

body.approach .ap-diag-rail{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:var(--bh-space-4);
  padding:var(--bh-space-6) var(--bh-space-3);
  border:var(--bh-hairline) solid var(--ap-line);
  background:linear-gradient(180deg, rgba(255,255,255,0.85) 0%, rgba(247,247,247,0.5) 100%);
  min-width:72px;
  flex-shrink:0;
}

body.approach .ap-diag-rail__tag{
  font-size:8px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  color:rgba(17,17,17,0.38);
}

body.approach .ap-diag-rail__line{
  flex:1;
  width:var(--bh-hairline);
  min-height:48px;
  background:linear-gradient(180deg, var(--ap-teal-soft), transparent);
}

body.approach .ap-diag-rail__steps{
  display:flex;
  flex-direction:column;
  gap:var(--bh-space-5);
  font-size:9px;
  font-weight:700;
  letter-spacing:0.12em;
  color:rgba(17,17,17,0.35);
}

body.approach .ap-diag-frame__main{min-width:0}

/* -------------------------------------------------------------------------
   Enterprise OSM — precision hierarchy (HTML/CSS, not org-chart boxes)
   ------------------------------------------------------------------------- */
body.approach .ap-osm{
  border:var(--bh-hairline) solid var(--ap-line-strong);
  background:
    linear-gradient(165deg, rgba(250,250,250,0.97) 0%, rgba(255,255,255,0.88) 45%, rgba(247,247,247,0.55) 100%);
  padding:clamp(var(--bh-space-6),4vw,var(--bh-space-8));
  position:relative;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.95);
}

body.approach .ap-osm__head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:var(--bh-space-4);
  margin-bottom:var(--bh-space-6);
  padding-bottom:var(--bh-space-5);
  border-bottom:var(--bh-hairline) solid var(--ap-line);
}

body.approach .ap-osm__eyebrow{
  font-size:10px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(17,17,17,0.45);
}

body.approach .ap-osm__schema-id{
  font-size:10px;
  font-weight:600;
  letter-spacing:0.16em;
  color:var(--bh-accent);
  font-variant-numeric:tabular-nums;
}

body.approach .ap-osm__grid-ref{
  position:absolute;
  inset:var(--bh-space-6);
  background-image:
    linear-gradient(to right, rgba(17,17,17,0.045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(17,17,17,0.045) 1px, transparent 1px);
  background-size:24px 24px;
  opacity:var(--bh-geo-strength-faint);
  pointer-events:none;
}

body.approach .ap-osm__canvas{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:0;
  align-items:stretch;
}

body.approach .ap-osm__level{
  display:grid;
  gap:var(--bh-space-4);
}

body.approach .ap-osm__level--l0{
  justify-items:center;
  margin-bottom:2px;
}

body.approach .ap-osm__level--l1{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

body.approach .ap-osm__level--l2{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:2px;
}

body.approach .ap-osm__node{
  position:relative;
  padding:var(--bh-space-5) var(--bh-space-4);
  border:var(--bh-hairline) solid rgba(17,17,17,0.15);
  background:var(--bh-surface);
  display:flex;
  flex-direction:column;
  gap:var(--bh-space-2);
  min-width:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.92);
}

body.approach .ap-osm__node--outcome{
  max-width:22rem;
  text-align:center;
  align-items:center;
  border-color:rgba(17,17,17,0.22);
  background:linear-gradient(180deg,#F3F2EF 0%,#E8E6E2 100%);
  color:var(--bh-text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.92);
}

body.approach .ap-osm__node--outcome .ap-osm__lvl{color:var(--bh-color-kicker)}
body.approach .ap-osm__node--outcome .ap-osm__name{color:var(--bh-text);font-size:var(--bh-text-base)}
body.approach .ap-osm__node--outcome .ap-osm__hint{color:var(--bh-text-secondary)}

body.approach .ap-osm__node--driver{
  background:linear-gradient(145deg, rgba(247,247,247,0.95) 0%, rgba(255,255,255,0.88) 100%);
}

body.approach .ap-osm__node--sub{
  padding:var(--bh-space-4);
  background:rgba(255,255,255,0.92);
  border-style:dashed;
  border-color:rgba(17,17,17,0.18);
}

body.approach .ap-osm__lvl{
  font-size:8px;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:rgba(17,17,17,0.42);
}

body.approach .ap-osm__name{
  font-size:var(--bh-text-sm);
  font-weight:600;
  letter-spacing:-0.015em;
  color:var(--bh-text);
  line-height:1.35;
}

body.approach .ap-osm__hint{
  font-size:var(--bh-text-xs);
  line-height:1.45;
  color:var(--bh-text-secondary);
}

body.approach .ap-osm__connector{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:stretch;
  min-height:28px;
}

body.approach .ap-osm__connector--down{
  flex-direction:column;
  align-items:center;
}

body.approach .ap-osm__stem{
  width:1px;
  flex:1;
  min-height:18px;
  background:linear-gradient(180deg, rgba(17,17,17,0.45) 0%, rgba(17,17,17,0.2) 100%);
}

body.approach .ap-osm__joint{
  width:5px;
  height:5px;
  background:var(--bh-accent);
  border-radius:1px;
  transform:rotate(45deg);
  opacity:0.9;
}

body.approach .ap-osm__joint--wide{
  width:min(72%,400px);
  height:1px;
  transform:none;
  border-radius:0;
  background:linear-gradient(90deg, transparent 0%, rgba(17,17,17,0.35) 8%, rgba(17,17,17,0.35) 92%, transparent 100%);
}

body.approach .ap-osm__connector--fan{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  min-height:22px;
  align-items:end;
  padding:0 var(--bh-space-2);
}

body.approach .ap-osm__fan-leg{
  justify-self:center;
  width:1px;
  height:18px;
  background:linear-gradient(180deg, rgba(17,17,17,0.35), rgba(17,17,17,0.12));
}

body.approach .ap-osm__baseline{
  display:flex;
  margin-top:var(--bh-space-6);
  height:var(--bh-hairline);
  width:100%;
  background:rgba(17,17,17,0.1);
  position:relative;
  overflow:hidden;
}

body.approach .ap-osm__baseline-teal{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:clamp(72px,18%,160px);
  background:linear-gradient(90deg, var(--ap-teal) 0%, rgba(34,162,159,0.35) 100%);
}

body.approach .ap-osm__baseline-rest{flex:1}

body.approach .ap-osm__caption{
  margin:var(--bh-space-6) 0 0;
  font-size:var(--bh-text-xs);
  font-weight:500;
  letter-spacing:0.04em;
  line-height:1.55;
  color:var(--bh-text-secondary);
  max-width:48rem;
}

/* -------------------------------------------------------------------------
   Framework modules
   ------------------------------------------------------------------------- */
body.approach .ap-modules-section-title{margin-bottom:0}

body.approach .ap-modules-lede{
  margin:clamp(var(--bh-space-4),3vw,var(--bh-space-5)) 0 clamp(var(--bh-space-8),7vw,var(--bh-space-9));
  font-size:var(--bh-text-md);
  line-height:1.65;
  color:var(--bh-text-secondary);
  max-width:36rem;
}

body.approach .ap-modules{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(var(--bh-space-6),5vw,var(--bh-space-9));
  align-items:stretch;
}

body.approach .ap-module{
  position:relative;
  padding:clamp(var(--bh-space-7),5vw,var(--bh-space-8)) clamp(var(--bh-space-6),4vw,var(--bh-space-8));
  border:var(--bh-hairline) solid var(--ap-line-strong);
  background:linear-gradient(165deg, rgba(255,255,255,0.97) 0%, rgba(247,247,247,0.55) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.95),
    0 20px 48px rgba(17,17,17,0.04);
  min-width:0;
}

body.approach .ap-module--emphasis{
  background:linear-gradient(155deg, #F0EEEB 0%, #E6E4E0 48%, #ECEAE6 100%);
  border-color:rgba(255,255,255,0.1);
  color:#ebebeb;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.06),
    0 24px 56px rgba(0,0,0,0.14);
}

body.approach .ap-module__accent{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg, var(--bh-accent) 0%, rgba(34,162,159,0.35) 72%, transparent 100%);
}

body.approach .ap-module--emphasis .ap-module__accent{
  background:linear-gradient(180deg, #4fd6d2 0%, var(--bh-accent) 45%, rgba(34,162,159,0.25) 100%);
}

body.approach .ap-module__head{
  margin-bottom:var(--bh-space-6);
  padding-bottom:var(--bh-space-5);
  border-bottom:var(--bh-hairline) solid var(--ap-line);
}

body.approach .ap-module--emphasis .ap-module__head{
  border-bottom-color:rgba(255,255,255,0.1);
}

body.approach .ap-module__id{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  margin-bottom:var(--bh-space-4);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.06em;
  color:var(--bh-surface);
  background:var(--bh-ink);
  border-radius:1px;
}

body.approach .ap-module--emphasis .ap-module__id{
  background:linear-gradient(145deg, var(--bh-accent) 0%, #176f6d 100%);
  color:#fff;
}

body.approach .ap-module__title{
  margin:0;
  font-size:var(--bh-type-h2);
  font-weight:600;
  letter-spacing:var(--bh-track-h2);
  line-height:var(--bh-leading-h2);
  color:var(--bh-text);
}

body.approach .ap-module--emphasis .ap-module__title{
  color:#fafafa;
}

body.approach .ap-module__role{
  margin:var(--bh-space-3) 0 0;
  font-size:var(--bh-text-xs);
  font-weight:600;
  letter-spacing:var(--bh-letter-kicker);
  text-transform:uppercase;
  color:var(--bh-color-kicker);
}

body.approach .ap-module--emphasis .ap-module__role{
  color:rgba(235,235,235,0.48);
}

body.approach .ap-module__list{
  list-style:none;
  margin:0;
  padding:0;
}

body.approach .ap-module__list li{
  position:relative;
  padding:var(--bh-space-4) 0 var(--bh-space-4) var(--bh-space-6);
  font-size:var(--bh-text-sm);
  line-height:var(--bh-leading-prose);
  color:var(--bh-text-secondary);
  border-top:var(--bh-hairline) solid var(--ap-line);
}

body.approach .ap-module--emphasis .ap-module__list li{
  color:rgba(230,230,230,0.78);
  border-top-color:rgba(255,255,255,0.08);
}

body.approach .ap-module__list li:first-child{
  border-top:none;
  padding-top:0;
}

body.approach .ap-module__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  width:6px;
  height:6px;
  background:var(--bh-accent);
  clip-path:polygon(50% 0,100% 100%,0 100%);
  opacity:0.85;
}

body.approach .ap-module__list li:first-child::before{top:0.55rem;transform:none}

/* -------------------------------------------------------------------------
   Closing anchor — institutional closure
   ------------------------------------------------------------------------- */
body.approach .ap-anchor{
  position:relative;
  margin-top:0;
  padding:clamp(var(--bh-space-10),14vw,calc(var(--bh-unit)*44)) 0;
  border-top:var(--bh-hairline) solid var(--ap-line-strong);
  background:
    radial-gradient(90% 80% at 10% 20%, rgba(34,162,159,0.07) 0%, transparent 55%),
    linear-gradient(168deg, #0b0b0b 0%, #171717 45%, #090909 100%);
  color:#efefef;
  overflow:hidden;
}

body.approach .ap-anchor__texture{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0.5;
  background-image:
    repeating-linear-gradient(-11deg, transparent 0, transparent 20px, rgba(255,255,255,0.03) 20px, rgba(255,255,255,0.03) 21px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size:auto, 80px 100%;
  mask-image:linear-gradient(90deg, black 0%, black 68%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, black 0%, black 68%, transparent 100%);
}

body.approach .ap-anchor__grid-mark{
  position:absolute;
  top:clamp(28px,7vw,52px);
  right:clamp(var(--space-section-x),6vw,72px);
  width:clamp(100px,16vw,200px);
  height:var(--bh-hairline);
  background:linear-gradient(90deg, var(--bh-accent) 0%, var(--bh-accent) 36%, rgba(255,255,255,0.12) 36%, rgba(255,255,255,0.12) 100%);
  pointer-events:none;
}

body.approach .ap-anchor__inner{
  position:relative;
  z-index:1;
  max-width:min(52rem,100%);
}

body.approach .ap-anchor__kicker{
  margin:0 0 var(--bh-space-5);
  font-size:var(--bh-type-schema);
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:rgba(235,235,235,0.45);
}

body.approach .ap-anchor__headline{
  margin:0 0 clamp(var(--bh-space-6),5vw,var(--bh-space-8));
  font-size:var(--bh-type-anchor);
  font-weight:600;
  letter-spacing:var(--bh-track-anchor);
  line-height:1.02;
  color:#fff;
  max-width:18ch;
  text-transform:none;
}

body.approach .ap-anchor__lead{
  margin:0;
  font-size:var(--bh-type-prose-lede);
  line-height:var(--bh-leading-prose);
  color:rgba(225,225,225,0.72);
  max-width:40rem;
}

body.approach .ap-anchor__row{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(var(--bh-space-6),5vw,var(--bh-space-9));
  margin:clamp(var(--bh-space-8),7vw,var(--bh-space-10)) 0 clamp(var(--bh-space-8),6vw,var(--bh-space-9));
  padding-top:clamp(var(--bh-space-6),5vw,var(--bh-space-7));
  border-top:var(--bh-hairline) solid rgba(255,255,255,0.1);
}

body.approach .ap-anchor__pair{
  display:flex;
  align-items:center;
  gap:var(--bh-space-4);
  margin:0;
  font-size:var(--bh-text-sm);
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(240,240,240,0.55);
}

body.approach .ap-anchor__term{color:rgba(250,250,250,0.88)}

body.approach .ap-anchor__arrow{
  display:inline-block;
  width:28px;
  height:var(--bh-hairline);
  background:linear-gradient(90deg, rgba(34,162,159,0.5), rgba(255,255,255,0.25));
}

/* Buttons */
body.approach .ap-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:var(--bh-cta-py) var(--bh-cta-px);
  min-height:var(--bh-cta-min);
  font-size:var(--bh-text-sm);
  font-weight:600;
  letter-spacing:var(--bh-cta-track);
  text-transform:uppercase;
  border-radius:1px;
  text-decoration:none;
  box-shadow:none;
  transition:var(--bh-link-transition);
}

body.approach .ap-btn--inverse{
  color:#111;
  background:#f5f5f5;
  border:var(--bh-hairline) solid rgba(255,255,255,0.35);
}

body.approach .ap-btn--inverse:hover{
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,0.4);
  box-shadow:var(--bh-shadow-ghost-dark);
}

body.approach .ap-btn:focus-visible{
  outline:var(--bh-focus-ring);
  outline-offset:var(--bh-focus-ring-offset);
}

/* -------------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------------- */
@media (max-width:960px){
  body.approach .ap-hero-grid{
    grid-template-columns:1fr;
    gap:var(--bh-space-8);
  }

  body.approach .ap-hero-visual{
    margin-right:0;
    order:-1;
    min-height:clamp(220px,42vw,320px);
  }

  body.approach .ap-arch__crop{
    margin-right:0;
    width:100%;
    max-width:440px;
    margin-left:0;
    margin-right:auto;
    min-height:clamp(220px,42vw,320px);
  }

  body.approach .ap-hero::after{
    right:10%;
    height:clamp(80px,15vh,128px);
  }

  body.approach .ap-split{
    grid-template-columns:1fr;
  }

  body.approach .ap-split__counter{
    max-width:320px;
  }

  body.approach .ap-diag-frame{
    grid-template-columns:1fr;
  }

  body.approach .ap-diag-rail{
    flex-direction:row;
    min-width:auto;
    justify-content:space-between;
    padding:var(--bh-space-4) var(--bh-space-5);
  }

  body.approach .ap-diag-rail__tag{
    writing-mode:horizontal-tb;
    transform:none;
  }

  body.approach .ap-diag-rail__line{
    flex:1;
    min-height:var(--bh-hairline);
    height:auto;
  }

  body.approach .ap-diag-rail__steps{
    flex-direction:row;
    gap:var(--bh-space-4);
  }

  body.approach .ap-osm__level--l1,
  body.approach .ap-osm__level--l2{
    grid-template-columns:1fr;
  }

  body.approach .ap-osm__connector--fan{
    grid-template-columns:1fr;
    min-height:auto;
    gap:var(--bh-space-2);
  }

  body.approach .ap-osm__fan-leg{
    height:12px;
    width:40%;
    margin:0 auto;
    background:linear-gradient(90deg, transparent, rgba(17,17,17,0.25), transparent);
  }

  body.approach .ap-modules{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  body.approach .ap-anchor__row{
    flex-direction:column;
    align-items:flex-start;
  }

  body.approach .ap-btn{
    width:100%;
    max-width:22rem;
    justify-content:center;
  }
}

@media (prefers-reduced-motion:reduce){
  body.approach .ap-reveal{
    opacity:1;
    transform:none;
  }
}

@media (prefers-reduced-motion:no-preference){
  body.approach .ap-reveal{
    opacity:0;
    transform:translateY(var(--bh-reveal-distance));
    transition:
      opacity var(--bh-duration-slow) var(--bh-ease-structural),
      transform var(--bh-duration-slow) var(--bh-ease-structural);
  }

  body.approach .ap-reveal.is-visible{
    opacity:1;
    transform:translateY(0);
  }
}
