/* ==========================================================
   EnergyPlus homepage
   Tokens first. Change colours here and the whole page follows.
   ========================================================== */
/* Outfit, self-hosted (SIL Open Font License, see fonts/OFL.txt). One variable file, weights 100-900. */
@font-face{font-family:'Mulish';src:url('../fonts/Outfit-VF.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --pine-950:#0A2420;
  --pine-900:#0F2F2A;
  --pine-800:#173F38;
  --pine-700:#21534A;
  --lime:#C5DF59;
  --lime-hi:#D6EC70;
  --lime-deep:#A8C63B;
  --lime-ink:#4C6A10;      /* lime-family colour that is readable as text on white */
  --lime-tint:#EDF4CC;
  --amber:#E3A63C;
  --mist:#F2F5EE;
  --paper:#FFFFFF;
  --line:#D9E1D5;
  --ink:#12231E;
  --muted:#51615B;
  --on-dark:#D5E0DA;
  --on-dark-muted:#9DB1A8;
  --focus:#4C6A10;
  --radius:6px;
  --max:1240px;
  --gut:clamp(20px,4vw,48px);
  --font:'Mulish',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;

  /* Optional: drop a real site photograph behind the hero.
     --hero-photo:url('images/hero.jpg');  */
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:106.25%} /* Outfit has a smaller x-height than most grotesques, so the root is nudged up */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font);font-size:1.0625rem;line-height:1.6;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}
.on-dark{--focus:var(--lime)}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--lime);color:var(--pine-900);padding:10px 16px;font-weight:700;border-radius:4px}
.skip:focus{left:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.sec{padding-block:clamp(64px,9vw,120px)}
.bg-mist{background:var(--mist)}
.bg-pine{background:var(--pine-900);color:var(--on-dark)}
.bg-lime{background:var(--lime);color:var(--pine-900)}
[id]{scroll-margin-top:88px}

/* ---------- Type ---------- */
h1,h2,h3{font-weight:700;letter-spacing:-.022em;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(2.5rem,4.4vw,4.1rem);font-weight:700;letter-spacing:-.03em;line-height:1.02}
h2{font-size:clamp(2rem,3.9vw,3.4rem)}
h3{font-size:1.4rem;font-weight:600;letter-spacing:-.012em;line-height:1.2}
.lead{font-size:clamp(1.08rem,1.5vw,1.25rem);line-height:1.55;max-width:58ch}
.muted{color:var(--muted)}
.bg-pine .muted{color:var(--on-dark-muted)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.98rem;font-weight:600;color:var(--lime)}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor}
.link{display:inline-block;font-weight:700;border-bottom:2px solid var(--lime-deep);padding-bottom:2px;transition:border-color .15s,color .15s}
.link:hover{border-color:var(--ink)}
.bg-pine .link{border-color:var(--lime)}
.bg-pine .link:hover{border-color:#fff}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 24px;border:2px solid transparent;border-radius:4px;font:inherit;font-size:.98rem;font-weight:700;line-height:1.1;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;text-align:center}
.btn-lime{background:var(--lime);color:var(--pine-900)}
.btn-lime:hover{background:var(--lime-hi)}
.btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-pine{background:var(--pine-900);color:#fff}
.btn-pine:hover{background:var(--pine-700)}
.btn-line{border-color:var(--pine-900);color:var(--pine-900)}
.btn-line:hover{background:var(--pine-900);color:#fff}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--pine-900);border-bottom:1px solid rgba(255,255,255,.09)}
.bar{display:flex;align-items:center;gap:32px;height:80px}
.logo{display:flex;align-items:center;gap:11px;color:var(--lime);flex:none}
.nav{margin-left:auto}
.nav>ul{display:flex;align-items:center;gap:6px}
.nav a{display:block;padding:10px 14px;font-size:.95rem;font-weight:600;color:var(--on-dark);border-radius:4px;transition:color .15s,background-color .15s}
.nav a:hover{color:#fff;background:rgba(255,255,255,.07)}
.has-sub{position:relative}
.has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.sub{position:absolute;left:0;top:100%;min-width:250px;padding:8px;background:var(--pine-800);border:1px solid rgba(255,255,255,.12);border-radius:8px;display:none}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}
.sub a{padding:12px 14px}
.sub small{display:block;font-size:.82rem;font-weight:400;color:var(--on-dark-muted);margin-top:2px}
.nav__cta{display:none}
.bar>.btn{padding:12px 20px;font-size:.92rem}
.burger{display:none;margin-left:auto;width:46px;height:46px;background:none;border:1px solid rgba(255,255,255,.25);border-radius:6px;color:#fff;cursor:pointer;padding:0}
.burger span{display:block;width:20px;height:2px;background:currentColor;margin:5px auto;transition:transform .2s,opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--pine-900);color:#fff}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--hero-photo,none);background-size:cover;background-position:center}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(90deg,rgba(15,47,42,.97) 0%,rgba(15,47,42,.9) 48%,rgba(15,47,42,.7) 100%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 56px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5.4fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(48px,7vw,96px) clamp(56px,8vw,112px)}
.hero h1{margin:22px 0 26px}
.hero h1 .ln{display:block}
.hero .lead{color:var(--on-dark)}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}
.hero__note{display:flex;align-items:center;gap:14px;margin-top:44px;color:var(--on-dark);font-size:.98rem}
.hero__note::before{content:"";flex:none;width:34px;height:2px;background:var(--lime)}

.profile{background:rgba(10,36,32,.72);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:22px 22px 20px;backdrop-filter:blur(6px)}
.profile__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px}
.profile__title{font-size:1.05rem;font-weight:700;color:#fff}
.tag{font-size:.8rem;font-weight:600;color:var(--on-dark-muted);border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:3px 10px;white-space:nowrap}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.85rem;color:var(--on-dark);margin:10px 0 4px}
.legend i{display:inline-block;width:18px;height:3px;vertical-align:middle;margin-right:8px;border-radius:2px}
.legend .k-demand{background:#fff}
.legend .k-solar{background:var(--lime);height:10px;opacity:.85}
.legend .k-peak{background:var(--amber);height:10px;opacity:.45}
.legend .k-fc{background:#fff;height:3px}
.legend .k-bad{background:var(--amber);height:10px}
.chart{width:100%;height:auto;overflow:visible}
.chart .gl{stroke:rgba(255,255,255,.14);stroke-width:1}
.chart .ax{fill:var(--on-dark-muted);font-size:15px;font-family:var(--font)}
.chart .peak{fill:var(--amber);opacity:.13}
.chart .peak-t{fill:var(--amber);font-size:14px;font-weight:600;font-family:var(--font)}
.chart .demand{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chart .solar-l{fill:none;stroke:var(--lime);stroke-width:2.5;stroke-linecap:round}
.chart .solar-a{fill:var(--lime);opacity:.26}
.chart .mk{fill:var(--pine-900);stroke:var(--amber);stroke-width:3}
.chart .lead-l{stroke:var(--amber);stroke-width:1.5;stroke-dasharray:3 3}
.chart .mk-t{fill:var(--amber);font-size:14.5px;font-weight:700;font-family:var(--font)}
.chart .col{fill:var(--lime)}
.chart .col.bad{fill:var(--amber)}
.chart .fc{stroke:#fff;stroke-width:2.5;stroke-linecap:round}
.chart .brk{stroke:var(--amber);stroke-width:2}
.profile__read{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);font-size:.95rem;line-height:1.5;color:var(--on-dark)}
.profile__read b{color:#fff}

/* one orchestrated moment: the lines draw once on load */
.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.9s .35s cubic-bezier(.35,.6,.2,1) forwards}
.fade{opacity:0;animation:fade 1.1s 1.1s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{to{opacity:1}}
@media (prefers-reduced-motion:reduce){
  .draw{animation:none;stroke-dashoffset:0}
  .fade{animation:none;opacity:1}
}

/* ---------- Model rail (sits where SOLINK shows client logos) ---------- */
.rail{background:var(--lime);color:var(--pine-900)}
.rail__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.rail a{display:block;padding:28px 28px 30px;border-left:1px solid rgba(15,47,42,.22)}
.rail a:first-child{border-left:0;padding-left:0}
.rail a:hover .rail__name{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:6px}
.rail__name{display:block;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:700;letter-spacing:-.02em;line-height:1.1}
.rail__line{display:block;margin-top:4px;font-size:1rem;color:#27401c}

/* ---------- Section heads ---------- */
.head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,88px);align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.head p+p{margin-top:1em}
.head .link{margin-top:1.4em}

/* ---------- Accountability gap ---------- */
.lanes{border-top:1px solid var(--line)}
.lanes__row{display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:0 24px;padding-block:14px;border-bottom:1px solid var(--line)}
.lanes__label{font-weight:600;font-size:.98rem}
.lanes__track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.lanes__stage{font-size:.86rem;font-weight:600;color:var(--muted);text-align:left;padding-left:2px;overflow:hidden;text-overflow:ellipsis}
.lanes__row--head{padding-block:12px}
.bar-x{grid-column:var(--a) / var(--b);min-width:0;overflow:hidden;display:flex;align-items:center;min-height:46px;padding:0 14px;border-radius:4px;background:#E1E8DC;color:var(--ink);font-size:.9rem;font-weight:600;line-height:1.2}
.bar-x.gap{background:transparent;border:2px dashed #B7C3B0;color:var(--muted);font-weight:500}
.lanes__row--us{background:var(--lime-tint);margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);border-bottom:0}
.lanes__row--us .lanes__label{font-weight:700}
.bar-x.us{background:var(--lime);min-height:54px;font-weight:700;font-size:1rem;color:var(--pine-900)}
.lanes__cap{margin-top:22px;max-width:70ch;color:var(--muted)}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border:1px solid var(--line)}
.pillar{display:flex;flex-direction:column;padding:34px 32px 32px;border-left:1px solid var(--line);border-top:5px solid var(--lime)}
.pillar:first-child{border-left:0}
.pillar__icon{width:56px;height:56px;border-radius:4px;background:var(--lime-tint);display:grid;place-items:center;margin-bottom:26px}
.pillar__icon svg{width:34px;height:34px;stroke:var(--pine-900);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pillar h3{font-size:2rem;font-weight:700;letter-spacing:-.025em}
.pillar__lead{margin:10px 0 22px;font-size:1.12rem;line-height:1.4;font-weight:600}
@media (min-width:1001px){.pillar__lead{min-height:2.8em}}
.ticks{display:grid;gap:11px;color:var(--muted);font-size:1rem;line-height:1.45}
.ticks li{position:relative;padding-left:24px}
.ticks li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;background:var(--lime-deep);clip-path:polygon(0 50%,38% 88%,100% 12%,88% 0,38% 62%,12% 38%)}
.bg-pine .ticks{color:var(--on-dark)}
.bg-pine .ticks li::before{background:var(--lime)}
.offer{margin-top:auto;padding-top:26px}
.offer__box{background:var(--mist);border-radius:4px;padding:18px 20px;margin-bottom:20px}
.offer__box strong{display:block;font-size:1rem}
.offer__box span{display:block;margin-top:4px;font-size:.95rem;line-height:1.45;color:var(--muted)}

/* ---------- Process ---------- */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 28px;counter-reset:s}
.step{position:relative;padding-top:34px;border-top:2px solid var(--line)}
.step::before{content:"";position:absolute;top:-8px;left:0;width:14px;height:14px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px var(--paper)}
.step__n{font-size:2.6rem;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--pine-900)}
.step__stage{display:inline-block;margin:14px 0 6px;font-size:.85rem;font-weight:700;color:var(--lime-ink)}
.step h3{font-size:1.3rem;margin-bottom:10px}
.step p{font-size:.98rem;line-height:1.5;color:var(--muted)}
.entry{margin-top:clamp(48px,6vw,80px);padding:clamp(24px,3vw,40px);background:var(--mist);border-radius:8px;display:grid;grid-template-columns:minmax(0,3.2fr) repeat(3,minmax(0,3fr));gap:clamp(20px,3vw,40px);align-items:start}
.entry h3{font-size:1.6rem}
.entry b{display:block;margin-bottom:6px;font-size:1.02rem}
.entry p{font-size:.98rem;line-height:1.5;color:var(--muted)}

/* ---------- Performance ---------- */
.perf{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6.4fr);gap:clamp(32px,6vw,96px);align-items:center}
.perf h2{color:#fff;margin-bottom:22px}
.perf .ticks{margin:30px 0 28px;font-size:1.05rem}
.perf__note{font-size:.95rem;color:var(--on-dark-muted);max-width:52ch}
.perf .profile{background:rgba(255,255,255,.04)}
.perf .profile__read{color:var(--on-dark-muted)}

/* ---------- Audiences ---------- */
.aud{border-top:2px solid var(--pine-900)}
.aud__row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,4fr);gap:clamp(16px,3vw,48px);align-items:start;padding-block:30px;border-bottom:1px solid var(--line)}
.aud__row h3{font-size:1.55rem}
.aud__row p{color:var(--muted);font-size:1.02rem;line-height:1.55}
.aud__row blockquote{font-size:1.08rem;line-height:1.4;font-weight:600;padding-left:18px;border-left:4px solid var(--lime)}

/* ---------- Independence ---------- */
.indep{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}
.indep h2{margin-bottom:22px}
.indep .ticks{margin-top:30px;gap:15px;color:var(--ink);font-size:1.05rem}
.hub{width:100%;height:auto;max-width:560px;margin-inline:auto}
.hub text{font-family:var(--font)}
.hub .ring{fill:none;stroke:var(--pine-900);stroke-width:2}
.hub .core{fill:var(--lime)}
.hub .core-t{fill:var(--pine-900);font-size:14px;font-weight:800}
.hub .ring-t{fill:var(--pine-900);font-size:12px;font-weight:700}
.hub .spoke{stroke:#9fb09a;stroke-width:1.5}
.hub .node.dlx{fill:var(--pine-900)}
.hub .node.ext{fill:var(--paper);stroke:var(--pine-900);stroke-width:2;stroke-dasharray:5 4}
.hub .node-t{fill:#fff;font-size:15px;font-weight:700}
.hub .ext-t{fill:var(--pine-900);font-size:13px}
.hub-key{display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;margin-top:12px;font-size:.88rem;color:var(--muted)}
.hub-key i{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:8px;background:var(--pine-900)}
.hub-key i.ext{background:var(--paper);border:2px dashed var(--pine-900)}
.hub-cap{margin-top:10px;text-align:center;font-weight:600}

/* ---------- Closing CTA ---------- */
.cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,5vw,80px);align-items:center}
.cta h2{max-width:20ch}
.cta p{margin-top:18px;max-width:56ch;font-size:1.15rem;line-height:1.55;color:#27401c}
.cta__actions{display:flex;flex-direction:column;gap:12px;min-width:250px}

/* ---------- Newsletter ---------- */
.news{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,80px);align-items:center}
.news h2{font-size:clamp(1.7rem,2.8vw,2.3rem)}
.news p{margin-top:10px;color:var(--muted)}
.news form{display:grid;gap:14px}
.news__row{display:flex;gap:10px}
.news input[type=email]{flex:1;min-width:0;font:inherit;padding:14px 16px;border:2px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}
.news input[type=email]:focus{outline:none;border-color:var(--pine-900)}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.9rem;line-height:1.45;color:var(--muted)}
.check input{margin-top:3px;width:18px;height:18px;accent-color:var(--pine-900);flex:none}
.news__status{font-size:.92rem;min-height:1.4em;color:var(--lime-ink);font-weight:600}

/* ---------- Footer ---------- */
.site-footer{background:var(--pine-950);color:var(--on-dark);padding-top:72px}
.foot{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,56px);padding-bottom:56px}
.foot p{color:var(--on-dark-muted);font-size:.97rem;max-width:34ch;margin:20px 0 24px}
.foot h4{font-size:.95rem;font-weight:700;color:#fff;margin-bottom:16px}
.foot li{margin-bottom:10px;font-size:.95rem;color:var(--on-dark-muted)}
.foot a{transition:color .15s}
.foot a:hover{color:var(--lime)}
.foot address{font-style:normal;font-size:.95rem;line-height:1.6;color:var(--on-dark-muted)}
.foot address span{display:block;margin-bottom:10px}
.foot__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;padding-block:24px;border-top:1px solid rgba(255,255,255,.13);font-size:.86rem;color:var(--on-dark-muted)}
.foot__bottom a:hover{color:var(--lime)}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:48px}
  .entry{grid-template-columns:1fr 1fr}
  .entry>div:first-child{grid-column:1/-1}
}
@media (max-width:1000px){
  .bar>.btn{display:none}
  .burger{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;margin:0;background:var(--pine-900);border-bottom:1px solid rgba(255,255,255,.12);padding:8px var(--gut) 24px;display:none;max-height:calc(100vh - 80px);overflow:auto}
  .nav.is-open{display:block}
  .nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .nav a{padding:14px 4px;border-bottom:1px solid rgba(255,255,255,.09);border-radius:0;font-size:1.05rem}
  .has-sub>a::after{display:none}
  .sub{position:static;display:block;min-width:0;padding:0 0 0 14px;background:none;border:0}
  .sub a{font-size:.98rem;padding:11px 4px}
  .sub small{display:none}
  .nav__cta{display:block;margin-top:20px}
  .nav__cta a{border:0;padding:16px 24px;background:var(--lime);color:var(--pine-900);text-align:center;border-radius:4px;font-weight:700}
  .hero__grid,.perf,.indep,.news{grid-template-columns:1fr}
  .hero .profile,.perf .profile{max-width:720px}
  .head{grid-template-columns:1fr;align-items:start}
  .pillars{grid-template-columns:1fr}
  .pillar{border-left:0;border-top:5px solid var(--lime)}
  .pillar+.pillar{border-top:5px solid var(--lime)}
  .cta{grid-template-columns:1fr}
  .cta__actions{flex-direction:row;flex-wrap:wrap;min-width:0}
  .foot{grid-template-columns:1fr 1fr}
  .foot>div:first-child{grid-column:1/-1}
  .aud__row{grid-template-columns:1fr 1fr}
  .aud__row h3{grid-column:1/-1}
}
@media (max-width:720px){
  .rail__grid{grid-template-columns:1fr}
  .rail a,.rail a:first-child{padding:20px 0 22px;border-left:0;border-top:1px solid rgba(15,47,42,.22)}
  .rail a:first-child{border-top:0}
  .lanes__row{grid-template-columns:1fr;gap:8px;padding-block:14px}
  .lanes__row--head .lanes__label{display:none}
  .lanes__row--head{padding-block:10px}
  .lanes__stage{font-size:.66rem;letter-spacing:-.01em}
  .bar-x{font-size:.78rem;padding:0 8px;min-height:42px}
  .bar-x.us{font-size:.85rem}
  .bar-x.gap{font-size:.62rem;padding:0 2px;border-width:1px;justify-content:center}
  .steps{grid-template-columns:1fr;gap:0}
  .step{padding:0 0 34px 38px;border-top:0;border-left:2px solid var(--line);margin-left:6px}
  .step::before{top:0;left:-8px}
  .step__n{font-size:2rem}
  .entry{grid-template-columns:1fr}
  .aud__row{grid-template-columns:1fr}
  .news__row{flex-direction:column}
  .foot{grid-template-columns:1fr 1fr}
  .profile{padding:18px 16px}
  .btn{width:100%}
  .hero__actions{flex-direction:column}
  .cta__actions{flex-direction:column;width:100%}
}
@media (max-width:420px){
  .foot{grid-template-columns:1fr}
}

