:root{
    /* grounds */
    --ground-0:#F4EFE6; --ground-1:#FBF8F2; --ground-2:#FFFFFF; --ground-3:#F5F1E8;
    /* ink */
    --ink-100:#1A1A1A; --ink-80:#3D3D3D; --ink-60:#666666; --ink-40:#A0A0A0;
    --hairline:#E5E0D8;
    /* accents */
    --brass:#8A6A1E; --claret:#7A2832; --ink-hover:#0A0A0A;
    /* heritage / sub-brand */
    --thornemere:#3F5A3A; --good:#3F5A3A; --pgh:#9C6F1E; --beegone:#5C7556;
    --ecology:#3F5A3A; --roofing:#3D5266; --sewerfix:#37636E;
    --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
    --font-body:'Inter',-apple-system,system-ui,sans-serif;
    --ease:cubic-bezier(0.165,0.84,0.44,1);
    --t-fast:120ms; --t:260ms; --t-slow:420ms;
    --maxw:1200px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth; scroll-padding-top:84px}
  body{
    background:var(--ground-1); color:var(--ink-100);
    font-family:var(--font-body); font-size:16px; line-height:1.6;
    -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  }
  a{color:inherit; text-decoration:none}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px}
  .eyebrow{
    font-family:var(--font-body); font-size:12px; font-weight:600;
    letter-spacing:.18em; text-transform:uppercase; color:var(--ink-60);
  }
  h1,h2,h3{font-family:var(--font-display); font-weight:500; letter-spacing:-.01em; line-height:1.06}
  .serif{font-family:var(--font-display)}

  /* ---------- wordmark ---------- */
  .wordmark{display:block; width:172px; height:auto; color:var(--ink-100)}
  .wordmark.on-dark{color:var(--ground-1)}

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(251,248,242,.86); backdrop-filter:saturate(120%) blur(8px);
    border-bottom:1px solid var(--hairline);
  }
  header .wrap{max-width:none; padding-left:clamp(20px,3.2vw,44px); padding-right:clamp(20px,3.2vw,44px)}
  .nav{display:flex; align-items:center; height:72px}
  .nav-links{display:flex; gap:34px; align-items:center; margin-left:clamp(30px,3.4vw,64px)}
  .nav-links a{
    font-size:13px; font-weight:500; letter-spacing:.04em; color:var(--ink-80);
    text-transform:uppercase; transition:color var(--t-fast) var(--ease);
  }
  .nav-links a:hover{color:var(--ink-100)}
  .nav-right{display:flex; align-items:center; gap:24px; margin-left:auto}
  .nav-tel{font-size:14px; font-weight:500; color:var(--ink-100); letter-spacing:.01em}
  .nav-tel span{color:var(--ink-60); font-size:11px; display:block; letter-spacing:.12em; text-transform:uppercase; font-weight:600}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:9px; cursor:pointer;
    font-family:var(--font-body); font-weight:500; font-size:14px; letter-spacing:.02em;
    padding:13px 24px; border:1px solid var(--ink-100); background:var(--ink-100);
    color:var(--ground-1); transition:background var(--t) var(--ease),border-color var(--t) var(--ease),color var(--t) var(--ease);
  }
  .btn:hover{background:var(--brass); border-color:var(--brass); color:#fff}
  .btn-ghost{background:transparent; color:var(--ink-100); border-color:var(--hairline)}
  .btn-ghost:hover{background:transparent; border-color:var(--ink-100); color:var(--ink-100)}
  .btn.on-dark{background:#fff; border-color:#fff; color:var(--ink-100)}
  .btn.on-dark:hover{background:var(--brass); border-color:var(--brass); color:#fff}
  .btn-ghost.on-dark{background:transparent; color:#fff; border-color:rgba(255,255,255,.45)}
  .btn-ghost.on-dark:hover{border-color:#fff; color:#fff}
  .btn-sm{padding:10px 18px; font-size:13px}
  .arrow{transition:transform var(--t) var(--ease)}
  .btn:hover .arrow,a:hover .arrow{transform:translateX(3px)}

  /* ---------- hero ---------- */
  .hero{
    position:relative; min-height:88vh; display:flex; align-items:center;
    background:#1d211b;
    color:var(--ground-1); overflow:hidden;
  }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(100deg, rgba(15,18,14,.86) 0%, rgba(15,18,14,.58) 40%, rgba(15,18,14,.18) 76%, rgba(15,18,14,.06) 100%);
  }
  .hero::after{ /* depth: vignette + top/bottom darken layered above the slides */
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
    background:
      radial-gradient(120% 90% at 70% 45%, transparent 40%, rgba(10,13,9,.45) 100%),
      linear-gradient(180deg, rgba(15,18,14,.40) 0%, transparent 24%, transparent 70%, rgba(15,18,14,.55) 100%);
  }
  .hero-inner{position:relative; z-index:3; padding:22px 0; max-width:680px}
  .hero .eyebrow{color:rgba(255,255,255,.72)}
  .hero h1{
    font-size:clamp(36px,4.8vw,62px); color:#fff; margin:14px 0 0; font-weight:500;
    text-wrap:balance;
  }
  .hero h1 em{font-style:italic; color:#EAD9AE} /* warm brass-cream emphasis */
  .hero .lede{
    font-family:var(--font-display); font-size:clamp(19px,2.2vw,24px); font-weight:400;
    line-height:1.5; color:rgba(255,255,255,.9); margin-top:18px; max-width:54ch;
  }
  .hero-trust{
    display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:22px;
    font-size:13px; letter-spacing:.03em; color:rgba(255,255,255,.78);
  }
  .hero-trust span{display:inline-flex; align-items:center; gap:8px}
  .hero-trust span::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--brass)}
  .hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:28px}

  /* ---------- first fold: hero + press fill the viewport, press anchored to bottom ---------- */
  .fold{display:flex; flex-direction:column; min-height:calc(100vh - 72px); min-height:calc(100svh - 72px)}
  .fold > .hero{flex:1 1 auto; min-height:460px}
  .fold > .press{flex:0 0 auto}

  /* ---------- hero carousel + depth + motion ---------- */
  /* layered crossfade: estate is the always-on base, woodland gently fades in/out on top — no zoom, no mid-fade dip */
  .hero-slides{position:absolute; inset:0; z-index:0; overflow:hidden}
  .hero-slide{position:absolute; inset:0; background-size:cover; background-position:center 42%}
  .hs-base{opacity:1; z-index:0}
  .hs-top{opacity:0; z-index:1; transition:opacity 2.6s ease-in-out; will-change:opacity}
  .hs-top.show{opacity:1}

  .hero-inner > *{opacity:0; transform:translateY(20px); animation:heroRise .85s var(--ease) forwards}
  .hero-inner .eyebrow{animation-delay:.12s}
  .hero-inner h1{animation-delay:.26s}
  .hero-inner .lede{animation-delay:.44s}
  .hero-inner .hero-trust{animation-delay:.6s}
  .hero-inner .hero-cta{animation-delay:.74s}
  @keyframes heroRise{to{opacity:1; transform:none}}
  @media (prefers-reduced-motion:reduce){
    .hs-top{transition:none}
    .hero-inner > *{animation:none; opacity:1; transform:none}
  }

  /* ---------- section scaffolding ---------- */
  section{padding:80px 0}
  .sec-head{max-width:680px; margin-bottom:56px}
  .sec-head h2{font-size:clamp(30px,4vw,46px); margin-top:14px}
  .sec-head p{color:var(--ink-80); font-size:18px; margin-top:18px; max-width:60ch}
  .rule{height:1px; background:var(--hairline); border:0}

  /* ---------- intro / stats ---------- */
  .intro{background:var(--ground-1); padding-top:80px}
  .intro-lede{
    font-family:var(--font-display); font-weight:400; font-size:clamp(24px,3vw,34px);
    line-height:1.42; color:var(--ink-100); max-width:24ch;
  }
  .intro-body{color:var(--ink-80); font-size:17px; max-width:46ch}
  .intro-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:start}
  .stats{display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--hairline)}
  .stat{padding:26px 0; border-bottom:1px solid var(--hairline)}
  .stat:nth-child(odd){border-right:1px solid var(--hairline); padding-right:28px}
  .stat:nth-child(even){padding-left:28px}
  .stat .num{font-family:var(--font-display); font-weight:500; font-size:42px; line-height:1; color:var(--ink-100)}
  .stat .lbl{font-size:13px; color:var(--ink-60); letter-spacing:.04em; margin-top:8px; text-transform:uppercase; font-weight:500}

  /* ---------- divisions ---------- */
  .divisions{background:var(--ground-0)}
  .div-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
  .card{
    position:relative; background:var(--ground-2); border:1px solid var(--hairline);
    padding:38px 38px 32px; display:flex; flex-direction:column; min-height:280px;
    transition:transform var(--t) var(--ease),border-color var(--t) var(--ease),box-shadow var(--t) var(--ease);
  }
  .card:hover{transform:translateY(-3px); border-color:var(--ink-40); box-shadow:0 1px 0 var(--hairline)}
  .card::before{ /* brand spine */
    content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--bc,var(--thornemere));
  }
  .chip{
    display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
    font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
    color:var(--ink-100); padding:6px 11px; border:1px solid var(--bc);
    background:color-mix(in srgb, var(--bc) 7%, transparent);
  }
  .chip::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--bc)}
  .card h3{font-size:27px; margin:22px 0 0; color:var(--ink-100)}
  .card .div-sub{font-size:13px; color:var(--ink-60); letter-spacing:.04em; margin-top:4px; text-transform:uppercase; font-weight:500}
  .card p{color:var(--ink-80); font-size:15.5px; margin-top:14px; flex:1}
  .card .visit{
    font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
    color:var(--ink-100); display:inline-flex; align-items:center; gap:8px; margin-top:22px;
    padding-top:20px; border-top:1px solid var(--hairline);
  }
  .card .visit .dom{color:var(--ink-60); font-weight:500; text-transform:none; letter-spacing:0}

  /* ---------- why / proof ---------- */
  .why{background:var(--ground-1)}
  .why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--hairline)}
  .why-item{padding:34px 28px 34px 0; border-bottom:1px solid var(--hairline)}
  .why-item:not(:last-child){border-right:1px solid var(--hairline); padding-right:28px}
  .why-item .k{font-family:var(--font-display); font-size:21px; color:var(--ink-100); margin-bottom:8px}
  .why-item p{font-size:14.5px; color:var(--ink-80)}
  .trust-strip{
    display:flex; flex-wrap:wrap; align-items:center; gap:14px 34px; margin-top:46px;
    padding-top:30px; border-top:1px solid var(--hairline);
  }
  .trust-strip .ts{display:flex; align-items:center; gap:11px; font-size:14px; color:var(--ink-80)}
  .stars{color:var(--brass); letter-spacing:2px; font-size:15px}
  .award{
    font-family:var(--font-display); font-size:14px; color:var(--ink-100);
    border:1px solid var(--hairline); padding:9px 16px; display:inline-flex; gap:9px; align-items:center;
  }

  /* ---------- environment band ---------- */
  .env{
    position:relative; color:var(--ground-1);
    background:#1c2419 url('woodland.jpg') center/cover no-repeat;
  }
  .env::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,28,18,.86),rgba(20,28,18,.55))}
  .env .wrap{position:relative; z-index:2}
  .env .eyebrow{color:rgba(255,255,255,.7)}
  .env h2{font-size:clamp(28px,3.6vw,42px); color:#fff; margin-top:14px; max-width:18ch}
  .env p{color:rgba(255,255,255,.85); font-size:18px; max-width:54ch; margin-top:20px}

  /* ---------- contact ---------- */
  .contact{background:var(--ground-0)}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
  .contact h2{font-size:clamp(30px,4vw,46px)}
  .contact .lede{font-family:var(--font-display); font-size:22px; color:var(--ink-80); margin-top:16px; max-width:30ch}
  .ci{display:grid; gap:2px; margin-top:8px}
  .ci .row{padding:20px 0; border-bottom:1px solid var(--hairline); display:flex; justify-content:space-between; align-items:baseline; gap:24px}
  .ci .row:first-child{border-top:1px solid var(--hairline)}
  .ci .lab{font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-60); font-weight:600}
  .ci .val{font-size:17px; color:var(--ink-100); text-align:right}
  .ci .val.tel{font-family:var(--font-display); font-size:26px}
  .contact-cta{margin-top:30px}

  /* ---------- footer ---------- */
  footer{background:var(--ink-100); color:#cfc9bd; padding:72px 0 36px}
  .foot-top{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.12)}
  footer .wordmark{color:#F0EBE0; width:208px; height:auto}
  .foot-blurb{font-size:14px; color:#a39d92; margin-top:20px; max-width:34ch; line-height:1.6}
  .foot-col h4{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#8b857a; font-weight:600; margin-bottom:18px}
  .foot-col a, .foot-col p{display:block; font-size:14px; color:#cfc9bd; margin-bottom:11px; transition:color var(--t-fast) var(--ease)}
  .foot-col a:hover{color:#fff}
  .foot-col .dom{color:#8b857a; font-size:12px}
  .foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:14px; padding-top:28px; font-size:12.5px; color:#8b857a}
  .foot-bottom a:hover{color:#cfc9bd}

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(16px); transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}
  .reveal.in{opacity:1; transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none}}

  /* ---------- logo-led division cards ---------- */
  .div-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:24px}
  .card{flex:1 1 320px; max-width:374px; min-height:0; min-width:0}
  .logo-well{height:72px; display:flex; align-items:center; margin-bottom:2px}
  .logo-well img{max-height:56px; max-width:230px; width:auto; height:auto; object-fit:contain; object-position:left center}
  /* per-logo optical balancing — height-only normalisation made the wide Sewerfix wordmark dominate and the fine-stroke crests read small */
  .logo-well img[src*="sewerfix"]{max-height:44px; max-width:188px}
  .logo-well img[src*="pgh"]{max-height:52px}
  .logo-well img[src*="beegone"]{max-height:54px}
  .logo-well img[src*="crown"]{max-height:66px}
  .logo-well img[src*="woodpecker"]{max-height:62px}
  .card h3{margin-top:26px}

  /* ---------- reviews ---------- */
  .reviews-band{background:var(--ground-1); border-top:1px solid var(--hairline)}
  .reviews{margin-top:46px; padding-top:38px; border-top:1px solid var(--hairline);
           display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:26px 44px}
  a.rev{display:flex; align-items:center; gap:13px; transition:color var(--t-fast) var(--ease)}
  .rev .gmark{display:inline-flex; align-items:center}
  .rev .stars{color:var(--brass); letter-spacing:2px; font-size:16px}
  .rev .rtxt{font-size:14.5px; color:var(--ink-100); line-height:1.35}
  .rev .rtxt b{font-weight:600}
  .rev .rtxt .sub{display:block; color:var(--ink-60); font-size:12.5px; font-weight:400; letter-spacing:.01em; margin-top:2px}
  a.rev:hover .rtxt b{color:var(--brass)}
  .rev-div{width:1px; height:38px; background:var(--hairline)}

  /* ---------- accreditations ---------- */
  .accred{background:var(--ground-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:60px 0}
  .accred .lab{text-align:center; color:var(--ink-60)}
  .accred-row{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:30px 50px; margin-top:36px}
  .accred-row img{height:56px; width:auto; object-fit:contain; filter:grayscale(1); opacity:.6;
                  transition:opacity var(--t) var(--ease), filter var(--t) var(--ease)}
  .accred-row img:hover{filter:none; opacity:1}

  /* ---------- press strip (as featured on) ---------- */
  .press{background:var(--ground-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:20px 0}
  .press .lab{text-align:center; color:var(--ink-60)}
  /* always ONE line at any width: one uniform height that scales with the viewport,
     nowrap, gaps + max-width tuned so the total never exceeds the content box (so it
     never wraps and never overflows). Logos are trimmed to content => equal height reads even. */
  .press-row{display:flex; flex-wrap:nowrap; align-items:center; justify-content:center; gap:clamp(10px,1.6vw,28px); max-width:1160px; margin:16px auto 0}
  .press-row img{height:clamp(22px,3.1vw,44px); width:auto; flex:0 0 auto; object-fit:contain;
                 filter:grayscale(1); opacity:.6; transition:opacity var(--t) var(--ease), filter var(--t) var(--ease)}
  .press-row img:hover{filter:none; opacity:1}

  /* ---------- instant quote feature ---------- */
  .quote{background:var(--ground-3)}
  .quote-panel{background:var(--ground-2); border:1px solid var(--hairline); padding:52px 56px;
               display:grid; grid-template-columns:1.4fr auto; gap:44px; align-items:center}
  .quote-panel .eyebrow{color:var(--brass)}
  .quote-panel h2{font-size:clamp(26px,3.2vw,38px); margin-top:12px}
  .quote-panel p{color:var(--ink-80); font-size:16.5px; margin-top:14px; max-width:54ch}
  .quote-cta{display:flex; flex-direction:column; gap:12px; align-items:flex-start; white-space:nowrap}
  .quote-note{font-size:12px; color:var(--ink-60); letter-spacing:.04em; text-transform:uppercase; font-weight:500}

  /* ---------- royal recognition ---------- */
  .royal{background:var(--ground-1)}
  .royal-grid{display:grid; grid-template-columns:0.82fr 1.15fr 0.78fr; gap:48px; align-items:center}
  .royal-grid img{width:100%; height:auto; display:block; border:1px solid var(--hairline)}
  .royal-grid figcaption{font-size:12.5px; color:var(--ink-60); margin-top:11px; line-height:1.5; max-width:46ch}
  .royal-grid h2{font-size:clamp(28px,3.6vw,44px); margin-top:14px; max-width:15ch}
  .royal-grid p{color:var(--ink-80); font-size:17px; margin-top:18px; max-width:52ch}
  @media (max-width:880px){
    .quote-panel{grid-template-columns:1fr; gap:24px; padding:40px 30px}
    .quote-cta{white-space:normal}
    .royal-grid{grid-template-columns:1fr; gap:30px}
    .royal-grid figure{max-width:440px}
  }

  /* ---------- responsive ---------- */
  @media (max-width:920px){
    .intro-grid,.contact-grid{grid-template-columns:1fr; gap:40px}
    .div-grid{grid-template-columns:1fr}
    .why-grid{grid-template-columns:1fr 1fr}
    .why-item:nth-child(2){border-right:0; padding-right:0}
    .foot-top{grid-template-columns:1fr 1fr}
  }
  @media (max-width:680px){
    .wrap{padding:0 22px}
    .nav-links{display:none}
    .nav{height:64px}
    .fold{min-height:calc(100vh - 64px); min-height:calc(100svh - 64px)}
    .mobile-menu{top:64px}
    .nav-tel{display:none}
    .nav .wordmark{width:150px !important; height:auto !important}
    .nav-right .btn{padding:10px 16px; font-size:13px; white-space:nowrap}
    section{padding:72px 0}
    .hero{min-height:auto}
    .hero-inner{padding:96px 0}
    .stats{grid-template-columns:1fr}
    .stat:nth-child(odd){border-right:0; padding-right:0}
    .stat:nth-child(even){padding-left:0}
    .why-grid{grid-template-columns:1fr}
    .why-item,.why-item:nth-child(2){border-right:0; padding-right:0}
    .ci .row{flex-direction:column; gap:4px} .ci .val{text-align:left}
    .foot-top{grid-template-columns:1fr}
  }

  /* =================== FOR BUSINESS (commercial) =================== */
  .chero{position:relative; background:#1d211b url('business-hero-b.jpg') center 30%/cover no-repeat; color:var(--ground-1); padding:148px 0 120px; overflow:hidden}
  .chero::before{content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(15,18,14,.88) 0%, rgba(15,18,14,.62) 52%, rgba(15,18,14,.22) 100%)}
  .chero .wrap{position:relative; z-index:2; max-width:780px}
  .chero .eyebrow{color:rgba(255,255,255,.72)}
  .chero h1{font-size:clamp(36px,5.2vw,66px); color:#fff; margin-top:18px; max-width:17ch; font-weight:500; line-height:1.05}
  .chero h1 em{font-style:italic; color:#EAD9AE}
  .chero .lede{font-family:var(--font-display); font-size:clamp(18px,2.1vw,24px); color:rgba(255,255,255,.9); margin-top:22px; max-width:52ch; line-height:1.5; font-weight:400}
  .chero .hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:36px}

  /* one-partner value prop */
  .vp-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--hairline)}
  .vp{padding:32px 26px 32px 0; border-bottom:1px solid var(--hairline)}
  .vp:not(:last-child){border-right:1px solid var(--hairline); padding-right:26px}
  .vp .n{font-family:var(--font-display); font-size:30px; color:var(--brass); line-height:1; margin-bottom:14px}
  .vp .k{font-family:var(--font-display); font-size:21px; color:var(--ink-100); margin-bottom:8px}
  .vp p{font-size:14.5px; color:var(--ink-80)}

  /* sectors grid */
  .sectors{background:var(--ground-0)}
  .sector-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline)}
  .sector{background:var(--ground-1); padding:26px 22px; min-height:130px; display:flex; flex-direction:column; justify-content:space-between; transition:background var(--t) var(--ease)}
  a.sector:hover{background:var(--ground-2)}
  .sector h3{font-family:var(--font-display); font-weight:500; font-size:19px; color:var(--ink-100); margin:0; letter-spacing:0}
  .sector .br{font-size:12px; color:var(--ink-60); letter-spacing:.02em; margin-top:12px}

  /* programmes / contracts */
  .prog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--hairline)}
  .prog{padding:32px 28px 32px 0; border-bottom:1px solid var(--hairline)}
  .prog:not(:nth-child(3n)){border-right:1px solid var(--hairline); padding-right:28px}
  .prog .k{font-family:var(--font-display); font-size:20px; color:var(--ink-100); margin-bottom:8px}
  .prog p{font-size:14.5px; color:var(--ink-80)}
  .prog .tag{display:inline-block; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-60); margin-top:12px}

  /* commercial enquiry form (mock) */
  .cform{background:var(--ground-2); border:1px solid var(--hairline); padding:40px 40px 36px}
  .cform .row2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
  .cform label{display:block; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-60); margin:0 0 7px}
  .cform input, .cform select, .cform textarea{width:100%; font-family:var(--font-body); font-size:15px; color:var(--ink-100); background:var(--ground-1); border:1px solid var(--hairline); padding:12px 14px; margin-bottom:18px; transition:border-color var(--t-fast) var(--ease)}
  .cform input:focus, .cform select:focus, .cform textarea:focus{outline:none; border-color:var(--ink-100)}
  .cform textarea{min-height:96px; resize:vertical}
  .cform .btn{width:100%; justify-content:center}
  .cform .formnote{font-size:12px; color:var(--ink-60); margin-top:14px; text-align:center}
  /* shared form helpers (used by the commercial AND homepage enquiry forms) */
  .cform .hp{position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden}
  .cform-done{text-align:center; padding:34px 12px}
  .cform-done h3{font-family:var(--font-display); font-weight:500; font-size:28px; color:var(--ink-100); margin-bottom:10px}
  .cform-done p{color:var(--ink-80); font-size:16px; line-height:1.6}

  @media (max-width:920px){
    .vp-grid{grid-template-columns:1fr 1fr}
    .vp:nth-child(2){border-right:0; padding-right:0}
    .sector-grid{grid-template-columns:1fr 1fr}
    .prog-grid{grid-template-columns:1fr}
    .prog,.prog:not(:nth-child(3n)){border-right:0; padding-right:0}
  }
  @media (max-width:680px){
    .vp-grid{grid-template-columns:1fr}
    .vp,.vp:not(:last-child){border-right:0; padding-right:0}
    .sector-grid{grid-template-columns:1fr}
    .cform{padding:28px 22px}
    .cform .row2{grid-template-columns:1fr; gap:0}
  }



  /* operational capability / fleet band */
  .fleet{background:var(--ground-1)}
  .fleet-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:4px}
  .fleet figure{margin:0}
  .fleet figure img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; border:1px solid var(--hairline)}
  .fleet figcaption{font-size:13px; color:var(--ink-60); margin-top:12px; line-height:1.5; letter-spacing:.01em; max-width:40ch}
  @media (max-width:680px){ .fleet-grid{grid-template-columns:1fr; gap:18px} }



  /* fleet single feature image */
  .fleet-feature{margin-top:4px}
  .fleet-feature figure{margin:0}
  .fleet-feature img{width:100%; aspect-ratio:16/9; object-fit:cover; display:block; border:1px solid var(--hairline)}
  .fleet-feature figcaption{font-size:13px; color:var(--ink-60); margin-top:12px; line-height:1.5; letter-spacing:.01em; max-width:60ch}


  /* brand: large leaf + wordmark */
  .brand{display:flex;align-items:center;gap:13px;flex-shrink:0}
  .brand-leaf{height:32px;width:auto;color:var(--ink-100);display:block;flex-shrink:0}
  .brand-word{height:auto;width:185px;color:var(--ink-100);display:block}
  .brand.on-dark .brand-leaf,.brand.on-dark .brand-word{color:#F0EBE0}
  footer .brand-leaf{height:38px}
  footer .brand-word{width:205px}
  @media (max-width:680px){.brand-leaf{height:26px}.brand-word{width:140px}.brand{gap:10px}}

  /* ===== hamburger + mobile menu ===== */
  .nav-burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;padding:11px;flex-direction:column;justify-content:center;gap:5px}
  .nav-burger span{display:block;height:1.6px;width:100%;background:var(--ink-100);transition:transform var(--t) var(--ease),opacity var(--t-fast) var(--ease)}
  .nav-burger.open span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
  .nav-burger.open span:nth-child(2){opacity:0}
  .nav-burger.open span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
  .mobile-menu{display:none;position:fixed;left:0;right:0;top:72px;bottom:0;z-index:45;flex-direction:column;justify-content:center;gap:2px;padding:24px clamp(24px,7vw,46px) 56px;background:var(--ground-1);border-top:1px solid var(--hairline);overflow-y:auto}
  .mobile-menu a{padding:19px 0;font-size:16px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-80);border-bottom:1px solid var(--hairline)}
  .mobile-menu .btn{justify-content:center;margin-top:28px;padding:16px;border-bottom:0;text-transform:none;letter-spacing:.02em;color:var(--ground-1)}
  .mobile-menu .m-tel{text-transform:none;letter-spacing:0;font-size:17px;color:var(--ink-100);border-bottom:0;padding-top:20px;text-align:center}
  body.nav-open{overflow:hidden}
  @media (max-width:900px){
    .nav-links{display:none}
    .nav-tel{display:none}
    header .nav-right .btn{display:none}
    .nav-burger{display:flex}
    body.nav-open .mobile-menu{display:flex}
  }

  /* ===== intro image ===== */
  .intro-img{margin:34px 0 0}
  .intro-img img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border:1px solid var(--hairline)}
  .intro-img figcaption{font-size:12.5px;color:var(--ink-60);margin-top:11px;letter-spacing:.01em}

  /* ===== testimonial cards ===== */
  .testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;margin-bottom:8px}
  .tcard{background:var(--ground-2);border:1px solid var(--hairline);padding:30px 28px;display:flex;flex-direction:column}
  .tcard .tstars{color:var(--brass);letter-spacing:2px;font-size:15px;margin-bottom:16px}
  .tcard blockquote{margin:0;font-family:var(--font-display);font-size:18px;line-height:1.5;color:var(--ink-100);flex:1}
  .tcard .tby{margin-top:22px;padding-top:16px;border-top:1px solid var(--hairline)}
  .tcard .tn{font-weight:600;font-size:14px;color:var(--ink-100)}
  .tcard .ts{font-size:12px;color:var(--ink-60);margin-top:3px;letter-spacing:.02em}

  /* ===== royal: winner emphasis + crest ===== */
  .royal-win{margin:6px 0 4px}
  .royal-win .wbadge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);border:1px solid var(--brass);padding:5px 12px}
  .royal-crest{text-align:center}
  .royal-crest img{width:100%;max-width:300px;height:auto;display:inline-block;border:0}
  .royal-crest .crest-cap{font-family:var(--font-display);font-size:18px;color:var(--ink-100);margin-top:12px;letter-spacing:.01em;line-height:1.35}

  /* ===== what we do (services) band — full-width box grid ===== */
  .services{background:var(--ground-3);border-top:1px solid var(--hairline);padding:64px 0}
  .services-wrap{max-width:none;margin:0 auto;padding:0 clamp(20px,3.2vw,44px)}
  .services .lab{text-align:center;color:var(--ink-60)}
  .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;border:1px solid var(--hairline);background:var(--hairline)}
  .svc-box{background:var(--ground-1);padding:30px 32px;display:flex;flex-direction:column;gap:7px;transition:background var(--t) var(--ease)}
  .svc-box:hover{background:var(--ground-2)}
  .svc-box .svc-name{font-family:var(--font-display);font-size:clamp(21px,1.9vw,26px);color:var(--ink-100);line-height:1.12}
  .svc-box .svc-sub{font-size:13px;color:var(--ink-60);letter-spacing:.01em;line-height:1.45}
  .svc-more{margin:36px auto 0;text-align:center}
  .svc-more summary{display:inline-flex;align-items:center;gap:9px;cursor:pointer;list-style:none;font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-100);border:1px solid var(--ink-100);padding:11px 22px;transition:background var(--t) var(--ease),color var(--t) var(--ease)}
  .svc-more summary::-webkit-details-marker{display:none}
  .svc-more summary::after{content:"+";font-size:17px;font-weight:400;line-height:1}
  .svc-more[open] summary::after{content:"–"}
  .svc-more summary:hover{background:var(--ink-100);color:var(--ground-1)}
  .svc-more[open] summary{margin-bottom:34px}
  .svc-all{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 44px;text-align:left;border-top:1px solid var(--hairline);padding-top:36px}
  .svc-cat h4{font-family:var(--font-display);font-weight:500;font-size:19px;color:var(--ink-100);margin-bottom:13px}
  .svc-cat ul{list-style:none;display:flex;flex-direction:column;gap:7px}
  .svc-cat li{font-size:14px;color:var(--ink-80);line-height:1.4}
  @media (max-width:900px){ .services-grid{grid-template-columns:1fr 1fr} .svc-all{grid-template-columns:1fr 1fr} }
  @media (max-width:600px){ .svc-all{grid-template-columns:1fr} }

  /* ===== who we work with — client types ===== */
  .clients{background:var(--ground-2)}
  .client-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
  .client-cell{background:var(--ground-2);padding:28px 22px;display:flex;align-items:center;min-height:104px;font-family:var(--font-display);font-size:clamp(17px,1.5vw,21px);line-height:1.16;color:var(--ink-100);transition:background var(--t) var(--ease)}
  .client-cell:hover{background:var(--ground-3)}
  @media (max-width:900px){ .client-grid{grid-template-columns:repeat(2,1fr)} .client-cell{min-height:0;padding:22px 18px} }
  @media (max-width:560px){ .client-grid{grid-template-columns:1fr} }
  @media (max-width:760px){
    .testimonials{grid-template-columns:1fr}
    .royal-crest img{max-width:280px}
    .royal-crest .crest-cap{font-size:16px}
    .services-grid{grid-template-columns:1fr}
  }

  /* ===== divisions footer — beegone calculator link ===== */
  .div-foot{text-align:center;margin-top:38px;font-size:15.5px;color:var(--ink-80)}
  .div-foot a{font-weight:600;color:var(--ink-100);display:inline-flex;align-items:center;gap:8px;border-bottom:1px solid var(--brass);padding-bottom:2px;transition:color var(--t-fast) var(--ease)}
  .div-foot a:hover{color:var(--brass)}

  /* ===== section feature images (break up text-heavy sections) ===== */
  .why-head{display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; margin-bottom:60px}
  .why-head .sec-head{margin-bottom:0; max-width:none}
  .why-img{margin:0}
  .why-img img{width:100%; aspect-ratio:5/4; object-fit:cover; display:block; border:1px solid var(--hairline)}
  .contact-img{margin:0 0 54px}
  .contact-img img{width:100%; aspect-ratio:16/6; object-fit:cover; object-position:center 28%; display:block; border:1px solid var(--hairline)}
  @media (max-width:880px){ .why-head{grid-template-columns:1fr; gap:28px} }
  @media (max-width:680px){ .contact-img img{aspect-ratio:5/3} }

  /* ===== sticky mobile contact bar + mobile bloat trim (audit 2026-06-17) ===== */
  .mcta{display:none}
  @media (max-width:900px){
    .mcta{display:grid; grid-template-columns:1fr 1fr; position:fixed; left:0; right:0; bottom:0; z-index:48;
          background:var(--ground-2); border-top:1px solid var(--hairline); box-shadow:0 -3px 18px rgba(20,20,20,.08);
          padding-bottom:env(safe-area-inset-bottom)}
    .mcta a{display:flex; align-items:center; justify-content:center; gap:8px; padding:15px 8px;
            font-size:14px; font-weight:600; letter-spacing:.02em}
    .mcta .mcta-call{color:var(--ink-100); border-right:1px solid var(--hairline)}
    .mcta .mcta-enq{background:var(--ink-100); color:var(--ground-1)}
    /* clear the fixed bar's full rendered height (buttons + border + iOS safe area) so footer/contact content never sits under it */
    body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
    body.nav-open .mcta{display:none}
    /* lift secondary touch controls to a 44px hit area (visual size unchanged) */
    .seg-btn{min-height:44px}
    .book-search .btn{min-height:44px}
    a.rev{min-height:44px}
    .tier-table .btn{min-height:44px}
  }
  @media (max-width:680px){
    section{padding:50px 0}
    .intro{padding-top:50px}
    .accred{padding:44px 0}
    .hero-inner{padding:56px 0}
    .press{display:none}                 /* live hub has no press strip; trim mobile */
    .testimonials{grid-template-columns:1fr}
    .tcard:nth-child(n+2){display:none}  /* one testimonial is enough on mobile */
    .stats{grid-template-columns:1fr 1fr}
    .stat{padding-top:18px; padding-bottom:18px}
    .stat:nth-child(odd){border-right:1px solid var(--hairline); padding-right:16px}
    .stat:nth-child(even){padding-left:16px}
    .stat .num{font-size:34px}
    .why-grid{grid-template-columns:1fr 1fr}
    .why-item{padding:22px 14px 22px 0}
    .why-item:nth-child(odd){border-right:1px solid var(--hairline); padding-right:14px}
    .why-item:nth-child(even){padding-left:14px; border-right:0}
    .mobile-menu{top:64px}               /* fix: base 72px left a 7px dark sliver at <=680 */
  }

  /* ===== staggered group reveal =====
     Children of a .stagger cascade in one-by-one when the group scrolls into view.
     Placed LAST so the transition wins source-order over component hover transitions
     (.card / .client-cell / .sector). Sequencing is driven in JS via the .shown class
     (no transition-delay), so nothing lingers onto hover. The entrance lift uses the
     `translate` property — independent of `transform` — so it never collides with the
     card's transform-based hover lift. Base = fade only (safe for hairline grids);
     add .rise for the gentle lift (card grids). */
  .stagger > *{opacity:0;
    transition:opacity var(--t-slow) var(--ease), translate var(--t-slow) var(--ease),
               transform var(--t) var(--ease), background var(--t) var(--ease),
               border-color var(--t) var(--ease), box-shadow var(--t) var(--ease)}
  .stagger.rise > *{translate:0 16px}
  .stagger > *.shown{opacity:1; translate:0 0}
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .stagger > *{opacity:1; translate:0 0; transition:none}
  }

  /* ===== consistency + mobile-lean pass ===== */
  /* division brand logos: shown in full brand colour (Charlie 2026-06-17) */
  /* royal crest: shown in full colour (Charlie 2026-06-17) */
  @media (max-width:680px){
    /* the 6 "What we do" boxes restate the divisions on mobile — drop them, keep the See-all-services catalogue */
    .services-grid{display:none}
  }
  @media (max-width:560px){
    /* who we work with: wrap into a compact pill cloud instead of 10 full-width stacked rows */
    .client-grid{display:flex; flex-wrap:wrap; gap:8px; background:none; border:0}
    .client-cell{flex:0 1 auto; min-height:0; padding:10px 14px; border:1px solid var(--hairline); background:var(--ground-2); font-size:14.5px; line-height:1.2}
  }

  /* ===== cookie consent banner (injected by assets/consent.js) ===== */
  .consent{position:fixed; left:0; right:0; bottom:0; z-index:60;
    background:var(--ground-1); border-top:1px solid var(--hairline); box-shadow:0 -3px 22px rgba(20,20,20,.10);
    padding:16px clamp(20px,3vw,40px); padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .consent[hidden]{display:none}
  .consent-inner{max-width:var(--maxw); margin:0 auto; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:14px 28px}
  .consent-txt{font-size:13.5px; line-height:1.5; color:var(--ink-80); margin:0; max-width:66ch}
  .consent-txt a{color:var(--ink-100); border-bottom:1px solid var(--brass)}
  .consent-btns{display:flex; gap:10px; flex-shrink:0}
  @media (max-width:680px){
    .consent-inner{justify-content:stretch}
    .consent-btns{width:100%}
    .consent-btns .btn{flex:1; justify-content:center}
  }

  /* ===== commercial trust strip (captioned accreditations) ===== */
  .trust{background:var(--ground-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding:48px 0}
  .trust .lab{text-align:center; color:var(--ink-60); margin-bottom:30px}
  .trust-grid{display:flex; flex-wrap:wrap; justify-content:center; gap:14px}
  .trust-item{flex:1 1 240px; max-width:340px; border:1px solid var(--hairline); background:var(--ground-2); padding:22px; display:flex; flex-direction:column; gap:13px; color:inherit}
  .trust-item img{height:36px; width:auto; max-width:132px; object-fit:contain; object-position:left center; filter:grayscale(1); opacity:.65; transition:opacity var(--t) var(--ease),filter var(--t) var(--ease)}
  a.trust-item:hover img{filter:none; opacity:1}
  .trust-item b{display:block; font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--ink-100); margin-bottom:5px}
  .trust-item span{font-size:13px; line-height:1.5; color:var(--ink-60)}
  a.trust-item:hover b{color:var(--brass)}
  .trust-foot{text-align:center; margin-top:26px; font-size:13.5px; color:var(--ink-60); letter-spacing:.01em}

  /* ===== contract tiers (comparison matrix, Silver featured) ===== */
  .tier-table-wrap{overflow-x:auto; -webkit-overflow-scrolling:touch}
  .tier-table{width:100%; min-width:560px; max-width:900px; margin:0 auto; border-collapse:collapse}
  .tier-table th, .tier-table td{padding:14px 18px; text-align:center; border-bottom:1px solid var(--hairline); font-size:14.5px; color:var(--ink-80)}
  .tier-table thead th{font-family:var(--font-display); font-weight:500; font-size:23px; color:var(--ink-100); vertical-align:bottom; padding-top:10px}
  .tier-table tbody th{text-align:left; font-weight:500; color:var(--ink-100); font-size:14px}
  .tier-table thead th:first-child, .tier-table tbody tr:last-child td:first-child{border-bottom:0}
  .tier-table .t-feat{background:color-mix(in srgb, var(--brass) 6%, transparent)}
  .tier-table thead .t-feat{border-top:2px solid var(--brass)}
  .tier-table tbody tr:last-child td{border-bottom:0; padding-top:20px}
  .t-tag{display:block; font-family:var(--font-body); font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); margin-top:5px}
  .tier-table .tick{color:var(--brass); font-size:16px}
  .tier-table .na{color:var(--ink-40)}
  .tier-table .btn{justify-content:center; display:inline-flex}

  /* ===== reporting & client portal ===== */
  .reporting{background:var(--ground-0)}
  .report-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:32px; align-items:start}
  .portal-frame{margin:0; border:1px solid var(--hairline); background:var(--ground-2)}
  .pf-bar{display:flex; align-items:center; gap:6px; padding:9px 13px; border-bottom:1px solid var(--hairline); background:var(--ground-1)}
  .pf-bar span{width:9px; height:9px; border-radius:50%; background:var(--hairline)}
  .pf-bar em{font-style:normal; font-size:11.5px; color:var(--ink-60); margin-left:10px}
  .portal-frame img{width:100%; height:auto; display:block}
  .portal-frame figcaption{font-size:13px; color:var(--ink-60); padding:14px 18px; line-height:1.5; border-top:1px solid var(--hairline)}
  .report-card{background:var(--ground-2); border:1px solid var(--hairline); padding:34px 32px}
  .report-card h3{font-size:22px; color:var(--ink-100); margin-bottom:6px}
  .report-card .rc-sub{font-size:13px; color:var(--ink-60); letter-spacing:.03em; text-transform:uppercase; font-weight:600; margin-bottom:18px}
  .report-card ul{list-style:none; display:flex; flex-direction:column; gap:12px}
  .report-card li{font-size:15px; color:var(--ink-80); line-height:1.5; padding-left:22px; position:relative}
  .report-card li::before{content:""; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:50%; background:var(--brass)}
  @media (max-width:760px){.report-grid{grid-template-columns:1fr}}

  /* ===== case studies (photo-led) ===== */
  .case{background:var(--ground-2); border:1px solid var(--hairline); overflow:hidden; display:flex; flex-direction:column}
  .case-featured{display:grid; grid-template-columns:1.05fr .95fr; margin-bottom:24px}
  .case-img{width:100%; aspect-ratio:16/10; object-fit:cover; display:block; filter:sepia(.16) contrast(1.02)}
  .case-featured .case-img{height:100%; min-height:340px; aspect-ratio:auto}
  .case-body{padding:26px 28px 28px; display:flex; flex-direction:column; flex:1}
  .case-featured .case-body{padding:42px 40px; justify-content:center}
  .cases-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px}
  .case-sector{font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-60)}
  .case h3{font-family:var(--font-display); font-weight:500; font-size:21px; color:var(--ink-100); margin:8px 0 0; line-height:1.15}
  .case-body p{font-size:14px; color:var(--ink-80); line-height:1.55; margin-top:12px}
  .case .case-out{margin-top:auto; padding-top:16px; color:var(--ink-100)}
  .case .case-out b{color:var(--brass); font-weight:600}
  @media (max-width:760px){.case-featured{grid-template-columns:1fr}.case-featured .case-img{min-height:0; aspect-ratio:16/10}.case-featured .case-body{padding:28px 26px}}
  @media (max-width:680px){.cases-grid{grid-template-columns:1fr; max-width:460px; margin:0 auto}}

  /* ===== ESG band (dark, evidenced — the one tonal break) ===== */
  .esg-band{position:relative; color:var(--ground-1); background:#1c2419 url('woodland.jpg') center/cover no-repeat}
  .esg-band::before{content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(20,28,18,.9),rgba(20,28,18,.66))}
  .esg-band .wrap{position:relative; z-index:2}
  .esg-band .eyebrow{color:rgba(255,255,255,.72)}
  .esg-band h2{color:#fff}
  .esg-band .sec-head p{color:rgba(255,255,255,.85)}
  .esg-stats{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.2)}
  .esg-stat{padding:30px 22px 24px; border-bottom:1px solid rgba(255,255,255,.2); display:flex; flex-direction:column}
  .esg-stat:not(:last-child){border-right:1px solid rgba(255,255,255,.2)}
  .esg-stat .fig{font-family:var(--font-display); font-weight:500; font-size:46px; line-height:1; color:#EAD9AE}
  .esg-stat img{height:50px; width:auto; align-self:flex-start; filter:brightness(0) invert(1); opacity:.92}
  .esg-stat .cap{font-size:13.5px; color:rgba(255,255,255,.84); margin-top:16px; line-height:1.5}
  @media (max-width:760px){.esg-stats{grid-template-columns:1fr 1fr}.esg-stat:nth-child(2n){border-right:0}}
  @media (max-width:460px){.esg-stats{grid-template-columns:1fr}.esg-stat{border-right:0}}

  /* ground alternation + sector line-icons */
  .cases{background:var(--ground-2)}
  .sector .s-ico{width:26px; height:26px; display:block; color:var(--ink-100); margin-bottom:13px; transition:color var(--t) var(--ease)}
  a.sector:hover .s-ico{color:var(--brass)}

  /* ===== procurement FAQ (grouped hairline accordion) ===== */
  .faq-list{max-width:840px; margin:0 auto; border-top:1px solid var(--hairline)}
  .faq-group{font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--brass); margin:34px 0 2px}
  .faq-row{border-bottom:1px solid var(--hairline)}
  .faq-row summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:19px 2px; font-family:var(--font-display); font-weight:500; font-size:19px; color:var(--ink-100); line-height:1.25}
  .faq-row summary::-webkit-details-marker{display:none}
  .faq-row summary::after{content:"+"; color:var(--brass); font-size:24px; font-weight:300; line-height:1; flex-shrink:0}
  .faq-row[open] summary::after{content:"\2013"}
  .faq-a{padding:0 2px 22px; font-size:15px; color:var(--ink-80); line-height:1.6; max-width:72ch}
  .faq-stats{display:flex; gap:38px; flex-wrap:wrap; margin-bottom:14px}
  .faq-stats b{display:block; font-family:var(--font-display); font-weight:500; font-size:34px; color:var(--ink-100); line-height:1}
  .faq-stats span{font-size:12.5px; color:var(--ink-60); margin-top:5px; display:block}
  @media (max-width:680px){.faq-row summary{font-size:17px} .faq-stats{gap:24px}}

  /* ===== print ===== */
  @media print{
    header, .mcta, .consent, .mobile-menu, .nav-burger, .book-cta, .hero-cta, .video-frame, .svc-more summary{display:none !important}
    .reveal, .stagger>*{opacity:1 !important; transform:none !important; translate:0 !important}
    body{color:#000; background:#fff}
    .hero, .env, .chero{color:#000 !important; min-height:auto !important; background:#fff !important}
    .hero::before, .hero::after, .env::before, .chero::before{display:none !important}
    .hero h1, .hero .lede, .env h2, .env p, .chero h1, .chero .lede{color:#000 !important}
    section{padding:18px 0 !important}
    a{color:#000 !important}
    .svc-more[open] .svc-all{display:grid !important}
  }

/* ---- Trusted-at (anonymised client proof) ---- */
.trusted{padding:48px 0;background:var(--ground-0);border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}
.trusted .eyebrow{text-align:center;margin:0 0 20px}
.trusted-list{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 0;max-width:920px;margin:0 auto;padding:0}
.trusted-list li{font-family:var(--font-display);font-size:1.2rem;line-height:1.3;color:var(--ink-100);padding:2px 24px;position:relative}
.trusted-list li:not(:last-child)::after{content:"";position:absolute;right:-2px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--brass)}
.trusted-sub{text-align:center;margin:22px auto 0;color:var(--ink-60);font-size:.86rem;letter-spacing:.02em}
@media(max-width:680px){.trusted{padding:38px 0}.trusted-list li{font-size:1.04rem;padding:2px 14px}}
