
  :root{
    --paper:#FAF8F4;
    --paper-2:#F3F1EC;
    --ink:#14110E;
    --muted:#6B655C;
    --faint:#8E877C;
    --rule:#E2DCD2;
    --accent:#102755;
    --accent-dark:#0A1B3D;
    --accent-soft:#EDF0F6;
    --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;
    --maxw:1120px;
    --bar:74px;
  }

  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;}
  a{color:inherit;}
  img{display:block;max-width:100%;}
  ::selection{background:var(--accent);color:#FAF8F4;}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}

  /* ------------- Header ------------- */
  .site-header{position:sticky;top:0;z-index:60;background:rgba(250,248,244,.9);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--rule);}
  .site-header .wrap{min-height:var(--bar);display:flex;align-items:center;justify-content:space-between;gap:16px 32px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px;}
  .brand{display:inline-flex;align-items:center;text-decoration:none;flex:none;}
  .brand svg{width:180px;height:auto;display:block;}
  nav.menu{display:flex;flex-wrap:wrap;align-items:center;gap:8px 26px;font-family:var(--sans);font-size:12px;letter-spacing:.11em;text-transform:uppercase;}
  nav.menu a{text-decoration:none;color:var(--muted);padding:4px 0;border-bottom:1px solid transparent;white-space:nowrap;transition:color .2s,border-color .2s;}
  nav.menu a:hover{color:var(--ink);border-bottom-color:var(--ink);}
  nav.menu a.cta{color:var(--accent);font-weight:600;}

  /* ------------- Hero ------------- */
  .hero{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;
        min-height:clamp(520px,74vh,760px);padding:118px 0;overflow:hidden;text-align:center;}
  .hero .wrap{width:100%;display:flex;flex-direction:column;align-items:center;}
  .hero-bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center center;}
  .hero::after{content:"";position:absolute;inset:0;z-index:-1;
    background:radial-gradient(ellipse 64% 60% at 50% 50%,
      rgba(250,248,244,.80) 0%,
      rgba(250,248,244,.56) 45%,
      rgba(250,248,244,.16) 76%,
      rgba(250,248,244,0) 100%);}
  .hero h1{font-weight:400;font-size:clamp(1.9rem,4vw,3.05rem);line-height:1.13;
           letter-spacing:-0.016em;margin:0 0 26px;max-width:660px;text-wrap:balance;}
  .hero .lede{margin:0;max-width:560px;color:#463F37;
              font-size:clamp(1rem,1.55vw,1.14rem);line-height:1.66;text-wrap:pretty;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:14px 18px;justify-content:center;margin-top:38px;}
  .btn{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
       text-decoration:none;padding:15px 28px;border:1px solid var(--accent);transition:background .22s,color .22s;}
  .btn.solid{background:var(--accent);color:var(--paper);}
  .btn.solid:hover{background:var(--accent-dark);border-color:var(--accent-dark);}
  .btn.ghost{color:var(--accent);background:transparent;}
  .btn.ghost:hover{background:var(--accent);color:var(--paper);}

  /* ------------- Trust strip ------------- */
  .strip{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-2);}
  .strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 36px;padding-top:38px;padding-bottom:38px;}
  .strip p{margin:0;font-family:var(--sans);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);line-height:1.6;}

  /* ------------- Sections ------------- */
  section{padding:126px 0;border-top:1px solid var(--rule);scroll-margin-top:calc(var(--bar) + 8px);}
  section.no-rule{border-top:none;}
  .sec-head{display:block;margin-bottom:64px;}
  .eyebrow{font-family:var(--sans);font-size:clamp(1.45rem,3.6vw,2.6rem);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0;line-height:1.05;text-wrap:balance;}
  .sec-head .sub{margin:26px 0 0;color:var(--muted);font-size:1.02rem;max-width:62ch;line-height:1.62;text-wrap:pretty;}

  /* ------------- Services ------------- */
  .services{display:grid;grid-template-columns:repeat(2,1fr);gap:78px 88px;}
  .svc .num{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--accent);margin-bottom:24px;}
  .svc h3{margin:0 0 14px;font-weight:400;font-size:1.3rem;line-height:1.26;letter-spacing:-0.01em;}
  .svc p{margin:0;color:var(--muted);font-size:.99rem;line-height:1.65;max-width:44ch;text-wrap:pretty;}

  /* ------------- Role groups ------------- */
  .rolegroup{margin-bottom:74px;}
  .rolegroup:last-child{margin-bottom:0;}
  .rolegroup > h3{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
                  color:var(--accent);font-weight:600;margin:0 0 30px;padding-bottom:14px;border-bottom:1px solid var(--rule);}
  .rolelist{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 36px;}
  .role h4{margin:0 0 5px;font-weight:400;font-size:1.02rem;line-height:1.3;}
  .role p{margin:0;color:var(--faint);font-family:var(--sans);font-size:11.5px;letter-spacing:.02em;line-height:1.55;}

  /* ------------- Role filter ------------- */
  .rolefilter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:46px;}
  .rolefilter button{font-family:var(--sans);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
    color:var(--muted);background:transparent;border:1px solid var(--rule);padding:9px 16px;cursor:pointer;
    transition:color .18s,border-color .18s,background .18s;}
  .rolefilter button:hover{color:var(--ink);border-color:var(--faint);}
  .rolefilter button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--paper);}
  .rolegroup[hidden]{display:none;}
  .role{cursor:pointer;padding:14px 16px;margin:-14px -16px;border:1px solid transparent;
        transition:border-color .18s,background .18s,transform .18s;}
  .role:hover,.role:focus-visible{border-color:var(--rule);background:var(--paper-2);outline:none;}
  .role:hover h4,.role:focus-visible h4{color:var(--accent);}
  .role h4{transition:color .18s;}
  .role .pick{display:block;margin-top:8px;font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;
              text-transform:uppercase;color:var(--accent);opacity:0;transition:opacity .18s;}
  .role:hover .pick,.role:focus-visible .pick{opacity:1;}
  @media (hover:none){ .role .pick{opacity:.8;} }

  /* ------------- Calculator ------------- */
  .calc{display:grid;grid-template-columns:0.92fr 1.08fr;gap:0;border:1px solid var(--rule);background:var(--paper-2);}
  .calc-in{padding:38px 36px;display:grid;gap:24px;align-content:start;border-right:1px solid var(--rule);}
  .calc-out{padding:38px 36px;background:var(--paper);display:flex;flex-direction:column;}
  .calc label{font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
              color:var(--faint);font-weight:600;display:block;margin-bottom:9px;}
  .calc select,.calc input{width:100%;font-family:var(--sans);font-size:.94rem;color:var(--ink);
    background:var(--paper);border:1px solid var(--rule);padding:12px 13px;border-radius:0;
    -webkit-appearance:none;appearance:none;transition:border-color .18s;}
  .calc select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%236B655C' stroke-width='1.4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;}
  .calc select:focus,.calc input:focus{outline:none;border-color:var(--accent);}
  .calc .two{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
  .calc .hint{font-family:var(--sans);font-size:11px;color:var(--faint);line-height:1.6;margin:2px 0 0;}

  .calc-out .lbl{font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
                 color:var(--faint);font-weight:600;margin:0 0 10px;}
  .calc-out .big{font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.08;letter-spacing:-0.02em;
                 margin:0;font-variant-numeric:tabular-nums;}
  .calc-out .sub{font-family:var(--sans);font-size:11.5px;color:var(--muted);margin:10px 0 0;line-height:1.6;}
  .calc-row{padding:22px 0;border-top:1px solid var(--rule);}
  .calc-row:first-of-type{padding-top:0;border-top:0;}
  .calc-out .mid{font-size:1.12rem;margin:0;font-variant-numeric:tabular-nums;line-height:1.35;}
  .calc-note{font-family:var(--sans);font-size:11.5px;color:var(--muted);line-height:1.7;
             margin:22px 0 0;padding-top:20px;border-top:1px solid var(--rule);}
  .calc-out .cta{margin-top:auto;padding-top:26px;}
  .calc-out .cta a{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
    font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;}
  .flash{animation:flash .5s ease;}
  @keyframes flash{from{background:var(--accent-soft);}to{background:transparent;}}

  /* ------------- Sticky CTA ------------- */
  .stickycta{position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--accent);color:var(--paper);
    transform:translateY(102%);transition:transform .32s cubic-bezier(.2,.7,.2,1);
    pointer-events:none;box-shadow:0 -1px 0 rgba(20,17,14,.10);}
  .stickycta.show{transform:translateY(0);pointer-events:auto;}
  .stickycta .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;
                   padding-top:14px;padding-bottom:14px;}
  .stickycta p{margin:0;font-family:var(--sans);font-size:12.5px;letter-spacing:.03em;color:#C9D0E0;}
  .stickycta a{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
    text-decoration:none;color:var(--accent);background:var(--paper);padding:11px 20px;white-space:nowrap;
    transition:opacity .18s;}
  .stickycta a:hover{opacity:.86;}
  @media (max-width:620px){ .stickycta p{display:none;} .stickycta .wrap{justify-content:center;} }
  @media (prefers-reduced-motion:reduce){ .stickycta{transition:none;} }

  /* ------------- Rate tables ------------- */
  .ratewrap{margin-bottom:70px;}
  .ratewrap:last-of-type{margin-bottom:0;}
  .ratewrap > h3{font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
                 color:var(--accent);font-weight:600;margin:0 0 4px;}
  .ratewrap > .cap{font-family:var(--sans);font-size:11.5px;color:var(--faint);margin:0 0 24px;line-height:1.55;}
  .tablescroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  /* Fixed layout with declared column widths, so every rate table on the
     page lines up with the one above it. Left to itself each table sizes
     its own columns from its own content, and the group headings, rates
     and notes end up on five different vertical lines. */
  table{width:100%;border-collapse:collapse;font-size:.97rem;min-width:520px;
        table-layout:fixed;}
  table th:nth-child(1),table td:nth-child(1){width:42%;}
  table th:nth-child(2),table td:nth-child(2){width:20%;}
  table th:nth-child(3),table td:nth-child(3){width:38%;}
  caption{caption-side:top;text-align:left;font-family:var(--sans);font-size:11.5px;color:var(--faint);padding-bottom:12px;}
  th,td{text-align:left;padding:17px 18px 17px 0;border-bottom:1px solid var(--rule);vertical-align:top;}
  thead th{font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
           color:var(--faint);font-weight:600;padding-top:0;border-bottom:1px solid var(--ink);}
  td.rate{font-variant-numeric:tabular-nums;white-space:nowrap;}
  th[scope="row"]{font-weight:400;overflow-wrap:break-word;}
  td.note{color:var(--muted);font-family:var(--sans);font-size:11.5px;line-height:1.5;}
  tbody tr:last-child th,tbody tr:last-child td{border-bottom:0;}
  tr.total th,tr.total td{border-top:1px solid var(--ink);border-bottom:0;padding-top:16px;font-weight:600;}
  th[scope="row"]{font-weight:400;padding-right:26px;}

  .included{display:grid;grid-template-columns:repeat(2,1fr);gap:42px 72px;margin-top:16px;}
  .inc h4{margin:0 0 7px;font-weight:400;font-size:1.06rem;line-height:1.3;}
  .inc p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.6;text-wrap:pretty;}
  .footnote{margin:44px 0 0;color:var(--faint);font-family:var(--sans);font-size:11.5px;line-height:1.7;max-width:78ch;}
  .footnote a{color:var(--muted);}

  /* ------------- Split ------------- */
  .split{display:grid;grid-template-columns:repeat(2,1fr);gap:70px 88px;}
  .panel{border-top:2px solid var(--accent);padding-top:36px;}
  .panel h3{margin:0 0 16px;font-weight:400;font-size:1.34rem;line-height:1.26;}
  .panel p{margin:0 0 20px;color:var(--muted);font-size:1rem;line-height:1.66;text-wrap:pretty;}
  .panel ul{margin:0 0 26px;padding-left:1.1em;color:var(--muted);font-size:.99rem;line-height:1.62;}
  .panel li{margin-bottom:9px;}
  .panel a.more{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
                color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;}

  /* ------------- Steps ------------- */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:60px 80px;}
  .step .k{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--accent);margin-bottom:16px;}
  .step h3{margin:0 0 12px;font-weight:400;font-size:1.16rem;line-height:1.3;}
  .step p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.62;text-wrap:pretty;}

  /* ------------- FAQ ------------- */
  .faq{border-top:1px solid var(--rule);}
  .faq details{border-bottom:1px solid var(--rule);}
  .faq summary{list-style:none;cursor:pointer;padding:34px 44px 34px 0;position:relative;
               font-size:1.12rem;line-height:1.4;text-wrap:pretty;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:12px;
    margin-top:-6px;border-right:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);
    transform:rotate(45deg) translateY(-25%);transition:transform .25s;}
  .faq details[open] summary::after{transform:rotate(-135deg) translateY(-25%);}
  .faq summary:hover{color:var(--accent);}
  .faq .a{padding:0 60px 38px 0;color:var(--muted);font-size:1rem;line-height:1.68;}
  .faq .a p{margin:0 0 14px;text-wrap:pretty;}
  .faq .a p:last-child{margin-bottom:0;}

  /* ------------- CTA band ------------- */
  .band{background:var(--accent);color:var(--paper);border-top:0;}
  .band .wrap{padding-top:110px;padding-bottom:110px;text-align:center;
              display:flex;flex-direction:column;align-items:center;}
  .band h2{margin:0 0 18px;font-weight:400;font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.2;
           letter-spacing:-0.015em;max-width:20ch;text-wrap:balance;}
  .band p{margin:0 0 34px;max-width:52ch;color:#C9D0E0;font-size:1.02rem;line-height:1.66;text-wrap:pretty;}
  .band .btn{border-color:var(--paper);color:var(--accent);background:var(--paper);}
  .band .btn:hover{background:transparent;color:var(--paper);}

  /* ------------- Contact ------------- */
  .contact-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:72px 88px;align-items:start;}
  form.enquiry{display:grid;gap:22px;}
  .field{display:grid;gap:8px;}
  .field label{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-weight:600;}
  .field input,.field select,.field textarea{
    font-family:var(--serif);font-size:1rem;color:var(--ink);background:transparent;
    border:0;border-bottom:1px solid var(--rule);padding:10px 2px;width:100%;
    transition:border-color .2s;-webkit-appearance:none;appearance:none;border-radius:0;}
  .field select{font-family:var(--sans);font-size:.92rem;letter-spacing:.02em;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%236B655C' stroke-width='1.4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 4px center;padding-right:26px;}
  .field textarea{resize:vertical;min-height:110px;line-height:1.6;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--accent);}
  .field input::placeholder,.field textarea::placeholder{color:#B7B0A5;}
  .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 28px;}
  button.submit{justify-self:start;font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    font-weight:600;color:var(--paper);background:var(--accent);border:1px solid var(--accent);
    padding:15px 30px;cursor:pointer;transition:background .22s;}
  button.submit:hover{background:var(--accent-dark);border-color:var(--accent-dark);}
  button.submit[disabled]{opacity:.55;cursor:default;}
  .form-note{font-family:var(--sans);font-size:11.5px;color:var(--faint);line-height:1.6;margin:0;}
  .form-status{font-family:var(--sans);font-size:12.5px;line-height:1.6;margin:0;color:var(--accent);}
  .form-status.err{color:#8C2F1E;}
  .details h3{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);font-weight:600;margin:0 0 14px;}
  .details p{margin:0 0 30px;line-height:1.8;font-size:1rem;}
  .details a{text-decoration:none;border-bottom:1px solid var(--rule);transition:border-color .2s;}
  .details a:hover{border-bottom-color:var(--accent);}
  .details .label{color:var(--faint);font-family:var(--sans);font-size:11.5px;letter-spacing:.03em;}

  /* ------------- Footer ------------- */
  footer{border-top:1px solid var(--rule);padding:38px 0 68px;font-family:var(--sans);font-size:11.5px;letter-spacing:.03em;color:var(--faint);}
  footer .wrap{display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:space-between;align-items:center;}
  footer nav{display:flex;flex-wrap:wrap;gap:10px 24px;}
  footer a{text-decoration:none;border-bottom:1px solid transparent;}
  footer a:hover{color:var(--ink);border-bottom-color:var(--ink);}
  .parent{display:inline-flex;align-items:center;gap:9px;}
  .parent svg{width:16px;height:16px;flex:none;}

  /* ------------- Reveal ------------- */
  .reveal{opacity:0;transform:translateY(18px);
          transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);
          transition-delay:var(--d,0ms);}
  .reveal.in{opacity:1;transform:none;}
  .svc,.role,.inc,.step,.panel,.strow{transition:transform .18s ease;}
  .svc:hover h3{color:var(--accent);}
  .svc h3{transition:color .18s;}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

  /* ------------- Responsive ------------- */
  @media (max-width:980px){
    .calc{grid-template-columns:1fr;}
    .calc-in{border-right:0;border-bottom:1px solid var(--rule);}
    .services{grid-template-columns:1fr;gap:68px;}
    .rolelist{grid-template-columns:repeat(2,1fr);gap:30px 36px;}
    .included{grid-template-columns:1fr;gap:38px;}
    .split{grid-template-columns:1fr;gap:60px;}
    .steps{grid-template-columns:1fr;gap:54px;}
    .contact-layout{grid-template-columns:1fr;gap:68px;}
    .strip .wrap{grid-template-columns:repeat(2,1fr);gap:16px 32px;}
  }
  @media (max-width:760px){
    :root{--bar:56px;}
    .wrap{padding:0 32px;}
    .site-header{position:static;background:var(--paper);}
    .site-header .wrap{justify-content:flex-start;gap:12px 22px;}
    .brand svg{width:158px;}
    nav.menu{width:100%;gap:8px 18px;font-size:11px;letter-spacing:.07em;}
    .faq .a{padding-right:0;}
  }
  @media (max-width:620px){
    body{font-size:17px;}
    .wrap{padding:0 28px;}
    .hero{min-height:clamp(360px,58vh,470px);padding:80px 0 52px;}
    .hero::after{background:linear-gradient(180deg,rgba(250,248,244,.55) 0%,rgba(250,248,244,.76) 42%,rgba(250,248,244,.94) 78%,rgba(250,248,244,.97) 100%);}
    section{padding:96px 0;}
    .sec-head{margin-bottom:50px;}
    .strip .wrap{grid-template-columns:1fr;gap:12px;}
    .rolelist{grid-template-columns:1fr;}
    .calc-in,.calc-out{padding:30px 26px;}
    .calc .two{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
    .btn{padding:14px 22px;font-size:11px;}
    .band .wrap{padding-top:64px;padding-bottom:64px;}
  }

  @media print{
    body{background:#fff;}
    .site-header{position:static;}
    .reveal{opacity:1;transform:none;}
    .hero-bg,.hero::after{display:none;}
    .faq details{display:block;}
  }


  /* ------------- Page header (interior pages) ------------- */
  .pagehead{padding:104px 0 0;}
  /* A page header is followed by the first section, whose top border would
     otherwise draw a rule straight under the intro paragraph. Belt and
     braces alongside the no-rule class on those sections. */
  .pagehead + section,
  .wrap:has(> .pagehead) + .wrap > section:first-child{border-top:0;}
  .pagehead .eyebrow{margin-bottom:0;}
  .pagehead h1{font-weight:400;font-size:clamp(1.9rem,4vw,2.85rem);line-height:1.14;
               letter-spacing:-0.016em;margin:26px 0 0;max-width:20ch;text-wrap:balance;}
  .pagehead .lede{margin:24px 0 0;max-width:64ch;color:var(--muted);
                  font-size:1.04rem;line-height:1.68;text-wrap:pretty;}
  .pagehead .crumbs{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;
                    text-transform:uppercase;color:var(--faint);margin:0;}
  .pagehead .crumbs a{color:var(--faint);text-decoration:none;border-bottom:1px solid transparent;}
  .pagehead .crumbs a:hover{color:var(--ink);border-bottom-color:var(--ink);}

  /* ------------- Audience cards (home) ------------- */
  .audience{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);
            border:1px solid var(--rule);}
  .aud{background:var(--paper);padding:40px 36px;display:flex;flex-direction:column;
       text-decoration:none;color:inherit;transition:background .2s;}
  .aud:hover{background:var(--paper-2);}
  .aud .k{font-family:var(--sans);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
          color:var(--accent);margin:0 0 18px;}
  .aud h3{margin:0 0 14px;font-weight:400;font-size:1.5rem;line-height:1.24;letter-spacing:-0.012em;}
  .aud p{margin:0 0 24px;color:var(--muted);font-size:1rem;line-height:1.66;flex:1;text-wrap:pretty;}
  .aud .go{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
           font-weight:600;color:var(--accent);}
  .aud:hover .go{text-decoration:underline;text-underline-offset:4px;}

  /* ------------- Rate teaser (home) ------------- */
  .teaser{display:grid;grid-template-columns:repeat(4,1fr);gap:36px 40px;}
  .tz .v{font-size:clamp(1.45rem,2.9vw,2rem);line-height:1;letter-spacing:-0.02em;
         margin:0 0 12px;font-variant-numeric:tabular-nums;}
  .tz .l{font-family:var(--sans);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
         color:var(--faint);line-height:1.55;margin:0;}
  .teaser-more{margin:52px 0 0;}
  .teaser-more a{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
    font-weight:600;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:3px;}

  /* ------------- Checklist ------------- */
  .checks{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 64px;}
  .chk{display:grid;grid-template-columns:22px 1fr;gap:0 16px;}
  .chk svg{width:15px;height:15px;margin-top:.4em;color:var(--accent);}
  .chk h3{margin:0 0 6px;font-weight:400;font-size:1.04rem;line-height:1.32;}
  .chk p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.62;text-wrap:pretty;}

  /* ------------- Nav current page ------------- */
  nav.menu a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink);}

  @media (max-width:980px){
    .audience{grid-template-columns:1fr;}
    .teaser{grid-template-columns:repeat(2,1fr);gap:32px;}
    .checks{grid-template-columns:1fr;gap:28px;}
  }
  @media (max-width:620px){
    .pagehead{padding-top:64px;}
    .teaser{grid-template-columns:1fr;gap:26px;}
    .aud{padding:32px 26px;}
  }


  /* ------------- Trust strip, stronger ------------- */
  .strip .wrap{padding-top:34px;padding-bottom:34px;}
  .strip p{font-size:12px;letter-spacing:.15em;color:var(--ink);opacity:.72;}

  /* ------------- Rate teaser, made a feature ------------- */
  .teaser{gap:44px 40px;}
  .tz .v{font-size:clamp(1.9rem,4.2vw,3.1rem);line-height:.98;letter-spacing:-0.028em;
         margin:0 0 14px;color:var(--accent);}
  .tz .l{font-size:11px;letter-spacing:.15em;color:var(--faint);}

  /* ------------- Full-bleed fact band ------------- */
  .fact{background:var(--accent);color:var(--paper);border-top:0;}
  .fact .wrap{padding-top:104px;padding-bottom:104px;
              display:grid;grid-template-columns:1fr 1fr;gap:36px 80px;align-items:center;}
  .fact .k{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
           color:#93A3C0;margin:0 0 22px;}
  .fact .big{font-size:clamp(2.3rem,6.2vw,4.1rem);line-height:.95;letter-spacing:-0.035em;
             margin:0;color:#fff;font-variant-numeric:tabular-nums;text-wrap:balance;}
  .fact p.body{margin:0 0 22px;color:#C6CFE0;font-size:1.04rem;line-height:1.68;text-wrap:pretty;}
  .fact p.body:last-of-type{margin-bottom:26px;}
  .fact a.more{font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
               font-weight:600;color:#fff;text-decoration:none;
               border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:3px;transition:border-color .2s;}
  .fact a.more:hover{border-bottom-color:#fff;}

  /* ------------- Services, more presence ------------- */
  .services{gap:0;}
  .svc{padding:38px 0;border-top:1px solid var(--rule);display:grid;
       grid-template-columns:64px 1fr;gap:0 28px;align-items:start;}
  .services > .svc:nth-child(1),.services > .svc:nth-child(2){border-top:0;padding-top:0;}
  .svc .num{margin:0;padding-top:.35em;}
  .svc h3{font-size:1.24rem;margin:0 0 12px;}
  .svc p{max-width:40ch;}
  .svc > div{grid-column:2;}

  @media (max-width:980px){
    .fact .wrap{grid-template-columns:1fr;gap:26px;padding-top:76px;padding-bottom:76px;}
    .services > .svc:nth-child(2){border-top:1px solid var(--rule);padding-top:38px;}
  }
  @media (max-width:620px){
    .svc{grid-template-columns:1fr;gap:0;padding:30px 0;}
    .svc .num{padding-top:0;margin-bottom:14px;}
    .svc > div{grid-column:1;}
    .fact .wrap{padding-top:64px;padding-bottom:64px;}
  }

  /* ================= Home page, conversion layer ================= */

  /* Full-bleed bands already carry their own padding on .wrap.
     Without this they inherit the 150px section padding as well and
     open a hole the height of a laptop screen underneath the text. */
  .fact,.band{padding:0;}

  /* ------------- Hero trust badges ------------- */
  .hero .price{margin:22px 0 0;font-family:var(--sans);font-size:12px;letter-spacing:.14em;
               text-transform:uppercase;font-weight:600;color:var(--accent);}
  .hero .price b{font-weight:600;}

  /* ------------- The bench ------------- */
  /* Each card is a subgrid spanning the same four rows, so the availability
     line, the role, the speciality and the fact list share baselines across
     all four cards no matter how differently the text wraps. Without this
     the cards align only at their outer edges and the insides read ragged. */
  .bench{display:grid;grid-template-columns:repeat(4,1fr);
         grid-template-rows:auto auto auto auto;
         gap:1px;background:var(--rule);border:1px solid var(--rule);}
  .bch{background:var(--paper);padding:30px 26px 30px;transition:background .2s;
       display:grid;grid-row:span 4;gap:0;align-content:start;}
  @supports (grid-template-rows:subgrid){
    .bch{grid-template-rows:subgrid;}
  }
  .bch:hover{background:var(--paper-2);}

  .bch .avail{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:10px;
              letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#1E7A4B;
              margin:0 0 18px;align-self:start;}
  .bch .avail i{width:7px;height:7px;border-radius:50%;background:#1E7A4B;display:block;flex:none;}
  .bch h3{margin:0 0 7px;font-weight:400;font-size:1.16rem;line-height:1.24;
          letter-spacing:-0.012em;align-self:start;}
  .bch .spec{margin:0 0 20px;color:var(--muted);font-size:.92rem;line-height:1.5;
             align-self:start;}

  .bch .fx{margin:0;padding:0;list-style:none;align-self:start;
           border-top:1px solid var(--rule);}
  .bch .fx li{font-size:.885rem;line-height:1.45;color:var(--ink);
              padding:11px 0;border-bottom:1px solid var(--rule);}
  .bch .fx li:last-child{border-bottom:0;padding-bottom:0;}

  .bench-note{margin:22px 0 0;font-size:.88rem;color:var(--muted);line-height:1.6;max-width:74ch;}

  /* ------------- Systems we work in ------------- */
  .systems{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
           background:var(--paper-2);overflow:hidden;position:relative;
           -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
           mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);}
  .systems .lbl{margin:0;padding:26px 40px 0;font-family:var(--sans);font-size:10.5px;
                letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-align:center;}
  .systrack{display:flex;width:max-content;animation:sysmarq 46s linear infinite;
            padding:20px 0 28px;}
  .systems:hover .systrack{animation-play-state:paused;}
  .systrack span{font-family:var(--sans);font-size:clamp(.95rem,1.7vw,1.18rem);font-weight:600;
                 letter-spacing:-0.005em;color:var(--ink);opacity:.5;padding:0 34px;white-space:nowrap;}
  @keyframes sysmarq{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
  @media (prefers-reduced-motion:reduce){
    .systrack{animation:none;flex-wrap:wrap;width:auto;justify-content:center;gap:10px 0;padding:20px 40px 28px;}
  }

  /* Fifth service tile sits alone on its row, so give it the full width
     and its rule follows. Otherwise the border stops halfway across. */
  .services > .svc:nth-child(5){grid-column:1 / -1;grid-template-columns:64px 1fr;}
  .services > .svc:nth-child(5) p{max-width:56ch;}

  @media (max-width:1180px){
    .bench{grid-template-columns:repeat(2,1fr);
           grid-template-rows:repeat(8,auto);}
  }

  @media (max-width:620px){
    .bench{grid-template-columns:1fr;grid-template-rows:repeat(16,auto);}
    .bch{padding:26px 24px 26px;}
    .services > .svc:nth-child(5){grid-template-columns:1fr;}
  }

  .visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
                   overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
