/* ═══ PIT PREMIUM UPGRADE: ink/acid-lime glass + gradient-border cards ═══ */

/* --- 1. Gradient-border premium cards --- */
.reference-card,
.case-card,
.os-card,
.insight-row{
  position:relative;
  border:1px solid var(--line);
  border-radius:18px;
  background:
    linear-gradient(165deg, rgba(23,29,46,.72), rgba(11,15,26,.55));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:
    0 1px 0 rgba(132,179,64,.08) inset,
    0 18px 40px -24px rgba(0,0,0,.75);
  transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s, border-color .45s;
  overflow:hidden;
  isolation:isolate;
}
.reference-card:before,
.case-card:before,
.os-card:before{
  content:'';
  position:absolute; inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from var(--ring-angle,0deg),
    transparent 0%, rgba(132,179,64,.9) 12%,
    transparent 30%, transparent 62%,
    rgba(70,84,147,.55) 74%, transparent 90%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  opacity:0;
  transition:opacity .45s;
  z-index:1;
  pointer-events:none;
  animation:ring-spin 4.5s linear infinite;
  animation-play-state:paused;
}
@property --ring-angle{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
@keyframes ring-spin{ to{ --ring-angle:360deg; } }
.reference-card:hover:before,
.case-card:hover:before,
.os-card:hover:before{ opacity:1; animation-play-state:running; }

.reference-card:hover,
.case-card:hover,
.os-card:hover{
  transform:translateY(-6px);
  box-shadow:
    0 24px 60px -28px rgba(0,0,0,.9),
    0 0 0 1px rgba(132,179,64,.22),
    0 0 44px -14px rgba(132,179,64,.35);
}

/* --- 2. Card media --- */
.card-media{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:12px;
  margin:14px 14px 0;
  background:#111828;
}
.card-media img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .8s cubic-bezier(.22,1,.36,1), filter .8s;
}
.reference-card:hover .card-media img{
  transform:scale(1.06);
  filter:saturate(1.12) brightness(1.05);
}
.card-media:after{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 30%, rgba(132,179,64,.14) 48%, transparent 62%);
  transform:translateX(-120%);
  transition:transform .9s ease;
}
.reference-card:hover .card-media:after,
.case-card:hover .card-media:after{ transform:translateX(120%); }

/* --- 3. Tag chips: acid pill --- */
.tag{
  display:inline-flex; align-items:center; gap:7px;
  font-family:var(--mono);
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--acid);
  padding:6px 14px;
  border-radius:999px;
  border:1px solid rgba(132,179,64,.35);
  background:linear-gradient(120deg, rgba(132,179,64,.12), rgba(132,179,64,.03));
}
.tag:before{
  content:'';
  width:5px; height:5px; border-radius:50%;
  background:var(--acid);
  box-shadow:0 0 9px rgba(132,179,64,.95);
}

/* --- 4. Kickers --- */
.kicker{ display:flex; align-items:center; gap:12px; }
.kicker:after{
  content:'';
  flex:0 0 56px; height:1px;
  background:linear-gradient(90deg, var(--acid), transparent);
}

/* --- 5. Buttons: acid CTA with shine --- */
.button,
.nav-cta{
  position:relative;
  display:inline-flex; align-items:center; gap:10px;
  padding:13px 26px;
  border-radius:12px;
  font-weight:700;
  color:#0d111c;
  background:linear-gradient(120deg, #84b340, #84b340 60%, #6d9a33);
  box-shadow:0 10px 30px -12px rgba(132,179,64,.55);
  transition:transform .35s, box-shadow .35s, filter .35s;
  overflow:hidden;
}
.button:after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.4) 50%, transparent 65%);
  transform:translateX(-130%);
  transition:transform .7s ease;
}
.button:hover, .nav-cta:hover{ transform:translateY(-2px); filter:brightness(1.05); box-shadow:0 16px 40px -14px rgba(132,179,64,.7); }
.button:hover:after{ transform:translateX(130%); }

