:root{
  --paper:#faf9f5; --paper-2:#f4f2ea; --ink:#141413; --ink-2:#3d3c38;
  --muted:#706e67; --faint:#706e67; --rule:#e0ddd2; --hair:#cdc9bc;
  --or:#d46540; --or-deep:#a04b2c;
  --fs:"Instrument Sans",-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --fr:"Newsreader",Georgia,"Songti SC",serif;
  --fm:"JetBrains Mono",ui-monospace,monospace;
  --measure:880px;
}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){
  --paper:#12120f; --paper-2:#1a1a16; --ink:#f0eee6; --ink-2:#cbc8bd;
  --muted:#98958b; --faint:#85827a; --rule:#3a382f; --hair:#4a473e;
  --or:#e08663; --or-deep:#f0a183;
}}

/* CJK faces are loaded only on the pages that need them; the stack keeps the Latin
   face first so numerals, currency and product names stay in the brand faces. */
:root[lang="zh-Hant"]{
  --fs:"Instrument Sans","Noto Sans TC","PingFang TC","Microsoft JhengHei","Hiragino Sans CNS",sans-serif;
  --fr:"Newsreader","Noto Serif TC","Songti TC","PingFang TC",Georgia,serif;
}
:root[lang="zh-Hans"]{
  --fs:"Instrument Sans","Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --fr:"Newsreader","Noto Serif SC","Songti SC","PingFang SC",Georgia,serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font:400 17.5px/1.55 var(--fr);
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-optical-sizing:auto;
  overflow-wrap:break-word;
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

h1,h2,h3,h4,.lbl,nav,th,button{font-family:var(--fs)}
h1,h2,h3,h4{font-weight:530;letter-spacing:-.017em;line-height:1.12;color:var(--ink)}
h1{margin:0 0 clamp(18px,2.1vw,26px);text-wrap:balance}
h2{text-wrap:balance}
h2{margin:0 0 18px}
h3{margin:0 0 9px}
h4{margin:0 0 7px}
h1{font-size:clamp(34px,5.3vw,58px);line-height:1.04;letter-spacing:-.028em;max-width:16ch}
h2{font-size:clamp(25px,2.9vw,34px);letter-spacing:-.022em;line-height:1.14}
h3{font-size:21px;letter-spacing:-.012em;line-height:1.24}
h4{font-size:16.5px;letter-spacing:-.005em;line-height:1.3}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
strong{font-weight:600}
em{font-style:italic}
.ac{font-style:normal;color:var(--or)}

a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:.19em;text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--or-deep)}
:focus-visible{outline:2px solid var(--or);outline-offset:3px;border-radius:1px}

ul,ol{margin:0 0 1.05em;padding-left:1.15em}
li{margin:0 0 .38em}
li:last-child{margin-bottom:0}

/* ---- layout ------------------------------------------------------------ */
.wrap{max-width:1170px;margin:0 auto;padding:0 clamp(20px,4.5vw,40px)}
.measure{max-width:var(--measure)}
.skip{position:absolute;left:-9999px;top:0;z-index:9;background:var(--paper);color:var(--ink);
  padding:12px 18px;border:1px solid var(--ink);font-family:var(--fs);font-size:15.5px}
.skip:focus{left:12px;top:12px}

.bleed{border:0;border-top:1px solid var(--rule);margin:0}
.sec{padding:clamp(52px,7vw,92px) 0}
.sec-tight{padding:clamp(38px,5vw,60px) 0}

.lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:var(--muted);margin:0 0 18px}
.dek{font-size:18.5px;line-height:1.5;color:var(--ink-2);margin:0 0 1.05em}
.sm{font-size:15.5px;line-height:1.5}
.micro{font-family:var(--fs);font-size:13px;line-height:1.5;color:var(--muted);max-width:var(--measure)}
.src{font-family:var(--fs);font-size:13px;line-height:1.5;color:var(--muted);margin:14px 0 0;max-width:var(--measure)}
.lic{font-family:var(--fs);font-size:14px;line-height:1.55;color:var(--ink-2);
  margin:20px 0 0;padding-left:14px;border-left:2px solid var(--hair);max-width:var(--measure)}

/* ---- header ------------------------------------------------------------ */
.hd{border-bottom:1px solid var(--rule)}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:20px;
  min-height:74px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.lock{display:inline-flex;align-items:center;gap:9px;text-decoration:none;padding:6px 0;min-height:38px}
