﻿/**
 * Britehouse — Final Revision Layer 2
 * "BRITEHOUSE | FINAL CREATIVE & PRODUCTION REVIEW" implementation
 * Loads LAST on every page — after production-rev.css
 */

/* =========================================================================
   GLOBAL — Typography (final authority)
   72–84px hero · 44–56px section · 20–24px body · 13–15px labels · 14–16px buttons
   ========================================================================= */

h1,
.hero-title,
[class*="hero-title"],
.ap-hero h1,
.ab-hero-title,
.sr-hero-title,
.ct-hero__title,
.ins-hero h1,
.cpa-hero h1 {
  font-size: clamp(4.5rem, 6.8vw, 5.25rem);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -0.036em;
}

.hero-title__line:not(.hero-title__line--mass) {
  font-size: clamp(4.5rem, 6.8vw, 5.25rem);
}
.hero-title__line--mass {
  font-size: clamp(3.875rem, 6vw, 4.875rem);
}

h2,
.statement-heading,
.ap-h2, .ab-h2, .sr-h2,
.ct-sidebar__title,
.ct-form-panel__title,
.ins-h2, .cpa-h2 {
  font-size: clamp(2.75rem, 4.2vw, 3.5rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.028em;
}

p:not([class]),
.body-text,
[class*="__prose"] p,
[class*="__body"] p {
  font-size: clamp(1.25rem, 1.4vw, 1.5rem);
  line-height: 1.52;
}

[class*="kicker"],
[class*="__eyebrow"],
[class*="__label"]:not([for]),
[class*="__phase"],
[class*="__tag"],
.eyebrow {
  font-size: clamp(0.8125rem, 0.9vw, 0.9375rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

[class*="-btn"],
[class*="-submit"],
.bh-btn,
button[type="submit"] {
  font-size: clamp(0.875rem, 1vw, 1rem);
  font-weight: 500;
  letter-spacing: 0.04em;
}

/* =========================================================================
   GLOBAL — Section vertical compression (25–35%)
   ========================================================================= */

section,
.section,
[class*="-section"]:not([class*="__"]),
[class*="-block"]:not(span):not(div[class*="stage"]) {
  padding-top: clamp(2.5rem, 4.2vw, 3.75rem);
  padding-bottom: clamp(2.5rem, 4.2vw, 3.75rem);
}

/* =========================================================================
   GLOBAL — Button sizing: ~20% reduced
   ========================================================================= */

[class*="-btn"],
[class*="-submit"],
.bh-btn,
button[type="submit"] {
  padding: 0.65rem 1.4rem;
  min-height: 2.4rem;
  min-width: 0;
  border-radius: 0;
  box-shadow: none;
}

[class*="-btn"]:hover,
.bh-btn:hover,
button[type="submit"]:hover {
  box-shadow: none;
}

/* =========================================================================
   GLOBAL — Teal restraint: structural lines only
   ========================================================================= */

.bh-teal-divider,
.bh-teal-rail {
  border-left: 2px solid rgba(34,162,159,0.45);
  padding-left: 1.25rem;
}

/* =========================================================================
   NAVIGATION
   ========================================================================= */

.nav-inner { min-height: 68px; }

.nav-links a {
  font-size: clamp(0.8125rem, 0.85vw, 0.9375rem);
  font-weight: 500;
  letter-spacing: 0.07em;
  color: rgba(17,17,17,0.78);
}

.nav-links a:hover {
  color: #111;
  border-bottom-color: rgba(34,162,159,0.6);
}

.nav-links a[aria-current="page"] {
  font-weight: 600;
  border-bottom-color: rgba(34,162,159,0.7);
}

/* =========================================================================
   FOOTER
   ========================================================================= */

.bh-footer {
  margin-top: clamp(2rem, 4vw, 3rem);
  background-color: #5A5854;
}

.bh-footer__grid {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

.bh-footer__logo { color: rgba(255,255,255,0.96) !important; margin-bottom: 0.75rem; }
.bh-footer__tagline { color: rgba(255,255,255,0.88) !important; font-size: 1.0625rem; line-height: 1.5; }
.bh-footer__systems { color: rgba(255,255,255,0.62) !important; font-size: 0.8125rem; letter-spacing: 0.08em; }
.bh-footer__links a { color: rgba(255,255,255,0.94) !important; font-size: 0.875rem; letter-spacing: 0.06em; opacity: 1; }
.bh-footer__links a:hover { color: #fff !important; border-left-color: rgba(34,162,159,0.65); }
.bh-footer__quote { color: rgba(255,255,255,0.92) !important; font-size: clamp(1rem,1.4vw,1.125rem); line-height: 1.6; }
.bh-footer__copy { color: rgba(255,255,255,0.62) !important; font-size: 0.8125rem; letter-spacing: 0.06em; }
.bh-footer__rule { opacity: 0.28; }
.bh-footer__base { padding-top: 1rem; padding-bottom: 0.75rem; border-top-color: rgba(255,255,255,0.14); }

/* =========================================================================
   IMAGE SYSTEM — Remove disallowed photography
   ========================================================================= */

img[src*="assets/home/"],
img[src*="unsplash"],
img[src*="pexels"],
img[src*="office"],
img[src*="workspace"],
img[src*="people"],
.bh-env__photo { display: none !important; }

[class*="hero-visual"] [class*="arch__crop"] {
  margin-right: calc(-1 * clamp(32px,8vw,120px));
  width: calc(100% + clamp(32px,8vw,120px));
  max-width: none;
  border-radius: 0;
}

/* IMAGE 2 — Blue Structural Grid (CPA systems, pos-section) */
body.home .pos-section {
  position: relative;
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
  overflow: hidden;
}
body.home .pos-section::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 52%;
  pointer-events: none;
  z-index: 0;
  background-image: url("assets/arch/web-image-2-blue-grid.png");
  background-repeat: no-repeat;
  background-position: 95% 50%;
  background-size: cover;
  opacity: 0.2;
  mask-image: linear-gradient(270deg, black 0%, black 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(270deg, black 0%, black 50%, transparent 100%);
}
body.home .pos-layout,
body.home .pos-copy { position: relative; z-index: 1; }

/* IMAGE 3 — Reflective Gold (Who We Work With / op-profile) */
body.home .op-profile {
  position: relative;
  overflow: hidden;
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.home .op-profile::after {
  content: "";
  position: absolute;
  top: 0; right: -5%; bottom: 0;
  width: 48%;
  pointer-events: none;
  z-index: 0;
  background-image: url("assets/arch/web-image-3-gold-reflective.png");
  background-repeat: no-repeat;
  background-position: 100% 50%;
  background-size: cover;
  opacity: 0.15;
  mask-image: linear-gradient(270deg, black 0%, black 45%, transparent 100%);
  -webkit-mask-image: linear-gradient(270deg, black 0%, black 45%, transparent 100%);
}
body.home .op-profile-layout,
body.home .op-profile-inner { position: relative; z-index: 1; }

/* IMAGE 4 — Diagonal Dual-Panel (About, Contact footer) */
body.about-page .ab-hero-visual .ab-arch__crop,
body.about-page .ab-section--origin .ab-origin__visual .ab-arch__crop {
  background-image: url("assets/arch/web-image-4-diagonal-panels.png");
  background-repeat: no-repeat;
  background-size: 125% auto;
  background-position: 78% 40%;
}
body.about-page .ab-section--doctrine .ab-doctrine__veil::after {
  content: "";
  position: absolute; inset: 0;
  background-image: url("assets/arch/web-image-4-diagonal-panels.png");
  background-size: cover;
  background-position: 82% 36%;
  opacity: 0.14;
  pointer-events: none;
  filter: grayscale(1) contrast(1.08);
}
body.contact-page .bh-footer__texture {
  background:
    linear-gradient(180deg, rgba(90,88,84,0.96) 0%, rgba(90,88,84,0.88) 100%),
    url("assets/arch/web-image-4-diagonal-panels.png");
  background-size: 100% 100%, cover;
  background-position: center, 88% 28%;
  opacity: 0.42;
}

/* IMAGE 5 — Dark Diamond Panel (dark anchor sections) */
body.approach .ap-anchor__texture::after,
body.strategic-page .sr-anchor-dark__texture::after,
body.insights-page .ins-anchor__texture::after,
body.about-page .ab-anchor-dark__texture::after,
body.home .final-section__texture {
  background:
    linear-gradient(118deg, transparent 46%, rgba(34,162,159,0.07) 46.4%, transparent 46.8%),
    url("assets/arch/web-image-5-diamond-panel.png");
  background-size: 100% 100%, cover;
  background-position: center, 68% 32%;
  filter: grayscale(0.15) contrast(1.12);
  opacity: 0.48;
}

/* =========================================================================
   PAGE 1 — HOMEPAGE
   ========================================================================= */

body.home .hero { min-height: min(460px,62vh); overflow: hidden; }
body.home .hero-split {
  padding-top: clamp(1.5rem,3vw,2.75rem);
  padding-bottom: clamp(1.25rem,2vw,2rem);
  gap: clamp(1.5rem,4vw,3rem);
}
body.home .hero-visual { min-height: clamp(220px,30vw,380px); }

body.home .btn-primary,
body.home .hero-main [class*="-btn"] { padding: 0.65rem 1.35rem; }

/* Problem Section */
body.home .problem-section {
  position: relative;
  padding-top: clamp(2rem,3.8vw,3.25rem);
  padding-bottom: clamp(2rem,3.8vw,3.25rem);
}
body.home .problem-copy {
  position: relative;
  padding-left: 1.25rem;
  border-left: 2px solid rgba(34,162,159,0.45);
}
body.home .problem-copy p,
body.home .problem-copy .body-text {
  margin-top: 0.45rem; margin-bottom: 0.45rem;
  font-size: clamp(1.25rem,1.4vw,1.5rem); line-height: 1.52;
}
body.home .problem-standout { margin: 1.25rem 0; padding: 1rem 0 1rem 0.75rem; }

/* Financial Performance System */
body.home .system-section {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.home .system-section .statement-heading::before,
body.home .system-copy > h2::before {
  content: "";
  display: block;
  width: 3.5rem; height: 1px;
  background: linear-gradient(90deg, rgba(34,162,159,0.7) 0%, rgba(34,162,159,0.7) 42%, rgba(17,17,17,0.1) 42%, rgba(17,17,17,0.1) 100%);
  margin-bottom: 1rem;
}
body.home .system-layout { gap: clamp(1.75rem,3.5vw,3rem); }

/* Comparison Section */
body.home .contrast-section {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.home .contrast-flow {
  display: grid; grid-template-columns: 1fr 1fr; gap: 2rem;
  border-top: 1px solid rgba(17,17,17,0.1); padding-top: 1.5rem; margin-top: 1.25rem;
}
body.home .ct-head {
  font-size: 0.875rem; font-weight: 600; letter-spacing: 0.09em; text-transform: uppercase;
  padding-bottom: 0.75rem; border-bottom: 1px solid rgba(17,17,17,0.1); margin-bottom: 0.75rem;
}
body.home .ct-item {
  font-size: clamp(1rem,1.2vw,1.125rem); padding: 0.3rem 0;
  border-bottom: none; background: transparent; box-shadow: none;
}

/* Final CTA */
body.home .final-section {
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%);
  color: #f5f5f5;
  padding-top: clamp(3rem,5vw,4.5rem);
  padding-bottom: clamp(3rem,5vw,4.5rem);
}
body.home .btn-final-primary {
  padding: 0.65rem 1.35rem; font-size: 0.9375rem;
  background: rgba(245,245,240,0.96); color: #111;
  border-color: rgba(255,255,255,0.3);
}
body.home .btn-final-primary:hover {
  background: transparent; color: #fff; border-color: rgba(255,255,255,0.45);
}

/* =========================================================================
   PAGE 2 — APPROACH
   ========================================================================= */

body.approach .ap-hero {
  min-height: min(400px,58vh);
  padding-top: clamp(1.5rem,3vw,2.5rem);
  padding-bottom: clamp(1.5rem,3vw,2.25rem);
}
body.approach .ap-hero-grid { align-items: center; gap: clamp(1.5rem,4vw,3rem); }
body.approach .ap-framework { margin-top: 1.5rem; margin-bottom: 1.25rem; }
body.approach .ap-framework__visual,
body.approach .ap-framework__pillar { padding: 1.25rem 1rem; min-height: 0; }
body.approach .ap-framework__name { font-size: clamp(1.125rem,1.4vw,1.375rem); font-weight: 600; }
body.approach .ap-framework__desc,
body.approach .ap-framework__points li { font-size: clamp(1rem,1.2vw,1.125rem); line-height: 1.52; }
body.approach .ap-framework__base { padding: 0.75rem 1rem; }
body.approach .ap-rule { height: 2px; opacity: 0.85; }
body.approach .ap-block--pillars,
body.approach .ap-block--texture {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.approach .ap-pillar { padding: 1.25rem 1rem; }
body.approach .ap-anchor {
  padding-top: clamp(3rem,5vw,4.5rem);
  padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%);
  color: #f5f5f5;
}
body.approach .ap-anchor__headline { color: #fff; }
body.approach .ap-anchor__lead { color: rgba(235,235,235,0.82); }
body.approach .bh-footer .bh-footer__grid { padding-top: 2rem; padding-bottom: 2rem; }

/* =========================================================================
   PAGE 3 — OPERATING PROFILE
   ========================================================================= */

body.home .op-profile-arch .bh-env__photo,
body.home .op-profile-arch img:not([class*="logo"]) { display: none !important; }
body.home .op-profile-arch .bh-arch__crop {
  background-image: url("assets/arch/web-image-1-diamond-geometry.png");
  background-size: 130% auto;
  background-position: 80% 42%;
  opacity: 0.8;
  clip-path: polygon(12% 0, 100% 0, 100% 100%, 0 100%);
}
body.home .how-section {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.home .how-editorial { gap: clamp(1.5rem,3vw,2.5rem); margin-top: 1.25rem; }
body.home .how-editorial__col p,
body.home .op-profile-body p {
  font-size: clamp(1.25rem,1.4vw,1.375rem); line-height: 1.52; margin-bottom: 0.65rem;
}
body.home .op-profile .bh-btn,
body.home .op-profile [class*="-btn"] {
  padding: 0.6rem 1.25rem; align-self: flex-start; margin-top: 0.65rem;
}

/* =========================================================================
   PAGE 4 — FOR CPA FIRMS
   ========================================================================= */

body.cpa-page [class*="grid-overlay"]::before,
body.cpa-page [class*="__grid-mark"],
body.cpa-page [class*="__mesh"]:not([class*="sysmap"]) { display: none !important; opacity: 0 !important; }

body.cpa-page svg line[stroke],
body.cpa-page svg path[stroke],
body.cpa-page svg rect[stroke] { stroke-width: 1.5; opacity: 0.95; }
body.cpa-page svg text { fill: rgba(245,245,245,0.98); }

body.cpa-page section,
body.cpa-page [class*="cpa-block"],
body.cpa-page [class*="cpa-section"] {
  padding-top: clamp(2rem,3.5vw,3.25rem);
  padding-bottom: clamp(2rem,3.5vw,3.25rem);
}

body.cpa-page .cpa-effort-grid,
body.cpa-page .cpa-lens-block,
body.cpa-page .cpa-modules-wrap,
body.cpa-page .cpa-transform,
body.cpa-page .cpa-section.cpa-section--grid:not(.cpa-rel-section) {
  position: relative; overflow: hidden;
}
body.cpa-page .cpa-effort-grid::before,
body.cpa-page .cpa-lens-block::before,
body.cpa-page .cpa-modules-wrap::before,
body.cpa-page .cpa-transform::before,
body.cpa-page .cpa-section.cpa-section--grid:not(.cpa-rel-section)::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: url("assets/arch/web-image-2-blue-grid.png");
  background-repeat: no-repeat; background-position: 94% 42%;
  background-size: min(58%,720px) auto;
  opacity: 0.2;
  mask-image: linear-gradient(270deg, black 0%, black 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(270deg, black 0%, black 50%, transparent 100%);
}
body.cpa-page [class*="cpa-shell"] { position: relative; z-index: 1; }

body.cpa-page .cpa-anchor {
  padding-top: clamp(3rem,5vw,4.5rem);
  padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%);
  color: #f5f5f5;
}
body.cpa-page .cpa-btn,
body.cpa-page [class*="-btn"] { padding: 0.65rem 1.4rem; }

/* =========================================================================
   PAGE 5 — INSIGHTS
   ========================================================================= */

body.insights-page [class*="-card"],
body.insights-page [class*="-module"] {
  border: none; box-shadow: none; border-radius: 0; background: transparent;
}
body.insights-page .ins-observe {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
  border-top: 1px solid rgba(17,17,17,0.08);
}
body.insights-page [class*="grid-overlay"]::before,
body.insights-page [class*="__mesh"]:not([class*="sysmap"]) { opacity: 0.05 !important; }
body.insights-page .ins-anchor {
  padding-top: clamp(3rem,5vw,4.5rem);
  padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%);
  color: #f5f5f5;
}
body.insights-page .ins-anchor__headline { color: #fff; }
body.insights-page .ins-anchor__lead { color: rgba(235,235,235,0.82); }
body.insights-page .ins-doctrine {
  padding-top: clamp(2.5rem,4vw,3.5rem);
  padding-bottom: clamp(2.5rem,4vw,3.5rem);
}
body.insights-page .ins-observe::after { opacity: 0.14; }

/* =========================================================================
   PAGE 6 — STRATEGIC REVIEW
   ========================================================================= */

body.strategic-page .sr-block {
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}

/* What Fragmentation Produces */
body.strategic-page .sr-fragmentation { background: #fff; position: relative; }
body.strategic-page .sr-fragmentation__inner {
  position: relative;
  padding-left: 1.25rem;
  border-left: 2px solid rgba(34,162,159,0.45);
}
body.strategic-page .sr-fragmentation__list { list-style: none; padding: 0; margin: 1.25rem 0 0; }
body.strategic-page .sr-fragmentation__list li {
  font-size: clamp(1.125rem,1.3vw,1.375rem); line-height: 1.52;
  padding: 0.35rem 0; color: #111;
  border-bottom: 1px solid rgba(17,17,17,0.06);
}
body.strategic-page .sr-fragmentation__list li:last-child { border-bottom: none; }

/* Directional Architecture Diagram */
body.strategic-page .sr-flow { border: 1px solid rgba(17,17,17,0.1); padding: 1.5rem; }
body.strategic-page .sr-flow__stage {
  border: 1px solid rgba(17,17,17,0.16); padding: 1.25rem 1rem;
}
body.strategic-page .sr-flow__name {
  font-size: clamp(1rem,1.2vw,1.125rem); font-weight: 600; color: #111;
}
body.strategic-page .sr-flow__text {
  font-size: clamp(1rem,1.15vw,1.125rem); line-height: 1.52; color: #2B2B2B;
}
body.strategic-page .sr-flow__bridge { border-top: 1px solid rgba(34,162,159,0.35); }

/* Comparison Block */
body.strategic-page .sr-compare {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border: 1px solid rgba(17,17,17,0.12); margin-top: 1.5rem;
}
body.strategic-page .sr-compare__col {
  padding: 1.5rem 1.25rem; border-right: 1px solid rgba(17,17,17,0.1);
}
body.strategic-page .sr-compare__col:last-child { border-right: none; }
body.strategic-page .sr-compare__col--strategic { border-left: 2px solid rgba(34,162,159,0.45); }
body.strategic-page .sr-compare__col-head {
  font-size: 0.875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(17,17,17,0.65); margin-bottom: 1rem; padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(17,17,17,0.1);
}
body.strategic-page .sr-compare__items { list-style: none; padding: 0; margin: 0; }
body.strategic-page .sr-compare__items li {
  font-size: clamp(1rem,1.15vw,1.125rem); line-height: 1.55; padding: 0.3rem 0; color: #111;
}

/* Dark sections */
body.strategic-page .sr-anchor-dark {
  padding-top: clamp(3rem,5vw,4.5rem); padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%); color: #f5f5f5;
}
body.strategic-page .sr-anchor-dark__headline,
body.strategic-page .sr-intake__title { color: #fff; opacity: 1; }
body.strategic-page .sr-anchor-dark__body p,
body.strategic-page .sr-intake__lead { color: rgba(235,235,235,0.82); opacity: 1; }
body.strategic-page .sr-intake {
  padding-top: clamp(3rem,5vw,4.5rem); padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%); color: #f5f5f5;
}
body.strategic-page .sr-intake__panel {
  border: 1px solid rgba(255,255,255,0.12); background: rgba(255,255,255,0.04);
}
body.strategic-page .sr-form label {
  color: rgba(235,235,235,0.88); font-size: 0.9375rem; font-weight: 500; letter-spacing: 0.04em;
}
body.strategic-page .sr-form input,
body.strategic-page .sr-form__field {
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18);
  color: #fff; padding: 0.65rem 0.75rem; font-size: 1rem; border-radius: 0; width: 100%;
}
body.strategic-page .sr-form input:focus {
  border-color: rgba(34,162,159,0.65); outline: none; box-shadow: 0 0 0 2px rgba(34,162,159,0.12);
}

/* =========================================================================
   PAGE 7 — ABOUT
   ========================================================================= */

body.about-page,
body.about-page p,
body.about-page h1, body.about-page h2, body.about-page h3,
body.about-page li { color: #111111; }

body.about-page .ab-prose p,
body.about-page .ab-different__lead,
body.about-page .ab-different__claim,
body.about-page .ab-build__deck { color: #2B2B2B; opacity: 1; }

body.about-page .ab-hero {
  min-height: min(420px,60vh);
  padding-top: clamp(1.5rem,3vw,2.5rem);
  padding-bottom: clamp(1.5rem,3vw,2.25rem);
}
body.about-page .ab-arch__crop { opacity: 0.78; }
body.about-page .ab-arch__mesh { opacity: 0.58 !important; }
body.about-page .ab-arch__facets,
body.about-page .ab-arch__facet { opacity: 0.52 !important; }

body.about-page .ab-doctrine__wall { gap: 1px; border: 1px solid rgba(17,17,17,0.14); }
body.about-page .ab-doctrine__cell { border: 1px solid rgba(17,17,17,0.18); padding: 1.25rem 1rem; }
body.about-page .ab-doctrine__mark { color: rgba(17,17,17,0.65); opacity: 1; font-weight: 600; }
body.about-page .ab-doctrine__stmt {
  color: #111; font-weight: 500; opacity: 1;
  font-size: clamp(1.125rem,1.3vw,1.25rem); line-height: 1.4;
}

body.about-page .ab-section--notacc {
  padding-top: clamp(2rem,3.5vw,3rem); padding-bottom: clamp(2rem,3.5vw,3rem);
}
body.about-page .ab-head--invert,
body.about-page [id="ab-s-not"] { color: #fff; opacity: 1; text-shadow: 0 1px 3px rgba(0,0,0,0.25); }
body.about-page .ab-kicker--invert { opacity: 0.82; letter-spacing: 0.12em; }
body.about-page .ab-notacc__prose p,
body.about-page .ab-notacc__resolve { color: rgba(245,245,240,0.9); opacity: 1; }

body.about-page .ab-section { padding-top: clamp(2rem,3.5vw,3rem); padding-bottom: clamp(2rem,3.5vw,3rem); }

body.about-page .ab-anchor-dark {
  padding-top: clamp(3rem,5vw,4.5rem); padding-bottom: clamp(3rem,5vw,4.5rem);
  background: linear-gradient(168deg,#0a0a0a 0%,#141414 46%,#070707 100%); color: #f5f5f5;
}
body.about-page .ab-anchor-dark__headline { color: #fff; opacity: 1; }
body.about-page .ab-anchor-dark__body p { color: rgba(245,245,240,0.88); opacity: 1; }
body.about-page .ab-anchor-dark__link { color: #fff; }
body.about-page .ab-anchor-dark__note { color: rgba(235,235,235,0.68); }

body.about-page .bh-footer--about .bh-footer__logo,
body.about-page .bh-footer--about .bh-footer__tagline,
body.about-page .bh-footer--about .bh-footer__systems,
body.about-page .bh-footer--about .bh-footer__links a,
body.about-page .bh-footer--about .bh-footer__quote { color: rgba(245,245,240,0.96) !important; opacity: 1; }

/* =========================================================================
   PAGE 8 — CONTACT
   ========================================================================= */

body.contact-page .ct-hero {
  min-height: min(280px,40vh);
  padding-top: clamp(2rem,3.5vw,3rem);
  padding-bottom: clamp(2rem,3.5vw,3rem);
}

body.contact-page .ct-field__input {
  border: 1px solid rgba(17,17,17,0.35);
  background: rgba(255,255,255,0.98);
  font-size: clamp(1rem,1.1vw,1.0625rem);
  padding: 0.65rem 0.75rem;
  color: #111; border-radius: 0; width: 100%; box-sizing: border-box;
  transition: border-color 0.22s ease;
}
body.contact-page .ct-field__input:focus {
  border-color: rgba(34,162,159,0.65); outline: none;
  box-shadow: 0 0 0 2px rgba(34,162,159,0.12);
}
body.contact-page .ct-field__input--area,
body.contact-page textarea.ct-field__input { min-height: 7.5rem; resize: vertical; }
body.contact-page .ct-field { margin-bottom: 1rem; }
body.contact-page .ct-field__label {
  display: block; font-size: 0.9375rem; font-weight: 500;
  letter-spacing: 0.04em; color: #2B2B2B; margin-bottom: 0.35rem;
}
body.contact-page .ct-form-submit {
  padding: 0.65rem 1.4rem; min-width: 0; width: auto;
  border-radius: 0; font-size: 0.9375rem; font-weight: 500; letter-spacing: 0.04em;
}
body.contact-page .ct-form__actions { display: flex; justify-content: flex-start; margin-top: 1.25rem; }
body.contact-page .ct-legal {
  font-size: 0.8125rem; color: rgba(17,17,17,0.65);
  margin-top: 1rem; line-height: 1.55;
  border-top: 1px solid rgba(17,17,17,0.08); padding-top: 0.75rem;
}
body.contact-page .bh-footer .bh-footer__links a { color: rgba(245,245,240,0.94) !important; }
body.contact-page .bh-footer .bh-footer__rule { opacity: 0.28; }

/* =========================================================================
   GLOBAL FINAL — Remove disallowed elements
   ========================================================================= */

[class*="-spacer--xl"],
[class*="-spacer--xxl"],
[class*="-gap--xl"] { height: 0 !important; margin: 0 !important; }

[class*="-card"]:not([class*="doctrine"]):not([class*="channel"]) {
  border-radius: 0 !important; box-shadow: none !important;
}

body { background-color: #ffffff; }
body main p, body main li { opacity: 1; }
[data-staging], [data-placeholder], .todo, .wip, .placeholder { display: none !important; }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */

@media (max-width: 768px) {
  h1, .hero-title, [class*="hero-title"],
  .ap-hero h1, .ab-hero-title, .sr-hero-title,
  .ct-hero__title, .ins-hero h1, .cpa-hero h1 {
    font-size: clamp(2.75rem,8vw,4rem); line-height: 1.06;
  }
  h2, .statement-heading, .ap-h2, .ab-h2, .sr-h2 {
    font-size: clamp(1.875rem,6vw,2.75rem);
  }
  body.home .contrast-flow { grid-template-columns: 1fr; }
  body.strategic-page .sr-compare { grid-template-columns: 1fr; }
  body.strategic-page .sr-compare__col { border-right: none; border-bottom: 1px solid rgba(17,17,17,0.1); }
  body.contact-page .ct-form-submit { width: 100%; }
  body.home .pos-section::after,
  body.home .op-profile::after { display: none; }
  section, .section, [class*="-section"]:not([class*="__"]) {
    padding-top: 2rem; padding-bottom: 2rem;
  }
  .bh-footer__grid { padding-top: 2rem; padding-bottom: 2rem; }
}

@media (max-width: 480px) {
  h1, [class*="hero-title"], .ap-hero h1 { font-size: clamp(2.25rem,10vw,3.5rem); }
  h2 { font-size: clamp(1.625rem,7.5vw,2.5rem); }
  body.home .hero { min-height: min(360px,55vh); }
  section, .section, [class*="-section"]:not([class*="__"]) {
    padding-top: 1.75rem; padding-bottom: 1.75rem;
  }
}

/* =========================================================================
   ACCESSIBILITY
   ========================================================================= */

*:focus-visible {
  outline: 2px solid rgba(34,162,159,0.85);
  outline-offset: 3px;
}

.skip-link {
  position: absolute; top: -100%; left: 0; z-index: 9999;
  padding: 0.75rem 1.25rem;
  background: #111; color: #fff;
  font-size: 0.9375rem; font-weight: 600; text-decoration: none;
}
.skip-link:focus { top: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
  }
}
/* =========================================================================
   MISSING RULES (identified by QA audit)
   ========================================================================= */

/* About: ab-notacc section NEEDS dark background (text is white, bg was missing) */
body.about-page .ab-section--notacc,
body.about-page .ab-notacc {
  background: linear-gradient(168deg, #111111 0%, #1a1917 46%, #0d0c0c 100%);
}

body.about-page .ab-notacc__content {
  position: relative;
  z-index: 1;
}

/* Footer: enforce strong institutional charcoal (not mid-grey #5A5854) */
.bh-footer {
  background-color: #3a3835 !important;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
    linear-gradient(165deg, rgba(34,162,159,0.04) 0%, transparent 42%),
    linear-gradient(-10deg, transparent 58%, rgba(74,72,69,0.18) 100%);
  background-size: 72px 72px, 72px 72px, 100% 100%, 100% 100%;
}

/* =========================================================================
   CPA PAGE — Layout & overflow fixes
   Prevents diagram text overflowing · fixes left column alignment
   ========================================================================= */

/* Split-band grid: enforce column boundaries, prevent overflow */
body.cpa-page .cpa-split-band {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.92fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
  overflow: hidden;
}

body.cpa-page .cpa-split-band--flip {
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.12fr);
  align-items: center;
}

/* Constrain both columns to their grid cell — prevent overflow */
body.cpa-page .cpa-split-band > * {
  min-width: 0;
  overflow: hidden;
}

/* Left copy column: fix alignment */
body.cpa-page .cpa-split-band__copy {
  min-width: 0;
  padding-left: 0;
  text-align: left;
  align-self: center;
}

/* Diagram container: must not exceed its column */
body.cpa-page .cpa-diag {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

/* Diagram header row: prevent eyebrow from stretching container */
body.cpa-page .cpa-diag__head {
  flex-wrap: wrap;
  gap: 0.5rem;
  overflow: hidden;
}

body.cpa-page .cpa-diag__eyebrow {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 1;
}

/* Maturity diagram columns: constrain internal text */
body.cpa-page .cpa-dmat__cols {
  display: flex;
  gap: clamp(0.5rem, 2vw, 1.25rem);
  align-items: flex-start;
  overflow: hidden;
}

body.cpa-page .cpa-dmat__col {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

body.cpa-page .cpa-dmat__phase {
  font-size: clamp(0.6875rem, 0.85vw, 0.8125rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(17, 17, 17, 0.58);
  white-space: normal;
  word-break: break-word;
  line-height: 1.3;
}

body.cpa-page .cpa-dmat__note {
  font-size: clamp(0.6875rem, 0.82vw, 0.8125rem);
  line-height: 1.4;
  color: rgba(17, 17, 17, 0.65);
  margin: 0;
  word-break: break-word;
}

/* Diagram arrows: fixed width, don't grow */
body.cpa-page .cpa-dmat__arrow {
  flex-shrink: 0;
  width: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Section padding: override global compression for CPA to preserve its rhythm */
body.cpa-page .cpa-section,
body.cpa-page .cpa-effort-grid,
body.cpa-page .cpa-lens-block {
  padding-top: clamp(2.5rem, 4.5vw, 3.5rem);
  padding-bottom: clamp(2.5rem, 4.5vw, 3.5rem);
}

/* Lens layout: same fix */
body.cpa-page .cpa-lens-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}

body.cpa-page .cpa-lens-layout > * {
  min-width: 0;
  overflow: hidden;
}

body.cpa-page .cpa-lens-copy {
  min-width: 0;
}

/* CPA hero grid: ensure copy column doesn't overflow */
body.cpa-page .cpa-hero__copy {
  min-width: 0;
  overflow: hidden;
}

/* Encoding artifact fix: Â· characters come from UTF-8 misread — fix via CSS font rendering */
body.cpa-page .cpa-diag__eyebrow,
body.cpa-page .cpa-dmat__phase,
body.cpa-page .cpa-dmat__note,
body.cpa-page .cpa-arch__cap {
  font-feature-settings: "kern" 1;
  -webkit-font-smoothing: antialiased;
}

/* Mobile: stack split-band columns */
@media (max-width: 860px) {
  body.cpa-page .cpa-split-band,
  body.cpa-page .cpa-split-band--flip,
  body.cpa-page .cpa-lens-layout {
    grid-template-columns: 1fr;
    overflow: visible;
  }

  body.cpa-page .cpa-split-band > *,
  body.cpa-page .cpa-lens-layout > * {
    overflow: visible;
  }

  body.cpa-page .cpa-dmat__cols {
    flex-direction: column;
    gap: 1rem;
  }

  body.cpa-page .cpa-dmat__arrow {
    transform: rotate(90deg);
    width: 100%;
    height: 1.5rem;
  }
}

/* =========================================================================
   PAGE 4 — FOR CPA FIRMS (EXECUTION REFINEMENT)
   ========================================================================= */

/* 1. Grid Background — REMOVE ENTIRELY */
body.cpa-page .cpa-hero__structural-bg,
body.cpa-page .cpa-hero::before,
body.cpa-page .cpa-section--grid::after,
body.cpa-page .cpa-dgap__grid-ref,
body.cpa-page .cpa-dlens__grid-ref,
body.cpa-page .cpa-dmat__grid-ref,
body.cpa-page [class*="grid-overlay"]::before,
body.cpa-page [class*="__grid-mark"],
body.cpa-page [class*="__mesh"]:not([class*="sysmap"]) {
  display: none !important;
  opacity: 0 !important;
  background-image: none !important;
}

/* 2. Diagram Sections — Increased line weight, contrast, clarity */
body.cpa-page .cpa-diag,
body.cpa-page .cpa-xform {
  border: 1.5px solid rgba(17, 17, 17, 0.38) !important;
  background: #ffffff !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.98), 0 12px 32px rgba(17, 17, 17, 0.04) !important;
  border-radius: 0 !important;
}

body.cpa-page .cpa-diag__head {
  border-bottom: 1.5px solid rgba(17, 17, 17, 0.22) !important;
}

body.cpa-page .cpa-diag__eyebrow,
body.cpa-page .cpa-xform__eyebrow {
  color: rgba(17, 17, 17, 0.75) !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
}

body.cpa-page .cpa-diag__id {
  color: #22A29F !important;
  font-weight: 800 !important;
}

body.cpa-page .cpa-dgap__panel,
body.cpa-page .cpa-dlens__signal,
body.cpa-page .cpa-dlens__core,
body.cpa-page .cpa-dlens__leaf,
body.cpa-page .cpa-dmat__col,
body.cpa-page .cpa-xform__stage {
  border: 1.5px solid rgba(17, 17, 17, 0.35) !important;
  background: #ffffff !important;
  color: #111111 !important;
}

body.cpa-page .cpa-dlens__core,
body.cpa-page .cpa-dmat__col--mid,
body.cpa-page .cpa-xform__stage--mid {
  border-left: 3.5px solid #22A29F !important;
  border-color: rgba(34, 162, 159, 0.55) !important;
}

body.cpa-page .cpa-dgap__link-line,
body.cpa-page .cpa-dmat__arrow span,
body.cpa-page .cpa-dlens__recon-path {
  height: 2.5px !important;
  background: linear-gradient(90deg, transparent, rgba(17, 17, 17, 0.78) 15%, rgba(17, 17, 17, 0.78) 85%, transparent) !important;
  opacity: 1 !important;
}

body.cpa-page .cpa-dgap__stem,
body.cpa-page .cpa-dlens__spine span,
body.cpa-page .cpa-dlens__branch-line,
body.cpa-page .cpa-xform__bridge-line {
  width: 2.5px !important;
  background: linear-gradient(180deg, rgba(17, 17, 17, 0.85), rgba(17, 17, 17, 0.45)) !important;
  opacity: 1 !important;
}

body.cpa-page .cpa-dlens__branch-line--accent {
  background: linear-gradient(180deg, #22A29F, rgba(34, 162, 159, 0.5)) !important;
}

body.cpa-page .cpa-dgap__joint {
  width: 8px !important;
  height: 8px !important;
  background: #22A29F !important;
  box-shadow: 0 0 0 2px rgba(34, 162, 159, 0.3) !important;
}

body.cpa-page .cpa-dgap__baseline,
body.cpa-page .cpa-dlens__baseline,
body.cpa-page .cpa-dmat__baseline {
  height: 2px !important;
  background: rgba(17, 17, 17, 0.35) !important;
}

body.cpa-page .cpa-dgap__title,
body.cpa-page .cpa-dlens__block-title,
body.cpa-page .cpa-dlens__core-name,
body.cpa-page .cpa-dlens__leaf-title,
body.cpa-page .cpa-xform__name {
  color: #111111 !important;
  font-weight: 700 !important;
}

body.cpa-page .cpa-dgap__hint,
body.cpa-page .cpa-dlens__block-sub,
body.cpa-page .cpa-dlens__core-hint,
body.cpa-page .cpa-dmat__note,
body.cpa-page .cpa-xform__text {
  color: #2B2B2B !important;
  font-weight: 400 !important;
  opacity: 1 !important;
}

body.cpa-page .cpa-dmat__phase,
body.cpa-page .cpa-xform__phase,
body.cpa-page .cpa-dgap__tag,
body.cpa-page .cpa-dlens__pill,
body.cpa-page .cpa-dlens__leaf-tag {
  color: rgba(17, 17, 17, 0.72) !important;
  font-weight: 700 !important;
}

/* 3. White Space — Compress vertical spacing ~30% */
body.cpa-page .cpa-hero__shell {
  padding-top: clamp(2.5rem, 5vw, 3.75rem) !important;
  padding-bottom: clamp(1.75rem, 3.5vw, 2.5rem) !important;
}

body.cpa-page .cpa-section,
body.cpa-page .cpa-effort-grid,
body.cpa-page .cpa-lens-block,
body.cpa-page .cpa-modules-wrap,
body.cpa-page .cpa-rel-section,
body.cpa-page .cpa-transform,
body.cpa-page .cpa-fit-section {
  padding-top: clamp(2rem, 3.8vw, 3rem) !important;
  padding-bottom: clamp(2rem, 3.8vw, 3rem) !important;
}

body.cpa-page .cpa-h2 {
  margin-bottom: clamp(0.85rem, 2vw, 1.35rem) !important;
}

body.cpa-page .cpa-rule {
  margin: clamp(0.85rem, 2vw, 1.25rem) 0 clamp(1rem, 2.5vw, 1.5rem) !important;
}

body.cpa-page .cpa-rule-h {
  margin: clamp(1.25rem, 3vw, 1.75rem) 0 !important;
}

body.cpa-page .cpa-prose p {
  margin-top: clamp(0.5rem, 1.2vw, 0.75rem) !important;
}

/* 4. Image Placement — Blue Structural Geometry behind systems, comparison, architecture */
body.cpa-page .cpa-effort-grid,
body.cpa-page .cpa-lens-block,
body.cpa-page .cpa-section.cpa-section--grid,
body.cpa-page .cpa-modules-wrap,
body.cpa-page .cpa-rel-section,
body.cpa-page .cpa-transform,
body.cpa-page .cpa-fit-section {
  position: relative !important;
  overflow: hidden !important;
}

body.cpa-page .cpa-effort-grid::before,
body.cpa-page .cpa-lens-block::before,
body.cpa-page .cpa-section.cpa-section--grid::before,
body.cpa-page .cpa-modules-wrap::before,
body.cpa-page .cpa-rel-section::before,
body.cpa-page .cpa-transform::before,
body.cpa-page .cpa-fit-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 0 !important;
  opacity: 0.18 !important;
  background-image: url("../../arch/web-image-2-blue-grid.png") !important;
  background-repeat: no-repeat !important;
  background-position: 95% 38% !important;
  background-size: min(56%, 720px) auto !important;
  mask-image: linear-gradient(90deg, transparent 0%, black 40%, black 100%) !important;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 40%, black 100%) !important;
}

body.cpa-page .cpa-shell,
body.cpa-page [class*="cpa-shell"] {
  position: relative !important;
  z-index: 1 !important;
}