/* ==========================================================
   Inner pages (Audit, Strategy, Performance)
   ========================================================== */

/* ---------- Logo image ---------- */
.logo img{display:block;height:58px;width:auto}
.site-footer .logo img{height:66px}
@media (max-width:420px){.logo img{height:46px}}
.logo{font-size:1.5rem;font-weight:700;letter-spacing:-.02em} /* alt text shows in brand colour if the image is missing */
.nav a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.07)}
.sub a[aria-current="page"]{color:var(--lime)}

/* ---------- Breadcrumb + sub-page hero ---------- */
.crumbs{display:flex;flex-wrap:wrap;font-size:.92rem;color:var(--on-dark-muted);margin-bottom:26px}
.crumbs a{transition:color .15s}
.crumbs a:hover{color:var(--lime)}
.crumbs>*+*::before{content:"/";margin:0 10px;color:rgba(255,255,255,.3)}
.crumbs [aria-current]{color:var(--on-dark)}
.hero--sub .hero__grid{padding-block:clamp(36px,4.5vw,64px) clamp(52px,6vw,92px)}
.hero--sub h1{font-size:clamp(2.2rem,3.9vw,3.5rem);margin:20px 0 22px;letter-spacing:-.028em;line-height:1.05}

/* ---------- Stage navigator (current stage marked) ---------- */
.rail a.is-current{box-shadow:inset 0 -6px 0 var(--pine-900)}
.rail__here{display:block;margin-top:8px;font-size:.88rem;font-weight:700;color:var(--pine-900)}

