/**
 * CPA Firms page — Phase 7 refinement
 * Clean surfaces · diagram clarity · compressed rhythm · blue geometry · editorial modules
 * Scoped: body.cpa-page · load last on cpa.html
 */

body.cpa-page{
  --cpa-p7-section-y:clamp(calc(var(--bh-unit)*10),9.2vw,calc(var(--bh-unit)*32));
  --cpa-p7-section-y-mid:clamp(calc(var(--bh-unit)*8),5vw,calc(var(--bh-unit)*17));
  --cpa-p7-split-gap:clamp(var(--bh-space-6),5.8vw,var(--bh-space-8));
  --cpa-p7-diag-pad:clamp(var(--bh-space-5),4.2vw,var(--bh-space-7));
}

/* -------------------------------------------------------------------------
   Grid removal — hero + page surfaces
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-hero::before{
  display:none;
}

body.cpa-page .cpa-hero__structural-bg{
  background-image:linear-gradient(106deg,transparent 0%,rgba(17,17,17,0.018) 42%,transparent 66%);
  opacity:0.55;
}

body.cpa-page .cpa-section--grid::after{
  display:none;
}

body.cpa-page .cpa-dgap__grid-ref,
body.cpa-page .cpa-dlens__grid-ref,
body.cpa-page .cpa-dmat__grid-ref{
  display:none;
}

/* -------------------------------------------------------------------------
   Blue structural geometry — systems · comparison · narrative bands
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-effort-grid,
body.cpa-page .cpa-lens-block,
body.cpa-page .cpa-section.cpa-section--grid:not(.cpa-rel-section),
body.cpa-page .cpa-modules-wrap,
body.cpa-page .cpa-rel-section,
body.cpa-page .cpa-transform{
  position:relative;
  overflow:hidden;
}

body.cpa-page .cpa-effort-grid::before,
body.cpa-page .cpa-lens-block::before,
body.cpa-page .cpa-section.cpa-section--grid:not(.cpa-rel-section)::before,
body.cpa-page .cpa-modules-wrap::before,
body.cpa-page .cpa-rel-section::before,
body.cpa-page .cpa-transform::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:0.18;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 5px,rgba(34,162,159,0.32) 5px,rgba(34,162,159,0.32) 6px),
    repeating-linear-gradient(90deg,transparent,transparent 24px,rgba(34,162,159,0.2) 24px,rgba(34,162,159,0.2) 25px),
    linear-gradient(118deg,transparent 54%,rgba(34,162,159,0.1) 54.4%,transparent 54.8%);
  mask-image:linear-gradient(180deg,black 0%,black 78%,transparent 100%);
  -webkit-mask-image:linear-gradient(180deg,black 0%,black 78%,transparent 100%);
}

body.cpa-page .cpa-effort-grid .cpa-shell,
body.cpa-page .cpa-lens-block .cpa-shell,
body.cpa-page .cpa-section.cpa-section--grid:not(.cpa-rel-section) .cpa-shell,
body.cpa-page .cpa-modules-wrap .cpa-shell,
body.cpa-page .cpa-rel-section .cpa-shell,
body.cpa-page .cpa-transform .cpa-shell{
  position:relative;
  z-index:1;
}

/* -------------------------------------------------------------------------
   Spacing — additional 15–20% compression
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-hero__shell{
  padding:clamp(52px,9.2vw,100px) 0 clamp(40px,6.6vw,72px);
}

body.cpa-page .cpa-hero__grid{
  gap:var(--cpa-p7-split-gap);
}

body.cpa-page .cpa-hero-h1{
  margin-bottom:clamp(var(--bh-space-5),3.7vw,var(--bh-space-7));
}

body.cpa-page .cpa-hero-body{
  margin-top:clamp(var(--bh-space-5),4.1vw,var(--bh-space-7));
}

body.cpa-page .cpa-hero-actions{
  margin-top:clamp(var(--bh-space-5),3.7vw,var(--bh-space-7));
}

body.cpa-page .cpa-section,
body.cpa-page .cpa-lens-block{
  padding-top:var(--cpa-p7-section-y);
  padding-bottom:var(--cpa-p7-section-y);
}

body.cpa-page .cpa-transform,
body.cpa-page .cpa-fit-section{
  padding-top:var(--cpa-p7-section-y-mid);
  padding-bottom:var(--cpa-p7-section-y-mid);
}

body.cpa-page .cpa-effort-grid{
  padding-top:clamp(calc(var(--bh-unit)*10),9.2vw,var(--bh-space-8));
  padding-bottom:var(--cpa-p7-section-y);
}

body.cpa-page .cpa-modules-wrap,
body.cpa-page .cpa-rel-section{
  padding-bottom:clamp(var(--bh-space-4),4.5vw,var(--bh-space-6));
}

body.cpa-page .cpa-split-band,
body.cpa-page .cpa-lens-layout,
body.cpa-page .cpa-fit{
  gap:var(--cpa-p7-split-gap);
}

body.cpa-page .cpa-h2{
  margin-bottom:clamp(var(--bh-space-4),2.9vw,var(--bh-space-6));
}

body.cpa-page .cpa-rule{
  margin:clamp(var(--bh-space-4),2.5vw,var(--bh-space-6)) 0 clamp(var(--bh-space-5),3.3vw,var(--bh-space-7));
}

body.cpa-page .cpa-rule-h{
  margin:clamp(var(--bh-space-5),5vw,var(--bh-space-7)) 0;
}

body.cpa-page .cpa-prose p{
  margin:clamp(var(--bh-space-4),2.6vw,var(--bh-space-5)) 0 0;
}

body.cpa-page .cpa-diag{
  padding:var(--cpa-p7-diag-pad);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.98);
}

body.cpa-page .cpa-diag__head{
  margin-bottom:clamp(var(--bh-space-5),3.3vw,var(--bh-space-6));
  padding-bottom:var(--bh-space-4);
  border-bottom-color:rgba(17,17,17,0.22);
}

body.cpa-page .cpa-diag--mat{
  gap:clamp(var(--bh-space-5),3.3vw,var(--bh-space-6));
  min-height:clamp(340px,46vh,480px);
  padding:
    clamp(var(--bh-space-7),5.8vw,calc(var(--bh-unit)*30))
    clamp(var(--bh-space-7),5.4vw,calc(var(--bh-unit)*26))
    clamp(var(--bh-space-6),5vw,var(--bh-space-8));
}

body.cpa-page .cpa-transform__lede,
body.cpa-page .cpa-modules-lede{
  margin:clamp(var(--bh-space-3),2.5vw,var(--bh-space-4)) 0 clamp(var(--bh-space-6),5.8vw,var(--bh-space-8));
}

body.cpa-page .cpa-transform__foot{
  margin-top:clamp(var(--bh-space-6),5.8vw,var(--bh-space-7));
  padding-top:var(--bh-space-5);
}

body.cpa-page .cpa-xform{
  padding:var(--cpa-p7-diag-pad);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.98);
}

body.cpa-page .cpa-xform__meta{
  margin-bottom:var(--bh-space-5);
}

/* -------------------------------------------------------------------------
   Diagram clarity — shared chrome
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-diag,
body.cpa-page .cpa-xform{
  border-color:rgba(17,17,17,0.28);
}

body.cpa-page .cpa-diag__eyebrow,
body.cpa-page .cpa-xform__eyebrow{
  font-size:10px;
  letter-spacing:0.14em;
  color:rgba(17,17,17,0.58);
}

body.cpa-page .cpa-diag__id{
  font-size:10px;
  letter-spacing:0.15em;
  font-weight:800;
}

/* -------------------------------------------------------------------------
   Diagram — gap (effort section)
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-dgap__panel{
  border-color:rgba(17,17,17,0.3);
  border-width:1px;
}

body.cpa-page .cpa-dgap__tag{
  font-size:9px;
  color:rgba(17,17,17,0.52);
}

body.cpa-page .cpa-dgap__title{
  font-size:var(--bh-text-md);
  font-weight:600;
  color:var(--bh-ink);
}

body.cpa-page .cpa-dgap__link-line{
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(17,17,17,0.55) 15%,rgba(17,17,17,0.55) 85%,transparent);
}

body.cpa-page .cpa-dgap__link-label{
  font-size:9px;
  color:var(--bh-accent);
}

body.cpa-page .cpa-dgap__joint{
  width:7px;
  height:7px;
  box-shadow:0 0 0 1px rgba(34,162,159,0.25);
}

body.cpa-page .cpa-dgap__stem{
  width:2px;
  background:linear-gradient(180deg,rgba(17,17,17,0.62),rgba(17,17,17,0.22));
}

body.cpa-page .cpa-dgap__cycle-label{
  font-size:var(--bh-text-sm);
  letter-spacing:0.1em;
}

body.cpa-page .cpa-dgap__baseline{
  background:rgba(17,17,17,0.22);
}

/* -------------------------------------------------------------------------
   Diagram — lens plane (Advisory changes…)
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-dlens__signal{
  border-color:rgba(17,17,17,0.3);
  border-width:1px;
}

body.cpa-page .cpa-dlens__pill{
  font-size:9px;
  color:rgba(17,17,17,0.56);
  font-weight:700;
}

body.cpa-page .cpa-dlens__block-title{
  font-size:var(--bh-text-md);
  font-weight:600;
  color:var(--bh-ink);
}

body.cpa-page .cpa-dlens__block-sub{
  font-size:var(--bh-text-sm);
  color:var(--bh-ink-3);
}

body.cpa-page .cpa-dlens__spine span{
  width:2px;
  max-width:2px;
  background:linear-gradient(180deg,rgba(17,17,17,0.72),var(--cpa-teal));
}

body.cpa-page .cpa-dlens__core{
  border-color:rgba(17,17,17,0.24);
  border-width:1px;
  color:var(--bh-ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.92),0 1px 0 rgba(17,17,17,0.06);
}

body.cpa-page .cpa-dlens__pill--inv{
  color:rgba(17,17,17,0.58);
}

body.cpa-page .cpa-dlens__core-name{
  font-size:clamp(1.125rem,1.2vw,1.25rem);
  font-weight:700;
  color:var(--bh-ink);
}

body.cpa-page .cpa-dlens__core-hint{
  font-size:var(--bh-text-sm);
  letter-spacing:0.08em;
  color:var(--bh-ink-3);
}

body.cpa-page .cpa-dlens__branch-line{
  width:2px;
  background:linear-gradient(180deg,rgba(17,17,17,0.68),rgba(17,17,17,0.28));
}

body.cpa-page .cpa-dlens__branch-line--accent{
  background:linear-gradient(180deg,var(--cpa-teal),rgba(34,162,159,0.35));
}

body.cpa-page .cpa-dlens__leaf{
  border-color:rgba(17,17,17,0.26);
  border-width:1px;
}

body.cpa-page .cpa-dlens__leaf--dark{
  border-color:rgba(17,17,17,0.32);
  border-left:2px solid var(--bh-accent);
}

body.cpa-page .cpa-dlens__leaf-tag{
  font-size:9px;
  color:rgba(17,17,17,0.52);
}

body.cpa-page .cpa-dlens__leaf-title{
  font-size:var(--bh-text-md);
  font-weight:600;
}

body.cpa-page .cpa-dlens__recon-path{
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(17,17,17,0.42));
}

body.cpa-page .cpa-dlens__recon-title{
  font-size:var(--bh-text-sm);
  color:rgba(17,17,17,0.58);
}

body.cpa-page .cpa-dlens__baseline{
  background:rgba(17,17,17,0.22);
}

/* -------------------------------------------------------------------------
   Diagram — maturity (Structure is what makes…)
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-dmat__col{
  border-color:rgba(17,17,17,0.26);
  border-width:1px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.96);
}

body.cpa-page .cpa-dmat__col--mid{
  border-color:rgba(34,162,159,0.48);
  border-width:1px;
  box-shadow:inset 0 0 0 1px rgba(34,162,159,0.1),inset 0 1px 0 rgba(255,255,255,0.96);
}

body.cpa-page .cpa-dmat__phase{
  font-size:10px;
  letter-spacing:0.13em;
  color:rgba(17,17,17,0.58);
  margin-bottom:var(--bh-space-4);
}

body.cpa-page .cpa-dmat__col--mid .cpa-dmat__phase{
  color:var(--bh-accent);
  font-weight:800;
}

body.cpa-page .cpa-dmat__viz--frag span{
  width:12px;
  height:12px;
  border-color:rgba(17,17,17,0.42);
  border-width:1px;
}

body.cpa-page .cpa-dmat__viz--couple span:not(.cpa-dmat__hub){
  width:14px;
  height:14px;
  border-color:rgba(17,17,17,0.52);
}

body.cpa-page .cpa-dmat__hub{
  width:16px;
  height:16px;
  box-shadow:0 0 0 1px rgba(34,162,159,0.3);
}

body.cpa-page .cpa-dmat__viz--couple::before,
body.cpa-page .cpa-dmat__viz--couple::after{
  background:rgba(17,17,17,0.52);
}

body.cpa-page .cpa-dmat__viz--couple::before{
  width:2px;
}

body.cpa-page .cpa-dmat__viz--couple::after{
  height:2px;
}

body.cpa-page .cpa-dmat__viz--stack span{
  height:16px;
  border-color:rgba(17,17,17,0.32);
  background:linear-gradient(90deg,rgba(34,162,159,0.22),rgba(255,255,255,0.94));
}

body.cpa-page .cpa-dmat__note{
  font-size:var(--bh-text-sm);
  color:var(--bh-ink-3);
  line-height:1.48;
}

body.cpa-page .cpa-dmat__arrow span{
  height:2px;
  background:linear-gradient(90deg,rgba(17,17,17,0.28),var(--cpa-teal),rgba(17,17,17,0.28));
}

body.cpa-page .cpa-dmat__baseline{
  background:rgba(17,17,17,0.22);
}

body.cpa-page .cpa-diag--mat .cpa-dmat__col{
  padding:clamp(var(--bh-space-5),3.3vw,var(--bh-space-6));
  min-height:clamp(152px,20vw,220px);
}

body.cpa-page .cpa-diag--mat .cpa-dmat__phase{
  margin-bottom:var(--bh-space-4);
}

body.cpa-page .cpa-diag--mat .cpa-dmat__viz{
  min-height:88px;
  margin-bottom:var(--bh-space-3);
}

body.cpa-page .cpa-diag--mat .cpa-dmat__arrow{
  padding-top:clamp(22px,5.8vw,46px);
}

/* -------------------------------------------------------------------------
   Diagram — transformation (What begins to shift)
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-xform__stage{
  border-color:rgba(17,17,17,0.26);
  border-width:1px;
  padding:clamp(var(--bh-space-5),3.3vw,var(--bh-space-6));
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.96);
}

body.cpa-page .cpa-xform__stage--mid{
  border-color:rgba(34,162,159,0.48);
  box-shadow:inset 0 0 0 1px rgba(34,162,159,0.1),inset 0 1px 0 rgba(255,255,255,0.96);
}

body.cpa-page .cpa-xform__phase{
  font-size:10px;
  letter-spacing:0.14em;
  color:rgba(17,17,17,0.52);
  font-weight:700;
}

body.cpa-page .cpa-xform__stage--mid .cpa-xform__phase{
  color:var(--bh-accent);
}

body.cpa-page .cpa-xform__name{
  font-size:clamp(1.125rem,1.15vw,1.25rem);
  font-weight:700;
  color:var(--bh-ink);
}

body.cpa-page .cpa-xform__text{
  font-size:var(--bh-text-md);
  line-height:1.52;
  color:var(--bh-ink-3);
}

body.cpa-page .cpa-xform__glyph--scatter span{
  width:10px;
  height:10px;
  border-color:rgba(17,17,17,0.42);
}

body.cpa-page .cpa-xform__glyph--merge span{
  width:40px;
  height:40px;
  border-width:2px;
  background:rgba(34,162,159,0.16);
}

body.cpa-page .cpa-xform__glyph--stack span{
  height:10px;
  border-color:rgba(17,17,17,0.32);
  background:linear-gradient(90deg,rgba(34,162,159,0.22),#fff);
}

body.cpa-page .cpa-xform__bridge-line{
  width:2px;
  background:linear-gradient(180deg,transparent,rgba(34,162,159,0.72),transparent);
}

body.cpa-page .cpa-xform__bridge-tag{
  font-size:9px;
  letter-spacing:0.13em;
  color:rgba(17,17,17,0.52);
  font-weight:700;
}

/* -------------------------------------------------------------------------
   System layers — editorial presentation · reduced card bulk
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-modules{
  gap:clamp(var(--bh-space-4),3.8vw,var(--bh-space-6));
  align-items:start;
}

body.cpa-page .cpa-module{
  padding:clamp(var(--bh-space-4),3.2vw,var(--bh-space-5)) clamp(var(--bh-space-5),3.6vw,var(--bh-space-6));
  border-color:rgba(17,17,17,0.18);
  background:linear-gradient(165deg,rgba(255,255,255,0.98) 0%,rgba(247,247,247,0.72) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.96);
}

body.cpa-page .cpa-module--emphasis{
  background:linear-gradient(155deg,#2a2a2a 0%,#181818 52%,#1e1e1e 100%);
  border-color:rgba(255,255,255,0.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);
}

body.cpa-page .cpa-module__accent{
  width:3px;
}

body.cpa-page .cpa-module__head{
  margin-bottom:var(--bh-space-3);
}

body.cpa-page .cpa-module__id{
  width:28px;
  height:28px;
  margin-bottom:var(--bh-space-2);
  font-size:11px;
  font-weight:700;
  border-radius:0;
}

body.cpa-page .cpa-module__title{
  font-size:clamp(1.3125rem,1.45vw,1.4375rem);
  line-height:1.24;
  font-weight:600;
}

body.cpa-page .cpa-module--emphasis .cpa-module__title{
  font-size:clamp(1.3125rem,1.45vw,1.4375rem);
  color:#f5f5f5;
}

body.cpa-page .cpa-module__role{
  margin-top:var(--bh-space-1);
  font-size:var(--bh-text-sm);
}

body.cpa-page .cpa-module__body{
  font-size:var(--bh-text-md);
  line-height:1.52;
  color:var(--bh-ink-3);
}

body.cpa-page .cpa-module--emphasis .cpa-module__body{
  color:rgba(230,230,230,0.82);
}

/* -------------------------------------------------------------------------
   CTA anchor — texture · contrast · depth
   ------------------------------------------------------------------------- */
