  /* Self-hosted fonts (SIL Open Font License, see /fonts/OFL-*.txt). Latin subset. */
  @font-face{ font-family:'Prata'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/prata-400-latin.woff2') format('woff2'); }
  @font-face{ font-family:'Public Sans'; font-style:normal; font-weight:300 600; font-display:swap; src:url('/fonts/public-sans-var-latin.woff2') format('woff2'); }
  /* Brand system, Edition 01 (Sep 2026). Six colours; stone replaces white; gold is a hairline accent, never a fill.
     Accessibility exceptions (flagged to brand owner):
       --graphite-text: graphite #6F747C measures 4.09:1 on stone (guideline states 4.6:1) — text uses a darker graphite, 4.94:1.
       Focus ring: gold fails 3:1 on light grounds (2.52:1) — navy on light grounds, gold on navy. */
  :root{
    --navy:#101F38; --navy-dark:#0B1628;
    --ink:#22252B; --graphite:#6F747C; --graphite-text:#63676E; --steel:#B0B4B8;
    --gold:#B39445; --stone:#F0EFEC; --white:#ffffff;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; scroll-padding-top:72px; }
  html.has-qbar{ scroll-padding-bottom:104px; }
  body{ font-family:'Public Sans', Arial, sans-serif; font-weight:300; font-size:15px; line-height:1.7; color:var(--ink); background:var(--stone); }
  body.has-qbar{ padding-bottom:88px; }
  h1,h2,h3{ font-family:'Prata', Georgia, serif; font-weight:400; letter-spacing:0; }
  a{ color:inherit; text-decoration:none; }
  button, input, select, textarea{ font:inherit; color:inherit; }
  .container{ max-width:1180px; margin:0 auto; padding:0 32px; }
  .container > *, .hero-grid > *, .cert-grid > *, .quote-grid > *, .accred-grid > *{ min-width:0; }
  section{ padding:96px 0; }
  .band{ border-top:1px solid var(--steel); }
  @media (max-width:768px){ section{ padding:72px 0; } .container{ padding:0 16px; } }
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .num, .data{ font-variant-numeric:tabular-nums; }
  :focus-visible{ outline:2px solid var(--navy); outline-offset:2px; }
  .on-navy :focus-visible, .qbar :focus-visible{ outline-color:var(--gold); }
  .skip{ position:absolute; left:16px; top:-60px; z-index:300; background:var(--navy); color:var(--white); padding:10px 16px; font-weight:500; }
  .skip:focus{ top:8px; }

  /* ---------- Buttons: square, no shadow, uppercase ---------- */
  .btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:12px 24px;
        font-size:13px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; border:1px solid transparent;
        cursor:pointer; background:none; transition:background .2s, border-color .2s, color .2s; white-space:nowrap; }
  .btn-primary{ background:var(--navy); color:var(--white); }
  .btn-primary:hover{ background:var(--navy-dark); }
  .btn-secondary{ border-color:var(--navy); color:var(--navy); }
  .btn-secondary:hover{ background:var(--navy); color:var(--stone); }
  .on-navy .btn-primary{ background:var(--stone); color:var(--navy); }
  .on-navy .btn-primary:hover{ background:var(--white); }
  .on-navy .btn-secondary{ border-color:var(--steel); color:var(--stone); }
  .on-navy .btn-secondary:hover{ background:var(--navy-dark); border-color:var(--stone); color:var(--stone); }
  .text-link{ color:var(--navy); font-weight:400; border:0; border-bottom:1px solid var(--gold); background:none; cursor:pointer; padding:0; }

  /* ---------- Header: stone bar, 56px, closed by a 1px gold rule ---------- */
  header{ position:fixed; inset:0 0 auto 0; z-index:200; height:56px; background:var(--stone); border-bottom:1px solid var(--gold); }
  @media (max-height:500px){ header{ position:absolute; } .qbar{ display:none !important; } }
  .nav{ display:flex; align-items:center; justify-content:space-between; height:56px; gap:24px; }
  .nav-logo{ display:flex; align-items:center; color:var(--navy); flex-shrink:0; order:0; }
  .logo{ display:block; height:38px; width:auto; }   /* 38px tall = ~115px of wordmark: above the 110px screen minimum */
  .nav-links{ display:flex; gap:28px; list-style:none; align-items:center; order:1; }
  .nav-links a{ font-size:14px; font-weight:400; color:var(--ink); padding:4px 0; border-bottom:1px solid transparent; }
  .nav-links a:hover{ color:var(--navy); border-bottom-color:var(--gold); }
  .nav-links .mobile-only{ display:none; }
  .nav-right{ display:flex; align-items:center; gap:14px; order:2; }
  .nav-cta{ min-height:38px; padding:8px 18px; font-size:12px; }
  .lang-toggle{ display:flex; border:1px solid var(--graphite); padding:2px; }
  .lang-btn{ background:transparent; border:0; color:var(--graphite-text); font-size:12px; font-weight:600; letter-spacing:0.14em; padding:4px 9px; cursor:pointer; min-height:30px; }
  .lang-btn[aria-pressed="true"]{ background:var(--navy); color:var(--white); }
  .menu-btn{ display:none; background:none; border:1px solid var(--graphite); min-height:36px; padding:0 12px; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--navy); cursor:pointer; }
  @media (max-width:1040px){
    .menu-btn{ display:inline-flex; align-items:center; }
    .nav-links{ display:none; position:absolute; top:56px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0;
                background:var(--stone); border-bottom:1px solid var(--gold); padding:8px 16px 16px; max-height:calc(100vh - 56px); overflow:auto; }
    .nav-links.open{ display:flex; }
    .nav-links li a{ display:block; padding:12px 0; border-bottom:1px solid var(--steel); font-size:15px; }
    .nav-links .mobile-only{ display:block; padding-top:14px; }
    .nav-links .mobile-only a{ border:0; }
    body.menu-open .qbar, body.menu-open .wa-float{ display:none; }
  }
  @media (max-width:600px){ .nav-cta{ display:none; } .nav{ gap:10px; } .nav-right{ gap:8px; } }

  /* ---------- Eyebrows & section heads (left aligned; body copy never centred) ---------- */
  .eyebrow{ font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--navy); margin-bottom:14px; }
  .on-navy .eyebrow{ color:var(--gold); }
  .section-head{ max-width:680px; margin-bottom:48px; }
  .section-head h2{ font-size:28px; line-height:1.25; color:var(--ink); margin-bottom:14px; }
  .section-head p{ color:var(--ink); max-width:62ch; }
  .on-navy{ background:var(--navy); color:var(--stone); }
  .on-navy .section-head h2{ color:var(--white); }
  .on-navy .section-head p{ color:var(--steel); }

  /* ---------- Hero ---------- */
  .hero{ padding:152px 0 96px; }
  .hero-grid{ display:grid; grid-template-columns:1.2fr 0.8fr; gap:56px; align-items:center; }
  .gauge-wrap{ display:flex; justify-content:center; }
  @media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } .gauge-wrap{ display:none; } }
  .hero h1{ font-size:52px; line-height:1.15; color:var(--white); margin-bottom:24px; }
  @media (max-width:600px){ .hero h1{ font-size:38px; } .hero{ padding:112px 0 72px; } }
  .hero .lead{ font-size:16px; color:var(--steel); max-width:56ch; margin-bottom:32px; }
  .btn-row{ display:flex; gap:12px; flex-wrap:wrap; }
  .hero-search{ margin-top:40px; max-width:520px; }
  .hero-search label{ display:block; font-size:12px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--steel); margin-bottom:8px; }
  .search-row{ display:flex; }
  .search-row input{ flex:1; min-width:0; height:48px; padding:0 14px; border:1px solid var(--steel); border-right:0; background:var(--navy-dark); color:var(--white); font-weight:400; border-radius:0; }
  .search-row input::placeholder{ color:var(--steel); opacity:1; }
  .search-row .btn{ min-height:48px; }
  .gauge{ width:100%; max-width:340px; }
  .gauge-needle{ transform-origin:170px 170px; animation:needleSettle 2.6s cubic-bezier(.2,.9,.25,1) forwards; }
  @keyframes needleSettle{ 0%{ transform:rotate(-95deg); } 65%{ transform:rotate(50deg); } 100%{ transform:rotate(45deg); } }
  @media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } .gauge-needle{ animation:none; transform:rotate(45deg); } }

  /* ---------- Facts bar ---------- */
  .facts{ border-bottom:1px solid var(--steel); }
  .facts-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
  .fact{ padding:26px 24px 26px 0; }
  .fact + .fact{ padding-left:24px; border-left:1px solid var(--steel); }
  .fact .num{ display:block; font-family:'Prata', serif; font-size:28px; color:var(--navy); line-height:1.2; }
  .fact .cap{ font-size:13px; color:var(--graphite-text); font-weight:400; }
  @media (max-width:800px){ .facts-grid{ grid-template-columns:1fr 1fr; } .fact:nth-child(3){ padding-left:0; border-left:0; } .fact:nth-child(n+3){ border-top:1px solid var(--steel); } }

  /* ---------- Industries (navy band) ---------- */
  .industry-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--graphite); border:1px solid var(--graphite); }
  @media (max-width:900px){ .industry-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:400px){ .industry-grid{ grid-template-columns:1fr; } }
  .industry{ display:block; background:var(--navy); color:var(--white); padding:24px 20px; transition:background .2s; }
  .industry:hover{ background:var(--navy-dark); }
  .industry strong{ display:block; font-weight:500; font-size:16px; margin-bottom:6px; }
  .industry span{ display:block; font-size:13px; color:var(--steel); font-weight:400; }

  /* ---------- Scope tiles ---------- */
  .scope-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--steel); border:1px solid var(--steel); }
  @media (max-width:1000px){ .scope-grid{ grid-template-columns:repeat(3,1fr); } }
  @media (max-width:700px){ .scope-grid{ grid-template-columns:1fr 1fr; } .scope{ padding:16px 14px; } .scope .ex{ display:none; } }
  .scope{ display:flex; flex-direction:column; gap:6px; padding:22px; background:var(--stone); transition:box-shadow .2s; }
  .scope:hover{ box-shadow:inset 0 0 0 1px var(--navy); }
  .scope:hover .scope-go{ border-bottom-color:var(--gold); }
  .scope h3{ font-family:'Public Sans', Arial, sans-serif; font-weight:500; font-size:18px; line-height:1.3; color:var(--ink); }
  .scope .ex{ font-size:13px; color:var(--graphite-text); flex:1; font-weight:400; }
  .scope-go{ align-self:flex-start; margin-top:8px; font-size:12px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--navy); border-bottom:1px solid transparent; }

  /* ---------- Delivery options ---------- */
  .option-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px 48px; }
  @media (max-width:900px){ .option-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .option-grid{ grid-template-columns:1fr; } }
  .option h3{ font-family:'Public Sans', sans-serif; font-weight:500; font-size:18px; color:var(--ink); padding-top:14px; border-top:1px solid var(--steel); margin-bottom:6px; }
  .option p{ color:var(--ink); }

  /* ---------- Instrument catalogue ---------- */
  .toolbar{ display:grid; grid-template-columns:1.4fr 1fr; gap:16px; margin-bottom:16px; }
  @media (max-width:700px){ .toolbar{ grid-template-columns:1fr; } }
  .field label, .field legend{ display:block; font-size:12px; font-weight:500; letter-spacing:0.04em; color:var(--graphite-text); margin-bottom:6px; }
  .field input, .field select, .field textarea{ width:100%; min-height:46px; padding:10px 14px; border:1px solid var(--graphite); background:var(--stone); font-weight:400; font-size:15px; color:var(--ink); border-radius:0; }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--navy); outline-offset:1px; border-color:var(--navy); }
  .chips{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px; }
  .chip{ min-height:36px; padding:4px 14px; border:1px solid var(--graphite); background:var(--stone); font-size:13px; font-weight:400; cursor:pointer; color:var(--ink); }
  .chip[aria-pressed="true"]{ background:var(--navy); border-color:var(--navy); color:var(--white); }
  .result-line{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; font-size:13px; color:var(--graphite-text); font-weight:400; padding-bottom:10px; border-bottom:1px solid var(--ink); }
  .catalogue{ width:100%; border-collapse:separate; border-spacing:0; }
  .catalogue thead th{ position:sticky; top:56px; z-index:1; text-align:left; font-size:12px; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; color:var(--graphite-text); padding:12px 14px; background:var(--stone); box-shadow:inset 0 -1px 0 var(--steel); }
  .catalogue td, .catalogue tbody th{ padding:12px 14px; border-bottom:1px solid var(--steel); vertical-align:middle; font-size:14px; font-weight:400; text-align:left; }
  .catalogue tbody th{ font-weight:500; }
  .catalogue td.range{ font-variant-numeric:tabular-nums; }
  .catalogue td.scope-cell{ color:var(--graphite-text); font-size:13px; }
  .catalogue td.act{ text-align:right; width:1%; white-space:nowrap; }
  .tag{ display:inline-block; font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; padding:2px 8px; border:1px solid var(--graphite); color:var(--graphite-text); white-space:nowrap; }
  .tag.site{ border-color:var(--navy); color:var(--navy); }
  .add-btn{ min-height:44px; min-width:88px; padding:6px 14px; font-size:12px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; border:1px solid var(--navy); background:var(--stone); color:var(--navy); cursor:pointer; }
  .add-btn:hover{ background:var(--navy); color:var(--white); }
  .add-btn[aria-pressed="true"]{ background:var(--navy); color:var(--white); }
  .more-row{ padding:16px 0; border-bottom:1px solid var(--steel); }
  .empty{ padding:24px 0; border-bottom:1px solid var(--steel); }
  .empty p{ margin-bottom:10px; }
  @media (max-width:700px){
    .catalogue thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
    .catalogue tr{ display:grid; grid-template-columns:1fr auto; gap:2px 12px; padding:14px 0; border-bottom:1px solid var(--steel); }
    .catalogue td, .catalogue tbody th{ padding:0; border:0; grid-column:1; }
    .catalogue td.act{ grid-column:2; grid-row:1 / span 4; align-self:center; }
  }
  .cat-foot{ margin-top:14px; font-size:13px; color:var(--graphite-text); font-weight:400; }

  /* ---------- Certificate ---------- */
  .cert-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start; }
  @media (max-width:950px){ .cert-grid{ grid-template-columns:1fr; } }
  .record-list{ list-style:none; border-top:1px solid var(--steel); }
  .record-list li{ padding:12px 0; border-bottom:1px solid var(--steel); display:grid; grid-template-columns:32px 1fr; }
  .record-list .num{ color:var(--graphite-text); font-size:13px; font-weight:400; padding-top:2px; }
  .record-list strong{ font-weight:500; display:block; }
  .record-list .d{ display:block; color:var(--graphite-text); font-size:14px; font-weight:400; }
  figure{ margin:0; }
  .caption{ margin-bottom:10px; font-size:13px; color:var(--graphite-text); font-weight:400; }
  .cert{ position:relative; overflow:hidden; background:var(--white); border:1px solid var(--steel); font-size:13px; }  /* white allowed: depicts certificate paper */
  .cert-sample{ position:absolute; left:50%; top:58%; transform:translate(-50%,-50%) rotate(-18deg); white-space:nowrap; pointer-events:none;
                font-size:26px; font-weight:600; letter-spacing:0.18em; color:rgba(176,180,184,0.35); text-transform:uppercase; }
  .cert-head{ background:var(--navy); color:var(--white); border-bottom:2px solid var(--gold); padding:22px 24px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
  .cert-head .logo{ height:40px; }
  .cert-head .eyebrow{ color:var(--gold); margin:0 0 4px; text-align:right; }
  .cert-head .cert-no{ color:var(--steel); font-size:12px; text-align:right; }
  .cert-body{ padding:22px 24px 26px; }
  .cert-id{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px 16px; margin-bottom:20px; }
  .cert-id span{ display:block; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--graphite-text); }
  .cert-id b{ font-weight:400; font-size:14px; }
  @media (max-width:520px){ .cert-id{ grid-template-columns:1fr 1fr; } }
  .cert-table-wrap{ overflow-x:auto; }
  .cert table{ width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; min-width:420px; }
  .cert th{ font-size:12px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--graphite-text); text-align:right; padding:6px 0 8px; border-bottom:1px solid var(--ink); }
  .cert th:first-child, .cert td:first-child{ text-align:left; }
  .cert td{ text-align:right; padding:8px 0; border-bottom:1px solid var(--steel); font-size:14px; font-weight:400; }
  .cert-note{ margin-top:16px; font-size:12px; color:var(--graphite-text); font-weight:400; }

  /* ---------- How it works ---------- */
  .steps{ display:grid; grid-template-columns:repeat(4,1fr); list-style:none; border-top:1px solid var(--steel); }
  @media (max-width:900px){ .steps{ grid-template-columns:1fr 1fr; } }
  @media (max-width:520px){ .steps{ grid-template-columns:1fr; } }
  .steps li{ padding:24px 24px 8px 0; }
  .steps .num{ display:inline-block; font-family:'Prata', serif; font-size:28px; color:var(--navy); padding-bottom:6px; border-bottom:1px solid var(--gold); margin-bottom:14px; }
  .steps h3{ font-family:'Public Sans', sans-serif; font-weight:500; font-size:18px; margin-bottom:6px; }

  /* ---------- Accreditation ---------- */
  .accred-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; }
  @media (max-width:900px){ .accred-grid{ grid-template-columns:1fr; } }
  .status{ border:1px solid var(--graphite); }
  .status div{ display:grid; grid-template-columns:1fr 1.3fr; gap:12px; padding:14px 18px; border-bottom:1px solid var(--graphite); }
  .status div:last-child{ border-bottom:0; }
  .status dt{ font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--steel); }
  .status dd{ color:var(--white); font-weight:400; }

  /* ---------- FAQ ---------- */
  .faq{ max-width:820px; border-top:1px solid var(--steel); }
  .faq details{ border-bottom:1px solid var(--steel); }
  .faq summary{ list-style:none; cursor:pointer; padding:18px 36px 18px 0; position:relative; font-weight:500; font-size:16px; color:var(--ink); }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary::after{ content:"+" / ""; position:absolute; right:4px; top:14px; font-size:22px; font-weight:300; color:var(--navy); }
  .faq details[open] summary::after{ content:"–" / ""; }
  .faq details p{ padding:0 0 20px; max-width:66ch; }

  /* ---------- Quote builder ---------- */
  .quote-grid{ display:grid; grid-template-columns:0.95fr 1.05fr; gap:56px; align-items:start; }
  @media (max-width:950px){ .quote-grid{ grid-template-columns:1fr; } }
  .qlist{ list-style:none; border-top:1px solid var(--ink); }
  .qlist li{ display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--steel); }
  .qlist .qname{ font-weight:500; font-size:14px; }
  .qlist .qmeta{ display:block; font-weight:400; font-size:13px; color:var(--graphite-text); font-variant-numeric:tabular-nums; }
  .stepper{ display:flex; border:1px solid var(--graphite); }
  .stepper button{ width:44px; height:44px; border:0; background:var(--stone); cursor:pointer; font-size:18px; color:var(--navy); }
  .stepper input{ width:52px; height:44px; border:0; border-left:1px solid var(--graphite); border-right:1px solid var(--graphite); background:var(--stone); text-align:center; font-weight:500; font-variant-numeric:tabular-nums; -moz-appearance:textfield; border-radius:0; }
  .stepper input::-webkit-inner-spin-button, .stepper input::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
  .remove{ background:none; border:0; color:var(--graphite-text); font-size:13px; font-weight:400; text-decoration:underline; text-underline-offset:3px; cursor:pointer; min-height:44px; padding:0 4px; }
  .qempty{ display:block !important; padding:20px 0; }
  .qempty a{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .contact-lines{ margin-top:32px; display:grid; gap:12px; }
  .contact-lines span{ display:block; font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--graphite-text); }
  .contact-lines a{ border-bottom:1px solid var(--gold); }
  form.qform{ display:grid; gap:18px; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:560px){ .row2{ grid-template-columns:1fr; } }
  fieldset{ border:0; }
  .radios{ display:flex; flex-wrap:wrap; gap:8px; }
  .radio{ position:relative; }
  .radio input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
  .radio span{ display:inline-flex; align-items:center; min-height:44px; padding:6px 14px; border:1px solid var(--graphite); background:var(--stone); font-size:14px; font-weight:400; }
  .radio input:checked + span{ background:var(--navy); border-color:var(--navy); color:var(--white); }
  .radio input:focus-visible + span{ outline:2px solid var(--navy); outline-offset:2px; }
  .error{ color:var(--ink); font-size:13px; font-weight:500; margin-top:6px; padding-left:10px; border-left:2px solid var(--ink); }
  .actions{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
  .fine{ font-size:13px; color:var(--graphite-text); font-weight:400; }
  .fine a{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .status-msg{ font-size:13px; color:var(--navy); font-weight:500; min-height:1em; }
  .fallback{ border:1px solid var(--graphite); padding:16px; display:grid; gap:10px; }
  .fallback textarea{ width:100%; min-height:180px; padding:10px; border:1px solid var(--graphite); background:var(--stone); font-size:13px; font-family:ui-monospace, Menlo, monospace; border-radius:0; }

  /* ---------- Sticky quote bar ---------- */
  .qbar{ position:fixed; left:24px; bottom:24px; z-index:150; display:none; align-items:center; gap:16px; background:var(--navy); color:var(--white); padding:10px 10px 10px 18px; border-top:1px solid var(--gold); }
  .qbar.show{ display:flex; }
  .qbar span{ font-size:14px; font-weight:400; }
  .qbar .btn{ min-height:40px; padding:8px 16px; font-size:12px; background:var(--stone); color:var(--navy); }
  @media (max-width:600px){ .qbar{ left:16px; right:16px; bottom:16px; justify-content:space-between; } .qbar span{ font-size:13px; } }

  /* ---------- Footer ---------- */
  footer{ padding:72px 0 28px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; margin-bottom:48px; }
  @media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
  .footer-brand{ color:var(--white); }
  .footer-brand .logo{ height:46px; }
  .footer-brand .rule{ width:48px; height:1px; background:var(--gold); margin:30px 0 16px; }
  .footer-brand p{ font-size:13px; color:var(--steel); max-width:34ch; font-weight:400; }
  .footer-h{ font-family:'Public Sans', sans-serif; font-size:11px; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; color:var(--white); margin-bottom:14px; }
  .footer-col ul{ list-style:none; }
  .footer-col li{ margin-bottom:8px; }
  .footer-col a{ font-size:14px; color:var(--steel); font-weight:400; }
  .footer-col a:hover{ color:var(--white); }
  .footer-bottom{ border-top:1px solid var(--graphite); padding-top:22px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:13px; color:var(--steel); font-weight:400; }
  .footer-bottom a{ border-bottom:1px solid var(--gold); }

  /* ---------- WhatsApp float (shown only once a number is configured) ---------- */
  .wa-float{ position:fixed; right:24px; bottom:24px; z-index:160; width:56px; height:56px; background:var(--navy); border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; }
  .wa-float[hidden]{ display:none; }
  .wa-float:hover{ background:var(--navy-dark); }
  .wa-float svg{ width:28px; height:28px; }
  @media (max-width:600px){ .wa-float{ right:16px; bottom:16px; width:52px; height:52px; } .wa-float:not([hidden]) ~ .qbar, body.wa-on .qbar{ right:84px; } }

  @media (forced-colors:active){
    .radio input:checked + span, .chip[aria-pressed="true"], .lang-btn[aria-pressed="true"], .add-btn[aria-pressed="true"]{
      forced-color-adjust:none; background:Highlight; color:HighlightText; border-color:Highlight; }
  }

  /* ---------- Multi-page additions ---------- */
  .nav-links a[aria-current="page"]{ color:var(--navy); border-bottom-color:var(--gold); }
  .cta-count:not(:empty)::before{ content:"· "; }
  .page-head{ padding:120px 0 40px; border-bottom:1px solid var(--steel); }
  .page-head h1{ font-size:38px; line-height:1.15; color:var(--ink); margin-bottom:12px; }
  .page-head p{ max-width:62ch; }
  .crumbs{ font-size:13px; font-weight:400; color:var(--graphite-text); margin-bottom:18px; }
  .crumbs a{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .page-body{ padding:40px 0 96px; }
  .note{ margin-top:20px; font-size:14px; font-weight:400; color:var(--ink); padding-left:12px; border-left:1px solid var(--gold); max-width:66ch; }
  .note a, .inline-link{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .more-links{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
  .next{ list-style:none; border-top:1px solid var(--steel); margin-top:32px; }
  .next li{ padding:10px 0; border-bottom:1px solid var(--steel); font-size:14px; font-weight:400; }
  .accred-short dl{ margin-top:24px; }

  .type-list{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); column-gap:40px; border-top:1px solid var(--steel); }
  @media (max-width:900px){ .type-list{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .type-list{ grid-template-columns:1fr; } }
  .type-list a{ display:flex; justify-content:space-between; gap:12px; padding:14px 0; border-bottom:1px solid var(--steel); font-weight:400; color:var(--ink); }
  .type-list a:hover span:first-child{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .type-list .num{ color:var(--graphite-text); font-size:13px; }
  /* Inner pages open with a short navy band, matching the homepage hero */
  .page-head.on-navy{ border-bottom:1px solid var(--gold); }
  .page-head.on-navy h1{ color:var(--white); }
  .page-head.on-navy p{ color:var(--steel); }
  .page-head.on-navy .crumbs{ color:var(--steel); }
  .page-head.on-navy .crumbs a{ color:var(--stone); }

  /* Who we serve: its own stone section with clickable tiles (overrides the earlier navy styling) */
  .industry-grid{ background:var(--steel); border-color:var(--steel); }
  .industry{ display:flex; flex-direction:column; gap:6px; background:var(--stone); color:var(--ink); padding:22px 20px; transition:box-shadow .2s; }
  .industry:hover{ background:var(--stone); box-shadow:inset 0 0 0 1px var(--navy); }
  .industry strong{ font-size:18px; margin:0; color:var(--ink); }
  .industry .ex{ flex:1; font-size:14px; color:var(--graphite-text); }
  .industry:hover .scope-go{ border-bottom-color:var(--gold); }
  .industry .scope-go{ color:var(--navy); }
  @media (max-width:560px){ .industry{ padding:16px; gap:2px; } .industry .scope-go{ display:none; } }

  /* ---------- Line icons ---------- */
  .ico{ width:28px; height:28px; fill:none; stroke:var(--navy); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
  .ico-sm{ width:22px; height:22px; }
  .industry .ico{ margin-bottom:10px; }
  .type-list a{ align-items:center; }
  .type-list .tname{ flex:1; }
  .type-list a:hover .tname{ color:var(--navy); border-bottom:1px solid var(--gold); }
  .type-list a:hover span:first-child{ border-bottom:0; }
  .page-ico .ico{ width:36px; height:36px; stroke:var(--gold); margin-bottom:14px; }
  @media (max-width:560px){ .industry{ flex-direction:row; flex-wrap:wrap; align-items:center; column-gap:12px; } .industry .ico{ margin:0; } .industry strong{ flex:1; } .industry .ex{ flex-basis:100%; padding-left:40px; } }
  /* WhatsApp button: official WhatsApp green circle, white glyph, no border.
     Deliberate exception to the six-colour palette — Meta's brand rules require the official colours,
     and customers recognise it instantly on both navy and stone backgrounds. */
  .wa-float{ background:#25D366; border:0; border-radius:50%; }
  .wa-float:hover{ background:#1EBE5A; }
  .wa-float:focus-visible{ outline:2px solid var(--navy); outline-offset:3px; }

  /* Legal pages */
  .legal h2, .legal ul{ max-width:66ch; }
  .legal .meta{ font-size:13px; font-weight:400; color:var(--graphite-text); margin-bottom:8px; }
  .legal h2{ font-family:'Public Sans', sans-serif; font-weight:500; font-size:18px; margin:32px 0 8px; padding-top:14px; border-top:1px solid var(--steel); }
  .legal p, .legal li{ margin-bottom:10px; max-width:66ch; }
  .legal ul{ padding-left:20px; }
  .legal a{ color:var(--navy); border-bottom:1px solid var(--gold); }

  /* Makes strip */
  .makes{ padding:40px 0; border-top:1px solid var(--steel); border-bottom:1px solid var(--steel); }
  .makes-list{ list-style:none; display:flex; flex-wrap:wrap; gap:14px 36px; align-items:baseline; margin:4px 0 14px; }
  .makes-list li{ font-family:'Prata', Georgia, serif; font-size:20px; color:var(--graphite-text); letter-spacing:0.02em; white-space:nowrap; }
  /* Industry pages */
  .lead-in{ font-size:16px; max-width:64ch; }
  .sub-h{ font-size:24px; line-height:1.25; margin:8px 0 20px; color:var(--ink); }
  .needs{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0 40px; border-top:1px solid var(--steel); margin-bottom:40px; }
  @media (max-width:800px){ .needs{ grid-template-columns:1fr; } }
  .needs li{ display:flex; gap:14px; padding:20px 0; border-bottom:1px solid var(--steel); }
  .needs h3{ font-family:'Public Sans', sans-serif; font-weight:500; font-size:18px; margin-bottom:4px; }
  .needs p{ font-size:14px; font-weight:400; color:var(--ink); }
  /* Attachments + send states */
  .file-list{ list-style:none; }
  .file-list li{ display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid var(--steel); font-size:14px; font-weight:400; }
  .file-list .num{ color:var(--graphite-text); font-size:13px; }
  .field input[type=file]{ padding:9px 10px; }
  .hp{ position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
  .sent{ border:1px solid var(--navy); border-left:3px solid var(--gold); padding:16px 18px; }
  .sent h3{ font-family:'Public Sans', sans-serif; font-weight:600; font-size:16px; margin-bottom:4px; }
  .btn[disabled]{ cursor:progress; }

  /* Manufacturer logos: shown as supplied (no recolouring), uniform height */
  .makes-list li.has-logo{ display:flex; align-items:center; }
  .makes-list img{ height:36px; width:auto; max-width:160px; object-fit:contain; display:block; }
