/* Self-hosted fonts (SIL Open Font Licence): Barlow, Archivo, Fraunces, IBM Plex Mono. Latin subset. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/assets/fonts/archivo-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/assets/fonts/archivo-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/assets/fonts/archivo-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/assets/fonts/archivo-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/barlow-500.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/barlow-600.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/barlow-700.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/fraunces-300.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/fraunces-300.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-400.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-500.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-600.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* =====================================================================
   ABLM homepage styles.
   Direction: warm editorial neutrals (paper, white, charcoal) carry the page. ABLM green
   (#014235) is used selectively: the logo, primary buttons, links, one feature panel and the
   key accents. A small supporting palette (gold, terracotta, teal, slate blue) gives the icons
   and detail work some personality. Sections alternate dark and light.
   Motion: no scroll-linked movement at all. Only a one-time hero entrance, short opacity
   fades, and hover/focus feedback.
   ===================================================================== */
:root{
  /* ABLM green leads, with warm cream neutrals. The accent is green too: mid green on light surfaces, soft mint on dark ones.
     "terra / teal / sky" are kept as names from an earlier draft but hold tones of the same green. */
  --char:#0A2119;--char-2:#10302A;--footer:#06150F;
  --brand:#014235;--brand-2:#1F6354;
  --gold:#2F7A62;--gold-d:#1F6354;--gold-l:#A8DCC4;
  --terra:#2F7A62;--teal:#1F6354;--sky:#4C8F78;
  --paper:#F5F1E8;--paper-2:#ECE6D8;--white:#fff;
  --ink:#1B201E;--body:#3A423F;--muted:#5B6560;--line:#DDD6C6;--line-soft:#EAE4D6;
  --on-d:#EEF4F0;--on-d2:rgba(238,244,240,.84);--on-d3:rgba(238,244,240,.68);--line-d:rgba(238,244,240,.16);
  --blue-3:var(--gold-l);
  --wrap:1240px;--r:4px;
  --s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:104px;
  --sans:"Archivo",system-ui,sans-serif;
  --disp:"Barlow","Archivo",system-ui,sans-serif;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--sans);font-size:17.5px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;color:var(--ink);line-height:1.04;margin:0;letter-spacing:-.03em}
h2{font-size:clamp(2.1rem,3.9vw,3.2rem);letter-spacing:-.036em;line-height:1.02}
h3{font-size:1.24rem;letter-spacing:-.02em}
p{margin:0 0 1.05rem;max-width:64ch}
a{color:var(--brand)}
img{max-width:100%;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px}
section{position:relative}
:focus-visible{outline:2px solid var(--brand-2);outline-offset:3px;border-radius:2px}
.hero :focus-visible,.reviews :focus-visible,.band :focus-visible,footer.site :focus-visible,.callbar :focus-visible,.who-g :focus-visible{outline-color:var(--gold-l)}
.hcol,.hbox,.fit-intro,.fit-list,.sv-head,.sv-items,.member,.tl-side,.toolbox,.pc-body,.pc-fig,.plan,.faq-l,.faq-r,.ct-left,.ct-form,.lead>div,.rvw-grid>*,.rq,.who-g,.who-p{min-width:0}

.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--brand);color:#fff;padding:12px 18px;border-radius:var(--r);font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
main:focus{outline:none}
.side-call{margin-top:var(--s5);padding:28px 28px 26px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);box-shadow:0 18px 40px rgba(10,33,25,.08);max-width:380px}
.faq-sec .side-call,.svc .side-call{background:var(--paper)}
.side-call b{display:block;font-family:var(--disp);font-size:1.25rem;font-weight:600;color:var(--ink);letter-spacing:-.02em;margin-bottom:6px}
.side-call span{display:block;color:var(--muted);font-size:.95rem;line-height:1.55}
.side-call-row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s3)}
.side-tel{font-family:var(--mono);font-weight:600;color:var(--brand);text-decoration:none;font-size:1rem;background:linear-gradient(currentColor,currentColor) left bottom/0 1.5px no-repeat;padding-bottom:2px;transition:background-size .4s var(--ease)}
.side-tel:hover{background-size:100% 1.5px}
.side-mail{font-size:.92rem}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.75rem;letter-spacing:.17em;text-transform:uppercase;color:var(--brand-2);font-weight:700}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);flex-shrink:0}
.hero .eyebrow,.reviews .eyebrow,.band .eyebrow,.who-g .eyebrow{color:var(--gold-l)}
.lead{max-width:none}
.lead h2{max-width:22ch;margin-top:var(--s2)}
.lead .sub{color:var(--muted);margin-top:var(--s2);max-width:60ch;font-size:1.04rem}

/* ---------- entrance: a short opacity fade once, never movement ---------- */
.js .rv{opacity:0;transition:opacity .7s ease}
.js .rv.in{opacity:1}