.lock img{display:block;width:26px;height:26px}
.wm{font-family:var(--fs);font-size:16.5px;font-weight:560;letter-spacing:-.012em;color:var(--ink);white-space:nowrap}
.nv{display:flex;align-items:center;gap:clamp(14px,2vw,28px);flex-wrap:wrap;margin:0;padding:0;list-style:none}
.nv li{margin:0}
.nv a{font-family:var(--fs);font-size:15.5px;color:var(--ink-2);text-decoration:none;
  display:inline-flex;align-items:center;min-height:26px;padding:2px 0;border-bottom:1px solid transparent}
.nv a:hover{color:var(--ink);border-bottom-color:var(--hair)}
.nv a[aria-current=page]{color:var(--ink);border-bottom-color:var(--or)}

/* ---- hero -------------------------------------------------------------- */
.hero{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);
  gap:clamp(30px,5vw,68px);align-items:start;padding:clamp(46px,6.5vw,84px) 0 clamp(44px,6vw,76px)}
.hero-t p{max-width:34em}
.hero-a{border-left:1px solid var(--hair);padding-left:clamp(20px,2.4vw,30px)}
.hero-a .lbl{margin-bottom:14px}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:34px}
  .hero-a{border-left:0;padding-left:0;border-top:1px solid var(--hair);padding-top:26px}
}

/* ---- figure tables ----------------------------------------------------- */
.tbl{max-width:var(--measure);font-family:var(--fs);font-size:16.5px}
.tr{display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  padding:15px 0;border-bottom:1px solid var(--rule)}
.tbl-head .lb,.tbl-head .ph{font-size:11px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.tbl-head{padding-bottom:11px;border-bottom-color:var(--hair)}
.lb{color:var(--ink)}
.tr-sum{border-bottom:1px solid var(--ink);font-weight:600}
.tr-final{border-bottom:3px double var(--ink);font-weight:600}
.tr-sum .lb,.tr-final .lb{font-weight:600}
.tr-final .p,.tr-sum .p{font-weight:500}
.tr-note .lb,.tr-note .p{color:var(--muted)}
.ph{text-align:right}
.p{font-family:var(--fm);font-size:15.5px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.p .q{color:var(--muted);padding-right:.42em}
.p .dash{color:var(--faint)}
.tbl-plain .tr{border-bottom:0;padding:11px 0}
.tbl-plain .tbl-head{padding-bottom:6px}
.tbl-plain{font-size:15.5px}

@supports (grid-template-columns: subgrid){
  @media(min-width:721px){
    .tbl[role=table]{display:grid;
      grid-template-columns:minmax(0,1fr) max-content max-content max-content max-content}
    .tbl [role=row]{grid-column:1/-1;display:grid;grid-template-columns:subgrid;
      column-gap:0;align-items:baseline}
    .tbl .tr .p{display:contents}
    .tbl .tr .p.pt{display:block;grid-column:2/-1;text-align:right}
    .tbl .tr .p>.q{text-align:right;padding-right:.42em}
    .tbl .tr .p>.lo{text-align:right}
    .tbl .tr .p>.dash{text-align:center;padding:0 .38em;color:var(--faint)}
    .tbl .tr .p>.hi{text-align:left;white-space:nowrap;padding-left:.06em}
    .tbl .tr .ph{grid-column:2/-1}
    .tbl .tr .lb{padding-right:28px}
  }
}
@media(max-width:720px){
  .tr{flex-direction:column;align-items:flex-start;gap:4px}
  .tbl-head{flex-direction:row;align-items:baseline}
  .p{font-size:16.5px}
}

/* ---- plain rule lists -------------------------------------------------- */
.rl{list-style:none;padding:0;margin:0;max-width:var(--measure);font-family:var(--fs);font-size:16.5px}
.rl>li{padding:15px 0;border-bottom:1px solid var(--rule);margin:0;line-height:1.45}
.rl strong{display:block;font-weight:600;margin-bottom:3px}
.rl strong a{display:inline-flex;align-items:center;min-height:24px}
.rl .rl-x{color:var(--ink-2);font-size:15.5px}

/* ---- services / stages ------------------------------------------------- */
.svc{max-width:var(--measure);border-top:1px solid var(--hair)}
.svc>section{padding:30px 0;border-bottom:1px solid var(--rule)}
.svc h3{margin-bottom:9px}
.svc .tag{font-family:var(--fm);font-size:13px;color:var(--or-deep);
  font-variant-numeric:tabular-nums;display:block;margin-bottom:12px}
.svc .ex{font-family:var(--fs);font-size:15.5px;color:var(--ink-2);margin:12px 0 0}
.svc .ex b{font-weight:600;color:var(--ink)}

.stage{max-width:var(--measure);border-top:1px solid var(--hair)}
.stage>section{padding-bottom:46px}
.stage h2{position:sticky;top:0;z-index:2;background:var(--paper);
  padding:22px 0 14px;border-bottom:1px solid var(--rule);margin-bottom:24px;scroll-margin-top:0}
.stage .no{font-family:var(--fm);font-size:13px;color:var(--or-deep);letter-spacing:.06em;
  display:block;margin-bottom:6px;font-weight:400}

/* ---- FAQ --------------------------------------------------------------- */
.faq{max-width:var(--measure);border-top:1px solid var(--hair)}
.faq>div{padding:26px 0;border-bottom:1px solid var(--rule)}
.faq h3{font-size:18.5px;margin-bottom:10px}
.faq p{font-size:16.5px}

/* ---- callouts / CTA ---------------------------------------------------- */
.cta{max-width:var(--measure);background:var(--paper-2);border:1px solid var(--rule);
  padding:clamp(26px,3.4vw,40px)}
.cta h2{margin-bottom:12px}
.cta-note{margin-top:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;
  padding:13px 26px;font-family:var(--fs);font-size:16.5px;font-weight:560;
  background:var(--ink);color:var(--paper);text-decoration:none;border:1px solid var(--ink)}
.btn:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn-2{background:transparent;color:var(--ink);border-color:var(--hair)}
.btn-2:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
.btns{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:22px}
.btns .micro{margin:0}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,56px);max-width:var(--measure)}
.grid2-t{margin-top:38px}
@media(max-width:720px){.grid2{grid-template-columns:1fr;gap:30px}}
.prose{max-width:var(--measure)}
.prose h3{margin:34px 0 10px}
.prose h2+p{margin-top:0}