/* --- 6. Headline accent --- */
.section-title em, h1 em{
  font-style:normal;
  color:var(--acid);
  text-shadow:0 0 34px rgba(132,179,64,.35);
}

/* --- 7. Process steps: connected lime timeline --- */
.process{ position:relative; }
.process:before{
  content:'';
  position:absolute; top:24px; left:6%; right:6%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(132,179,64,.45) 20%, rgba(132,179,64,.45) 80%, transparent);
}
.process-step{
  position:relative;
  background:rgba(18,26,36,.6);
  border:1px solid var(--line);
  border-radius:16px;
  backdrop-filter:blur(8px);
  transition:transform .4s, border-color .4s, box-shadow .4s;
}
.process-step:hover{
  transform:translateY(-4px);
  border-color:rgba(132,179,64,.45);
  box-shadow:0 18px 44px -22px rgba(0,0,0,.85);
}
.process-step strong{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px;
  font-family:var(--mono); font-size:16px;
  color:#0d111c;
  background:linear-gradient(135deg, #84b340, #84b340);
  box-shadow:0 8px 22px -8px rgba(132,179,64,.6);
  margin-bottom:14px;
}

/* --- 8. Visual strip figures: framed lime edge --- */
.visual-strip figure{
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(18,26,36,.5);
  overflow:hidden;
  transition:transform .4s, border-color .4s;
}
.visual-strip figure:hover{ transform:translateY(-4px); border-color:rgba(132,179,64,.4); }
.visual-strip img{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }

/* --- 9. Scroll reveal --- */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.rv.in{ opacity:1; transform:none; }

/* --- 10. Footer hairline: lime gradient --- */
footer{ border-top:1px solid transparent; position:relative; }
footer:before{
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(132,179,64,.55) 30%, rgba(132,179,64,.55) 50%, rgba(132,179,64,.55) 70%, transparent);
}

@media (prefers-reduced-motion:reduce){
  .reference-card,.case-card,.os-card,.rv{ transition:none; }
  .rv{ opacity:1; transform:none; }
  .reference-card:before{ animation:none; }
}

/* --- 11. Social icon row: premium circular acid buttons --- */
.social-row.social-icons{ display:flex; gap:10px; align-items:center; }
.social-row.social-icons a{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  color:var(--paper);
  border:1px solid var(--line);
  background:linear-gradient(150deg, rgba(23,29,46,.6), rgba(11,15,26,.45));
  backdrop-filter:blur(6px);
  transition:transform .35s, color .35s, border-color .35s, box-shadow .35s, background .35s;
}
.social-row.social-icons a svg{ display:block; }
.social-row.social-icons a:hover{
  transform:translateY(-3px);
  color:#0d111c;
  border-color:transparent;
  background:linear-gradient(135deg, #84b340, #84b340);
  box-shadow:0 10px 26px -10px rgba(132,179,64,.7);
}

/* ═══ 12. ARTICLE LISTING ROWS: ring hover + framed lime thumbs ═══ */
.insight-row:before{
  content:'';
  position:absolute; inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from var(--ring-angle,0deg),
    transparent 0%, rgba(132,179,64,.85) 14%,
    transparent 32%, transparent 64%,
    rgba(70,84,147,.5) 76%, transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  opacity:0;
  transition:opacity .4s;
  z-index:1;
  pointer-events:none;
  animation:ring-spin 4.5s linear infinite;
  animation-play-state:paused;
}
.insight-row:hover:before{ opacity:1; animation-play-state:running; }
.insight-row:hover{
  transform:translateY(-4px);
  border-color:rgba(132,179,64,.32);
  box-shadow:0 20px 50px -26px rgba(0,0,0,.9), 0 0 34px -12px rgba(132,179,64,.28);
}
.insight-row .row-thumb{
  border-radius:10px;
  border:1px solid rgba(132,179,64,.25);
  overflow:hidden;
}
.insight-row .row-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s cubic-bezier(.22,1,.36,1), filter .7s;
}
.insight-row:hover .row-thumb img{ transform:scale(1.08); filter:saturate(1.12); }
.insight-row .arrow{ transition:transform .35s; }
.insight-row:hover .arrow{ transform:translate(3px,-3px); }