/* ---------- header ---------- */
header.site{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line-soft);transition:box-shadow .35s}
header.site.stuck{box-shadow:0 8px 30px rgba(10,33,25,.1)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:22px;height:72px}
.brand{display:block;text-decoration:none;line-height:0}
.brand img{height:34px;width:auto;display:block}
nav.main{display:flex;gap:2px;align-items:center}
nav.main>a.nvflat,.nv>a{position:relative;color:var(--ink);text-decoration:none;font-size:.89rem;font-weight:500;padding:8px 12px;display:inline-flex;align-items:center;gap:6px}
nav.main>a.nvflat::before,.nv>a::before{content:"";position:absolute;left:12px;right:12px;bottom:3px;height:1.5px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
nav.main>a.nvflat:hover::before,.nv:hover>a::before,.nv:focus-within>a::before{transform:scaleX(1)}
.nv{position:relative}
.nv>a::after{content:"";width:5px;height:5px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .28s;opacity:.6}
.nv:hover>a::after{transform:rotate(225deg) translateY(-2px)}
.dd{position:absolute;top:100%;left:-6px;min-width:236px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 50px rgba(10,33,25,.16);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .24s,transform .24s,visibility .24s}
.nv:hover .dd,.nv:focus-within .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:block;padding:9px 12px;font-size:.87rem;color:var(--body);text-decoration:none;border-radius:2px;transition:background .2s,color .2s,padding .25s var(--ease)}
.dd a:hover{background:var(--paper);color:var(--brand);padding-left:16px}
.header-cta{display:flex;align-items:center;gap:20px}
.tel-top{color:var(--ink);text-decoration:none;font-weight:600;font-size:.92rem;white-space:nowrap}
.tel-top:hover{color:var(--brand-2)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font-weight:600;font-size:.92rem;padding:14px 28px;border-radius:var(--r);border:1px solid transparent;font-family:inherit;letter-spacing:.005em;cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .25s,color .25s,border-color .25s}
.btn:active{transform:translateY(0) scale(.985)}
.btn-p{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn-p:hover{background:var(--brand-2);border-color:var(--brand-2);transform:translateY(-2px);box-shadow:0 12px 26px rgba(1,66,53,.28)}
.btn-w{background:#fff;color:var(--char);border-color:#fff}
.btn-w:hover{background:var(--gold-l);border-color:var(--gold-l);transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.28)}
.btn-g{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-g:hover{border-color:#fff;background:rgba(255,255,255,.1);transform:translateY(-2px)}
.btn-l{background:transparent;color:var(--ink);border-color:#B9B2A1}
.btn-l:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-2px)}
.txtlink{display:inline-block;margin-top:var(--s3);font-size:.92rem;font-weight:600;color:var(--brand);text-decoration:none;padding-bottom:3px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1.5px no-repeat;transition:background-size .4s var(--ease),color .25s}
.txtlink:hover{background-size:0 1.5px;background-position:right bottom}
.reviews .txtlink{color:var(--gold-l)}

/* ---------- mobile nav ---------- */
.navtoggle{display:none;background:none;border:1px solid #B9B2A1;border-radius:var(--r);width:44px;height:40px;cursor:pointer;position:relative;flex-shrink:0;padding:0}
.navtoggle span{position:absolute;left:12px;right:12px;height:1.6px;background:var(--ink);transition:transform .32s var(--ease),opacity .25s}
.navtoggle span:nth-child(1){top:13px}.navtoggle span:nth-child(2){top:19px}.navtoggle span:nth-child(3){top:25px}
.navtoggle.on span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.navtoggle.on span:nth-child(2){opacity:0}
.navtoggle.on span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobmenu{display:none}

/* ============ TRUST ============ */
.trust{background:#fff;padding:var(--s5) 0;border-bottom:1px solid var(--line-soft)}
.trust-in{display:grid;grid-template-columns:.5fr 1.5fr;gap:var(--s5);align-items:center}
.trust-lbl p{margin:var(--s2) 0 0;font-size:.92rem;color:var(--muted);max-width:30ch}
.plogos{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);flex-wrap:wrap;min-width:0}
.plogo{display:flex;align-items:center;justify-content:center;min-width:0}
.plogo img{width:auto;max-width:100%;display:block}
.plogo img.h-acca{height:80px}.plogo img.h-cta{height:78px}.plogo img.h-xero{height:80px}.plogo img.h-fa{height:56px}

/* ============ WHO WE WORK BEST WITH ============ */
.fit{background:var(--paper);padding:var(--s6) 0}
.fit-wrap{display:grid;grid-template-columns:.78fr 1.22fr;gap:var(--s6)}
.fit-intro{align-self:center}
.fit-intro h2{margin-top:var(--s2);font-size:clamp(1.9rem,3.2vw,2.6rem)}
.fit-intro .sub{color:var(--muted);margin-top:var(--s2);font-size:1.04rem}
.fit-note{margin:var(--s3) 0 0;font-size:.95rem;color:var(--muted);max-width:38ch}
.fit-list{border-top:2px solid var(--ink)}
.fit-row{display:grid;grid-template-columns:84px 1fr;gap:var(--s3);padding:34px 0;border-bottom:1px solid var(--line);position:relative;--ac:var(--brand-2)}

.fit-row::before{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--ac);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.fit-row:hover::before{transform:scaleX(1)}
.fit-row .n{font-family:var(--serif);font-weight:400;font-size:2.9rem;line-height:.9;color:var(--ac);font-variant-numeric:lining-nums}
.fit-row h3{font-size:1.5rem;margin-bottom:10px;letter-spacing:-.025em}
.fit-row p{margin:0;color:var(--body);font-size:1.02rem;max-width:54ch}

/* ============ SERVICES: light, coloured icons ============ */
.svc{padding:var(--s6) 0;background:#fff}
.sv-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:var(--s6)}
.sv-head h2{margin-top:var(--s2);max-width:15ch}
.sv-head .sub{color:var(--muted);margin-top:var(--s2);font-size:1.04rem}
.sv-items{display:flex;flex-direction:column;border-top:2px solid var(--ink)}
.sv-item{display:grid;grid-template-columns:70px 1fr;gap:var(--s3);padding:30px 0;border-bottom:1px solid var(--line);align-items:start}
.c-sky{--ac:var(--brand-2);--tint:#DDEBE3}.c-teal{--ac:var(--brand);--tint:#D3E5DA}.c-terra{--ac:var(--brand-2);--tint:#E5EFE9}.c-gold{--ac:var(--brand);--tint:#DAE9E0}
.sv-i{width:56px;height:56px;border-radius:50%;background:var(--tint);color:var(--ac);display:flex;align-items:center;justify-content:center;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.sv-i svg{width:28px;height:28px;overflow:visible}
.sv-i svg *,.pc-ic svg *{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.sv-i svg .f,.pc-ic svg .f{fill:currentColor;fill-opacity:.16}
.sv-item:hover .sv-i{transform:scale(1.07);box-shadow:0 10px 22px rgba(10,33,25,.14)}
.sv-item h3{font-size:1.4rem;margin-bottom:8px}
.sv-item p{margin:0;font-size:1rem;color:var(--body);max-width:56ch}
.sv-inc{margin-top:12px!important;font-size:.85rem!important;color:var(--muted)!important;line-height:1.6;max-width:60ch}

/* ============ TEAM ============ */
.team-sec{padding:var(--s6) 0;background:var(--paper)}
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4) var(--s3);margin-top:var(--s5)}
.member .ph{position:relative;aspect-ratio:4/5;background:#F0F5F1;overflow:hidden;border-radius:2px;box-shadow:0 14px 34px rgba(10,33,25,.14)}
.member .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;mix-blend-mode:multiply;transition:transform 1s var(--ease)}
.member:hover .ph img{transform:scale(1.04)}
.member{display:flex;flex-direction:column}
.member .info{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1.5em 1fr;padding:18px 0 0}
.member .info{border-top:0;background:linear-gradient(var(--gold),var(--gold)) 0 0/28px 2px no-repeat;padding-top:30px;margin-top:18px;transition:background-size .5s var(--ease)}
.member:hover .info{background-size:64px 2px}
.member .info h3{grid-row:1;font-size:1.2rem;margin:0;line-height:1.25}
.member .info .q{grid-row:2;align-self:center;font-size:.75rem;color:var(--gold-d);font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.member .info .r{grid-row:3;font-size:.93rem;color:var(--muted);margin:6px 0 0;line-height:1.55;max-width:none}

/* ============ ABOUT: one green panel beside a neutral one ============ */
.who{background:var(--paper-2);overflow:hidden}
.who-split{display:grid;grid-template-columns:1fr 1fr}
.who-g{position:relative;background:linear-gradient(150deg,#06503F 0%,#014235 55%,#01372C 100%);color:var(--on-d);padding:var(--s6) var(--s5) var(--s6) max(40px,calc((100vw - var(--wrap))/2 + 40px));overflow:hidden}
.who-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.who-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:.1}
.who-g>*:not(.who-bg){position:relative;z-index:2}
.who-h{color:#fff;margin-top:var(--s2);font-size:clamp(2.1rem,3.6vw,3rem);max-width:14ch}
.who-lead{font-family:var(--serif);font-weight:400;font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.45;color:var(--on-d);margin:var(--s4) 0 0;max-width:30ch;padding-top:var(--s3);border-top:1px solid rgba(168,220,196,.5)}
.who-p{padding:var(--s6) max(40px,calc((100vw - var(--wrap))/2 + 40px)) var(--s6) var(--s5);display:flex;flex-direction:column;justify-content:center}
.who-p>p{color:var(--body);font-size:1.06rem;max-width:52ch;margin:0}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4) var(--s3);margin-top:var(--s5)}
.cred{border-top:3px solid var(--ac);padding-top:var(--s2);--ac:var(--gold)}

.cred .n{display:block;font-family:var(--disp);font-size:clamp(2.2rem,3.4vw,3rem);font-weight:600;letter-spacing:-.04em;color:var(--ink);line-height:1.05}
.cred .l{display:block;font-size:.92rem;color:var(--muted);margin-top:8px;max-width:24ch;line-height:1.45}

/* ============ TOOLS ============ */
.tools{background:#fff;padding:var(--s6) 0}
.tl-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:var(--s5);align-items:start}
.tl-side h2{margin-top:var(--s2)}
.tl-side .sub{color:var(--muted);margin-top:var(--s2);font-size:1.04rem}
.tl-menu{margin:var(--s3) 0 0;padding:0;border-top:2px solid var(--ink)}
.tl-menu li{list-style:none;font-size:.95rem;color:var(--muted);padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}
.tl-menu li b{color:var(--ink);font-weight:600}
.toolbox{background:var(--paper);color:var(--body);border:1px solid var(--line);border-radius:6px;padding:var(--s3);box-shadow:0 30px 70px rgba(10,33,25,.12);border-top:4px solid var(--gold)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tab{background:none;border:none;color:var(--muted);font-family:inherit;font-size:.9rem;font-weight:600;padding:11px 16px;cursor:pointer;position:relative;transition:color .25s,background .25s;border-radius:3px 3px 0 0}
.tab:hover{color:var(--ink);background:var(--paper-2)}
.tab.on{color:var(--brand)}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand);transform:scaleX(0);transition:transform .4s var(--ease)}
.tab.on::after{transform:scaleX(1)}
.panel{display:none}
.panel.on{display:block;animation:pIn .5s var(--ease)}
@keyframes pIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cshell{margin-top:var(--s3);display:grid;grid-template-columns:1fr;gap:var(--s3)}
.cbox{background:#fff;border:1px solid var(--line-soft);border-radius:var(--r);padding:24px;box-shadow:0 8px 22px rgba(10,33,25,.05)}
.cbox label{display:block;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:9px}
.cbox input,.cbox select{width:100%;background:var(--paper);border:1px solid #CFC8B6;color:var(--ink);font-family:inherit;font-size:1.02rem;padding:12px 14px;border-radius:var(--r);font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s,background .2s}
.cbox input:hover,.cbox select:hover{border-color:#A9A18D}
.cbox input:focus,.cbox select:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(1,66,53,.16)}
.cbox .fld{margin-bottom:16px}
.cbox .hint{font-size:.85rem;color:var(--muted);margin:0 0 14px}
.cbox .btn{width:100%}
.res{border-top:1px solid var(--line)}
.resrow{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.resrow .k{color:var(--body);font-size:.98rem}
.resrow .k small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.resrow .v{font-variant-numeric:tabular-nums;font-size:1.12rem;color:var(--ink);font-weight:600;white-space:nowrap}
.resrow.total{border-bottom:none;padding-top:16px;margin-top:2px;border-top:2px solid var(--ink)}
.resrow.total .k{color:var(--ink);font-weight:600;font-size:1.06rem}
.resrow.total .v{color:var(--brand);font-size:1.75rem;font-weight:700;letter-spacing:-.03em}
.res.upd .resrow{animation:rowIn .5s var(--ease) both}
.res.upd .resrow:nth-child(2){animation-delay:.04s}.res.upd .resrow:nth-child(3){animation-delay:.08s}.res.upd .resrow:nth-child(4){animation-delay:.12s}.res.upd .resrow:nth-child(5){animation-delay:.16s}
@keyframes rowIn{from{opacity:.35}to{opacity:1}}
.barx{height:6px;background:var(--paper-2);border-radius:4px;overflow:hidden;margin-top:var(--s2);display:flex}
.barx i{display:block;height:100%;width:0;transition:width .9s var(--ease)}
.barkey{display:flex;gap:20px;flex-wrap:wrap;margin-top:13px;font-size:.82rem;color:var(--muted)}
.barkey span{display:flex;align-items:center;gap:7px}
.barkey em{width:9px;height:9px;border-radius:2px;display:inline-block;font-style:normal}
.disc{margin:var(--s3) 0 0;font-size:.82rem;color:var(--muted);max-width:none;line-height:1.55}

/* ============ REVIEWS: open typography, divided by hairlines, never boxed ============ */
.reviews{padding:var(--s6) 0;background:var(--char);color:var(--on-d);overflow:hidden}
.reviews::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 60% at 92% 0%,rgba(70,160,125,.16),transparent 70%),radial-gradient(45% 50% at 0% 100%,rgba(1,66,53,.4),transparent 70%);pointer-events:none}
.reviews .wrap{position:relative}
.rvw-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr);gap:var(--s6);align-items:start}
.rvw-left h2{color:#fff;margin-top:var(--s2);font-size:clamp(2.3rem,4.4vw,3.6rem);max-width:11ch;line-height:1}
.rvw-left .sub{color:var(--on-d2);margin-top:var(--s3);font-size:1.06rem;max-width:34ch}
.rvw-links{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-top:var(--s4)}
.rvw-links .txtlink{margin-top:0}
.rvt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s5) var(--s4)}
.rvp{display:contents}
.rq{margin:0;position:relative;display:flex;flex-direction:column;padding:var(--s3) 0 0 var(--s3);border-left:1px solid var(--line-d)}
.rq::before{content:"";position:absolute;left:-1px;top:0;width:2px;height:48px;background:var(--gold-l)}
.rstars{display:flex;gap:3px;margin:6px 0 4px;color:#E2B93B}
.rstars svg{width:17px;height:17px;fill:currentColor}
.rq blockquote{margin:0 0 var(--s3);flex:1;font-size:1.06rem;line-height:1.7;color:var(--on-d)}
.rq .nm{display:block;font-weight:700;color:#fff;font-size:.98rem}
.rq .src{display:block;margin-top:3px;font-family:var(--mono);font-size:.76rem;letter-spacing:-.01em;color:var(--on-d3)}
.js-only{display:none}
.js .js-only{display:flex}
.js .rvn{display:flex}
/* with JavaScript: a swipeable, keyboard-scrollable strip, two reviews per view (one on phones), moved by the visitor only */
.js .rvt{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;outline-offset:6px}
.js .rvt::-webkit-scrollbar{display:none}
.js .rvp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s4);flex:0 0 100%;scroll-snap-align:start;padding-right:2px}
.rvn{display:none;justify-content:space-between;align-items:center;gap:var(--s3);margin-top:var(--s4)}
.rvd{display:flex;gap:6px;flex-wrap:wrap}
.rvd button{width:24px;height:3px;border:0;padding:0;border-radius:2px;background:rgba(255,255,255,.24);cursor:pointer;position:relative;transition:background .3s}
.rvd button::after{content:"";position:absolute;inset:-12px -2px}
.rvd button.on{background:var(--gold-l)}
.rvarrows{display:flex;gap:8px}
.rvar{width:44px;height:44px;border:1px solid rgba(255,255,255,.34);background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s,opacity .25s,transform .3s var(--ease)}
.rvar:hover:not([aria-disabled="true"]){background:#fff;border-color:#fff;transform:scale(1.06)}
.rvar svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s}
.rvar:hover:not([aria-disabled="true"]) svg{stroke:var(--char)}
.rvar[aria-disabled="true"]{opacity:.35;cursor:default}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============ PROCESS ============ */
.proc{padding:var(--s6) 0;background:var(--paper)}
.pc-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:var(--s6);align-items:stretch}
.pc-fig{margin:0;position:relative;height:100%;min-height:440px;overflow:hidden;border-radius:2px;box-shadow:0 26px 60px rgba(10,33,25,.2)}
.pc-fig figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(6,21,15,.92),rgba(6,21,15,0));padding:var(--s6) var(--s3) var(--s3)}
.pc-fig figcaption b{display:block;font-family:var(--disp);font-size:1.12rem;color:#fff;letter-spacing:-.02em}
.pc-fig figcaption span{display:block;font-size:.88rem;color:var(--on-d2);margin-top:3px}
.pc-fig img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block}
.pc-body .sub{color:var(--muted);margin-top:var(--s2);font-size:1.04rem}
.pc-steps{margin-top:var(--s4);border-top:2px solid var(--ink)}
.pc-step{display:grid;grid-template-columns:70px 1fr;gap:var(--s3);padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.pc-ic{width:56px;display:flex;flex-direction:column;align-items:center;gap:8px}
.pc-ic svg{width:56px;height:56px;padding:14px;border-radius:50%;background:var(--tint);color:var(--ac);overflow:visible;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.pc-step:hover .pc-ic svg{transform:scale(1.07);box-shadow:0 10px 22px rgba(10,33,25,.14)}
.pc-ic em{font-family:var(--mono);font-style:normal;font-size:.75rem;font-weight:600;color:var(--muted);letter-spacing:.06em}
.pc-step h3{font-size:1.28rem;margin-bottom:6px}
.pc-step p{margin:0;font-size:1rem;color:var(--body);max-width:56ch}

/* ============ FEES ============ */
.pricing{padding:var(--s6) 0;background:#fff}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-top:var(--s5);align-items:stretch}
.plan{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:34px 30px;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.plan:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(10,33,25,.12)}
.plan .for{font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;color:var(--gold-d);margin-bottom:14px}
.plan h3{font-size:1.5rem;color:var(--ink)}
.plan .price-note{font-size:1.02rem;font-weight:600;color:var(--brand);line-height:1.3;margin:16px 0 22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.plan ul{list-style:none;margin:0 0 28px;padding:0;flex:1}
.plan li{font-size:.96rem;padding:9px 0 9px 28px;position:relative;color:var(--body)}
.plan li::before{content:"";position:absolute;left:2px;top:17px;width:11px;height:5px;border-left:1.8px solid var(--brand);border-bottom:1.8px solid var(--brand);transform:rotate(-45deg)}
.plan.feat{background:#fff;border-color:var(--line);border-top:4px solid var(--brand);box-shadow:0 34px 70px rgba(10,33,25,.2)}
.plan.feat:hover{box-shadow:0 40px 80px rgba(10,33,25,.26)}
.plan.feat .btn-p:hover{background:var(--brand-2)}
.pricenote{margin:var(--s4) 0 0;font-size:.92rem;color:var(--muted);max-width:none}

/* ============ FAQ ============ */
.faq-sec{padding:var(--s6) 0;background:var(--paper)}
.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:var(--s6);align-items:start}
.faq-l h2{margin-top:var(--s2)}
.faq-l .sub{color:var(--muted);margin-top:var(--s2);font-size:1.02rem}
.acc{border-top:2px solid var(--ink)}
.qa{border-bottom:1px solid var(--line)}
.qh{width:100%;background:none;border:none;font-family:var(--disp);font-weight:600;font-size:1.22rem;color:var(--ink);text-align:left;padding:26px 48px 26px 0;cursor:pointer;position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;letter-spacing:-.018em;transition:color .25s}
.qh:hover,.qa.open .qh{color:var(--brand-2)}
.qh i{position:absolute;right:4px;top:50%;width:13px;height:13px;transform:translateY(-50%)}
.qh i::before,.qh i::after{content:"";position:absolute;background:var(--gold);transition:transform .4s var(--ease),opacity .4s}
.qh i::before{left:0;top:5.6px;width:13px;height:2px}
.qh i::after{left:5.5px;top:0;width:2px;height:13px}
.qa.open .qh i::after{transform:scaleY(0);opacity:0}
.qb{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.qbi{padding:0 56px 28px 0}
.qbi p{margin:0;color:var(--body);font-size:1.02rem}

/* ============ CONTACT ============ */
.band{background:var(--char);color:#fff}
.band::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 100% 100%,rgba(70,160,125,.14),transparent 70%);pointer-events:none}
.band .inner{position:relative;padding-top:var(--s6);padding-bottom:var(--s6);display:grid;grid-template-columns:1.02fr .98fr;gap:var(--s6);align-items:start}
.band h2{color:#fff;font-size:clamp(2.3rem,4.5vw,3.5rem);max-width:14ch}
.band p{color:var(--on-d2);margin:var(--s2) 0 0;font-size:1.08rem}
.ct-list{list-style:none;padding:0;margin:var(--s4) 0 0}
.ct-list li{display:grid;grid-template-columns:24px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-d);font-size:.98rem;color:var(--on-d2);align-items:start}
.ct-list li:last-child{border-bottom:none}
.ct-list b{color:#fff;font-weight:600}
.ct-list svg{width:20px;height:20px;fill:none;stroke:var(--gold-l);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:3px}
.ct-direct{display:flex;gap:var(--s5);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid rgba(255,255,255,.28);flex-wrap:wrap}
.ct-d{text-decoration:none}
.ct-dl{display:block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-l);margin-bottom:6px}
.ct-dv{display:block;font-size:1.2rem;font-weight:600;color:#fff;letter-spacing:-.02em;font-family:var(--mono);background:linear-gradient(var(--gold-l),var(--gold-l)) left bottom/0 1.5px no-repeat;padding-bottom:3px;transition:background-size .4s var(--ease)}
.ct-d:hover .ct-dv{background-size:100% 1.5px}
.ct-form{background:#fff;border-radius:6px;padding:var(--s4);box-shadow:0 36px 80px rgba(0,0,0,.5);border-top:4px solid var(--gold)}
.ct-form h3,.ct-form h2{color:var(--ink);font-size:1.6rem;line-height:1.1}
.ct-sub{color:var(--muted)!important;font-size:.96rem!important;margin:var(--s1) 0 var(--s3)!important}
.ct-notice{background:#E9F1EC;border:1px solid #B9D3C4;border-left:4px solid var(--brand);border-radius:var(--r);padding:12px 16px;margin:0 0 var(--s3);font-size:.9rem;line-height:1.5;color:#173B30}
.ct-notice b{color:#0B2A20}
.ct-notice a{color:#0B2A20;font-weight:600}
.fr{margin-bottom:var(--s2)}
.fr.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.ct-form label{display:block;font-size:.82rem;font-weight:600;color:var(--ink);margin-bottom:6px}
.opt{font-weight:400;color:var(--muted)}
.ct-form input,.ct-form select,.ct-form textarea{width:100%;max-width:100%;min-height:48px;background:var(--paper);border:1px solid #CFC8B6;border-radius:var(--r);color:var(--ink);font-family:inherit;font-size:1rem;padding:12px 14px;-webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s,background .2s}
.ct-form textarea{min-height:92px;resize:vertical}
.ct-form select{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235B6560' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:12px;padding-right:38px}
.ct-form input:hover,.ct-form select:hover,.ct-form textarea:hover{border-color:#A9A18D}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(1,66,53,.16)}
.ct-form input[aria-invalid="true"],.ct-form select[aria-invalid="true"]{border-color:#B4442F}
.ct-submit{width:100%;margin-top:var(--s1);min-height:54px;font-size:1rem}
.ct-privacy{color:var(--muted)!important;font-size:.8rem!important;margin:var(--s2) 0 0!important;line-height:1.5}
.ct-privacy a,.ct-privacy [data-privacy]{color:var(--brand);font-weight:600}
.ct-status{font-size:.9rem!important;margin:var(--s2) 0 0!important;color:var(--ink)!important;font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ============ FOOTER ============ */
footer.site{background:var(--footer);color:var(--on-d2);font-size:.92rem}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr 1fr;gap:34px;padding:68px 0 44px}
footer.site .brand{display:inline-block;margin-bottom:16px}
footer.site .brand img{height:32px}
footer.site .fh{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-l);margin:0 0 16px;font-weight:700;font-family:var(--sans)}
footer.site a{color:var(--on-d2);text-decoration:none;display:block;margin-bottom:10px;transition:color .2s}
footer.site a:hover{color:#fff}
footer.site address{font-style:normal;margin:0 0 9px}
footer.site .legal{border-top:1px solid var(--line-d);padding:22px 0;font-size:.8rem;color:var(--on-d3);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer.site .legal [data-privacy]{color:var(--on-d2)}
footer.site .legal a{display:inline;margin:0}

/* ---------- floating call button (opacity only, no sliding) and mobile action bar ---------- */
.fab{position:fixed;right:24px;bottom:24px;z-index:55;display:inline-flex;align-items:center;gap:10px;background:var(--brand);color:#fff;text-decoration:none;padding:14px 20px;border-radius:100px;font-family:var(--mono);font-weight:500;font-size:.94rem;letter-spacing:-.02em;box-shadow:0 14px 34px rgba(10,33,25,.34);border:1px solid rgba(255,255,255,.2);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s,background .25s}
.fab.on{opacity:1;visibility:visible}
.fab:hover{background:var(--brand-2)}
.fab svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.callbar{display:none}

/* ============ responsive ============ */
@media (max-width:1100px){
  .trust-in{grid-template-columns:1fr;gap:var(--s3)}
  .plogos{gap:var(--s4) var(--s5);justify-content:flex-start}
  .fit-wrap,.sv-grid,.tl-grid,.pc-grid,.faq-grid,.band .inner,.who-split,.rvw-grid{grid-template-columns:1fr;gap:var(--s4)}
  .rvw-left h2{max-width:none}
  .pc-fig{height:auto;min-height:0;aspect-ratio:4/3}
  .team{grid-template-columns:1fr 1fr}
  .plans{grid-template-columns:1fr}
  .who-g{padding:var(--s5) 24px}
  .who-p{padding:var(--s5) 24px}
  .who-g,.who-p{padding-left:24px;padding-right:24px}
  footer.site .cols{grid-template-columns:1fr 1fr}
  .band .inner{padding-top:var(--s5);padding-bottom:var(--s5)}
  .fit,.svc,.team-sec,.tools,.reviews,.proc,.pricing,.faq-sec{padding:var(--s5) 0}
  nav.main,.header-cta,.fab{display:none}
  .navtoggle{display:block}
  .bar{height:64px}
  .brand img{height:28px}
  .wrap{padding:0 24px}
  .mobmenu{display:block;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid var(--line);max-height:0;overflow:hidden;transition:max-height .42s var(--ease);box-shadow:0 24px 40px rgba(10,33,25,.18)}
  .mobmenu.on{max-height:660px}
  .mobmenu a{display:block;padding:15px 24px;color:var(--ink);text-decoration:none;font-size:1.02rem;font-weight:500;border-bottom:1px solid var(--line-soft)}
  .mobmenu a:active{background:var(--paper)}
  .mobmenu .mm-cta{padding:18px 24px 22px;display:flex;flex-direction:column;gap:10px}
  .mobmenu .mm-cta a{text-align:center;border-bottom:none;padding:14px 20px;border-radius:var(--r);font-weight:600}
  .mobmenu .mm-cta a.btn-p{color:#fff}
  .callbar{display:grid;grid-template-columns:1fr auto;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:11px 16px calc(11px + env(safe-area-inset-bottom));background:rgba(6,21,15,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.14)}
  .callbar a{text-decoration:none;font-weight:600;font-size:.95rem;padding:13px 18px;border-radius:var(--r);text-align:center;display:flex;align-items:center;justify-content:center;gap:9px}
  .cb-tel{background:#fff;color:var(--char)}
  .cb-tel svg{width:17px;height:17px;stroke:var(--char);fill:none;stroke-width:1.7}
  .cb-cta{background:var(--gold-l);color:var(--char);white-space:nowrap}
  body{padding-bottom:78px}
}
@media (max-width:760px){
  .js .rvp{display:contents}
  .js .rq{flex:0 0 100%;scroll-snap-align:start;padding-right:var(--s2)}
  .rvt{grid-template-columns:minmax(0,1fr)}
  .fit-row{grid-template-columns:56px 1fr}
  .fit-row .n{font-size:2.3rem}
  .cshell{gap:var(--s2)}
}
@media (max-width:620px){
  .plogo img.h-acca{height:68px}.plogo img.h-cta{height:66px}.plogo img.h-xero{height:68px}.plogo img.h-fa{height:48px}
  .team,footer.site .cols{grid-template-columns:1fr}
  .team{gap:var(--s4)}
  .fr.two{grid-template-columns:1fr}
  .ct-form{padding:var(--s3)}
  .qh{font-size:1.1rem;padding:22px 40px 22px 0}
  .qbi{padding-right:0}
  .creds{gap:var(--s3) var(--s2)}
  .sv-item{grid-template-columns:60px 1fr;gap:var(--s2)}
  .pc-step{grid-template-columns:62px 1fr;gap:var(--s2)}
  .tab{padding:10px 12px;font-size:.86rem}
  .plan{padding:28px 24px}
  .resrow .v{font-size:1.04rem}
  .resrow.total .v{font-size:1.5rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1}
  .js .rvt{scroll-behavior:auto}
  .hero h1 .ln b{transform:none}.fade{opacity:1}.hb-out .tl-item{opacity:1;transform:none}
}


/* =====================================================================
   Multi-page components. Same tokens and look as the homepage (site.css);
   these are the building blocks for the service, about, areas, FAQ and contact pages.
   No scroll-linked movement and nothing sticky.
   ===================================================================== */

/* ---------- navigation state and breadcrumbs ---------- */
nav.main>a.nvflat[aria-current="page"]::before,.nv>a[aria-current="page"]::before{transform:scaleX(1)}
.dd a[aria-current="page"]{color:var(--brand);font-weight:600}
.crumbs{position:relative;z-index:2}
.crumbs ol{display:flex;flex-wrap:wrap;gap:4px 0;list-style:none;margin:0;padding:0;font-size:.82rem;letter-spacing:.01em}
.crumbs li{display:inline-flex;align-items:center}
.crumbs li+li::before{content:"/";margin:0 9px;opacity:.45}
.crumbs a{color:inherit;opacity:.78;text-decoration:none;border-bottom:1px solid transparent;transition:opacity .2s,border-color .2s}
.crumbs a:hover{opacity:1;border-color:currentColor}
.crumbs [aria-current]{opacity:.95;font-weight:600}
.phead .crumbs{color:var(--muted)}
.phead.dark .crumbs{color:var(--on-d2)}
.phead.light .crumbs{color:var(--body)}
.phead.light .crumbs a{opacity:1;color:var(--brand);font-weight:500}
.phead.dark .crumbs a{opacity:1}

/* ---------- page header ---------- */
.phead{position:relative;overflow:hidden;padding:30px 0 var(--s6)}
.phead.light{background:var(--paper);border-bottom:1px solid var(--line-soft)}
.phead.dark{background:var(--char);color:var(--on-d)}
.phead.dark::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 90% at 100% 0%,rgba(70,160,125,.2),transparent 70%),radial-gradient(45% 70% at 0% 100%,rgba(1,66,53,.5),transparent 70%);pointer-events:none}
.phead .wrap{position:relative}
.phead-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:var(--s5);align-items:end;margin-top:var(--s4)}
.phead-grid>*{min-width:0}
.phead h1{font-size:clamp(2.3rem,4.4vw,3.7rem);letter-spacing:-.04em;line-height:1.02;max-width:19ch;margin-top:var(--s2)}
.phead.dark h1{color:#fff}
.phead .eyebrow{margin-top:var(--s4)}
.phead .lede{font-size:1.14rem;line-height:1.62;max-width:56ch;margin:var(--s3) 0 0}
.phead.dark .lede{color:var(--on-d2)}
.phead.light .lede{color:var(--body)}
.phead .actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:var(--s4)}
.phead.light .btn-g{color:var(--ink);border-color:#A5B6A8}
.phead.light .btn-g:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.glance{background:#fff;color:var(--body);border-radius:6px;padding:28px 30px;box-shadow:0 30px 70px rgba(0,0,0,.4);border-top:4px solid var(--gold)}
.phead.light .glance{box-shadow:0 22px 50px rgba(10,33,25,.12);border:1px solid var(--line);border-top:4px solid var(--gold)}
.glance h2{font-family:var(--sans);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-d);font-weight:700;margin:0 0 var(--s2)}
.glance dl{margin:0}
.glance .row{padding:12px 0;border-top:1px solid var(--line-soft)}
.glance .row:first-of-type{border-top:0;padding-top:0}
.glance dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.glance dd{margin:3px 0 0;color:var(--ink);font-weight:500;font-size:.98rem;line-height:1.45}

/* ---------- article layout ---------- */
.art{padding:var(--s6) 0;background:#fff}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s6);align-items:start}
.art-grid>*{min-width:0}
.prose>h2{font-size:clamp(1.6rem,2.5vw,2.15rem);margin:var(--s5) 0 var(--s2);line-height:1.08}
.prose>h2:first-child{margin-top:0}
.prose p{font-size:1.04rem;max-width:64ch}
.prose p.src{font-size:.82rem;color:var(--muted);margin-top:var(--s2)}
.prose a{font-weight:600}
.ticks{list-style:none;margin:var(--s2) 0 0;padding:0;border-top:2px solid var(--ink)}
.ticks li{position:relative;padding:13px 0 13px 32px;border-bottom:1px solid var(--line);font-size:1.02rem}
.ticks li::before{content:"";position:absolute;left:3px;top:21px;width:12px;height:6px;border-left:2px solid var(--brand);border-bottom:2px solid var(--brand);transform:rotate(-45deg)}
.ticks li b{color:var(--ink)}
.rules{margin:var(--s2) 0 0;border-top:2px solid var(--ink)}
.rules .row{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s3);padding:16px 0;border-bottom:1px solid var(--line)}
.rules dt{font-weight:600;color:var(--ink)}
.rules dd{margin:0;color:var(--body)}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.two-col h3{font-size:1.2rem;margin-bottom:8px}
.callout{margin:var(--s4) 0 0;padding:22px 26px;background:var(--paper);border-left:4px solid var(--brand);border-radius:0 var(--r) var(--r) 0}
.callout p{margin:0;font-size:1rem}
.callout b{color:var(--ink)}
.aside-card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);padding:26px 26px 24px;margin-bottom:var(--s3);box-shadow:0 14px 34px rgba(10,33,25,.07)}
.aside-card h2{font-size:1.25rem;margin-bottom:8px}
.aside-card p{font-size:.95rem;color:var(--muted);margin-bottom:var(--s2)}
.aside-card .btn{width:100%}
.aside-card .side-tel{display:inline-block;margin-top:var(--s2)}
.aside-links{list-style:none;margin:var(--s2) 0 0;padding:0}
.aside-links li{border-top:1px solid var(--line)}
.aside-links a{display:flex;justify-content:space-between;gap:12px;padding:11px 0;color:var(--ink);text-decoration:none;font-weight:500;font-size:.96rem;transition:color .2s,padding .3s var(--ease)}
.aside-links a::after{content:"\2192";color:var(--brand-2);transition:transform .3s var(--ease)}
.aside-links a:hover{color:var(--brand);padding-left:4px}
.aside-links a:hover::after{transform:translateX(4px)}

/* ---------- call-to-action band and related links ---------- */
.cta-band{background:linear-gradient(150deg,#06503F 0%,#014235 55%,#01372C 100%);color:var(--on-d);padding:var(--s5) 0}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem);max-width:22ch}
.cta-band p{color:var(--on-d2);margin:8px 0 0;max-width:52ch}
.cta-band .actions{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap}
.cta-band .side-tel{color:#fff;font-size:1.1rem}
.related{padding:var(--s5) 0 var(--s6);background:var(--paper)}
.related h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:var(--s4)}
.rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rel-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px;text-decoration:none;color:var(--body);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.rel-card:hover{transform:translateY(-4px);box-shadow:0 22px 46px rgba(10,33,25,.13)}
.rel-card b{font-family:var(--disp);font-size:1.25rem;color:var(--ink);letter-spacing:-.02em;font-weight:600}
.rel-card span{font-size:.95rem;color:var(--muted);line-height:1.5}
.rel-card em{margin-top:auto;padding-top:10px;font-style:normal;font-weight:600;font-size:.9rem;color:var(--brand)}
.rel-card em::after{content:" \2192"}

/* ---------- services overview ---------- */
.hub{padding:var(--s6) 0;background:#fff}
.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.hub-card{display:flex;flex-direction:column;gap:10px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:30px 26px 24px;text-decoration:none;color:var(--body);position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s}
.hub-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px rgba(10,33,25,.13);background:#fff}
.hub-card .svc-ic{margin-bottom:6px}
.hub-card b{font-family:var(--disp);font-size:1.3rem;color:var(--ink);letter-spacing:-.02em;font-weight:600;line-height:1.15}
.hub-card span{font-size:.95rem;color:var(--muted);line-height:1.55}
.hub-card em{margin-top:auto;padding-top:12px;font-style:normal;font-weight:600;font-size:.9rem;color:var(--brand)}
.hub-card em::after{content:" \2192"}
.how{padding:var(--s6) 0;background:var(--paper)}
.how-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s4)}
.how-grid div{border-top:3px solid var(--brand);padding-top:var(--s3)}
.how-grid h3{margin-bottom:8px;font-size:1.3rem}
.how-grid p{margin:0;color:var(--body)}

/* ---------- homepage "What we do": centred introduction, four feature panels, no stacked rows ---------- */
.svc-intro{text-align:center;max-width:760px;margin:0 auto}
.eyebrow-c{justify-content:center}
.eyebrow-c::after{content:"";width:26px;height:2px;background:var(--gold);flex-shrink:0}
.svc-intro h2{margin:var(--s2) auto 0;max-width:20ch}
.svc-intro .sub{margin:var(--s3) auto 0;color:var(--muted);font-size:1.08rem;max-width:56ch}
.svc-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin-top:var(--s5)}
.svc-card{position:relative;display:flex;flex-direction:column;background:var(--paper);border-radius:10px;padding:44px 44px 38px;box-shadow:0 1px 0 rgba(10,33,25,.06),0 18px 40px rgba(10,33,25,.07);transition:transform .45s var(--ease),box-shadow .45s var(--ease),background .3s}
.svc-card:hover{transform:translateY(-4px);background:#fff;box-shadow:0 1px 0 rgba(10,33,25,.06),0 30px 60px rgba(10,33,25,.14)}
.svc-top{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.svc-ic{width:76px;height:76px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(1,66,53,.28);transition:transform .45s var(--ease)}
.svc-ic svg{width:38px;height:38px;overflow:visible}
.svc-ic svg *{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svc-ic svg .f{fill:currentColor;fill-opacity:.22}
.svc-card:hover .svc-ic,.hub-card:hover .svc-ic{transform:scale(1.06) rotate(-3deg)}
.svc-tag{font-family:var(--serif);font-style:italic;font-weight:300;font-size:1.25rem;color:var(--brand-2);letter-spacing:-.01em}
.svc-card h3{font-size:1.75rem;letter-spacing:-.03em;line-height:1.06}
.svc-card p{margin:var(--s2) 0 0;color:var(--body);font-size:1.04rem;max-width:44ch}
.svc-card .svc-covers{max-width:none;margin-top:var(--s3);font-size:.86rem;color:var(--muted);line-height:1.65;padding-top:var(--s3);border-top:1px dashed #C9C2B0}
.svc-go{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:auto;padding-top:var(--s4)}
.svc-go a{position:relative;font-weight:700;font-size:.95rem;color:var(--brand);text-decoration:none;padding-bottom:3px;background:linear-gradient(currentColor,currentColor) left bottom/100% 1.5px no-repeat;transition:background-size .4s var(--ease),color .25s}
.svc-go a::after{content:"\2192";margin-left:7px;display:inline-block;transition:transform .3s var(--ease)}
.svc-go a:hover{color:var(--brand-2)}
.svc-go a:hover::after{transform:translateX(4px)}
.svc-band{margin-top:var(--s5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s3)}
.svc-band p{margin:0;font-size:1.12rem;color:var(--body);max-width:none}
.svc-band b{font-family:var(--disp);font-size:1.35rem;color:var(--ink);letter-spacing:-.02em;margin-right:6px}
.svc-band-actions{display:flex;align-items:center;justify-content:center;gap:var(--s4);flex-wrap:wrap}
.svc-band-actions .txtlink{margin-top:0}

/* ---------- about ---------- */
.about-intro{padding:var(--s6) 0;background:#fff}
.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s6);align-items:center}
.about-grid>*{min-width:0}
.about-photo{position:relative;border-radius:2px;overflow:hidden;box-shadow:0 26px 60px rgba(10,33,25,.2);aspect-ratio:4/5}
.about-photo img{width:100%;height:100%;object-fit:cover}
.principles{padding:var(--s6) 0;background:var(--paper)}
.principles-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s4)}
.principles-grid>div{border-top:3px solid var(--brand);padding-top:var(--s3)}
.principles-grid h3{font-size:1.35rem;margin-bottom:8px}
.principles-grid p{margin:0}
.cred-list{margin:var(--s4) 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s5);border-top:2px solid var(--ink)}
.cred-list div{padding:16px 0;border-bottom:1px solid var(--line)}
.cred-list dt{font-weight:700;color:var(--ink)}
.cred-list dd{margin:2px 0 0;color:var(--muted);font-size:.95rem}

/* ---------- areas ---------- */
.area-wrap{padding:var(--s6) 0;background:#fff}
.area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s4)}
.area-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:30px 30px 26px}
.area-card h3{font-size:1.45rem;margin-bottom:8px}
.area-card p{margin:0 0 var(--s2);font-size:1rem}
.area-card .txtlink{margin-top:0}
.area-card.deferred{background:#fff;border-style:dashed}
.tag{display:inline-block;margin-bottom:12px;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--brand-2)}

/* ---------- contact ---------- */
.contact-wrap{padding:var(--s5) 0 var(--s6);background:var(--paper)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s5);align-items:start}
.contact-grid>*{min-width:0}
.ci{margin:0;padding:0;list-style:none;border-top:2px solid var(--ink)}
.ci li{padding:20px 0;border-bottom:1px solid var(--line)}
.ci .k{display:block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--brand-2);margin-bottom:6px}
.ci .v{display:block;font-family:var(--mono);font-weight:600;font-size:1.25rem;color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.ci .v.plain{font-family:var(--sans);font-weight:500;font-size:1.05rem;line-height:1.55;letter-spacing:0}
.ci a.v:hover{color:var(--brand)}
.contact-wrap .ct-form{box-shadow:0 30px 70px rgba(10,33,25,.14)}

/* ---------- FAQ page ---------- */
.faq-page{padding:var(--s5) 0 var(--s6);background:#fff}
.faq-page .acc{max-width:900px}

/* ---------- 404 ---------- */
.nf{padding:var(--s6) 0;background:var(--paper)}
.nf h1{font-size:clamp(2.4rem,5vw,4rem);max-width:16ch;margin-top:var(--s2)}
.nf p{font-size:1.1rem;margin-top:var(--s2)}

@media (max-width:1100px){
  .phead{padding:22px 0 var(--s5)}
  .phead-grid,.art-grid,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .art{padding:var(--s5) 0}
  .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rel-grid,.how-grid,.principles-grid{grid-template-columns:1fr 1fr}
  .about-photo{aspect-ratio:16/10;max-width:640px}
  .hub,.how,.principles,.about-intro,.area-wrap{padding:var(--s5) 0}
}
@media (max-width:760px){
  .svc-cards,.area-grid,.two-col,.cred-list{grid-template-columns:minmax(0,1fr)}
  .rel-grid,.how-grid,.principles-grid{grid-template-columns:minmax(0,1fr)}
  .svc-card{padding:32px 26px 28px}
  .svc-ic{width:64px;height:64px}
  .svc-ic svg{width:32px;height:32px}
  .svc-card h3{font-size:1.5rem}
  .svc-top{margin-bottom:var(--s3)}
  .rules .row{grid-template-columns:minmax(0,1fr);gap:4px}
}
@media (max-width:520px){
  .hub-grid{grid-template-columns:minmax(0,1fr)}
  .phead h1{max-width:none}
}

/* reviews: with 11 dots on a phone, keep them on one line */
@media (max-width:760px){
  .rvd{flex-wrap:nowrap;gap:4px}
  .rvd button{width:12px}
}

/* ===== "What we do": same editorial language as the rest of the page (left-aligned header, ink rule, hairline-divided cells) ===== */
.svc-intro{text-align:left;max-width:none;margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:var(--s5);align-items:end}
.svc-intro .eyebrow-c{justify-content:flex-start;grid-column:1/-1;margin-bottom:calc(var(--s2) * -1)}
.eyebrow-c::after{display:none}
.svc-intro h2{margin:0;max-width:16ch}
.svc-intro .sub{margin:0;max-width:46ch}
.svc-cards{gap:0;margin-top:var(--s5);border-top:2px solid var(--ink)}
.svc-card,.svc-card:hover{background:transparent;border-radius:0;box-shadow:none;transform:none;padding:40px 44px 36px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:var(--s3);align-content:start}
.svc-card:nth-child(even){padding:40px 0 36px 44px;border-left:1px solid var(--line)}
.svc-top{display:block;margin:0;grid-row:1/5}
.svc-tag{display:block;grid-column:2;font-family:var(--sans);font-style:normal;font-weight:700;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-2);margin-bottom:10px}
.svc-top .svc-tag{display:none}
.svc-card .svc-tag-row{display:none}
.svc-ic{width:64px;height:64px;box-shadow:none}
.svc-ic svg{width:32px;height:32px}
.svc-card h3{grid-column:2;font-size:1.55rem}
.svc-card p,.svc-card .svc-covers,.svc-go{grid-column:2}
.svc-card .svc-covers{border-top:1px solid var(--line-soft);border-style:solid none none}
.svc-go{padding-top:var(--s3)}
.svc-band{margin-top:0;text-align:left;flex-direction:row;justify-content:space-between;align-items:center;padding:var(--s4) 0 0;gap:var(--s4);flex-wrap:wrap}
.svc-band-actions{justify-content:flex-start}
.trust .plogos{gap:var(--s4) var(--s5)}
@media (max-width:1100px){
  .svc-intro{grid-template-columns:minmax(0,1fr);gap:var(--s3);align-items:start}
}
@media (max-width:760px){
  .svc-card,.svc-card:hover,.svc-card:nth-child(even){padding:30px 0 28px;border-left:0;grid-template-columns:56px minmax(0,1fr);column-gap:var(--s2)}
  .svc-ic{width:52px;height:52px}.svc-ic svg{width:26px;height:26px}
  .svc-card h3{font-size:1.4rem}
  .svc-band{flex-direction:column;align-items:flex-start}
}

.trust .plogos{flex-wrap:nowrap;gap:var(--s3)}
.svc-band p{flex:1 1 320px}
@media (max-width:1100px){.trust .plogos{flex-wrap:wrap;gap:var(--s3) var(--s4)}}

@media (max-width:760px){.svc-band p{flex:0 0 auto}}

/* ===== audit fixes: touch targets, label size, prose subheadings, FAQ width, form heading ===== */
.prose>h3{font-size:1.2rem;margin:var(--s3) 0 6px}
.prose>h3+p{margin-top:0}
.faq-page .acc{max-width:none}
.ct-form h2{font-size:1.45rem}
.rvd button::after{inset:-18px -3px}
@media (max-width:1100px){
  footer.site a{padding:11px 0;margin-bottom:0}
  footer.site .legal a,footer.site .brand{padding:0}
  .crumbs a{display:inline-block;padding:11px 0}
  .crumbs li+li::before{margin:0 7px}
  .svc-go a,.svc-links a{display:inline-block;padding:11px 0}
  .side-tel,.txtlink,.hlink{padding-top:11px;padding-bottom:11px}
  .ci a.v{padding:6px 0}
  .tl-menu li{padding:14px 0}
  .tab{min-height:44px}
}

.band .ct-form h2{max-width:none}

/* ===== content pass: purposeful page patterns ===== */
.plans-cta{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s3)}
.plan ul{margin-bottom:0}
.plan{padding-bottom:34px}

/* shared small pieces */
.aside-card.plain{box-shadow:none;background:transparent;border:0;border-top:2px solid var(--ink);border-radius:0;padding:var(--s2) 0 var(--s3);margin-bottom:var(--s3)}
.aside-card.plain h2{font-size:1.05rem;margin-bottom:6px}
.aside-links li:first-child{border-top:0}
.aside-links small{display:block;font-weight:400;color:var(--muted);font-size:.86rem;line-height:1.45;margin-top:2px}
.aside-links a>span{display:block}
.who-row{margin-top:var(--s5);padding-top:var(--s3);border-top:2px solid var(--ink)}
.who-k{font-family:var(--sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--brand-2);margin:0 0 var(--s2)}
.who-row ul{list-style:none;margin:0;padding:0}
.who-row li{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr);gap:var(--s3);padding:14px 0;border-bottom:1px solid var(--line);align-items:start}
.who-row li b{color:var(--ink)}
.who-row .q{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-2);font-weight:700;margin-top:2px}
.who-row .pd{color:var(--body);font-size:.98rem}
.who-row .pn{display:block}
.who-more{margin:var(--s2) 0 0;font-size:.95rem}
.cta-links{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s2)}
.cta-links a{color:#fff;font-weight:600;font-size:.95rem;text-decoration:none;border-bottom:1.5px solid rgba(255,255,255,.5);padding:8px 0;transition:border-color .25s}
.cta-links a:hover{border-color:#fff}

/* advisory pages */
.adv-lead{background:var(--paper);padding:var(--s6) 0 var(--s5)}
.adv-lead-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s6);align-items:start}
.adv-serif{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.12;letter-spacing:-.02em;color:var(--ink);margin:0;max-width:18ch}
.adv-when{background:#fff;padding:var(--s5) 0 var(--s6)}
.when-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5);margin-top:var(--s4)}
.when-grid>div{border-top:2px solid var(--ink);padding-top:var(--s3)}
.when-grid .n{font-family:var(--serif);font-size:2.4rem;color:var(--brand-2);line-height:1}
.when-grid h3{font-size:1.35rem;margin:10px 0 8px}
.when-grid p{margin:0;color:var(--body)}
.adv-do{background:var(--paper-2);padding:var(--s6) 0}
.adv-do-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.adv-do .prose>h2{margin-top:0}
.adv-do .callout{background:#fff}

/* services directory */
.dir{background:#fff;padding:var(--s5) 0 var(--s6)}
.dir-group{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--s5);padding:var(--s5) 0;border-top:2px solid var(--ink)}
.dir-group:first-child{padding-top:var(--s4)}
.dir-lab h2{font-size:1.7rem}
.dir-lab p{color:var(--muted);margin:10px 0 0;max-width:30ch}
.dir-row{display:grid;grid-template-columns:56px minmax(0,1fr) 28px;gap:var(--s3);align-items:center;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--body);transition:padding .35s var(--ease),background .3s}
.dir-row:first-child{padding-top:4px}
.dir-row:hover{padding-left:10px}
.dir-ic{width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center}
.dir-ic svg{width:27px;height:27px;overflow:visible}
.dir-ic svg *{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.dir-ic svg .f{fill:currentColor;fill-opacity:.22}
.dir-tx b{display:block;font-family:var(--disp);font-size:1.3rem;color:var(--ink);letter-spacing:-.02em;font-weight:600;line-height:1.15}
.dir-tx span{display:block;color:var(--muted);font-size:.97rem;line-height:1.5;margin-top:3px}
.dir-go{color:var(--brand-2);font-size:1.2rem;transition:transform .3s var(--ease)}
.dir-row:hover .dir-go{transform:translateX(5px)}
.dir-row:hover .dir-tx b{color:var(--brand)}

/* location pages */
.loc-split{background:#fff;padding:var(--s6) 0}
.loc-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s6);align-items:start}
.loc-card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--r);padding:34px 36px}
.loc-addr{font-style:normal;font-family:var(--disp);font-weight:600;font-size:1.55rem;line-height:1.25;letter-spacing:-.02em;color:var(--ink);margin-top:var(--s2)}
.loc-meta{margin:var(--s3) 0 0;padding-top:var(--s2);border-top:1px solid var(--line);font-size:1rem}
.loc-note{margin:var(--s2) 0 0;color:var(--muted);font-size:.95rem}
.loc-card .who-row{margin-top:var(--s2);border-top:0;padding-top:0}
.loc-card .who-row li{grid-template-columns:minmax(0,1fr)}
.loc-links{background:var(--paper);padding:var(--s5) 0 var(--s6)}
.loc-links-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--s6);align-items:start}
.loc-links .aside-links{margin-top:0;border-top:2px solid var(--ink)}
.loc-links .aside-links a{padding:16px 0;font-size:1.05rem}
.cov{background:#fff;padding:var(--s5) 0 var(--s6)}
.cov-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.cov-grid>div{border-top:2px solid var(--ink);padding-top:var(--s3)}
.cov-grid .n{font-family:var(--serif);font-size:2.4rem;color:var(--brand-2);line-height:1}
.cov-grid h2{font-size:1.5rem;margin:10px 0 8px}
.cov-grid p{margin:0}
.places{background:var(--paper);padding:var(--s6) 0}
.places h2{margin-top:var(--s2)}
.place-list{list-style:none;margin:var(--s4) 0 0;padding:0;border-top:2px solid var(--ink)}
.place{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr) minmax(0,.7fr);gap:var(--s4);padding:26px 0;border-bottom:1px solid var(--line);align-items:center}
.place h3{font-size:1.45rem}
.pl-status{display:block;margin-top:4px;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--brand-2)}
.place p{margin:0;color:var(--body)}
.place .txtlink{margin:0;justify-self:end}