/* ---------- Generic split + cover grids ---------- */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}
.split h2{margin-bottom:0}
.split p+p{margin-top:1em}
.split .link{margin-top:1.4em}
.cover{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px clamp(24px,3vw,48px)}
.cover--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cover--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cover__item{border-top:2px solid var(--pine-900);padding:20px 0 28px}
.cover__item h3{font-size:1.25rem;margin-bottom:10px}
.cover__item p{color:var(--muted);font-size:1rem;line-height:1.55}
.bg-pine .cover__item{border-top-color:var(--lime)}
.bg-pine .cover__item h3{color:#fff}
.bg-pine .cover__item p{color:var(--on-dark)}
.cover__item{display:flex;flex-direction:column;align-items:flex-start}
.cover__item p{margin-bottom:14px}
.cover__item a.link{margin-top:auto;font-size:.95rem}
.bg-pine h2{color:#fff}
.sec-tight{padding-block:clamp(48px,6vw,80px)}

/* ---------- Step variants ---------- */
.steps--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.step__meta{margin-top:14px;font-size:.93rem;line-height:1.5;color:var(--muted)}
.step__meta b{color:var(--ink)}
.steps__loop{margin-top:38px;font-weight:600;color:var(--muted);max-width:70ch}

/* ---------- Report / contents card ---------- */
.doc{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:clamp(22px,3vw,34px)}
.doc__head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding-bottom:16px;border-bottom:2px solid var(--pine-900)}
.doc__head b{font-size:1.15rem}
.doc__head span{font-size:.85rem;font-weight:600;color:var(--muted)}
.doc ol{counter-reset:d}
.doc li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 6px;padding:14px 0;border-bottom:1px solid var(--line);counter-increment:d}
.doc li::before{content:counter(d,decimal-leading-zero);font-weight:700;color:var(--lime-ink)}
.doc li b{display:block;font-size:1.02rem}
.doc li span{display:block;font-size:.93rem;color:var(--muted);line-height:1.45;margin-top:2px}
.doc li:last-child{border-bottom:0;padding-bottom:0}