/* ---- footer ------------------------------------------------------------ */
.ft{border-top:1px solid var(--rule);background:var(--paper-2);padding:clamp(40px,5vw,60px) 0 clamp(34px,4vw,46px);margin-top:0}
.ft-top{display:flex;flex-wrap:wrap;gap:26px 48px;justify-content:space-between;align-items:flex-start;
  padding-bottom:30px;border-bottom:1px solid var(--rule)}
.ft-nav{display:flex;flex-wrap:wrap;gap:10px 26px;margin:0;padding:0;list-style:none}
.ft-nav li{margin:0}
.ft-nav a{font-family:var(--fs);font-size:15.5px;color:var(--ink-2);text-decoration:none;
  display:inline-flex;align-items:center;min-height:26px}
.ft-nav a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:.19em}
.ft-c{font-family:var(--fs);font-size:15.5px;color:var(--ink-2);margin:0}
.ft-c a{color:var(--ink-2)}
.dis{font-family:var(--fs);font-size:13px;line-height:1.62;color:var(--muted);
  max-width:78ch;margin:26px 0 0}

/* ---- the big number + magnitude bars (landing) ------------------------- */
.stat{font-family:var(--fs);font-weight:530;font-size:clamp(58px,9.4vw,116px);
  line-height:.9;letter-spacing:-.045em;color:var(--ink);margin:0 0 6px;
  font-variant-numeric:tabular-nums}
.stat-x{font-family:var(--fs);font-size:18.5px;line-height:1.45;color:var(--ink-2);
  max-width:26ch;margin:0}
.stat-w{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);
  gap:clamp(24px,4vw,64px);align-items:end;max-width:var(--measure);margin-bottom:38px}
@media(max-width:720px){.stat-w{grid-template-columns:1fr;gap:14px;align-items:start}}

.bars{max-width:var(--measure);border-top:1px solid var(--hair);margin-top:30px}
.bar{padding:20px 0;border-bottom:1px solid var(--rule)}
.bar-top{display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  font-family:var(--fs);font-size:16.5px;margin-bottom:10px}
.bar-lb{color:var(--ink)}
.bar-v{font-family:var(--fm);font-size:16.5px;font-variant-numeric:tabular-nums;
  color:var(--ink);white-space:nowrap}
