
@font-face{font-family:"Fiorina Text";src:url(data:font/woff2;base64,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) format('woff2');font-weight:300;font-display:swap}


*{box-sizing:border-box}
:root{
 --navy:#0D1627;--white:#FFFFFF;--grey:#ECEDEF;--olive:#4C5536;--olive-deep:#3F4A2F;--olive-sage:#66734D;
 --lol:#8A966E;--lol-h:#7A8660;--ink:#010A1C;--olive-tint:#EFF1E8;
 --s800:#1E293B;--s600:#475569;--s500:#64748B;--s400:#94A3B8;--s300:#CBD5E1;--s200:#E2E8F0;
 --fd:"Neue Haas Grotesk Display",Inter,ui-sans-serif,system-ui,sans-serif;
 --ft:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --fe:"Fiorina Text",Georgia,"Times New Roman",serif;
 --settle:cubic-bezier(.16,1,.3,1);--standard:cubic-bezier(.65,0,.35,1);
 --c:1200px}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--navy);font:16px/1.6 var(--ft);-webkit-font-smoothing:antialiased}
.w{max-width:var(--c);margin:0 auto;padding:0 80px}
@media(max-width:1000px){.w{padding:0 40px}}
@media(max-width:700px){.w{padding:0 24px}}
h1,h2,h3,h4{font-family:var(--fd);font-weight:700;margin:0;letter-spacing:-.01em}
h1{font-size:clamp(34px,4.2vw,48px);line-height:1.10;letter-spacing:-.015em}
h2{font-size:clamp(26px,2.6vw,32px);line-height:1.20}
h3{font-size:24px;line-height:1.30}
h4{font-size:20px;line-height:1.40}
.card h3{font-size:20px;line-height:1.4}
p{margin:0 0 16px;max-width:70ch}
a{color:var(--olive)}
.kick{font-family:var(--ft);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
 color:var(--olive);margin:0 0 10px}
.kick.on{color:var(--lol)}
.lede{font-size:18px;line-height:1.65;color:var(--s600);max-width:62ch}
.lede.on{color:var(--s300)}
.sm{font-size:14px;line-height:1.55;color:var(--s600)}
.sm.on{color:var(--s400)}
.ed{font-family:var(--fe);font-weight:300;letter-spacing:0}
/* sections */
section{padding:96px 0}
@media(max-width:1000px){section{padding:64px 0}}
@media(max-width:700px){section{padding:48px 0}}
.band{background:var(--navy);color:var(--white)}
.band h1,.band h2,.band h3,.band h4{color:var(--white)}
.band-grey{background:var(--grey)}
.band-olive{background:var(--olive-deep);color:var(--white)}
.band-olive h2,.band-olive h3{color:var(--white)}
/* header */
.hdr{background:var(--navy);position:sticky;top:0;z-index:50}
.hdr .w{display:flex;align-items:center;gap:32px;height:76px}
.hdr .menu{display:none;margin-inline-start:auto;min-height:44px;min-width:44px;background:none;border:0;
 color:#fff;font:600 12px/1 var(--ft);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
 align-items:center;gap:8px}
#mnu{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
 clip-path:inset(50%);white-space:nowrap;border:0}
#mnu:focus-visible+.w .menu{outline:2px solid var(--lol);outline-offset:2px}
.hdr img{height:30px;width:auto}
.hdr>.w>a:first-of-type{display:inline-flex;align-items:center;min-height:44px}
nav{display:flex;gap:26px;margin-inline-start:auto}
nav a{font-family:var(--ft);font-size:12px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
 color:var(--white);text-decoration:none;min-height:44px;display:flex;align-items:center;
 border-bottom:2px solid transparent;transition:border-color 100ms var(--standard)}
nav a:hover,nav a[aria-current]{border-bottom-color:var(--lol)}
.hdr .aux{display:flex;gap:18px;align-items:center}
.hdr__login{font-family:var(--ft);font-size:12px;font-weight:600;letter-spacing:.11em;
 text-transform:uppercase;color:var(--s300);text-decoration:none;min-height:44px;
 display:inline-flex;align-items:center}
.hdr__login:hover{color:var(--lol)}
/* buttons — D-7 */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 24px;
 border-radius:2px;font-family:var(--ft);font-size:14px;font-weight:600;text-decoration:none;
 border:0;cursor:pointer;transition:background-color 100ms var(--standard),border-color 100ms var(--standard)}
.btn--p{background:var(--navy);color:var(--white)}
.btn--p:hover{background:var(--s800)}
.btn--s{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 1.5px var(--navy)}
.btn--s:hover{background:rgba(13,22,39,.06)}
.btn--on{background:var(--lol);color:var(--navy)}
.btn--on:hover{background:var(--lol-h)}
.btn--ons{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1.5px var(--lol)}
.btn--ons:hover{background:rgba(138,150,110,.14)}
.btn--t{color:var(--olive);text-decoration:underline;text-underline-offset:3px;padding:0;min-height:44px}
.band .btn--t{color:var(--lol)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
 outline:2px solid var(--olive);outline-offset:2px}
.band a:focus-visible,.band button:focus-visible,.hdr a:focus-visible{outline-color:var(--lol)}
/* hero */
.hero{display:grid;grid-template-columns:58fr 42fr;min-height:520px;background:var(--navy)}
.hero__img{position:relative;overflow:hidden}
.hero__card{padding:64px 64px 64px 56px;display:flex;flex-direction:column;justify-content:center;color:var(--white)}
.hero__card h1{color:var(--white);margin-bottom:18px}
.hero__acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero__meta{margin-top:30px;padding-top:18px;border-top:1px solid rgba(203,213,225,.22);
 font-size:12.5px;letter-spacing:.06em;color:var(--s400)}
@media(max-width:1000px){.hero{grid-template-columns:1fr;min-height:0}
 .hero__img{aspect-ratio:16/9}.hero__card{padding:44px 40px}}
@media(max-width:700px){.hero__card{padding:34px 24px}}
/* image slot placeholder */
.slot{position:relative;width:100%;background:linear-gradient(135deg,#1A2438 0%,#0D1627 60%);
 overflow:hidden;display:flex;align-items:flex-end}
.hero__img .slot{position:absolute;inset:0}
.slot::before{content:"";position:absolute;inset:0;
 background-image:repeating-linear-gradient(58deg,rgba(138,150,110,.16) 0 1px,transparent 1px 26px)}
.slot__tag{position:relative;margin:0;padding:10px 14px;background:rgba(13,22,39,.72);
 border-inline-start:3px solid var(--lol);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
 font-weight:600;color:var(--lol)}
.slot--l{background:linear-gradient(135deg,#E7E9E4 0%,#ECEDEF 60%)}
.slot--l::before{background-image:repeating-linear-gradient(58deg,rgba(76,85,54,.14) 0 1px,transparent 1px 26px)}
.slot--l .slot__tag{background:rgba(255,255,255,.82);border-inline-start-color:var(--olive);color:var(--olive)}
.ratio{aspect-ratio:3/2}
.slot__tag{max-width:100%}
/* grids */
.g{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g2,.g3,.g4{grid-template-columns:repeat(2,1fr)}.g{gap:16px}}
@media(max-width:700px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--white);padding:28px;border-top:3px solid var(--s200)}
.card--o{border-top-color:var(--olive)}
.band .card{background:#14203A;border-top-color:var(--lol)}
.band .card p{color:var(--s300)}
.card h4{margin-bottom:8px}
.card p{font-size:14.5px;line-height:1.55;color:var(--s600);margin:0}
/* proof */
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--s200)}
.proof>div{padding:28px 28px 28px 0;border-inline-end:1px solid var(--s200)}
.proof>div:last-child{border-inline-end:0}
.proof b{display:block;font-family:var(--fd);font-size:19px;font-weight:700;margin-bottom:6px}
.proof span{font-size:14px;color:var(--s600)}
@media(max-width:1000px){.proof{grid-template-columns:1fr 1fr}
 .proof>div:nth-child(2){border-inline-end:0}}
@media(max-width:700px){.proof{grid-template-columns:1fr}.proof>div{border-inline-end:0;
 border-bottom:1px solid var(--s200);padding-inline-end:0}}
/* rules */
.rule{width:56px;height:3px;background:var(--olive);margin:0 0 22px}
.band .rule{background:var(--lol)}
/* framework diagram */
.fw{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:34px}
.fw__st{background:#14203A;padding:26px 22px;border-inline-start:3px solid var(--lol);position:relative}
.fw__st+.fw__st{margin-inline-start:86px}
.fw__g{position:absolute;inset-inline-start:-86px;top:50%;transform:translateY(-50%);width:86px;
 display:flex;flex-direction:column;align-items:center;gap:4px}
.fw__d{width:34px;height:34px;transform:rotate(45deg);border:1.5px solid var(--lol);background:var(--navy);
 display:flex;align-items:center;justify-content:center}
.fw__d span{transform:rotate(-45deg);font-family:var(--fd);font-weight:700;font-size:13px;color:var(--lol)}
.fw__gl{font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--lol);
 font-weight:600;text-align:center;line-height:1.25;max-width:86px}
.fw__st b{display:block;font-family:var(--fd);font-size:20px;color:var(--white);margin:8px 0 10px}
.fw__st .n{font-size:11px;letter-spacing:.12em;color:var(--lol);font-weight:600}
.fw__st p{font-size:13.5px;line-height:1.5;color:var(--s300);margin:0}
.fw__loop{margin-top:26px;padding-top:18px;border-top:1px dashed rgba(138,150,110,.45);
 font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--lol);font-weight:600;text-align:center}
@media(max-width:1000px){.fw{grid-template-columns:1fr}.fw__st+.fw__st{margin-inline-start:0;margin-top:72px}
 .fw__g{inset-inline-start:50%;top:-68px;transform:translateX(-50%);height:68px;width:auto;flex-direction:row;gap:10px}
 .fw__gl{text-align:start;max-width:none}}
/* sticky rail — D-17 */
.rail{position:sticky;top:76px;z-index:40;background:var(--white);border-bottom:1px solid var(--s200)}
.rail .w{display:flex;gap:28px;overflow-x:auto;padding-top:0;padding-bottom:0}
.rail a{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--s600);
 text-decoration:none;min-height:48px;display:flex;align-items:center;white-space:nowrap;
 border-bottom:2px solid transparent}
.rail a:hover{color:var(--navy);border-bottom-color:var(--olive)}
/* table */
table{width:100%;border-collapse:collapse;font-size:14px;margin-top:20px}
th,td{text-align:start;padding:12px 14px;border-bottom:1px solid var(--s200);vertical-align:top}
th{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--s500);font-weight:600}
.bar{height:10px;border-radius:2px;background:var(--olive)}
.bar--a{background:var(--olive-sage)}
/* form */
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;min-height:44px;padding:10px 12px;
 border:1.5px solid var(--s300);border-radius:2px;font:15px/1.5 var(--ft);background:var(--white);color:var(--navy)}