/* ---------- Independence block ---------- */
.callout{background:var(--lime-tint);border-left:6px solid var(--lime-deep);border-radius:4px;padding:clamp(22px,3vw,32px)}
.callout h3{font-size:1.35rem;margin-bottom:10px}
.callout p{color:#33461a;max-width:72ch}
.callout p+p{margin-top:.8em}
.callout .link{margin-top:1em}

/* ---------- "Start here if" ---------- */
.fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.fit__item{background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--lime);border-radius:4px;padding:24px 26px}
.fit__item b{display:block;font-size:1.15rem;line-height:1.3;margin-bottom:6px}
.fit__item p{color:var(--muted);font-size:1rem;line-height:1.5}

/* ---------- How we charge ---------- */
.terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--pine-900)}
.terms__item{padding:26px 28px 6px 0}
.terms__item+.terms__item{padding-left:28px;border-left:1px solid var(--line)}
.terms__item b{display:block;font-size:1.3rem;line-height:1.2;margin-bottom:8px}
.terms__item p{color:var(--muted);font-size:1rem;line-height:1.55}

/* ---------- FAQ ---------- */
.faq-list{max-width:900px}
.faq{border-bottom:1px solid var(--line)}
.faq:first-of-type{border-top:2px solid var(--pine-900)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-weight:700;font-size:1.15rem;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--lime-tint);font-size:1.35rem;line-height:1;font-weight:600}
.faq[open] summary::after{content:"\2212";background:var(--lime)}
.faq p{padding:0 56px 24px 0;color:var(--muted);max-width:70ch}