.bar-track{display:block;height:14px;background:var(--paper-2);border:1px solid var(--rule)}
.bar-fill{--w:0%;display:block;height:100%;width:var(--w);background:var(--ink-2)}
.bar-ours .bar-fill{background:var(--or)}
.bar-ours .bar-lb,.bar-ours .bar-v{font-weight:600}

/* ---- compact landing lists --------------------------------------------- */
.menu{max-width:var(--measure);border-top:1px solid var(--hair)}
.menu>a{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:18px;
  align-items:baseline;padding:22px 0;border-bottom:1px solid var(--rule);
  text-decoration:none;min-height:24px}
.menu>a:hover .menu-t{text-decoration:underline;text-underline-offset:.19em}
.menu-t{font-family:var(--fs);font-size:21px;letter-spacing:-.012em;color:var(--ink)}
.menu-d{font-family:var(--fs);font-size:15.5px;line-height:1.5;color:var(--ink-2);
  grid-column:1/-1;margin:6px 0 0;max-width:54ch}
.menu-p{font-family:var(--fm);font-size:15.5px;font-variant-numeric:tabular-nums;
  color:var(--ink);white-space:nowrap}
@media(max-width:600px){.menu>a{grid-template-columns:1fr;gap:4px}}

/* ---- coverage lists (services) ----------------------------------------- */
.cov{list-style:none;padding:0;margin:16px 0 0;font-family:var(--fs);font-size:15.5px;
  display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}
.cov li{margin:0;padding-left:16px;position:relative;color:var(--ink-2);line-height:1.45}
.cov li::before{content:"";position:absolute;left:0;top:.64em;width:7px;height:1px;
  background:var(--hair)}
@media(max-width:600px){.cov{grid-template-columns:1fr}}

/* ---- line chart -------------------------------------------------------- */

/* ---- reasons list ------------------------------------------------------ */

/* ---- language switcher, form, courtesy translations -------------------- */
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
.hd-r{display:flex;align-items:center;gap:clamp(14px,2.4vw,30px);flex-wrap:wrap}

/* A quiet control. Someone reading in their own language should not have to look
   at four alternatives they do not want. */
.lg{position:relative}
.lg summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  list-style:none;padding:5px 9px;min-height:32px;border:1px solid transparent;
  font-family:var(--fs);font-size:14px;color:var(--muted)}
.lg summary::-webkit-details-marker{display:none}
.lg summary::marker{content:""}
.lg summary:hover,.lg[open] summary{color:var(--ink-2);border-color:var(--hair)}
.lg-i{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:1.4}
.lg-c{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}
.lg[open] .lg-c{transform:rotate(180deg)}
.lg-n{white-space:nowrap}
.lg ul{position:absolute;right:0;top:calc(100% + 5px);z-index:30;min-width:172px;
  margin:0;padding:5px 0;list-style:none;background:var(--paper);
  border:1px solid var(--hair);box-shadow:0 8px 26px rgba(0,0,0,.12)}
.lg li{margin:0}
.lg ul a{display:flex;align-items:center;min-height:38px;padding:7px 15px;
  font-family:var(--fs);font-size:14.5px;color:var(--ink-2);text-decoration:none}
.lg ul a:hover{background:var(--paper-2);color:var(--ink)}
.lg ul a[aria-current=true]{color:var(--ink);font-weight:560}

/* ---- enquiry form ----------------------------------------------------- */
.frm{max-width:520px;margin-top:24px}
.fld{margin-bottom:18px}
.fld label{display:block;font-family:var(--fs);font-size:14.5px;font-weight:560;
  color:var(--ink-2);margin-bottom:7px}
.req{color:var(--or-deep);margin-left:3px}
.fld input,.fld textarea{display:block;width:100%;
  font:400 16px/1.5 var(--fs);color:var(--ink);background:var(--paper);
  border:1px solid var(--hair);padding:11px 12px;min-height:46px;border-radius:0}
.fld textarea{min-height:124px;resize:vertical}
.fld input:focus-visible,.fld textarea:focus-visible{outline:2px solid var(--or);
  outline-offset:1px;border-color:var(--ink-2)}