body.cpa-page .cpa-anchor{
  background:
    radial-gradient(88% 75% at 8% 22%,rgba(34,162,159,0.14) 0%,transparent 52%),
    linear-gradient(168deg,#060606 0%,#101010 42%,#040404 100%);
}

body.cpa-page .cpa-anchor__texture{
  opacity:0.72;
  background-image:
    repeating-linear-gradient(-11deg,transparent 0,transparent 18px,rgba(255,255,255,0.078) 18px,rgba(255,255,255,0.078) 19px),
    linear-gradient(90deg,rgba(255,255,255,0.085) 1px,transparent 1px),
    repeating-linear-gradient(0deg,transparent 0,transparent 32px,rgba(34,162,159,0.05) 32px,rgba(34,162,159,0.05) 33px);
  background-size:auto,48px 100%,100% 100%;
  mask-image:linear-gradient(90deg,black 0%,black 76%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,black 0%,black 76%,transparent 100%);
}

body.cpa-page .cpa-anchor__mark{
  height:2px;
  background:linear-gradient(90deg,var(--bh-accent) 0%,var(--bh-accent) 36%,rgba(255,255,255,0.32) 36%,rgba(255,255,255,0.32) 100%);
}

body.cpa-page .cpa-anchor__kicker{
  color:rgba(235,235,235,0.52);
}

body.cpa-page .cpa-anchor__headline{
  color:#fff;
  text-shadow:0 1px 0 rgba(0,0,0,0.35);
}

body.cpa-page .cpa-anchor__lead{
  color:rgba(235,235,235,0.82);
}

body.cpa-page .cpa-anchor__actions{
  margin-top:clamp(var(--bh-space-6),5.8vw,var(--bh-space-8));
}

@media (max-width:960px){
  body.cpa-page .cpa-xform__bridge-line{
    height:2px;
  }
}