/* ---------- Portfolio table (Performance hero) ---------- */
.pf{margin-top:12px}
.pf__row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.15fr) minmax(0,1.5fr);gap:10px 18px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.13);font-size:.92rem}
.pf__row--head{border-top:0;padding:4px 0 8px;color:var(--on-dark-muted);font-size:.82rem;font-weight:600}
.pf__site b{display:block;color:#fff;font-size:.98rem}
.pf__site small{color:var(--on-dark-muted);font-size:.84rem}
.meter{display:flex;align-items:center;gap:12px}
.meter i{position:relative;flex:1;height:10px;background:rgba(255,255,255,.13);border-radius:2px}
.meter i::before{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--v) / 110 * 100%);background:var(--lime);border-radius:2px}
.meter i::after{content:"";position:absolute;top:-4px;bottom:-4px;left:calc(100 / 110 * 100%);width:2px;background:#fff}
.meter.low i::before{background:var(--amber)}
.meter em{font-style:normal;font-weight:700;color:#fff;min-width:3.1em;text-align:right}
.pf__status b{display:block;font-size:.92rem}
.pf__status small{display:block;color:var(--on-dark-muted);font-size:.82rem;line-height:1.35;margin-top:1px}
.pf__status.ok b{color:var(--lime)}
.pf__status.bad b{color:var(--amber)}
.pf__status.watch b{color:#fff}
.pf__key{margin-top:4px;font-size:.82rem;color:var(--on-dark-muted)}

/* ---------- Extra chart classes ---------- */
.chart .zero{stroke:rgba(255,255,255,.45);stroke-width:1.5}
.chart .cash{fill:none;stroke-linecap:round;stroke-linejoin:round}
.chart .cash.a{stroke:#9DB1A8;stroke-width:3;stroke-dasharray:2 7}
.chart .cash.b{stroke:#fff;stroke-width:3}
.chart .cash.c{stroke:var(--lime);stroke-width:4}
.chart .lab{font-size:15.5px;font-weight:700;font-family:var(--font)}
.chart .lab.a{fill:#B9C9C2}.chart .lab.b{fill:#fff}.chart .lab.c{fill:var(--lime)}
.chart .pb{fill:var(--pine-900);stroke:var(--lime);stroke-width:3}
.chart .s-fix{fill:#6F8A80}
.chart .s-en{fill:var(--lime)}
.chart .s-dem{fill:var(--amber)}
.chart .note{fill:var(--on-dark);font-size:15px;font-family:var(--font)}
.legend .k-fix{background:#6F8A80;height:10px}
.legend .k-en{background:var(--lime);height:10px}
.legend .k-dem{background:var(--amber);height:10px}

@media (max-width:1080px){
  .steps--4{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
  .cover--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  .split{grid-template-columns:1fr}
  .cover{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fit{grid-template-columns:1fr}
  .hero--sub .profile{max-width:720px}
}
@media (max-width:720px){
  .chart .ax,.chart .note{font-size:16px}
  .chart .mk-t{font-size:15px}
  .chart .peak-t{font-size:14px}
  .steps,.steps--3,.steps--4{grid-template-columns:1fr;gap:0}
  .cover,.cover--4,.cover--2{grid-template-columns:1fr}
  .terms{grid-template-columns:1fr}
  .terms__item,.terms__item+.terms__item{padding:22px 0 8px;border-left:0}
  .terms__item+.terms__item{border-top:1px solid var(--line)}
  .rail a.is-current,.rail a.is-current:first-child{box-shadow:inset 6px 0 0 var(--pine-900);padding-left:20px}
  .faq summary{font-size:1.05rem}
  .faq p{padding-right:0}
  .pf__row{grid-template-columns:1fr;gap:8px}
  .pf__row--head{display:none}
  .meter{max-width:none}
  .doc li{grid-template-columns:38px minmax(0,1fr)}
}

/* ---------- Small extras ---------- */
.sec-title{margin-bottom:clamp(32px,4vw,56px);max-width:24ch}
.bg-mist .step::before{box-shadow:0 0 0 5px var(--mist)}
.hero--sub .hero__note{margin-top:36px}

/* ==========================================================
   Company pages: Industries, How we work, About, Insights,
   Contact, Privacy
   ========================================================== */

/* ---------- Footer credit ---------- */
.credit{text-decoration:underline;text-decoration-color:rgba(255,255,255,.3);text-underline-offset:4px;transition:color .15s,text-decoration-color .15s}
.credit:hover{color:var(--lime);text-decoration-color:var(--lime)}

/* ---------- Hero without a visual ---------- */
.hero--plain .hero__grid{grid-template-columns:minmax(0,1fr)}
.hero--plain .hero__grid>div{max-width:860px}
.hero--plain h1{max-width:20ch}
.hero--plain .hero__grid{padding-block:clamp(28px,3.5vw,48px) clamp(44px,5vw,72px)}
.hero__meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:26px;font-size:.98rem;color:var(--on-dark)}
.hero__meta span{display:inline-flex;align-items:center}
.hero__meta span+span::before{content:"";width:5px;height:5px;margin-right:22px;border-radius:50%;background:var(--lime)}

/* ---------- Jump rail with four items ---------- */
.rail--4 .rail__grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.rail--4 a{padding-right:20px}
.rail--4 .rail__name{font-size:clamp(1.1rem,1.55vw,1.35rem);line-height:1.2}
.rail--4 .rail__line{font-size:.95rem;line-height:1.4}

/* ---------- Where each customer usually starts (Industries hero) ---------- */
.mx{margin-top:10px}
.mx__row{display:grid;grid-template-columns:minmax(0,1.7fr) repeat(3,minmax(0,1fr));gap:8px 12px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.13)}
.mx__row--head{border-top:0;padding:4px 0 8px;color:var(--on-dark-muted);font-size:.85rem;font-weight:600}
.mx__row--head span:not(:first-child){text-align:center}
.mx__name{font-weight:600;color:#fff;line-height:1.25;font-size:.98rem}
.mx__c{display:flex;flex-direction:column;align-items:center;gap:6px}
.mx__dot{display:block;width:22px;height:22px;border-radius:50%;border:2px solid var(--lime)}
.mx__dot.start{background:var(--lime)}
.mx__key{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:8px;font-size:.86rem;color:var(--on-dark-muted)}
.mx__key i{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-2px;margin-right:8px;border:2px solid var(--lime)}
.mx__key i.start{background:var(--lime)}

/* ---------- Industry sections ---------- */
.seg{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start}
.seg__no{display:inline-flex;align-items:center;gap:12px;margin-bottom:18px;font-size:.95rem;font-weight:700;color:var(--lime-ink)}
.seg__no::before{content:"";width:34px;height:2px;background:currentColor}
.seg h2{font-size:clamp(1.9rem,3.3vw,2.9rem);margin-bottom:20px}
.seg__h{margin-top:32px;margin-bottom:14px;font-size:1.05rem;font-weight:700;letter-spacing:0}
.seg .ticks{color:var(--ink);font-size:1.05rem}
.stages{display:grid;gap:14px}
.stagebox{background:var(--paper);border:1px solid var(--line);border-left:6px solid var(--lime);border-radius:4px;padding:22px 26px 24px}
.sec:not(.bg-mist) .stagebox{background:var(--mist);border-color:transparent;border-left-color:var(--lime)}
.stagebox__k{display:block;margin-bottom:4px;font-size:.85rem;font-weight:700;color:var(--lime-ink)}
.stagebox b{display:block;margin-bottom:6px;font-size:1.22rem;line-height:1.25;font-weight:600}
.stagebox p{color:var(--muted);font-size:1rem;line-height:1.55}
.stagebox .link{margin-top:12px;font-size:.95rem}

/* ---------- Ways to start (How we work hero) ---------- */
.ways{margin-top:10px}
.ways__row{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:0 8px;align-items:center;padding:12px 0;border-top:1px solid rgba(255,255,255,.13)}
.ways__row--head{border-top:0;padding:4px 0 8px;color:var(--on-dark-muted);font-size:.85rem;font-weight:600}
.ways__row--head span:not(:first-child){padding-left:2px}
.ways__l{padding-right:10px;font-size:.96rem;font-weight:600;line-height:1.25;color:#fff}
.ways__bar{grid-column:calc(var(--a) + 1) / calc(var(--b) + 1);display:flex;align-items:center;min-height:38px;padding:6px 12px;border-radius:4px;background:rgba(255,255,255,.14);color:#fff;font-size:.85rem;font-weight:600;line-height:1.2}
.ways__bar.all{background:var(--lime);color:var(--pine-900);font-weight:700}

/* ---------- Costs table ---------- */
.pay{border-top:2px solid var(--pine-900)}
.pay__row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:6px 36px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line)}
.pay__row b{font-size:1.1rem;font-weight:600}
.pay__row span{color:var(--muted)}
.pay__row--opt{margin-inline:-18px;padding-inline:18px;background:var(--lime-tint);border-radius:4px;border-bottom-color:transparent}
.pay__row--opt span{color:#33461a}
.pay__note{margin-top:22px;max-width:70ch;color:var(--muted)}

/* ---------- About ---------- */
.statement{background:rgba(10,36,32,.72);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:clamp(24px,3vw,38px);backdrop-filter:blur(6px)}
.statement__k{display:inline-flex;align-items:center;gap:12px;font-size:.92rem;font-weight:700;color:var(--lime)}
.statement__k::before{content:"";width:34px;height:2px;background:currentColor}
.statement p{margin-top:18px;font-size:clamp(1.25rem,2vw,1.62rem);line-height:1.38;font-weight:500;color:#fff}
.statement small{display:block;margin-top:20px;font-size:.95rem;color:var(--on-dark-muted)}
.dlx{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:30px;border-top:1px solid var(--line)}
.dlx div{padding:16px 0;border-bottom:1px solid var(--line)}
.dlx b{display:block;font-size:1.05rem;font-weight:600}
.dlx span{display:block;margin-top:2px;color:var(--muted);font-size:.97rem;line-height:1.5}
.measure{max-width:30ch;font-size:clamp(1.6rem,3vw,2.5rem);line-height:1.2;font-weight:600;letter-spacing:-.018em;color:#fff}
.measure em{font-style:normal;color:var(--lime)}

/* ---------- Contact ---------- */
.contact{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4.4fr);gap:clamp(32px,5vw,88px);align-items:start}
.form{display:grid;gap:26px}
.paths{display:grid;gap:12px;border:0;margin:0;padding:0;min-width:0}
.paths legend{margin-bottom:14px;padding:0;font-size:1.15rem;font-weight:700}
.path{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:0 14px;padding:18px 20px;border:2px solid var(--line);border-radius:6px;background:var(--paper);cursor:pointer;scroll-margin-top:230px;transition:border-color .15s,background-color .15s}
.path input{margin:3px 0 0;width:20px;height:20px;accent-color:var(--pine-900)}
.path__t{font-size:1.08rem;font-weight:600;line-height:1.3}
.path__d{grid-column:2;margin-top:2px;color:var(--muted);font-size:.97rem;line-height:1.5}
.path:hover{border-color:var(--lime-deep)}
.path:target{border-color:var(--lime-deep)}
.path:has(input:checked){border-color:var(--pine-900);background:var(--lime-tint)}
.path:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.field{display:grid;gap:7px;align-content:start}
.field--full{grid-column:1/-1}
.field label{font-size:.98rem;font-weight:600}
.field label small{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;padding:13px 14px;border:2px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);font:inherit;font-size:1.04rem}
.field textarea{min-height:150px;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--lime-deep)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--pine-900)}
.field .hint{margin:0;font-size:.9rem;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__foot{display:grid;gap:16px}
.form__foot .btn{justify-self:start;min-width:220px}
.form__status{min-height:1.5em;font-weight:600;color:var(--lime-ink)}
.form__status.err{color:#A3261E}
.form__fine{font-size:.92rem;color:var(--muted);max-width:60ch}
.form__fine a,.check a{text-decoration:underline;text-underline-offset:3px}
.side{display:grid;gap:22px}
.side__card{padding:clamp(22px,3vw,30px);border-radius:8px;background:var(--mist)}
.side__card h2{margin-bottom:16px;font-size:1.35rem;font-weight:600;letter-spacing:-.01em;line-height:1.2}
.side__card address{font-style:normal;display:grid;gap:10px}
.side__card address span{color:var(--ink)}
.side__card address a{text-decoration:underline;text-underline-offset:3px}
.nexts{counter-reset:n;display:grid;gap:14px}
.nexts li{position:relative;padding-left:44px;counter-increment:n;color:var(--muted);line-height:1.5}
.nexts li b{display:block;color:var(--ink);font-weight:600}
.nexts li::before{content:counter(n);position:absolute;left:0;top:0;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--lime);color:var(--pine-900);font-weight:700;font-size:.95rem}

/* ---------- Guides hub ---------- */
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,36px)}
.post{display:flex;flex-direction:column;padding:28px 28px 26px;border:1px solid var(--line);border-top:5px solid var(--lime);border-radius:4px;background:var(--paper)}
.post__cat{font-size:.88rem;font-weight:700;color:var(--lime-ink)}
.post h3{margin:10px 0 12px;font-size:1.5rem;font-weight:600;letter-spacing:-.012em;line-height:1.2}
.post h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.post p{flex:1;color:var(--muted)}
.post__meta{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:22px;font-size:.93rem;color:var(--muted)}
.post--feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);padding:clamp(28px,4vw,48px);border:0;border-radius:8px;background:var(--pine-900);color:var(--on-dark)}
.post--feature .post__cat{color:var(--lime)}
.post--feature h3{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;letter-spacing:-.022em;color:#fff}
.post--feature p{color:var(--on-dark);font-size:1.12rem;line-height:1.55}
.post--feature .post__meta{color:var(--on-dark-muted)}
.post--feature .link{border-color:var(--lime)}
.post--feature .link:hover{border-color:#fff}
.post__find{align-self:center;padding:22px 24px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.post__find b{display:block;margin-bottom:10px;font-size:.95rem;color:#fff}
.post__find li{position:relative;padding-left:22px;margin-top:8px;color:var(--on-dark);font-size:1rem;line-height:1.45}
.post__find li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;background:var(--lime);clip-path:polygon(0 50%,38% 88%,100% 12%,88% 0,38% 62%,12% 38%)}

/* ---------- Article / policy reading layout ---------- */
.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,6vw,96px);align-items:start}
.prose{max-width:70ch;font-size:1.13rem;line-height:1.72}
.prose>*+*{margin-top:1.1em}
.prose h2{margin-top:2.1em;font-size:clamp(1.6rem,2.5vw,2.15rem);scroll-margin-top:100px}
.prose h3{margin-top:1.8em;font-size:1.3rem}
.prose h2+*,.prose h3+*{margin-top:.7em}
.prose a:not(.btn){font-weight:600;text-decoration:underline;text-decoration-color:var(--lime-deep);text-decoration-thickness:2px;text-underline-offset:4px}
.prose a:not(.btn):hover{text-decoration-color:var(--ink)}
.prose .ticks{color:var(--ink);font-size:inherit;gap:12px}
.prose .lead{max-width:none;font-size:1.28rem;line-height:1.55;color:var(--muted)}
.prose dl{display:grid;gap:0;border-top:2px solid var(--pine-900)}
.prose dt{padding-top:16px;font-weight:700}
.prose dd{margin:0;padding:4px 0 16px;border-bottom:1px solid var(--line);color:var(--muted);line-height:1.6}
.qs{counter-reset:q;display:grid;gap:0;border-top:2px solid var(--pine-900)}
.qs li{position:relative;counter-increment:q;padding:20px 0 20px 56px;border-bottom:1px solid var(--line)}
.qs li::before{content:counter(q);position:absolute;left:0;top:16px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--lime);color:var(--pine-900);font-weight:700}
.qs li b{display:block;margin-bottom:4px;font-size:1.15rem;line-height:1.35;font-weight:600}
.qs li span{display:block;color:var(--muted);font-size:1.02rem;line-height:1.6}
.takeaways{padding:clamp(20px,3vw,28px);border-left:6px solid var(--lime-deep);border-radius:4px;background:var(--lime-tint)}
.takeaways b{display:block;margin-bottom:10px;font-size:1.05rem}
.takeaways .ticks{color:#2b3d14;font-size:1.04rem}
.aside{position:sticky;top:104px;display:grid;gap:22px}
.toc{padding-top:14px;border-top:2px solid var(--pine-900)}
.toc b{display:block;margin-bottom:6px;font-size:.92rem}
.toc a{display:block;padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.98rem;line-height:1.35;transition:color .15s}
.toc a:hover{color:var(--ink)}
.aside__cta{padding:22px 22px 24px;border-left:6px solid var(--lime-deep);border-radius:4px;background:var(--lime-tint)}
.aside__cta b{display:block;margin-bottom:6px;font-size:1.12rem;line-height:1.3}
.aside__cta p{margin-bottom:14px;color:#33461a;font-size:.98rem;line-height:1.5}
.aside__cta .btn{width:100%}
.draftnote{margin-bottom:34px;padding:16px 20px;border:2px dashed var(--amber);border-radius:6px;background:#FFF8E8;color:#5B4210;font-size:1rem;line-height:1.55}
.draftnote b{color:#3F2D08}
.legal-sum{padding:clamp(20px,3vw,28px);border-radius:6px;background:var(--mist)}
.legal-sum b{display:block;margin-bottom:8px}

@media (max-width:1100px){
  .rail--4 .rail__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rail--4 a:nth-child(3){border-left:0;padding-left:0}
  .rail--4 a:nth-child(n+3){border-top:1px solid rgba(15,47,42,.22)}
}
@media (max-width:1000px){
  .seg,.contact,.article,.post--feature{grid-template-columns:1fr}
  .aside{position:static}
  .article .aside{order:2}
  .dlx{grid-template-columns:1fr}
}
@media (max-width:720px){
  .rail--4 .rail__grid{grid-template-columns:1fr}
  .rail--4 a,.rail--4 a:first-child,.rail--4 a:nth-child(3){padding:20px 0 22px;border-left:0;border-top:1px solid rgba(15,47,42,.22)}
  .rail--4 a:first-child{border-top:0}
  .mx__row--head{display:none}
  .mx__row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;padding:16px 0}
  .mx__name{grid-column:1/-1;font-size:1rem}
  .mx__c::after{content:attr(data-l);font-size:.82rem;color:var(--on-dark-muted)}
  .hub .node-t{font-size:19px}
  .hub .ext-t{font-size:16px}
  .hub .core-t{font-size:16px}
  .ways__row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .ways__row--head span:first-child{display:none}
  .ways__l{grid-column:1/-1;padding:0}
  .ways__bar{grid-column:var(--a) / var(--b)}
  .pay__row{grid-template-columns:1fr}
  .pay__row--opt{margin-inline:-14px;padding-inline:14px}
  .fields{grid-template-columns:1fr}
  .posts{grid-template-columns:1fr}
  .form__foot .btn{justify-self:stretch}
  .prose{font-size:1.08rem}
}

/* ---------- Homepage hero photograph ----------
   Add class "hero--photo" to any hero to use it. The overlay keeps the left (text) side dark enough for
   white text, and lets the photo show through on the right, behind the chart card. */
.hero--photo::before{background-image:url('../images/hero.jpg');background-position:center 62%;background-size:cover}
.hero--photo::after{
  background:
    linear-gradient(90deg,rgba(10,36,32,.95) 0%,rgba(15,47,42,.86) 40%,rgba(15,47,42,.5) 100%),
    linear-gradient(180deg,rgba(10,36,32,.35) 0%,rgba(10,36,32,0) 30%,rgba(10,36,32,.55) 100%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 56px)}
@media (max-width:1000px){
  .hero--photo::after{background:
    linear-gradient(180deg,rgba(10,36,32,.93) 0%,rgba(15,47,42,.84) 55%,rgba(15,47,42,.7) 100%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 56px)}
    
    /* ---- Overrides: 14px body text, logo max 150px ---- */
body{font-size:14px}
main p,main li{font-size:14px !important;line-height:1.6}

.logo img,
.site-footer .logo img{width:auto;height:auto;max-width:150px}
}