button.btn{cursor:pointer;appearance:none;-webkit-appearance:none;line-height:1.2}
.frm-n{margin-top:15px;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lg-flat ul{display:flex;flex-wrap:wrap;gap:4px 20px;list-style:none;margin:0;padding:0;
  align-items:center}
.lg-flat li{margin:0}
.lg-flat a{font-family:var(--fs);font-size:14px;color:var(--ink-2);text-decoration:none;
  display:inline-flex;align-items:center;min-height:26px;padding:2px 0;
  border-bottom:1px solid transparent}
.lg-flat a:hover{color:var(--ink);border-bottom-color:var(--hair)}
.lg-flat a[aria-current=true]{color:var(--ink);font-weight:560;border-bottom-color:var(--or)}
.ft-lang{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding-bottom:26px;margin-bottom:26px;border-bottom:1px solid var(--rule)}
.ft-lang .lbl{margin:0}
@media(max-width:640px){.lg summary{padding:5px 6px}.lg-n{font-size:13.5px}
  .lg ul{right:auto;left:0}}
.lic-t{display:block;margin-top:7px;color:var(--muted)}
.dis-t{margin-top:16px}
.dis-note{display:block;margin-bottom:5px;color:var(--faint)}
:root[lang="zh-Hant"] body,:root[lang="zh-Hans"] body{line-height:1.72;letter-spacing:0}
:root[lang="zh-Hant"] h1,:root[lang="zh-Hans"] h1{letter-spacing:-.01em;line-height:1.24}
:root[lang="zh-Hant"] h2,:root[lang="zh-Hans"] h2{letter-spacing:-.005em;line-height:1.34}
:root[lang="zh-Hant"] h3,:root[lang="zh-Hans"] h3{letter-spacing:0;line-height:1.4}
:root[lang="zh-Hant"] .dek,:root[lang="zh-Hans"] .dek{line-height:1.68}
:root[lang="zh-Hant"] .lbl,:root[lang="zh-Hans"] .lbl{letter-spacing:.09em}
:root[lang="zh-Hant"] .stat,:root[lang="zh-Hans"] .stat{letter-spacing:-.03em}

/* ---- KPI tiles and the illustrative notice ----------------------------- */


/* ---- floating enquiry panel ------------------------------------------- */
/* Austere on purpose: a squared control in the brand ink, not a coloured bubble. */
.fab{position:fixed;right:20px;bottom:20px;z-index:80}
.fab-b{display:inline-flex;align-items:center;gap:9px;cursor:pointer;list-style:none;
  padding:13px 20px;min-height:48px;font-family:var(--fs);font-size:15.5px;font-weight:560;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  box-shadow:0 6px 20px rgba(0,0,0,.16)}
.fab-b::-webkit-details-marker{display:none}
.fab-b::marker{content:""}
.fab-b:hover{background:var(--ink-2);border-color:var(--ink-2)}
.fab-b:focus-visible{outline:2px solid var(--or);outline-offset:3px}
.fab-i{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linejoin:round}
.fab-x{display:none}
.fab[open] .fab-t,.fab[open] .fab-i{display:none}
.fab[open] .fab-x{display:block;width:17px;height:17px;fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round}
.fab[open] .fab-b{padding:13px}
.fab-p{position:absolute;right:0;bottom:calc(100% + 10px);width:min(370px,calc(100vw - 40px));
  max-height:min(560px,calc(100vh - 140px));overflow-y:auto;
  padding:22px;background:var(--paper);border:1px solid var(--hair);
  box-shadow:0 14px 44px rgba(0,0,0,.20)}
.fab-h{margin:0;font-family:var(--fs);font-size:15.5px;font-weight:560;color:var(--ink)}
.fab-p .frm{margin-top:18px;max-width:none}
.fab-p .fld{margin-bottom:14px}
.fab-p .btns{margin-top:2px}
@media(max-width:600px){
  .fab{right:14px;bottom:14px}
  .fab-b{padding:12px 16px;font-size:15px}
  .fab-p{padding:18px}
}
/* the footer disclaimer must not sit under the control */
.ft{padding-bottom:96px}
/* ---- process timeline -------------------------------------------------- */
.tl{list-style:none;margin:26px 0 0;padding:0;max-width:var(--measure);
  border-left:1px solid var(--rule)}
.tl-i{display:flex;gap:18px;padding:0 0 26px 22px;margin-left:-1px;
  border-left:1px solid transparent;position:relative}
.tl-i::before{content:"";position:absolute;left:-4.5px;top:7px;width:8px;height:8px;
  background:var(--or);border-radius:50%}
.tl-i:last-child{padding-bottom:0}
.tl-d{flex:none;min-width:74px;font-family:var(--fm);font-size:13px;font-weight:500;
  letter-spacing:.02em;color:var(--or-deep);padding-top:2px}
.tl-c{display:block}
.tl-c strong{display:block;font-family:var(--fs);font-size:16px;font-weight:600;
  color:var(--ink);margin-bottom:4px}
.tl-x{display:block;font-family:var(--fs);font-size:14.5px;line-height:1.55;
  color:var(--ink-2)}
@media(max-width:560px){
  .tl-i{flex-direction:column;gap:5px}
  .tl-d{min-width:0}
}

/* ---- before and after -------------------------------------------------- */
.sw{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px;
  max-width:var(--measure)}
.sw-c{padding:22px;border:1px solid var(--rule);background:var(--paper-2)}
.sw-was{border-style:dashed}
.sw-now{border-color:var(--hair);background:var(--paper)}
.sw-b{display:none}
.sw-h{margin:0 0 14px;font-family:var(--fs);font-size:11px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.sw-now .sw-h{color:var(--or-deep)}
.sw-l{list-style:none;margin:0;padding:0}
.sw-l li{font-family:var(--fs);font-size:14.5px;line-height:1.55;color:var(--ink-2);
  padding:9px 0 9px 20px;border-top:1px solid var(--rule);position:relative}
.sw-l li:first-child{border-top:0;padding-top:0}
.sw-l li::before{content:"";position:absolute;left:2px;top:17px;width:9px;height:1px;
  background:var(--hair)}
.sw-l li:first-child::before{top:8px}
.sw-now .sw-l li{color:var(--ink)}
.sw-now .sw-l li::before{background:var(--or)}
@media(max-width:620px){.sw{grid-template-columns:1fr}}

/* ---- service matrix ---------------------------------------------------- */
.mx-w{overflow-x:auto;margin-top:26px;max-width:var(--measure)}
.mx{border-collapse:collapse;width:100%;min-width:520px;font-family:var(--fs);
  position:relative}
.mx caption{text-align:left}
.mx th,.mx td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule);
  vertical-align:middle}