@media (max-width:1100px){
  .adv-lead-grid,.adv-do-grid,.loc-grid,.loc-links-grid,.dir-group{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .when-grid,.cov-grid{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .adv-lead,.adv-do,.loc-split,.places{padding:var(--s5) 0}
  .adv-serif{max-width:none}
  .place{grid-template-columns:minmax(0,1fr);gap:8px}
  .place .txtlink{justify-self:start}
  .dir-group{padding:var(--s4) 0}
}
@media (max-width:620px){
  .who-row li{grid-template-columns:minmax(0,1fr);gap:4px}
  .dir-row{grid-template-columns:48px minmax(0,1fr) 20px;gap:var(--s2)}
  .dir-ic{width:48px;height:48px}
  .loc-card{padding:26px 22px}
  .loc-addr{font-size:1.3rem}
}


/* =====================================================================
   Restoration of the original Netlify design language in ABLM's real brand.
   What comes from the original: dark photographic bands alternating with stone, glass panels, architectural
   photography in true greyscale (never green-tinted), real faces early, open reviews, white portrait cards.
   What is ABLM's own: the logo, deep green #014235, cream and white, sage accents, verified content.
   Motion: one-time entrance fades only. Nothing is linked to scroll position.
   ===================================================================== */
:root{--char:#1C2925;--char-2:#24332E;--footer:#131E1B;--gold-l:#9DC9B2;--ink-d:#17221F}

/* ---------- HERO ---------- */
.hero{position:relative;color:#fff;background:#17221F;overflow:hidden;padding:0 0 150px}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 28%;filter:grayscale(1) contrast(1.12) brightness(.92);opacity:.92}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(96deg,#17221F 0%,rgba(23,34,31,.95) 32%,rgba(23,34,31,.62) 60%,rgba(23,34,31,.3) 100%),
  linear-gradient(180deg,rgba(23,34,31,.55) 0%,rgba(23,34,31,0) 28%,rgba(23,34,31,.92) 100%)}
.hero::before{content:"";position:absolute;left:-12%;bottom:-38%;width:75%;height:100%;background:radial-gradient(closest-side,rgba(1,66,53,.6),transparent);pointer-events:none;z-index:1}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#1F6354 0%,rgba(31,99,84,0) 62%);z-index:3}
.hero-rules{position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 160px);-webkit-mask-image:linear-gradient(90deg,transparent 38%,#000 100%);mask-image:linear-gradient(90deg,transparent 38%,#000 100%)}
.hero .hgrid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--s6);align-items:center;padding-top:96px;padding-bottom:0}
.hero .hgrid>*{min-width:0}
.hero .kicker{display:flex;align-items:center;flex-wrap:wrap;gap:6px 0;color:#B9D8C7;margin-bottom:var(--s4);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.hero .kicker span{position:relative;padding-right:16px;margin-right:16px}
.hero .kicker span:first-child::before{content:"";display:inline-block;width:26px;height:1px;background:#B9D8C7;vertical-align:middle;margin-right:14px}
.hero .kicker span:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;width:3px;height:3px;border-radius:50%;background:rgba(185,216,199,.7);transform:translateY(-50%)}
.hero h1{color:#fff;font-size:clamp(2.7rem,4.9vw,4.4rem);line-height:1.02;letter-spacing:-.042em;font-weight:600}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.hero h1 .ln b{display:block;font-weight:600;transform:translateY(108%);animation:lineUp 1.05s var(--ease) forwards}
.hero h1 .ln:nth-child(1) b{animation-delay:.18s}.hero h1 .ln:nth-child(2) b{animation-delay:.28s}.hero h1 .ln:nth-child(3) b{animation-delay:.38s}
@keyframes lineUp{to{transform:none}}
.hero h1 i{font-style:normal;color:#C9E3D4}
.hero .lede{font-size:1.14rem;line-height:1.65;color:rgba(255,255,255,.86);max-width:47ch;margin-top:var(--s4)}
.hero .actions{margin-top:var(--s4);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero .btn-w{box-shadow:0 12px 30px rgba(0,0,0,.35)}
.hero .btn-g{border-color:rgba(255,255,255,.45)}
.fade{opacity:0;animation:fadeUp 1s var(--ease) forwards}
.fade.d0{animation-delay:.05s}.fade.d1{animation-delay:.52s}.fade.d2{animation-delay:.66s}.fade.d3{animation-delay:.8s}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.hteam{display:inline-flex;align-items:center;gap:16px;margin-top:var(--s4);text-decoration:none;color:rgba(255,255,255,.8);font-size:.92rem;line-height:1.35}
.hteam .faces{display:flex}
.hteam .faces img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:50% 14%;border:2px solid #1C2925;margin-left:-13px;background:#fff;transition:transform .35s var(--ease)}
.hteam .faces img:first-child{margin-left:0}
.hteam:hover .faces img{transform:translateY(-3px)}
.hteam b{display:block;color:#fff;font-size:.98rem;letter-spacing:-.01em}
.hteam:hover b{color:#C9E3D4}
.hglass{background:rgba(255,255,255,.065);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-top:3px solid #2E7D63;border-radius:8px;padding:28px 30px 12px;justify-self:end;width:100%;max-width:400px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.hg-eb{font-family:var(--sans);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#B9D8C7;margin:0 0 var(--s2)}
.hglass dl{margin:0}
.hglass dl>div{padding:14px 0;border-top:1px solid rgba(255,255,255,.14)}
.hglass dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);font-weight:700}
.hglass dd{margin:4px 0 0;color:#fff;font-size:1rem;line-height:1.45}

/* ---------- deadlines tool: a slim strip that overlaps the hero edge ---------- */
.dl{position:relative;z-index:6;margin-top:-96px}
.hbox{background:#FAF8F2;color:var(--body);border-radius:8px;border-top:3px solid #2E7D63;box-shadow:0 30px 70px rgba(5,10,10,.3),0 0 0 1px rgba(10,20,20,.06);display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:var(--s3) var(--s5);padding:26px 32px 14px;max-width:none;width:100%}
.hb-left,.hb-right{min-width:0}
.hb-head{padding-bottom:var(--s2)}
.hb-eb{display:block;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--brand-2);margin-bottom:6px}
.hb-h{color:var(--ink);font-size:1.3rem;letter-spacing:-.025em;line-height:1.15}
.hb-in label{display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:7px}
.hb-in input{width:100%;max-width:100%;min-height:44px;background:#fff;border:1px solid #C9D3C6;border-radius:var(--r);color:var(--ink);font-family:var(--mono);font-size:.98rem;padding:9px 12px;-webkit-appearance:none;appearance:none;font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s}
.hb-in input:hover{border-color:#93AA98}
.hb-in input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(1,66,53,.16)}
.hb-hint{margin:8px 0 0;font-size:.82rem;color:var(--muted);line-height:1.45}
.hb-out{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-height:112px}
.hb-out .tl-item{display:flex;flex-direction:column;justify-content:flex-start;gap:8px;padding:2px 20px 4px 20px;border-left:1px solid var(--line);opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.hb-out .tl-item:first-child{border-left:0;padding-left:0}
.hb-out .tl-item.show{opacity:1;transform:none}
.hb-out .tl-item::before,.hb-out .tl-item::after{display:none!important}
.hb-out .tl-item>div:first-child{padding-left:0}
.hb-out .task{display:block;font-size:.88rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.3}
.hb-out .note{display:none;font-size:.8rem;color:var(--muted);margin-top:4px;line-height:1.4;font-weight:400}
.hbox.open .note{display:block}
.hb-out .date{text-align:left;white-space:nowrap}
.hb-out .date b{display:block;font-family:var(--mono);font-size:.98rem;color:var(--brand);font-weight:600;letter-spacing:-.03em}
.hb-out .date span{display:block;font-family:var(--mono);font-size:.75rem;color:var(--muted);margin-top:2px;letter-spacing:-.02em}
.hb-foot{grid-column:1/-1;display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;border-top:1px solid var(--line-soft);margin-top:var(--s2);padding-top:2px}
.hb-toggle{align-items:center;gap:8px;background:none;border:0;padding:8px 0;font:600 .85rem var(--sans);color:var(--brand);cursor:pointer;min-height:44px}
.hb-toggle i{width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
.hb-toggle[aria-expanded="true"] i{transform:rotate(225deg) translateY(-2px)}
.hb-toggle:hover{color:var(--brand-2)}
.hb-disc{margin:0;font-size:.78rem;color:var(--muted);line-height:1.5}
.trust{padding-top:var(--s5)}

/* ---------- TEAM: early, white portrait cards on stone (as in the original) ---------- */
.team-sec{background:var(--paper-2);padding:var(--s6) 0 var(--s5)}
.team-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:var(--s5);align-items:end}
.team-head h2{margin-top:var(--s2)}
.team-head .sub{margin:0;color:var(--muted);font-size:1.06rem;max-width:52ch}
.team{gap:20px;margin-top:var(--s5)}
.member{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 14px 34px rgba(10,20,20,.08);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.member:hover{transform:translateY(-4px);box-shadow:0 26px 50px rgba(10,20,20,.14)}
.member .ph{background:#fff;border-radius:0;box-shadow:none}
.member .info{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1.5em 1fr;padding:18px 22px 24px;background:none;margin-top:0;border-top:1px solid var(--line-soft)}
.member .info::before{display:none}
.member:hover .info{background:none}
.team-more{margin:var(--s4) 0 0}
.team-more .txtlink{margin-top:0}

/* ---------- SERVICES: dark photographic band with glass panels ---------- */
.svx{position:relative;background:#1C2925;color:#fff;padding:var(--s6) 0;overflow:hidden}
.svx-bg{position:absolute;inset:0;z-index:0}
.svx-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);opacity:.22}
.svx-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(23,34,31,.96) 0%,rgba(23,34,31,.86) 50%,rgba(23,34,31,.78) 100%)}
.svx .wrap{position:relative;z-index:2}
.svx .eyebrow{color:var(--gold-l)}
.svx-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s5);align-items:end}
.svx-head h2{color:#fff;margin-top:var(--s2);max-width:20ch}
.svx-head .sub{margin:0;color:rgba(238,244,240,.8);font-size:1.06rem;max-width:44ch}
.svx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:var(--s5)}
.svx-card{display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--s3);padding:34px 34px 28px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .35s,border-color .35s,transform .45s var(--ease)}
.svx-card:hover{background:rgba(255,255,255,.09);border-color:rgba(157,201,178,.45);transform:translateY(-3px)}
.svx-ic{width:64px;height:64px;border-radius:50%;background:rgba(157,201,178,.12);border:1px solid rgba(157,201,178,.4);color:#B9D8C7;display:flex;align-items:center;justify-content:center}
.svx-ic svg{width:30px;height:30px;overflow:visible}
.svx-ic svg *{stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.svx-ic svg .f{fill:currentColor;fill-opacity:.18}
.svx-tx h3{color:#fff;font-size:1.45rem;letter-spacing:-.025em;line-height:1.1}
.svx-tx p{margin:10px 0 0;color:rgba(238,244,240,.84);font-size:1rem;max-width:46ch}
.svx-tx .svx-cov{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-size:.84rem;color:rgba(238,244,240,.62);line-height:1.6;max-width:none}
.svx-go{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:10px}
.svx-go a{color:#B9D8C7;font-weight:700;font-size:.93rem;text-decoration:none;padding:9px 0;border-bottom:1.5px solid transparent;transition:color .25s,border-color .25s}
.svx-go a::after{content:"\2192";margin-left:7px;display:inline-block;transition:transform .3s var(--ease)}
.svx-go a:hover{color:#fff;border-bottom-color:#fff}
.svx-go a:hover::after{transform:translateX(4px)}
.svx-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid rgba(255,255,255,.14)}
.svx-foot p{margin:0;color:rgba(238,244,240,.85);font-size:1.08rem;max-width:none}
.svx-foot-actions{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.svx-tel{color:#fff;font-family:var(--mono);font-weight:600;text-decoration:none;font-size:1.02rem;padding:10px 0}
.svx-all{color:#B9D8C7;font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(185,216,199,.5);padding:10px 0 3px}
.svx-all:hover{color:#fff;border-color:#fff}

/* ---------- ABOUT / how we work: stone, substantial, with a dark credentials band ---------- */
.abx{background:var(--paper);padding:var(--s6) 0 var(--s6)}
.abx-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s6);align-items:start}
.abx-grid>*{min-width:0}
.abx-l h2{margin-top:var(--s2);max-width:15ch}
.abx-lead{font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.42;color:var(--ink);letter-spacing:-.01em;margin:var(--s4) 0;padding-left:var(--s3);border-left:3px solid var(--brand);max-width:34ch}
.abx-l p{max-width:56ch;color:var(--body)}
.abx-points{margin:var(--s5) 0 0;border-top:2px solid var(--ink)}
.abx-points>div{padding:22px 0;border-bottom:1px solid var(--line)}
.abx-points dt{font-family:var(--disp);font-size:1.3rem;font-weight:600;color:var(--ink);letter-spacing:-.02em}
.abx-points dd{margin:6px 0 0;color:var(--body);font-size:1rem}
.abx-creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:var(--s6);background:#1C2925;border-radius:8px;overflow:hidden;box-shadow:0 26px 60px rgba(10,20,20,.2)}
.abx-creds>div{padding:34px 30px;border-left:1px solid rgba(255,255,255,.12)}
.abx-creds>div:first-child{border-left:0}
.abx-creds .n{display:block;font-family:var(--disp);font-size:clamp(2.2rem,3.6vw,3.1rem);font-weight:600;letter-spacing:-.04em;color:#fff;line-height:1}
.abx-creds .l{display:block;margin-top:10px;color:rgba(238,244,240,.72);font-size:.92rem;line-height:1.45;max-width:22ch}

/* ---------- FREE TOOLS: compact ---------- */
.tlx{background:#fff;padding:var(--s5) 0 var(--s6)}
.tlx-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:var(--s5);align-items:end;margin-bottom:var(--s4)}
.tlx-head h2{margin-top:var(--s2);font-size:clamp(1.8rem,3vw,2.5rem)}
.tlx-head .sub{margin:0;color:var(--muted);max-width:50ch}
.tlx .toolbox{padding:6px var(--s3) var(--s3);border-top:3px solid var(--brand)}
.tlx .cshell{grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:var(--s4);margin-top:var(--s3);align-items:start}
.tlx .cbox{padding:20px 22px}
.tlx .cbox .fld{margin-bottom:12px}
.tlx .cbox input,.tlx .cbox select{padding:10px 12px}
.tlx .cbox .hint{font-size:.8rem;margin-bottom:12px}
.tlx .resrow{padding:8px 0}
.tlx .resrow.total{padding-top:12px}
.tlx .resrow.total .v{font-size:1.55rem}
.tlx .barx{margin-top:var(--s1)}
.tlx .disc{margin-top:var(--s2)}

/* ---------- FEES: dark band, middle plan white (as in the original) ---------- */
.pricing.pdark{background:#1C2925;color:#fff;padding:var(--s6) 0}
.pricing.pdark h2{color:#fff}
.pricing.pdark .eyebrow{color:var(--gold-l)}
.pricing.pdark .sub{color:rgba(238,244,240,.8)}
.pricing.pdark .plan{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);color:#fff;box-shadow:none}
.pricing.pdark .plan:hover{background:rgba(255,255,255,.09);box-shadow:0 24px 50px rgba(0,0,0,.3)}
.pricing.pdark .plan h3{color:#fff}
.pricing.pdark .plan .for{color:var(--gold-l)}
.pricing.pdark .plan .price-note{color:#fff;border-bottom-color:rgba(255,255,255,.14)}
.pricing.pdark .plan li{color:rgba(238,244,240,.88)}
.pricing.pdark .plan li::before{border-color:var(--gold-l)}
.pricing.pdark .plan.feat{background:#fff;border-color:#fff;border-top:4px solid var(--brand-2);box-shadow:0 34px 70px rgba(0,0,0,.45)}
.pricing.pdark .plan.feat:hover{background:#fff;box-shadow:0 40px 80px rgba(0,0,0,.55)}
.pricing.pdark .plan.feat h3{color:var(--ink)}
.pricing.pdark .plan.feat .for{color:var(--brand-2)}
.pricing.pdark .plan.feat .price-note{color:var(--brand);border-bottom-color:var(--line)}
.pricing.pdark .plan.feat li{color:var(--body)}
.pricing.pdark .plan.feat li::before{border-color:var(--brand)}
.pricing.pdark .pricenote{color:rgba(238,244,240,.75)}
.pricing.pdark .side-tel{color:#fff}
.pricing.pdark .plans-cta .btn-p{background:#fff;color:var(--ink);border-color:#fff}
.pricing.pdark .plans-cta .btn-p:hover{background:#DCEBE2;border-color:#DCEBE2}

/* ---------- other bands take the same neutral dark ---------- */
.reviews{background:var(--char)}
.band{background:var(--char)}
.cta-band{background:linear-gradient(150deg,#26352F 0%,#1C2925 70%);border-top:3px solid #1F6354}
.phead.dark{background:#17221F}
.phead.dark::before{background:linear-gradient(96deg,rgba(23,34,31,.97) 0%,rgba(23,34,31,.86) 55%,rgba(23,34,31,.72) 100%),url(/assets/img/hero-building.jpg) 62% 28%/cover;filter:grayscale(1);opacity:1}
.phead.dark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#1F6354 0%,rgba(31,99,84,0) 62%)}
.phead.dark .wrap{z-index:2}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .hero{padding-bottom:110px}
  .hero .hgrid{grid-template-columns:minmax(0,1fr);gap:var(--s5);padding-top:60px}
  .hglass{justify-self:stretch;max-width:560px}
  .hero-rules{display:none}
  .dl{margin-top:-64px}
  .hbox{grid-template-columns:minmax(0,1fr);padding:24px 24px 8px}
  .hb-out{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s3)}
  .hb-out .tl-item:nth-child(3){border-left:0;padding-left:0}
  .team-head,.svx-head,.tlx-head,.abx-grid{grid-template-columns:minmax(0,1fr);gap:var(--s3)}
  .team-sec,.svx,.abx,.pricing.pdark{padding:var(--s5) 0}
  .svx-grid{grid-template-columns:minmax(0,1fr)}
  .abx-creds{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--s5)}
  .abx-creds>div:nth-child(3){border-left:0}
  .abx-creds>div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
  .tlx .cshell{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:620px){
  .hero h1{font-size:clamp(2.3rem,9.5vw,2.8rem)}
  .hero .kicker span:first-child::before{display:none}
  .hero .actions .btn{flex:1 1 100%}
  .hteam .faces img{width:42px;height:42px}
  .hglass{padding:22px 22px 6px}
  .hb-out{grid-template-columns:minmax(0,1fr)}
  .hb-out .tl-item,.hb-out .tl-item:first-child,.hb-out .tl-item:nth-child(3){flex-direction:row;justify-content:space-between;align-items:baseline;border-left:0;padding:10px 0;border-bottom:1px solid var(--line-soft)}
  .hb-out .tl-item:last-child{border-bottom:0}
  .hb-out .date{text-align:right}
  .svx-card{grid-template-columns:minmax(0,1fr);padding:28px 24px 22px;gap:var(--s2)}
  .svx-ic{width:56px;height:56px}
  .abx-creds>div{padding:24px 20px}
  .svx-foot,.svx-foot-actions{align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  .hero h1 .ln b{transform:none}.fade{opacity:1}.hb-out .tl-item{opacity:1;transform:none}
}

/* mobile compaction */
@media (max-width:620px){
  .hglass{display:none}
  .team{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .member .info{padding:12px 12px 16px;grid-template-rows:auto 1.4em 1fr}
  .member .info h3{font-size:1rem}
  .member .info p{font-size:.8rem;line-height:1.45}
  .member .ph img{aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;width:100%;height:auto}
}

/* inner-page header glance as the same glass panel */
.phead .glance{background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-top:3px solid #2E7D63;color:#fff;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.phead .glance h2{color:#B9D8C7}
.phead .glance .row{border-top-color:rgba(255,255,255,.14)}
.phead .glance dt{color:rgba(255,255,255,.62)}
.phead .glance dd{color:#fff}
.phead .glance a{color:#C9E3D4}
.phead .eyebrow{color:#B9D8C7}
.phead.dark .btn-g{color:#fff;border-color:rgba(255,255,255,.45)}
.phead.dark .lede a,.phead.dark p a{color:#C9E3D4}

/* tablet: glance panel spans the width as a 2x2 grid so the hero stays short */
@media (min-width:621px) and (max-width:1100px){
  .hglass{max-width:none;padding:22px 28px 6px}
  .hglass dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}
  .hero{padding-bottom:100px}
}

/* tablet refinements: keep the long sections compact */
@media (min-width:621px) and (max-width:1100px){
  .svx-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .svx-card{grid-template-columns:minmax(0,1fr);padding:26px 24px 20px;gap:var(--s2)}
  .pc-fig{min-height:0;height:300px}
  .plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .plan{padding:24px 20px}
}
@media (max-width:620px){
  .pc-fig{min-height:0;height:240px}
}
@media (max-width:620px){
  .svx-ic{width:46px;height:46px}.svx-ic svg{width:22px;height:22px}
  .svx-card{padding:22px 20px 16px}
  .svx-tx h3{font-size:1.25rem}
}


/* ============ WARM / BRIGHTEN PASS ============
   Same structure. Lighter, warmer deep green-charcoal replaces near-black; the photograph is brighter and less
   covered; the fees band becomes light so the dark bands (hero, services, reviews, contact) are separated by relief. */
:root{--char:#222A27;--char-2:#2C3633;--footer:#181F1D;--gold-l:#A9D2BA}
.hero{background:#222A27}
.hero-bg img{filter:grayscale(1) contrast(1.04) brightness(1.22);opacity:1;object-position:62% 30%}
.hero-bg::after{background:
  linear-gradient(96deg,rgba(28,34,32,.9) 0%,rgba(28,34,32,.72) 32%,rgba(28,34,32,.3) 62%,rgba(28,34,32,.06) 100%),
  linear-gradient(180deg,rgba(28,34,32,.3) 0%,rgba(28,34,32,0) 24%,rgba(28,34,32,.5) 100%)}
.hero::before{background:radial-gradient(closest-side,rgba(40,120,98,.38),transparent)}
.hero .lede{color:rgba(255,251,242,.93)}
.hero .kicker,.hg-eb{color:#CFE5D8}
.hglass{background:rgba(28,34,32,.42);border-color:rgba(255,255,255,.24);border-top-color:#3E9478;box-shadow:0 24px 56px rgba(10,20,17,.28)}
.hglass dt{color:rgba(255,255,255,.7)}

.svx{background:#272E2B}
.svx-bg img{filter:grayscale(1) contrast(1.05) brightness(1.25);opacity:.32}
.svx-bg::after{background:linear-gradient(100deg,rgba(39,46,43,.9) 0%,rgba(39,46,43,.74) 50%,rgba(39,46,43,.58) 100%)}
.svx-card{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.2)}
.svx-card:hover{background:rgba(255,255,255,.15);border-color:rgba(169,210,186,.6)}
.svx-ic{background:rgba(169,210,186,.18);border-color:rgba(169,210,186,.5)}
.svx-tx p{color:rgba(250,248,242,.92)}
.svx-tx .svx-cov{color:rgba(250,248,242,.8);border-top-color:rgba(255,255,255,.2)}

.reviews{background:linear-gradient(155deg,#2E3A36 0%,#252E2B 100%)}
.reviews .rq{color:#FFFBF2}
.rq{border-left-color:rgba(255,255,255,.22)}

.band{background:linear-gradient(155deg,#2E3A36 0%,#252E2B 100%)}
.cta-band{background:linear-gradient(150deg,#303D38 0%,#272F2C 70%);border-top:3px solid #3E9478}
.phead.dark{background:#252E2B}
.phead.dark::before{background:linear-gradient(96deg,rgba(28,34,32,.88) 0%,rgba(28,34,32,.66) 55%,rgba(28,34,32,.34) 100%),url(/assets/img/hero-building.jpg) 62% 30%/cover;filter:grayscale(1) brightness(1.2)}
.phead .glance{background:rgba(28,34,32,.42);border-color:rgba(255,255,255,.24);border-top-color:#3E9478;box-shadow:0 24px 56px rgba(10,20,17,.26)}
.abx-creds{background:#272E2B}
.abx-creds>div{border-left-color:rgba(255,255,255,.16)}

/* fees: light band, white plans, the featured plan in ABLM green */
.pricing.pdark{background:var(--paper-2);color:var(--body)}
.pricing.pdark h2{color:var(--ink)}
.pricing.pdark .eyebrow{color:var(--brand-2)}
.pricing.pdark .sub{color:var(--muted)}
.pricing.pdark .plan{background:#fff;border:1px solid var(--line);color:var(--body);box-shadow:0 12px 30px rgba(31,45,40,.07)}
.pricing.pdark .plan:hover{background:#fff;box-shadow:0 22px 44px rgba(31,45,40,.13)}
.pricing.pdark .plan h3{color:var(--ink)}
.pricing.pdark .plan .for{color:var(--brand-2)}
.pricing.pdark .plan .price-note{color:var(--brand);border-bottom-color:var(--line)}
.pricing.pdark .plan li{color:var(--body)}
.pricing.pdark .plan li::before{border-color:var(--brand)}
.pricing.pdark .plan.feat{background:#014235;border-color:#014235;border-top:4px solid #5FB095;box-shadow:0 30px 60px rgba(1,66,53,.3)}
.pricing.pdark .plan.feat:hover{background:#014235;box-shadow:0 36px 70px rgba(1,66,53,.38)}
.pricing.pdark .plan.feat h3{color:#fff}
.pricing.pdark .plan.feat .for{color:#BFE0CF}
.pricing.pdark .plan.feat .price-note{color:#fff;border-bottom-color:rgba(255,255,255,.22)}
.pricing.pdark .plan.feat li{color:rgba(255,255,255,.92)}
.pricing.pdark .plan.feat li::before{border-color:#BFE0CF}
.pricing.pdark .pricenote{color:var(--muted)}
.pricing.pdark .side-tel{color:var(--ink)}
.pricing.pdark .plans-cta .btn-p{background:var(--brand);color:#fff;border-color:var(--brand)}
.pricing.pdark .plans-cta .btn-p:hover{background:#0A5646;border-color:#0A5646}

/* services: a little lighter and warmer again, photograph slightly more present */
.svx{background:#2F3C37}
.svx-bg img{opacity:.4;filter:grayscale(1) contrast(1.05) brightness(1.3)}
.svx-bg::after{background:linear-gradient(100deg,rgba(47,60,55,.88) 0%,rgba(47,60,55,.7) 50%,rgba(47,60,55,.5) 100%)}
.svx-card{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24)}
.svx-card:hover{background:rgba(255,255,255,.17)}

/* inner headers: a touch of ABLM green in the overlay so they read warm, not grey */
.phead.dark::before{background:linear-gradient(96deg,rgba(26,42,36,.86) 0%,rgba(26,42,36,.62) 55%,rgba(26,42,36,.3) 100%),url(/assets/img/hero-building.jpg) 62% 30%/cover;filter:grayscale(1) brightness(1.2)}
/* small screens: the photograph sits behind the copy, so keep the overlay even for readable text */
@media (max-width:900px){
  .hero-bg::after{background:linear-gradient(180deg,rgba(28,34,32,.72) 0%,rgba(28,34,32,.6) 55%,rgba(28,34,32,.72) 100%)}
}

/* ============ BRAND GREEN PASS ============
   Colour system, anchored on ABLM green #014235. These are design tones derived for depth, not extra brand colours.
   forest #00372D (deepest, behind headlines and in the footer) / brand #014235 (the main dark surface) /
   mid #095747 and lift #106B58 (light and depth) / pale #B8D8CA (small labels and links) / cream and white (relief).
   Photographs stay greyscale and visible; the green is a graded layer over them, never an opaque filter. */
:root{--char:#00372D;--char-2:#014235;--footer:#00281F;--gold-l:#B8D8CA;--g-forest:#00372D;--g-brand:#014235;--g-mid:#095747;--g-lift:#106B58;--g-pale:#B8D8CA}

/* hero */
.hero{background:#01382E}
.hero-bg img{filter:grayscale(1) contrast(1.08) brightness(1.12);opacity:1;object-position:62% 30%}
.hero-bg::after{background:
  linear-gradient(96deg,rgba(0,55,45,.95) 0%,rgba(1,66,53,.84) 32%,rgba(1,66,53,.42) 62%,rgba(9,87,71,.14) 100%),
  linear-gradient(180deg,rgba(0,45,36,.3) 0%,rgba(0,45,36,0) 26%,rgba(0,45,36,.58) 100%)}
.hero::before{left:-10%;bottom:-40%;width:80%;height:105%;background:radial-gradient(closest-side,rgba(16,107,88,.55),transparent)}
.hero::after{background:linear-gradient(90deg,#3E9478 0%,rgba(62,148,120,0) 64%)}
.hero .kicker,.hg-eb{color:#B8D8CA}
.hero .kicker span:first-child::before{background:#B8D8CA}
.hero .kicker span:not(:last-child)::after{background:rgba(184,216,202,.7)}
.hero h1 i{color:#C4E2D3}
.hero .lede{color:rgba(255,255,255,.93)}
.hteam .faces img{border-color:#014235}
.hteam:hover b{color:#C4E2D3}
.hglass{background:linear-gradient(160deg,rgba(16,107,88,.6) 0%,rgba(0,55,45,.78) 100%);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(184,216,202,.3);border-top:3px solid #6FBDA0;box-shadow:0 26px 60px rgba(0,30,24,.4)}
.hglass dl>div{border-top-color:rgba(184,216,202,.24)}
.hglass dt{color:#B8D8CA}
.hglass dd{color:#fff}

/* services */
.svx{background:#014235}
.svx-bg img{filter:grayscale(1) contrast(1.05) brightness(1.2);opacity:.34}
.svx-bg::after{background:
  linear-gradient(110deg,rgba(0,55,45,.93) 0%,rgba(1,66,53,.82) 48%,rgba(9,87,71,.66) 100%)}
.svx::before{content:"";position:absolute;right:-12%;top:-30%;width:60%;height:90%;background:radial-gradient(closest-side,rgba(16,107,88,.5),transparent);z-index:1;pointer-events:none}
.svx-card{background:linear-gradient(160deg,rgba(16,107,88,.5) 0%,rgba(0,55,45,.55) 100%);border:1px solid rgba(184,216,202,.26);box-shadow:0 16px 38px rgba(0,30,24,.34)}
.svx-card:hover{background:linear-gradient(160deg,rgba(16,107,88,.64) 0%,rgba(0,55,45,.62) 100%);border-color:rgba(184,216,202,.5)}
.svx-ic{background:rgba(184,216,202,.16);border-color:rgba(184,216,202,.5);color:#C9E4D7}
.svx .eyebrow{color:#B8D8CA}
.svx-tx p{color:rgba(255,255,255,.93)}
.svx-tx .svx-cov{color:rgba(232,243,237,.82);border-top-color:rgba(184,216,202,.26)}
.svx-go a,.svx-all{color:#C4E2D3}
.svx-foot{border-top-color:rgba(184,216,202,.26)}

/* reviews: deeper forest with a brand-green glow, editorial layout untouched */
.reviews{background:radial-gradient(60% 90% at 88% 0%,rgba(16,107,88,.5),transparent 70%),linear-gradient(160deg,#014235 0%,#00372D 100%)}
.reviews .eyebrow{color:#B8D8CA}
.rq{border-left-color:rgba(184,216,202,.3)}
.reviews .rq,.reviews .rq blockquote{color:#FBF8F0}
.rvd button{background:rgba(184,216,202,.3)}
.rvd button.on{background:#B8D8CA}

/* contact and CTA bands */
.band{background:radial-gradient(55% 80% at 100% 100%,rgba(16,107,88,.45),transparent 70%),linear-gradient(155deg,#014235 0%,#00372D 100%)}
.band .eyebrow{color:#B8D8CA}
.cta-band{background:linear-gradient(150deg,#095747 0%,#014235 55%,#00372D 100%);border-top:3px solid #6FBDA0}
footer.site{background:#00281F}

/* about credentials strip and inner-page headers */
.abx-creds{background:linear-gradient(135deg,#014235 0%,#00372D 100%)}
.abx-creds>div{border-left-color:rgba(184,216,202,.22)}
.phead.dark{background:#01382E}
.phead.dark::before{background:
  linear-gradient(96deg,rgba(0,55,45,.93) 0%,rgba(1,66,53,.78) 50%,rgba(1,66,53,.34) 100%),
  url(/assets/img/hero-building.jpg) 62% 30%/cover;filter:none}
.phead.dark::after{background:linear-gradient(90deg,#3E9478 0%,rgba(62,148,120,0) 64%)}
.phead .glance{background:linear-gradient(160deg,rgba(16,107,88,.6) 0%,rgba(0,55,45,.78) 100%);border:1px solid rgba(184,216,202,.3);border-top:3px solid #6FBDA0;box-shadow:0 26px 60px rgba(0,30,24,.36)}
.phead .glance h2,.phead .glance dt{color:#B8D8CA}
.phead .glance .row{border-top-color:rgba(184,216,202,.24)}
.phead .eyebrow{color:#B8D8CA}

@media (max-width:900px){
  .hero-bg::after{background:linear-gradient(180deg,rgba(0,55,45,.82) 0%,rgba(1,66,53,.7) 55%,rgba(0,55,45,.84) 100%)}
}
/* fine-tuning after review: keep the photograph present and the sky from going misty */
.hero-bg::after{background:
  linear-gradient(96deg,rgba(0,55,45,.95) 0%,rgba(1,66,53,.84) 32%,rgba(1,66,53,.5) 62%,rgba(1,66,53,.34) 100%),
  linear-gradient(180deg,rgba(0,45,36,.3) 0%,rgba(0,45,36,0) 26%,rgba(0,45,36,.58) 100%)}
.svx-bg img{opacity:.48}
.svx-bg::after{background:linear-gradient(110deg,rgba(0,55,45,.92) 0%,rgba(1,66,53,.78) 48%,rgba(9,87,71,.52) 100%)}
@media (max-width:900px){
  .hero-bg::after{background:linear-gradient(180deg,rgba(0,55,45,.82) 0%,rgba(1,66,53,.7) 55%,rgba(0,55,45,.84) 100%)}
}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(55% 60% at 100% 0%,rgba(1,66,53,.55),transparent 70%);pointer-events:none}

/* Shared by both homepage comparison concepts (appended after restore.css by `--concept N`).
   Problems solved: white text on light green, green-on-green layering, a green glass panel that blends into the
   hero, and a services band where photo, cards and text were all green. */

/* hero: no photographic wash, no glow; solid, high-contrast surface */
.hero::before{display:none}
.hero-bg::before{display:none}
.hero .lede{color:rgba(255,255,255,.94)}
.hero .kicker,.hg-eb{color:#CFE5D8}
.hero h1 i{color:#CDE8DA}

/* At a Glance: a warm ivory information panel with dark text */
.hglass{background:#FBF8F0;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #E3DCCB;border-top:4px solid #014235;box-shadow:0 28px 60px rgba(0,30,24,.35)}
.hg-eb{color:#095747}
.hglass dl>div{border-top:1px solid #E6DFCF}
.hglass dt{color:#5B6A62}
.hglass dd{color:#13201B;font-weight:500}

/* filing strip sits cleanly under the hero */
.hbox{border-top-color:#014235;box-shadow:0 26px 60px rgba(0,30,24,.28),0 0 0 1px rgba(1,66,53,.08)}

/* services: a light, editorial section with dark ink text and restrained green */
.svx{color:var(--ink)}
.svx-bg,.svx::before{display:none}
.svx .eyebrow{color:#095747}
.svx-head h2{color:#13201B}
.svx-head .sub{color:#4E5C54}
.svx-card{backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 10px 28px rgba(1,66,53,.07);border:1px solid #E1DAC8}
.svx-card:hover{border-color:#014235;box-shadow:0 18px 40px rgba(1,66,53,.14);transform:translateY(-3px)}
.svx-ic{background:#014235;border:0;color:#fff;width:60px;height:60px}
.svx-ic svg *{stroke:#fff}
.svx-ic svg .f{fill:#fff;fill-opacity:.2}
.svx-tx h3{color:#13201B}
.svx-tx p{color:#34423B}
.svx-tx .svx-cov{color:#5B6A62;border-top:1px solid #E1DAC8}
.svx-go a{color:#014235}
.svx-go a:hover{color:#13201B;border-bottom-color:#13201B}
.svx-foot{border-top:1px solid #DAD2BF}
.svx-foot p{color:#34423B}
.svx-tel{color:#13201B}
.svx-all{color:#014235;border-bottom-color:rgba(1,66,53,.45)}
.svx-all:hover{color:#13201B;border-color:#13201B}
.svx .btn-w{background:#014235;color:#fff;border-color:#014235;box-shadow:none}
.svx .btn-w:hover{background:#095747;border-color:#095747}

/* FINAL: Concept 2 split hero + Concept 1 services (selected by the client). Appended after concept-shared.css. */
.hero{background:#014235}
.hero-bg{left:auto;right:0;width:46%}
.hero-bg img{filter:grayscale(1) contrast(1.3) brightness(1.02);object-position:58% 30%;opacity:1}
.hero-bg::after{display:none}
.hero-rules{display:none}
.hero::after{height:4px;background:linear-gradient(90deg,#6FBDA0 0%,#6FBDA0 54%,transparent 54%)}
.hero .hgrid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}
.hero .hgrid>.hcol{padding-right:var(--s4)}
.hglass{justify-self:end;max-width:380px;margin-right:0}
.hero::before{display:block;content:"";position:absolute;top:0;bottom:0;left:0;width:54%;background:linear-gradient(135deg,#014235 0%,#00372D 100%);z-index:1;pointer-events:none}
.hteam .faces img{border-color:#014235}

@media (max-width:1100px){
  .hero .hgrid{grid-template-columns:minmax(0,1fr);padding-top:60px}
  .hero::before{width:100%;height:auto;bottom:0}
  .hero-bg{left:0;right:0;top:auto;bottom:0;width:100%;height:210px}
  .hero{padding-bottom:210px}
  .hero::after{background:linear-gradient(90deg,#6FBDA0 0%,rgba(111,189,160,0) 60%);height:3px}
  .hero::before{bottom:210px}
  .hglass{max-width:none;justify-self:stretch}
}
@media (min-width:1101px){
  .hero h1{font-size:clamp(2.5rem,3.9vw,3.5rem)}
  .hero .lede{max-width:44ch}
  .hero-bg img{object-position:56% 62%}
}
@media (max-width:1100px){.hero .hgrid>.hcol{padding-right:0}}
/* Services: Concept 1 exactly (white band, ivory cards, dark-green circular icons) */
.svx{background:#fff}
.svx-card{background:#F7F3EA}
.svx-card:hover{background:#fff}

/* Surface pattern for the green bands. Vector SVG only (src/assets/img/pattern-*.svg, generated by
   tools/_make-patterns.cjs), low contrast, always behind content. One family: contour lines, a drafting grid
   with registration marks, and drafting arcs. */
.reviews,.band,.cta-band,footer.site{position:relative;overflow:hidden}
.cta-band>*,footer.site>*{position:relative;z-index:1}

/* Reviews: topographic contour lines */
.reviews::after{content:"";position:absolute;inset:0;background:url(/assets/img/pattern-contour.svg) 50% 50%/cover no-repeat;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0%,#000 42%,#000 100%);mask-image:linear-gradient(90deg,rgba(0,0,0,.5) 0%,#000 42%,#000 100%)}

/* Contact: drafting grid fading from the top right, with drafting arcs in the lower right */
.band::before{background:
  url(/assets/img/pattern-arcs.svg) 100% 100%/min(46vw,640px) no-repeat,
  radial-gradient(50% 70% at 100% 100%,rgba(70,160,125,.14),transparent 70%)}
.band::after{content:"";position:absolute;inset:0;background:url(/assets/img/pattern-grid.svg) 0 0/256px 256px;pointer-events:none;
  -webkit-mask-image:radial-gradient(85% 95% at 12% 8%,#000 0%,rgba(0,0,0,.55) 45%,transparent 85%);mask-image:radial-gradient(85% 95% at 12% 8%,#000 0%,rgba(0,0,0,.55) 45%,transparent 85%)}

/* CTA bands (About and inner pages): the contour family, mirrored */
.cta-band::before{content:"";position:absolute;inset:0;background:url(/assets/img/pattern-contour.svg) 50% 50%/cover no-repeat;transform:scaleX(-1);opacity:.9;pointer-events:none}

/* Footer and About credentials strip: the same drafting grid, quieter */
footer.site::before{content:"";position:absolute;inset:0;background:url(/assets/img/pattern-grid.svg) 0 0/256px 256px;opacity:.55;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 90%);mask-image:linear-gradient(180deg,#000 0%,transparent 90%)}
.abx-creds{position:relative}
.abx-creds::before{content:"";position:absolute;inset:0;background:url(/assets/img/pattern-grid.svg) 0 0/256px 256px;opacity:.7;pointer-events:none;
  -webkit-mask-image:linear-gradient(100deg,#000 0%,transparent 80%);mask-image:linear-gradient(100deg,#000 0%,transparent 80%)}
.abx-creds>div{position:relative}

@media (max-width:620px){
  .band::before{background-size:min(70vw,360px),auto}
  .band::after{background-size:192px 192px}
}

/* Hero: pattern on the green panel only, in the negative space (lower and outer edges), clear of the headline.
   Re-uses the otherwise hidden .hero-rules layer, which sits above the green panel and below the content. */
.hero-rules{display:block;left:0;right:auto;width:54%;
  background:
    url(/assets/img/pattern-contour.svg) 0 100%/1300px auto no-repeat,
    url(/assets/img/pattern-grid.svg) 0 0/256px 256px;
  -webkit-mask-image:radial-gradient(120% 70% at 0% 100%,#000 0%,rgba(0,0,0,.55) 45%,transparent 80%);
  mask-image:radial-gradient(120% 70% at 0% 100%,#000 0%,rgba(0,0,0,.55) 45%,transparent 80%)}
@media (max-width:1100px){
  .hero-rules{width:100%;bottom:210px;background-size:900px auto,192px 192px;
    -webkit-mask-image:radial-gradient(130% 60% at 0% 100%,#000 0%,rgba(0,0,0,.5) 45%,transparent 80%);
    mask-image:radial-gradient(130% 60% at 0% 100%,#000 0%,rgba(0,0,0,.5) 45%,transparent 80%)}
}
/* hero pattern: lifted into the visible lower-left and outer edge, and doubled in strength */
@media (min-width:1101px){
  .hero-rules{
    background:
      url(/assets/img/pattern-contour.svg) 0 78%/1250px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 78%/1250px auto no-repeat,
      url(/assets/img/pattern-grid.svg) 0 0/256px 256px;
    -webkit-mask-image:radial-gradient(75% 62% at 0% 82%,#000 0%,rgba(0,0,0,.6) 50%,transparent 100%),linear-gradient(90deg,#000 0%,transparent 20%);
    -webkit-mask-composite:source-over;
    mask-image:radial-gradient(75% 62% at 0% 82%,#000 0%,rgba(0,0,0,.6) 50%,transparent 100%)}
}
@media (max-width:1100px){
  .hero-rules{background:
      url(/assets/img/pattern-contour.svg) 0 100%/900px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 100%/900px auto no-repeat,
      url(/assets/img/pattern-grid.svg) 0 0/192px 192px}
}
@media (min-width:1101px){
  .hero-rules{background:
      url(/assets/img/pattern-contour.svg) 0 70%/1250px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 70%/1250px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 70%/1250px auto no-repeat,
      url(/assets/img/pattern-grid.svg) 0 0/256px 256px;
    -webkit-mask-image:radial-gradient(85% 75% at 0% 78%,#000 0%,rgba(0,0,0,.65) 50%,transparent 100%);
    mask-image:radial-gradient(85% 75% at 0% 78%,#000 0%,rgba(0,0,0,.65) 50%,transparent 100%)}
}
@media (max-width:1100px){
  .hero-rules{background:
      url(/assets/img/pattern-contour.svg) 0 100%/900px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 100%/900px auto no-repeat,
      url(/assets/img/pattern-contour.svg) 0 100%/900px auto no-repeat,
      url(/assets/img/pattern-grid.svg) 0 0/192px 192px;
    -webkit-mask-image:radial-gradient(140% 75% at 0% 100%,#000 0%,rgba(0,0,0,.6) 55%,transparent 90%);
    mask-image:radial-gradient(140% 75% at 0% 100%,#000 0%,rgba(0,0,0,.6) 55%,transparent 90%)}
}

/* ===== Inner pages: same design language as the homepage =====
   Split header (solid ABLM green + black-and-white architecture + ivory panel), ivory/white section rhythm,
   ivory data panels with a green rule. The photograph is cropped differently per page via --px/--py. */
.phead.dark{background:#014235 url(/assets/img/pattern-contour.svg) 0 100%/1100px auto no-repeat;padding:30px 0 var(--s6)}
.phead.dark::before{content:"";position:absolute;top:0;bottom:0;right:0;left:auto;width:44%;background:url(/assets/img/hero-building.jpg) var(--px,60%) var(--py,30%)/cover no-repeat;filter:grayscale(1) contrast(1.25) brightness(1.02);opacity:1;z-index:0}
.phead.dark::after{background:linear-gradient(90deg,#6FBDA0 0%,#6FBDA0 56%,transparent 56%);height:4px}
.phead.dark .wrap{z-index:2}
.phead.dark .lede{color:rgba(255,255,255,.93)}
.phead.dark .eyebrow,.phead.dark .crumbs{color:#CFE5D8}
.phead.dark h1{max-width:17ch}
.phead .glance{background:#FBF8F0;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #E3DCCB;border-top:4px solid #014235;color:#13201B;box-shadow:0 26px 56px rgba(0,30,24,.32)}
.phead .glance h2{color:#095747}
.phead .glance .row{border-top-color:#E6DFCF}
.phead .glance dt{color:#5B6A62}
.phead .glance dd{color:#13201B;font-weight:500}
.phead .glance a{color:#014235}
@media (max-width:900px){
  .phead.dark::before{display:none}
  .phead.dark::after{background:linear-gradient(90deg,#6FBDA0 0%,rgba(111,189,160,0) 60%)}
}

/* body: data panels and rhythm */
.art{background:#fff}
.prose h2{position:relative;padding-top:18px}
.prose h2::before{content:"";position:absolute;left:0;top:0;width:36px;height:3px;background:#014235}
.rules{background:#F7F3EA;border:1px solid #E1DAC8;border-top:3px solid #014235;border-radius:4px;padding:6px 26px}
.rules .row:last-child{border-bottom:0}
.aside-card.plain{background:#F7F3EA;border:1px solid #E1DAC8;border-top:3px solid #014235;border-radius:4px;padding:22px 24px}
.art-grid>aside{position:sticky;top:96px}
.adv-lead{background:#F7F3EA}
.adv-when{background:#fff}
.adv-do{background:#F7F3EA}
.dir-row{background:#F7F3EA;border:1px solid #E1DAC8;border-radius:6px;padding:20px 24px;margin-bottom:12px}
.dir-row:first-child{padding-top:20px}
.dir-row:hover{padding-left:24px;background:#fff;border-color:#014235}
.dir{background:#fff}
.loc-card{background:#F7F3EA;border-color:#E1DAC8;border-top-color:#014235}
.loc-links,.places{background:#F7F3EA}

/* FAQ: topic rail + grouped accordion */
.faq-page{background:#fff;padding:var(--s6) 0}
.faq-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--s6);align-items:start}
.faq-nav{position:sticky;top:96px;background:#F7F3EA;border:1px solid #E1DAC8;border-top:3px solid #014235;border-radius:4px;padding:22px 24px}
.faq-nav-k{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#095747;margin:0 0 var(--s2)}
.faq-nav a{display:block;padding:14px 0;border-top:1px solid #E1DAC8;text-decoration:none;color:var(--ink)}
.faq-nav a:first-of-type{border-top:0;padding-top:4px}
.faq-nav a b{display:block;font-family:var(--disp);font-size:1.1rem;letter-spacing:-.01em}
.faq-nav a span{display:block;font-size:.88rem;color:var(--muted);margin-top:3px;line-height:1.45}
.faq-nav a:hover b{color:#014235;text-decoration:underline}
.faq-group+.faq-group{margin-top:var(--s6)}
.faq-group h2{font-size:1.7rem;margin-bottom:var(--s3);scroll-margin-top:100px}
.faq-page .acc{max-width:none}
@media (max-width:1000px){
  .faq-layout{grid-template-columns:minmax(0,1fr);gap:var(--s4)}
  .faq-nav{position:static}
  .art-grid>aside{position:static}
}

/* take-home calculator: grouped results */
.reshead{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#095747;padding:14px 0 4px}
.res>.reshead:first-child{padding-top:0}
.chk{display:flex;align-items:flex-start;gap:10px;margin:10px 0 4px;font-size:.92rem;color:var(--ink);cursor:pointer}
.chk input{width:18px;height:18px;margin-top:2px;accent-color:#014235;flex:none}

/* Areas: towns without their own page */
.towns{background:#fff;padding:var(--s6) 0}
.towns h2{margin-top:var(--s2)}
.towns-lead{max-width:62ch;color:var(--body);margin-top:var(--s2)}
.towns-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin-top:var(--s4)}
.towns-grid>div{border-top:3px solid #014235;padding-top:var(--s2);scroll-margin-top:100px}
.towns-grid h3{font-size:1.35rem}
.towns-grid p{color:var(--body);margin:8px 0 0}
.towns-go{display:flex;gap:var(--s4);margin-top:var(--s4)}
@media (max-width:820px){.towns-grid{grid-template-columns:minmax(0,1fr)}}
.cbox label.chk{display:flex;text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:500;color:var(--ink);margin:12px 0 4px}
.cbox label.chk span{text-transform:none;letter-spacing:0}
.cbox label.chk input{width:18px;height:18px;padding:0;margin:2px 0 0;flex:none}
.who-row .pn b{white-space:nowrap}

/* deadline checker now shows three company dates */
@media (min-width:621px){.hb-out{grid-template-columns:repeat(3,minmax(0,1fr))}.hb-out .tl-item:nth-child(3){border-left:1px solid var(--line);padding-left:20px}}
/* fee card note */
.plan-note{font-size:.84rem;color:var(--muted);margin:0 0 10px;line-height:1.45}
.pricing.pdark .plan.feat .plan-note{color:rgba(255,255,255,.78)}

/* calculator input errors (blank, non-numeric or negative entries are explained, never silently treated as zero) */
.cerr{border:1px solid #B3261E;background:#FDF2F1;color:#6B1410;border-radius:6px;padding:14px 16px;font-size:.95rem;line-height:1.5}
.cerr b{display:block;margin-bottom:4px}
.cerr ul{margin:0;padding-left:18px}
.cbox input[aria-invalid="true"]{border-color:#B3261E;box-shadow:0 0 0 2px rgba(179,38,30,.18)}

/* POLISH PASS (11 Nov 2026). Look only: no wording, no new sections, no new effects. Loaded last.
   Calm green surfaces (no contour lines, drafting grid or arcs), one hero button treatment, consistent focus,
   radius, shadow and spacing. ABLM's own logo and brand greens are unchanged. */

/* 1. Home hero only: calm, no lines. All other green sections (reviews, contact band, CTA bands, credentials strip,
      footer, inner page-header banners) keep their original contour lines and drafting grid (restored 11 Nov 2026). */
.hero::before{background:#014235!important}
/* One soft contour graphic low on the green panel (the earlier version stacked three contours plus a grid). It fades out
   towards the headline, sits behind the text, and is hidden from assistive technology (decorative). */
.hero-rules{display:block!important;left:0!important;right:auto!important;width:54%!important;
  background:url(/assets/img/pattern-contour.svg) -80px 62%/1400px auto no-repeat!important;opacity:1;filter:brightness(1.9);
  -webkit-mask-image:linear-gradient(180deg,transparent 28%,#000 62%,#000 78%,transparent 100%);mask-image:linear-gradient(180deg,transparent 28%,#000 62%,#000 78%,transparent 100%)}
@media (max-width:1100px){.hero-rules{width:100%!important;bottom:210px!important;background-size:900px auto!important}}

/* 2. Hero option A (default): flat green, clear headline, ONE strong button. The second action stays but is a quiet link. */
.hero .kicker{font-size:.72rem;letter-spacing:.13em;gap:4px 0}
.hero .kicker span{padding-right:12px;margin-right:12px}
.hero .actions{align-items:center;gap:12px 24px}
.hero .actions .btn-w{box-shadow:0 10px 24px rgba(0,0,0,.22)}
.hero .actions .btn-g{background:transparent;border-color:transparent;padding-left:0;padding-right:0;min-height:0;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.hero .actions .btn-g:hover{background:transparent;border-color:transparent;text-decoration-thickness:2px}
.phead .actions .btn-g{border-color:rgba(255,255,255,.5)}

/* 3. One card language: same corner radius and one soft shadow for every raised card. */
:root{--polish-shadow:0 8px 24px rgba(10,33,25,.08)}
.hglass,.cshell,.ct-form,.plan,.svx-card,.glance,.fit-row,.rc,.rc-feat,.member,.side-card,.hbox{border-radius:var(--r)}
.ct-form,.hbox,.hglass{box-shadow:var(--polish-shadow)}

/* 4. Focus: one visible, consistent ring on every interactive element (light ring on green). */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #014235;outline-offset:3px;border-radius:3px}
.hero :focus-visible,.phead.dark :focus-visible,.cta-band :focus-visible,.band :focus-visible,.reviews :focus-visible,footer.site :focus-visible,.callbar :focus-visible{outline-color:#CFE5D8}

/* 5. Hero kicker: no dangling separator dots when the line wraps; items simply spaced. */
.hero .kicker span:not(:last-child)::after{display:none}
.hero .kicker span{padding-right:0;margin-right:22px}
.hero .kicker{font-size:.7rem;letter-spacing:.12em}

/* 6. One shadow for raised panels (no 80px drop shadows). */
.hbox,.cshell,.toolbox,.ct-form,.contact-wrap .ct-form,.abx-creds,.plan,.plan:hover,.pricing.pdark .plan.feat,.pricing.pdark .plan.feat:hover,.plan.feat:hover{box-shadow:var(--polish-shadow)}
.glance:not(.phead .glance){box-shadow:var(--polish-shadow)}

/* 7. Section headings: one size for every section title (long-form article headings keep their own smaller size). */
.team-sec h2,.fit h2,.svx h2,.abx h2,.reviews h2,.tlx h2:not(.hb-h),.proc h2,.pricing h2,.faq-sec h2,.principles h2,.places h2,.towns h2,.band h2,.adv-lead h2,.cta-band h2,.proc .pc-body h2{font-size:clamp(1.9rem,3.3vw,2.85rem);line-height:1.08}
.cta-band h2{font-size:clamp(1.7rem,2.8vw,2.35rem)}
@media (max-width:620px){.team-sec h2,.fit h2,.svx h2,.abx h2,.reviews h2,.tlx h2:not(.hb-h),.proc h2,.pricing h2,.faq-sec h2,.principles h2,.places h2,.towns h2,.band h2,.adv-lead h2{font-size:clamp(1.75rem,7.4vw,2.1rem)}}

/* 8. Calculator labels: the "blank means none" hint is small, lower case and under the label, not shouting inline. */
.cbox label .opt,.fld label .opt{display:block;text-transform:none;letter-spacing:0;font-size:.78rem;font-weight:400;margin-top:2px}

/* 9. Footer tidy: the columns line up with the page grid (a shorthand padding had removed the side padding),
      and the legal lines stack neatly instead of wrapping against each other. */
footer.site .cols,footer.site .legal{padding-left:40px;padding-right:40px}
footer.site .legal{display:grid;grid-template-columns:1fr auto;gap:6px 32px;align-items:start}
footer.site .legal span:first-child{grid-column:1 / -1;max-width:78ch}
footer.site .legal a{justify-self:end;color:var(--on-d2);text-decoration:underline;text-underline-offset:3px}
@media (max-width:620px){footer.site .cols,footer.site .legal{padding-left:24px;padding-right:24px}footer.site .legal{grid-template-columns:1fr}footer.site .legal a{justify-self:start}}
.about-intro h2{font-size:clamp(1.9rem,3.3vw,2.85rem);line-height:1.08}
@media (max-width:620px){.about-intro h2{font-size:clamp(1.75rem,7.4vw,2.1rem)}}

/* 10. Phone: tighter bottom space under page-header banners. */
@media (max-width:620px){.phead.dark{padding-bottom:56px!important}}

/* Home hero option B (home page only; inner page headers keep their original pattern): a soft, very low-contrast gradient on the green, quiet outlined second button. No lines. */
.hero::before{background:radial-gradient(120% 90% at 0% 0%,#0B5A49 0%,#014235 55%,#00372D 100%)!important}
.hero .actions .btn-g{border:1px solid rgba(255,255,255,.35);padding-left:22px;padding-right:22px;text-decoration:none;min-height:revert}
.hero .actions .btn-g:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.6);text-decoration:none}