/* ═══ 13. CASE-STUDY APPROVED METRICS STRIP (lime) ═══ */
.case-metrics{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));
  gap:1px;
  background:rgba(132,179,64,.28);
  border:1px solid rgba(132,179,64,.32);
  border-radius:12px;
  overflow:hidden;
  margin-top:18px;
}
.case-metrics>div{
  background:linear-gradient(160deg, rgba(132,179,64,.14), rgba(11,15,26,.45));
  padding:14px 16px;
}
.case-metrics strong{
  display:block;
  font-family:var(--mono);
  font-size:24px; line-height:1;
  color:var(--acid, #84b340);
}
.case-metrics span{
  display:block; margin-top:6px;
  font:9px var(--mono); letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted, #8d97b5);
}

/* ══════════════════════════════════════════════════════════════════
   14. TEXT VISIBILITY PATCH: every word clearly readable everywhere
   ══════════════════════════════════════════════════════════════════
   Failures fixed (WCAG-audited):
   · muted #8d97b5 on paper #f4f5f7 = 2.66:1  → dark slate equivalents
   · acid #84b340 on paper = 2.26:1           → dark olive-lime
   · glass cards over LIGHT sections washed   → opaque light card
   · reveal animation could strand text       → CSS failsafe
   -------------------------------------------------------------------- */

/* --- 14a. Light (.light = paper) section muted text → dark slate --- */
.light .evidence{ color:#3d4557; }
.light .meta{ color:#5a6380; }
.light .row-cat{ color:#4e6a1f; }
.light .insight-row .date{ color:#4e6a1f; }
.light .faq-item p{ color:#3d4557; }

/* --- 14b. Cards over LIGHT sections: opaque light surface, dark text --- */
.light .reference-card,
.light .case-card,
.light .os-card,
.light .insight-row,
.light .process-step{
  background:#ffffff;
  border:1px solid #d9dee8;
  box-shadow:0 14px 34px -24px rgba(14,18,32,.35);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.light .reference-card:hover,
.light .case-card,
.light .insight-row:hover{
  border-color:rgba(97,131,44,.55);
  box-shadow:0 22px 48px -26px rgba(14,18,32,.4), 0 0 30px -12px rgba(97,131,44,.28);
}
.light .reference-card h3,
.light .case-card h3,
.light .insight-row h3,
.light .os-card h3{ color:#10141f; }
.light .reference-card p,
.light .case-card p,
.light .insight-row p,
.light .process-step p{ color:#3d4557; }
.light .insight-row .arrow{ color:#4e6a1f; }
.light .tag{
  color:#4e6a1f;
  border-color:rgba(97,131,44,.5);
  background:linear-gradient(120deg, rgba(132,179,64,.16), rgba(132,179,64,.05));
}
.light .tag:before{ background:#61912c; box-shadow:none; }
.light .case-metrics>div{ background:linear-gradient(160deg, rgba(132,179,64,.12), #f6f8f0); }
.light .case-metrics span{ color:#5a6380; }
.light .case-metrics strong{ color:#4e6a1f; }
.light .reference-card:before,
.light .case-card:before,
.light .insight-row:before{ display:none; }
.light .card-media{ background:#eef0e6; }

/* --- 14c. Reveal failsafe: nothing stays hidden even with zero JS --- */
.rv:not(.in){ opacity:1; transform:none; }

/* --- 14c2. Small lime labels on light surfaces → dark olive #4e6a1f
   for 5.5:1 at small sizes (raw acid was 2.26:1) --- */
.light .kicker,
.light .process-step strong,
.light .card-cta{ color:#4e6a1f; }
.light .kicker:after{ background:#4e6a1f; }

/* --- 14d. Muted body text on dark glass: lift to 6.5:1 --- */
.reference-card p,
.case-card p,
.insight-row p{
  color:#aab3c9;
}

/* --- 15. Floating WhatsApp chat button: logo lime, brand glyph --- */
/* WhatsApp and the guided chat keep separate vertical lanes. */
.wa-float{
  position:fixed;
  right:22px; bottom:22px;
  z-index:90;
  display:inline-flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  color:#0d111c;
  background:linear-gradient(135deg, #84b340, #6d9a33);
  box-shadow:0 12px 32px -10px rgba(132,179,64,.65), 0 2px 8px rgba(0,0,0,.4);
  transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s, filter .35s;
}
.wa-float svg{ display:block; }
.wa-float:hover{
  transform:translateY(-4px) scale(1.06);
  filter:brightness(1.06);
  box-shadow:0 18px 42px -12px rgba(132,179,64,.8), 0 2px 10px rgba(0,0,0,.45);
}
.wa-float:after{
  content:'';
  position:absolute; inset:-6px;
  border-radius:50%;
  border:1px solid rgba(132,179,64,.4);
  opacity:0;
  transition:opacity .35s;
}
.wa-float:hover:after{ opacity:1; }
@media(max-width:600px){ .wa-float{ right:16px; bottom:16px; width:52px; height:52px; } }
@media print{ .wa-float{ display:none; } }

/* ══════════════════════════════════════════════════════════════════════════
   19. CONTRAST GUARD: dark cards that sit inside a .light section

   `.section.light{color:var(--ink)}` cascades into the dark cards and made
   headings unreadable (dark on dark). Any dark card now re-asserts its own
   text colour, so it can never inherit the light-section ink.
   ══════════════════════════════════════════════════════════════════════════ */
.founder-card,.case-card,.reference-card,.product-card,.os-card,.panel-card{
  color:var(--paper);
}
.founder-card h3,.case-card h3,.reference-card h3,.product-card h3,.os-card h3,.panel-card h3{
  color:#fff;
}
.founder-card .role,.case-card .tag,.reference-card .tag,.product-card .tag,.panel-card .panel-label{
  color:var(--acid);
}
.light .founder-card .copy,
.light .founder-card p,
.light .case-card p,
.light .reference-card p,
.light .product-card p,
.light .panel-card p,
.light .panel-card li{
  color:#c8d0e0;
}

/* ══════════════════════════════════════════════════════════════════════════
   20. FOUNDER SPOTLIGHT: full-width executive layout for a single founder

   Replaces the 1-of-3 grid cell that left two-thirds of the row empty.

   Left column  : large portrait card (rounded, lime border glow), name in
                  crisp #FFFFFF, designation in lime, LinkedIn and meeting CTA.
   Right column : "Leadership & Execution Philosophy" with three interactive
                  pillar cards: enterprise transformation, operational
                  architecture, and milestones / track record.
   Both columns are full-height so the row can never show dead whitespace.
   ══════════════════════════════════════════════════════════════════════════ */
.spotlight{
  display:grid;
  grid-template-columns:minmax(280px,420px) 1fr;
  gap:clamp(20px,2.6vw,38px);
  align-items:stretch;
  background:var(--ink);
  color:var(--paper);
  border:1px solid rgba(255,255,255,.10);
  padding:clamp(20px,2.6vw,38px);
  position:relative;
  overflow:hidden;
}
.spotlight:before{
  content:'';
  position:absolute;
  top:-45%;right:-8%;
  width:440px;height:440px;
  background:radial-gradient(circle,rgba(132,179,64,.18),transparent 66%);
  pointer-events:none;
}

/* ── left column: portrait card ───────────────────────────────────────── */
.spotlight-portrait-card{
  position:relative;z-index:1;
  display:flex;flex-direction:column;
  background:var(--ink2);
  border:1px solid rgba(132,179,64,.34);
  border-radius:20px;
  padding:clamp(16px,1.8vw,22px);
  box-shadow:0 0 0 1px rgba(132,179,64,.14), 0 26px 60px -30px rgba(132,179,64,.55);
  transition:box-shadow .35s ease, transform .35s ease;
}
.spotlight-portrait-card:hover{
  transform:translateY(-4px);
  box-shadow:0 0 0 1px rgba(132,179,64,.3), 0 34px 70px -28px rgba(132,179,64,.75);
}
.spotlight-portrait{
  margin:0 0 20px;
  border-radius:14px;
  overflow:hidden;
  position:relative;
  background:linear-gradient(150deg,rgba(132,179,64,.22),rgba(70,84,147,.28));
}
.spotlight-portrait:after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(13,17,28,.55));
  pointer-events:none;
}
.spotlight-portrait img,
.spotlight-portrait .founder-avatar{
  width:100%;
  display:block;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 22%;
}
.spotlight-portrait .founder-avatar{ font-size:64px; border-radius:0; }
.spotlight-badge{
  display:inline-block;align-self:flex-start;margin-bottom:14px;
  font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);background:var(--acid);border-radius:999px;padding:7px 13px;
}
.spotlight-name{
  font-size:clamp(30px,3.4vw,46px);line-height:.98;letter-spacing:-.05em;
  margin:0 0 10px;color:#FFFFFF;
}
.spotlight-role{
  font:10px var(--mono);text-transform:uppercase;letter-spacing:.14em;
  color:var(--acid);margin:0 0 20px;
}
.spotlight-actions{ display:flex;flex-wrap:wrap;gap:10px;margin-top:auto; }
.button.small{ font-size:10px;padding:12px 16px;border-radius:999px; }
.spotlight-quote{
  margin:20px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.10);
  font-family:Georgia,serif;font-size:15px;line-height:1.55;color:#dfe6f4;font-style:italic;
}

/* ── right column: leadership & execution philosophy ──────────────────── */
.spotlight-philosophy{ position:relative;z-index:1;display:flex;flex-direction:column; }
.spotlight-philosophy .kicker{ margin-bottom:20px; }
.spotlight-lede{ font-size:15px;line-height:1.8;color:#dfe4f0;margin:0 0 24px;max-width:62ch; }
.pillar-stack{ display:grid;gap:12px;margin-top:auto; }
.pillar-card{
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.10);
  border-left:2px solid rgba(132,179,64,.55);
  border-radius:14px;
  padding:clamp(16px,1.6vw,20px);
  transition:background .3s ease,border-color .3s ease,transform .3s ease;
}
.pillar-card:hover,.pillar-card:focus-within{
  background:rgba(132,179,64,.10);
  border-left-color:var(--acid);
  transform:translateX(4px);
}
.pillar-head{ display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px; }
.pillar-n{ font:10px var(--mono);letter-spacing:.14em;color:var(--acid); }
.pillar-card h4{ font-size:19px;line-height:1.2;letter-spacing:-.03em;margin:0;color:#fff;flex:1 1 auto; }
.pillar-scope{ font:9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted); }
.pillar-card p{ font-size:13px;line-height:1.7;color:#c8d0e0;margin:0; }
.pillar-list{ list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px; }
.pillar-list li{
  font:9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;
  border:1px solid rgba(132,179,64,.4);color:#e6f4cd;border-radius:999px;padding:6px 11px;
}
.panel-card{
  background:var(--ink);padding:26px;min-height:250px;
  display:flex;flex-direction:column;
}
.panel-card h3{ font-size:21px;line-height:1.15;letter-spacing:-.04em;margin:18px 0 14px; }
.panel-card h3.panel-quote{ font-size:23px;line-height:1.22;font-family:Georgia,serif;font-weight:400; }
.panel-card p{ font-size:13px;line-height:1.7;margin:0; }
.panel-list{ list-style:none;padding:0;margin:0;font:12px/1.6 var(--sans);color:#c8d0e0; }
.panel-list li{ position:relative;padding:10px 0 10px 20px;border-bottom:1px solid rgba(255,255,255,.08); }
.panel-list li:last-child{ border-bottom:0; }
.panel-list li:before{ content:'↳';position:absolute;left:0;color:var(--acid); }
.chip-row{ display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:20px; }
.chip{
  font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;
  border:1px solid rgba(132,179,64,.55);color:#e6f4cd;padding:7px 11px;
}

.stat-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(255,255,255,.12);margin-top:1px;
}
.stat-cell{ background:var(--ink);padding:24px; }
.stat-cell strong{
  display:block;font-size:clamp(28px,3.2vw,42px);line-height:1;letter-spacing:-.06em;color:#fff;
}
.stat-cell span{
  display:block;margin-top:9px;font:10px var(--mono);letter-spacing:.12em;
  text-transform:uppercase;color:var(--acid);
}

@media(max-width:900px){
  .spotlight{ grid-template-columns:1fr; }
  .spotlight-panels,.stat-strip{ grid-template-columns:1fr 1fr; }
}
@media(max-width:600px){
  .spotlight-panels,.stat-strip{ grid-template-columns:1fr; }
  .panel-card{ min-height:0; }
}

/* ══════════════════════════════════════════════════════════════════════════
   21. CASE-FILE CHROME

   Case cards are now links to a full case file, and carry a reference number
   and a sector line so the grid reads like a real engagement index.
   ══════════════════════════════════════════════════════════════════════════ */
a.case-card{ text-decoration:none; color:inherit; }
.case-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.case-ref{ font:9px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.case-card .case-sector{
  font:10px var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--acid);margin:12px 0 0;
}
.case-chips{ margin-top:16px; padding-top:0; }
.case-card .card-cta{
  display:inline-block;margin-top:18px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,.10);
  color:var(--acid);font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;
}
.case-card .card-cta i{ font-style:normal; display:inline-block; transition:transform .25s; }
.case-card:hover .card-cta i{ transform:translateX(5px); }
/* a case file is a long page: give its process steps room to breathe */
.process-step p{ font-size:12px; line-height:1.65; }

/* ── Closing CTA band ──────────────────────────────────────────────────
   Every internal page closes on the same contextual ask, so no page ends
   flat and the lead path is always one click away. */
.cta-band{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.6fr auto;gap:clamp(18px,2.4vw,44px);align-items:center;
  padding:clamp(28px,3.4vw,50px);
  background:linear-gradient(135deg,var(--ink2),var(--ink));
  border:1px solid rgba(132,179,64,.34);
}
.cta-band:before{
  content:'';position:absolute;top:-45%;right:-8%;width:380px;height:380px;pointer-events:none;
  background:radial-gradient(circle,rgba(70,84,147,.3),transparent 66%);
}
.cta-band h2{
  margin:0 0 12px;color:#fff;position:relative;z-index:1;
  font-size:clamp(24px,2.6vw,38px);font-weight:800;line-height:1.06;letter-spacing:-.03em;
}
.cta-band p{ margin:0;font-size:13.5px;line-height:1.8;color:#c9d1e4;max-width:58ch;position:relative;z-index:1; }
.cta-actions{ display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1; }
@media(max-width:820px){ .cta-band{ grid-template-columns:1fr; } }

/* Homepage permissioned association proof strip (targets .proof-strip / .proof-strip-grid). */
.proof-strip{
  padding:clamp(3.2rem,5vw,5.5rem) 0;
  background:linear-gradient(180deg, var(--ink) 0%, var(--ink2) 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.proof-strip .kicker{ color:var(--acid); }
.proof-strip-head{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:28px 48px;
  align-items:end;
  margin:0 0 34px;
}
.proof-strip-head h2{
  margin:0;
  color:var(--paper);
  font-size:clamp(28px,3.4vw,46px);
  font-weight:800;
  line-height:1.05;
  letter-spacing:-.03em;
}
.proof-strip-head h2 em{ color:var(--acid); font-style:normal; }
.proof-strip-head p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.75;
  max-width:46ch;
}
.proof-strip-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:14px;
}
.proof-chip{
  min-height:100%;
  padding:22px 18px 20px;
  border:1px solid var(--line);
  background:rgba(244,245,247,.03);
}
.proof-chip .tag{
  display:block;
  margin:0 0 14px;
  color:var(--acid);
  font:10px var(--mono);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.proof-chip strong{
  display:block;
  color:var(--paper);
  font-size:18px;
  font-weight:750;
  letter-spacing:-.02em;
  line-height:1.2;
}
.proof-chip p{
  margin:12px 0 0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.65;
}
.proof-strip-note{
  margin:26px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}
.proof-strip-note a{ color:var(--acid); text-decoration:none; }
.proof-strip-note a:hover{ text-decoration:underline; }
@media(max-width:1100px){
  .proof-strip-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:820px){
  .proof-strip-head{ grid-template-columns:1fr; gap:14px; }
  .proof-strip-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px){
  .proof-strip-grid{ grid-template-columns:1fr; }
}

/* Compact auto-floating client references — match PSW 16px rail. */
.testimonials.section-pad,.section:has(.testimonial-card),.testimonials.section{padding-top:clamp(2.8rem,4vw,4.5rem);padding-bottom:clamp(2.8rem,4vw,4.5rem)}
.testimonial-rail,.testimonial-grid{display:block !important;overflow:hidden;position:relative;margin-top:24px;padding:4px 2px 10px;border-top:1px solid rgba(132,179,64,.28);border-bottom:1px solid rgba(132,179,64,.28);background:linear-gradient(90deg,rgba(132,179,64,.06),transparent 18%,transparent 82%,rgba(132,179,64,.06));scrollbar-width:none}
.testimonial-rail[data-float="1"]{display:block !important;overflow:hidden}
.testimonial-float-track{display:flex;flex-wrap:nowrap;align-items:stretch;gap:16px;width:max-content;animation:testimonial-float 42s linear infinite;will-change:transform}
.testimonial-rail[data-float="1"]:hover .testimonial-float-track{animation-play-state:paused}
.testimonial-float-track .testimonial-card,.testimonial-rail > .testimonial-card{flex:0 0 min(78vw,390px);box-sizing:border-box;padding:22px 24px 18px !important;border-radius:14px;background:#fff !important;color:#202735 !important;border:1px solid #d9dee8;box-shadow:0 12px 30px -22px rgba(14,18,32,.45);border-left:3px solid var(--acid,#84b340)}
.testimonial-float-track .testimonial-card.is-featured{border-left-width:4px}
.testimonial-float-track .quote,.testimonial-rail .quote{margin:0;font-size:15px !important;line-height:1.5 !important;color:#202735 !important}
.testimonial-float-track .who,.testimonial-rail .who{margin-top:14px !important;display:flex;align-items:center;gap:12px}
.testimonial-float-track .who strong,.testimonial-rail .who strong{display:block;color:#202735 !important;font-size:13px !important}
.testimonial-float-track .who span,.testimonial-rail .who span{display:block;color:#596477 !important;font-size:11px !important}
.testimonial-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--acid,#84b340),#465493);display:grid;place-items:center;color:#0d111c;font-weight:700;font-size:14px;flex:0 0 auto}
.testimonial-float-track img{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff}
@keyframes testimonial-float{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:700px){.testimonial-float-track .testimonial-card,.testimonial-rail > .testimonial-card{flex-basis:min(84vw,340px);padding:20px 18px 16px !important}}
@media(prefers-reduced-motion:reduce){.testimonial-float-track{animation:none}.testimonial-rail[data-float="1"]{overflow-x:auto}}
.testimonial-controls{display:none}
.testimonial-track{display:flex;flex-wrap:nowrap;width:100%;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.testimonial-rail > .testimonial-track > article{flex:0 0 100%;width:100%;box-sizing:border-box;background:#fff !important;color:#202735 !important;padding:22px 24px 18px !important;border-radius:14px}


/* Photographic hero shape: keeps acid/ink brand */
.hero-shape.hero-shape-photo{
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
}
.hero-shape.hero-shape-photo:before{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(145deg, rgba(13,17,28,.55), rgba(13,17,28,.82) 70%);
  z-index:0;
}
.hero-shape.hero-shape-photo > *{ position:relative; z-index:1; }
.hero-shape.hero-shape-photo .shape-grid{ opacity:.25; }

/* Hero tighten � remove metric clutter from first viewport */
.hero-stats, .shape-label { display: none !important; }


/* === Visibility failsafe (2026-09-15): never leave copy invisible === */
.rv:not(.in),
.rv-left:not(.in),
.rv-right:not(.in),
.rv-scale:not(.in),
.reveal:not(.in) {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}
.rv-clip:not(.in) {
  clip-path: none !important;
  opacity: 1 !important;
}
.word-reveal:not(.in) .word,
.word-reveal .word {
  opacity: 1 !important;
  transform: none !important;
}
.text-reveal:not(.in) > *,
.text-reveal > * {
  opacity: 1 !important;
  transform: none !important;
}
.fade-pre:not(.fade-in) {
  opacity: 1 !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .rv, .rv-left, .rv-right, .rv-scale, .rv-clip, .reveal, .fade-pre,
  .word-reveal .word, .text-reveal > * {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}


/* === SHIP VISIBILITY LOCK (2026-09-15c) ===
   Never use transparent text-fill without a guaranteed clipped background.
   Solid accent colour wins everywhere. */
h1 em, h2 em, h3 em, .section-title em, .panel-big em, .large-copy em,
.word-reveal em, .hero h1 em, .hero-copy h1 em {
  font-style: italic !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  filter: none !important;
  opacity: 1 !important;
}
.stat-row strong,
.case-metrics strong,
.index-stat strong,
[data-stat] {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  filter: none !important;
  opacity: 1 !important;
}
/* Light floors: dark-gold accents, never washed ivory */
.light h1 em, .light h2 em, .light h3 em, .light .section-title em,
.section.light h1 em, .section.light h2 em, .section.light h3 em {
  color: #8a6a35 !important;
  -webkit-text-fill-color: #8a6a35 !important;
}
.light .stat-row strong,
.light .case-metrics strong,
.light .index-stat strong {
  color: #8a6a35 !important;
  -webkit-text-fill-color: #8a6a35 !important;
}
/* Dark floors: never inherit near-black ink on accents */
.hero h1 em, .hero-copy h1 em, .hero-detail h1 em,
body.home h1 em, body.home h2 em {
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  -webkit-text-fill-color: currentColor !important;
}
/* Reveal / fade / tip: never strand copy invisible */
.rv, .rv-left, .rv-right, .rv-scale, .rv-clip, .reveal, .fade-pre,
.word-reveal .word, .text-reveal > * {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: none !important;
}
.px-tip-rail { opacity: 0; }
.px-tip-rail.is-on { opacity: 1 !important; }
/* Muted labels: lift contrast */
.panel-index, .panel-small, .px-stack-index, .section-kicker, .kicker,
.orbital-core-kicker, .crumb, .meta, .evidence {
  opacity: 1 !important;
}
.panel-small, .px-stack-card p { opacity: 0.92 !important; }