.mx thead th{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--ink);
  border-bottom:1px solid var(--hair);white-space:nowrap}
.mx tbody th{font-size:14.5px;font-weight:400;color:var(--ink-2);line-height:1.45}
.mx td{text-align:center;width:1%;white-space:nowrap;position:relative}
.mx-y{color:var(--or-deep);font-size:16px}
.mx-n{color:var(--hair);font-size:16px}
/* ---- cookie consent bar ------------------------------------------------ */
/* Hidden until the loader decides one is needed, so someone with JavaScript off is
   never asked and never measured. */
.cb{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--paper);
  border-top:1px solid var(--hair);box-shadow:0 -6px 24px rgba(0,0,0,.10)}
.cb[hidden]{display:none}
.cb-in{max-width:1170px;margin:0 auto;padding:18px clamp(20px,4.5vw,40px);
  display:flex;align-items:center;gap:clamp(16px,3vw,34px);flex-wrap:wrap}
.cb-t{margin:0;flex:1 1 380px;font-family:var(--fs);font-size:14.5px;line-height:1.55;
  color:var(--ink-2)}
.cb-t a{color:var(--ink)}
.cb-b{display:flex;gap:12px;flex:none}
.cb .btn{min-height:44px;padding:11px 22px;font-size:15.5px}
.cb-y{order:1}
.cb-n{order:2}
/* the footer link that reopens the choice; it is a normal footer link until the
   loader takes it over, so a visitor without JavaScript still lands on the page
   that explains what would have been measured */
.cb-re{cursor:pointer}
/* the floating control steps up so the bar never sits on top of it */
.cb-on .fab{bottom:calc(20px + 92px)}
@media(max-width:600px){
  .cb-in{padding:16px 18px;gap:14px}
  .cb-b{width:100%}
  .cb .btn{flex:1}
  .cb-on .fab{bottom:calc(14px + 152px)}
}
/* ---- distribution ------------------------------------------------------ */
.dist{max-width:var(--measure);margin-top:26px}
.dist-r{display:grid;grid-template-columns:1fr 104px;gap:5px 16px;align-items:center;
  padding:15px 0;border-top:1px solid var(--rule)}