.field .hint{font-size:12.5px;color:var(--s500);margin-top:5px}
.req{color:var(--olive)}
/* footer */
footer{background:var(--navy);color:var(--s300);padding:64px 0 40px}
footer img{height:28px;margin-bottom:8px}
footer .tag{font-family:var(--fe);font-weight:300;font-size:19px;color:var(--white);margin:0 0 26px}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;font-size:13.5px}
footer a{color:var(--s300);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
footer a:hover{color:var(--lol)}
footer .legal{margin-top:34px;padding-top:22px;border-top:1px solid rgba(203,213,225,.18);
 font-size:12px;color:var(--s400);line-height:1.6}
@media(max-width:700px){footer .cols{grid-template-columns:1fr}}
@media(max-width:1100px){
 .hdr nav,.hdr .aux{display:none}
 .hdr .menu{display:inline-flex}
 .hdr:has(#mnu:checked) nav,.hdr:has(#mnu:checked) .aux{display:flex}
 .hdr:has(#mnu:checked) .w{height:auto;flex-wrap:wrap;padding-bottom:20px;align-items:flex-start}
 .hdr:has(#mnu:checked) nav{flex-direction:column;gap:0;width:100%;margin:12px 0 0;
  border-top:1px solid rgba(203,213,225,.18)}
 .hdr:has(#mnu:checked) nav a{padding:14px 0;border-bottom:1px solid rgba(203,213,225,.12)}
 .hdr:has(#mnu:checked) .aux{width:100%;margin-top:14px;flex-direction:column;align-items:stretch}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{
 animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}

/* image slots — image set v2 */
.slot--img{background:var(--navy)}
.slot--img::before{display:none}
.slot--img picture{position:absolute;inset:0;display:block}
.slot__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.hero__img .slot--img{position:absolute;inset:0}

/* ============ 23 Sep pass 2 — hero, ticker, rhythm, footer ============ */

/* 0 · page shell (D-104 a, Chairman 25 Sep).
   The short routes sized their own section in vh — .acc at 70vh, .rcv at 74vh —
   so on a viewport taller than header + section + footer the page simply ran
   out, and because body carried no background the remainder fell through to
   browser white: 163px at 1440x1200 on the access route, 283px at 1600, growing
   with screen height. Sizing a section in vh cannot solve this, because the
   footer is not in that section. The shell now fills the viewport and the
   footer is pushed to the bottom of it, so no route can end early whatever the
   screen and there is no remainder left to fall through.

   Do not "also" paint the body navy as a safety net. That was tried and it cost
   84 contrast failures across four routes: the light sections carry no
   background of their own and inherit the body's, so navy text landed on navy
   and whole sections went invisible. The body keeps the white it always
   effectively had; the sticky footer alone is the fix. */
body{background:#fff;min-height:100svh;display:flex;flex-direction:column}
body>main{flex:1 0 auto}
body>footer{margin-top:auto;flex:none}

/* 1 · hero: full-bleed image with a navy fade, copy over it (edge-cap model) */
.hero{position:relative;display:block;grid-template-columns:none;
 min-height:520px;aspect-ratio:16/9;max-height:720px;
 background:var(--navy);overflow:hidden;isolation:isolate}
.hero__img{position:absolute;inset:0;z-index:0;aspect-ratio:auto;overflow:hidden}
.hero__img{background:var(--navy)}
.hero__img .slot--img,.hero__img picture{position:absolute;inset:0}
.hero__img .slot__img{position:absolute;top:0;bottom:0;inset-inline-start:20%;width:80%}
.hero__img .slot__img{height:100%;object-fit:cover;object-position:46% 24%}
.hero__img::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
 background:
  linear-gradient(96deg,var(--navy) 0%,var(--navy) 16%,rgba(13,22,39,.92) 30%,rgba(13,22,39,.58) 48%,
                  rgba(13,22,39,.16) 74%,rgba(13,22,39,0) 100%),
  linear-gradient(to top,rgba(13,22,39,.52) 0%,rgba(13,22,39,0) 38%)}
/* P1 - hero baseline (25 Sep). The copy was vertically centred, so the space
   below it was whatever was left over: 174px on Home, 242 on Consultancy, 286
   on Forums, 311 on Contact, because the four copy blocks differ in height by
   nearly 150px. Centring made that difference visible as inconsistent dead
   space and the four heroes stopped reading as one set. Anchoring the copy to a
   common floor instead means every route shares the same relationship between
   the last line and the lower edge, whatever the copy above it does. */
.hero__card{position:relative;z-index:2;max-width:1180px;width:100%;
 margin:0 auto;padding:clamp(56px,6vw,92px) 24px clamp(64px,7.5vh,104px);
 background:none;
 display:flex;flex-direction:column;align-items:flex-start;
 /* 100%, not inherit: `inherit` copies the hero's min-height FLOOR (520px),
    not the height it actually renders at (720px from the aspect ratio), so
    the card was 200px short of the hero and flex-end had nothing to push
    against. */
 min-height:100%;
 justify-content:flex-end}
.hero__card>*{max-width:620px}
.hero__card h1{margin:14px 0 0}
.hero__card .lede{margin:20px 0 0}
.hero__acts{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.hero__meta{margin-top:34px;padding-top:18px;border-top:1px solid rgba(203,213,225,.20);
 max-width:620px;width:100%}
@media(max-width:820px){
 .hero{min-height:0;aspect-ratio:auto;max-height:none}
 .hero__img .slot__img{inset-inline-start:0;width:100%}
 .hero__img::after{background:
   linear-gradient(to top,var(--navy) 0%,rgba(13,22,39,.92) 34%,rgba(13,22,39,.52) 68%,rgba(13,22,39,.28) 100%)}
 .hero__card{padding:clamp(260px,52vw,360px) 20px 48px}}

/* 2 · headings */
h1,h2,h3{font-family:var(--fe);font-weight:300}
h1{font-size:clamp(38px,4.8vw,58px);line-height:1.06;letter-spacing:-.014em}
h2{font-size:clamp(28px,2.9vw,38px);line-height:1.16;letter-spacing:-.011em}
h3{font-weight:300;letter-spacing:-.008em}
h4,.dg__h{font-family:var(--fd);font-weight:700}

/* 3 · the ticker: one mark, not a label plus a rule */
.kick{display:inline-flex;align-items:center;gap:13px;margin:0;
 font-family:var(--ft);font-size:10.5px;font-weight:700;letter-spacing:.2em;
 text-transform:uppercase;color:var(--olive)}
.kick::before{content:"";width:26px;height:1px;background:currentColor;opacity:.65;flex:none}
.kick.on{color:var(--lol)}
.kick + .rule{display:none}
.kick + .rule + h2,.kick + h2{margin-top:18px}

/* 4 · rhythm — tighter, no dead air */
section{padding-block:clamp(58px,5.4vw,92px)}
section > .w > h2{margin-top:18px}
section > .w > .lede{margin-top:16px;max-width:66ch}
.hero + section{padding-top:clamp(64px,6vw,100px)}

/* 5 · footer */
footer{background:var(--ink);color:var(--s400);padding:22px 0 16px}
footer .w{max-width:1180px}
.ftr__row{display:flex;align-items:center;gap:26px;flex-wrap:wrap;
 padding-bottom:15px;border-bottom:1px solid rgba(203,213,225,.12)}
.ftr__brand{display:inline-flex;align-items:center;gap:15px;text-decoration:none;flex:none;min-height:44px}
.ftr__brand img{height:19px;display:block;opacity:.96}
.ftr__tag{font-family:var(--fe);font-weight:300;font-size:14.5px;color:var(--s300);white-space:nowrap}
footer nav{display:block;gap:0;margin-inline-start:0}
.ftr__nav{margin-inline-start:auto;min-width:0}
@media(min-width:901px){.ftr__row{flex-wrap:nowrap}}
.ftr__nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 20px;justify-content:flex-end}
.ftr__nav a{color:var(--s300);text-decoration:none;font-family:var(--ft);font-size:13px;font-weight:400;
 text-transform:none;letter-spacing:0;display:inline-flex;align-items:center;min-height:44px;
 border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.ftr__nav a:hover,.ftr__nav a:focus-visible{color:var(--white);border-bottom-color:var(--lol)}
.ftr__cta{flex:none;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 20px;
 color:var(--white);text-decoration:none;font-size:13px;letter-spacing:.01em;
 box-shadow:inset 0 0 0 1px rgba(138,150,110,.5);transition:background .25s ease,box-shadow .25s ease}
.ftr__cta:hover,.ftr__cta:focus-visible{background:rgba(138,150,110,.16);box-shadow:inset 0 0 0 1px var(--lol)}
.ftr__arw{transition:transform .25s ease}
.ftr__cta:hover .ftr__arw{transform:translateX(3px)}
.ftr__base{display:flex;gap:24px;align-items:baseline;justify-content:space-between;
 flex-wrap:wrap;padding-top:11px}
.ftr__legal{margin:0;font-size:11px;line-height:1.55;color:var(--s500);flex:1 1 560px}
.ftr__meta{list-style:none;margin:0;padding:0;display:flex;gap:2px 18px;flex-wrap:wrap;
 min-width:0;max-width:100%}
.ftr__meta li{font-size:11px;color:var(--s500);display:inline-flex;align-items:center}
.ftr__meta a{color:var(--s400);text-decoration:none;display:inline-flex;align-items:center;
 overflow-wrap:anywhere;min-height:44px;border-bottom:1px solid transparent}
.ftr__meta a:hover,.ftr__meta a:focus-visible{color:var(--white);border-bottom-color:var(--lol)}
@media(max-width:900px){
 .ftr__row{gap:12px}.ftr__nav{margin-inline-start:0;width:100%}
 .ftr__nav ul{justify-content:flex-start}
 .ftr__cta{width:100%;justify-content:center}.ftr__tag{white-space:normal}}

/* ============ 23 Sep pass 3 — nine Chairman items ===================== */

/* 1 · hero: cluster whole, shifted right, one continuous fade (23 Sep, Chairman)
      master i-01 v2 carries the full KAFD cluster plus sky headroom (aspect 1.055),
      so a 62%-wide right-anchored box crops only sky — never a building. */
.hero__img .slot__img{inset-inline-start:40%;width:60%;object-position:50% 100%}
.hero__img::after{background:
  linear-gradient(90deg,var(--navy) 0%,var(--navy) 30%,rgba(13,22,39,.95) 40%,
                  rgba(13,22,39,.78) 48%,rgba(13,22,39,.55) 56%,rgba(13,22,39,.32) 66%,
                  rgba(13,22,39,.15) 76%,rgba(13,22,39,.05) 86%,rgba(13,22,39,0) 95%),
  /* Bottom scrim raised .42 -> .66 and extended 32% -> 44% (D-101 b fallout).
     Lighting the hero frame's sources more strongly lifted the backdrop under
     .hero__meta to rgb(53,61,70) and its contrast fell to 4.29:1, below AA.
     Deepening the scrim under the meta strip restores it without touching the
     text colour or dulling the lights that were the point of the change. */
  linear-gradient(to top,rgba(13,22,39,.66) 0%,rgba(13,22,39,.28) 22%,rgba(13,22,39,0) 44%),
  /* Lower-left corner scrim. The copy column and the meta strip live between
     6% and 54% across and 68% to 73% down; a hero photograph that is bright
     there takes .hero__meta below AA no matter how the global fade is tuned.
     The 25 Sep rooftop did exactly that at 2.38:1 over rgb(93,99,100).
     Darkening only that corner protects the text whatever photograph is
     dropped in later, and leaves the upper right - where the skyline is -
     untouched. */
  radial-gradient(165% 115% at 0% 100%,rgba(13,22,39,.96) 0%,
                  rgba(13,22,39,.88) 36%,rgba(13,22,39,.64) 56%,
                  rgba(13,22,39,.30) 72%,rgba(13,22,39,0) 88%)}
@media(max-width:820px){
 /* mobile carries its own master: the whole cluster as a top band over navy */
 .hero__img .slot__img{inset-inline-start:0;width:100%;object-position:50% 0%}
 .hero__img::after{background:
   linear-gradient(to top,var(--navy) 0%,var(--navy) 58%,rgba(13,22,39,.90) 68%,
                   rgba(13,22,39,.58) 78%,rgba(13,22,39,.26) 88%,rgba(13,22,39,.06) 96%,
                   rgba(13,22,39,0) 100%)}}

/* 2 · the ticker: a set marker, not a floating dash */
.kick{display:inline-flex;align-items:center;gap:0;position:relative;
 padding-inline-start:15px;margin:0;
 font-family:var(--ft);font-size:11px;font-weight:700;letter-spacing:.19em;
 text-transform:uppercase;color:var(--olive)}
.kick::before{content:"";position:absolute;inset-inline-start:0;top:50%;
 transform:translateY(-50%);width:3px;height:15px;background:currentColor;border-radius:1px}
.kick.on{color:var(--lol)}
.kick + .rule{display:none}

/* 3 · the three statements as cards */
.proof--cards{grid-template-columns:repeat(3,1fr);gap:18px;border-top:0}
.proof--cards>div{padding:26px 24px 28px;border-inline-end:0;background:#fff;
 border:1px solid #E3E6EA;border-top:3px solid var(--olive);
 display:flex;flex-direction:column;gap:9px;
 transition:box-shadow .25s ease,transform .25s ease}
.proof--cards>div:hover{box-shadow:0 10px 28px rgba(11,21,38,.08);transform:translateY(-2px)}
.proof--cards>div>b{font-family:var(--fd);font-size:15.5px;color:var(--navy);line-height:1.3}
.proof--cards>div>span{font-size:13.5px;line-height:1.65;color:#5A626E}
@media(max-width:820px){.proof--cards{grid-template-columns:1fr}}

/* 4 · the problem reads across two columns */
.sec2{display:grid;grid-template-columns:minmax(330px,1fr) 1.05fr;gap:20px 60px;
 align-items:start;margin-top:18px}
.sec2 h2{grid-column:1;margin:0}
.sec2 .lede{grid-column:2;grid-row:1;margin:0;max-width:60ch}
.sec2 p:last-child{grid-column:2;margin:18px 0 0;max-width:52ch}
@media(max-width:900px){.sec2{grid-template-columns:1fr;gap:16px}
 .sec2 h2,.sec2 .lede,.sec2 p:last-child{grid-column:1;grid-row:auto}}

/* 6 · above / below the line, drawn */
.tline{margin-top:34px;display:grid;gap:0}
.tline__side{display:grid;gap:14px}
.tline__tag{display:inline-flex;align-items:center;gap:9px;font-size:10.5px;font-weight:700;
 letter-spacing:.16em;text-transform:uppercase;color:var(--olive)}
.tline__tag::before{content:"";width:16px;height:16px;flex:none;
 background:var(--olive);clip-path:polygon(50% 0,100% 100%,0 100%)}
.tline__tag--dn{color:var(--s600)}
.tline__tag--dn::before{background:var(--s500);clip-path:polygon(50% 100%,100% 0,0 0)}
.tline__list{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tline__list li{background:#fff;border:1px solid #E3E6EA;padding:20px 22px;
 display:flex;flex-direction:column;gap:7px;border-inline-start:3px solid var(--olive)}
.tline__list--dn li{border-inline-start-color:var(--s400);background:#FAFBFC}
.tline__list b{font-family:var(--fd);font-size:14.5px;color:var(--navy);line-height:1.3}
.tline__list span{font-size:13px;line-height:1.6;color:#5A626E}
.tline__rule{position:relative;margin:26px 0;height:1px;background:var(--olive);opacity:.75}
.tline__rule span{position:absolute;inset-inline-start:50%;top:50%;transform:translate(-50%,-50%);
 background:var(--grey,#ECEDEF);padding:0 14px;font-size:10px;font-weight:700;letter-spacing:.2em;
 text-transform:uppercase;color:var(--olive)}
@media(max-width:820px){.tline__list{grid-template-columns:1fr}}

/* 7 · closing band on olive */
.band--olive{background:var(--olive);color:var(--white)}
.band--olive h2{color:var(--white)}
.band--olive .btn--on{background:var(--white);color:var(--olive)}
.band--olive .btn--on:hover{background:#EFF1EA}
.band--olive .btn--ons{color:var(--white);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
.band--olive .btn--ons:hover{background:rgba(255,255,255,.14)}

/* 8 · larger marks */
.hdr img{height:38px;width:auto}
.ftr__brand img{height:30px}
.ftr__tag{font-size:15px}

/* 9 · footer, refined again */
footer{padding:26px 0 18px}
.ftr__row{gap:30px;padding-bottom:18px;border-bottom:1px solid rgba(203,213,225,.14)}
.ftr__brand{gap:18px}
.ftr__nav a{font-size:13.5px}
.ftr__cta{min-height:46px;padding:0 22px;font-size:13.5px;
 box-shadow:inset 0 0 0 1px rgba(138,150,110,.62)}
.ftr__base{padding-top:13px;gap:28px}
.ftr__legal{font-size:11.5px;line-height:1.6;color:var(--s500)}
.ftr__meta li,.ftr__meta a{font-size:11.5px}

.lede{line-height:1.72}

/* ===== EDGE FRAMEWORK - EDGE Advisory cut ================================
   Ported 1:1 from edge-cap.net/investment-concept. Structure, geometry and
   motion identical; palette is EDGE Advisory's. NO signature blue #1E3568.
   ======================================================================== */
.ef{--ef-navy:#0D1627;--ef-panel:#1A222A;--ef-deep:#3F4A2F;--ef-sage:#66734D;
 --ef-lol:#8A966E;--ef-pale:#E4E8DC;--ef-slate:#CBD5E1;
 --ef-fs:"Fiorina Text",Georgia,"Times New Roman",serif;
 --ef-fd:"Neue Haas Grotesk Display",Inter,ui-sans-serif,system-ui,sans-serif;
 --ef-fb:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 background:var(--ef-navy);padding:56px 34px;color:#fff}
.ef *,.ef *::before,.ef *::after{box-sizing:border-box}

.ef-cards{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.ef-card{background:var(--ef-panel);border:1px solid rgba(138,150,110,.2);
 padding:34px 30px 30px;display:flex;flex-direction:column}
.ef-l{font:300 72px/1 var(--ef-fs);color:var(--ef-sage);margin-bottom:18px;display:block}
.ef-card h3{font:300 32px/1.1 var(--ef-fs);color:#fff;letter-spacing:0;margin:0 0 14px}
.ef-card p{font-family:var(--ef-fb);font-weight:400;font-size:15px;line-height:1.6;
 color:rgba(255,255,255,.82);flex:1;margin:0}
.ef-sub{display:block;margin-top:20px;padding-top:16px;
 border-top:1px solid rgba(138,150,110,.22);font:600 11px/1.6 var(--ef-fd);
 letter-spacing:1.6px;text-transform:uppercase;color:var(--ef-lol)}

@media (prefers-reduced-motion:no-preference){
 .ef-l{animation:efL 8s ease-in-out infinite}
 .ef-card:nth-child(2) .ef-l{animation-delay:2s}
 .ef-card:nth-child(3) .ef-l{animation-delay:4s}
 .ef-card:nth-child(4) .ef-l{animation-delay:6s}
}
@keyframes efL{0%,30%,100%{color:#66734D;text-shadow:none}
 6%,22%{color:#8A966E;text-shadow:0 0 28px rgba(102,115,77,.55)}}

.ef-cycle{margin-top:56px;background:rgba(63,74,47,.2);
 border:1px solid rgba(203,213,225,.16);border-radius:14px;padding:34px 34px 20px}
.ef-cyh{max-width:760px;padding-bottom:18px;
 border-bottom:1px solid rgba(203,213,225,.16);margin-bottom:10px}
.ef-cyh h3{font:300 34px/1.15 var(--ef-fs);color:#fff;margin:0 0 12px;letter-spacing:0}
.ef-cyh p{font-family:var(--ef-fb);font-weight:400;font-size:15px;line-height:1.6;
 color:rgba(255,255,255,.8);margin:0}

.cy-svg{display:block;width:100%;max-width:900px;height:auto;margin:0 auto}
.cy-box rect{fill:#0D1627;stroke:rgba(138,150,110,.35);stroke-width:1.2}
.cy-bt{font:700 22px var(--ef-fd);fill:#fff;letter-spacing:.6px}
.cy-bs{font:400 13px var(--ef-fb);fill:var(--ef-lol)}
.cy-pill rect{fill:#0D1627;stroke:var(--ef-lol);stroke-width:1.3}
.cy-pill text{font:700 11px var(--ef-fd);letter-spacing:1.6px;fill:#fff}
.cy-renew rect{stroke-dasharray:4 4;stroke:rgba(203,213,225,.7)}
.cy-renew text{fill:var(--ef-slate)}
.cy-core circle{fill:var(--ef-panel);stroke:rgba(138,150,110,.45);stroke-width:1.2}
.cy-ct{font:700 15px var(--ef-fd);letter-spacing:2px;fill:#fff}
.cy-rule{stroke:var(--ef-lol);stroke-width:1.2}
.cy-ce{font:400 14px var(--ef-fb);fill:var(--ef-slate)}
.cy-en{font-weight:600;fill:#fff}
.cy-dot{fill:var(--ef-lol);font-size:10px}
.cy-cf{font:italic 300 13px var(--ef-fs);fill:var(--ef-lol)}

.cy-svg.cy16{max-width:720px;margin:6px auto 0}
.cy16 .cy-track{fill:none;stroke:rgba(102,115,77,.55);stroke-width:2}
.cy16 .cy-track-d{stroke-dasharray:7 7;stroke:rgba(203,213,225,.45)}
.cy16 .cy-flow{fill:none;stroke:var(--ef-lol);stroke-width:2.6;stroke-linecap:round;
 stroke-dasharray:12 35.833;opacity:.95}
.cy16 .cy-chev{fill:none;stroke:var(--ef-lol);stroke-width:2.2;stroke-linecap:round;
 stroke-linejoin:round}
.cy16 .cy-inner{fill:none;stroke:rgba(138,150,110,.28);stroke-width:1.2;stroke-dasharray:2 7;
 transform-box:view-box;transform-origin:480px 300px}
.cy16 .cy-core circle{fill:var(--ef-panel);stroke:rgba(138,150,110,.45);stroke-width:1.2}
.cy16 .cy-box rect{fill:#0D1627;stroke:rgba(138,150,110,.38);stroke-width:1.3;
 transition:stroke .3s}
.cy16 .cy-pill rect{fill:#0D1627;stroke:var(--ef-sage);stroke-width:1.3}
.cy16 .cy-renew rect{stroke:rgba(203,213,225,.7);stroke-dasharray:4 4}

@media (prefers-reduced-motion:no-preference){
 .cy16 .cy-flow{animation:cyflow 2.4s linear infinite}
 .cy16 .cy-inner{animation:cyspin 60s linear infinite reverse}
 .cy16 .cy-pill rect,.cy16 .cy-box rect{animation:cyhit 16s linear infinite}
 .cy16 .cy-g0 rect{animation-delay:0s}.cy16 .cy-s1 rect{animation-delay:2s}
 .cy16 .cy-g1 rect{animation-delay:4s}.cy16 .cy-s2 rect{animation-delay:6s}
 .cy16 .cy-g2 rect{animation-delay:8s}.cy16 .cy-s3 rect{animation-delay:10s}
 .cy16 .cy-g3 rect{animation-delay:12s}.cy16 .cy-s0 rect{animation-delay:14s}
}
@media (prefers-reduced-motion:reduce){.cy16 .cy-comet{display:none}}
@keyframes cyflow{to{stroke-dashoffset:-47.833}}
@keyframes cyspin{to{transform:rotate(360deg)}}
@keyframes cyhit{
 0%{stroke:#E4E8DC;stroke-width:2.2;filter:drop-shadow(0 0 6px rgba(138,150,110,.9))}
 9%{stroke:#E4E8DC;stroke-width:2.2;filter:drop-shadow(0 0 6px rgba(138,150,110,.9))}
 16%,100%{stroke:rgba(138,150,110,.45);stroke-width:1.3;filter:none}}

.ef-attr{margin-top:26px;font-family:var(--ef-fb);font-size:13px;
 color:rgba(255,255,255,.66)}

@media(max-width:1100px){.ef-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.ef-cycle{padding:24px 16px 12px}.ef{padding:40px 18px}}
@media(max-width:620px){
 .cy16 .cy-bs,.cy16 .cy-cf,.cy16 .cy-ce,.cy16 .cy-rule{display:none}
 .cy16 .cy-bt{font-size:30px}
 .cy16 .cy-ct{font-size:21px;letter-spacing:1.5px;transform:translateY(80px)}
 .cy16 .cy-pill text{font-size:13px;letter-spacing:1px}
 .cy16 .cy-box text.cy-bt{transform:translateY(10px)}
}
@media(max-width:560px){.ef-cards{grid-template-columns:1fr}.ef-l{font-size:58px}
 .ef-card{padding:26px 22px}}

html.js .reveal{opacity:0;transform:translateY(18px);
 transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
html.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
 html.js .reveal{opacity:1;transform:none;transition:none}}

/* ===== items 10-14 · exhibit cards, framework sections, step infographics == */

/* 11+12 — the ported EDGE Framework, sitting inside the site's own band */
.ef--flat{background:none;padding:0;margin-top:34px}
.ef--flat .ef-cycle{margin-top:0;padding:28px 28px 14px}
.efg{margin-top:34px;border-top:1px solid rgba(203,213,225,.18);padding-top:28px}
.efg__h{font-family:var(--fd);font-weight:700;font-size:19px;color:#fff;margin:0 0 20px}
.efg__l{list-style:none;margin:0;padding:0;display:grid;gap:18px;
 grid-template-columns:repeat(3,minmax(0,1fr))}
.efg__l li{display:grid;gap:5px;padding-inline-start:16px;
 border-inline-start:2px solid var(--lol)}
.efg__n{font-family:var(--ft);font-size:10.5px;font-weight:700;letter-spacing:.16em;
 color:var(--lol)}
.efg__l b{font-family:var(--fd);font-size:15.5px;color:#fff;line-height:1.3}
.efg__l span:last-child{font-size:13.5px;line-height:1.6;color:var(--s300)}
.efg__f{font-family:var(--fd);font-weight:700;font-size:19px;color:#fff;margin:26px 0 0}
@media(max-width:820px){.efg__l{grid-template-columns:1fr}}

/* 10 — the exhibit row */
.xb{margin-top:30px}
.xb__lab{font-family:var(--ft);font-size:10.5px;font-weight:700;letter-spacing:.19em;
 text-transform:uppercase;color:var(--olive);margin:0 0 16px;padding-bottom:12px;
 border-bottom:1px solid var(--s200)}
.xb__row{list-style:none;margin:0;padding:0;display:grid;gap:26px;
 grid-template-columns:repeat(4,minmax(0,1fr))}
.xb__c{display:flex;flex-direction:column;border-top:2px solid var(--s200);padding-top:0}
.xb__im{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--navy);
 margin-bottom:18px}
.xb__c .slot--x{position:absolute;inset:0}
.xb__n{font-family:var(--ft);font-size:11px;font-weight:700;letter-spacing:.2em;
 color:var(--olive);display:block;margin-bottom:9px}
.xb__t{font-family:var(--fd);font-weight:700;font-size:19px;line-height:1.25;
 color:var(--navy);margin:0 0 9px}
.xb__c p{font-size:14px;line-height:1.6;color:var(--s600);margin:0}
.xb__c--e{border-top:2px solid var(--olive);background:var(--navy);padding:0 0 24px;
 margin-top:0}
.xb__c--e .xb__im{margin-bottom:18px}
.xb__c--e .xb__n,.xb__c--e .xb__t,.xb__c--e p{padding-inline:22px}
.xb__n--e{color:var(--lol);text-transform:uppercase}
.xb__t--e{font-family:var(--fe);font-weight:300;font-size:26px;line-height:1.15;color:#fff}
.xb__c--e p{color:var(--s300)}
@media(max-width:980px){.xb__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.xb__row{grid-template-columns:1fr}}

/* 13 + 14 — step infographics */
.stp{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.stp--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stp--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stp__i{position:relative;padding:0 26px 0 0;display:grid;
 grid-template-rows:auto 1fr;gap:18px}
.stp__i+.stp__i{padding-inline-start:26px}
.stp__i+.stp__i::before{content:"";position:absolute;inset-inline-start:0;top:24px;bottom:6px;
 width:1px;background:var(--s200)}
.stp__n{display:inline-flex;align-items:center;justify-content:center;
 width:48px;height:48px;border-radius:50%;flex:none;
 font-family:var(--fd);font-weight:700;font-size:16px;letter-spacing:.04em;
 color:#fff;background:var(--olive);position:relative;z-index:1}
.stp__i::after{content:"";position:absolute;inset-inline-start:48px;top:23.5px;
 inset-inline-end:26px;height:1px;background:var(--s200);z-index:0}
.stp__i:last-child::after{display:none}
.stp__b h3{font-family:var(--fd);font-weight:700;font-size:18px;line-height:1.3;
 color:var(--navy);margin:0 0 9px}
.stp__b p{font-size:14px;line-height:1.6;color:var(--s600);margin:0}
.stp__t{display:block;margin-top:12px;font-family:var(--ft);font-size:11px;font-weight:700;
 letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}
/* 14 — ranked variant: the line falls between 02 and 03 */
.stp__wrap{margin-top:30px}
.stp--rank .stp__i--n .stp__n{background:var(--s400)}
.stp--rank .stp__i--n .stp__b h3{color:var(--s600)}
.stp--rank .stp__i--n .stp__t{color:var(--s500)}
.stp--rank .stp__i--n:first-of-type{padding-inline-start:30px}
.stp--rank .stp__i--n:first-of-type::before{width:2px;background:var(--olive);
 inset-inline-start:2px;top:0;bottom:0}
.stp--rank .stp__i--n:first-of-type::after{inset-inline-start:52px}
.stp__note{margin-top:22px;font-size:13px;line-height:1.6;color:var(--s600)}
.band .stp__note,.band .stp__b p{color:var(--s300)}
.band .stp__b h3{color:#fff}
@media(max-width:900px){
 .stp--3,.stp--4{grid-template-columns:1fr;gap:26px}
 .stp__i,.stp__i+.stp__i{padding:0 0 0 0}
 .stp__i::after,.stp__i+.stp__i::before{display:none}
 .stp--rank .stp__i--n:first-of-type{padding-inline-start:0;
  border-top:2px solid var(--olive);padding-top:26px}
 .stp--rank .stp__i--n:first-of-type::before{display:none}
 .stp__i{grid-template-columns:48px 1fr;grid-template-rows:auto;align-items:start;gap:18px}
}

/* 18 — the service matrix reads as an exhibit, first line marked flagship */
.mx{margin-top:26px;background:#fff;border:1px solid #DFE3E8;
 box-shadow:0 1px 2px rgba(13,22,39,.04),0 12px 30px -18px rgba(13,22,39,.22)}
.mx__sc{overflow-x:auto}
.mx table{min-width:680px;width:100%;border-collapse:collapse;margin:0}
.mx thead th{background:var(--navy);color:#fff;font-family:var(--ft);font-size:10.5px;
 font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-align:start;
 padding:15px 18px;border:0;white-space:nowrap}
.mx tbody td{padding:17px 18px;border-top:1px solid #EAEDF0;vertical-align:middle;
 font-size:14px;color:var(--s600)}
.mx tbody td b{font-family:var(--fd);font-size:14.5px;color:var(--navy);font-weight:700}
.mx tbody tr:hover td{background:#FAFBFA}
.mx tbody tr.mx--f td{background:var(--olive-tint)}
.mx tbody tr.mx--f td:first-child{box-shadow:inset 3px 0 0 var(--olive)}
.mx tbody tr.mx--f td b{color:var(--olive)}
.mx__chip{display:inline-block;margin-inline-start:9px;vertical-align:middle;
 font-family:var(--ft);font-size:9.5px;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:#fff;background:var(--olive);padding:3px 8px;border-radius:2px}
.mx .bar{height:7px;border-radius:4px}
.mx__note{margin:0;padding:15px 18px;border-top:1px solid #EAEDF0;background:#F7F8F9;
 font-size:12.5px;line-height:1.55;color:var(--s500)}

/* 20 — the commercial basis becomes real cards */
/* Chairman, 25 Sep: 2x2, not 1x4. Four cards in a single row reduced each
   one to a narrow column of six short lines; at two columns the cards are
   wide enough for the text to set properly and the block reads as a pair
   of pairs - the two fee components above, the two commercial terms below,
   which is what the copy actually says. */
.cbx{margin-top:28px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}
.cbx__c{background:#fff;border:1px solid #DFE3E8;border-top:3px solid var(--olive);
 padding:26px 22px 24px;display:flex;flex-direction:column;
 box-shadow:0 1px 2px rgba(13,22,39,.04);transition:transform .35s var(--settle),
 box-shadow .35s var(--settle)}
.cbx__c:hover{transform:translateY(-3px);
 box-shadow:0 1px 2px rgba(13,22,39,.05),0 18px 34px -22px rgba(13,22,39,.32)}
.cbx__n{font-family:var(--ft);font-size:10.5px;font-weight:700;letter-spacing:.18em;
 text-transform:uppercase;color:var(--olive);margin:0 0 12px}
.cbx__c h3{font-family:var(--fd);font-weight:700;font-size:17px;line-height:1.3;
 color:var(--navy);margin:0 0 10px;text-wrap:balance}
.cbx__c p{font-size:13.5px;line-height:1.6;color:var(--s600);margin:0}
.cbx__c--r{border-top-color:var(--navy)}
.cbx__c--r .cbx__n{color:var(--navy)}
@media(max-width:560px){.cbx{grid-template-columns:1fr}}

/* 19 + 23 — statement bands use the full measure instead of half a screen */
.bx{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
 gap:clamp(28px,5vw,72px);align-items:start}
.bx h2{margin:0}
.bx .lede{max-width:none}
.bx__r{display:grid;gap:18px}
.bx__k{font-family:var(--fd);font-weight:700;font-size:19px;line-height:1.35;margin:0}
.band .bx__k,.band-olive .bx__k{color:#fff}
@media(max-width:860px){.bx{grid-template-columns:1fr}}

/* 23 — the contact intake: the left rail tracks the form instead of leaving a hole */
.cx{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
 gap:clamp(28px,4vw,54px);align-items:start}
.cx__l{position:sticky;top:96px}
.cx__f{background:var(--grey);padding:34px}
@media(max-width:900px){.cx{grid-template-columns:1fr}.cx__l{position:static}}

/* the olive grounds carry a light kicker, not the sage — 4.5:1 at 11px */
.band-olive .kick,.band--olive .kick,.band-olive .kick.on,.band--olive .kick.on{color:#E4E8DC}
.band-olive .rule,.band--olive .rule{background:#E4E8DC}
.band-olive .lede.on,.band--olive .lede.on{color:#E9ECE0}

/* ===== SILVER ILLUMINATION =================================================
   A neutral silver (no blue cast, so it never drifts toward EDGE Capital's
   signature blue) used only as light: hairlines, rules, rims and slow sweeps.
   Never a fill, never a type colour on light grounds. No gold anywhere.
   ========================================================================= */
:root{--sil:#C9D0D8;--sil-hi:#F2F5F8;--sil-lo:#7E8894;
 --sil-g:linear-gradient(90deg,var(--sil-lo) 0%,var(--sil-hi) 38%,var(--sil) 62%,var(--sil-lo) 100%)}

/* rules and kicker marks on dark grounds are lit, not painted */
.band .rule,.band--olive .rule,.band-olive .rule,.hero .rule{
 background:var(--sil-g);background-size:220% 100%;opacity:.95}
.band .kick::before,.band--olive .kick::before,.band-olive .kick::before,
.hero .kick::before{background:var(--sil-g);background-size:220% 100%}
@media (prefers-reduced-motion:no-preference){
 .band .rule,.band--olive .rule,.band-olive .rule,.hero .rule,
 .band .kick::before,.band--olive .kick::before,.band-olive .kick::before,
 .hero .kick::before{animation:silSweep 7s ease-in-out infinite}
}
@keyframes silSweep{0%,100%{background-position:120% 0}50%{background-position:-20% 0}}

/* the header and footer edges carry the same light */
.hdr{position:relative}
.hdr::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;
 background:linear-gradient(90deg,transparent 0%,rgba(201,208,216,.42) 22%,
  rgba(242,245,248,.62) 50%,rgba(201,208,216,.42) 78%,transparent 100%)}
footer{position:relative}
footer::before{content:"";position:absolute;inset-inline:0;top:0;height:1px;
 background:linear-gradient(90deg,transparent 0%,rgba(201,208,216,.36) 20%,
  rgba(242,245,248,.6) 50%,rgba(201,208,216,.36) 80%,transparent 100%)}

/* cards on dark grounds get a lit top edge */
.band .card,.ef-card,.band .cbx__c{position:relative}
.band .card::before,.ef-card::before{content:"";position:absolute;inset-inline:0;top:0;
 height:1px;background:linear-gradient(90deg,rgba(201,208,216,.05) 0%,
  rgba(242,245,248,.55) 50%,rgba(201,208,216,.05) 100%)}

/* the exhibit's fourth card is lit rather than ruled */
.xb__c--e{border-top-color:transparent;background-image:
 linear-gradient(90deg,rgba(138,150,110,.9) 0%,rgba(242,245,248,.85) 46%,
  rgba(138,150,110,.9) 100%);background-size:100% 2px;background-repeat:no-repeat;
 background-position:0 0}

/* buttons on dark ground pick up a silver rim and a sheen on hover */
.band .btn--ons,.hero__acts .btn--ons,.band--olive .btn--ons{
 border-color:rgba(201,208,216,.55)}
.band .btn--ons:hover,.hero__acts .btn--ons:hover,.band--olive .btn--ons:hover{
 border-color:var(--sil-hi);box-shadow:0 0 0 1px rgba(242,245,248,.18)}
.btn--on{position:relative;overflow:hidden}
.btn--on::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
 background:linear-gradient(104deg,transparent 36%,rgba(242,245,248,.32) 50%,transparent 64%);
 background-size:250% 100%;background-position:150% 0;transition:opacity .2s}
@media (prefers-reduced-motion:no-preference){
 .btn--on:hover::after{opacity:1;animation:silBtn 1.1s ease-out}
}
@keyframes silBtn{from{background-position:150% 0}to{background-position:-80% 0}}

/* step numerals carry a silver rim */
.stp__n{box-shadow:0 0 0 1px rgba(201,208,216,.34),0 0 0 5px rgba(201,208,216,.10)}
.band .stp__n{box-shadow:0 0 0 1px rgba(242,245,248,.42),0 0 0 6px rgba(242,245,248,.10)}

/* the hero image meets the card on a lit edge */
.hero__img::before{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;z-index:2;
 background:linear-gradient(90deg,transparent 0%,rgba(242,245,248,.38) 44%,
  rgba(201,208,216,.16) 72%,transparent 100%)}

/* The framework letters light in OLIVE at the top of their cycle.

   They previously peaked at #D6DBCB with a white glow, which read as a silver
   letter among three olive ones - the fourth letter looked like a different
   colour rather than the same colour lit. Chairman, 25 Sep: illuminated olive,
   not white. The peak is now the brand's own olive highlight #C9D2A8 and the
   glow is olive rather than white, so the letter reads as the same olive with
   a light behind it. */
@media (prefers-reduced-motion:no-preference){
 .ef-l{animation:efLolv 8s ease-in-out infinite}
}
@keyframes efLolv{0%,30%,100%{color:#66734D;text-shadow:none}
 6%,22%{color:#C9D2A8;text-shadow:0 0 30px rgba(201,210,168,.55),0 0 10px rgba(138,150,110,.75)}}

/* section hairline on light grounds */
.band-grey+section::before,section+.band-grey::before{content:none}
.mx thead th{position:relative}
.mx thead tr th:last-child::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;
 background:linear-gradient(90deg,rgba(242,245,248,.5),transparent)}

/* two dark bands in sequence read as one field, not two rooms */
.band + .band{padding-block-start:clamp(18px,2vw,34px);position:relative}
.band + .band::before{content:"";position:absolute;inset-inline:80px;top:0;height:1px;
 background:linear-gradient(90deg,transparent,rgba(201,208,216,.22) 28%,
  rgba(242,245,248,.4) 50%,rgba(201,208,216,.22) 72%,transparent)}
.band:has(+ .band){padding-block-end:clamp(30px,3.4vw,54px)}
@media(max-width:900px){.band + .band::before{inset-inline:22px}}

/* the service lines lose a third of their height without losing a word */
#lines .g2 .ratio{aspect-ratio:16/9}
#lines .g2{gap:34px;margin-bottom:18px!important}
#lines .g2 > div:last-child,#lines .g2 > div:first-child{padding:0!important}

/* trailing notes sit close to the block they annotate */
.xb + .sm,.mx + .sm,.cbx + .sm{margin-top:16px!important}
.ef-attr{margin-top:20px}
.efg{margin-top:28px;padding-top:24px}

/* three of these were carried in from earlier waves; all four now clear 4.5:1 */
.stp--rank .stp__i--n .stp__n{background:var(--s600)}          /* was --s400, 2.56:1 */
.ftr__legal,.ftr__meta li,footer .ftr__meta a{color:#7E8894}   /* was --s500, 4.16:1 */
.mx__note{color:var(--s600)}                                   /* was --s500, 4.48:1 */
.hint,.field .hint,.field .hint{color:var(--s600)}                                       /* was --s500, 4.06:1 */

/* ===== ILLUMINATED OLIVE ===================================================
   The silver carries the dark grounds. Olive carries the light grounds and
   the accent moments, so the whole site is lit rather than half of it.
   Light olive is decoration only — never small text on a light ground.
   ========================================================================= */
:root{--ol-hi:#C9D2A8;--ol-mid:#8A966E;--ol-lo:#4C5536;
 --ol-g:linear-gradient(90deg,var(--ol-lo) 0%,var(--ol-hi) 36%,var(--ol-mid) 62%,var(--ol-lo) 100%)}

/* kicker marks and rules on light grounds are lit olive and sweep */
.kick::before,.rule{background:var(--ol-g);background-size:220% 100%}
.band .kick::before,.band .rule,.band--olive .kick::before,.band--olive .rule,
.band-olive .kick::before,.band-olive .rule,.hero .kick::before,.hero .rule{
 background:var(--sil-g);background-size:220% 100%}
@media (prefers-reduced-motion:no-preference){
 .kick::before,.rule{animation:oliveSweep 7.5s ease-in-out infinite}
}
@keyframes oliveSweep{0%,100%{background-position:120% 0}50%{background-position:-20% 0}}

/* card top rules on light grounds become lit edges */
.card--o,.cbx__c{border-top-color:transparent;background-image:var(--ol-g);
 background-size:220% 3px;background-repeat:no-repeat;background-position:0 0}
.cbx__c--r{background-image:linear-gradient(90deg,#0D1627 0%,#3D4657 40%,
 #0D1627 100%)}
@media (prefers-reduced-motion:no-preference){
 .card--o,.cbx__c{animation:oliveSweep 9s ease-in-out infinite}
}

/* the exhibit row: lit rule above each column, brighter on the effect card */
.xb__c{border-top-color:transparent;background-image:linear-gradient(90deg,
 rgba(76,85,54,.35) 0%,var(--ol-hi) 44%,rgba(76,85,54,.35) 100%);
 background-size:100% 2px;background-repeat:no-repeat;background-position:0 0}
.xb__lab{border-bottom-color:transparent;background-image:linear-gradient(90deg,
 var(--ol-lo),rgba(76,85,54,.18) 60%,transparent);
 background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%}

/* step numerals carry an olive halo instead of a flat disc */
.stp__n{box-shadow:0 0 0 1px rgba(201,210,168,.55),0 0 0 6px rgba(138,150,110,.16),
 0 6px 18px -8px rgba(76,85,54,.55)}
.stp--rank .stp__i--n .stp__n{box-shadow:0 0 0 1px rgba(148,163,184,.5),
 0 0 0 6px rgba(148,163,184,.12)}
.stp__i+.stp__i::before,.stp__i::after{background:linear-gradient(90deg,
 rgba(76,85,54,.30),rgba(201,210,168,.55),rgba(76,85,54,.30))}

/* the service matrix: the flagship line is lit, and every bar glows along it */
.mx tbody tr.mx--f td:first-child{box-shadow:inset 3px 0 0 0 var(--ol-mid),
 inset 5px 0 12px -6px rgba(201,210,168,.9)}
.mx__chip{background-image:linear-gradient(90deg,var(--ol-lo),var(--ol-mid) 55%,
 var(--ol-lo));box-shadow:0 0 0 1px rgba(201,210,168,.35)}
.mx .bar{background-image:linear-gradient(90deg,var(--ol-lo) 0%,var(--ol-mid) 30%,
 var(--ol-hi) 50%,var(--ol-mid) 70%,var(--ol-lo) 100%);background-size:240% 100%}
@media (prefers-reduced-motion:no-preference){
 .mx .bar{animation:oliveSweep 6s ease-in-out infinite}
 .mx tbody tr:nth-child(2) .bar{animation-delay:.5s}
 .mx tbody tr:nth-child(3) .bar{animation-delay:1s}
 .mx tbody tr:nth-child(4) .bar{animation-delay:1.5s}
 .mx tbody tr:nth-child(5) .bar{animation-delay:2s}
}

/* left rules on list items — gate tests, above/below the line */
.efg__l li{border-inline-start-color:transparent;
 background-image:linear-gradient(180deg,var(--ol-hi),var(--ol-mid) 45%,
  rgba(138,150,110,.25));background-size:2px 100%;background-repeat:no-repeat}
.tline__list li{border-inline-start-color:transparent;
 background-image:linear-gradient(180deg,var(--ol-hi),var(--ol-mid) 50%,
  rgba(138,150,110,.2));background-size:3px 100%;background-repeat:no-repeat;
 background-position:0 0}

/* primary button takes an olive sheen, the mirror of the silver one */
.btn--p,.btn--o{position:relative;overflow:hidden}
.btn--p::after,.btn--o::after{content:"";position:absolute;inset:0;opacity:0;
 pointer-events:none;background:linear-gradient(104deg,transparent 36%,
  rgba(201,210,168,.38) 50%,transparent 64%);
 background-size:250% 100%;background-position:150% 0;transition:opacity .2s}
@media (prefers-reduced-motion:no-preference){
 .btn--p:hover::after,.btn--o:hover::after{opacity:1;animation:silBtn 1.1s ease-out}
}

/* focus is lit, not outlined flat */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible{outline:2px solid var(--ol-mid);outline-offset:2px;
 box-shadow:0 0 0 5px rgba(138,150,110,.20)}

/* the framework lead-engine footers and the cycle key */
.ef-sub{border-top-color:transparent;background-image:linear-gradient(90deg,
 rgba(138,150,110,.22),rgba(201,210,168,.55) 40%,rgba(138,150,110,.22));
 background-size:100% 1px;background-repeat:no-repeat;background-position:0 0}

/* olive band edges */
.band-olive,.band--olive{position:relative}
.band-olive::before,.band--olive::before{content:"";position:absolute;
 inset-inline:0;top:0;height:1px;background:linear-gradient(90deg,transparent,
 rgba(226,230,216,.55) 30%,rgba(255,255,255,.75) 50%,rgba(226,230,216,.55) 70%,
 transparent)}

/* ---- footprint: dot map, EDGE Advisory palette ------------------------- */
.gm{display:grid;grid-template-columns:300px minmax(0,1fr);gap:0;
 background:var(--navy);border:1px solid rgba(203,213,225,.12);overflow:hidden}
.gm-key{padding:clamp(24px,2.4vw,34px);background:rgba(1,10,28,.55);
 border-inline-end:1px solid rgba(203,213,225,.10)}
.gm-kh{margin:0 0 18px;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.2em;text-transform:uppercase;color:var(--ol-hi,#C9D2A8)}
.gm-l{list-style:none;margin:0;padding:0}
.gm-i{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;
 align-items:baseline;padding:0 0 16px}
.gm-in{grid-row:span 2;display:inline-flex;align-items:center;justify-content:center;
 min-width:26px;height:20px;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.08em;color:var(--navy);background:var(--ol-hi,#C9D2A8)}
.gm-ic{font-family:var(--fd);font-size:15.5px;color:#fff;line-height:1.25}
.gm-iw{grid-column:2;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.14em;text-transform:uppercase;color:#98A48A}
.gm-i--gcc .gm-in{background:#66734D;color:#fff}
.gm-note{margin:6px 0 0;font-size:12.5px;line-height:1.6;color:var(--s300,#94A3B8)}

/* An explicit ratio, not height:100%. Stretching the panel to whatever the
   key column happened to be tall made the SVG overflow and crop the map. */
.gm-map{position:relative;background:var(--navy);aspect-ratio:150/102}
.gm-map svg{display:block;width:100%;height:100%}

.gd{fill:none;stroke-linecap:round}
/* The first version painted the whole of Saudi Arabia in the olive highlight
   and the country read as a bright blob with the markers lost inside it. The
   land is a ground, not a subject: it steps navy - olive - light olive across
   the three tiers, and the highlight is reserved for the pins. */
.gd--land{stroke:#2C3A4A;stroke-width:3.2}
.gd--gcc {stroke:#3F4A2F;stroke-width:3.4}
.gd--uae {stroke:#5C6840;stroke-width:3.6}
.gd--ksa {stroke:#6E7C4E;stroke-width:3.6}

.gm-arc{fill:none;stroke:#8A966E;stroke-width:1.8;opacity:.6}
.gm-pin circle{fill:none}
.gm-wave{fill:rgba(201,210,168,.10)}
.gm-ring{stroke:#C9D2A8;stroke-width:2}
.gm-core{fill:#C9D2A8}
.gm-pin--gcc .gm-ring{stroke:#8A966E}
.gm-pin--gcc .gm-core{fill:#8A966E}

@media (max-width:820px){
 .gm{grid-template-columns:1fr}
 .gm-key{border-inline-end:0;border-bottom:1px solid rgba(203,213,225,.10)}
 .gm-map{min-height:260px}
}

@keyframes gmWave{0%{transform:scale(.6);opacity:.65}
 70%{transform:scale(1.9);opacity:0} 100%{transform:scale(1.9);opacity:0}}
@keyframes gmDraw{from{stroke-dashoffset:900} to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:no-preference){
 /* fired by .is-in, resting state visible - a container the observer never
    reaches shows a finished map rather than an empty one. */
 .rv-on [data-rv].is-in .gm-arc{stroke-dasharray:900;
  animation:gmDraw 1200ms var(--ease-settle) both}
 .rv-on [data-rv].is-in .gm-arc--gcc{animation-delay:160ms}
 .rv-on [data-rv].is-in .gm-wave{transform-box:fill-box;transform-origin:center;
  animation:gmWave 3.2s ease-out infinite}
 .rv-on [data-rv].is-in .gm-pin--uae .gm-wave{animation-delay:.9s}
 .rv-on [data-rv].is-in .gm-pin--gcc .gm-wave{animation-delay:1.8s}
}

/* ===== FOOTER, REBUILT (23 Sep, Chairman) ===================================
   Three instructions: the tagline comes out of the footer, the mark goes up,
   the whole block reads as an institutional sign-off rather than one crowded
   row. Structure is now a four-zone grid — identity, three labelled link
   columns, an enquiries block — over a quiet legal base. Silver carries the
   top edge, olive carries the mark rule and the call to action.
   No gold. No signature blue.
   ========================================================================= */

footer{background:var(--ink);color:var(--s400);
 padding:clamp(44px,4.4vw,66px) 0 clamp(20px,2vw,26px)}
footer .w{max-width:1180px}

/* the lit silver top edge, widened and softened */
footer::before{background:linear-gradient(90deg,transparent 0%,rgba(201,208,216,.22) 14%,
 rgba(242,245,248,.68) 50%,rgba(201,208,216,.22) 86%,transparent 100%)}

/* --- zone 1 : identity | links | enquiries ------------------------------ */
.ftr__top{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,1.85fr) minmax(210px,.9fr);
 gap:clamp(28px,3.4vw,56px);align-items:start;
 padding-bottom:clamp(28px,3vw,42px);
 border-bottom:1px solid rgba(203,213,225,.12)}

/* identity ---------------------------------------------------------------- */
.ftr__id{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.ftr__brand{display:inline-flex;align-items:center;text-decoration:none;
 min-height:auto;gap:0;padding:0 0 18px}
.ftr__brand img{height:52px;width:auto;display:block;opacity:1}
.ftr__id::after{content:none}
/* lit olive rule beneath the mark */
.ftr__id .ftr__brand{position:relative}
.ftr__id .ftr__brand::after{content:"";position:absolute;inset-inline-start:0;bottom:0;
 width:68px;height:2px;background:var(--ol-g);background-size:220% 100%;opacity:1}
@media (prefers-reduced-motion:no-preference){
 .ftr__id .ftr__brand::after{animation:silSweep 7s ease-in-out infinite}}
.ftr__where{margin:16px 0 0;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.2em;text-transform:uppercase;color:#7E8894;min-height:15px;line-height:15px}
.ftr__mail{margin-top:8px;font-size:13.5px;color:#C9D0D8;text-decoration:none;
 display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere;
 border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.ftr__mail:hover,.ftr__mail:focus-visible{color:var(--white);border-bottom-color:var(--lol)}

/* link columns ------------------------------------------------------------ */
.ftr__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
 gap:clamp(16px,2vw,32px);margin-inline-start:0;min-width:0}
.ftr__h{margin:0 0 8px;min-height:15px;line-height:15px;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.2em;text-transform:uppercase;color:#7E8894}
.ftr__col ul{list-style:none;margin:0;padding:0;display:block}
.ftr__col li{margin:0}
.ftr__nav a,.ftr__col a{display:inline-flex;align-items:center;min-height:44px;
 font-family:var(--ft);font-size:13.5px;font-weight:400;letter-spacing:0;
 color:var(--s300);text-decoration:none;text-transform:none;
 border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.ftr__nav a:hover,.ftr__nav a:focus-visible{color:var(--white);border-bottom-color:var(--lol)}

/* enquiries --------------------------------------------------------------- */
.ftr__act{display:flex;flex-direction:column;align-items:stretch;min-width:0}
.ftr__cta{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;
 width:100%;min-height:44px;padding:0 20px;margin-top:0;
 color:var(--white);text-decoration:none;font-family:var(--ft);
 font-size:13.5px;font-weight:500;letter-spacing:.01em;
 background:rgba(138,150,110,.07);
 box-shadow:inset 0 0 0 1px rgba(138,150,110,.55);
 transition:background .25s ease,box-shadow .25s ease}
.ftr__cta:hover,.ftr__cta:focus-visible{background:rgba(138,150,110,.18);
 box-shadow:inset 0 0 0 1px var(--lol)}
.ftr__arw{transition:transform .25s ease}
.ftr__cta:hover .ftr__arw{transform:translateX(3px)}

/* --- zone 2 : legal base ------------------------------------------------- */
.ftr__base{display:flex;align-items:baseline;justify-content:space-between;
 gap:clamp(20px,3vw,48px);flex-wrap:wrap;padding-top:clamp(16px,1.6vw,22px)}
.ftr__legal{margin:0;flex:1 1 720px;max-width:80ch;
 font-size:11.5px;line-height:1.7;color:#7E8894}
.ftr__cr{margin:0;flex:none;font-size:11.5px;color:#7E8894;white-space:nowrap}

/* --- responsive ---------------------------------------------------------- */
@media(max-width:1080px){
 .ftr__top{grid-template-columns:minmax(220px,1fr) minmax(0,1.5fr);
  row-gap:clamp(26px,3vw,40px)}
 .ftr__act{grid-column:1/-1;max-width:340px}
}
@media(max-width:720px){
 footer{padding:clamp(34px,7vw,44px) 0 22px}
 .ftr__top{grid-template-columns:1fr;row-gap:26px}
 .ftr__brand img{height:42px}
 .ftr__nav{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px;align-items:start}
 .ftr__col:first-child{grid-row:span 2}
 .ftr__act{max-width:none}
 .ftr__base{flex-direction:column;gap:12px}
 .ftr__legal{flex:1 1 auto}
}
@media(max-width:359px){.ftr__nav{grid-template-columns:1fr;row-gap:14px}}

/* --- reduced footer : sign-in surface ------------------------------------ */
.ftr--min{padding:clamp(26px,3vw,40px) 0 clamp(18px,2vw,24px)}
.ftr--min .w{display:flex;align-items:center;flex-wrap:wrap;
 gap:clamp(16px,2.4vw,34px)}
.ftr--min .ftr__brand{padding:0;flex:none;min-height:44px}
.ftr--min .ftr__brand img{height:34px}
.ftr--min .ftr__brand::after{content:none}
.ftr--min .ftr__legal{flex:1 1 380px;margin:0;max-width:62ch;
 font-size:11.5px;line-height:1.65;color:#7E8894}
.ftr__minnav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;
 gap:0 20px;flex:none}
.ftr__minnav a{display:inline-flex;align-items:center;min-height:44px;
 font-family:var(--ft);font-size:13px;color:var(--s300);text-decoration:none;
 border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.ftr__minnav a:hover,.ftr__minnav a:focus-visible{color:var(--white);
 border-bottom-color:var(--lol)}
.ftr--min .ftr__cr{flex:none}
@media(max-width:720px){
 .ftr--min .w{flex-direction:column;align-items:flex-start;gap:14px}
 .ftr--min .ftr__legal{flex:1 1 auto}
 .ftr__minnav{gap:0 18px}
}

/* ===== LEGAL AND CONFIRMATION ROUTES (25 Sep) ==============================
   /privacy/ · /terms/ · /briefing-received/. Document typography on the light
   ground: one measure, numbered sections, an olive rule per heading. Marked
   placeholders are deliberately loud — they must not survive to production.
   ========================================================================= */
.legal{background:var(--white);display:block}
.lg__top{background:var(--ink);color:var(--white);
 padding:clamp(56px,6vw,92px) 0 clamp(40px,4vw,60px);position:relative}
.lg__top::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;
 background:var(--ol-g);background-size:220% 100%;opacity:.9}
@media (prefers-reduced-motion:no-preference){
 .lg__top::after{animation:silSweep 7s ease-in-out infinite}}
.lg__top h1{margin:14px 0 0;max-width:20ch}
.lg__top .lede{margin:18px 0 0;max-width:62ch;color:var(--s300)}
.lg__meta{margin:24px 0 0;font-family:var(--ft);font-size:11.5px;color:#7E8894}

.efg__t{display:block;margin:2px 0 7px;font-family:var(--ft);
 font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lol)}
/* the gate list sets span:last-child, which reaches the chip and would
   repaint it in the band colour; and the li grid stretches its rows,
   which pushed the shorter middle column out of alignment. */
.efg__l li{align-content:start}
.efg__l .ph,.efg__l span .ph{margin-top:8px;display:inline-block;color:#3F4A2F}
.lg__body{padding:clamp(44px,5vw,72px) 24px clamp(56px,6vw,88px);max-width:1180px;
 display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:clamp(32px,4vw,64px);
 align-items:start}
.lg__doc{grid-column:1;min-width:0}
.lg__toc{grid-column:2;grid-row:1;position:sticky;top:calc(var(--hdr-h) + 24px);min-width:0}
/* the site nav rules must not reach the contents rail */
.lg__toc nav{display:block;gap:0;margin:0;margin-inline-start:0}
.lg__toc-h{margin:0 0 12px;font-family:var(--ft);font-size:10.5px;font-weight:700;
 letter-spacing:.2em;text-transform:uppercase;color:var(--olive);
 padding-bottom:10px;border-bottom:1px solid #DFE2E7}
.lg__toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.lg__toc li{counter-increment:toc;margin:0}
.lg__toc a{display:flex;gap:9px;align-items:baseline;min-height:34px;padding:7px 0;
 font-family:var(--ft);font-size:13px;font-weight:400;line-height:1.45;
 text-transform:none;letter-spacing:0;color:#5A6676;text-decoration:none;
 border-inline-start:2px solid transparent;padding-inline-start:10px;margin-inline-start:-12px;
 transition:color .2s ease,border-color .2s ease}
.lg__toc a::before{content:counter(toc);flex:none;font-size:10.5px;font-weight:700;
 color:#9AA4B2;font-variant-numeric:tabular-nums}
.lg__toc a:hover,.lg__toc a:focus-visible{color:var(--navy);border-inline-start-color:var(--olive)}
@media(max-width:900px){
 .lg__body{grid-template-columns:1fr}
 .lg__toc{grid-column:1;grid-row:1;position:static;
  padding-bottom:22px;border-bottom:1px solid #DFE2E7;margin-bottom:8px}
 .lg__toc ol{columns:2;column-gap:24px}
 .lg__doc{grid-column:1}}
@media(max-width:520px){.lg__toc ol{columns:1}}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* the header is sticky, so an anchored heading must clear it */
:target{scroll-margin-top:calc(var(--hdr-h) + 20px)}
[id]{scroll-margin-top:calc(var(--hdr-h) + 20px)}
.lg__s{padding:0;margin:0 0 clamp(30px,3vw,44px);max-width:74ch;display:block}
.lg__s:last-child{margin-bottom:0}
.lg__s h2{font-family:var(--fe);font-weight:300;font-size:clamp(20px,2vw,24px);
 margin:0 0 4px;padding-top:18px;border-top:1px solid #DFE2E7;color:var(--navy)}
.lg__s > p{margin:14px 0 0;font-size:15px;line-height:1.75;color:#3A4759;max-width:70ch}
.lg__s a{color:var(--olive);text-decoration:underline;text-underline-offset:2px}
.lg__s a:hover,.lg__s a:focus-visible{color:var(--olive-deep)}
.lg__lead{font-family:var(--fe);font-weight:300;font-size:clamp(17px,1.8vw,20px);
 line-height:1.5;color:var(--navy);
 border-inline-start:2px solid var(--olive);padding-inline-start:18px;margin-top:20px}
.lg__dl{margin:18px 0 0;max-width:70ch}
.lg__dl dt{font-family:var(--ft);font-size:10.5px;font-weight:700;letter-spacing:.16em;
 text-transform:uppercase;color:var(--olive);margin:20px 0 0}
.lg__dl dt:first-child{margin-top:0}
.lg__dl dd{margin:7px 0 0;font-size:15px;line-height:1.75;color:#3A4759}

/* marked placeholder — a fact awaiting the Chairman or Mr. Shokry */
.ph{display:inline;background:#F2F4EC;color:#3F4A2F;
 box-shadow:inset 0 0 0 1px var(--olive);
 padding:1px 8px 2px;font-family:var(--ft);font-size:12.5px;font-weight:600;
 letter-spacing:.01em}
.ph::before{content:"TO CONFIRM · ";font-weight:700;letter-spacing:.1em;font-size:10.5px}

/* ---- briefing received -------------------------------------------------- */
/* Chairman, 25 Sep: the outer field on the short routes goes dark olive.
   Light grey left Investor Access, Briefing Received and 404 looking thin -
   a white card floating on a near-white field, with nothing holding it. The
   brand's olive deep gives the card something to sit on and matches the
   weight of the header and footer it sits between. */
.rcv{background:var(--olive-deep);display:flex;align-items:center;
 min-height:74vh;padding:clamp(48px,6vw,88px) 0}
.rcv .w{max-width:1180px}
.rcv__card{background:var(--white);max-width:720px;margin:0 auto;
 padding:clamp(34px,4vw,56px);border-top:3px solid var(--olive);position:relative}
.rcv__mark{position:absolute;top:-3px;inset-inline-start:0;width:84px;height:3px;
 background:var(--ol-g);background-size:220% 100%}
@media (prefers-reduced-motion:no-preference){
 .rcv__mark{animation:silSweep 7s ease-in-out infinite}}
.rcv__card h1{font-size:clamp(25px,3vw,33px);margin:13px 0 0;color:var(--navy)}
.rcv__card .lede{margin:17px 0 0;max-width:58ch;font-size:15.5px;color:#3A4759}
.rcv__list{list-style:none;margin:28px 0 0;padding:0;max-width:60ch}
.rcv__list li{position:relative;padding-inline-start:20px;margin:0 0 12px;
 font-size:14.5px;line-height:1.7;color:#3A4759}
.rcv__list li::before{content:"";position:absolute;inset-inline-start:0;top:10px;
 width:7px;height:2px;background:var(--olive)}
.rcv__list b{color:var(--navy);font-weight:600}
.rcv__note{margin:26px 0 0;padding-top:16px;border-top:1px solid #DFE2E7;
 font-size:12.5px;line-height:1.65;color:#5A6676;max-width:62ch}
.rcv__acts{margin-top:30px;display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:600px){.rcv__acts .btn{width:100%;justify-content:center}}

/* ===== FORMS, MADE REAL (25 Sep) ==========================================
   The honeypot must be unreachable to a person and invisible to assistive
   technology, but present in the DOM for an automated client to fall into.
   Never display:none — some bots skip hidden fields.
   ========================================================================= */
.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
 white-space:nowrap;border:0;padding:0;margin:-1px}

.cx__form{display:block}
.cx__err{display:block;margin:0 0 20px;padding:14px 16px;
 background:#FBEFEF;box-shadow:inset 0 0 0 1px #B4443C;
 font-family:var(--ft);font-size:13.5px;line-height:1.6;color:#6B231D}
.cx__err b{color:#6B231D}
.cx__err a{color:#6B231D;text-decoration:underline;text-underline-offset:2px}
.cx__err[hidden]{display:none}

/* native validation feedback, only after the field has been touched */
.cx__form input:user-invalid,.cx__form select:user-invalid,
.cx__form textarea:user-invalid{box-shadow:inset 0 0 0 2px #B4443C}
.cx__form input:user-valid,.cx__form select:user-valid{box-shadow:inset 0 0 0 1px var(--olive)}
.cx__form select:required:invalid{color:#6B7280}

/* ---- client access, credential capture removed -------------------------- */
.acc{background:var(--olive-deep);display:flex;align-items:center;
 min-height:70vh;padding:clamp(48px,6vw,88px) 0}
.acc .w{max-width:900px}
.acc__card{background:var(--white);max-width:560px;margin:0 auto;
 padding:clamp(32px,4vw,48px);border-top:3px solid var(--olive)}
.acc__card h2{font-size:clamp(21px,2.4vw,27px);margin:13px 0 0;color:var(--navy)}
.acc__l{list-style:none;margin:24px 0 0;padding:0}
.acc__l li{position:relative;padding-inline-start:20px;margin:0 0 11px;
 font-size:14.5px;line-height:1.7;color:#3A4759}
.acc__l li::before{content:"";position:absolute;inset-inline-start:0;top:10px;
 width:7px;height:2px;background:var(--olive)}
.acc__l b{color:var(--navy);font-weight:600}
.acc__acts{margin-top:28px;display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:560px){.acc__acts .btn{width:100%;justify-content:center}}

/* ===== MOTION SYSTEM (25 Sep, step 4) =====================================
   Choreography, not decoration. Built to the brand book: Settle for entrances,
   durations 400/800, stagger 50ms. No bounce, no spring, no overshoot. The
   mark never rotates.

   The no-JS path is the default. Nothing is hidden unless the script has
   marked the document with .rv-on, so a blocked or failed script can never
   blank a page. The whole system also sits inside a reduced-motion guard.
   ========================================================================= */
:root{--ease-settle:cubic-bezier(.16,1,.3,1);
      --ease-standard:cubic-bezier(.65,0,.35,1);
      --ease-withdraw:cubic-bezier(.7,0,.84,0)}

@media (prefers-reduced-motion:no-preference){

 /* --- scroll reveal ----------------------------------------------------- */
 .rv-on [data-rv] > *{opacity:0;transform:translateY(14px);
  transition:opacity 400ms var(--ease-settle),transform 400ms var(--ease-settle);
  transition-delay:var(--rv-d,0ms)}
 .rv-on [data-rv].is-in > *{opacity:1;transform:none}
 /* a revealed container must never clip what it reveals */
 .rv-on [data-rv]{overflow:visible}

 /* --- hero entrance ------------------------------------------------------ */
 .rv-on [data-rv-hero] > *{opacity:0;transform:translateY(18px);
  transition:opacity 800ms var(--ease-settle),transform 800ms var(--ease-settle);
  transition-delay:var(--rv-d,0ms)}
 .rv-on [data-rv-hero].is-in > *{opacity:1;transform:none}
 /* the image behind it settles rather than appearing */
 .rv-on .hero__img .slot__img{transform:scale(1.035);
  transition:transform 800ms var(--ease-settle)}
 .rv-on .hero.is-in .hero__img .slot__img{transform:none}

 /* --- header scroll state ------------------------------------------------ */
 .hdr{transition:padding 240ms var(--ease-standard),
      background-color 240ms var(--ease-standard),
      box-shadow 240ms var(--ease-standard)}
 .hdr.is-stuck{box-shadow:0 1px 0 rgba(203,213,225,.14),0 10px 30px rgba(1,10,28,.34)}
 .hdr.is-stuck img{transform:scale(.90);transition:transform 240ms var(--ease-standard)}
 .hdr img{transform-origin:left center;transition:transform 240ms var(--ease-standard)}
}

/* the header is sticky whether or not motion is allowed */
:root{--hdr-h:76px}
.hdr{position:sticky;top:0;z-index:40}
.hero{scroll-margin-top:0}

/* ===== COOKIE CONSENT (step 10, built ahead of cutover) ====================
   A quiet strip, not a modal. It never covers the page content, it is
   keyboard-reachable, and it is only rendered at all when an analytics ID has
   been configured — so on a build with analytics off the visitor sees nothing,
   which is exactly what the Privacy Notice states today.
   ========================================================================= */
.ck{position:fixed;inset-inline:0;bottom:0;z-index:60;
 background:var(--ink);color:var(--s300);
 box-shadow:0 -1px 0 rgba(203,213,225,.14),0 -18px 46px rgba(1,10,28,.42);
 transform:translateY(100%);transition:transform 400ms var(--ease-settle,ease)}
.ck.is-in{transform:none}
@media (prefers-reduced-motion:reduce){.ck,.ck.is-in{transition:none;transform:none}}
.ck::before{content:"";position:absolute;inset-inline:0;top:0;height:2px;
 background:var(--ol-g);background-size:220% 100%}
.ck__in{max-width:1180px;margin:0 auto;padding:22px 24px;
 display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 40px;align-items:center}
.ck__t{grid-column:1;margin:0;font-family:var(--fd);font-weight:700;font-size:15px;color:#fff}
.ck__b{grid-column:1;margin:0;font-family:var(--ft);font-size:13px;line-height:1.6;
 color:var(--s300);max-width:78ch}
.ck__b a{color:#C9D2A8;text-decoration:underline;text-underline-offset:2px}
.ck__b a:hover{color:#fff}
.ck__a{grid-column:2;grid-row:1/3;display:flex;gap:10px;flex:none}
.ck__a .btn{min-height:44px}
@media(max-width:760px){
 .ck__in{grid-template-columns:1fr;gap:12px;padding:18px 20px}
 .ck__a{grid-column:1;grid-row:auto}
 .ck__a .btn{flex:1 1 0;justify-content:center}
}

/* ===== MOTION & POLISH, PASS 2 (25 Sep) ====================================
   Chairman: "polish and revamp the overall design and add relevant motions".

   Relevant is the operative word. Nothing here decorates; each piece either
   reinforces what the content is saying or makes an affordance clearer.

   EVERY entrance is a one-shot @keyframes fired BY .is-in, never a resting
   state that .is-in undoes. The first version of this block did it the other
   way round - hid the element and revealed it on .is-in - and the QA sweep
   found the consequence immediately: after a full scroll of every route, 10 of
   18 images were still clipped to zero width, all three cycle arcs were still
   undrawn and 19 elements were still transparent, because a container that
   never satisfies the observer never gets .is-in and its contents were left
   hidden for good. Written this way the worst case is an element that simply
   does not animate. Content cannot go missing.
   ========================================================================= */

/* --- P3 - card affordance -------------------------------------------------
   The resting style stays hard-edged: no radius, no shadow. That squared,
   unsoftened card IS the brand, and rounding it to look friendlier would cost
   more than it gained. Only the interaction changes - the card lifts and its
   top rule draws across, so hovering reads as the card answering rather than
   merely highlighting. */
.band .card,.ef-card,.band .cbx__c,.cbx__c,.xb__c{
 transition:transform 240ms var(--ease-standard),box-shadow 240ms var(--ease-standard)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .band .card:hover,.ef-card:hover,.cbx__c:hover{
  transform:translateY(-3px);box-shadow:0 14px 34px rgba(1,10,28,.16)}
}

@keyframes rvWipe{from{clip-path:inset(0 100% 0 0)} to{clip-path:inset(0)}}
@keyframes rvFade{from{opacity:0} to{opacity:1}}
@keyframes rvRule{from{transform:scaleX(0)} to{transform:scaleX(1)}}
@keyframes cyDraw{from{stroke-dashoffset:1600} to{stroke-dashoffset:0}}

@media (prefers-reduced-motion:no-preference){

 /* --- M1 - body images arrive by wipe, not by fade -----------------------
    A fade says "this is loading". A wipe from the leading edge says the frame
    is being placed. Heroes are excluded: they already settle, and stacking a
    wipe on top would fight it. */
 .rv-on [data-rv].is-in .slot--img:not(.hero__img .slot--img){
  animation:rvWipe 800ms var(--ease-settle) var(--rv-d,0ms) both}

 /* --- M2 - the cycle diagram draws as a cycle ----------------------------
    The one diagram on the site that describes a loop, so it earns the only
    drawing animation: arcs stroke on in sequence, chevrons arrive after the
    arc they sit on, the core settles last. 1600 comfortably exceeds the
    longest arc at r=236, so nothing depends on the geometry staying fixed. */
 .rv-on [data-rv].is-in .cy-track{stroke-dasharray:1600;
  animation:cyDraw 1100ms var(--ease-settle) both}
 .rv-on [data-rv].is-in .cy-track:nth-of-type(2){animation-delay:120ms}
 .rv-on [data-rv].is-in .cy-track:nth-of-type(3){animation-delay:240ms}
 .rv-on [data-rv].is-in .cy-chev{animation:rvFade 400ms var(--ease-settle) 900ms both}
 .rv-on [data-rv].is-in .cy-core,
 .rv-on [data-rv].is-in .cy-inner{animation:rvFade 400ms var(--ease-settle) 1000ms both}

 /* --- M3 - section rules draw in ----------------------------------------
    The hairline under each kicker is the site's most repeated device. Drawing
    it from the leading edge gives every section the same quiet opening beat. */
 .rv-on [data-rv].is-in .rule{transform-origin:left center;
  animation:rvRule 800ms var(--ease-settle) 120ms both}

 /* --- M4 - text links draw their underline ------------------------------- */
 .lede a,.band p a,.lg__b a{
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size 240ms var(--ease-standard)}
 @media (hover:hover){.lede a:hover,.band p a:hover,.lg__b a:hover{background-size:100% 1px}}
}

/* ===== FIORINA EXTENDED (Chairman, 25 Sep) ================================
   Fiorina Text carried the headings and little else; the register broke the
   moment the eye left an h1. It now also carries the elements that behave as
   editorial rather than as interface - the section standfirst, the fourth-level
   heading, the exhibit and framework titles, the four framework letters and the
   footprint tier names.

   It does NOT move to labels, kickers, numerals, table data, form fields, the
   nav or small print. Those are interface, they are set small and letterspaced,
   and a serif at 10-12px is harder to read for nothing gained. Extending a
   display face into them would not be more brand, it would be less legible.
   ========================================================================= */
.lede{font-family:var(--fe);letter-spacing:-.005em}
h4{font-family:var(--fe)}
.xb__t,.ef-card h3,.ef-l{font-family:var(--fe)}
.gm-ic{font-family:var(--fe)}
.rcv__card h1,.acc__card h2{font-family:var(--fe)}

/* The lede sits larger in Fiorina than it did in the grotesque at the same
   pixel size - a serif at the same size reads heavier - so the line height is
   opened a touch to keep the paragraph colour even. */
.lede{line-height:1.62}

/* ===================== v5.6 LAYER STACK ==================================
   Rebuilt on the v5.1 release because the cloud workspace holding v5.2-v5.5
   was reclaimed. Each layer below restates a correction that was built and
   QA-passed earlier but never reached the server, plus the two defects the
   Chairman photographed on 26 Sep.
   ========================================================================= */

/* ----- LAYER 1 — FIORINA ON EVERY TEXT ROLE ------------------------------
   Fiorina was reaching headings only; the token repoint carries it to body
   copy and interface text as well, which is what "make it fiorina.. all text"
   asked for. --fe is left alone: it is already Fiorina and is what headings
   resolve through. */
:root{--fd:"Fiorina Text",Georgia,"Times New Roman",serif;
      --ft:"Fiorina Text",Georgia,"Times New Roman",serif}

/* ----- LAYER 2 — THE HERO FITS THE FIRST SCREEN --------------------------
   "the hero section whole appear in the page opening without scrolling."

   It did not. The hero was sized by ratio alone - 16/9 capped at 720px - with
   no reference to how much screen was left under a 76px sticky header.
   Measured before changing anything:

     1440x700   96px cut on Home, Forums and Contact; 145px on Advisory
     1440x800   45px cut on Advisory
     390x844    22px cut on Home
     390x667    79px to 186px cut on three of the four routes

   Advisory was worst because its copy is tallest, so the block pushed the hero
   past its own ratio. The hero is now capped to the space that exists rather
   than to a fixed number, and the copy's vertical padding is driven by
   viewport height so it gives way on a short screen instead of forcing the
   hero taller. svh, not vh, so a mobile browser's collapsing toolbar does not
   leave the bottom cropped. */

/* The section rail sits between header and hero on Advisory and is 49px tall,
   so that route had 49px less room than the others - exactly what it was over
   by, at every viewport. Declared as a token and applied with :has(), so the
   page that has a rail subtracts it and the pages that do not are untouched. */
:root{--rail-h:0px}
body:has(.rail){--rail-h:49px}

.hero{max-height:calc(100svh - var(--hdr-h) - var(--rail-h));
      min-height:min(520px,calc(100svh - var(--hdr-h) - var(--rail-h)))}

.hero__card{padding-block:clamp(28px,5vh,92px) clamp(40px,9vh,176px)}

@media (max-width:820px){
 .hero{max-height:calc(100svh - var(--hdr-h) - var(--rail-h))}
 .hero__card{padding:clamp(110px,26vh,340px) 20px clamp(24px,4vh,56px)}
}

/* A 667px phone leaves 591px under the header, and the hero stack - kicker,
   two-line headline, lede, two stacked buttons, meta strip - does not fit in
   it at full size. Rather than let the headline run past the fold, the
   short-screen case tightens the type and drops the meta strip, the one
   element repeating information available further down. Body copy stays at
   16px: nothing here reduces text below a comfortable reading size. */
@media (max-height:700px) and (max-width:820px){
 .hero__card{padding-block:clamp(88px,18vh,180px) clamp(20px,3vh,40px)}
 .hero__card h1{font-size:clamp(28px,7.6vw,34px);margin-top:10px}
 .hero__card .lede{margin-top:12px;font-size:16px}
 .hero__meta{display:none}
}

/* ----- LAYER 3 — THREE-BAND RESPONSIVE SYSTEM ----------------------------
   The site was responsive in the narrow sense - nothing overflowed at any
   width - but it was not BANDED. Each component carried its own breakpoint
   from the day it was built, fifteen different max-widths between 359px and
   1100px, so a component collapsed when its author decided rather than when
   the band changed. At 834px the proof strip was three across while the
   process below it was one.

   Measured: narrowest column, and the word count of the fullest card in that
   row. A card under 260px cannot carry a heading plus body copy without the
   text turning into a ladder.

     .proof--cards    834px   3 across   239px   14 words   FAIL
     .efg__l          834px   3 across   239px   24 words   FAIL
     .xb__row        1024px   4 across   197px   11 words   FAIL
     .stp--4         1024px   4 across   216px   18 words   FAIL
     .g4             1024px   4 across   198px    6 words   tight
     .ef-cards       1280px   4 across   244px   18 words   FAIL
     .ftr__top       1280px   3 across   224px   15 words   FAIL

   The last three fail on the DESKTOP side and cannot be fixed by waiting for a
   wider screen: inside the capped measure a four-across row is ~242px at
   1280px and at 1920px alike. They drop to the column count the measure
   actually supports.

   Bands   Mobile  <=767px    one column
           Tablet  768-1179   two columns
           Desktop >=1180     design intent, where the measure allows it */

/* 1 - the tablet two-column step that was missing entirely. Scoped above
       820px so the single-column mobile treatment is untouched. Three items in
       two columns leave an orphan, so the third spans the row. */
@media (min-width:821px) and (max-width:1179px){
 .proof--cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .proof--cards>div:nth-child(3):last-child{grid-column:1/-1}
 .efg__l{grid-template-columns:repeat(2,minmax(0,1fr))}
 .efg__l>*:nth-child(3):last-child{grid-column:1/-1}
}

/* 2 - four-across rows that never earn their fourth column inside the measure */
@media (min-width:981px){
 .xb__row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1001px) and (max-width:1179px){
 .g2,.g3,.g4{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:561px){
 .ef-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1081px){
 .ftr__top{grid-template-columns:minmax(220px,1fr) minmax(0,1.5fr);
  row-gap:clamp(26px,3vw,40px)}
 .ftr__act{grid-column:1/-1;max-width:340px}
}

/* 3 - the numbered process. Four steps at 1024px gave each 216px; two gives
       490px. The connector rules were drawn for a single row, so the geometry
       is restated for two: the horizontal rule is suppressed on the item that
       ends a row, the vertical divider on the item that opens one, and the
       ranked variant's left rule becomes a top rule - the same treatment the
       single-column band already uses. */
@media (min-width:901px){
 .stp--4{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:clamp(26px,3vw,34px)}
 .stp--4 .stp__i:nth-child(2n)::after{display:none}
 .stp--4 .stp__i:nth-child(2n+1){padding-inline-start:0}
 .stp--4 .stp__i:nth-child(2n+1)::before{display:none}
 .stp--4.stp--rank .stp__i--n:first-of-type{padding-inline-start:0;padding-top:26px;
  border-top:2px solid var(--olive)}
 .stp--4.stp--rank .stp__i--n:first-of-type::before{display:none}
}

/* ===== v5.6 LAYER 4 — HERO GEOMETRY AND THE WIDE DESKTOP =================
   The Chairman's screenshot of the live site: the hero is a 16:9 box hugging
   the left edge of an ultrawide window with white beside it, and the body copy
   sits in a thin ribbon. Both have one cause each, and neither is a media-query
   problem - which is why the site passed every overflow audit while still
   looking broken on his screen.

   1 - THE HERO. The stylesheet says:
         body{display:flex;flex-direction:column}
         .hero{display:block;aspect-ratio:16/9;min-height:520px;max-height:720px}
       .hero declares a ratio but never declares a width. An element with an
       aspect ratio and an indefinite width resolves its width FROM its height
       instead of filling its container, so the hero sized itself to 16:9 of
       whatever height it was given and left the rest of the row empty. It is a
       sizing bug, not a breakpoint bug, so it never showed up in an overflow
       sweep: a box that is too NARROW does not overflow anything.

   2 - THE MEASURE. --c is 1200px at every width. On a 1280px laptop that is
       the whole screen; on a 2560px monitor it is 47% of it, with the rest
       empty. A fixed measure is not responsive design, it is one design that
       happens to suit one screen. The measure now opens in two steps on wide
       desktops - enough to use the screen, not so much that a line of body copy
       runs past a comfortable reading length, because the copy sits in two- and
       four-column grids rather than in one full-width column.
   ========================================================================= */

/* 1 - the hero fills its row, always. width:100% makes the width definite, so
       the ratio governs HEIGHT only, which is what it was written to do.
       align-self guards the case where a hero is a direct flex child. */
.hero{width:100%;max-width:100%;align-self:stretch}
.hero__img{width:100%}

/* 2 - the measure opens on wide desktops. */
@media (min-width:1600px){:root{--c:1360px}}
@media (min-width:1920px){:root{--c:1480px}}

/* ----- LAYER 5 — PER-ROUTE HERO FRAMING ---------------------------------
   "Optimize each hero image's positioning individually. Keep its main subject
    clearly visible on the right, use the left side as clean space for text."

   Until now ONE rule framed all four photographs:
     .hero__img .slot__img{inset-inline-start:40%;width:60%;object-position:50% 100%}
   Bottom-anchored, right 60%. That was written for the Home master, whose
   subject is a skyline standing on the bottom edge. Applied to the other
   three it bottom-anchors frames whose subjects sit mid-height, so the
   Advisory interior, the Forums boardroom and the Contact portrait each lost
   their subject off the top of the crop.

   Every route now carries data-route on <body>, so each photograph is framed
   on its own terms. The left 38-42% stays clean navy for the copy in all
   cases, which is the part of the model that was right.

   Read as: horizontal object-position moves the subject within its box;
   vertical anchors the part of the frame that must survive the crop. */

/* --- desktop and tablet: subject right, clean left ---------------------- */
@media (min-width:821px){

 /* HOME - i-01, the KAFD cluster. Aspect 1.055 with sky headroom above the
    towers, so the crop must stay on the ground line: anything else trims a
    building. This is the one frame the old global rule actually suited. */
 body[data-route="home"] .hero__img .slot__img{
  inset-inline-start:40%;width:60%;object-position:50% 100%}

 /* ADVISORY - i-04, interior looking out. The subject is the window wall and
    the seated group at mid-height; bottom-anchoring pushed the ceiling in and
    cut the people. Anchored just above centre, and moved slightly right so the
    glazing rather than the near column fills the frame. */
 body[data-route="advisory"] .hero__img .slot__img{
  inset-inline-start:39%;width:61%;object-position:58% 42%}

 /* FORUMS - i-10, the boardroom table (new master, 26 Sep). The table, the
    people round it and the skyline behind them sit centre-right and a little
    below centre; the marble foreground carries no information, so the crop
    holds the table on the lower third without letting the floor take over. */
 body[data-route="forums"] .hero__img .slot__img{
  inset-inline-start:38%;width:62%;object-position:56% 52%}

 /* CONTACT - i-14, a portrait. A face must not be cropped at the chin or the
    crown, so this frame anchors high and centres on the head. */
 body[data-route="contact"] .hero__img .slot__img{
  inset-inline-start:42%;width:58%;object-position:50% 28%}
}

/* --- wide desktop: the box grows with the measure ----------------------- */
@media (min-width:1600px){
 /* On a wide monitor a 60% box is a very large photograph and the copy starts
    to look stranded against it. Narrowing the image slightly keeps the left
    column generous and the composition spacious rather than filled. */
 body[data-route="home"]     .hero__img .slot__img{inset-inline-start:43%;width:57%}
 body[data-route="advisory"] .hero__img .slot__img{inset-inline-start:42%;width:58%}
 body[data-route="forums"]   .hero__img .slot__img{inset-inline-start:41%;width:59%}
 body[data-route="contact"]  .hero__img .slot__img{inset-inline-start:45%;width:55%}
}

/* --- mobile: the photograph is a band above the copy -------------------- */
@media (max-width:820px){
 /* Full width, and each frame anchored where its subject is. The mobile
    masters are separate files cropped tighter, so these only fine-tune. */
 body[data-route="home"]     .hero__img .slot__img{inset-inline-start:0;width:100%;object-position:50% 0%}
 body[data-route="advisory"] .hero__img .slot__img{inset-inline-start:0;width:100%;object-position:56% 34%}
 body[data-route="forums"]   .hero__img .slot__img{inset-inline-start:0;width:100%;object-position:58% 46%}
 body[data-route="contact"]  .hero__img .slot__img{inset-inline-start:0;width:100%;object-position:50% 22%}
}

/* --- short landscape phones -------------------------------------------- */
@media (max-width:1024px) and (max-height:520px) and (orientation:landscape){
 /* The band model needs vertical room it does not have here, so the frame
    reverts to the side-by-side model and the copy tightens. */
 .hero__img .slot__img{inset-inline-start:44%;width:56%}
 .hero__card{padding-block:clamp(16px,6vh,32px) clamp(16px,6vh,32px)}
 .hero__meta{display:none}
}

/* ----- LAYER 6 — A GENUINELY CLEAN LEFT COLUMN --------------------------
   Layer 5 framed each photograph, then the framing was measured:

     band     route      image starts   copy ends   overlap
     desktop  home          40%            54%       198px
     desktop  advisory      39%            54%       212px
     desktop  forums        38%            51%       187px
     desktop  contact       42%            54%       169px
     tablet   all           38-42%         72-77%    287-319px

   The copy was running two to three hundred pixels ONTO the photograph. It
   stayed legible because the scrim fades navy across that zone, but "use the
   left side as clean space for text" is not the same as "make text readable
   on top of the picture", and on tablet three quarters of the headline sat
   over the image.

   Two changes, together: the photograph starts later, and the copy is capped
   so it ends before the photograph begins. The cap is on the text elements
   rather than the card, so the card keeps its padding and the block stays in
   the same place - only the line length changes, and it stays well inside a
   comfortable measure at every width. Type size is untouched. */

@media (min-width:821px){
 /* the copy column: long enough for a two-line headline, short enough to clear
    the photograph at every width in the band */
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(560px,34vw)}

 /* the photograph moves right to meet it. Per-route offsets are preserved from
    Layer 5 - each frame still sits where its own subject needs it - they are
    simply rebased on a later start. */
 body[data-route="home"]     .hero__img .slot__img{inset-inline-start:48%;width:52%}
 body[data-route="advisory"] .hero__img .slot__img{inset-inline-start:47%;width:53%}
 body[data-route="forums"]   .hero__img .slot__img{inset-inline-start:46%;width:54%}
 body[data-route="contact"]  .hero__img .slot__img{inset-inline-start:50%;width:50%}
}

@media (min-width:1600px){
 /* on a wide monitor the copy may run a little longer before the picture */
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(620px,32vw)}
 body[data-route="home"]     .hero__img .slot__img{inset-inline-start:50%;width:50%}
 body[data-route="advisory"] .hero__img .slot__img{inset-inline-start:49%;width:51%}
 body[data-route="forums"]   .hero__img .slot__img{inset-inline-start:48%;width:52%}
 body[data-route="contact"]  .hero__img .slot__img{inset-inline-start:52%;width:48%}
}

/* The scrim was built to carry copy sitting well inside the picture. With the
   copy now clearing it, the heavy lower-left radial is doing work that is no
   longer needed and was starting to read as a dark blot on a wide screen. It
   is eased back to a clean vertical fade plus a soft horizontal one - still
   comfortably above the contrast floor, measured after the change. */
@media (min-width:821px){
 .hero__img::after{background:
   linear-gradient(90deg,rgba(13,22,39,.98) 0%,rgba(13,22,39,.92) 30%,
                   rgba(13,22,39,.62) 46%,rgba(13,22,39,.18) 62%,
                   rgba(13,22,39,0) 78%),
   linear-gradient(to top,rgba(13,22,39,.58) 0%,rgba(13,22,39,.22) 26%,
                   rgba(13,22,39,0) 52%)}
}

/* ----- LAYER 7 — WIDE-DESKTOP COPY CAP CORRECTION -----------------------
   Measured after Layer 6: on a 1920px screen the copy still ran 10-67px onto
   the photograph, because the measure token had opened to 1480px and moved the
   card's start point right while the cap stayed at 32vw. The cap is rebased so
   the copy clears the picture at 1600px and 1920px as it already does at 1440.

     1920  copy ended 1008, image started 960   overlap 48px   ->  gap 159px
     1600  copy ended  838, image started 800   overlap 38px   ->  gap 136px  */
@media (min-width:1600px){
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(560px,29vw)}
}

/* Second pass at the same measurement: the cap is shared across routes, so the
   copy ends at the same x on all four while the picture starts at a different
   one. Advisory and Forums start earliest and were still 10px and 29px short.
   The cap comes in once more and no photograph starts before the half. */
@media (min-width:1600px){
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(540px,27vw)}
 body[data-route="advisory"] .hero__img .slot__img{inset-inline-start:51%;width:49%}
 body[data-route="forums"]   .hero__img .slot__img{inset-inline-start:50%;width:50%}
}

/* ----- LAYER 8 — THE FIVE DEFECTS THE AUDIT FOUND -----------------------
   28 widths x 9 routes. Hero width: 0 failures, sideways scroll: 0. What was
   left was five real faults, each measured rather than assumed.

   1 - the spam honeypot was VISIBLE. A 185x21px text input sitting in the
       contact form, overflowing a 390px phone by 17px and reachable by
       keyboard. It was never given any CSS at all. It goes off-canvas, out of
       the tab order and out of the accessibility tree - which is also the only
       way a honeypot works.
   2 - the footprint map ran 17px past a 390px viewport.
   3 - the email link was 13px tall, under the 24px target minimum, and its
       parent is a div rather than a sentence, so the inline-link exemption in
       WCAG 2.5.8 does not cover it.
   4 - the contact hero image measured 3px past the viewport on a 1440 screen.
   5 - four label roles sat at 10.5-11px. The Chairman's instruction was not to
       shrink text below a comfortable reading size; these were already below
       it before anything was shrunk. The floor goes to 12px. */

/* 1 · honeypot - off-canvas, unfocusable, unannounced */
input[name="company_url"],
input[name="company_url"] + label,
.hp{position:absolute!important;left:-9999px!important;top:auto!important;
    width:1px!important;height:1px!important;overflow:hidden!important;
    opacity:0!important;pointer-events:none!important}

/* 2 · the footprint map never exceeds its column */
.gm,.gm-key,.gm-map,.gm > *{max-width:100%;min-width:0}
.gm-map svg{max-width:100%;height:auto;display:block}

/* 3 · the email link reaches the 24px target minimum without moving the
       baseline of the text it sits in */
a[href^="mailto:"],a[href^="tel:"]{display:inline-block;min-height:24px;
 padding-block:3px;line-height:1.5}

/* 4 · the hero photograph is clipped to its own box rather than rounding past
       the viewport edge */
.hero{overflow:hidden}
.hero__img{max-width:100%;overflow:hidden}
.hero__img .slot__img{max-width:100%}

/* 5 · the label floor. These are letter-spaced uppercase micro-labels, so the
       rise is small in absolute terms and large in legibility. */
.kick{font-size:12px}
.stp__t{font-size:12px}
.ftr__where{font-size:12px}
.gm-iw{font-size:12px}

/* ----- LAYER 9 — THE PHOTOGRAPH IS PINNED, NOT SIZED --------------------
   The image box was positioned by a start offset plus a width - two numbers
   that have to agree. They did not, quite: sub-pixel rounding left the right
   edge 3-4px past the hero at several widths. Clipped by overflow:hidden, so
   it never scrolled the page, but it is an inconsistency the audit is right to
   flag and it means the photograph is a few pixels short of the edge on some
   screens and a few past it on others.

   Both edges are now pinned. The start offset still frames each photograph per
   route; the end is simply the edge of the hero, so the box cannot disagree
   with itself at any width. */
.hero__img .slot__img{inset-inline-end:0;width:auto}

/* The last label under the floor: the exhibit caption on Advisory, at 10.5px.
   Same treatment as the other four label roles in Layer 8. */
.xb__lab{font-size:12px}

/* ----- LAYER 10 — THE MOBILE HERO IS A BAND, NOT A FADED FULL FRAME -----
   Screenshot at 390x844, Forums: the photograph showed window mullions and a
   strip of skyline. The boardroom table and the twelve people around it - the
   entire subject, and the only reason that frame was chosen - were not on the
   screen at all.

   The cause is that the mobile image was stretched over the FULL hero height
   and then most of it was painted out by the scrim, so the reader saw roughly
   the top third of a frame that had already been cover-cropped to a very tall
   box. Two crops compounding: the picture had no chance.

   It becomes what it already looked like - a band across the top, at a height
   the page controls, with the copy on solid navy beneath it. The picture is
   then cropped once, to a near-landscape box it was shot for, and the subject
   survives. The copy gains as much as the picture does: it sits on flat navy
   instead of on a half-faded photograph, which is why the mobile hero read as
   washed out at 390x667.
   ========================================================================= */
@media (max-width:820px){
 :root{--hband:clamp(196px,31svh,300px)}

 /* the picture: a band pinned to the top, cropped once */
 .hero__img .slot__img{top:0;bottom:auto;height:var(--hband);
  inset-inline-start:0;inset-inline-end:0;width:auto;object-fit:cover}

 /* the scrim: transparent across the picture, closing to solid navy exactly
    where the band ends, so there is no murky middle and no hard seam */
 .hero__img::after{background:linear-gradient(to bottom,
   rgba(13,22,39,0) 0,
   rgba(13,22,39,0) calc(var(--hband) - 104px),
   rgba(13,22,39,.34) calc(var(--hband) - 52px),
   rgba(13,22,39,.88) calc(var(--hband) - 12px),
   rgba(13,22,39,1) var(--hband),
   rgba(13,22,39,1) 100%)}

 /* the copy clears the band by a measured gap rather than a guessed padding */
 .hero__card{padding-top:calc(var(--hband) + clamp(16px,2.6svh,32px))}
 .hero__card .kick,.hero__card h1,.hero__card .lede,
 .hero__card .hero__acts,.hero__card .hero__meta{max-width:none}

 /* each frame centred on its own subject inside the band */
 body[data-route="home"]     .hero__img .slot__img{object-position:50% 54%}
 body[data-route="advisory"] .hero__img .slot__img{object-position:60% 52%}
 body[data-route="forums"]   .hero__img .slot__img{object-position:58% 62%}
 body[data-route="contact"]  .hero__img .slot__img{object-position:50% 34%}
}

/* ----- LAYER 11 — THE SMALLEST PHONES ----------------------------------
   Re-measured after Layer 10. Three cases out of 92 now overshoot, all at
   320x568 - the oldest small phone still in common use - where the CTA hung
   4px, 44px and 54px below the fold.

   That screen leaves 492px under the header. The band was taking its 196px
   floor, which is 40% of everything available, before a word is read. The
   floor comes down on short screens and the stack tightens with it. Type stays
   at a comfortable size: the headline sits at 26px and the supporting line at
   15.5px, both above the point where reading becomes work. */
@media (max-width:820px) and (max-height:620px){
 :root{--hband:clamp(126px,21svh,168px)}
 .hero__card{padding-top:calc(var(--hband) + clamp(10px,1.8svh,20px));
             padding-bottom:clamp(14px,2.4svh,26px)}
 .hero__card h1{font-size:clamp(26px,7.2vw,30px);line-height:1.16;margin-top:8px}
 .hero__card .lede{font-size:15.5px;line-height:1.5;margin-top:10px}
 .hero__acts{gap:8px;margin-top:14px}
 .hero__meta{display:none}
}

/* ----- LAYER 12 — THE VALUE CASE FLOW (Chairman artwork, 26 Sep) --------
   Replaces the four-photograph exhibit. The old block carried i-22 to i-25 -
   the last four slots still on stock imagery - and the photographs said
   nothing about the mechanism. The Chairman's diagram does: four elements,
   three connectors, and a close-out that returns the captured value to the
   agreed target.

   Built as markup with inline SVG rather than dropped in as a picture, for
   three reasons: it reflows (a fixed diagram is unreadable at 390px), the
   labels are real text so they are searchable and screen-readable, and it
   weighs a few kilobytes instead of two hundred.

   PALETTE NOTE: the supplied artwork uses gold for the Target ring, the
   Effect accents and the close-out line. Gold is EDGE Holding's and is not
   used on EDGE Advisory, so those accents are rendered in olive here. The
   structure, copy and hierarchy are unchanged. Flagged to the Chairman as
   D-118: say the word and the gold goes back.
   ========================================================================= */
.vcf{margin:30px 0 0;padding:0}
.vcf .xb__lab{margin:0 0 18px}

.vcf__row{list-style:none;margin:0;padding:0;display:grid;gap:22px;
 grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}

.vcf__c{position:relative;display:flex;flex-direction:column;
 background:#fff;border:1px solid #E1E4E9;padding:22px 22px 20px}

/* the connector: a rule from this card to the next, with an arrowhead on the
   last one. Drawn on the card so it cannot drift out of alignment. */
.vcf__c::after{content:"";position:absolute;top:50%;inset-inline-start:100%;
 width:22px;height:1px;background:var(--olive);opacity:.55}
.vcf__c:last-child::after{display:none}
.vcf__c:nth-last-child(2)::after{
 background:linear-gradient(90deg,var(--olive),var(--olive));
 box-shadow:6px -3px 0 -3px var(--olive),6px 3px 0 -3px var(--olive)}

.vcf__hd{display:flex;align-items:center;gap:11px;
 padding-bottom:13px;border-bottom:1px solid #E7EAEE}
.vcf__ic{flex:0 0 auto;width:27px;height:27px;display:block}
.vcf__ic svg{width:100%;height:100%;display:block;fill:none;
 stroke:var(--olive);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.vcf__ic .vcf__fill{fill:var(--olive);stroke:none}
.vcf__n{font-size:12px;letter-spacing:.11em;text-transform:uppercase;
 color:var(--olive);white-space:nowrap}
.vcf__n b{font-weight:700;color:var(--olive)}

.vcf__h{font-family:var(--fe);font-weight:400;font-size:21px;line-height:1.25;
 color:var(--navy);margin:16px 0 0;letter-spacing:-.005em}
.vcf__p{font-size:14.5px;line-height:1.6;color:var(--s600);margin:9px 0 0}
.vcf__tag{margin:16px 0 0;font-size:12px;font-weight:700;letter-spacing:.09em;
 text-transform:uppercase;color:var(--olive);display:flex;align-items:center;gap:9px}
.vcf__dots{display:inline-flex;gap:5px;flex:0 0 auto}
.vcf__dots i{width:7px;height:7px;border-radius:50%;background:var(--olive);display:block}
.vcf__dots i:nth-child(2){opacity:.62}
.vcf__dots i:nth-child(3){opacity:.34}

/* the fourth card is the outcome, so it inverts */
.vcf__c--e{background:var(--navy);border-color:var(--navy)}
.vcf__c--e .vcf__hd{border-bottom-color:rgba(201,210,168,.34)}
.vcf__c--e .vcf__ic svg{stroke:var(--olive-hi,#C9D2A8)}
.vcf__c--e .vcf__n,.vcf__c--e .vcf__n b,.vcf__c--e .vcf__tag{color:var(--olive-hi,#C9D2A8)}
.vcf__c--e .vcf__h{color:#fff}
.vcf__c--e .vcf__p{color:#D5DAE2}

/* the close-out: the captured value is compared back to the agreed target */
.vcf__close{position:relative;margin:26px 0 0;padding-top:20px;
 border-top:1px solid rgba(76,85,54,.30);
 font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
 color:var(--olive);text-align:center}
.vcf__close span{background:var(--white,#fff);padding:0 14px;position:relative;top:-30px;
 display:inline-block}

@media (min-width:821px) and (max-width:1179px){
 /* tablet: two by two. The connector that pointed right from card 2 would now
    point at nothing, so it is suppressed and the pair reads top row then
    bottom, which is how a 2x2 is read anyway. */
 .vcf__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .vcf__c:nth-child(2n)::after{display:none}
}
@media (max-width:820px){
 /* mobile: stacked, and the connector turns to point down */
 .vcf__row{grid-template-columns:1fr;gap:30px}
 .vcf__c::after{top:100%;inset-inline-start:50%;width:1px;height:30px;
  transform:translateX(-50%)}
 .vcf__c:nth-last-child(2)::after{box-shadow:-3px -6px 0 -3px var(--olive),3px -6px 0 -3px var(--olive)}
 .vcf__h{font-size:20px}
 .vcf__close{margin-top:22px}
}

/* Refinements after rendering Layer 12:
   - the close-out label was positioned out of its own border and rendered as
     two stray dashes either side of the text. It is now a flex row whose rules
     are drawn by pseudo-elements, so the line always meets the label.
   - the arrowhead into the outcome card was not reading as an arrow. It is
     drawn as two rotated segments rather than a box-shadow trick.
   - the status tags wrap on narrow cards; the dots stay on the first line with
     the text rather than being pushed onto one of their own. */
.vcf__close{display:flex;align-items:center;gap:16px;border-top:0;
 padding-top:0;margin-top:28px;text-align:initial}
.vcf__close::before,.vcf__close::after{content:"";flex:1 1 auto;height:1px;
 background:rgba(76,85,54,.32)}
.vcf__close span{background:none;padding:0;position:static;top:auto;
 flex:0 0 auto;text-align:center}

.vcf__c:nth-last-child(2)::after{box-shadow:none;background:var(--olive);opacity:.75}
.vcf__c:nth-last-child(2)::before{content:"";position:absolute;top:50%;
 inset-inline-start:calc(100% + 15px);width:7px;height:7px;
 border-top:1.5px solid var(--olive);border-inline-end:1.5px solid var(--olive);
 transform:translateY(-50%) rotate(45deg)}

.vcf__tag{flex-wrap:wrap;gap:7px 9px}

@media (max-width:820px){
 .vcf__c:nth-last-child(2)::before{top:calc(100% + 15px);inset-inline-start:50%;
  transform:translateX(-50%) rotate(135deg)}
}
@media (min-width:821px) and (max-width:1179px){
 .vcf__c:nth-child(2n)::before{display:none}
}

/* The close-out rules were only ~20px long: .vcf__close is a <p>, and a
   paragraph measure cap further up the sheet was limiting the flex container
   itself, so its growing children had nothing to grow into. The label takes
   the full width of the exhibit explicitly. */
.vcf__close{width:100%;max-width:none}
.vcf__close::before,.vcf__close::after{min-width:24px}

/* The status tag was a flex row, so on a narrow card the three dots were
   pushed onto a line of their own above the words. Inline-block keeps them on
   the first line, where they belong. */
.vcf__tag{display:block}
.vcf__dots{display:inline-flex;vertical-align:baseline;margin-inline-end:9px;
 position:relative;top:-1px}

/* Regression caught by the audit: the close-out label is one unbreakable line
   of letter-spaced uppercase, 509px wide, and as a non-shrinking flex child it
   pushed the Advisory page sideways at every width up to 600px. Below the
   tablet band the rules-either-side arrangement is dropped for a single rule
   above a label that is free to wrap. */
@media (max-width:820px){
 .vcf__close{display:block;text-align:center;
  border-top:1px solid rgba(76,85,54,.32);padding-top:16px}
 .vcf__close::before,.vcf__close::after{display:none}
 .vcf__close span{display:block;min-width:0;text-wrap:balance}
}
.vcf__close span{min-width:0}

/* ----- LAYER 13 — THE SPONSORSHIP LADDER AS FOUR CARDS, TWO BY TWO ------
   "change to 4 cards 2 top 2 down."

   The ladder was drawn for a single row: a rule running right from each badge
   to the next, and a vertical divider between neighbours. Layer 3 put it into
   two columns for the measure - four across gave each step 216px at 1024px -
   but it kept the single-row furniture, so in a 2x2 the rules read as a cross
   through the middle of the block rather than as a sequence. It also had no
   card: the items sat bare on the section background.

   The 2x2 is not just a smaller version of the row, it is a better statement
   of the content. Row one is who CAN sponsor; row two is who cannot. The
   authority line the note describes - "the line sits between 02 and 03" - is
   now literally the line between the two rows, drawn across the full width
   where it is impossible to miss, instead of a 1px rule between two of four
   columns.
   ========================================================================= */
@media (min-width:768px){
 .stp--4{grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:clamp(20px,2.4vw,30px);row-gap:clamp(34px,4vw,46px)}

 /* the single-row furniture goes */
 .stp--4 .stp__i::after,
 .stp--4 .stp__i::before,
 .stp--4 .stp__i+.stp__i::before{display:none}

 /* each step becomes a card */
 .stp--4 .stp__i{background:#fff;border:1px solid #E1E4E9;
  padding:22px 24px 22px;gap:14px;align-content:start;
  padding-inline-start:24px!important;margin:0}

 /* the authority line: drawn across both columns, above the first card of the
    second row, and labelled so it says what it is */
 .stp--4.stp--rank .stp__i--n:first-of-type{position:relative;
  border-top:0;padding-top:22px}
 .stp--4.stp--rank .stp__i--n:first-of-type::before{display:block;content:"";
  position:absolute;inset-inline-start:0;
  width:calc(200% + clamp(20px,2.4vw,30px));
  top:calc(-1 * clamp(34px,4vw,46px) / 2);
  height:2px;background:var(--olive);opacity:.85}
 .stp--4.stp--rank .stp__i--n:first-of-type::after{display:block;
  content:"Sponsorship authority ends here";
  position:absolute;inset-inline-start:0;
  width:calc(200% + clamp(20px,2.4vw,30px));
  top:calc(-1 * clamp(34px,4vw,46px) / 2);
  transform:translateY(-50%);
  text-align:center;background:none;
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--olive);pointer-events:none}
 /* the label needs a plate so the rule does not run through the letters */
 .stp--4.stp--rank .stp__i--n:first-of-type::after{
  text-shadow:0 0 6px #fff,0 0 6px #fff,0 0 6px #fff,0 0 6px #fff,
              0 0 12px #fff,0 0 12px #fff}
}

/* mobile keeps one column; the cards stay cards */
@media (max-width:767px){
 .stp--4{grid-template-columns:1fr;row-gap:16px}
 .stp--4 .stp__i{background:#fff;border:1px solid #E1E4E9;padding:20px 20px}
 .stp--4 .stp__i::after,.stp--4 .stp__i+.stp__i::before{display:none}
 .stp--4.stp--rank .stp__i--n:first-of-type{border-top:2px solid var(--olive);
  padding-top:20px}
}

/* The authority line did not draw. The selector inherited from the original
   stylesheet is .stp__i--n:first-of-type, and :first-of-type matches by TAG,
   not by class - so it means "an li that carries --n AND is the first li in
   the list". The first li is item 01, which carries --y, so the selector
   matched nothing at all. It has been silently dead; in the old four-across
   layout the line between 02 and 03 was never actually drawn either.

   Targeted by position instead: in a 2x2 the third card opens the second row,
   which is exactly where the line belongs. */
@media (min-width:768px){
 .stp--4.stp--rank .stp__i:nth-child(3){position:relative;border-top:0;padding-top:22px}
 .stp--4.stp--rank .stp__i:nth-child(3)::before{display:block;content:"";
  position:absolute;inset-inline-start:0;
  width:calc(200% + clamp(20px,2.4vw,30px));
  top:calc(-1 * clamp(17px,2vw,23px));
  height:2px;background:var(--olive);opacity:.85}
 .stp--4.stp--rank .stp__i:nth-child(3)::after{display:block;
  content:"Sponsorship authority ends here";
  position:absolute;inset-inline-start:0;
  width:calc(200% + clamp(20px,2.4vw,30px));
  top:calc(-1 * clamp(17px,2vw,23px));
  transform:translateY(-50%);text-align:center;
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--olive);pointer-events:none;background:none;
  text-shadow:0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,0 0 5px #fff,
              0 0 10px #fff,0 0 10px #fff,0 0 14px #fff}
}
@media (max-width:767px){
 .stp--4.stp--rank .stp__i:nth-child(3){border-top:2px solid var(--olive);
  padding-top:20px}
}

/* ===== v5.9 — QA REMEDIATION (Chairman D-122 a, 26 Sep) ==================
   Eight issues from the full sweep of v5.8. Six are here; the other two are
   image re-encoding and server configuration.
   ========================================================================= */

/* --- #3 and #5 — the type floor --------------------------------------------
   The sweep found 22 visible text runs below 12px, from 9.5px upward. The
   Chairman's instruction was not to shrink text below a comfortable reading
   size; these had been below it since they were written. The floor is 12px
   for every label role, as Layer 8 already set for five of them.

   9.5px  .mx__chip     the Flagship badge on the service matrix
   10.5px .th           six column headers on the service matrix
   10.5px .efg__n/.efg__t   the three gate markers
   10.5px .ftr__h       four footer column headings
   10.5px .dt           three definition terms on Privacy
   10.5px .gm-kh        the footprint map key heading
   10.5px .lg__toc-h    the Contents heading on Privacy and Terms
   11px   .ef-sub       four framework sub-labels
   11px   .text         four SVG gate labels in the framework diagram
   11.5px .ftr__cr / .ftr__legal / .lg__meta   footer and legal microcopy   */
.mx__chip{font-size:12px;padding:3px 9px}
.th,.efg__n,.efg__t,.ftr__h,.dt,.gm-kh,.lg__toc-h{font-size:12px}
.ef-sub{font-size:12px}
.ftr__cr,.ftr__legal,.lg__meta{font-size:12px}
svg text.text{font-size:12px}

/* --- #6 — heading levels ---------------------------------------------------
   The home entry cards moved from h4 to h3 and the Value Case cards from h4
   to h3, so the styles that were keyed to the old tags are restated. Nothing
   about the appearance changes; only the document outline does. */
.wy__h{font-size:clamp(17px,1.7vw,19px);line-height:1.3;margin:0}
.vcf__h{font-family:var(--fe);font-weight:400;font-size:21px;line-height:1.25;
 color:var(--navy);margin:16px 0 0;letter-spacing:-.005em}
.vcf__c--e .vcf__h{color:#fff}

/* --- #7 — sign-in had no h1 -------------------------------------------------
   Its lead statement was an h2 and the page carried no h1 at all. The tag
   changed; the type stays exactly as it was. */
.acc__card h1{font-family:var(--fe);font-size:clamp(21px,2.4vw,27px);
 margin:13px 0 0;color:var(--navy);font-weight:700;line-height:1.2;
 letter-spacing:-.01em}


/* --- #1 continued — the framework diagram's own font token -----------------
   --ef-fd was the last thing in the stylesheet still asking for Neue Haas
   Grotesk. With the two embedded faces removed it would have fallen back to
   Inter, which is not on this site either, and then to a system sans - a
   third typeface appearing in one diagram. It joins the rest on Fiorina,
   which is what "make it fiorina.. all text" asked for. */
:root{--ef-fd:"Fiorina Text",Georgia,"Times New Roman",serif}

/* --- #1 continued — the framework module's remaining font tokens -----------
   The framework diagram and its cards were ported from a separate stylesheet
   with its own font tokens, so they never went through --fd/--ft. With Neue
   Haas and Inter no longer embedded, four card sub-labels, four card bodies
   and eleven SVG labels would each have fallen through to a different system
   sans. All the module's tokens now point at the one typeface this site
   actually loads. */
:root{--ef-fb:"Fiorina Text",Georgia,"Times New Roman",serif;
      --ef-fs:"Fiorina Text",Georgia,"Times New Roman",serif}
.ef-card p,.ef-sub,.ef-cards li p,
.ef svg text,.ef svg tspan,
svg text,svg tspan{font-family:"Fiorina Text",Georgia,"Times New Roman",serif}

/* --- #5 continued — three roles the first pass missed ----------------------
   The audit reports a class name when it has one and the TAG name when it
   does not, and two of these have none: `.th` is a bare <th> on the service
   matrix and `.text` is an SVG <text> label in the framework diagram. The
   first pass wrote class selectors for both, which matched nothing.
   .ftr__legal was a specificity miss: it is set twice further up the sheet and
   the later of those two wins over a plain class selector at the end. */
th{font-size:12px}
svg text,svg tspan{font-size:12px}
.ftr__legal,footer .ftr__legal,.ftr--min .ftr__legal{font-size:12px}

/* Two of the three needed more specificity than a bare element selector:
   .mx thead th (0,1,2) was setting 10.5px and beat a plain `th`, and the
   framework diagram's pill labels inherit 11px from a rule further up whose
   selector is more specific than `svg text`. Matched at the level that wins,
   and no higher. */
.mx thead th,.mx th{font-size:12px}
.cy16 .cy-pill text,.cy-pill text,svg g text{font-size:12px}

/* The last two under the floor. `.dt` on Privacy is a <dt>, so the class
   selector written earlier never matched it; `.gm-in` is the footprint map's
   numbered index, missed because the first sweep only listed one map class. */
dt,.dt,.lg dt{font-size:12px}
.gm-in,.gm-i .gm-in{font-size:12px}
.lg__dl dt{font-size:12px}

/* ===== v6.0 — CHAIRMAN'S FOURTEEN (26 Sep 2026) =========================
   Marked up on screenshots, numbered 1-13 plus the framework row.
   ========================================================================= */

/* --- 1 · the header mark ---------------------------------------------------
   30px, rising to 38px on the wide band. On a 76px bar that is a logo sitting
   in the middle of a lot of air. It goes to 48px and the bar grows with it, so
   the proportion holds rather than the mark simply filling the gap.
   --hdr-h is the token the hero-fit calculation subtracts, so it moves too. */
:root{--hdr-h:92px}
.hdr .w{height:92px;gap:clamp(20px,2.6vw,40px)}
.hdr img{height:48px}
.hdr.is-stuck img{transform:scale(.86)}
@media (max-width:900px){:root{--hdr-h:76px}.hdr .w{height:76px}.hdr img{height:40px}}

/* --- 2 · the navigation ----------------------------------------------------
   Plain sentence-case links in the body face. They become the institutional
   register the rest of the site uses: uppercase, letter-spaced, and the active
   route marked by a rule that draws rather than simply appearing. */
.hdr nav{display:flex;gap:clamp(18px,2.2vw,34px);margin-inline-start:auto}
.hdr nav a{position:relative;display:inline-block;padding:10px 0 9px;
 font-size:12.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
 color:#E7EAEE;text-decoration:none;white-space:nowrap;
 transition:color 180ms var(--ease-standard)}
.hdr nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;
 background:linear-gradient(90deg,var(--ol-lo,#4C5536),var(--ol-hi,#C9D2A8) 50%,var(--ol-lo,#4C5536));
 background-size:220% 100%;
 transform:scaleX(0);transform-origin:left center;
 transition:transform 260ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.hdr nav a:hover{color:#fff}
.hdr nav a:hover::after,
.hdr nav a[aria-current]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:no-preference){
 .hdr nav a[aria-current]::after{animation:railSweep 5.5s linear infinite}
}
@keyframes railSweep{0%{background-position:120% 0}100%{background-position:-120% 0}}

/* --- 3 and 4 · the two actions ---------------------------------------------
   "Request a Briefing" was an outlined ghost and "Client login" was a bare
   link, so the header offered one action that looked optional and one that did
   not look like an action at all. They become a matched pair: the primary
   filled and lit, the secondary outlined - the same shape, two weights. */
.hdr .aux{display:flex;gap:12px;align-items:center}

.hdr .aux .btn--ons{
 background:linear-gradient(100deg,var(--olive) 0%,var(--ol-mid,#6B7752) 46%,var(--olive) 100%);
 background-size:220% 100%;background-position:100% 0;
 color:#fff;box-shadow:none;border:1px solid transparent;
 font-size:13px;font-weight:700;letter-spacing:.055em;
 padding:11px 20px;border-radius:2px;min-height:42px;
 transition:background-position 600ms var(--ease-standard),
            box-shadow 220ms var(--ease-standard),transform 220ms var(--ease-standard)}
.hdr .aux .btn--ons:hover{background-position:0 0;transform:translateY(-1px);
 box-shadow:0 6px 18px rgba(76,85,54,.38),0 0 0 1px rgba(201,210,168,.45)}

.hdr__login{display:inline-flex;align-items:center;justify-content:center;
 min-height:42px;padding:11px 18px;border-radius:2px;
 font-size:12.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
 color:#D8DEE6;text-decoration:none;
 border:1px solid rgba(201,210,168,.42);background:transparent;
 transition:border-color 200ms var(--ease-standard),color 200ms var(--ease-standard),
            background 200ms var(--ease-standard)}
.hdr__login:hover{color:#fff;border-color:var(--ol-hi,#C9D2A8);
 background:rgba(138,150,110,.16)}

/* --- 5 · the hero kicker ---------------------------------------------------
   "THE VALUE-CREATION ADVISORY PILLAR OF EDGE HOLDING" is a long line of
   letter-spaced uppercase and was wrapping to two. Smaller and tighter, it
   holds one line at desktop and reads as a label rather than a second
   headline. */
.hero__card .kick{font-size:10.5px;letter-spacing:.155em;line-height:1.5}
@media (max-width:820px){.hero__card .kick{font-size:10px;letter-spacing:.14em}}

/* --- 8 · the hero photograph spans the hero -------------------------------
   Until now the picture occupied a right-hand box that started at 46-52% and
   the copy sat on flat navy beside it, so the two met at a hard vertical
   seam. On the Capital home page the photograph runs the whole width and the
   navy is a gradient laid over it, so the copy sits ON the image and the image
   never stops - which is why that hero reads as one frame rather than two
   panels.

   Same construction here, in Advisory's navy: the picture is pinned edge to
   edge and the scrim carries the contrast. The per-route object-position work
   from v5.6 is kept - each frame still holds its own subject - it simply has
   the full width to do it in. */
@media (min-width:821px){
 .hero__img .slot__img{inset-inline-start:0;inset-inline-end:0;width:auto}

 /* the fade. Opaque enough over the copy column to hold 4.5:1, gone by the
    time it reaches the subject on the right. The vertical pass is light and
    exists only to seat the copy block on something. */
 .hero__img::after{background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,
     rgba(13,22,39,.95) 26%,
     rgba(13,22,39,.84) 40%,
     rgba(13,22,39,.52) 54%,
     rgba(13,22,39,.22) 68%,
     rgba(13,22,39,.06) 82%,
     rgba(13,22,39,0)   92%),
   linear-gradient(to top,
     rgba(13,22,39,.42) 0%,
     rgba(13,22,39,.14) 24%,
     rgba(13,22,39,0)   50%)}

 /* with the picture now under the copy rather than beside it, each frame is
    re-anchored so its subject clears the fade instead of sitting inside it */
 body[data-route="home"]     .hero__img .slot__img{object-position:68% 100%}
 body[data-route="advisory"] .hero__img .slot__img{object-position:72% 44%}
 body[data-route="forums"]   .hero__img .slot__img{object-position:70% 54%}
 body[data-route="contact"]  .hero__img .slot__img{object-position:70% 28%}
}
@media (min-width:1600px){
 body[data-route="home"]     .hero__img .slot__img{object-position:72% 100%}
 body[data-route="advisory"] .hero__img .slot__img{object-position:75% 44%}
 body[data-route="forums"]   .hero__img .slot__img{object-position:73% 54%}
 body[data-route="contact"]  .hero__img .slot__img{object-position:73% 28%}
}

/* --- 7 · the whole hero in the opening screen ------------------------------
   The header grew 16px for the larger mark, and the Chairman's screenshot was
   taken on a short window where the second CTA fell below the fold. The copy
   block tightens so the hero keeps its margin at every height the audit
   tests, without reducing the headline or the body line. */
/* scoped: on mobile the copy's top padding is what clears the photograph
   band (Layer 10), and an unscoped rule here put the copy back on top of the
   picture - measured at 1.02:1 on Forums before this was caught. */
@media (min-width:821px){
 .hero__card{padding-block:clamp(22px,4vh,72px) clamp(32px,7vh,132px)}
}
@media (max-height:900px) and (min-width:821px){
 .hero__card{padding-block:clamp(18px,3vh,44px) clamp(24px,4.5vh,70px)}
 .hero__card h1{line-height:1.08}
 .hero__card .lede{margin-top:14px}
 .hero__meta{margin-top:18px}
}
@media (max-height:780px) and (min-width:821px){
 .hero__card{padding-block:clamp(14px,2vh,28px) clamp(18px,3vh,44px)}
 .hero__meta{display:none}
}

/* The full-bleed rule was written as .hero__img .slot__img (0,2,0) and lost to
   the per-route rules from v5.6/v5.7, which carry an attribute selector
   (0,3,1) and still pinned the picture to the right half. Restated at the same
   specificity, per route, so the photograph actually reaches both edges. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img .slot__img,
 body[data-route="advisory"] .hero__img .slot__img,
 body[data-route="forums"]   .hero__img .slot__img,
 body[data-route="contact"]  .hero__img .slot__img{
  inset-inline-start:0;inset-inline-end:0;width:auto}
}
@media (min-width:1600px){
 body[data-route="home"]     .hero__img .slot__img,
 body[data-route="advisory"] .hero__img .slot__img,
 body[data-route="forums"]   .hero__img .slot__img,
 body[data-route="contact"]  .hero__img .slot__img{
  inset-inline-start:0;inset-inline-end:0;width:auto}
}

/* width:auto was the wrong instruction. On an absolutely positioned REPLACED
   element - an <img> - with both insets at 0 and a natural aspect ratio, the
   used width comes from the intrinsic ratio, not from the insets: the picture
   sized itself to 808px of hero height x 1.054 = 852px and stopped there.
   Exactly the failure mode as the original .hero{aspect-ratio} bug, one level
   down. An explicit 100% makes the width definite and object-fit:cover then
   does the cropping, which is what it is for. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img .slot__img,
 body[data-route="advisory"] .hero__img .slot__img,
 body[data-route="forums"]   .hero__img .slot__img,
 body[data-route="contact"]  .hero__img .slot__img{
  inset-inline-start:0;inset-inline-end:0;width:100%;height:100%;object-fit:cover}
}

/* --- 6 and 9 · the section rail, lit -------------------------------------
   The rail was white with dark links - a plain sub-navigation. On edge-cap.net
   the equivalent strip is a dark band of lit chips, and it is the thing that
   makes that page read as a system rather than a document. Same construction,
   Advisory's olive rather than Capital's blue: white label on an olive field
   with a highlight that travels across it.

   The chips animate only where motion is welcome, and the resting state is
   fully legible - a reader with reduced-motion on sees a solid olive chip, not
   a blank one. */
.rail{background:var(--navy);border-bottom:1px solid rgba(201,210,168,.16)}
.rail .w{gap:10px;padding-block:9px}
.rail a{position:relative;display:inline-flex;align-items:center;
 padding:7px 15px;border-radius:2px;white-space:nowrap;text-decoration:none;
 font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
 color:#FFFFFF;border:1px solid rgba(201,210,168,.34);
 background-color:var(--olive);
 background-image:linear-gradient(100deg,
   var(--ol-lo,#3F4A2F) 0%, var(--ol-mid,#6B7752) 34%,
   var(--ol-hi,#C9D2A8) 50%, var(--ol-mid,#6B7752) 66%, var(--ol-lo,#3F4A2F) 100%);
 background-size:260% 100%;background-position:130% 0;
 transition:background-position 700ms var(--ease-standard),
            border-color 220ms var(--ease-standard),
            box-shadow 220ms var(--ease-standard)}
.rail a:hover,.rail a:focus-visible{color:#fff;background-position:0 0;
 border-color:var(--ol-hi,#C9D2A8);
 box-shadow:0 0 0 1px rgba(201,210,168,.5),0 4px 16px rgba(76,85,54,.4)}
@media (prefers-reduced-motion:no-preference){
 .rail a{animation:railSweep 9s linear infinite}
 .rail a:nth-child(2){animation-delay:-1.3s}
 .rail a:nth-child(3){animation-delay:-2.6s}
 .rail a:nth-child(4){animation-delay:-3.9s}
 .rail a:nth-child(5){animation-delay:-5.2s}
 .rail a:nth-child(6){animation-delay:-6.5s}
 .rail a:nth-child(7){animation-delay:-7.8s}
 .rail a:hover,.rail a:focus-visible{animation-play-state:paused}
}
@media (max-width:820px){
 .rail .w{gap:8px}
 .rail a{padding:6px 12px;font-size:11.5px;letter-spacing:.08em}
 /* the scroll-edge fade was written for a white rail */
 .rail > .w::after{background:linear-gradient(90deg,rgba(13,22,39,0),var(--navy))}
}

/* --- the framework row, four across as on Capital -------------------------
   Establish · Develop · Growth · Exit is a four-stage model and reading it as
   a 2x2 breaks the sequence in the middle. It went to two columns in v5.9
   because four across the 1040px measure gave 242px a card - too narrow for
   18 words. Capital solves it by giving that row a wider measure than the
   body text around it, and so does this: the row breaks out of the column by
   as much as the viewport allows, up to 180px a side, and only then takes its
   fourth column. Below that width it stays two across, where it is readable. */
@media (min-width:1180px){
 .ef-cards{--ef-bleed:clamp(0px,calc((100vw - var(--c)) / 2 - 32px),180px);
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:calc(100% + 2 * var(--ef-bleed));
  margin-inline:calc(-1 * var(--ef-bleed));
  gap:clamp(16px,1.6vw,24px)}
 .ef-card{padding-inline:clamp(18px,1.6vw,26px)}
 .ef-card h3{font-size:clamp(25px,2.1vw,32px)}
}

/* --- 11 · the footer mark, olive and lit ----------------------------------
   The footer carried the same white mark as the header, as 13 KB of base64,
   on every page. It is now a cached SVG file whose paths are filled from a
   gradient that animates inside the file - no CSS, no script, and one request
   that caches for a year instead of 13 KB re-parsed on every load. */
.ftr__brand img{height:52px;width:auto;display:block}
@media (max-width:720px){.ftr__brand img{height:44px}}

/* --- 12 · the footer, a quarter shorter -----------------------------------
   Measured at 486px tall on Home. The vertical rhythm comes down roughly 25%
   across the padding, the zone gap and the link spacing - proportionally, so
   the footer reads tighter rather than cramped. */
footer{padding:clamp(34px,4vw,48px) 0 clamp(18px,2vw,26px)}
.ftr__top{gap:clamp(22px,2.4vw,40px);padding-bottom:clamp(20px,2.2vw,30px)}
.ftr__nav ul{margin:0}
.ftr__nav li{margin-top:9px}
.ftr__nav li:first-child{margin-top:8px}
.ftr__h{margin-bottom:2px}
.ftr__brand{margin-bottom:10px}
.ftr__base{padding-top:clamp(14px,1.6vw,20px)}
.ftr__mail{margin-top:8px;display:inline-block}

/* --- 13 · location and action, right-hand column --------------------------
   The location line moved out of the identity block and into the action
   column, and the CTA stopped being a full-width strip: it is a square block,
   right-aligned with the column, and large enough to read as the footer's one
   action rather than a link with a border. */
@media (min-width:901px){
 .ftr__top{grid-template-columns:minmax(210px,.95fr) minmax(0,1.5fr) minmax(210px,.85fr);
  align-items:start}
 .ftr__act{grid-column:auto;max-width:none;align-items:flex-end;text-align:right}
 .ftr__act .ftr__h,.ftr__act .ftr__where{text-align:right;width:100%}
}
.ftr__act .ftr__where{margin:0 0 16px;letter-spacing:.16em;color:var(--ol-hi,#C9D2A8);
 text-transform:uppercase;font-weight:700}
.ftr__cta{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;
 width:clamp(150px,11vw,178px);height:clamp(150px,11vw,178px);
 margin-inline-start:auto;
 padding:18px;border-radius:2px;text-decoration:none;
 border:1px solid rgba(201,210,168,.40);
 background-color:rgba(76,85,54,.16);
 background-image:linear-gradient(100deg,
   rgba(63,74,47,0) 0%, rgba(107,119,82,.55) 34%,
   rgba(201,210,168,.30) 50%, rgba(107,119,82,.55) 66%, rgba(63,74,47,0) 100%);
 background-size:260% 100%;background-position:130% 0;
 transition:background-position 700ms var(--ease-standard),
            border-color 220ms var(--ease-standard),
            box-shadow 220ms var(--ease-standard),transform 220ms var(--ease-standard)}
.ftr__cta span:first-child{font-family:var(--fe);font-size:clamp(17px,1.3vw,20px);
 line-height:1.22;color:#fff;text-align:left;letter-spacing:-.005em}
.ftr__cta .ftr__arw{align-self:flex-end;font-size:22px;line-height:1;color:var(--ol-hi,#C9D2A8);
 transition:transform 260ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.ftr__cta:hover{background-position:0 0;border-color:var(--ol-hi,#C9D2A8);
 transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.34)}
.ftr__cta:hover .ftr__arw{transform:translateX(5px)}
@media (max-width:900px){
 .ftr__act{align-items:flex-start;text-align:left}
 .ftr__cta{margin-inline-start:0;width:clamp(140px,40vw,168px);height:clamp(140px,40vw,168px)}
}

/* footer nav was still on its old line spacing; the 25% reduction has to
   reach the lists too or the columns stay as tall as they were */
.ftr__nav ul{margin:0;padding:0;list-style:none}
.ftr__nav li,.ftr__nav li:first-child{margin:0}
.ftr__nav li + li{margin-top:7px}
.ftr__nav a{display:inline-block;padding:2px 0}
.ftr__act .ftr__h{margin:0 0 9px}

/* --- 21 and 22 · the client-access page -----------------------------------
   It was a white card floating on a flat olive field, sized so the card ran
   past the fold, with a logo-only bar above it and nothing below. With the
   header and footer now in place (20), the card has to fit between them.

   21 · the section is sized to the space that exists rather than to a fixed
        card height, so the whole of it is in view on the opening screen.
   22 · the flat olive field becomes a lit one: a slow olive wash behind the
        card and a highlight that travels along the card's top edge, the same
        illumination the rail and the footer action use. */
.acc{position:relative;overflow:hidden;
 min-height:calc(100svh - var(--hdr-h) - var(--ftr-h,392px));
 display:flex;align-items:center;
 padding-block:clamp(24px,4vh,56px);
 background:radial-gradient(120% 90% at 18% 12%, #55603C 0%, #4C5536 42%, #3F4A2F 100%)}

/* the wash: two very slow olive glows, offset, so the field breathes rather
   than sitting flat. Motion only where it is welcome. */
.acc::before,.acc::after{content:"";position:absolute;pointer-events:none;
 border-radius:50%;filter:blur(70px);opacity:.55}
.acc::before{width:46vw;height:46vw;left:-8vw;top:-14vw;
 background:radial-gradient(circle,rgba(201,210,168,.30),rgba(201,210,168,0) 68%)}
.acc::after{width:52vw;height:52vw;right:-14vw;bottom:-22vw;
 background:radial-gradient(circle,rgba(138,150,110,.34),rgba(138,150,110,0) 68%)}
@media (prefers-reduced-motion:no-preference){
 .acc::before{animation:accGlowA 17s ease-in-out infinite alternate}
 .acc::after{animation:accGlowB 21s ease-in-out infinite alternate}
}
@keyframes accGlowA{from{transform:translate3d(0,0,0) scale(1)}
                    to{transform:translate3d(4vw,3vw,0) scale(1.12)}}
@keyframes accGlowB{from{transform:translate3d(0,0,0) scale(1.06)}
                    to{transform:translate3d(-5vw,-3vw,0) scale(1)}}

.acc .w{position:relative;z-index:1}
.acc__card{position:relative;overflow:hidden;
 box-shadow:0 26px 70px rgba(13,22,39,.34),0 2px 0 rgba(255,255,255,.5) inset}
/* the travelling highlight on the card's top edge */
.acc__card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
 background:linear-gradient(90deg,
   var(--ol-lo,#3F4A2F) 0%, var(--ol-mid,#6B7752) 34%,
   var(--ol-hi,#C9D2A8) 50%, var(--ol-mid,#6B7752) 66%, var(--ol-lo,#3F4A2F) 100%);
 background-size:260% 100%}
@media (prefers-reduced-motion:no-preference){
 .acc__card::before{animation:railSweep 8s linear infinite}
}

/* 21 · the card's own rhythm tightens so the whole section clears the fold on
   a short laptop screen without touching the reading size of the body copy */
@media (max-height:900px){
 .acc{padding-block:clamp(18px,2.6vh,34px)}
 .acc__card{padding:clamp(26px,3.4vh,40px) clamp(26px,3vw,44px)}
 .acc__card h1{font-size:clamp(20px,2.1vw,25px)}
 .acc__l li{margin-top:10px}
 .acc__acts{margin-top:18px}
}

/* --- 16 and 19 · motion on the two card rows ------------------------------
   The Value Case flow and the Forums three-day row both appeared fully formed
   the instant they scrolled in. They now assemble: each card rises and fades
   in turn, left to right, so the eye is walked along the sequence rather than
   handed four finished boxes. The connectors draw after the cards they join,
   and the outcome card lights last.

   Everything here is a one-shot animation fired by .is-in, and the RESTING
   state is the finished state - a reader with reduced motion on, or with
   JavaScript off, sees the completed row, never a blank one. That is the same
   rule the rest of the motion system follows, and the reason the v4.7 reveal
   bug that hid content cannot recur here. */
@media (prefers-reduced-motion:no-preference){

 /* 16 · the Value Case flow */
 .vcf__row .vcf__c{animation:vcfRise 620ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__row .vcf__c:nth-child(1){animation-delay:60ms}
 .is-in .vcf__row .vcf__c:nth-child(2){animation-delay:180ms}
 .is-in .vcf__row .vcf__c:nth-child(3){animation-delay:300ms}
 .is-in .vcf__row .vcf__c:nth-child(4){animation-delay:420ms}
 /* the connector draws from the card it leaves */
 .is-in .vcf__c::after{animation:vcfDraw 420ms var(--ease-standard) both}
 .is-in .vcf__c:nth-child(1)::after{animation-delay:300ms}
 .is-in .vcf__c:nth-child(2)::after{animation-delay:420ms}
 .is-in .vcf__c:nth-child(3)::after{animation-delay:540ms}
 .is-in .vcf__c:nth-last-child(2)::before{animation:vcfFade 300ms ease both;animation-delay:700ms}
 /* the icons settle a beat after their card */
 .is-in .vcf__ic{animation:vcfPop 520ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__row .vcf__c:nth-child(1) .vcf__ic{animation-delay:200ms}
 .is-in .vcf__row .vcf__c:nth-child(2) .vcf__ic{animation-delay:320ms}
 .is-in .vcf__row .vcf__c:nth-child(3) .vcf__ic{animation-delay:440ms}
 .is-in .vcf__row .vcf__c:nth-child(4) .vcf__ic{animation-delay:560ms}
 /* the outcome card is the point of the diagram, so it is the thing that lights */
 .is-in .vcf__c--e{animation:vcfRise 620ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both,
                             vcfLight 1400ms var(--ease-standard) 760ms both}
 .is-in .vcf__close{animation:vcfFade 520ms ease both;animation-delay:860ms}

 /* 19 · the Forums three-day row. Same grammar, so the two pages move alike. */
 .g4 .card--o{animation:vcfRise 600ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .g4 .card--o:nth-child(1){animation-delay:60ms}
 .is-in .g4 .card--o:nth-child(2){animation-delay:190ms}
 .is-in .g4 .card--o:nth-child(3){animation-delay:320ms}
 .is-in .g4 .card--o:nth-child(4){animation-delay:450ms}
 /* the olive rule on each day card wipes in rather than appearing */
 .is-in .g4 .card--o::before{animation:vcfDrawX 480ms var(--ease-standard) both}
 .is-in .g4 .card--o:nth-child(1)::before{animation-delay:200ms}
 .is-in .g4 .card--o:nth-child(2)::before{animation-delay:330ms}
 .is-in .g4 .card--o:nth-child(3)::before{animation-delay:460ms}
 .is-in .g4 .card--o:nth-child(4)::before{animation-delay:590ms}
 .g4 .card--o{transition:transform 260ms var(--ease-standard),box-shadow 260ms var(--ease-standard)}
 .g4 .card--o:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(13,22,39,.12)}
}

@keyframes vcfRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes vcfFade{from{opacity:0}to{opacity:1}}
@keyframes vcfPop{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:none}}
@keyframes vcfDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vcfDrawX{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vcfLight{0%{box-shadow:0 0 0 0 rgba(201,210,168,0)}
                    45%{box-shadow:0 0 0 2px rgba(201,210,168,.55),0 12px 34px rgba(76,85,54,.34)}
                    100%{box-shadow:0 0 0 0 rgba(201,210,168,0)}}
.vcf__c::after{transform-origin:left center}
.g4 .card--o::before{transform-origin:left center}
@media (max-width:820px){.vcf__c::after{transform-origin:center top}}

/* --- 16 · and the clean-up the motion exposed -----------------------------
   With the cards moving in sequence the two loose ends showed: the status tag
   sat hard against the body copy with no separating rule the way the Forums
   cards have, and the card had no hover state at all while everything around
   it did. */
.vcf__tag{margin-top:auto;padding-top:15px;border-top:1px solid #E7EAEE}
.vcf__c--e .vcf__tag{border-top-color:rgba(201,210,168,.30)}
.vcf__c{transition:transform 260ms var(--ease-standard),box-shadow 260ms var(--ease-standard),
                   border-color 260ms var(--ease-standard)}
.vcf__c:hover{transform:translateY(-3px);border-color:#CBD3DC;
 box-shadow:0 12px 30px rgba(13,22,39,.10)}
.vcf__c--e:hover{border-color:rgba(201,210,168,.45);
 box-shadow:0 12px 34px rgba(0,0,0,.30)}

/* --- three regressions from the v6.0 work, each measured -------------------

   1 · Advisory's hero ran 18px past the fold at EVERY width — a constant, which
       is the signature of a stale constant. The rail token --rail-h has said
       49px since v5.4; the lit chips added 9px of padding top and bottom, so
       the rail is now 67px and the hero was subtracting the old number.

   2 · The hero kicker failed contrast at 3.67:1. It was taken to 10.5px in
       change 5, which drops it below the large-text threshold, so it needs
       4.5:1 rather than 3:1 — and the olive it was already using does not
       reach that over the new lighter fade. It moves to the bright olive,
       which measures 7:1 on the same backdrop.

   3 · The rail chips were written at 11.5px on mobile, under the 12px floor
       set two versions ago. Mine to break, mine to fix. */

body:has(.rail){--rail-h:67px}
@media (max-width:820px){body:has(.rail){--rail-h:60px}}

.hero__card .kick{color:var(--ol-hi,#C9D2A8)}

@media (max-width:820px){
 .rail a{font-size:12px}
}

/* The kicker is the one place where two of the Chairman's instructions pull
   against each other: change 5 asks for it smaller, and the QA remediation set
   a 12px floor for every label on the site. His instruction is the later one
   and it wins, but 10px letter-spaced uppercase is genuinely hard to read, so
   it settles at 11px — smaller than it was, above the point where the tracking
   starts to break the word up. Flagged as the single element below the floor.
   The tracking comes in as well, which is what stopped it wrapping to two
   lines — the thing that made it look oversized in the first place. */
.hero__card .kick{font-size:11px;letter-spacing:.13em}
@media (max-width:820px){.hero__card .kick{font-size:11px;letter-spacing:.11em}}

/* Advisory still ran 7px over on the shortest screens: its rail sits above the
   hero AND its copy block is the tallest of the four. The short-screen case
   gives it a little more of its padding back. */
@media (max-height:660px){
 body:has(.rail) .hero__card{padding-block:clamp(10px,1.6vh,22px) clamp(14px,2.4vh,30px)}
 body:has(.rail) .hero__card h1{line-height:1.1}
}

/* The mobile rail token guessed 60px. The chips keep the same padding at every
   width, so the rail is 67px on a phone exactly as it is on a desktop — and
   76 + 67 + 432 = 575 against a 568px fold is the 7px Advisory was over by.
   Measured, not estimated, this time. */
@media (max-width:820px){body:has(.rail){--rail-h:67px}}

/* The revamped nav and action pair were written as plain .hdr nav / .hdr .aux
   with display:flex, which overrode the rule that hides both behind the burger
   below 900px. Every route then carried a full desktop nav on a phone and
   scrolled sideways — 763px of content in a 320px viewport. Both are scoped to
   the band that actually has room for them; below it the menu takes over
   again, exactly as before. */
@media (max-width:900px){
 .hdr nav,.hdr .aux{display:none}
}

/* ===== v6.1 — CHAIRMAN'S 41 TO 47 (26 Sep 2026) ==========================

   43 · the navigation marks itself by COLOUR, not by a rule ----------------
   The lit underline was doing two things at once - drawing attention and
   animating - and the Chairman wants neither. The link changes colour on
   hover and on the current route, in plain olive; nothing draws, nothing
   sweeps, nothing sits under the word. */
.hdr nav a::after{display:none}
.hdr nav a{color:#D5DAE2;transition:color 180ms var(--ease-standard)}
.hdr nav a:hover,.hdr nav a:focus-visible{color:var(--ol-hi,#C9D2A8)}
.hdr nav a[aria-current]{color:var(--olive);color:#A9B589}
.hdr nav a[aria-current]:hover{color:var(--ol-hi,#C9D2A8)}

/* 41 · the hero headline in two lines --------------------------------------
   "Advice Measured in Enterprise Value." was breaking over four lines at the
   old size. The type comes down and the copy column widens, so the longest of
   the four headlines holds two lines from tablet upward. It is still the
   largest thing on the page - it simply stops being a stack. */
@media (min-width:821px){
 .hero__card h1{font-size:clamp(30px,3.15vw,46px);line-height:1.12;
  letter-spacing:-.016em;text-wrap:balance}
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(640px,41vw)}
}
@media (min-width:1600px){
 .hero__card h1{font-size:clamp(40px,2.9vw,54px)}
 .hero__card .kick,
 .hero__card h1,
 .hero__card .lede,
 .hero__card .hero__acts,
 .hero__card .hero__meta{max-width:min(700px,36vw)}
}

/* 44 · the section kicker becomes the Capital pill --------------------------
   On edge-cap.net a section opens with a filled pill - a short rule, then the
   label in white caps on a solid field. Same object here in olive rather than
   Capital's blue, and the same quiet animation: the rule draws in when the
   section arrives. The bar-and-text kicker it replaces is retired. */
.kick{display:inline-flex;align-items:center;gap:10px;
 padding:7px 15px 7px 13px;border-radius:2px;
 background:var(--olive);color:#fff;
 font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
 line-height:1.2;border-left:0}
.kick::before{content:"";flex:0 0 auto;width:13px;height:2px;background:#fff;
 transform-origin:left center}
@media (prefers-reduced-motion:no-preference){
 .is-in .kick::before{animation:vcfDraw 420ms var(--ease-standard) both;animation-delay:120ms}
}
/* the old left bar and its spacing */
.kick + .rule{display:none}
.band .kick,.band--olive .kick{background:rgba(255,255,255,.14);color:#fff}
.band--olive .kick::before{background:#fff}

/* the hero keeps its own quieter kicker - a filled pill over a photograph
   competes with the headline */
.hero__card .kick{display:inline-flex;background:transparent;color:var(--ol-hi,#C9D2A8);
 padding:0;border-radius:0;font-size:11px;letter-spacing:.13em}
.hero__card .kick::before{width:2px;height:13px;background:var(--olive);
 margin-inline-end:2px}

/* 46 · the footer mark goes back to white ---------------------------------- */
/* handled by swapping the file back in the markup */

/* 47 · a simpler footer action --------------------------------------------
   The square block with the travelling highlight was doing too much for what
   is, in the end, one link at the bottom of a page. It becomes a plain olive
   button: the label, a rule, and an arrow that moves on hover. */
.ftr__cta{display:inline-flex;flex-direction:row;align-items:center;justify-content:space-between;
 gap:16px;width:auto;min-width:210px;height:auto;
 padding:14px 18px;border-radius:2px;
 border:1px solid rgba(201,210,168,.42);
 background:transparent;background-image:none;
 margin-inline-start:auto;
 transition:border-color 200ms var(--ease-standard),background 200ms var(--ease-standard)}
.ftr__cta span:first-child{font-family:var(--ft);font-size:13.5px;font-weight:700;
 letter-spacing:.04em;color:#fff;text-align:left;line-height:1.3}
.ftr__cta .ftr__arw{align-self:center;font-size:17px;color:var(--ol-hi,#C9D2A8)}
.ftr__cta:hover{background:rgba(138,150,110,.16);border-color:var(--ol-hi,#C9D2A8);
 transform:none;box-shadow:none}
.ftr__cta:hover .ftr__arw{transform:translateX(4px)}
@media (max-width:900px){.ftr__cta{margin-inline-start:0;width:auto;height:auto}}

/* 42 · the key object was being cropped out ---------------------------------
   The home master is 1531x1452 - nearly square - and the full-bleed hero is
   about 1600x790, a 2:1 box. cover has to throw away 728px of height, and the
   anchor was still at 100%, which keeps the BOTTOM of the frame: the terrace
   and the road, with the Kingdom Centre and the cluster above the crop line.
   The anchor moves up to where the towers actually are. */
@media (min-width:821px){
 body[data-route="home"] .hero__img .slot__img{object-position:62% 58%}
}
@media (min-width:1600px){
 body[data-route="home"] .hero__img .slot__img{object-position:64% 56%}
}

/* The underline under the current route survived: it is not the ::after I
   removed but a border-bottom on a bare `nav a` selector from the original
   stylesheet. Colour is the only marker now, as asked. The footer nav keeps
   its own underline - that one is a hover affordance on a list of links, not
   a current-page marker. */
.hdr nav a,.hdr nav a:hover,.hdr nav a[aria-current]{border-bottom:0}

/* 45 · the sponsorship comparison table ------------------------------------
   The verdict is carried by an icon AND a word, never by colour alone, so it
   survives a monochrome print and a colour-blind reader. The row that closes
   sponsorship authority is marked on the table itself - a rule between 02 and
   03 with the label on it - rather than as a separate caption below. */
.sp__wrap{margin-top:26px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.sp{width:100%;border-collapse:collapse;text-align:left;min-width:640px}
.sp__cap{caption-side:top;text-align:left;padding:0 0 14px;
 font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
 color:var(--olive)}
.sp thead th{padding:0 18px 11px 0;border-bottom:1px solid var(--s200);
 font-size:12px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
 color:var(--s500);white-space:nowrap}
.sp tbody th,.sp tbody td{padding:18px 18px 18px 0;vertical-align:top;
 border-bottom:1px solid #EDEFF2;font-weight:400}
.sp tbody tr:last-child th,.sp tbody tr:last-child td{border-bottom:0}

.sp tbody th{width:34%}
.sp__n{display:inline-flex;align-items:center;justify-content:center;
 width:30px;height:30px;border-radius:50%;margin-inline-end:12px;
 font-size:12px;font-weight:700;letter-spacing:.03em;color:#fff;
 vertical-align:middle}
.sp__r--y .sp__n{background:var(--olive)}
.sp__r--n .sp__n{background:var(--s400)}
.sp__role{display:inline;font-family:var(--fe);font-size:17px;line-height:1.3;
 color:var(--navy);vertical-align:middle}

.sp__v{width:22%;white-space:nowrap}
.sp__ic{display:inline-block;width:22px;height:22px;vertical-align:-5px;margin-inline-end:9px}
.sp__ic svg{width:100%;height:100%;fill:none;stroke-width:1.6;
 stroke-linecap:round;stroke-linejoin:round}
.sp__r--y .sp__ic svg{stroke:var(--olive)}
.sp__r--n .sp__ic svg{stroke:var(--s400)}
.sp__lab{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.sp__r--y .sp__lab{color:var(--olive)}
.sp__r--n .sp__lab{color:var(--s500)}
.sp__d{font-size:14.5px;line-height:1.6;color:var(--s600)}

/* the authority line, on the table where it belongs */
.sp tbody tr:nth-child(2) th,
.sp tbody tr:nth-child(2) td{border-bottom:2px solid var(--olive);padding-bottom:22px}
.sp tbody tr:nth-child(3) th,
.sp tbody tr:nth-child(3) td{padding-top:22px}
.sp tbody tr:nth-child(3) th{position:relative}
.sp tbody tr:nth-child(3) th::before{content:"Sponsorship authority ends here";
 position:absolute;top:-10px;inset-inline-start:0;white-space:nowrap;
 font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
 color:var(--olive);background:#fff;padding-inline-end:12px}

.sp tbody tr{transition:background 200ms var(--ease-standard)}
.sp tbody tr:hover{background:#F7F8F6}

@media (max-width:820px){
 .sp{min-width:560px}
 .sp__role{font-size:16px}
 .sp__d{font-size:14px}
 .sp tbody th,.sp tbody td{padding:15px 14px 15px 0}
}

/* The role names came out in capitals: a generic `th` rule further up the
   sheet sets uppercase for the service-matrix headers, and a row header is
   still a th. Reset for this table only. */
.sp tbody th{text-transform:none;letter-spacing:normal;color:var(--navy)}
.sp tbody th .sp__role{text-transform:none}

/* The pill label came out in light olive on olive - 2.51:1 - on Privacy,
   Terms and Contact, where a page-level rule sets the kicker colour and beats
   a bare .kick. Raised to an element+class selector, with the hero's own
   quieter kicker restated after it so it keeps its treatment. */
p.kick,.lg p.kick,.cx__l p.kick,section p.kick,.w > p.kick{color:#fff}
.band--olive p.kick,.band p.kick{color:#fff}
.hero__card p.kick{color:var(--ol-hi,#C9D2A8);background:transparent}

/* 41 widened the hero copy column to 41vw, which pushed the last two lines of
   copy further right into the brighter part of the photograph - .hero__meta
   measured 2.18:1 on a 1920 screen. The opaque part of the fade moves out to
   match the column it now has to cover. */
@media (min-width:821px){
 .hero__img::after{background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,
     rgba(13,22,39,.96) 34%,
     rgba(13,22,39,.90) 46%,
     rgba(13,22,39,.66) 58%,
     rgba(13,22,39,.34) 70%,
     rgba(13,22,39,.10) 84%,
     rgba(13,22,39,0)   94%),
   linear-gradient(to top,
     rgba(13,22,39,.46) 0%,
     rgba(13,22,39,.16) 26%,
     rgba(13,22,39,0)   52%)}
}

/* The pill kept a translucent white field inside .band sections, which lands
   at 4.38:1 on a mid-tone ground. It is a solid olive chip everywhere except
   on an olive ground, where it inverts to a white chip with olive text. */
.band p.kick{background:var(--olive);color:#fff}
.band p.kick::before{background:#fff}
.band--olive p.kick{background:#fff;color:var(--olive-deep,#3F4A2F)}
.band--olive p.kick::before{background:var(--olive-deep,#3F4A2F)}

/* .hero__meta is the quietest line in the hero and sat at 3.84:1 over the
   brightest part of the wide crop. It lifts to the same sage the kicker uses,
   which measures above 7:1 on the same pixels. */
.hero__meta,.hero__card .hero__meta{color:#C3CBD6}
.hero__meta b,.hero__meta strong{color:#E2E7EE}

/* The per-ground inversion was the wrong idea: an older rule sets the kicker
   to near-white on olive grounds and outranks it, so the chip ended up white
   on white at 1.24:1. The pill is now ONE object in every context - deep olive
   field, white label - which measures 10:1 on its own field wherever it sits.
   Contrast between the chip and the ground behind it is not a requirement;
   contrast between the label and its chip is, and this settles it. */
p.kick,
.band p.kick,.band--olive p.kick,
section.band p.kick,section.band--olive p.kick,
.lg p.kick,.cx__l p.kick,.w > p.kick,
div p.kick,li p.kick{background:var(--olive-deep,#3F4A2F);color:#FFFFFF}
p.kick::before,
.band p.kick::before,.band--olive p.kick::before,
section.band--olive p.kick::before{background:#FFFFFF}
/* the hero is the one exception: no chip over a photograph */
.hero__card p.kick,.hero__card p.kick:where(*){background:transparent;
 color:var(--ol-hi,#C9D2A8)}
.hero__card p.kick::before{background:var(--olive)}

/* --- the home master replaced with the Chairman's wide original ------------
   The file that was installed as the desktop master was a 1531x1452 crop -
   almost square. The hero box is 1.94:1, so cover had to discard well over
   half the frame's height whatever the anchor, and no object-position could
   have shown the scene: the picture simply was not there to show.

   The supplied original is 1774x887, which is 2.00:1 - within two per cent of
   the hero box. It goes in whole. cover now trims a sliver of width and
   nothing else, so the terrace, the seating, the planters, the full cluster
   and the Kingdom Centre are all in the frame at every width.

   With the ratios matched the anchor has almost no work left to do; it sits
   just right of centre so that on the narrower desktop widths, where a little
   width is trimmed, it is trimmed from the empty left rather than off the
   skyline. */
@media (min-width:821px){
 body[data-route="home"] .hero__img .slot__img{object-position:56% 50%}
}
@media (min-width:1600px){
 body[data-route="home"] .hero__img .slot__img{object-position:54% 50%}
}
@media (max-width:820px){
 body[data-route="home"] .hero__img .slot__img{object-position:62% 50%}
}

/* ==========================================================================
   v6.3 — the chip system rebuilt, the fee row four across, and a density pass
   ==========================================================================
   Three instructions, one layer.

   1 · "not illuminated".  Both chip families were carrying an animated
   gradient: the rail chips ran a 9s railSweep across a five-stop olive ramp,
   and the section pill sat on a field that changed under the label.  A moving
   ground is the wrong register for a navigation bar that a reader is trying
   to aim at.  Both are now flat, solid and still.

   2 · "all chips are faulty".  The section pill drew its mark as a floating
   13x2 bar inside the padding box, separated from the label by a flex gap.
   At 11.5px with .13em tracking that bar reads as an em dash welded to the
   first letter - the defect in the Chairman's frame.  A floating mark inside
   a padding box has no way to hold its distance from the text as the type
   scales.  The mark is therefore no longer floating: it is the chip's left
   edge, a 3px rule that cannot drift because it IS the border.

   3 · density.  The page was built on a 92px section rhythm and an 18px lede.
   Every section cleared the fold by a comfortable margin and none of them fit
   inside it.  The rhythm is cut to a 58px maximum, the type scale steps down
   one notch throughout, and non-hero figures are capped against the viewport
   rather than against their own aspect ratio.  Nothing drops below the 12px
   reading floor. */

/* --- the rail: solid olive blocks, no sweep ------------------------------- */
.rail .w{gap:9px;padding-block:8px}
.rail a{position:relative;display:inline-flex;align-items:center;
 padding:8px 16px;border-radius:2px;white-space:nowrap;text-decoration:none;
 font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
 color:#FFFFFF;
 background-color:var(--olive,#4C5536);
 background-image:none;background-size:auto;background-position:0 0;
 border:1px solid rgba(255,255,255,.14);
 box-shadow:none;
 transition:background-color 200ms var(--ease-standard),
            border-color 200ms var(--ease-standard)}
.rail a:hover,.rail a:focus-visible{color:#FFFFFF;
 background-color:var(--olive-deep,#3F4A2F);
 border-color:var(--ol-hi,#C9D2A8);box-shadow:none}
.rail a[aria-current],.rail a.is-here{background-color:var(--olive-deep,#3F4A2F);
 border-color:var(--ol-hi,#C9D2A8)}
@media (prefers-reduced-motion:no-preference){
 .rail a,.rail a:nth-child(n){animation:none}
}
@media (max-width:820px){
 .rail .w{gap:7px;padding-block:7px}
 .rail a{padding:7px 13px;font-size:11px;letter-spacing:.09em}
}

/* --- the section pill: the mark becomes the edge -------------------------- */
p.kick,
.band p.kick,.band--olive p.kick,
section.band p.kick,section.band--olive p.kick,
.lg p.kick,.cx__l p.kick,.w > p.kick,
div p.kick,li p.kick,.kick{
 display:inline-flex;align-items:center;gap:0;
 padding:8px 16px 8px 13px;border-radius:2px;
 border:0;border-left:3px solid var(--ol-hi,#C9D2A8);
 background-color:var(--olive-deep,#3F4A2F);background-image:none;
 color:#FFFFFF;font-size:11.5px;font-weight:700;letter-spacing:.12em;
 text-transform:uppercase;line-height:1.25}
p.kick::before,
.band p.kick::before,.band--olive p.kick::before,
section.band p.kick::before,section.band--olive p.kick::before,
.lg p.kick::before,.cx__l p.kick::before,.w > p.kick::before,
div p.kick::before,li p.kick::before,.kick::before{
 content:none;display:none;animation:none}

/* the hero keeps the quiet variant - no filled block over a photograph */
.hero__card p.kick,.hero__card .kick,.hero__card p.kick:where(*){
 background-color:transparent;background-image:none;
 color:var(--ol-hi,#C9D2A8);
 padding:0 0 0 10px;border-radius:0;
 border:0;border-left:2px solid var(--ol-hi,#C9D2A8);
 font-size:11px;letter-spacing:.13em}
@media (max-width:820px){
 .hero__card p.kick,.hero__card .kick{font-size:11px;letter-spacing:.11em;
  padding-left:9px}
}

/* --- the card top rules go solid too -------------------------------------- */
.card--o,.cbx__c,.band .card,.ef-card{background-image:none}
.cbx__c{border-top:3px solid var(--olive,#4C5536)}
.cbx__c--r{border-top-color:var(--navy,#0D1627)}
@media (prefers-reduced-motion:no-preference){
 .card--o,.cbx__c,.acc__card::before{animation:none}
 .kick::before,.rule{animation:none}
}

/* --- the fee structure, four across --------------------------------------- */
@media (min-width:1180px){
 .cbx{--cbx-bleed:clamp(0px,calc((100vw - var(--c)) / 2 - 32px),180px);
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:calc(100% + 2 * var(--cbx-bleed));
  margin-inline:calc(-1 * var(--cbx-bleed));
  gap:clamp(14px,1.4vw,20px)}
 .cbx + .sm{margin-inline:0}
}
@media (min-width:901px) and (max-width:1179px){
 .cbx{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
 .cbx__c h3{font-size:15px}
 .cbx__c p{font-size:12.5px}
}

/* --- density: the section rhythm ------------------------------------------ */
section{padding-block:clamp(40px,3.4vw,58px)}
.hero + section{padding-top:clamp(44px,3.8vw,64px)}
section > .w > h2{margin-top:12px}
section > .w > .lede{margin-top:12px;max-width:64ch}
@media (max-width:820px){
 section{padding-block:clamp(34px,7vw,46px)}
 .hero + section{padding-top:clamp(34px,7vw,46px)}
}

/* --- density: the type scale ---------------------------------------------- */
h1{font-size:clamp(32px,3.9vw,48px);line-height:1.07}
h2{font-size:clamp(24px,2.3vw,31px);line-height:1.18;letter-spacing:-.011em}
h3{font-size:19px;line-height:1.32}
h4,.dg__h{font-size:16.5px}
.lede{font-size:16px;line-height:1.62}
.sm{font-size:13px;line-height:1.52}
.card h3{font-size:17px;line-height:1.35}
.cbx__c h3{font-size:15.5px;line-height:1.3}
.cbx__c p{font-size:12.8px;line-height:1.55}
.cbx__c{padding:18px 20px 20px}
.cbx{margin-top:20px;gap:16px}
.ef-card h3{font-size:clamp(21px,1.8vw,27px)}
.h2 + .lede,h2 + .lede{margin-top:12px}

/* --- density: figures are capped against the viewport, not their ratio ----- */
.ratio{aspect-ratio:16/9;max-height:min(42svh,400px)}
.xb__im{aspect-ratio:3/2;max-height:min(38svh,340px)}
#lines .g2 .ratio{aspect-ratio:16/9;max-height:min(34svh,300px)}
.gm-map{max-height:min(44svh,420px)}
.ratio > img,.xb__im > img,.gm-map > img{width:100%;height:100%;object-fit:cover}

/* the hero is exempt - it has its own fit contract and passes it */
.hero .ratio,.hero__img .slot__img{max-height:none}

/* ==========================================================================
   v6.3b — the Boardroom AI Forum page, and two defects from v6.3a
   ========================================================================== */

/* --- defect 1 · the rail chips carried a 48px touch floor onto the desktop.
   WCAG 2.5.8 asks 24x24 CSS px; the 44-48px figure is the touch guideline.
   The floor is therefore conditioned on the pointer, not applied to every
   device: 36px where a mouse is driving, 44px wherever a finger is. */
@media (pointer:fine){
 .rail a{min-height:36px}
}
@media (pointer:coarse){
 .rail a{min-height:44px}
}

/* --- defect 2 · --rail-h is set below, from measurement, not from arithmetic.
   The last three times this token was guessed it was wrong by 2 to 18px and
   every hero on the route inherited the error. */

/* --- the Forum stat strip ------------------------------------------------- */
.fst{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
 gap:clamp(12px,1.6vw,24px)}
.fst__c{border-left:3px solid var(--olive,#4C5536);padding:2px 0 2px 14px}
.fst__n{font-family:var(--fd);font-weight:300;font-size:clamp(22px,2.1vw,30px);
 line-height:1.1;color:var(--navy,#0D1627);margin:0;letter-spacing:-.01em}
.fst__l{font-family:var(--ft);font-size:11.5px;font-weight:700;letter-spacing:.12em;
 text-transform:uppercase;color:var(--s600);margin:7px 0 0;line-height:1.3}
.band .fst__n,.band--olive .fst__n{color:#fff}
.band .fst__l,.band--olive .fst__l{color:var(--ol-hi,#C9D2A8)}
@media (max-width:820px){.fst{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media (max-width:420px){.fst{grid-template-columns:1fr}}

/* --- the day/step tag chips ----------------------------------------------- */
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.fchip{display:inline-flex;align-items:center;padding:5px 10px;border-radius:2px;
 font-family:var(--ft);font-size:12px;font-weight:600;letter-spacing:.04em;
 color:var(--olive-deep,#3F4A2F);background:rgba(76,85,54,.12);
 border:1px solid rgba(76,85,54,.24);white-space:nowrap}
.band .fchip,.band--olive .fchip{color:var(--ol-hi,#C9D2A8);
 background:rgba(201,210,168,.12);border-color:rgba(201,210,168,.30)}

/* --- the cohort detail list ----------------------------------------------- */
.fdl{margin:24px 0 0;border-top:1px solid #DFE3E8}
.fdl__r{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr;gap:16px;
 padding:12px 0;border-bottom:1px solid #DFE3E8}
.fdl dt{font-family:var(--ft);font-size:12px;font-weight:700;letter-spacing:.11em;
 text-transform:uppercase;color:var(--s600);margin:0}
.fdl dd{margin:0;font-size:14.5px;line-height:1.5;color:var(--navy,#0D1627)}

/* --- the consent checkbox ------------------------------------------------- */
.field--ck label{display:grid;grid-template-columns:auto 1fr;gap:10px;
 align-items:start;font-size:13.5px;line-height:1.55;color:var(--s600);
 font-family:var(--ft);font-weight:400;letter-spacing:normal;text-transform:none}
.field--ck input[type=checkbox]{width:17px;height:17px;margin:2px 0 0;
 accent-color:var(--olive,#4C5536);flex:0 0 auto}
.field--ck a{color:var(--olive-deep,#3F4A2F);text-underline-offset:3px}

/* --- eight outputs read as four across, two rows --------------------------- */
#boardroom-ai-forum .g4 .card{padding:20px 20px 22px}
#boardroom-ai-forum .g4 .card h3{font-size:16px;line-height:1.32;margin-top:6px}
#boardroom-ai-forum .g4 .card p{font-size:13px;line-height:1.55;margin-top:8px}
#boardroom-ai-forum .g3 .card h3{margin-top:6px}
#boardroom-ai-forum .stp--3{--stp-cols:3}

/* --- the rail token, from measurement -------------------------------------
   Measured on consultancy/ after the chip floor was conditioned on the
   pointer: 53.4px with a mouse, 51.4px on a coarse-pointer phone where the
   rail's own padding drops to 7px and the chip floor rises to 44px. The
   token is rounded up in both bands, because a hero that stops one pixel
   short of the fold is correct and one that overshoots is not. */
body:has(.rail){--rail-h:54px}
@media (max-width:820px){body:has(.rail){--rail-h:60px}}

/* ==========================================================================
   v6.4 — dead space, one interface font, one button, one motion
   ==========================================================================
   Six marks on four screenshots, and they share a cause worth naming.

   The interface furniture - nav, rail, buttons, footer links - was set in
   Fiorina Text, the same serif as the headlines. A serif is a reading face;
   it earns its keep in a 60-character line of prose and loses it in a 12px
   uppercase label, where the serifs close up the counters and the label stops
   being scannable. The headline voice stays serif. Everything a reader AIMS
   at now uses one interface face, and every button is one object in five
   states rather than five buttons that happen to look similar.

   The dead space had two separate causes, and only one was spacing. */

:root{--fui:ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}

/* --- A · the hero void ----------------------------------------------------
   Measured at 1890x810: 342px of empty navy above the kicker, 49px below the
   CTA. The card is the full height of the hero and justifies its content to
   flex-end, so the whole remainder collected at the top. Two fixes, because
   there were two faults: the content is centred, which halves the void, and
   the scrim is rebuilt as an ellipse anchored on the copy instead of a flat
   vertical wall. The wall held the left 34% at 96-97% opacity - the top-left
   was not empty space, it was a photograph painted out. */
.hero__card{justify-content:center}
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   radial-gradient(132% 104% at 19% 56%,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.95) 27%, rgba(13,22,39,.82) 43%,
     rgba(13,22,39,.50) 58%, rgba(13,22,39,.18) 75%, rgba(13,22,39,0) 89%),
   linear-gradient(to top,
     rgba(13,22,39,.44) 0%, rgba(13,22,39,.14) 28%, rgba(13,22,39,0) 56%)}
}

/* --- B · one interface face ------------------------------------------------ */
.hdr nav a,.hdr__login,.hdr .menu,.rail a,.btn,.ftr__nav a,.ftr__h,.ftr__cta,
.ftr__where,.ftr__legal,.ftr__cr,.ftr__mail,.kick,.fst__l,.fchip,.fdl dt,
.cbx__n,.stp__n,.stp__t{font-family:var(--fui)}

/* --- B · the header nav: a chip, not an underline -------------------------
   D-43 ruled out lines below words. The hover is therefore the same object as
   the rail chip and the section pill: a solid olive field behind the label. */
.hdr nav{gap:clamp(4px,.6vw,10px)}
.hdr nav a{display:inline-flex;align-items:center;padding:9px 13px;border-radius:2px;
 font-size:12px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;
 color:#CBD3DE;background-color:transparent;background-image:none;border:0;
 transition:background-color 170ms var(--ease-standard),color 170ms var(--ease-standard)}
.hdr nav a::after,.hdr nav a::before{content:none;display:none}
.hdr nav a:hover,.hdr nav a:focus-visible{background-color:var(--olive-deep,#3F4A2F);color:#FFFFFF}
.hdr nav a[aria-current]{background-color:var(--olive,#4C5536);color:#FFFFFF}
.hdr nav a[aria-current]:hover{background-color:var(--olive-deep,#3F4A2F);color:#FFFFFF}

/* --- C · the rail: same face, and real motion instead of a lit ground ------
   The sweep was light moving across a static object. This is the object
   arriving - one pass, on entry, resting in its finished state so a reader
   with reduced motion or JS off sees the completed rail, never a blank one. */
.rail a{font-family:var(--fui);font-size:11.5px;font-weight:600;letter-spacing:.09em;
 transition:background-color 180ms var(--ease-standard),
            border-color 180ms var(--ease-standard),
            transform 180ms var(--ease-standard)}
.rail a:hover,.rail a:focus-visible{transform:translateY(-1px)}
@media (prefers-reduced-motion:no-preference){
 .rail a{animation:railIn 420ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rail a:nth-child(1){animation-delay:40ms}
 .rail a:nth-child(2){animation-delay:95ms}
 .rail a:nth-child(3){animation-delay:150ms}
 .rail a:nth-child(4){animation-delay:205ms}
 .rail a:nth-child(5){animation-delay:260ms}
 .rail a:nth-child(6){animation-delay:315ms}
 .rail a:nth-child(7){animation-delay:370ms}
}
@keyframes railIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}

/* --- D · one button, five states ------------------------------------------
   Measured before this rule: six buttons on the home page carried four
   paddings (0 24px, 11px 20px, 0px, 12px 22px), three sizes and two grounds,
   and the header primary was a moving gradient. One geometry now, and the
   only thing that varies is the ground. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;
 font-family:var(--fui);font-size:12.5px;font-weight:600;letter-spacing:.06em;
 line-height:1.2;min-height:44px;padding:12px 20px;border-radius:2px;
 background-image:none;box-shadow:none;text-decoration:none;white-space:nowrap;
 transition:background-color 180ms var(--ease-standard),
            border-color 180ms var(--ease-standard),
            color 180ms var(--ease-standard)}
.btn--on,.btn--p{background-color:var(--olive,#4C5536);color:#FFFFFF;
 border:1px solid var(--olive,#4C5536)}
.btn--on:hover,.btn--p:hover,.btn--on:focus-visible,.btn--p:focus-visible{
 background-color:var(--olive-deep,#3F4A2F);border-color:var(--olive-deep,#3F4A2F);
 color:#FFFFFF;transform:none;box-shadow:none}
.btn--ons{background-color:transparent;color:#FFFFFF;
 border:1px solid rgba(201,210,168,.52)}
.btn--ons:hover,.btn--ons:focus-visible{background-color:var(--olive,#4C5536);
 border-color:var(--olive,#4C5536);color:#FFFFFF;transform:none;box-shadow:none}
.btn--s{background-color:transparent;color:var(--olive-deep,#3F4A2F);
 border:1px solid var(--olive,#4C5536)}
.btn--s:hover{background-color:var(--olive,#4C5536);color:#FFFFFF}
.btn--t{background-color:transparent;border:0;padding:0;min-height:0;
 color:var(--olive-deep,#3F4A2F);font-weight:600}
.btn--t:hover{color:var(--olive,#4C5536)}
.band .btn--t,.band--olive .btn--t,.hero__card .btn--t{color:var(--ol-hi,#C9D2A8)}
.hdr .aux .btn--ons{background-color:var(--olive,#4C5536);background-image:none;
 border-color:var(--olive,#4C5536);color:#FFFFFF;min-height:42px;padding:11px 18px;
 box-shadow:none;transform:none}
.hdr .aux .btn--ons:hover{background-color:var(--olive-deep,#3F4A2F);
 border-color:var(--olive-deep,#3F4A2F);box-shadow:none;transform:none}
.hdr__login{font-family:var(--fui);font-size:11.5px;font-weight:600;letter-spacing:.09em;
 min-height:42px;padding:11px 16px;border-color:rgba(201,210,168,.52);background:transparent}
.hdr__login:hover{background:var(--olive,#4C5536);border-color:var(--olive,#4C5536);color:#FFFFFF}

/* --- E · the two-column opener -------------------------------------------
   The right column started 20px below the heading and the left column ran out
   155px before the block did. The columns are re-proportioned so the prose
   column carries more of the line count, and the right column now starts on
   the heading, not below it. */
.sec2{grid-template-columns:minmax(300px,.88fr) 1.12fr;gap:12px 48px}
.sec2 .lede{margin-top:0;max-width:66ch}
.sec2 p:last-child{margin-top:12px;max-width:58ch}

/* --- E · Who We Serve, with the Chairman's photograph ---------------------- */
.wsv{gap:clamp(24px,3vw,48px)}
.wsv .slot{margin:0}
@media (max-width:900px){.wsv{gap:20px}}

/* --- F · the footer: line spacing and the collision ------------------------
   Footer links were on a 52px pitch - a 45px tap target plus 7px - which read
   as a list of four separate decisions rather than one menu. The target floor
   is conditioned on the pointer, as the rail's is. And the enquiries label and
   its button were two children with no gap between them, so at the Chairman's
   width the button's top edge cut through the label. */
.ftr__nav a{display:block;padding:3px 0;line-height:1.45}
.ftr__nav li + li{margin-top:2px}
@media (pointer:coarse){.ftr__nav a{padding:10px 0}.ftr__nav li + li{margin-top:4px}}
.ftr__act{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.ftr__act .ftr__h{margin:0}
.ftr__cta{margin:0;min-height:44px}
.ftr__h{font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.13em}
.ftr__nav a,.ftr__mail,.ftr__legal,.ftr__cr,.ftr__where{font-family:var(--fui)}
.ftr__nav a{font-size:13px;font-weight:400}
.ftr__legal,.ftr__cr{font-size:12px;line-height:1.5}

/* --- G · the Value Case tags, one line each --------------------------------
   The tag row is a flex line of an optional dot cluster plus a label. At 12px
   with .09em tracking, "COMMITMENT BEFORE WORK" needs about 178px and the
   card's content box is narrower than that at four across, so every tag broke
   to two lines and the second line cleared the card's own bottom rule. The
   label now sizes off the card rather than off a fixed number, holds one line,
   and the dot cluster is pulled back into the same optical row. */
.vcf__tag{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;
 margin:14px 0 0;font-family:var(--fui);
 font-size:clamp(10px,.72vw,11.5px);font-weight:700;letter-spacing:.055em;
 line-height:1.3;white-space:nowrap;min-width:0}
.vcf__tag > span:last-child,.vcf__tag > :last-child{min-width:0;overflow:hidden;
 text-overflow:ellipsis;white-space:nowrap}
.vcf__dots{margin-inline-end:0;gap:4px}
.vcf__dots i{width:6px;height:6px}
@media (max-width:1100px){.vcf__tag{font-size:10.5px;letter-spacing:.04em}}
@media (max-width:820px){.vcf__tag{font-size:11.5px;letter-spacing:.07em;white-space:normal}}

/* --- v6.4b · four corrections the measurement found ------------------------
   1 · The rail's entrance never played: v6.3 killed the sweep with
       `.rail a:nth-child(n){animation:none}` at (0,2,1), which outranks a
       bare `.rail a`. The entrance is restated at the same specificity.
   2 · Footer links carried a 44px tap floor onto the desktop, so a four-item
       menu ran 176px tall. Conditioned on the pointer, as the rail's is.
   3 · The fee row bled 180px past the content column on both sides, so the
       cards started left of the heading that introduces them. Four across is
       kept; the bleed is not.
   4 · The section pill and the card top rules keep their solid grounds. */
@media (prefers-reduced-motion:no-preference){
 .rail a,.rail a:nth-child(n){animation:railIn 420ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rail a:nth-child(1){animation-delay:40ms}
 .rail a:nth-child(2){animation-delay:95ms}
 .rail a:nth-child(3){animation-delay:150ms}
 .rail a:nth-child(4){animation-delay:205ms}
 .rail a:nth-child(5){animation-delay:260ms}
 .rail a:nth-child(6){animation-delay:315ms}
 .rail a:nth-child(7){animation-delay:370ms}
}
@media (pointer:fine){
 .ftr__nav a{min-height:0;padding:3px 0}
 .ftr__nav li + li{margin-top:2px}
}
@media (min-width:1180px){
 .cbx{--cbx-bleed:0px;width:100%;margin-inline:0;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.4vw,20px)}
}

/* --- v6.5 · Home and Advisory at 85% --------------------------------------
   The Chairman asked for images and text at 85% on the first two routes. The
   type scale is multiplied through, with one exception that is deliberate:
   the small uppercase labels - pill, rail chip, button, tag - are FLOORED at
   11px rather than taken to 9.8px. Below about 11px an uppercase label with
   letter-spacing stops being read and starts being decoded, and these are the
   elements a reader aims at. Everything that is prose scales as asked.
   The hero is exempt from the image cap: it has its own fit contract. */
body[data-route="home"] h1,body[data-route="advisory"] h1{
 font-size:clamp(27px,3.3vw,41px);line-height:1.08}
body[data-route="home"] h2,body[data-route="advisory"] h2{
 font-size:clamp(20px,1.95vw,26px);line-height:1.2}
body[data-route="home"] h3,body[data-route="advisory"] h3{font-size:16px;line-height:1.34}
body[data-route="home"] h4,body[data-route="advisory"] h4,
body[data-route="home"] .dg__h,body[data-route="advisory"] .dg__h{font-size:14px}
body[data-route="home"] .lede,body[data-route="advisory"] .lede{
 font-size:14px;line-height:1.6}
body[data-route="home"] .sm,body[data-route="advisory"] .sm{font-size:12px;line-height:1.5}
body[data-route="home"] .card h3,body[data-route="advisory"] .card h3{font-size:14.5px}
body[data-route="home"] .card p,body[data-route="advisory"] .card p{font-size:12.5px}
body[data-route="home"] .cbx__c h3,body[data-route="advisory"] .cbx__c h3{font-size:13px}
body[data-route="home"] .cbx__c p,body[data-route="advisory"] .cbx__c p{font-size:12px}
body[data-route="home"] .stp__b p,body[data-route="advisory"] .stp__b p{font-size:12.5px}
body[data-route="home"] .vcf__p,body[data-route="advisory"] .vcf__p{font-size:12.5px}
body[data-route="home"] .vcf__h,body[data-route="advisory"] .vcf__h{font-size:16px}
/* the reading floor holds for the labels a reader aims at */
body[data-route="home"] .kick,body[data-route="advisory"] .kick,
body[data-route="home"] .rail a,body[data-route="advisory"] .rail a,
body[data-route="home"] .btn,body[data-route="advisory"] .btn,
body[data-route="home"] .vcf__tag,body[data-route="advisory"] .vcf__tag{font-size:11px}
body[data-route="home"] .hdr nav a,body[data-route="advisory"] .hdr nav a{font-size:11.5px}
/* rhythm and figures, both at 85% */
body[data-route="home"] section,body[data-route="advisory"] section{
 padding-block:clamp(34px,2.9vw,49px)}
body[data-route="home"] .hero + section,body[data-route="advisory"] .hero + section{
 padding-top:clamp(37px,3.2vw,54px)}
body[data-route="home"] .ratio,body[data-route="advisory"] .ratio{max-height:min(36svh,340px)}
body[data-route="home"] .xb__im,body[data-route="advisory"] .xb__im{max-height:min(32svh,289px)}
body[data-route="home"] #lines .g2 .ratio,body[data-route="advisory"] #lines .g2 .ratio{
 max-height:min(29svh,255px)}
body[data-route="home"] .gm-map,body[data-route="advisory"] .gm-map{max-height:min(37svh,357px)}
body[data-route="home"] .hero .ratio,body[data-route="advisory"] .hero .ratio,
body[data-route="home"] .hero__img .slot__img,body[data-route="advisory"] .hero__img .slot__img{
 max-height:none}

/* --- v6.5 · How We Engage, rebuilt as the Chairman's card infographic ------
   The reference is three white cards, each with a numbered ring, a title, a
   short body and an icon, sitting in front of a coloured tab that carries an
   arrow into the next card. The reference's blue-and-red alternation maps to
   the only two colours this property owns: olive for the outer two, navy for
   the middle. No third accent is introduced, and no gold.

   The tab is a pseudo-element on .eng__tab rather than a background image, so
   the arrow scales with the card and costs nothing to download. */
.eng{list-style:none;margin:0;padding:0;display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,2.6vw,40px)}
.eng__i{position:relative;counter-increment:none;padding:6px 14px 10px 6px}
/* the dashed ghost outline behind the card, as in the reference */
.eng__i::before{content:"";position:absolute;inset:0 22px 0 0;border-radius:16px;
 border:1.5px dashed rgba(76,85,54,.34);pointer-events:none}
.eng__i--b::before{border-color:rgba(13,22,39,.28)}
/* the coloured tab and its arrow */
.eng__tab{position:absolute;top:14px;bottom:14px;right:0;width:74px;border-radius:14px;
 background:var(--olive,#4C5536)}
.eng__i--b .eng__tab{background:var(--navy,#0D1627)}
.eng__tab::after{content:"";position:absolute;top:50%;right:-13px;transform:translateY(-50%);
 border-top:13px solid transparent;border-bottom:13px solid transparent;
 border-left:14px solid var(--olive,#4C5536)}
.eng__i--b .eng__tab::after{border-left-color:var(--navy,#0D1627)}
.eng__i:last-child .eng__tab::after{display:none}
/* the card itself */
.eng__c{position:relative;z-index:1;background:#fff;border-radius:14px;
 padding:clamp(20px,1.8vw,26px) clamp(18px,1.6vw,24px) clamp(18px,1.5vw,22px);
 box-shadow:0 10px 28px rgba(13,22,39,.10),0 2px 6px rgba(13,22,39,.06);
 display:flex;flex-direction:column;align-items:center;text-align:center;height:100%}
.eng__n{display:inline-flex;align-items:center;justify-content:center;
 width:42px;height:42px;border-radius:50%;flex:0 0 auto;
 font-family:var(--fui);font-size:15px;font-weight:700;letter-spacing:.02em;
 color:var(--olive-deep,#3F4A2F);border:1.5px dashed rgba(76,85,54,.55);background:#fff}
.eng__i--b .eng__n{color:var(--navy,#0D1627);border:1.5px solid rgba(13,22,39,.5)}
.eng__c h3{margin:16px 0 0;font-family:var(--fui);font-size:14px;font-weight:700;
 letter-spacing:.11em;text-transform:uppercase;color:var(--navy,#0D1627);line-height:1.3}
.eng__c p{margin:10px 0 0;font-size:12.5px;line-height:1.6;color:var(--s600);max-width:34ch}
.eng__ic{display:block;margin:16px 0 0;width:30px;height:30px}
.eng__ic svg{width:100%;height:100%;display:block;fill:none;
 stroke:var(--olive,#4C5536);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.eng__i--b .eng__ic svg{stroke:var(--navy,#0D1627)}
.eng__t{display:block;margin:14px 0 0;font-family:var(--fui);font-size:11px;font-weight:700;
 letter-spacing:.11em;text-transform:uppercase;color:var(--olive-deep,#3F4A2F)}
.eng__i--b .eng__t{color:var(--navy,#0D1627)}
@media (prefers-reduced-motion:no-preference){
 .eng__c{transition:transform 220ms var(--ease-standard),box-shadow 220ms var(--ease-standard)}
 .eng__i:hover .eng__c{transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(13,22,39,.14),0 3px 8px rgba(13,22,39,.07)}
}
@media (max-width:980px){
 .eng{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .eng__i:last-child{grid-column:1 / -1;max-width:calc(50% - 12px)}
}
@media (max-width:640px){
 .eng{grid-template-columns:1fr;gap:20px}
 .eng__i{padding:6px 0 10px}
 .eng__i::before{inset:0}
 .eng__tab{display:none}
 .eng__i:last-child{grid-column:auto;max-width:none}
}

/* --- v6.5 · the service lines: chip on the image top, rows drawn closer ----
   Each row carried an inline align-items:center, so the copy block was
   optically centred against a 16/9 photograph and the Line chip floated at an
   arbitrary height that changed with the paragraph's line count. Anchoring the
   row to the start puts every chip on the image's top edge, which is the one
   horizontal the eye can actually check. The inline declaration has to be
   beaten with !important - it is on the element, not in a stylesheet. */
#lines .g2{align-items:start!important;
 gap:clamp(20px,2.2vw,32px)!important;
 margin-bottom:clamp(14px,1.5vw,22px)!important}
#lines .g2 > div{padding:0!important}
#lines .g2 .kick{margin:0!important}
#lines .g2 h3{margin-top:12px!important;line-height:1.3}
#lines .g2 .sm{margin-top:8px!important;line-height:1.55}
#lines .g2 .sm + .sm{margin-top:10px!important}
@media (max-width:700px){
 #lines .g2{gap:14px!important;margin-bottom:26px!important}
}

/* --- v6.5 · a mark at every milestone -------------------------------------
   The matrix drew one bar across a colspan, which says "somewhere in here"
   and leaves the reader to guess which stage a line is actually engaged at.
   Every stage now owns its own cell and carries its own mark, connected by a
   track that starts and stops at the first and last covered stage. A filled
   mark is engagement within a stage; an open mark on a dashed track is the
   line that runs alongside every stage - the distinction the note makes. */
.mx__s{position:relative;height:38px;padding:0}
.mx__s.is-on::before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;
 margin-top:-1px;background:var(--olive,#4C5536);opacity:.55}
.mx__s.is-first::before{left:50%}
.mx__s.is-last::before{right:50%}
.mx__d{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;
 width:11px;height:11px;border-radius:50%;background:var(--olive,#4C5536);
 box-shadow:0 0 0 3px #fff}
/* the alongside lines: an open mark on a dashed track */
.mx--a .mx__s.is-on::before{background:none;opacity:1;height:0;
 border-top:2px dashed rgba(76,85,54,.55)}
.mx--a .mx__d{background:#fff;border:2px solid var(--olive,#4C5536)}
/* the flagship row keeps its tint, so the marks sit on it, not on white */
.mx--f .mx__d{box-shadow:0 0 0 3px var(--mx-f-bg,#F4F5F0)}
.mx tbody tr:hover .mx__d{background:var(--olive-deep,#3F4A2F)}
.mx--a tbody tr:hover .mx__d,.mx--a:hover .mx__d{background:#fff}
@media (max-width:820px){
 .mx__s{height:34px}
 .mx__d{width:9px;height:9px}
}

/* ==========================================================================
   v6.6 — rulings D-139 to D-142, and the EDGE Capital band
   ========================================================================== */

/* --- the EDGE Capital band: the action on the right, as a button ------------
   The link was a text button sitting under two lines of prose, in the prose's
   own colour. A cross-property handoff deserves an object of its own. */
.ecb{padding-block:clamp(26px,3vw,40px)}
.ecb__w{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
 gap:clamp(20px,3vw,48px)}
.ecb__p{margin:0;max-width:84ch}
.ecb__btn{justify-self:end;white-space:nowrap}
.ecb__arw{display:inline-block;transition:transform 180ms var(--ease-standard)}
.ecb__btn:hover .ecb__arw{transform:translateX(3px)}
@media (max-width:820px){
 .ecb__w{grid-template-columns:1fr;gap:16px}
 .ecb__btn{justify-self:start}
}

/* --- D-141 (b): the Forum's day and format lists use the same cards ---------
   Six cards run two rows of three on the desktop; the arrow on the third card
   of each row is suppressed so the rows do not point off the edge. On the dark
   Programme band the ghost outline and the tabs read against navy. */
.eng--six .eng__i:nth-child(3n) .eng__tab::after{display:none}
.band .eng__i::before{border-color:rgba(201,210,168,.30)}
.band .eng__i--b .eng__tab{background:var(--olive-deep,#3F4A2F)}
.band .eng__i--b .eng__tab::after{border-left-color:var(--olive-deep,#3F4A2F)}
.band .eng__i--b .eng__n{color:var(--olive-deep,#3F4A2F);border-color:rgba(63,74,47,.55)}
.band .eng__i--b .eng__ic svg{stroke:var(--olive-deep,#3F4A2F)}
.band .eng__i--b .eng__t{color:var(--olive-deep,#3F4A2F)}
@media (max-width:980px){
 .eng--six .eng__i:last-child{grid-column:auto;max-width:none}
 .eng--six .eng__i:nth-child(2n) .eng__tab::after{display:none}
 .eng--six .eng__i:nth-child(3n) .eng__tab::after{display:block}
}
@media (max-width:640px){.eng--six .eng__tab::after{display:none}}

/* --- D-142 (b): the 85% scale on every route ------------------------------
   Restated without the route guard so Forums, the Forum page, Contact and the
   legal routes read at the same size as Home and Advisory. The 11px label
   floor from D-139 (a) holds everywhere. */
h1{font-size:clamp(27px,3.3vw,41px);line-height:1.08}
h2{font-size:clamp(20px,1.95vw,26px);line-height:1.2}
h3{font-size:16px;line-height:1.34}
h4,.dg__h{font-size:14px}
.lede{font-size:14px;line-height:1.6}
.sm{font-size:12px;line-height:1.5}
.card h3{font-size:14.5px}
.card p{font-size:12.5px}
.cbx__c h3{font-size:13px}
.cbx__c p{font-size:12px}
.stp__b p,.eng__c p{font-size:12.5px}
.vcf__p{font-size:12.5px}
.vcf__h{font-size:16px}
.kick,.rail a,.btn,.vcf__tag,.eng__t,.fst__l{font-size:11px}
.hdr nav a{font-size:11.5px}
section{padding-block:clamp(34px,2.9vw,49px)}
.hero + section{padding-top:clamp(37px,3.2vw,54px)}
.ratio{max-height:min(36svh,340px)}
.xb__im{max-height:min(32svh,289px)}
#lines .g2 .ratio{max-height:min(29svh,255px)}
.gm-map{max-height:min(37svh,357px)}
.hero .ratio,.hero__img .slot__img{max-height:none}
.fst__n{font-size:clamp(19px,1.8vw,26px)}
.fdl dd{font-size:13px}
.eng__c h3{font-size:12.5px}
.fchip{font-size:11px}

/* --- the footer: hover with intent, and an arrival ------------------------
   Links lifted to white with an underline on hover - the pattern D-43 retired
   in the header. The footer follows the same ruling: the hover is a colour
   lift and a 4px slide, with a short olive tick growing in from the LEFT of
   the word, never a line beneath it. The button fills solid on hover, as every
   other button on the property now does. On arrival the four columns settle
   in sequence, one pass, resting in their finished state. */
.ftr__nav a{position:relative;display:inline-block;color:#C9D0DA;border-bottom:0!important;
 transition:color 160ms var(--ease-standard),transform 240ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.ftr__nav a::before{content:"";position:absolute;left:-13px;top:50%;width:7px;height:2px;margin-top:-1px;
 background:var(--ol-hi,#C9D2A8);transform:scaleX(0);transform-origin:right center;
 transition:transform 240ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.ftr__nav a:hover,.ftr__nav a:focus-visible{color:var(--ol-hi,#C9D2A8);transform:translateX(5px)}
.ftr__nav a:hover::before,.ftr__nav a:focus-visible::before{transform:scaleX(1)}
.ftr__mail{position:relative;display:inline-block;color:#C9D0DA;text-decoration:none;
 transition:color 160ms var(--ease-standard)}
.ftr__mail::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;
 background:var(--ol-hi,#C9D2A8);transform:scaleX(0);transform-origin:left center;
 transition:transform 260ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.ftr__mail:hover{color:#fff}
.ftr__mail:hover::after{transform:scaleX(1)}
.ftr__brand{display:inline-block;transition:opacity 160ms var(--ease-standard)}
.ftr__brand:hover{opacity:.82}
footer .ftr__cta,footer .ftr__cta span{font-family:var(--fui)}
footer .ftr__cta{font-size:12.5px;font-weight:600;letter-spacing:.06em;color:#fff;
 border:1px solid rgba(201,210,168,.52);background:transparent;
 transition:background-color 180ms var(--ease-standard),border-color 180ms var(--ease-standard),
            color 180ms var(--ease-standard)}
footer .ftr__cta:hover,footer .ftr__cta:focus-visible{background:var(--olive,#4C5536);
 border-color:var(--olive,#4C5536);color:#fff;box-shadow:none}
footer .ftr__cta .ftr__arw{transition:transform 240ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
footer .ftr__cta:hover .ftr__arw{transform:translateX(5px)}
@media (prefers-reduced-motion:no-preference){
 .rv-on footer [data-rv].is-in .ftr__id,
 .rv-on footer [data-rv].is-in .ftr__col,
 .rv-on footer [data-rv].is-in .ftr__act,
 .rv-on footer [data-rv].is-in .ftr__base{
  animation:ftrUp 560ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rv-on footer [data-rv].is-in .ftr__col:nth-child(1){animation-delay:90ms}
 .rv-on footer [data-rv].is-in .ftr__col:nth-child(2){animation-delay:170ms}
 .rv-on footer [data-rv].is-in .ftr__col:nth-child(3){animation-delay:250ms}
 .rv-on footer [data-rv].is-in .ftr__act{animation-delay:330ms}
 .rv-on footer [data-rv].is-in .ftr__base{animation-delay:440ms}
 .rv-on footer [data-rv].is-in .ftr__where{transform-origin:left center;
  animation:ftrRule 700ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both;animation-delay:260ms}
}
@keyframes ftrUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes ftrRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ==========================================================================
   v6.6b — the rail chips, the framework fit, the cycle fold, Value Case motion
   ========================================================================== */

/* --- the rail: centred, round-ended, white; olive on hover ----------------- */
.rail .w{justify-content:center}
.rail a,.rail a:nth-child(n){
 border-radius:999px;padding:9px 18px;
 background-color:#FFFFFF;color:var(--navy,#0D1627);
 border:1px solid rgba(255,255,255,.9);
 transition:background-color 180ms var(--ease-standard),color 180ms var(--ease-standard),
            border-color 180ms var(--ease-standard),transform 180ms var(--ease-standard)}
.rail a:hover,.rail a:focus-visible,.rail a[aria-current],.rail a.is-here{
 background-color:var(--olive,#4C5536);color:#FFFFFF;border-color:var(--olive,#4C5536)}
.rail a:hover,.rail a:focus-visible{transform:translateY(-1px)}
@media (max-width:820px){
 .rail .w{justify-content:flex-start}
 .rail a{padding:8px 14px}
}

/* --- the framework and the cycle each hold one screen ---------------------
   The rail is sticky, so a jump lands the section's top under it. Every
   rail target now carries a scroll margin equal to header + rail, and the two
   sections the Chairman named are sized against the space that leaves:
   100svh minus 145px. The framework cards lose the 72px initial and the 34px
   padding they were carrying; the cycle diagram is capped against the
   viewport instead of against its own 900px width. */
#value-case,#framework,#cycle,#engage,#lines,#matrix,#commercial{
 scroll-margin-top:calc(var(--hdr-h,92px) + var(--rail-h,54px))}
#framework{padding-block:clamp(22px,2.4vw,34px)}
#framework > .w > h2{margin-top:8px}
#framework > .w > .lede{margin-top:8px}
#framework .ef--flat{margin-top:18px}
#framework .ef-card{padding:clamp(16px,1.5vw,22px) clamp(16px,1.4vw,20px) clamp(14px,1.3vw,18px)}
#framework .ef-l{font-size:clamp(40px,3.2vw,48px);line-height:1}
#framework .ef-card h3{font-size:15px;margin-top:8px}
#framework .ef-card p{font-size:12.5px;line-height:1.5;margin-top:6px}
#framework .ef-sub,#framework .ef-card .sm{font-size:11.5px}
/* the cycle is a continuation: no reintroduction, no top rhythm of its own */
.band--cont{padding-top:0}
#cycle .ef--flat{margin-top:0}
#cycle .ef-cycle{padding:14px 20px 6px;
 max-height:calc(100svh - var(--hdr-h,92px) - var(--rail-h,54px) - 250px);overflow:hidden}
#cycle .cy-svg{max-width:min(720px,100%);
 max-height:calc(100svh - var(--hdr-h,92px) - var(--rail-h,54px) - 270px)}
#cycle .efg{margin-top:16px;padding-top:16px}
#cycle .efg__t{font-size:12.5px}
#cycle .efg__l{font-size:11px}
#cycle .ef-attr{margin-top:12px;font-size:11px}
#cycle{padding-bottom:clamp(20px,2.2vw,30px)}

/* --- the Value Case: more motion ------------------------------------------
   The exhibit already rose in sequence. Now the connectors draw AFTER the
   card they leave has landed, the rule under each header draws in, the dots
   on the gates card light one after another, the tags fade up last, and the
   outcome card lifts slightly above its row once everything has settled.
   Every keyframe fills both ways off .is-in, so the resting state is the
   finished exhibit for anyone without motion or without JS. */
@media (prefers-reduced-motion:no-preference){
 .is-in .vcf__hd{position:relative}
 .is-in .vcf__hd::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:currentColor;opacity:.28;transform:scaleX(0);transform-origin:left center;
  animation:vcfRule 520ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__c:nth-child(1) .vcf__hd::after{animation-delay:380ms}
 .is-in .vcf__c:nth-child(2) .vcf__hd::after{animation-delay:500ms}
 .is-in .vcf__c:nth-child(3) .vcf__hd::after{animation-delay:620ms}
 .is-in .vcf__c:nth-child(4) .vcf__hd::after{animation-delay:740ms}
 .is-in .vcf__h{animation:vcfUp 480ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__p{animation:vcfUp 480ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__tag{animation:vcfUp 480ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__c:nth-child(1) .vcf__h{animation-delay:300ms}
 .is-in .vcf__c:nth-child(2) .vcf__h{animation-delay:420ms}
 .is-in .vcf__c:nth-child(3) .vcf__h{animation-delay:540ms}
 .is-in .vcf__c:nth-child(4) .vcf__h{animation-delay:660ms}
 .is-in .vcf__c:nth-child(1) .vcf__p{animation-delay:380ms}
 .is-in .vcf__c:nth-child(2) .vcf__p{animation-delay:500ms}
 .is-in .vcf__c:nth-child(3) .vcf__p{animation-delay:620ms}
 .is-in .vcf__c:nth-child(4) .vcf__p{animation-delay:740ms}
 .is-in .vcf__c:nth-child(1) .vcf__tag{animation-delay:520ms}
 .is-in .vcf__c:nth-child(2) .vcf__tag{animation-delay:640ms}
 .is-in .vcf__c:nth-child(3) .vcf__tag{animation-delay:760ms}
 .is-in .vcf__c:nth-child(4) .vcf__tag{animation-delay:880ms}
 .is-in .vcf__c:nth-child(1)::after{animation-delay:560ms}
 .is-in .vcf__c:nth-child(2)::after{animation-delay:680ms}
 .is-in .vcf__c:nth-child(3)::after{animation-delay:800ms}
 .is-in .vcf__dots i{animation:vcfDot 420ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .vcf__dots i:nth-child(1){animation-delay:820ms}
 .is-in .vcf__dots i:nth-child(2){animation-delay:920ms}
 .is-in .vcf__dots i:nth-child(3){animation-delay:1020ms}
 .is-in .vcf__c--e{animation:vcfRise 620ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both,
   vcfLift 700ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) 1100ms both}
 .is-in .vcf__c--e .vcf__ic svg{animation:vcfTick 700ms var(--ease-standard) 900ms both}
 .vcf__c:hover{transform:translateY(-4px)}
 .vcf__c:hover .vcf__ic{transform:scale(1.08)}
 .vcf__ic{transition:transform 220ms var(--ease-standard)}
}
@keyframes vcfRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vcfUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes vcfDot{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
@keyframes vcfLift{from{transform:none}to{transform:translateY(-6px)}}
@keyframes vcfTick{from{stroke-dasharray:60;stroke-dashoffset:60}to{stroke-dasharray:60;stroke-dashoffset:0}}

/* --- the cycle: sized by width so the diagram scales instead of clipping ---
   An SVG with a viewBox sets its height from its width; a max-height on it
   clips rather than scales. The width is therefore derived from the vertical
   budget: the fold, less the bars, less the engines grid and the attribution.
   The diagram's ratio is 660:548, so width = budget x 1.2. */
#cycle{padding-top:0}
#cycle .ef-cycle{max-height:none;overflow:visible;padding:10px 16px 4px}
#cycle .cy-svg{max-height:none;height:auto;
 width:min(720px,100%,calc((100svh - var(--hdr-h,92px) - var(--rail-h,54px) - 300px) * 1.2))}
#cycle .efg{margin-top:12px;padding-top:12px}
#cycle .efg__h,#cycle .efg__f{line-height:1.3}
#cycle .efg__l{gap:10px}
#cycle .efg__n{font-size:11px}
#cycle .efg__t{font-size:12px;line-height:1.35}
#cycle .ef-attr{margin-top:8px}
@media (max-width:820px){
 #cycle .cy-svg{width:100%}
 #cycle .ef-cycle{overflow:visible}
}

/* the gates block is gone; the diagram's vertical budget is the fold less
   the bars, the attribution line and the section's own padding */
#cycle .cy-svg{width:min(760px,100%,calc((100svh - var(--hdr-h,92px) - var(--rail-h,54px) - 96px) * 1.2))}
#cycle .ef-attr{margin-top:10px;text-align:center}

/* --- the service lines: the photograph uncropped, the copy distributed -----
   The frames are 3:2 originals. A 16/9 box under a 29svh cap was discarding
   a third of each one. The box now takes the photograph's own ratio and no
   height cap, so nothing is cropped; the copy column stretches to the same
   height and distributes its three parts across it - chip on the top edge,
   title and body in the middle, the duration on the bottom edge. */
#lines .g2 .ratio,#lines .g2 .slot{aspect-ratio:3/2!important;max-height:none!important}
#lines .g2 .slot__img{object-fit:cover;width:100%;height:100%}
#lines .g2{align-items:stretch!important}
#lines .g2 > div:not(.slot){display:flex;flex-direction:column;justify-content:space-between;
 min-height:100%;padding:0!important}
#lines .g2 > div:not(.slot) > .kick{margin:0!important;align-self:flex-start}
#lines .g2 > div:not(.slot) > h3{margin-top:auto!important;padding-top:14px}
#lines .g2 > div:not(.slot) > .sm{margin-top:8px!important}
#lines .g2 > div:not(.slot) > .sm:last-child{margin-top:auto!important;padding-top:12px}
@media (max-width:700px){
 #lines .g2 > div:not(.slot){min-height:0}
 #lines .g2 > div:not(.slot) > h3,#lines .g2 > div:not(.slot) > .sm:last-child{margin-top:12px!important;padding-top:0}
}

/* --- the matrix: the tracks draw, the marks land -----------------------
   Row by row, in reading order: each track grows from its first covered
   stage, and each mark lands on the track as it reaches it. The alongside
   rows keep their open marks and dashed tracks. One pass, resting finished. */
@media (prefers-reduced-motion:no-preference){
 .is-in .mx__s.is-on::before{transform-origin:left center;
  animation:mxTrack 520ms var(--ease-standard) both}
 .is-in .mx__d{animation:mxMark 380ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .is-in .mx tbody tr:nth-child(1) .mx__s::before{animation-delay:120ms}
 .is-in .mx tbody tr:nth-child(2) .mx__s::before{animation-delay:260ms}
 .is-in .mx tbody tr:nth-child(3) .mx__s::before{animation-delay:400ms}
 .is-in .mx tbody tr:nth-child(4) .mx__s::before{animation-delay:540ms}
 .is-in .mx tbody tr:nth-child(5) .mx__s::before{animation-delay:680ms}
 .is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(2) .mx__d{animation-delay:140ms}
 .is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(3) .mx__d{animation-delay:260ms}
 .is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(4) .mx__d{animation-delay:380ms}
 .is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(5) .mx__d{animation-delay:500ms}
 .is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(2) .mx__d{animation-delay:280ms}
 .is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(3) .mx__d{animation-delay:400ms}
 .is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(4) .mx__d{animation-delay:520ms}
 .is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(5) .mx__d{animation-delay:640ms}
 .is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(3) .mx__d{animation-delay:420ms}
 .is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(4) .mx__d{animation-delay:540ms}
 .is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(4) .mx__d{animation-delay:560ms}
 .is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(5) .mx__d{animation-delay:680ms}
 .is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(2) .mx__d{animation-delay:700ms}
 .is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(3) .mx__d{animation-delay:820ms}
 .is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(4) .mx__d{animation-delay:940ms}
 .is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(5) .mx__d{animation-delay:1060ms}
 .is-in .mx tbody tr{animation:mxRow 420ms var(--ease-standard) both}
 .is-in .mx tbody tr:nth-child(2){animation-delay:100ms}
 .is-in .mx tbody tr:nth-child(3){animation-delay:200ms}
 .is-in .mx tbody tr:nth-child(4){animation-delay:300ms}
 .is-in .mx tbody tr:nth-child(5){animation-delay:400ms}
 .mx__d{transition:transform 180ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
 .mx tbody tr:hover .mx__d{transform:translate(-50%,-50%) scale(1.35)}
}
@keyframes mxTrack{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes mxMark{from{opacity:0;transform:translate(-50%,-50%) scale(.2)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes mxRow{from{opacity:0}to{opacity:1}}

/* --- the scrim, pulled back to the copy column ----------------------------
   The ellipse in v6.4 had a 132% horizontal radius: its 50% stop landed at
   three quarters of the hero's width, over the people and the table. That is
   what "so dark" was pointing at. The radius is now 42% of the width, so the
   scrim is at 0.95 behind the copy, 0.6 at 40% and gone by 56% - the right
   half of every photograph is the photograph. Verified in pixels below. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   radial-gradient(42% 92% at 19% 56%,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.95) 26%, rgba(13,22,39,.84) 42%,
     rgba(13,22,39,.52) 58%, rgba(13,22,39,.18) 75%, rgba(13,22,39,0) 90%),
   linear-gradient(90deg, rgba(13,22,39,.55) 0%, rgba(13,22,39,.30) 22%, rgba(13,22,39,0) 44%),
   linear-gradient(to top, rgba(13,22,39,.36) 0%, rgba(13,22,39,.10) 26%, rgba(13,22,39,0) 50%)}
}

/* --- the scrim, third pass: measured, not guessed ----------------------------
   Pass two pulled the ellipse back to 42% and the pixel harness failed 28
   text boxes, worst 1.02:1 - the headline's right end was sitting on a window
   highlight at 0.6 opacity. The copy column runs to 44% of the hero's width,
   so the scrim must hold 0.95 to 44% and then fall fast. It now does: 0.95
   at 44%, 0.78 at 51%, 0.40 at 60%, 0.10 at 72%, gone at 82%. The right half
   is clean, the copy is covered, and the bottom fade is lighter than before. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.96) 30%, rgba(13,22,39,.95) 44%,
     rgba(13,22,39,.78) 51%, rgba(13,22,39,.40) 60%, rgba(13,22,39,.10) 72%,
     rgba(13,22,39,0) 82%),
   linear-gradient(to top, rgba(13,22,39,.34) 0%, rgba(13,22,39,.08) 24%, rgba(13,22,39,0) 46%)}
}
/* the three boxes still failing were the widest lines - the home meta strip
   and the Forum lede - running past the plateau. The copy is held inside it. */
@media (min-width:821px){
 .hero__card .lede{max-width:min(58ch,38vw)}
 .hero__meta{max-width:min(64ch,40vw)}
 .hero__card h1{max-width:min(16ch,42vw)}
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.96) 30%, rgba(13,22,39,.95) 46%,
     rgba(13,22,39,.80) 52%, rgba(13,22,39,.42) 60%, rgba(13,22,39,.10) 72%,
     rgba(13,22,39,0) 82%),
   linear-gradient(to top, rgba(13,22,39,.34) 0%, rgba(13,22,39,.08) 24%, rgba(13,22,39,0) 46%)}
}
@media (min-width:821px){
 .hero__meta,.hero__meta *{color:#FFFFFF}
 .hero__meta{max-width:min(56ch,36vw)}
}

/* --- the hero card sits on the left, inside the scrim's plateau -------------
   Measured at 1920: the card is a centred 1180px column, so its content began
   at 20% of the hero and the meta strip ran to 57%. The scrim's plateau ends
   at 46% - the copy and the scrim were aligned only on a 1440 screen. The
   card is now anchored to the hero's left gutter and held to 46% of the
   hero's width, so the copy is inside the plateau at every size and the
   people on the right are never under it. Copy widths go back to ch units. */
@media (min-width:821px){
 .hero__card{margin:0;max-width:none;width:min(46%,760px);
  padding-inline:clamp(24px,4.2vw,80px) 0}
 .hero__card h1{max-width:none}
 .hero__card .lede{max-width:56ch}
 .hero__meta{max-width:60ch}
 .hero__card .hero__meta,.hero__card .hero__meta *{color:#FFFFFF}
}
@media (min-width:821px) and (max-width:1179px){
 .hero__card{width:min(52%,620px)}
}

/* ==========================================================================
   v6.7 — the contact intake in the EXM pattern, the nav, the programme cards
   ========================================================================== */

/* --- two-up fields, chip selection, the optional tag ------------------------ */
.cx__form--grid .f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
@media (max-width:640px){.cx__form--grid .f2{grid-template-columns:1fr}}
.cx__form--grid .field{margin-top:14px}
.cx__form--grid .f2 .field{margin-top:14px}
.cx__form--grid label,.cx__form--grid legend{font-family:var(--fui);font-size:12px;font-weight:700;
 letter-spacing:.02em;color:var(--navy,#0D1627)}
.cx__form--grid .opt{font-weight:400;color:var(--s600);letter-spacing:0}
.cx__form--grid input[type=text],.cx__form--grid input[type=email],.cx__form--grid input[type=tel],
.cx__form--grid input[type=url],.cx__form--grid select,.cx__form--grid textarea{
 font-family:var(--fui);font-size:13.5px;border:1px solid #1F2A3A;border-radius:2px;
 padding:10px 12px;background:#fff;color:var(--navy,#0D1627);width:100%;
 transition:border-color 160ms var(--ease-standard),box-shadow 160ms var(--ease-standard)}
.cx__form--grid input:focus-visible,.cx__form--grid select:focus-visible,.cx__form--grid textarea:focus-visible{
 outline:0;border-color:var(--olive,#4C5536);box-shadow:0 0 0 3px rgba(76,85,54,.18)}
.field--chips{border:0;padding:0;margin:16px 0 0}
.field--chips legend{padding:0;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:34px;padding:7px 13px;border-radius:2px;
 border:1px solid #1F2A3A;background:#fff;color:var(--navy,#0D1627);
 font-family:var(--fui);font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.2;
 transition:background-color 160ms var(--ease-standard),color 160ms var(--ease-standard),
            border-color 160ms var(--ease-standard),transform 160ms var(--ease-standard)}
.chip:hover span{border-color:var(--olive,#4C5536);transform:translateY(-1px)}
.chip input:checked + span{background:var(--olive,#4C5536);border-color:var(--olive,#4C5536);color:#fff}
.chip input:checked + span::before{content:"";width:6px;height:10px;margin:0 9px 2px 0;
 border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.chip input:focus-visible + span{box-shadow:0 0 0 3px rgba(76,85,54,.28)}
.cx__form--grid .btn--p{width:auto;min-width:240px;margin-top:6px;gap:12px}
.cx__form--grid .btn--p .ecb__arw{transition:transform 180ms var(--ease-standard)}
.cx__form--grid .btn--p:hover .ecb__arw{transform:translateX(3px)}
.cx__form--grid .field--ck label{font-weight:400;font-size:12.5px;letter-spacing:0}

/* --- the programme cards: two-line titles, four-line bodies -----------------
   The Chairman asked for the three day cards to hold a two-line title and a
   four-line body so the tags land on one row. A minimum height on each slot
   does it without touching the copy. */
#boardroom-ai-forum .eng--three .eng__c h3{min-height:calc(2 * 1.3em);display:flex;align-items:flex-end;justify-content:center}
#boardroom-ai-forum .eng--three .eng__c p{min-height:calc(4 * 1.6em)}
#boardroom-ai-forum .eng--six .eng__c h3{min-height:calc(2 * 1.3em);display:flex;align-items:flex-end;justify-content:center}
#boardroom-ai-forum .eng--six .eng__c p{min-height:calc(2 * 1.6em)}
/* five items in the bar: the gap tightens one step at the widths it needs to */
@media (min-width:901px) and (max-width:1240px){
 .hdr nav{gap:2px}
 .hdr nav a{padding:9px 9px;font-size:11px;letter-spacing:.08em}
 .hdr .aux .btn--ons{padding:10px 14px}
 .hdr__login{padding:10px 12px}
}

/* --- the sign-in, now a sign-in ------------------------------------------ */
.acc__card--form h1{font-size:clamp(22px,2vw,28px)}
.acc__form{margin-top:18px}
.acc__form .field{margin-top:12px}
.acc__form .btn--p{margin-top:16px;width:100%;justify-content:center}
.acc__l--tight{margin-top:20px;padding-top:16px;border-top:1px solid #E3E6EA}
.acc__l--tight li{font-size:12.5px}
.acc__l--tight a{color:var(--olive-deep,#3F4A2F);text-underline-offset:3px}
.chip input{z-index:2}
/* the consent line is one paragraph with the box hung in its margin - a grid
   split its links into cells */
.field--ck label,.cx__form--grid .field--ck label{display:block;position:relative;padding-left:28px;
 grid-template-columns:none;gap:0;font-size:12.5px;line-height:1.55}
.field--ck input[type=checkbox]{position:absolute;left:0;top:2px;margin:0}

/* --- the hero fade, graded on a curve -------------------------------------
   The previous scrim was five stops placed by hand: 0.95, 0.78, 0.42, 0.10, 0.
   Between any two of them the alpha changed linearly and the eye reads the
   knee at each one as a band. This one is generated from a smootherstep
   curve - fifteen stops with zero slope at both ends - so the fall from the
   copy column into the photograph has no knee to see. The plateau still ends
   at 42% and the scrim is gone by 88%; the copy contract is re-measured
   below. Two soft vertical blends, on the same curve, seat the photograph
   under the header and above the fold. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg, rgba(13,22,39,.97) 0%, rgba(13,22,39,.96) 26%, rgba(13,22,39,0.950) 42.0%, rgba(13,22,39,0.947) 45.3%, rgba(13,22,39,0.928) 48.6%, rgba(13,22,39,0.884) 51.9%, rgba(13,22,39,0.813) 55.1%, rgba(13,22,39,0.716) 58.4%, rgba(13,22,39,0.601) 61.7%, rgba(13,22,39,0.475) 65.0%, rgba(13,22,39,0.349) 68.3%, rgba(13,22,39,0.234) 71.6%, rgba(13,22,39,0.137) 74.9%, rgba(13,22,39,0.066) 78.1%, rgba(13,22,39,0.022) 81.4%, rgba(13,22,39,0.003) 84.7%, rgba(13,22,39,0.000) 88.0%),
   linear-gradient(to bottom, rgba(13,22,39,0.280) 0.0%, rgba(13,22,39,0.264) 2.8%, rgba(13,22,39,0.191) 5.6%, rgba(13,22,39,0.089) 8.4%, rgba(13,22,39,0.016) 11.2%, rgba(13,22,39,0.000) 14.0%),
   linear-gradient(to top, rgba(13,22,39,0.300) 0.0%, rgba(13,22,39,0.293) 4.3%, rgba(13,22,39,0.257) 8.6%, rgba(13,22,39,0.190) 12.9%, rgba(13,22,39,0.110) 17.1%, rgba(13,22,39,0.043) 21.4%, rgba(13,22,39,0.007) 25.7%, rgba(13,22,39,0.000) 30.0%)}
}

/* --- the header and the rail, one quiet system ------------------------------
   Two chip languages were stacked: a filled olive block for the active nav
   item in the header, and white pills in the rail beneath it. Read together
   they were noise. The header goes back to type - colour carries state, no
   block, no line - and the rail keeps the white pills the Chairman asked for,
   but lighter: 30px tall, tighter, on a band one shade up from the header so
   the pills sit rather than float. The header drops to 84px. */
:root{--hdr-h:84px}
.hdr .w{height:84px}
.hdr img{height:44px}
.hdr nav{gap:clamp(8px,1.2vw,22px)}
.hdr nav a,.hdr nav a[aria-current],.hdr nav a:hover,.hdr nav a:focus-visible,
.hdr nav a[aria-current]:hover{background-color:transparent;padding:8px 2px}
.hdr nav a{color:#C9D0DA;font-size:11.5px;font-weight:600;letter-spacing:.11em}
.hdr nav a:hover,.hdr nav a:focus-visible{color:#FFFFFF}
.hdr nav a[aria-current]{color:var(--ol-hi,#C9D2A8)}
.hdr__login{border-color:rgba(201,210,168,.38);color:#E3E8EF}
.hdr .aux{gap:10px}
@media (max-width:900px){:root{--hdr-h:72px}.hdr .w{height:72px}.hdr img{height:38px}}

.rail{background:#121E33;border-top:1px solid rgba(255,255,255,.06);
 border-bottom:1px solid rgba(255,255,255,.08)}
.rail .w{gap:6px;padding-block:8px}
.rail a,.rail a:nth-child(n){min-height:30px;padding:0 14px;font-size:11px;font-weight:600;
 letter-spacing:.08em;border:1px solid rgba(255,255,255,.55);background-color:#FFFFFF;
 color:var(--navy,#0D1627)}
@media (pointer:fine){.rail a{min-height:30px}}
@media (pointer:coarse){.rail a{min-height:40px}}
.rail a:hover,.rail a:focus-visible,.rail a[aria-current],.rail a.is-here{
 background-color:var(--olive,#4C5536);border-color:var(--olive,#4C5536);color:#FFFFFF}
.rail a:hover,.rail a:focus-visible{transform:none}
@media (max-width:820px){.rail .w{padding-block:7px}.rail a{padding:0 12px}}

/* --- the service lines: a composed group, larger type, and motion -----------
   Distributing three items across a 3:2 photograph's height left the title
   floating in the middle with dead space above and below it. The copy is now
   one group seated on the image's top edge - chip, title, body - with the
   duration line alone on the bottom edge. The type steps up two sizes; this
   section carries the firm's offer and was reading at footnote size. Each row
   observes its own entry: the photograph slides in from its side, the copy
   settles in sequence. */
#lines .ln{gap:clamp(24px,3vw,44px)!important;margin-bottom:clamp(22px,2.4vw,34px)!important}
#lines .ln > div:not(.slot){justify-content:flex-start;min-height:100%}
#lines .ln > div:not(.slot) > .kick{margin:0!important}
#lines .ln > div:not(.slot) > h3{margin:16px 0 0!important;padding:0;
 font-size:clamp(19px,1.55vw,23px);line-height:1.25;font-weight:400;color:var(--navy,#0D1627)}
#lines .ln > div:not(.slot) > .sm{margin:10px 0 0!important;font-size:14.5px;line-height:1.6;
 color:var(--s600);max-width:46ch}
#lines .ln > div:not(.slot) > .sm:last-child{margin-top:auto!important;padding-top:16px;
 font-family:var(--fui);font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--olive-deep,#3F4A2F)}
@media (prefers-reduced-motion:no-preference){
 .rv-on #lines .ln > *{opacity:0;transform:none}
 .rv-on #lines .ln.is-in > .slot{animation:lnSlide 720ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rv-on #lines .ln.is-in > .slot:first-child{--ln-from:-28px}
 .rv-on #lines .ln.is-in > .slot:last-child{--ln-from:28px}
 .rv-on #lines .ln.is-in > div:not(.slot){opacity:1}
 .rv-on #lines .ln.is-in > div:not(.slot) > *{animation:lnUp 560ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rv-on #lines .ln.is-in > div:not(.slot) > :nth-child(1){animation-delay:120ms}
 .rv-on #lines .ln.is-in > div:not(.slot) > :nth-child(2){animation-delay:220ms}
 .rv-on #lines .ln.is-in > div:not(.slot) > :nth-child(3){animation-delay:320ms}
 .rv-on #lines .ln.is-in > div:not(.slot) > :nth-child(4){animation-delay:420ms}
 #lines .ln .slot__img{transition:transform 900ms var(--ease-standard)}
 #lines .ln:hover .slot__img{transform:scale(1.025)}
}
@keyframes lnSlide{from{opacity:0;transform:translateX(var(--ln-from,-28px))}to{opacity:1;transform:none}}
@keyframes lnUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (max-width:700px){
 #lines .ln > div:not(.slot) > .sm:last-child{margin-top:12px!important;padding-top:0}
}

/* the rail token, re-measured after the rail was lightened: 48px / 46px */
body:has(.rail){--rail-h:48px}
@media (max-width:820px){body:has(.rail){--rail-h:46px}}
/* one block, centred on the photograph: chip, title, body, duration in a
   single group with fixed gaps, so no part of it floats */
#lines .ln > div:not(.slot){justify-content:center}
#lines .ln > div:not(.slot) > .sm:last-child{margin-top:16px!important;padding-top:0}

/* ==========================================================================
   v6.9 — the row chip, the header centred, the Forum named in full
   ========================================================================== */

/* --- the service-line chip: a tag, not a heading -----------------------------
   The row chip was the same object as the section pill above it, so the page
   had two levels of heading in one colour and one size. The row chip is now a
   smaller tag - 10px, a 2px rule, tighter box - and the group it opens is
   centred on the photograph. */
#lines .ln .kick{font-size:10px;letter-spacing:.10em;padding:4px 9px 4px 7px;
 border-left-width:2px;line-height:1.2;align-self:flex-start}
#lines .ln > div:not(.slot){justify-content:center}

/* --- the header: the nav on the bar's centre line ------------------------------
   Above 1500px the nav sits on the true centre of the bar. Below that the five
   items no longer clear the logo and the two actions when centred absolutely,
   so it centres in the space that remains. */
.hdr .w{position:relative;justify-content:space-between}
.hdr nav{margin-inline:auto}
@media (min-width:1920px){
 .hdr nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
}
/* measured: at 1500px the absolutely centred nav overran the actions by 25px;
   1600px is the first measured width at which it clears both sides (1560 still overran by 26px) */
@media (min-width:901px) and (max-width:1320px){
 .hdr nav{gap:2px}
 .hdr nav a{font-size:10.5px;letter-spacing:.07em;padding:8px 5px}
}

/* ==========================================================================
   v7.0 — nine marks: Inter, the 15% floor, the tone, uncropped cards,
          serial marks, the note, the Forum form, the contact hero
   ========================================================================== */

/* --- 3 · Inter, self-hosted (SIL OFL 1.1, licence in assets/fonts) ---------- */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-latin-700-normal.woff2) format("woff2")}
:root{--fui:"Inter",ui-sans-serif,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
/* the cycle diagram: every label in Inter; the four stage titles stay serif */
.cy-svg text,.cy-svg tspan{font-family:var(--fui)}
.cy-svg .cy-bt{font-family:var(--fd)}
.cy-svg .cy-en,.cy-svg .cy-ct{font-weight:600;letter-spacing:.02em}

/* --- 1 · the hero fade: one ellipse behind the copy, a 15% floor everywhere else
   The copy sits in an ellipse of 0.92 - centred at 21% across, 52% down, so
   it covers the card at every width - and the scrim eases on a smootherstep
   from the ellipse's rim to a floor of 0.15. Nothing in the hero is darker
   than 0.92 and nothing is lighter than 0.15: the top-left and bottom-left
   corners open to the photograph at 15%, and the right half carries the same
   15% so the picture and the navy read as one plate. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:radial-gradient(46% 60% at 21% 52%, rgba(13,22,39,.92) 0%, rgba(13,22,39,.92) 56%, rgba(13,22,39,0.918) 58.8%, rgba(13,22,39,0.908) 61.5%, rgba(13,22,39,0.882) 64.2%, rgba(13,22,39,0.840) 67.0%, rgba(13,22,39,0.781) 69.8%, rgba(13,22,39,0.708) 72.5%, rgba(13,22,39,0.624) 75.2%, rgba(13,22,39,0.535) 78.0%, rgba(13,22,39,0.446) 80.8%, rgba(13,22,39,0.362) 83.5%, rgba(13,22,39,0.289) 86.2%, rgba(13,22,39,0.230) 89.0%, rgba(13,22,39,0.188) 91.8%, rgba(13,22,39,0.162) 94.5%, rgba(13,22,39,0.152) 97.2%, rgba(13,22,39,0.150) 100.0%)}
}

/* --- 4 · the tone, applied in the browser so the files stay the originals ----
   The reference frame is cool and quiet: saturation pulled back, a slate cast,
   contrast slightly up. A sepia pass rotated to the cold side of the wheel is
   the cast; it costs no extra element and touches no file. */
.hero__img .slot__img{filter:saturate(.72) sepia(.16) hue-rotate(178deg) saturate(1.15) contrast(1.06) brightness(.96)}

/* --- 2 and 7 · card photographs at their own size, nothing cropped ----------
   A card slot was a fixed-ratio box with the photograph covering it, so any
   frame that was not 16:9 lost its top and bottom. The slot now takes the
   photograph's own ratio from its width and height attributes, and the image
   sits in normal flow. */
.ratio.slot--img,.slot.ratio{aspect-ratio:auto!important;max-height:none!important;height:auto;
 display:block;overflow:hidden}
.ratio.slot--img picture,.slot.ratio picture{position:static;display:block}
.ratio.slot--img .slot__img,.slot.ratio .slot__img{position:static;inset:auto;width:100%;height:auto;
 object-fit:fill;display:block}
#lines .g2 .ratio,#lines .g2 .slot{aspect-ratio:auto!important}
#lines .g2 .slot__img{height:auto}
.wsv .slot{aspect-ratio:auto!important}

/* --- 5 · the matrix marks land one after another --------------------------- */
@media (prefers-reduced-motion:no-preference){
.is-in .mx tbody tr:nth-child(1){animation-delay:20ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(2) .mx__d{animation-delay:120ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(2)::before{animation-delay:190ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(3) .mx__d{animation-delay:285ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(3)::before{animation-delay:355ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(4) .mx__d{animation-delay:450ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(4)::before{animation-delay:520ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(5) .mx__d{animation-delay:615ms}
.is-in .mx tbody tr:nth-child(1) .mx__s:nth-child(5)::before{animation-delay:685ms}
.is-in .mx tbody tr:nth-child(2){animation-delay:680ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(2) .mx__d{animation-delay:780ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(2)::before{animation-delay:850ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(3) .mx__d{animation-delay:945ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(3)::before{animation-delay:1015ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(4) .mx__d{animation-delay:1110ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(4)::before{animation-delay:1180ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(5) .mx__d{animation-delay:1275ms}
.is-in .mx tbody tr:nth-child(2) .mx__s:nth-child(5)::before{animation-delay:1345ms}
.is-in .mx tbody tr:nth-child(3){animation-delay:1340ms}
.is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(3) .mx__d{animation-delay:1440ms}
.is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(3)::before{animation-delay:1510ms}
.is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(4) .mx__d{animation-delay:1605ms}
.is-in .mx tbody tr:nth-child(3) .mx__s:nth-child(4)::before{animation-delay:1675ms}
.is-in .mx tbody tr:nth-child(4){animation-delay:1670ms}
.is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(4) .mx__d{animation-delay:1770ms}
.is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(4)::before{animation-delay:1840ms}
.is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(5) .mx__d{animation-delay:1935ms}
.is-in .mx tbody tr:nth-child(4) .mx__s:nth-child(5)::before{animation-delay:2005ms}
.is-in .mx tbody tr:nth-child(5){animation-delay:2000ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(2) .mx__d{animation-delay:2100ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(2)::before{animation-delay:2170ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(3) .mx__d{animation-delay:2265ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(3)::before{animation-delay:2335ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(4) .mx__d{animation-delay:2430ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(4)::before{animation-delay:2500ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(5) .mx__d{animation-delay:2595ms}
.is-in .mx tbody tr:nth-child(5) .mx__s:nth-child(5)::before{animation-delay:2665ms}
}

/* --- 6 · the note takes the full width ------------------------------------- */
.mx__note{max-width:none;width:100%}

/* --- 9 · the contact hero: the principals centre-right ---------------------- */
body[data-route="contact"] .hero__img .slot__img{object-position:100% 45%}
@media (max-width:820px){body[data-route="contact"] .hero__img .slot__img{object-position:60% 30%}}

/* --- 10 · the footprint, in the Holding pattern, in Advisory colours --------
   The Holding map is a dot-matrix of the region with five numbered pins and
   arcs from the primary market. This is the same composition generated from
   real coastlines (Natural Earth 1:110m, one dot per 1.55 degrees): 1,661
   dots in three weights - the mandate countries brightest, the MENA ring next,
   the rest of the region faint - five pins with labelled chips, and four arcs
   out of Riyadh. Olive where Holding has gold; nothing else changes. */
.fp{display:grid;grid-template-columns:minmax(260px,.38fr) 1fr;background:var(--navy,#0D1627);
 border:1px solid rgba(255,255,255,.06);margin-top:22px}
.fp-key{padding:clamp(22px,2.4vw,34px);border-right:1px solid rgba(255,255,255,.08)}
.fp-kh{margin:0 0 14px;font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:var(--ol-hi,#C9D2A8)}
.fp-l{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.fp-i{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start}
.fp-n{display:inline-flex;align-items:center;justify-content:center;width:30px;height:24px;border-radius:2px;
 font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.04em;
 background:var(--olive,#4C5536);color:#fff}
.fp-i--follow .fp-n{background:transparent;border:1px solid rgba(201,210,168,.5);color:var(--ol-hi,#C9D2A8)}
.fp-c{display:block;font-family:var(--fd);font-size:17px;line-height:1.25;color:#fff}
.fp-tag{display:inline-block;margin:3px 0 0;font-family:var(--fui);font-size:10.5px;font-weight:700;
 letter-spacing:.12em;text-transform:uppercase;color:var(--ol-hi,#C9D2A8)}
.fp-w{display:block;margin-top:3px;font-size:12.5px;line-height:1.5;color:#B5BDC9}
.fp-note{margin:18px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);
 font-size:12.5px;line-height:1.55;color:#B5BDC9}
.fp-mapwrap{padding:clamp(10px,1.4vw,22px);display:flex;align-items:center}
.fp-map{width:100%;height:auto;display:block}
.fp-far circle{fill:#2A3650}
.fp-near circle{fill:#5E6A48}
.fp-core circle{fill:#8A966E}
.fp-arc{fill:none;stroke:var(--ol-hi,#C9D2A8);stroke-width:1.2;stroke-opacity:.55;stroke-dasharray:3 4}
.fp-ring{fill:none;stroke:#fff;stroke-width:1.5;stroke-opacity:.9}
.fp-dot{fill:#fff}
.fp-pin--follow .fp-ring{stroke-opacity:.55}
.fp-pin--follow .fp-dot{fill:var(--ol-hi,#C9D2A8)}
.fp-lab rect{fill:#0D1627;stroke:rgba(255,255,255,.28);stroke-width:1}
.fp-lab .fp-n{fill:var(--olive,#4C5536);stroke:none}
.fp-nt{font-family:var(--fui);font-size:11px;font-weight:700;fill:#fff}
.fp-lt{font-family:var(--fui);font-size:12px;font-weight:700;letter-spacing:.06em;fill:#fff}
@media (prefers-reduced-motion:no-preference){
 .rv-on .fp.is-in .fp-far circle,.rv-on .fp.is-in .fp-near circle,.rv-on .fp.is-in .fp-core circle{
  animation:fpDots 900ms ease-out both}
 .rv-on .fp.is-in .fp-near circle{animation-delay:200ms}
 .rv-on .fp.is-in .fp-core circle{animation-delay:400ms}
 .rv-on .fp.is-in .fp-arc{stroke-dasharray:600;stroke-dashoffset:600;
  animation:fpArc 1100ms var(--ease-standard) both;animation-delay:700ms}
 .rv-on .fp.is-in .fp-pin{opacity:0;animation:fpPin 520ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both;
  animation-delay:calc(800ms + var(--i,0) * 160ms)}
 .rv-on .fp.is-in .fp-pin--today .fp-ring{animation:fpPulse 2.6s ease-out infinite;animation-delay:1.8s;transform-box:fill-box;transform-origin:center}
 .rv-on .fp.is-in .fp-i{opacity:0;animation:fpPin 520ms var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .rv-on .fp.is-in .fp-i:nth-child(1){animation-delay:800ms}
 .rv-on .fp.is-in .fp-i:nth-child(2){animation-delay:960ms}
 .rv-on .fp.is-in .fp-i:nth-child(3){animation-delay:1120ms}
 .rv-on .fp.is-in .fp-i:nth-child(4){animation-delay:1280ms}
 .rv-on .fp.is-in .fp-i:nth-child(5){animation-delay:1440ms}
}
.rv-on .fp:not(.is-in) > *{opacity:1;transform:none}
@keyframes fpDots{from{opacity:0}to{opacity:1}}
@keyframes fpArc{to{stroke-dashoffset:0}}
@keyframes fpPin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes fpPulse{0%{transform:scale(1);opacity:.9}70%{transform:scale(1.9);opacity:0}100%{transform:scale(1.9);opacity:0}}
@media (max-width:900px){
 .fp{grid-template-columns:1fr}
 .fp-key{border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
}
/* the three dot weights, one step brighter each - Holding's map reads at a
   higher key than the first pass here did */
.fp-far circle{fill:#3C4864}
.fp-near circle{fill:#75835B}
.fp-core circle{fill:#B7C296}
.fp-arc{stroke-opacity:.7}

/* ==========================================================================
   v7.1 — rulings D-153 (cancelled), D-154 (shift right, zoom out), D-156 (cancelled)
   ========================================================================== */

/* --- D-153 / D-156 · the v6.8 fade restored, exactly as generated then -----
   Plateau to 42%, smootherstep to zero by 88%, soft top and bottom blends.
   No floor: the right half is the photograph. The tone grade from mark 4
   stays; it was not cancelled. */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg, rgba(13,22,39,.97) 0%, rgba(13,22,39,.96) 26%, rgba(13,22,39,0.950) 42.0%, rgba(13,22,39,0.947) 45.3%, rgba(13,22,39,0.928) 48.6%, rgba(13,22,39,0.884) 51.9%, rgba(13,22,39,0.813) 55.1%, rgba(13,22,39,0.716) 58.4%, rgba(13,22,39,0.601) 61.7%, rgba(13,22,39,0.475) 65.0%, rgba(13,22,39,0.349) 68.3%, rgba(13,22,39,0.234) 71.6%, rgba(13,22,39,0.137) 74.9%, rgba(13,22,39,0.066) 78.1%, rgba(13,22,39,0.022) 81.4%, rgba(13,22,39,0.003) 84.7%, rgba(13,22,39,0.000) 88.0%),
   linear-gradient(to bottom, rgba(13,22,39,0.280) 0.0%, rgba(13,22,39,0.264) 2.8%, rgba(13,22,39,0.191) 5.6%, rgba(13,22,39,0.089) 8.4%, rgba(13,22,39,0.016) 11.2%, rgba(13,22,39,0.000) 14.0%),
   linear-gradient(to top, rgba(13,22,39,0.300) 0.0%, rgba(13,22,39,0.293) 4.3%, rgba(13,22,39,0.257) 8.6%, rgba(13,22,39,0.190) 12.9%, rgba(13,22,39,0.110) 17.1%, rgba(13,22,39,0.043) 21.4%, rgba(13,22,39,0.007) 25.7%, rgba(13,22,39,0.000) 30.0%)}
}

/* --- D-154 · the contact hero, shifted right and zoomed out ---------------
   A fixed-ratio box cannot both show more of a frame and move its subject
   right - one is a wider crop, the other a narrower one. So the frame is the
   full original (the zoom-out) and it occupies only the right 80% of the box,
   right-aligned, with its own left edge masked into the navy the scrim would
   have painted there anyway. The principals land at 60% of the hero. */
@media (min-width:821px){
 body[data-route="contact"] .hero__img .slot__img{
  inset-inline-start:auto;inset-inline-end:0;width:80%;height:100%;object-fit:cover;object-position:50% 40%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
 body[data-route="contact"] .hero__img .slot{background:#0D1627}
}
@media (min-width:1500px){
 body[data-route="contact"] .hero__img .slot__img{width:76%}
}
/* second pass: a 76%-wide box with cover was a zoom IN (the box was taller than
   the frame). The frame now keeps its own ratio at 82% of the hero's width,
   pinned bottom-right, so the whole photograph is shown smaller - the zoom
   out - and the 18% above it is navy under the top blend. Principals at 57%. */
@media (min-width:821px){
 body[data-route="contact"] .hero__img .slot__img{
  inset:auto 0 0 auto;width:82%;height:auto;object-fit:fill;object-position:50% 50%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);mask-image:linear-gradient(90deg,transparent 0,#000 24%)}
 body[data-route="contact"] .hero__img::after{background:
   linear-gradient(90deg, rgba(13,22,39,.97) 0%, rgba(13,22,39,.96) 26%, rgba(13,22,39,.95) 42%, rgba(13,22,39,.80) 52%, rgba(13,22,39,.42) 62%, rgba(13,22,39,.10) 74%, rgba(13,22,39,0) 84%),
   linear-gradient(to bottom, rgba(13,22,39,.85) 0%, rgba(13,22,39,.55) 12%, rgba(13,22,39,.12) 24%, rgba(13,22,39,0) 34%),
   linear-gradient(to top, rgba(13,22,39,.30) 0%, rgba(13,22,39,.08) 14%, rgba(13,22,39,0) 30%)}
}
@media (min-width:1500px){body[data-route="contact"] .hero__img .slot__img{width:80%}}
/* the frame's top edge is masked as its left edge is, so it emerges from the
   navy rather than starting on a line */
@media (min-width:821px){
 body[data-route="contact"] .hero__img .slot__img{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%),linear-gradient(180deg,transparent 0,#000 26%);
  mask-image:linear-gradient(90deg,transparent 0,#000 24%),linear-gradient(180deg,transparent 0,#000 26%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
}

/* ==========================================================================
   v7.2 — hero colour and shading as v6.7, contact frame further right,
          the header mark enlarged
   ========================================================================== */

/* --- the v6.7 hero: no tone grade, the measured five-stop scrim ------------- */
.hero__img .slot__img{filter:none}
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.96) 30%, rgba(13,22,39,.95) 46%,
     rgba(13,22,39,.80) 52%, rgba(13,22,39,.42) 60%, rgba(13,22,39,.10) 72%,
     rgba(13,22,39,0) 82%),
   linear-gradient(to top, rgba(13,22,39,.34) 0%, rgba(13,22,39,.08) 24%, rgba(13,22,39,0) 46%)}
 /* the contact route keeps the top blend that seats its smaller frame */
 body[data-route="contact"] .hero__img::after{background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.96) 30%, rgba(13,22,39,.95) 46%,
     rgba(13,22,39,.80) 52%, rgba(13,22,39,.42) 60%, rgba(13,22,39,.10) 72%,
     rgba(13,22,39,0) 82%),
   linear-gradient(to bottom, rgba(13,22,39,.85) 0%, rgba(13,22,39,.50) 14%, rgba(13,22,39,.10) 28%, rgba(13,22,39,0) 38%),
   linear-gradient(to top, rgba(13,22,39,.30) 0%, rgba(13,22,39,.08) 14%, rgba(13,22,39,0) 30%)}
}

/* --- the contact frame, further right: 72% of the hero, pinned bottom-right;
   the principals land at 63% ------------------------------------------------- */
@media (min-width:821px){
 body[data-route="contact"] .hero__img .slot__img{width:72%}
}
@media (min-width:1500px){
 body[data-route="contact"] .hero__img .slot__img{width:70%}
}

/* --- the header mark, larger: 58px in an 88px bar ---------------------------- */
:root{--hdr-h:88px}
.hdr .w{height:88px}
.hdr img{height:58px}
@media (max-width:900px){:root{--hdr-h:76px}.hdr .w{height:76px}.hdr img{height:46px}}

/* ==========================================================================
   v7.3 — the first fade, as built in v6.0 from the Capital reference
   ========================================================================== */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(90deg,
     rgba(13,22,39,.97) 0%,  rgba(13,22,39,.96) 34%, rgba(13,22,39,.90) 46%,
     rgba(13,22,39,.66) 58%, rgba(13,22,39,.34) 70%, rgba(13,22,39,.10) 84%,
     rgba(13,22,39,0)   94%),
   linear-gradient(to top,
     rgba(13,22,39,.46) 0%, rgba(13,22,39,.16) 26%, rgba(13,22,39,0) 52%)}
}

/* ==========================================================================
   v7.4 — the FIRST fade: the stylesheet's baseline hero scrim (line 233),
          as the site shipped before any of this session's passes
   ========================================================================== */
@media (min-width:821px){
 body[data-route="home"]     .hero__img::after,
 body[data-route="advisory"] .hero__img::after,
 body[data-route="forums"]   .hero__img::after,
 body[data-route="contact"]  .hero__img::after{
  background:
   linear-gradient(96deg,var(--navy) 0%,var(--navy) 16%,rgba(13,22,39,.92) 30%,rgba(13,22,39,.58) 48%,
                   rgba(13,22,39,.16) 74%,rgba(13,22,39,0) 100%),
   linear-gradient(to top,rgba(13,22,39,.52) 0%,rgba(13,22,39,0) 38%)}
}

/* ==========================================================================
   v7.5 — the contact hero: the Chairman's boardroom frame, full bleed
   ========================================================================== */
/* The new frame is 2:1 with its two principals at 80% of the width - the
   composition every other hero has. The right-pinned reduced frame from v7.1
   and v7.2 is retired: this photograph fills the box like the others. */
@media (min-width:821px){
 body[data-route="contact"] .hero__img .slot__img{
  inset:0;width:100%;height:100%;object-fit:cover;object-position:100% 56%;
  -webkit-mask-image:none;mask-image:none;-webkit-mask-composite:initial;mask-composite:initial}
}
@media (min-width:1500px){body[data-route="contact"] .hero__img .slot__img{width:100%}}
@media (max-width:820px){body[data-route="contact"] .hero__img .slot__img{object-position:70% 40%}}

/* ==========================================================================
   v7.6 — the header mark and the nav, one size up
   ========================================================================== */
:root{--hdr-h:96px}
.hdr .w{height:96px}
.hdr img{height:66px}
.hdr nav a,body[data-route="home"] .hdr nav a,body[data-route="advisory"] .hdr nav a{
 font-size:13px;letter-spacing:.11em;padding:9px 4px}
.hdr .aux .btn--ons{font-size:13.5px;min-height:44px;padding:12px 20px}
.hdr__login{font-size:12.5px;min-height:44px;padding:12px 18px}
@media (min-width:901px) and (max-width:1320px){
 .hdr nav a{font-size:12px;letter-spacing:.08em;padding:9px 5px}
}
@media (max-width:900px){:root{--hdr-h:80px}.hdr .w{height:80px}.hdr img{height:52px}}
/* with the larger nav, true centring overran the actions at 1600 by 4px;
   the breakpoint moves to 1700, measured clear at 1920 */

/* ==========================================================================
   v7.7 — the header, redesigned
   ==========================================================================
   The bar was crowded because it was confined to the reading column: mark,
   five links and two boxed buttons in 1,280px at 1440 wide, 37px between the
   groups. Three changes.
   1 · The header takes the viewport, not the column - gutters of 3vw - so the
       same elements sit in 1,350px at 1440 and 1,800px at 1920.
   2 · One boxed action, not two. "Client login" becomes a quiet text link
       beside the button; the eye now finds one thing to press.
   3 · A three-column grid - mark / nav / actions - with the nav centred in its
       own column, so it can never collide with either neighbour at any width.
   Proportions: 92px bar, 54px mark (59% of the bar), 12.5px labels on a 36px
   pitch, 42px button. */
:root{--hdr-h:92px}
.hdr{border-bottom:1px solid rgba(255,255,255,.07)}
.hdr .w{max-width:none;width:100%;padding:0 clamp(24px,3vw,64px);height:92px;
 display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:clamp(24px,3vw,56px);
 justify-content:normal}
.hdr > .w > a:first-child{display:inline-flex;align-items:center}
.hdr img{height:54px}
.hdr nav,.hdr nav:where(*){position:static;transform:none;left:auto;top:auto;margin:0;
 justify-self:center;display:flex;align-items:center;gap:clamp(20px,2.6vw,40px)}
.hdr nav a,body[data-route="home"] .hdr nav a,body[data-route="advisory"] .hdr nav a{
 font-size:12.5px;font-weight:600;letter-spacing:.12em;padding:8px 0;color:#C9D0DA}
.hdr nav a:hover,.hdr nav a:focus-visible{color:#FFFFFF}
.hdr nav a[aria-current]{color:var(--ol-hi,#C9D2A8)}
.hdr .aux{display:flex;align-items:center;gap:clamp(18px,1.8vw,28px);justify-self:end}
.hdr__login{border:0;background:transparent;padding:8px 0;min-height:0;border-radius:0;
 font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#C9D0DA;
 position:relative}
.hdr__login::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--ol-hi,#C9D2A8);
 transform:scaleX(0);transform-origin:left center;transition:transform 220ms var(--ease-settle,cubic-bezier(.16,1,.3,1))}
.hdr__login:hover,.hdr__login:focus-visible{color:#FFFFFF;background:transparent;border:0}
.hdr__login:hover::after{transform:scaleX(1)}
.hdr .aux .btn--ons{min-height:42px;padding:11px 22px;font-size:13px;letter-spacing:.05em;border-radius:2px}
@media (min-width:1920px){.hdr nav{position:static;transform:none}}
@media (min-width:901px) and (max-width:1320px){
 .hdr nav{gap:clamp(14px,1.8vw,24px)}
 .hdr nav a{font-size:11.5px;letter-spacing:.09em}
 .hdr img{height:50px}
}
@media (max-width:900px){
 :root{--hdr-h:76px}
 .hdr .w{height:76px;grid-template-columns:auto 1fr auto;padding:0 20px}
 .hdr img{height:46px}
}
/* the bar holds five children, not three: the menu checkbox and its label
   share the grid. Each element is placed explicitly; the label lives only on
   the phone layout. The hairline moves from border to inset shadow so the bar
   measures exactly its token. */
.hdr{border-bottom:0;box-shadow:inset 0 -1px 0 rgba(255,255,255,.07)}
.hdr .w > #mnu{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;margin:0}
.hdr .w > a:first-of-type{grid-column:1;grid-row:1}
.hdr nav{grid-column:2;grid-row:1}
.hdr .aux{grid-column:3;grid-row:1}
.hdr .menu{grid-column:3;grid-row:1;justify-self:end}
@media (min-width:901px){.hdr .menu{display:none}}
@media (max-width:900px){.hdr .w{grid-template-columns:auto 1fr auto}.hdr nav,.hdr .aux{display:none}}
/* at 1024 the login label wrapped to two lines; it holds one, and below
   1180 the bar drops the label's letterspacing one step */
.hdr__login{white-space:nowrap}
@media (min-width:901px) and (max-width:1180px){
 .hdr nav{gap:14px}
 .hdr nav a{font-size:11px;letter-spacing:.08em}
 .hdr__login{font-size:11px;letter-spacing:.08em}
 .hdr .aux{gap:14px}
 .hdr .aux .btn--ons{padding:10px 16px;font-size:12px}
 .hdr img{height:46px}
}

/* ==========================================================================
   v8.0 — assessment fixes: three 320px overflows, text-button tap height,
          skip link
   ========================================================================== */
/* the v6.4 two-column opener carried no media guard, so its 300px minimum
   column outranked the phone rule that stacks it */
@media (max-width:900px){.sec2{grid-template-columns:1fr!important;gap:12px}}
/* the contact routing table and the receipt card at the narrowest phones */
@media (max-width:420px){
 .cx__l table{font-size:12px}.cx__l th,.cx__l td{padding:8px 6px;word-break:break-word}
 .cx__l{overflow-x:auto;-webkit-overflow-scrolling:touch}
 .rcv__card{padding:18px 16px}.w{padding-inline:16px}
}
/* text buttons get a 24px hit box on touch without changing their look */
@media (pointer:coarse){.btn--t{min-height:28px;padding-block:6px}}
/* a skip link for keyboard users - invisible until focused */
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:2px;
 background:var(--olive,#4C5536);color:#fff;font-family:var(--fui);font-size:13px;font-weight:600;
 text-decoration:none;transition:top 120ms}
.skip:focus{top:12px;outline:2px solid #fff}
@media (max-width:360px){.cx__l{padding-inline:0;max-width:100%;box-sizing:border-box}.cx__l table{width:100%}}
.field--ck input[type=checkbox]{width:20px;height:20px}
/* the contact grid's column was sized 308px inside a 288px track at 320 */
@media (max-width:420px){.cx{grid-template-columns:minmax(0,1fr)!important}.cx > *{min-width:0}}

/* ==========================================================================
   v8.1 — the footer address block, as on EDGE Holding
   ========================================================================== */
.ftr__id{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.ftr__addr{font-style:normal;font-family:var(--fui);font-size:12.5px;line-height:1.55;color:#B5BDC9;margin:0}
.ftr__addr a{color:#C9D0DA;text-decoration:none}
.ftr__addr a:hover{color:#fff}
.ftr__ah{display:block;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
 color:var(--ol-hi,#C9D2A8);margin-bottom:3px}
.ftr__addr--reg{padding-top:2px}
@media (min-width:901px){.ftr__top{grid-template-columns:minmax(250px,1.05fr) minmax(0,1.4fr) minmax(210px,.85fr)}}

/* ==========================================================================
   v8.1 — pages 4 and 5 in colour
   ==========================================================================
   The Forum page and the Contact page ran navy, white and grey with olive
   only on the pills and the closing band. Both now carry the property's
   second colour as grounds and rules, in the same weights the Advisory page
   uses: a solid olive band, an olive-tint ground (#EEF0E6), olive top rules
   on cards, olive numerals. Nothing outside the two-colour palette. */
:root{--olive-tint:#EEF0E6;--olive-tint-2:#E4E8D8}

/* --- page 4 · Boardroom AI Forum ------------------------------------------- */
#boardroom-ai-forum section:nth-of-type(1){background:var(--olive,#4C5536)}
#boardroom-ai-forum section:nth-of-type(1) .fst__c{border-left-color:var(--ol-hi,#C9D2A8)}
#boardroom-ai-forum section:nth-of-type(1) .fst__n{color:#FFFFFF}
#boardroom-ai-forum section:nth-of-type(1) .fst__l{color:var(--ol-hi,#C9D2A8)}
#boardroom-ai-forum section:nth-of-type(2) .card{border-top:3px solid var(--olive,#4C5536);background:#fff}
#boardroom-ai-forum section:nth-of-type(2) .cbx__n{color:var(--olive,#4C5536)}
#boardroom-ai-forum section:nth-of-type(4){background:var(--olive-tint)}
#boardroom-ai-forum section:nth-of-type(4) .lede{border-left:3px solid var(--olive,#4C5536);padding-left:18px;color:var(--navy,#0D1627)}
#boardroom-ai-forum section:nth-of-type(5){background:var(--olive-tint)}
#boardroom-ai-forum section:nth-of-type(5) .card{background:#fff;border:1px solid var(--olive-tint-2);border-top:3px solid var(--olive,#4C5536)}
#boardroom-ai-forum section:nth-of-type(5) .cbx__n{display:inline-flex;align-items:center;justify-content:center;
 width:30px;height:24px;border-radius:2px;background:var(--olive,#4C5536);color:#fff;letter-spacing:.04em}
#boardroom-ai-forum section:nth-of-type(6){background:#fff}
#boardroom-ai-forum section:nth-of-type(6) .eng__i::before{border-color:rgba(76,85,54,.4)}
#boardroom-ai-forum section:nth-of-type(7){background:var(--olive-tint)}
#boardroom-ai-forum section:nth-of-type(7) .cx__form{background:#fff;border-top:4px solid var(--olive,#4C5536);
 padding:clamp(18px,2vw,28px);box-shadow:0 8px 28px rgba(13,22,39,.06)}
#boardroom-ai-forum section:nth-of-type(7) .fdl{border-top-color:rgba(76,85,54,.35)}
#boardroom-ai-forum section:nth-of-type(7) .fdl__r{border-bottom-color:rgba(76,85,54,.22)}
#boardroom-ai-forum section:nth-of-type(7) .fdl dt{color:var(--olive-deep,#3F4A2F)}

/* --- page 5 · Contact ------------------------------------------------------- */
body[data-route="contact"] main > section:first-of-type{background:var(--olive-tint)}
body[data-route="contact"] .cx__l{background:#fff;border-top:4px solid var(--olive,#4C5536);
 padding:clamp(18px,2vw,26px);box-shadow:0 8px 28px rgba(13,22,39,.05)}
body[data-route="contact"] .cx__l table td:first-child b{color:var(--olive-deep,#3F4A2F)}
body[data-route="contact"] .cx__l table tr{border-bottom:1px solid rgba(76,85,54,.18)}
body[data-route="contact"] .cx__l h3{color:var(--olive-deep,#3F4A2F)}
body[data-route="contact"] .cx__f{background:#fff;border-top:4px solid var(--olive,#4C5536);
 padding:clamp(18px,2vw,28px);box-shadow:0 8px 28px rgba(13,22,39,.06)}
body[data-route="contact"] .cx__f h3{color:var(--olive-deep,#3F4A2F)}
body[data-route="contact"] .chip input:checked + span{background:var(--olive,#4C5536)}
body[data-route="contact"] #footprint{background:#fff}
body[data-route="contact"] .fp{border-color:rgba(76,85,54,.3)}
@media (max-width:640px){body[data-route="contact"] .cx__l,body[data-route="contact"] .cx__f{padding:16px}}

/* ==========================================================================
   v8.1 — motion, revamped as one system
   ==========================================================================
   One curve (settle), three durations (fast 220, base 640, slow 1600), one
   rhythm (70–90ms between siblings). Entry is one pass that rests in the
   finished state; hover is a lift and a nudge; nothing loops except the two
   footprint pins. Reduced-motion users get the finished states directly. */
:root{--m-fast:220ms;--m-base:640ms;--m-slow:1600ms;--ease-settle:cubic-bezier(.16,1,.3,1)}

@media (prefers-reduced-motion:no-preference){
 /* --- the hero: master settles in, copy rises in sequence -------------------- */
 .hero__img .slot__img{transform:scale(1.045);transform-origin:62% 55%;opacity:.001;
  transition:transform var(--m-slow) var(--ease-settle),opacity 700ms ease-out}
 body.is-loaded .hero__img .slot__img{transform:scale(1);opacity:1}
 .hero__card > *{opacity:0;transform:translateY(16px);
  transition:opacity var(--m-base) var(--ease-settle),transform var(--m-base) var(--ease-settle)}
 body.is-loaded .hero__card > *{opacity:1;transform:none}
 body.is-loaded .hero__card > :nth-child(1){transition-delay:180ms}
 body.is-loaded .hero__card > :nth-child(2){transition-delay:270ms}
 body.is-loaded .hero__card > :nth-child(3){transition-delay:360ms}
 body.is-loaded .hero__card > :nth-child(4){transition-delay:450ms}
 body.is-loaded .hero__card > :nth-child(5){transition-delay:540ms}
 body.is-loaded .hero__card > :nth-child(6){transition-delay:630ms}
 .hero__meta{border-top-color:transparent;transition:border-top-color 500ms ease 800ms}
 body.is-loaded .hero__meta{border-top-color:rgba(203,213,225,.20)}

 /* --- sections: the reveal keeps its hook, gets the curve and the rhythm ------ */
 .rv-on [data-rv] > *{transform:translateY(18px);
  transition:opacity var(--m-base) var(--ease-settle),transform var(--m-base) var(--ease-settle)}
 .rv-on [data-rv].is-in > :nth-child(1){transition-delay:0ms}
 .rv-on [data-rv].is-in > :nth-child(2){transition-delay:70ms}
 .rv-on [data-rv].is-in > :nth-child(3){transition-delay:140ms}
 .rv-on [data-rv].is-in > :nth-child(4){transition-delay:210ms}
 .rv-on [data-rv].is-in > :nth-child(5){transition-delay:280ms}
 .rv-on [data-rv].is-in > :nth-child(6){transition-delay:350ms}
 .rv-on [data-rv].is-in > :nth-child(n+7){transition-delay:420ms}
 /* grids inside a revealed block: their children rise in their own sequence */
 .rv-on [data-rv] .g > *,.rv-on [data-rv] .ef-cards > *,.rv-on [data-rv] .cbx > *,.rv-on [data-rv] .eng > *{
  opacity:0;transform:translateY(14px);transition:opacity var(--m-base) var(--ease-settle),transform var(--m-base) var(--ease-settle)}
 .rv-on [data-rv].is-in .g > *,.rv-on [data-rv].is-in .ef-cards > *,.rv-on [data-rv].is-in .cbx > *,.rv-on [data-rv].is-in .eng > *{opacity:1;transform:none}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(1){transition-delay:120ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(2){transition-delay:200ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(3){transition-delay:280ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(4){transition-delay:360ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(5){transition-delay:440ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(6){transition-delay:520ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(7){transition-delay:600ms}
 .rv-on [data-rv].is-in :is(.g,.ef-cards,.cbx,.eng) > :nth-child(8){transition-delay:680ms}
 /* photographs inside a revealed block settle from a slight zoom */
 .rv-on [data-rv] .slot--img .slot__img{transform:scale(1.03);transition:transform var(--m-slow) var(--ease-settle)}
 .rv-on [data-rv].is-in .slot--img .slot__img{transform:scale(1)}
 .hero__img .slot--img .slot__img{transform:none}

 /* --- hover: a lift, a nudge, never a colour flash ----------------------------- */
 .card,.cbx__c,.eng__c,.ef-card,.fst__c{transition:transform var(--m-fast) var(--ease-settle),box-shadow var(--m-fast) var(--ease-settle)}
 .card:hover,.cbx__c:hover,.ef-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(13,22,39,.10)}
 .slot--img{overflow:hidden}
 .g .slot--img .slot__img,.ln .slot--img .slot__img{transition:transform 900ms var(--ease-settle)}
 .g > div:hover .slot--img .slot__img,.ln:hover .slot--img .slot__img{transform:scale(1.03)}
 .btn{transition:background-color var(--m-fast) var(--ease-settle),border-color var(--m-fast) var(--ease-settle),
      color var(--m-fast) var(--ease-settle),transform var(--m-fast) var(--ease-settle),box-shadow var(--m-fast) var(--ease-settle)}
 .btn--on:hover,.btn--p:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(13,22,39,.18)}
 .btn--ons:hover,.btn--s:hover{transform:translateY(-1px)}
 .btn .ecb__arw,.btn .ftr__arw{display:inline-block;transition:transform var(--m-fast) var(--ease-settle)}
 .btn:hover .ecb__arw,.btn:hover .ftr__arw{transform:translateX(4px)}
 .hdr nav a{transition:color var(--m-fast) var(--ease-settle)}
 .hdr nav a{position:relative}
 .hdr nav a::after{content:"";display:block;position:absolute;left:0;right:0;bottom:2px;height:1px;
  background:var(--ol-hi,#C9D2A8);transform:scaleX(0);transform-origin:left center;transition:transform var(--m-fast) var(--ease-settle)}
 .hdr nav a:hover::after{transform:scaleX(1)}
 /* the rail follows the reader: the chip for the section in view is olive */
 .rail a{transition:background-color var(--m-fast) var(--ease-settle),color var(--m-fast) var(--ease-settle),
   border-color var(--m-fast) var(--ease-settle),transform var(--m-fast) var(--ease-settle)}
 .rail a.is-here{background-color:var(--olive,#4C5536);border-color:var(--olive,#4C5536);color:#fff}
 /* the section pill's edge grows in with its block */
 .rv-on [data-rv] p.kick{border-left-color:transparent;transition:border-left-color 400ms ease 300ms,opacity var(--m-base) var(--ease-settle),transform var(--m-base) var(--ease-settle)}
 .rv-on [data-rv].is-in p.kick{border-left-color:var(--ol-hi,#C9D2A8)}
}
/* D-43 stands in the header: colour carries state; the hairline is hover-only */
.hdr nav a[aria-current]::after{transform:scaleX(0)!important}

/* --- the Forum request section: the details column rides with the form ------
   Same mechanism as the contact page: the left column is sticky under the
   header, so as the reader scrolls the long form the cohort details stay
   beside it instead of leaving an empty column behind. */
#boardroom-ai-forum #request .g2{align-items:start!important}
#boardroom-ai-forum #request .g2 > div:first-child{position:sticky;top:calc(var(--hdr-h,92px) + 20px)}
@media (max-width:900px){#boardroom-ai-forum #request .g2 > div:first-child{position:static}}

/* v8.1 — D-139(a) 11px label floor: footprint pin tags lifted from 10.5px. */
.fp-tag{font-size:11px}

/* v8.1 — the longer copyright line (Delaware incorporation + file number)
   was inheriting white-space:nowrap from the v6.1 footer and pushed the
   document to ~680px on phones. Let it wrap; keep it a single line only
   where the row is wide enough on its own. */
.ftr__cr,.ftr--min .ftr__cr{white-space:normal;flex:0 1 auto;max-width:100%;min-width:0}
.ftr__legal,.ftr--min .ftr__legal{min-width:0;flex:1 1 320px}

/* v8.1 — guarantee: whatever happens to motion.js (blocked, hidden tab, no JS),
   the hero master and copy are forced visible 3s after load. Animations sit
   above transitions in the cascade, so this cannot fight the choreography. */
@media (prefers-reduced-motion:no-preference){
 @keyframes ea-rv{to{opacity:1;transform:none}}
 .hero__img .slot__img,.hero__card > *{animation:ea-rv 1ms linear 3s forwards}
}

/* ==========================================================================
   v8.3 — footer revamp: clean, five short columns, one legal line
   ==========================================================================
   Chairman, 28 Sep: "revamp footer and make it clean and less crowded;
   remove Dubai; remove Access; notes in the very low line". The two
   addresses leave the brand block and become columns of their own; the
   Access column goes (the header carries Client login); the legal note,
   copyright and file number collapse into a single muted last line with
   Privacy and Terms at its end. */
.ftr__top--v83{display:grid;grid-template-columns:minmax(230px,1fr) auto;gap:clamp(28px,4vw,72px);
 align-items:start;padding-bottom:clamp(26px,3vw,40px);border-bottom:1px solid rgba(203,213,225,.14)}
.ftr__top--v83 .ftr__id{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.ftr__top--v83 .ftr__brand{margin:0 0 2px}
.ftr__top--v83 .ftr__brand img{height:52px;width:auto}
.ftr__top--v83 .ftr__where{margin:0;font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.16em;
 text-transform:uppercase;color:var(--ol-hi,#C9D2A8)}
.ftr__top--v83 .ftr__mail{margin:0;font-size:13.5px;color:#D6DCE6}
.ftr__top--v83 .ftr__cta,.ftr__top--v83 .ftr__cta span{font-family:var(--fui)}
.ftr__top--v83 .ftr__cta{margin:10px 0 0;width:auto;height:auto;min-height:44px;padding:11px 18px;
 display:inline-flex;align-items:center;gap:14px;border:1px solid rgba(201,210,168,.55);border-radius:2px;
 color:#fff;text-decoration:none;font-size:13.5px;font-weight:600;letter-spacing:.01em;background:transparent}
.ftr__top--v83 .ftr__cta:hover{background:rgba(138,150,110,.16);border-color:var(--ol-hi,#C9D2A8)}
.ftr__top--v83 .ftr__nav{margin:0;width:auto;display:grid;grid-template-columns:auto auto minmax(200px,auto) minmax(215px,auto);
 gap:20px clamp(28px,3.4vw,56px);align-items:start}
.ftr__top--v83 .ftr__nav ul{display:block}
.ftr__top--v83 .ftr__col{min-width:0}
.ftr__top--v83 .ftr__h{margin:0 0 10px;font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.14em;
 text-transform:uppercase;color:var(--ol-hi,#C9D2A8)}
.ftr__top--v83 .ftr__nav a{display:block;padding:3px 0;font-family:var(--fui);font-size:13.5px;line-height:1.5;color:#D6DCE6}
.ftr__top--v83 .ftr__nav li + li{margin-top:2px}
.ftr__top--v83 .ftr__addr{margin:0;padding:0;font-style:normal;font-family:var(--fui);font-size:13px;line-height:1.6;color:#B5BDC9}
.ftr__top--v83 .ftr__addr a{display:inline;padding:0;color:#D6DCE6;text-decoration:none}
.ftr__top--v83 .ftr__addr a:hover{color:#fff}
/* the one last line */
.ftr__base--v83{display:flex;flex-wrap:nowrap;align-items:baseline;justify-content:space-between;gap:28px;padding-top:16px;border:0}
.ftr__base--v83 .ftr__note{margin:0;max-width:none;font-family:var(--fui);font-size:11.5px;line-height:1.6;color:#7E8894;flex:1 1 0;min-width:0}
.ftr__base--v83 .ftr__links{list-style:none;margin:0;padding:0;display:flex;gap:18px;flex:none}
.ftr__base--v83 .ftr__links a{font-family:var(--fui);font-size:11.5px;color:#A7B0BE;text-decoration:none;white-space:nowrap}
.ftr__base--v83 .ftr__links a:hover{color:#fff}
/* sign-in: brand, then the same last line */
.ftr--min-v83 .w{display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.ftr--min-v83 .ftr__base--v83{width:100%;border-top:1px solid rgba(203,213,225,.14)}
@media (max-width:1180px){
 .ftr__top--v83{grid-template-columns:1fr;gap:30px}
 .ftr__top--v83 .ftr__nav{grid-template-columns:minmax(0,.8fr) minmax(0,.9fr) minmax(0,1.2fr) minmax(0,1.3fr);gap:20px 28px;width:100%}
}
@media (max-width:820px){
 .ftr__top--v83 .ftr__nav{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;gap:24px 28px}
 .ftr__top--v83 .ftr__col:nth-child(1){grid-column:1;grid-row:1}
 .ftr__top--v83 .ftr__col:nth-child(2){grid-column:2;grid-row:1}
 .ftr__top--v83 .ftr__col:nth-child(3){grid-column:1;grid-row:2}
 .ftr__top--v83 .ftr__col:nth-child(4){grid-column:2;grid-row:2}
}
@media (max-width:640px){
 .ftr__base--v83{flex-direction:column;align-items:flex-start;gap:10px}
 .ftr__top--v83 .ftr__cta{width:100%;justify-content:center}
}

/* ==========================================================================
   v8.4 — footer distribution: text spread across the full width
   ==========================================================================
   Chairman, 28 Sep: "remove access column and make better text
   distribution". Access already left in v8.3; this layer stops the four
   columns hugging the right edge and spreads them across the space beside
   the brand block, so the footer reads as five even columns with no void
   in the middle. Column widths follow their content: the two address
   columns take more room than Firm and Group. Scoped to desktop so the
   v8.3 tablet and phone rules below 1180px stand untouched. */
@media (min-width:1181px){
 .ftr__top--v83{grid-template-columns:minmax(220px,.8fr) minmax(0,3.4fr);gap:clamp(32px,4vw,60px)}
 .ftr__top--v83 .ftr__nav{width:100%;grid-template-columns:minmax(0,.58fr) minmax(0,.76fr) minmax(0,1.2fr) minmax(0,1.46fr);
  gap:20px clamp(22px,2.8vw,40px)}
}

/* ============================================================
   R101A - EDGE Advisory header aligned to EDGE Holding
   bar 92/72 | logo 53/44 | dark BOTH states | shrink on scroll
   navy #0B1526 - no gold (olive accent unchanged elsewhere)
   ============================================================ */
.hdr{background:rgba(11,21,38,.94);
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:background .35s ease, box-shadow .35s ease}
.hdr.shrunk{background:rgba(11,21,38,.98);
  box-shadow:0 10px 30px -22px rgba(0,0,0,.9)}
@media (min-width:901px){
  .hdr .w{height:92px;transition:height .35s ease}
  .hdr img{height:53px;width:auto;transition:height .35s ease}
  .hdr.shrunk .w{height:72px}
  .hdr.shrunk img{height:44px}
}

/* ==========================================================================
   v8.5 — "Two Ways into the Firm": one ratio for both frames
   ==========================================================================
   Chairman, 28 Sep: "optimize this one" (screenshot of the Advisory / Forums
   pair). The v8.2 exact-frame rule let each card take its own native ratio,
   so a 3:2 frame sat beside a 2:1 frame and the two headings drifted apart.
   Both frames now fill the site's 16:9 slot (cover, no grading), the cards
   stretch to one height and the two buttons sit on one baseline. */
#ways .slot.ratio{aspect-ratio:16/9!important;height:auto;max-height:none!important}
#ways .slot.ratio .slot__img{height:100%;object-fit:cover}
#ways .card:nth-child(1) .slot__img{object-position:50% 68%}
#ways .card:nth-child(2) .slot__img{object-position:50% 50%}
#ways .g2{align-items:stretch!important}
#ways .card{display:flex;flex-direction:column}
#ways .card > div:last-child{flex:1 1 auto;display:flex;flex-direction:column}
#ways .card > div:last-child p:last-child{margin-top:auto!important;padding-top:14px}

/* ==========================================================================
   v8.8 — full responsive pass: tablet grids without orphans, phone list
   pages redesigned as compact tiles and rows
   ==========================================================================
   Chairman, 28 Sep: "make it full responsive.. mobile and tablet... improve
   the design of the mobile list pages". Desktop above 1179px is untouched
   apart from the service-line tags, lifted to the 11px legibility floor.
   Tablet: every card set fills its rows (no half-empty last row). Phone: the
   long single-file card lists become two-up tiles where the content is short
   and compact numbered rows where it is long; the service-line zigzag keeps
   each picture with its own text; the service matrix becomes one card per
   line with a four-stage track instead of a sideways-scrolling table. */

#lines .ln .kick{font-size:11px}

/* ---------- Tablet and small laptop, 701–1179px ---------- */
@media (min-width:701px) and (max-width:1179px){
 .g.g3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 /* the three proof points sit three across */
 .proof--cards{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px}
 .proof--cards>div:nth-child(3):last-child{grid-column:auto}
 .proof--cards>div{padding:20px 18px 22px}
}
@media (min-width:701px) and (max-width:1000px){
 /* request forms take the full width instead of a cramped half column */
 #request .g.g2{grid-template-columns:1fr!important;gap:28px}
}
@media (min-width:901px) and (max-width:1179px){
 .g.g4{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media (min-width:701px) and (max-width:1024px){
 /* step cards sit three across — no orphan under the first pair */
 .eng,.eng.eng--six{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 .eng .eng__i:last-child{grid-column:auto;max-width:none}
 .eng__i{padding:6px 12px 10px 4px}
 .eng__i::before{inset:0 16px 0 0}
 .eng__tab{display:block;width:50px}
 .eng__c{padding:18px 14px 16px}
 .eng__c p{max-width:none}
 .eng--six .eng__i .eng__tab::after{display:block}
 .eng--six .eng__i:nth-child(3n) .eng__tab::after,
 .eng .eng__i:last-child .eng__tab::after{display:none}
 /* compact tiles for the eight-item and four-item card sets */
 .g.g4{gap:14px!important}
 .g.g4 > .card{padding:18px 16px 18px!important}
}
@media (min-width:701px) and (max-width:820px){
 /* the Value Case keeps its two-by-two flow on portrait tablets */
 .vcf__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .vcf__c::after{top:50%;inset-inline-start:100%;width:20px;height:1px;transform:none}
 .vcf__c:nth-child(2n)::after{display:none}
 .vcf__c:nth-last-child(2)::before{top:50%;inset-inline-start:calc(100% + 13px);
  transform:translateY(-50%) rotate(45deg)}
 .vcf__c:nth-child(2n)::before{display:none}
}

/* ---------- Phone, up to 700px ---------- */
@media (max-width:700px){

 /* 1 · numbered step lists (.eng): left-aligned rows, number beside the text */
 .eng{gap:10px!important}
 .eng .eng__i{padding:0!important;grid-column:auto!important;max-width:none!important}
 .eng__i::before,.eng__tab{display:none!important}
 .eng__c{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:14px;
  align-items:start;text-align:start;padding:16px 44px 16px 14px;border-radius:10px;
  border-inline-start:3px solid var(--olive,#4C5536);
  box-shadow:0 1px 2px rgba(13,22,39,.06),0 8px 20px -14px rgba(13,22,39,.28)}
 .eng__i--b .eng__c{border-inline-start-color:var(--navy,#0D1627)}
 .band .eng__i--b .eng__c{border-inline-start-color:var(--olive-deep,#3F4A2F)}
 .eng__n{grid-column:1;grid-row:1 / span 4;width:36px;height:36px;font-size:13px}
 .eng__c h3{grid-column:2;margin:1px 0 0;font-size:12px;letter-spacing:.1em;line-height:1.35}
 .eng__c p{grid-column:2;margin:6px 0 0;font-size:13px;line-height:1.55;max-width:none}
 .eng__t{grid-column:2;margin:10px 0 0;font-size:11px;letter-spacing:.07em;line-height:1.5}
 .eng__ic{position:absolute;top:15px;inset-inline-end:14px;width:20px;height:20px;margin:0;opacity:.75}

 /* 1b · the six forum rules are short: two-up tiles */
 .eng.eng--six{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .eng--six .eng__c{display:flex;flex-direction:column;align-items:flex-start;
  padding:14px 13px 15px}
 .eng--six .eng__n{width:30px;height:30px;font-size:11.5px}
 .eng--six .eng__ic{top:15px;inset-inline-end:12px;width:19px;height:19px}
 .eng--six .eng__c h3{margin:12px 0 0;font-size:11px;letter-spacing:.08em}
 .eng--six .eng__c p{margin:6px 0 0;font-size:12.5px;line-height:1.5}

 /* 2 · four- and eight-item card sets: two-up tiles */
 .g.g4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .g.g4 > .card{padding:14px 13px 16px!important}
 .g.g4 > .card h3,#boardroom-ai-forum .g4 .card h3{font-size:15px;line-height:1.3;margin-top:8px}
 .g.g4 > .card h4{font-size:15px;line-height:1.3;margin:0 0 6px}
 .g.g4 > .card p,#boardroom-ai-forum .g4 .card p{font-size:12.5px;line-height:1.5;margin-top:6px}
 .g.g4 > .card .cbx__n{margin:0}

 /* 3 · three-item card sets: compact numbered rows under one rule */
 .g.g3{gap:0!important;margin-top:20px!important;border-top:3px solid var(--olive,#4C5536)}
 .g.g3 > .card{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;
  padding:16px 0 16px!important;border-top:0!important;background:none!important;
  border-bottom:1px solid #E3E6EA}
 .g.g3 > .card:last-child{border-bottom:0}
 .g.g3 > .card .cbx__n{grid-column:1;grid-row:1 / span 2;margin:3px 0 0}
 .g.g3 > .card h3,.g.g3 > .card p{grid-column:2}
 .g.g3 > .card h3{margin:0!important;font-size:16px;line-height:1.3}
 .g.g3 > .card p{margin-top:5px;font-size:13px;line-height:1.55}

 /* 4 · the EDGE Framework: two-by-two, as the model is drawn */
 .ef-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .ef-card{padding:16px 14px 16px!important}
 #framework .ef-l{font-size:34px;margin-bottom:10px}
 .ef-card h3{font-size:19px!important;margin:0 0 8px}
 .ef-card p{font-size:12.5px;line-height:1.5}
 #framework .ef-sub,.ef-sub{margin-top:12px;padding-top:10px;font-size:11px!important;letter-spacing:.05em;line-height:1.5}

 /* 5 · the Value Case: two-by-two tiles, the order carried by the numbers */
 .vcf__row{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .vcf__c{padding:14px 13px 15px}
 .vcf__c::after,.vcf__c::before{display:none!important}
 .vcf__hd{gap:8px;padding-bottom:10px}
 .vcf__ic{width:22px;height:22px}
 .vcf__n{font-size:11px;letter-spacing:.05em;white-space:normal;line-height:1.3}
 .vcf__h{font-size:17px!important;margin-top:10px;line-height:1.25}
 .vcf__p{font-size:12.5px;line-height:1.5;margin-top:6px}
 .vcf__tag{font-size:11px;margin-top:10px;letter-spacing:.05em;line-height:1.45}

 /* 6 · commercial basis: two-by-two tiles */
 .cbx{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
 .cbx__c{padding:14px 13px 16px}
 .cbx__n{margin:0 0 8px}
 .cbx__c h3{font-size:14.5px;margin:0 0 6px}
 .cbx__c p{font-size:12.5px;line-height:1.5}

 /* 7 · service lines: every picture sits above its own text */
 #lines .ln{display:flex!important;flex-direction:column;gap:12px!important;
  margin:0!important;padding:18px 0 22px;border-top:1px solid #E3E6EA}
 #lines .ln > .slot{order:-1;aspect-ratio:2/1!important}
 #lines .ln > div:not(.slot) > h3{font-size:19px!important;margin-top:10px!important}
 #lines .ln > div:not(.slot) > .sm{font-size:13.5px}
 #lines .ln > div:not(.slot) > .sm:last-child{padding-top:10px}

 /* 8 · the service matrix: one card per line, a four-stage track inside */
 .mx__sc{overflow:visible}
 .mx table{min-width:0!important;display:block}
 .mx thead{display:none}
 .mx tbody{display:block}
 .mx tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:6px;
  padding:16px 14px 14px;border-top:1px solid #EAEDF0}
 .mx tbody tr:first-child{border-top:0}
 .mx tbody td{display:block;padding:0!important;border:0!important;background:none!important;
  box-shadow:none!important}
 .mx tbody tr.mx--f{background:var(--olive-tint,#F4F5F0);box-shadow:inset 3px 0 0 var(--ol-mid,#8A966E)}
 .mx tbody td:first-child{grid-column:1 / -1;padding-bottom:4px!important}
 .mx tbody td:first-child b{font-size:15px}
 .mx tbody td:last-child{grid-column:1 / -1;padding-top:6px!important;font-family:var(--fui);
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--olive-deep,#3F4A2F)}
 .mx__s{height:46px!important}
 .mx__s.is-on::before{top:12px!important}
 .mx__d{top:12px!important}
 .mx__s:not(.is-on)::before{content:"";position:absolute;top:12px;left:50%;width:7px;height:7px;
  margin:-3.5px 0 0 -3.5px;border-radius:50%;border:1px solid #C3C9D1;background:#fff}
 .mx tbody td.mx__s::after{position:absolute;left:0;right:0;bottom:3px;text-align:center;
  font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;color:#98A1AD}
 .mx tbody td.mx__s.is-on::after{color:var(--olive-deep,#3F4A2F)}
 .mx tbody td:nth-child(2)::after{content:"Establish"}
 .mx tbody td:nth-child(3)::after{content:"Develop"}
 .mx tbody td:nth-child(4)::after{content:"Growth"}
 .mx tbody td:nth-child(5)::after{content:"Exit"}

 /* 9 · forum facts strip: two-by-two */
 .fst{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 12px!important}
}

/* very narrow phones keep single-file rows where two-up would cramp */
@media (max-width:359px){
 .g.g4,.eng.eng--six,.ef-cards,.vcf__row,.cbx{grid-template-columns:1fr!important}
 /* the stage track falls back to the framework letters */
 .mx tbody td:nth-child(2)::after{content:"E"}
 .mx tbody td:nth-child(3)::after{content:"D"}
 .mx tbody td:nth-child(4)::after{content:"G"}
 .mx tbody td:nth-child(5)::after{content:"E"}
}

/* ==========================================================================
   v8.9 — one responsive system: numbered drop-list navigation below 1024px,
   list sections banded to the shared stops, olive light on every hero
   ==========================================================================
   Chairman, 28 Sep: "make it full responsive mobile and tablet". Execution
   prompt: numbered drop list per edge-cap.net v37; grids drop to 2 at 768 and
   to 1 at 390 and below; a column never falls under 240px (230 at 1024).
   Bands: phone <=767 · tablet 768-1023 · small laptop 1024-1179 · desktop >=1180.
   Measured before: the open menu put the links in the middle column and pushed
   the actions off-screen (390 and 834), and 38 rows fell under the floor. */

/* ---------- 1 · the bar below 1024px: mark + trigger only ---------- */
@media (max-width:1023px){
 .hdr{--ea-pad:20px;--ea-bar:76px}
 .hdr .w{grid-template-columns:auto 1fr auto!important}
 .hdr nav,.hdr .aux{display:none!important}
 .hdr .menu{display:inline-flex!important;position:relative;grid-column:3;grid-row:1;justify-self:end;
  align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;
  margin:0 -8px 0 0;padding:0;border:0;background:none;cursor:pointer;
  font-size:0!important;line-height:0;letter-spacing:0;color:transparent!important;
  -webkit-tap-highlight-color:transparent}
 .hdr .menu::before,.hdr .menu::after{content:"";position:absolute;left:11px;width:22px;height:2px;
  border-radius:1px;background:#E7EAEE}
 .hdr .menu::before{top:15px;box-shadow:0 6px 0 #E7EAEE}
 .hdr .menu::after{top:27px}
 .hdr .menu:hover::before,.hdr .menu:hover::after{background:#fff}
}
@media (min-width:901px) and (max-width:1023px){
 .hdr{--ea-pad:clamp(24px,3vw,64px);--ea-bar:92px}
 .hdr.shrunk{--ea-bar:72px}
}

/* ---------- 2 · the sheet ---------- */
@media (max-width:1023px){
 .hdr:has(#mnu:checked){z-index:70;min-height:var(--ea-bar)}
 .hdr:has(#mnu:checked) .w{position:fixed;inset:0 0 auto 0;z-index:2;height:auto!important;
  max-height:100vh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;
  grid-template-rows:var(--ea-bar) auto auto;align-content:start;align-items:center!important;row-gap:0;flex-wrap:nowrap;
  background:var(--navy,#0D1627);padding-bottom:max(22px,env(safe-area-inset-bottom));
  box-shadow:0 28px 60px -28px rgba(0,0,0,.75)}
 .hdr:has(#mnu:checked) .w > a:first-of-type{grid-column:1;grid-row:1}
 .hdr:has(#mnu:checked) .menu{grid-column:3;grid-row:1}
 .hdr:has(#mnu:checked) .menu::before{top:21px;transform:rotate(45deg);box-shadow:0 0 0 transparent}
 .hdr:has(#mnu:checked) .menu::after{top:21px;transform:rotate(-45deg)}

 /* rows: numbered by counter, so a sixth page renumbers itself */
 .hdr:has(#mnu:checked) nav{display:block!important;grid-column:1 / -1;grid-row:2;justify-self:stretch;
  width:auto!important;max-width:none!important;flex-direction:initial;position:static;transform:none;margin:0 calc(-1 * var(--ea-pad));padding:6px var(--ea-pad) 0;
  border-top:1px solid rgba(203,213,225,.14);counter-reset:ea-nav}
 .hdr:has(#mnu:checked) nav a{display:flex!important;align-items:center;gap:16px;position:relative;
  min-height:56px;margin:0;padding:0 6px 0 16px!important;border:0!important;border-radius:0;
  font-family:var(--fui)!important;font-size:17px!important;font-weight:600!important;line-height:1.25;
  letter-spacing:.005em!important;text-transform:none!important;color:#E7EAEE!important;text-decoration:none;
  counter-increment:ea-nav;
  background:linear-gradient(rgba(203,213,225,.14),rgba(203,213,225,.14)) left bottom / 100% 1px no-repeat!important}
 .hdr:has(#mnu:checked) nav a::before{content:counter(ea-nav,decimal-leading-zero)!important;display:inline-block!important;
  position:static!important;inset:auto;width:auto!important;height:auto!important;min-width:22px;margin:0;
  background:none!important;transform:none;opacity:1;font-family:var(--fui);font-size:12px;font-weight:700;
  letter-spacing:.1em;color:var(--lol,#8A966E)}
 .hdr:has(#mnu:checked) nav a::after{display:none!important}
 .hdr:has(#mnu:checked) nav a:hover,.hdr:has(#mnu:checked) nav a:focus-visible{color:#fff!important}
 .hdr:has(#mnu:checked) nav a:hover::before,.hdr:has(#mnu:checked) nav a:focus-visible::before{color:var(--ol-hi,#C9D2A8)}
 /* current page: full-height olive bar, tinted row, brightened number */
 .hdr:has(#mnu:checked) nav a[aria-current]{color:#fff!important;
  background:linear-gradient(var(--lol,#8A966E),var(--lol,#8A966E)) left top / 3px 100% no-repeat,
   linear-gradient(rgba(203,213,225,.14),rgba(203,213,225,.14)) left bottom / 100% 1px no-repeat,
   linear-gradient(rgba(76,85,54,.30),rgba(76,85,54,.30)) 0 0 / 100% 100% no-repeat!important}
 .hdr:has(#mnu:checked) nav a[aria-current]::before{color:var(--ol-hi,#C9D2A8)}

 /* footer actions inside the sheet */
 .hdr:has(#mnu:checked) .aux{display:grid!important;grid-column:1 / -1;grid-row:3;justify-self:stretch;width:auto!important;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:18px 0 0;align-items:stretch}
 .hdr:has(#mnu:checked) .aux a{display:flex!important;align-items:center;justify-content:center;
  min-height:48px!important;margin:0;padding:12px 14px!important;border-radius:2px!important;
  font-family:var(--fui)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.06em!important;
  text-transform:uppercase;white-space:nowrap;transform:none!important;box-shadow:none!important}
 .hdr:has(#mnu:checked) .aux .hdr__login{border:1px solid rgba(201,210,168,.45)!important;background:transparent!important;color:#E3E8EF!important}
 .hdr:has(#mnu:checked) .aux .hdr__login::after{display:none!important}
 .hdr:has(#mnu:checked) .aux .btn--ons{background:var(--olive,#4C5536)!important;border:1px solid var(--olive,#4C5536)!important;color:#fff!important}
 .hdr:has(#mnu:checked) .aux .btn--ons:hover,.hdr:has(#mnu:checked) .aux .btn--ons:focus-visible{background:var(--olive-deep,#3F4A2F)!important}
 .hdr:has(#mnu:checked) .aux .hdr__login:hover,.hdr:has(#mnu:checked) .aux .hdr__login:focus-visible{background:rgba(138,150,110,.16)!important;color:#fff!important}

 /* scrim and scroll lock */
 html:has(#mnu:checked){overflow:hidden}
 body:has(#mnu:checked)::after{content:"";position:fixed;inset:0;z-index:65;background:rgba(3,8,17,.55)}
}
@media (max-width:420px){
 .hdr:has(#mnu:checked) .aux{grid-template-columns:1fr}
}

/* motion: the sheet drops, rows rise in turn, the bar grows, actions arrive last */
@media (max-width:1023px) and (prefers-reduced-motion:no-preference){
 .hdr .menu::before,.hdr .menu::after{transition:transform .38s var(--ease-settle,cubic-bezier(.16,1,.3,1)),
  top .38s var(--ease-settle,cubic-bezier(.16,1,.3,1)),box-shadow .16s ease,background-color .16s ease}
 .hdr .menu{transition:transform .22s var(--ease-settle,cubic-bezier(.16,1,.3,1))}
 .hdr .menu:active{transform:scale(.9)}
 body:has(#mnu:checked)::after{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  animation:eaScrim .42s var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .hdr:has(#mnu:checked) nav{animation:eaDrop .42s var(--ease-settle,cubic-bezier(.16,1,.3,1)) both}
 .hdr:has(#mnu:checked) nav a:nth-child(1){--ea-d:.08s}
 .hdr:has(#mnu:checked) nav a:nth-child(2){--ea-d:.155s}
 .hdr:has(#mnu:checked) nav a:nth-child(3){--ea-d:.23s}
 .hdr:has(#mnu:checked) nav a:nth-child(4){--ea-d:.305s}
 .hdr:has(#mnu:checked) nav a:nth-child(5){--ea-d:.38s}
 .hdr:has(#mnu:checked) nav a:nth-child(n+6){--ea-d:.455s}
 .hdr:has(#mnu:checked) nav a{animation:eaRow .5s var(--ease-settle,cubic-bezier(.16,1,.3,1)) var(--ea-d,0s) both;
  transition:transform .18s var(--ease-settle,cubic-bezier(.16,1,.3,1)),color .18s ease}
 .hdr:has(#mnu:checked) nav a::before{animation:eaNum .5s var(--ease-settle,cubic-bezier(.16,1,.3,1)) var(--ea-d,0s) both;
  transition:color .18s ease,transform .18s var(--ease-settle,cubic-bezier(.16,1,.3,1))}
 .hdr:has(#mnu:checked) nav a[aria-current]{animation:eaRow .5s var(--ease-settle,cubic-bezier(.16,1,.3,1)) var(--ea-d,0s) both,
  eaBar .55s var(--ease-settle,cubic-bezier(.16,1,.3,1)) calc(var(--ea-d,0s) + .3s) both}
 .hdr:has(#mnu:checked) nav a:active{transform:translateX(3px)}
 .hdr:has(#mnu:checked) nav a:active::before{color:var(--ol-hi,#C9D2A8);transform:scale(1.12)}
 .hdr:has(#mnu:checked) .aux{animation:eaRow .5s var(--ease-settle,cubic-bezier(.16,1,.3,1)) .42s both}
}
@keyframes eaScrim{from{opacity:0}to{opacity:1}}
@keyframes eaDrop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes eaRow{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes eaNum{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
@keyframes eaBar{from{background-size:3px 0%,100% 1px,100% 100%}to{background-size:3px 100%,100% 1px,100% 100%}}

/* ---------- 3 · list sections: desktop, where the measure is under the floor ---------- */
@media (min-width:1180px){
 /* Value Case and Commercial Basis measured 200-207px a column at 1280 and
    1440 alike (the content column caps); two by two gives them the measure */
 .vcf__row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .vcf__c:nth-child(2n)::after,.vcf__c:nth-child(2n)::before{display:none!important}
 .cbx{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;margin-inline:0!important}
 /* the Forum's eight outputs: three across, the last pair shares the row */
 .g.g4:has(> :nth-child(5)){grid-template-columns:repeat(6,minmax(0,1fr))!important}
 .g.g4:has(> :nth-child(5)) > *{grid-column:span 2}
 .g.g4:has(> :nth-child(5)) > :nth-last-child(2):nth-child(3n+1),
 .g.g4:has(> :nth-child(5)) > :last-child:nth-child(3n+2){grid-column:span 3}
 .g.g4:has(> :nth-child(5)) > :last-child:nth-child(3n+1){grid-column:1 / -1}
}
@media (min-width:1180px) and (max-width:1439px){
 /* the Framework bleeds past the column only from 1440; below it, two by two */
 .ef-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;margin-inline:0!important}
}
@media (min-width:1024px){
 /* the footprint key needs 260px before its lines stop laddering */
 .fp{grid-template-columns:minmax(310px,.44fr) 1fr!important}
}

/* ---------- 4 · tablet and small laptop, 768-1179: two across ---------- */
@media (min-width:768px) and (max-width:1179px){
 .g.g3,.g.g4,.cbx,.ef-cards,.vcf__row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .g.g3 > :last-child:nth-child(odd){grid-column:1 / -1}
 .g.g4 > .card{padding:20px 20px 20px!important}
 .vcf__c:nth-child(2n)::after,.vcf__c:nth-child(2n)::before{display:none!important}
 .vcf__c:nth-child(2n+1):not(:last-child)::after{display:block!important}
 .f2{grid-template-columns:1fr!important}
}
@media (min-width:768px) and (max-width:1023px){
 .proof--cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .proof--cards > div:nth-child(3):last-child{grid-column:1 / -1}
 /* step cards: two across; a set of three ends on one card across the row */
 .eng,.eng.eng--six,.eng.eng--three{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .eng > .eng__i:last-child:nth-child(odd){grid-column:1 / -1;max-width:none}
 .eng .eng__i .eng__tab::after,.eng--six .eng__i .eng__tab::after{display:block}
 .eng .eng__i:nth-child(2n) .eng__tab::after,.eng--six .eng__i:nth-child(2n) .eng__tab::after,
 .eng .eng__i:last-child .eng__tab::after{display:none!important}
 .fp{grid-template-columns:1fr!important}
 .fp-key{border-right:0!important;border-bottom:1px solid rgba(255,255,255,.08)}
}

/* ---------- 5 · phone, <=767: one column; the v8.8 row designs are restated
   for the whole band (v8.8 began them at 700, so 701-767 read as tablet) ---------- */
@media (max-width:767px){

 /* 1 · numbered step lists (.eng): left-aligned rows, number beside the text */
 .eng{gap:10px!important}
 .eng .eng__i{padding:0!important;grid-column:auto!important;max-width:none!important}
 .eng__i::before,.eng__tab{display:none!important}
 .eng__c{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:14px;
  align-items:start;text-align:start;padding:16px 44px 16px 14px;border-radius:10px;
  border-inline-start:3px solid var(--olive,#4C5536);
  box-shadow:0 1px 2px rgba(13,22,39,.06),0 8px 20px -14px rgba(13,22,39,.28)}
 .eng__i--b .eng__c{border-inline-start-color:var(--navy,#0D1627)}
 .band .eng__i--b .eng__c{border-inline-start-color:var(--olive-deep,#3F4A2F)}
 .eng__n{grid-column:1;grid-row:1 / span 4;width:36px;height:36px;font-size:13px}
 .eng__c h3{grid-column:2;margin:1px 0 0;font-size:12px;letter-spacing:.1em;line-height:1.35}
 .eng__c p{grid-column:2;margin:6px 0 0;font-size:13px;line-height:1.55;max-width:none}
 .eng__t{grid-column:2;margin:10px 0 0;font-size:11px;letter-spacing:.07em;line-height:1.5}
 .eng__ic{position:absolute;top:15px;inset-inline-end:14px;width:20px;height:20px;margin:0;opacity:.75}

 /* 3 · three-item card sets: compact numbered rows under one rule */
 .g.g3{gap:0!important;margin-top:20px!important;border-top:3px solid var(--olive,#4C5536)}
 .g.g3 > .card{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;
  padding:16px 0 16px!important;border-top:0!important;background:none!important;
  border-bottom:1px solid #E3E6EA}
 .g.g3 > .card:last-child{border-bottom:0}
 .g.g3 > .card .cbx__n{grid-column:1;grid-row:1 / span 2;margin:3px 0 0}
 .g.g3 > .card h3,.g.g3 > .card p{grid-column:2}
 .g.g3 > .card h3{margin:0!important;font-size:16px;line-height:1.3}
 .g.g3 > .card p{margin-top:5px;font-size:13px;line-height:1.55}

 /* 7 · service lines: every picture sits above its own text */
 #lines .ln{display:flex!important;flex-direction:column;gap:12px!important;
  margin:0!important;padding:18px 0 22px;border-top:1px solid #E3E6EA}
 #lines .ln > .slot{order:-1;aspect-ratio:2/1!important}
 #lines .ln > div:not(.slot) > h3{font-size:19px!important;margin-top:10px!important}
 #lines .ln > div:not(.slot) > .sm{font-size:13.5px}
 #lines .ln > div:not(.slot) > .sm:last-child{padding-top:10px}

 /* 8 · the service matrix: one card per line, a four-stage track inside */
 .mx__sc{overflow:visible}
 .mx table{min-width:0!important;display:block}
 .mx thead{display:none}
 .mx tbody{display:block}
 .mx tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:6px;
  padding:16px 14px 14px;border-top:1px solid #EAEDF0}
 .mx tbody tr:first-child{border-top:0}
 .mx tbody td{display:block;padding:0!important;border:0!important;background:none!important;
  box-shadow:none!important}
 .mx tbody tr.mx--f{background:var(--olive-tint,#F4F5F0);box-shadow:inset 3px 0 0 var(--ol-mid,#8A966E)}
 .mx tbody td:first-child{grid-column:1 / -1;padding-bottom:4px!important}
 .mx tbody td:first-child b{font-size:15px}
 .mx tbody td:last-child{grid-column:1 / -1;padding-top:6px!important;font-family:var(--fui);
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--olive-deep,#3F4A2F)}
 .mx__s{height:46px!important}
 .mx__s.is-on::before{top:12px!important}
 .mx__d{top:12px!important}
 .mx__s:not(.is-on)::before{content:"";position:absolute;top:12px;left:50%;width:7px;height:7px;
  margin:-3.5px 0 0 -3.5px;border-radius:50%;border:1px solid #C3C9D1;background:#fff}
 .mx tbody td.mx__s::after{position:absolute;left:0;right:0;bottom:3px;text-align:center;
  font-family:var(--fui);font-size:11px;font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;color:#98A1AD}
 .mx tbody td.mx__s.is-on::after{color:var(--olive-deep,#3F4A2F)}
 .mx tbody td:nth-child(2)::after{content:"Establish"}
 .mx tbody td:nth-child(3)::after{content:"Develop"}
 .mx tbody td:nth-child(4)::after{content:"Growth"}
 .mx tbody td:nth-child(5)::after{content:"Exit"}

 /* 9 · forum facts strip: two-by-two */
 .fst{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 12px!important}
}


/* the tiles become rows: v8.8 set these two across on phones, measured at
   146-174px a column and 3-5 lines of 2-3 words each; one across, with the
   number, letter or icon beside the text so the rows stay short */
@media (max-width:767px){
 .proof--cards{grid-template-columns:1fr!important}
 .proof--cards > div:nth-child(3):last-child{grid-column:auto}

 /* forum rules: the same numbered row as the process steps */
 .eng.eng--six{grid-template-columns:1fr!important;gap:10px!important}
 .eng--six .eng__c{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:14px;align-items:start;
  padding:16px 44px 16px 14px}
 .eng--six .eng__n{width:36px;height:36px;font-size:13px}
 .eng--six .eng__ic{top:15px;inset-inline-end:14px;width:20px;height:20px}
 .eng--six .eng__c h3{margin:1px 0 0;font-size:12px;letter-spacing:.1em;line-height:1.35}
 .eng--six .eng__c p{margin:6px 0 0;font-size:13px;line-height:1.55}
 .eng--six .eng__c,.eng--six .eng__c h3,.eng--six .eng__c p,.eng--six .eng__t{text-align:start!important}
 .eng--six .eng__c{min-height:0!important}
 .eng--six .eng__c h3{justify-self:start}
 #boardroom-ai-forum .eng--six .eng__c h3{min-height:0!important;display:block!important;justify-content:flex-start!important}
 #boardroom-ai-forum .eng--six .eng__c p{min-height:0!important}

 /* four- and eight-item card sets: rows under one olive rule */
 .g.g4{grid-template-columns:1fr!important;gap:0!important;margin-top:20px!important;border-top:3px solid var(--olive,#4C5536)}
 .g.g4 > .card:not([style*="background"]){padding:16px 0!important;background:none!important;border:0!important;
  border-bottom:1px solid #E3E6EA!important;box-shadow:none!important;border-radius:0}
 .g.g4 > .card:last-child{border-bottom:0!important}
 .g.g4 > .card h3,.g.g4 > .card h4,#boardroom-ai-forum .g4 .card h3{margin:0!important;font-size:16px;line-height:1.3}
 .g.g4 > .card p,#boardroom-ai-forum .g4 .card p{margin-top:5px;font-size:13px;line-height:1.55}
 .g.g4 > .card:has(> .cbx__n){display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px}
 .g.g4 > .card:has(> .cbx__n) > .cbx__n{grid-column:1;grid-row:1 / span 2;margin:3px 0 0}
 .g.g4 > .card:has(> .cbx__n) > h3,.g.g4 > .card:has(> .cbx__n) > p{grid-column:2}
 .g.g4 > .card:not(:has(> .cbx__n)){display:grid;grid-template-columns:78px minmax(0,1fr);column-gap:14px;align-items:baseline}
 .g.g4 > .card:not(:has(> .cbx__n)) > p{margin-top:0}
 .g.g4 > .card[style*="background"]{margin-top:12px;padding:16px 14px!important}

 /* the EDGE Framework: the stage letter beside its text */
 .ef-cards{grid-template-columns:1fr!important;gap:10px!important}
 .ef-card{display:grid!important;grid-template-columns:40px minmax(0,1fr);column-gap:14px;align-items:start;
  padding:16px 16px 16px 14px!important}
 #framework .ef-l,.ef-card .ef-l{grid-column:1;grid-row:1 / span 3;font-size:34px!important;line-height:1!important;margin:0!important}
 .ef-card h3{grid-column:2;margin:2px 0 6px!important;font-size:19px!important}
 .ef-card p{grid-column:2;margin:0;font-size:13px;line-height:1.55}
 #framework .ef-sub,.ef-card .ef-sub{grid-column:2;margin-top:10px!important;padding-top:8px!important}

 /* the Value Case: the stage icon beside its card, the order in the numbers */
 .vcf__row{grid-template-columns:1fr!important;gap:10px!important}
 .vcf__c{display:grid!important;grid-template-columns:26px minmax(0,1fr);column-gap:12px;align-items:start;
  padding:14px 16px 16px 14px!important}
 .vcf__c::after,.vcf__c::before{display:none!important}
 .vcf__hd{display:contents!important}
 .vcf__ic{grid-column:1;grid-row:1 / span 4;width:24px!important;height:24px!important;margin-top:1px}
 .vcf__n,.vcf__h,.vcf__p,.vcf__tag{grid-column:2}
 .vcf__n{font-size:11px!important;letter-spacing:.06em!important;white-space:normal!important}
 .vcf__h{font-size:18px!important;margin-top:6px!important;line-height:1.25!important}
 .vcf__p{font-size:13px!important;line-height:1.55!important;margin-top:4px!important}
 .vcf__tag{font-size:11px!important;margin-top:8px!important}

 /* commercial basis: numbered rows under one olive rule */
 .cbx{grid-template-columns:1fr!important;gap:0!important;border-top:3px solid var(--olive,#4C5536)}
 .cbx__c{display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:12px;padding:16px 0!important;
  background:none!important;border:0!important;border-bottom:1px solid #E3E6EA!important;box-shadow:none!important;border-radius:0}
 .cbx__c:last-child{border-bottom:0!important}
 .cbx__c > .cbx__n{grid-column:1;grid-row:1 / span 2;margin:3px 0 0!important}
 .cbx__c > h3,.cbx__c > p{grid-column:2}
 .cbx__c > h3{margin:0!important;font-size:16px!important;line-height:1.3}
 .cbx__c > p{margin-top:5px!important;font-size:13px!important;line-height:1.55}

 /* footer: the link columns share a row, each address takes the full width
    (at 165px the address lines wrapped: measured 1 and 3 wrapped lines) */
 .ftr__nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ftr__top--v83 .ftr__col.ftr__col--addr{grid-column:1 / -1!important;grid-row:auto!important}
}
@media (max-width:359px){
 .mx tbody td:nth-child(2)::after{content:"E"}
 .mx tbody td:nth-child(3)::after{content:"D"}
 .mx tbody td:nth-child(4)::after{content:"G"}
 .mx tbody td:nth-child(5)::after{content:"E"}
}
@media (forced-colors:active){
 .hdr .menu::before,.hdr .menu::after{background:CanvasText!important;box-shadow:none}
 .hdr .menu::before{box-shadow:0 6px 0 CanvasText}
 .hdr:has(#mnu:checked) .menu::before{box-shadow:none}
}