.dist-r:first-child{border-top:0}
.dist-l{grid-column:1;margin:0;font-family:var(--fs);font-size:14.5px;color:var(--ink-2)}
.dist-v{grid-column:2;grid-row:1 / span 2;margin:0;text-align:right;
  font-family:var(--fm);font-size:19px;color:var(--ink-2)}
.dist-t{grid-column:1;height:8px;background:var(--paper-2);border:1px solid var(--rule)}
.dist-f{display:block;height:100%;background:var(--hair)}
.dist-us .dist-l{color:var(--ink);font-weight:560}
.dist-us .dist-v{color:var(--or-deep);font-weight:500}
.dist-us .dist-f{background:var(--or)}
/* ---- header menu ------------------------------------------------------- */
/* On a wide screen the nav is a plain row and the <details> wrapper does nothing:
   the summary is hidden and the list is forced open. Below 860px it becomes a real
   menu, which stops the header eating four lines of a phone screen. */
.mn{display:contents}
.mn-b{display:none}
/* flex:none so the nav never shrinks below its own content. Without it the CJK
   locales wrapped one character per line at 1440px, which made every nav link a
   16px-wide target and broke SC 2.5.8. */
.mn>nav{display:block;flex:none}
.nv a{white-space:nowrap}
/* Chrome 131 and later hide a closed <details> through ::details-content, and a
   display rule on the child does not override content-visibility. Without this the
   desktop nav measured 0px wide and the site had no navigation at all in Chrome,
   while older engines were fine. Scoped to the width where the menu is not used. */
@media(min-width:861px){
  .mn::details-content{content-visibility:visible;display:contents}
}

@media(max-width:860px){
  .mn{display:block;position:relative}
  .mn-b{display:inline-flex;align-items:center;gap:8px;cursor:pointer;list-style:none;
    padding:7px 11px;min-height:40px;border:1px solid var(--hair);
    font-family:var(--fs);font-size:14.5px;font-weight:560;color:var(--ink-2)}
  .mn-b::-webkit-details-marker{display:none}
  .mn-b::marker{content:""}
  .mn-b:hover,.mn[open] .mn-b{color:var(--ink)}
  .mn-b:focus-visible{outline:2px solid var(--or);outline-offset:2px}
  .mn-i{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;
    stroke-linecap:round}
  .mn>nav{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:210px;
    background:var(--paper);border:1px solid var(--hair);
    box-shadow:0 8px 26px rgba(0,0,0,.12);padding:5px 0}
  .mn .nv{display:block}
  .mn .nv a{display:flex;align-items:center;min-height:42px;padding:8px 16px;
    border-bottom:0;font-size:15.5px}
  .mn .nv a[aria-current=page]{color:var(--ink);font-weight:560;
    box-shadow:inset 2px 0 0 var(--or)}
  .hd-in{gap:12px}
  .hd-r{gap:10px;flex-wrap:nowrap}
}
/* ---- on this page ------------------------------------------------------ */
.toc{max-width:var(--measure);margin:0 auto;padding:26px clamp(20px,4.5vw,40px) 0}
.toc .lbl{margin-bottom:12px}
.toc ul{display:flex;flex-wrap:wrap;gap:10px 26px;list-style:none;margin:0;padding:0}
.toc li{margin:0}
.toc a{font-family:var(--fs);font-size:14.5px;color:var(--ink-2);text-decoration:none;
  display:inline-flex;align-items:center;min-height:26px;
  border-bottom:1px solid var(--hair)}
.toc a:hover{color:var(--ink);border-bottom-color:var(--or)}
h2[id]{scroll-margin-top:24px}
@media(min-width:900px){.toc{padding-left:0;padding-right:0;
  max-width:calc(var(--measure) + 0px);margin-left:auto;margin-right:auto}}
/* ---- three-column fact table ------------------------------------------- */
.t3-w{overflow-x:auto;margin-top:26px;max-width:var(--measure)}
.t3{border-collapse:collapse;width:100%;min-width:540px;font-family:var(--fs);
  position:relative}
.t3 th,.t3 td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--rule);
  vertical-align:top;font-size:14.5px;line-height:1.5}
.t3 thead th{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--ink);
  border-bottom:1px solid var(--hair);white-space:nowrap}
.t3 tbody th{font-weight:560;color:var(--ink);width:32%}
.t3 td{color:var(--ink-2)}
