/* PropAnalyse design system (2026-10-30 redesign)
   White + navy ink + one brand blue (from the logo mark). Hairline rules, tabular figures everywhere.
   Type: Instrument Sans (OFL, self-hosted, variable 400-700). Icons: Phosphor (MIT).
   Radius rule: controls 6px, panels 10px, tables and rules square. */
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --bg:#ffffff;--bg-2:#f5f6f8;--bg-3:#eceef3;
  --ink:#0b1730;--ink-2:#34415e;--mute:#5a6680;
  --rule:#e3e6ec;--rule-2:#cfd4de;--ctl:#7a859c;
  --accent:#3424f8;--accent-2:#2516d4;--accent-tint:#efeeff;--on-accent:#ffffff;
  --focus:#3424f8;--bg-elev:#ffffff;
  --f-ui:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-disp:var(--f-ui);
  --f-code:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --ease-out:cubic-bezier(.23,1,.32,1);--ease-io:cubic-bezier(.77,0,.175,1);
  --hdr:60px;--gut:16px;--r:6px;--r-box:10px;
  --shadow:0 1px 2px rgba(11,23,48,.06),0 4px 16px -6px rgba(11,23,48,.10);
  color-scheme:light dark;
}
/* dark: layered slate-navy, not black. bg < elev (header/sticky bars) < panel < raised; text >= 4.5:1 on every surface */
@media (prefers-color-scheme:dark){:root{
  --bg:#121b2e;--bg-elev:#18233a;--bg-2:#1b2740;--bg-3:#243150;
  --ink:#eef1f8;--ink-2:#c8cfdf;--mute:#a3adc4;
  --rule:#2a3754;--rule-2:#3a4968;--ctl:#7885a3;
  --accent:#9a94ff;--accent-2:#b3aeff;--accent-tint:rgba(154,148,255,.16);--on-accent:#0e1526;
  --focus:#b3aeff;--shadow:0 1px 2px rgba(3,8,20,.35),0 8px 24px -10px rgba(3,8,20,.55);
}}
@media (min-width:768px){:root{--gut:32px}}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scrollbar-color:var(--rule-2) var(--bg);scroll-padding-top:calc(var(--hdr) + 16px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 var(--f-ui);font-variant-numeric:tabular-nums lining-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
::selection{background:var(--accent);color:var(--on-accent)}
a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--rule-2);transition:color 150ms ease,text-decoration-color 150ms ease}
@media (hover:hover){a:hover{text-decoration-color:currentColor}}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:2px}
h1,h2,h3{font-family:var(--f-disp);font-weight:600;letter-spacing:-.02em;line-height:1.1;margin:0;text-wrap:balance;color:var(--ink)}
p{margin:0}
.n{font-variant-numeric:tabular-nums lining-nums}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.small{font-size:13px;color:var(--mute)}
.small a,.legend a,.prose a,.gsec a,.answer a,.lede a,.fine a,.note a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent)}
@media (hover:hover){.small a:hover,.legend a:hover,.prose a:hover,.gsec a:hover,.answer a:hover,.lede a:hover,.fine a:hover,.note a:hover{text-decoration-color:currentColor}}
.muted{color:var(--mute)}
.wrap{max-width:1360px;margin:0 auto;padding:0 var(--gut)}
.i{width:16px;height:16px;flex:none}
code{font-family:var(--f-code);font-size:.88em;background:var(--bg-2);border:1px solid var(--rule);border-radius:4px;padding:1px 5px}
abbr{text-decoration:none}

.skip{position:absolute;left:-999px;top:8px;z-index:60;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:var(--r)}
.skip:focus{left:8px}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg-elev) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--rule)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.top{background:var(--bg-elev)}}
@media (prefers-color-scheme:dark){.top{box-shadow:0 1px 0 rgba(3,8,20,.25)}.dset,.scorebox,.take,.cout,.qres,.note,.guide .answer{box-shadow:var(--shadow)}}
.bar{display:flex;align-items:center;gap:24px;height:var(--hdr)}
.brand{display:inline-flex;align-items:center;text-decoration:none;flex:none;line-height:0;border-radius:4px}
.brand picture{display:block}
.logo{display:block;height:28px;width:auto}
@media (max-width:639px){.logo{height:26px}}
.fbrand .logo{height:26px}
.nav{display:none;margin-left:auto}
.nav a{position:relative;display:block;padding:8px 11px;text-decoration:none;font-size:14px;font-weight:500;color:var(--ink-2);border-radius:var(--r);transition:color 150ms ease,background-color 150ms ease}
@media (hover:hover){.nav a:hover{color:var(--ink);background:var(--bg-2)}}
.nav a[aria-current]{color:var(--ink)}
.menu{margin-left:auto;display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--bg);color:var(--ink);cursor:pointer;transition:transform 160ms var(--ease-out),background-color 150ms ease}
.menu:active{transform:scale(.96)}
.menu .i{width:20px;height:20px;grid-area:1/1}.menu .i-close{display:none}
.menu[aria-expanded=true] .i-open{display:none}.menu[aria-expanded=true] .i-close{display:block}
@media (max-width:899px){
  body.nav-open .nav{display:block;position:absolute;left:0;right:0;top:var(--hdr);background:var(--bg);border-bottom:1px solid var(--rule);padding:4px var(--gut) 16px;box-shadow:var(--shadow);animation:navin 200ms var(--ease-out)}
  body.nav-open .nav a{padding:14px 0;font-size:16px;border-radius:0;border-bottom:1px solid var(--rule)}
  body.nav-open .nav a[aria-current]{color:var(--accent)}
}
@keyframes navin{from{opacity:0;transform:translateY(-6px)}}
@media (min-width:900px){
  .nav{display:flex;gap:2px}.menu{display:none}
  .nav a[aria-current]::after{content:"";position:absolute;left:11px;right:11px;bottom:-11px;height:2px;background:var(--accent);border-radius:2px}
}

/* ---------- page heads ---------- */
.mast{padding-top:44px;padding-bottom:36px;display:grid;gap:32px;align-items:end}
@media (min-width:1024px){.mast{grid-template-columns:minmax(0,1.35fr) minmax(360px,1fr);gap:64px;padding-top:64px;padding-bottom:44px}}
.mast h1{font-size:clamp(34px,4.6vw,58px);font-weight:600;letter-spacing:-.032em;line-height:1.02;max-width:16ch}
.lede{font-size:17px;line-height:1.55;color:var(--ink-2);max-width:60ch;margin-top:14px}
.mast .lede{font-size:18px;margin-top:18px}
.hcta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:28px}
.facts{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:16px;font-size:13.5px;color:var(--mute)}
.facts b{color:var(--ink);font-weight:600}
/* dataset panel: the trust cue, real figures only */
.dset{border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:4px 20px 14px}
.dset dl{display:grid;grid-template-columns:1fr 1fr;margin:0}
.dset dl>div{padding:14px 0 12px;border-bottom:1px solid var(--rule)}
.dset dl>div:nth-child(odd){padding-right:16px;border-right:1px solid var(--rule)}
.dset dl>div:nth-child(even){padding-left:16px}
.dset dt{font-size:12.5px;color:var(--mute);margin-bottom:2px}
.dset dd{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}
.dset dd small{font-size:14px;font-weight:500;color:var(--mute);margin-left:2px;letter-spacing:0}
.dset .src-line{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding-top:12px;font-size:13px;color:var(--mute)}
.dset .src-line a{color:var(--accent);text-decoration:none;font-weight:500;border-radius:4px}
@media (hover:hover){.dset .src-line a:hover{text-decoration:underline}}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--mute);padding-top:20px}
.crumbs a{color:var(--mute);text-decoration:none}
@media (hover:hover){.crumbs a:hover{color:var(--ink);text-decoration:underline}}
.crumbs .sep{color:var(--rule-2)}
.ph{padding:16px 0 28px}
.ph h1{font-size:clamp(30px,3.8vw,46px);letter-spacing:-.028em}
.vs{font-style:normal;font-family:var(--f-ui);font-weight:500;font-size:.5em;color:var(--mute);vertical-align:middle;letter-spacing:0;padding:0 .25em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;background:var(--accent);color:var(--on-accent);text-decoration:none;font:600 14.5px/1 var(--f-ui);border:1px solid var(--accent);border-radius:var(--r);cursor:pointer;white-space:nowrap;box-shadow:0 1px 2px rgba(11,23,48,.12);transition:transform 160ms var(--ease-out),background-color 150ms ease,border-color 150ms ease}
.btn:active{transform:scale(.97)}
@media (hover:hover){.btn:hover{background:var(--accent-2);border-color:var(--accent-2)}}
.btn.line{background:var(--bg);color:var(--ink);border-color:var(--rule-2);box-shadow:none}
@media (hover:hover){.btn.line:hover{background:var(--bg-2);border-color:var(--ctl)}}
.btn.sm{height:34px;padding:0 14px;font-size:13.5px}
.btn .i{width:15px;height:15px}
.linkbtn{justify-self:start;background:none;border:0;padding:0 2px;height:36px;color:var(--accent);font:500 14px var(--f-ui);text-decoration:none;cursor:pointer;border-radius:4px}
@media (hover:hover){.linkbtn:hover{text-decoration:underline;text-underline-offset:3px}}
.visit{display:inline-flex;align-items:center;gap:4px;font-size:13.5px;font-weight:600;white-space:nowrap;text-decoration:none;padding:6px 0;color:var(--accent);border-radius:4px}
.visit .i{width:13px;height:13px;transition:transform 160ms var(--ease-out)}
@media (hover:hover){.visit:hover{text-decoration:underline}.visit:hover .i{transform:translate(1px,-1px)}}
.btn.visit{color:var(--on-accent);padding:0 18px;font-size:14.5px}
@media (hover:hover){.btn.visit:hover{text-decoration:none}}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:600;margin-top:16px;color:var(--accent);text-decoration:none;border-radius:4px}
.more .i{transition:transform 160ms var(--ease-out)}
@media (hover:hover){.more:hover{text-decoration:underline}.more:hover .i{transform:translateX(2px)}}

/* ---------- filters ---------- */
.filters{position:sticky;top:var(--hdr);z-index:30;background:var(--bg-elev);border-bottom:1px solid var(--rule);margin:0 calc(-1 * var(--gut));padding:12px var(--gut)}
.frow{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px}
.q{position:relative;flex:1 1 180px;max-width:280px;align-self:flex-end}
.q .i{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--mute);pointer-events:none}
input[type=search],select{height:36px;border:1px solid var(--rule-2);border-radius:var(--r);background-color:var(--bg);color:var(--ink);font:400 14px var(--f-ui);padding:0 10px;transition:border-color 150ms ease,box-shadow 150ms ease}
input[type=search]{width:100%;padding-left:34px;-webkit-appearance:none;appearance:none}
input::placeholder{color:var(--mute);opacity:1}
input[type=search]::-webkit-search-cancel-button{filter:grayscale(1);cursor:pointer}
select{-webkit-appearance:none;appearance:none;padding-right:30px;cursor:pointer;max-width:100%;
  background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);
  background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat}
@media (hover:hover){input[type=search]:hover,select:hover{border-color:var(--ctl)}}
input[type=search]:focus-visible,select:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.fl{display:flex;flex-direction:column;gap:4px;min-width:0}
.fl>span{font-size:12px;font-weight:500;color:var(--mute);line-height:1.2}
.fprim{display:none}
.fbtn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--bg);color:var(--ink);font:500 14px var(--f-ui);cursor:pointer;transition:transform 160ms var(--ease-out),background-color 150ms ease,border-color 150ms ease}
.fbtn:active{transform:scale(.97)}
@media (hover:hover){.fbtn:hover{border-color:var(--ctl)}}
.fbtn[aria-expanded=true]{background:var(--bg-3);border-color:var(--ctl)}
.fbtn b{background:var(--accent);color:var(--on-accent);font-size:11.5px;font-weight:600;padding:1px 6px;line-height:1.4;border-radius:10px}
.count{flex-basis:100%;font-size:13px;color:var(--mute)}
.fmore{display:none;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;padding-top:12px}
.filters.open .fmore{display:flex}
.tog{position:relative;display:inline-flex}
.tog input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.tog span{display:inline-flex;align-items:center;height:36px;padding:0 12px;border:1px solid var(--rule-2);border-radius:var(--r);font-size:14px;white-space:nowrap;background:var(--bg);transition:transform 160ms var(--ease-out),background-color 150ms ease,border-color 150ms ease,color 150ms ease}
.tog input:checked+span{background:var(--accent-tint);border-color:var(--accent);color:var(--accent)}
.tog input:checked+span::before{content:"";width:8px;height:5px;border:solid currentColor;border-width:0 0 2px 2px;transform:rotate(-45deg) translateY(-1px);margin-right:8px}
.tog input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.tog:active span{transform:scale(.97)}
@media (hover:hover){.tog:hover span{border-color:var(--ctl)}}
@media (max-width:899px){
  .filters.open{position:static}
  .filters.open .fprim{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;flex-basis:100%;order:3;padding-top:4px}
  .filters.open .fmore{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
  .filters.open .fmore .tog span{width:100%}
  .q{max-width:none}
  .count{order:4}
}
@media (min-width:900px){
  .fprim{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
  .count{flex-basis:auto;margin-left:auto;align-self:center}
  .fbtn{order:2}
}

/* ---------- firm table ---------- */
.tablewrap{overflow-x:auto;margin:0 calc(-1 * var(--gut));padding:0 var(--gut);-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%}
.firms{font-size:13.5px}
.firms th{font:500 12px/1.25 var(--f-ui);color:var(--mute);text-align:left;padding:14px 8px 9px;border-bottom:1px solid var(--rule-2);white-space:nowrap;vertical-align:bottom}
.firms th.num{text-align:right}
.firms th[data-sort]{padding:0}
.firms th.num[data-sort]{text-align:right}
.firms .sort{all:unset;box-sizing:border-box;display:inline-flex;align-items:flex-end;gap:5px;padding:14px 8px 9px;cursor:pointer;color:inherit;font:inherit;white-space:nowrap;border-radius:4px;transition:color 150ms ease}
.firms th.num .sort{flex-direction:row-reverse}
.firms .sort:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.firms .si{width:7px;height:10px;flex:none;margin-bottom:1px}
.firms .si path{fill:var(--rule-2);transition:fill 150ms ease}
.firms th[aria-sort] .sort{color:var(--ink);font-weight:600}
.firms th[aria-sort=ascending] .su,.firms th[aria-sort=descending] .sd{fill:var(--accent)}
.firms th[aria-sort=ascending] .sd,.firms th[aria-sort=descending] .su{fill:transparent}
@media (hover:hover){.firms .sort:hover{color:var(--ink)}.firms .sort:hover .si path{fill:var(--ink-2)}}
@media (min-width:1280px){
  .tablewrap{overflow:visible}
  .firms thead th{position:sticky;top:calc(var(--hdr) + var(--fh,0px));z-index:5;background:var(--bg-elev);box-shadow:inset 0 -1px 0 var(--rule-2)}
}
.firms td{padding:13px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
.firms th:first-child,.firms td:first-child{padding-left:0}
.firms th:last-child,.firms td:last-child{padding-right:0}
.firms tbody tr{position:relative;transition:background-color 150ms ease}
@media (hover:hover) and (pointer:fine){.firms tbody tr:hover{background:var(--bg-2)}.firms tbody tr:hover .c-firm b{color:var(--accent)}}
.num{text-align:right}
.c-rk{width:30px;color:var(--mute);font-size:12px;padding-top:16px!important}
.c-firm{min-width:150px}
.c-firm a{display:flex;flex-direction:column;gap:2px;text-decoration:none}
.c-firm a::after{content:"";position:absolute;inset:0}
.c-firm b{font-size:15.5px;font-weight:600;letter-spacing:-.01em;line-height:1.25;transition:color 150ms ease}
.c-firm small{display:block;font-size:12px;color:var(--mute);max-width:165px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
td small{display:block;font-size:12px;color:var(--mute);margin-top:3px;line-height:1.35}
.c-dd small{max-width:160px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.c-mkt{min-width:120px;max-width:160px;color:var(--ink-2)}.c-plat{min-width:100px;max-width:130px;color:var(--ink-2)}
.c-types{color:var(--mute)}
.c-pay{min-width:90px}
.c-split{min-width:84px;max-width:150px}
.c-fee,.c-max{font-weight:500}
.c-code,.c-act{position:relative;z-index:1}
.c-code{min-width:120px}
.c-act{text-align:right}
.plus{color:var(--mute);font-size:12px;white-space:nowrap}
.cv{max-width:170px;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:768px) and (max-width:1439px){.c-plat{display:none}}

/* score: figure first, then a slim trackless bar on the 0-10 scale */
.sc{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.sc>b{font-size:15px;font-weight:600;min-width:2.4ch}
.ticks{position:relative;display:inline-block;flex:none;width:36px;height:4px;border-radius:2px;overflow:hidden;background:var(--bg-3)}
.ticks::after{content:"";position:absolute;inset:0;border-radius:2px;background:var(--accent);transform-origin:left;transform:scaleX(var(--s))}
.ticks.sm{width:32px;height:3px}
.ticks.lg{width:100%;height:4px}

.tp{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.tp .i{width:12px;height:12px;color:var(--ink-2)}
.tp b{font-weight:600}
.tp small{display:inline;margin:0 0 0 4px}
.tp.off{color:var(--mute);font-size:12.5px}

/* missing data: one treatment everywhere */
.na{position:relative;display:inline-block;width:12px;height:1px;background:var(--ctl);vertical-align:middle}
.nil{color:var(--mute)}

.code{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 8px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--bg-2);color:var(--ink);font:500 12.5px var(--f-code);letter-spacing:.02em;cursor:pointer;transition:transform 160ms var(--ease-out),background-color 150ms ease,border-color 150ms ease,color 150ms ease}
.code .i{width:13px;height:13px;color:var(--mute);transition:color 150ms ease}
.code:active{transform:scale(.97)}
@media (hover:hover){.code:hover{border-color:var(--ctl);background:var(--bg)}}
.code.ok{background:var(--accent-tint);border-color:var(--accent);color:var(--accent)}
.code.ok .i{color:var(--accent)}

.empty{padding:40px 0;border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}
.empty p{font-size:16px;color:var(--ink-2)}
.empty b{color:var(--ink)}
.legend{display:flex;flex-wrap:wrap;gap:4px 24px;padding:14px 0 0;font-size:12.5px;color:var(--mute)}
.legend .na{margin-right:6px}

@media (max-width:767px){
  .tablewrap{overflow:visible}
  .firms{display:block;font-size:14px}
  .firms thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .firms tbody{display:block;border-top:1px solid var(--rule-2)}
  .firms tr{display:grid;grid-template-columns:22px repeat(4,minmax(0,1fr));grid-template-areas:"rk firm firm firm sc" "rk firm firm firm tp" "rk fee split dd pay" "rk mkt mkt mkt act" "rk code code code code";gap:6px 10px;padding:16px 0 14px;border-bottom:1px solid var(--rule)}
  .firms td{display:block;padding:0!important;border:0;min-width:0;max-width:none}
  .c-rk{grid-area:rk;padding-top:3px!important}
  .c-firm{grid-area:firm}.c-firm b{font-size:17px}.c-firm small{max-width:none}
  .c-sc{grid-area:sc;justify-self:end;text-align:right}
  .c-sc .sc{flex-direction:row-reverse;gap:8px}.c-sc .sc>b{font-size:18px}
  .c-fee{grid-area:fee}.c-split{grid-area:split}.c-dd{grid-area:dd}.c-pay{grid-area:pay;white-space:normal}
  .c-fee,.c-split,.c-dd,.c-pay{text-align:left;font-size:13.5px;overflow-wrap:anywhere}
  .c-fee,.c-split,.c-dd,.c-pay{margin-top:8px}
  .c-fee::before,.c-split::before,.c-dd::before,.c-pay::before{content:attr(data-m);display:block;font:500 11.5px/1.3 var(--f-ui);color:var(--mute);margin-bottom:3px}
  .c-dd small{display:none}
  .c-mkt{grid-area:mkt;font-size:13px;color:var(--mute);align-self:center;margin-top:6px}
  .c-tp{grid-area:tp;justify-self:end;font-size:12.5px;color:var(--ink-2)}
  .c-tp .tp small{display:none}
  .c-code{grid-area:code}.c-code:has(> .na){display:none!important}
  .c-code .cv{display:none!important}
  .c-act{grid-area:act;justify-self:end;align-self:center;margin-top:6px}
  .c-max,.c-plat{display:none!important}
  .c-mkt .c-types{display:inline;margin:0}.c-mkt .c-types::before{content:" / "}
}

/* ---------- home lower ---------- */
.lower{display:grid;gap:48px;padding-top:72px}
.lower h2,.block>h2{font-size:21px;margin-bottom:14px}
@media (min-width:1024px){.lower{grid-template-columns:3fr 2fr;gap:72px}}
.lists,.pairs,.shortlists,.deals{list-style:none;margin:0;padding:0}
.lists{display:grid;border-top:1px solid var(--rule-2)}
@media (min-width:640px){.lists{grid-template-columns:1fr 1fr;column-gap:32px}}
.lists a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:15px}
.lists a span{transition:color 150ms ease}
.lists a b{font-size:13px;font-weight:500;color:var(--mute)}
.pairs{border-top:1px solid var(--rule-2)}
.pairs a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:15px}
.pairs a span{transition:color 150ms ease}
.pairs i{font:500 12px var(--f-ui);font-style:normal;color:var(--mute)}
@media (hover:hover){.lists a:hover span,.pairs a:hover span{color:var(--accent)}}

/* ---------- firm profile ---------- */
.phead{padding:16px 0 32px;border-bottom:1px solid var(--rule)}
.phead h1{font-size:clamp(34px,4.8vw,56px);letter-spacing:-.032em;line-height:1.02}
.meta{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:14px;font-size:13.5px;color:var(--mute)}
.meta a{color:var(--accent);text-decoration:none;border-radius:4px}
@media (hover:hover){.meta a:hover{text-decoration:underline}}
.phead .lede{margin-top:18px}
.ctas{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.deal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;color:var(--mute)}
.deal .cv{display:inline!important;font-size:13px}
.deal.none{font-size:13.5px}
.pgrid{display:grid;grid-template-areas:"side" "main";gap:40px;padding-top:32px}
.pmain{grid-area:main;min-width:0}.side{grid-area:side;min-width:0}
@media (min-width:1024px){.pgrid{grid-template-areas:"main side";grid-template-columns:minmax(0,1fr) 320px;gap:64px}.side{position:sticky;top:calc(var(--hdr) + 24px);align-self:start}}
.scorebox{border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:20px 20px 16px}
.scorebox .big{font-size:56px;font-weight:600;line-height:1;letter-spacing:-.035em}
.scorebox .big small{font-size:18px;font-weight:500;color:var(--mute);letter-spacing:0;margin-left:4px}
.scorebox .ticks.lg{margin:16px 0 12px;background:var(--bg-3)}
.rk{font-size:14px;color:var(--ink-2)}
.comp{margin:16px 0 14px;border-top:1px solid var(--rule)}
.comp div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule)}
.comp dt{font-size:14px}.comp dt span{color:var(--mute);font-size:12px;margin-left:4px}
.comp dd{margin:0;display:flex;align-items:center;gap:10px}.comp dd b{font-weight:600;min-width:3ch;text-align:right}
.cmpl{margin-top:28px}.cmpl h2{font-size:16px;margin-bottom:8px}
.cmpl ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-2)}
.cmpl a{display:block;padding:10px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-size:14.5px}
.cmpl i{font:500 12px var(--f-ui);font-style:normal;color:var(--mute);margin-right:6px}
@media (hover:hover){.cmpl a:hover{color:var(--accent)}}
.spec{display:grid;gap:16px;padding:28px 0 32px;border-top:1px solid var(--rule)}
.pmain>.spec:first-child{border-top:0;padding-top:0}
.spec h2{font-size:18px}
.spec dl{margin:0;display:grid;gap:18px 40px}
.spec dt{font-size:12.5px;color:var(--mute);margin-bottom:3px}
.spec dd{margin:0;font-size:15px;line-height:1.5;overflow-wrap:anywhere}
@media (min-width:768px){.spec{grid-template-columns:200px minmax(0,1fr);gap:24px}.spec dl{grid-template-columns:1fr 1fr}}
.block{padding:32px 0;border-top:1px solid var(--rule)}
.prog{padding:24px 0;border-top:1px solid var(--rule)}
.block>h2+.prog{border-top:0;padding-top:4px}
.prog h3{font-size:18px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.tag{font:500 12px/1 var(--f-ui);color:var(--ink-2);background:var(--bg-2);border:1px solid var(--rule);border-radius:4px;padding:4px 7px;letter-spacing:0}
.pbody{display:grid;gap:16px;margin-top:16px}
@media (min-width:1100px){.pbody{grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}.pbody .ladder{grid-column:2;grid-row:1/span 2}}
.strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:0}
@media (min-width:640px){.strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
.strip dt{font-size:12.5px;color:var(--mute);margin-bottom:2px}
.strip dd{margin:0;font-size:15px;overflow-wrap:anywhere}
.ddt{font-size:13.5px;color:var(--ink-2)}.ddt span{color:var(--mute);margin-right:6px}
.ladder{font-size:14px;width:100%}
.ladder th{font:500 12px var(--f-ui);color:var(--mute);padding:6px 0 7px 12px;border-bottom:1px solid var(--rule-2)}
.ladder td{padding:7px 0 7px 12px;border-bottom:1px solid var(--rule)}
.ladder th:first-child,.ladder td:first-child{padding-left:0}
.faq details{border-bottom:1px solid var(--rule)}
.faq details:first-of-type{border-top:1px solid var(--rule)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;list-style:none;padding:16px 0;font-weight:600;font-size:15.5px;border-radius:4px;transition:color 150ms ease}
@media (hover:hover){.faq summary:hover{color:var(--accent)}}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;transition:transform 200ms var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details[open] p{animation:faqin 200ms var(--ease-out)}
@keyframes faqin{from{opacity:0;transform:translateY(-4px)}}
.faq p{padding:0 0 18px;color:var(--ink-2);max-width:68ch}
.src{margin:16px 0 0;padding-left:20px;font:400 13px/1.6 var(--f-ui);color:var(--mute)}
.src li{padding:5px 0}
.src a{word-break:break-all;display:inline-block;min-height:24px;color:var(--ink-2)}
.notes{margin-top:16px;max-width:80ch}

/* ---------- compare ---------- */
.cgrid{display:grid;gap:32px}
@media (min-width:1100px){.cgrid{grid-template-columns:300px minmax(0,1fr);gap:56px}.take{position:sticky;top:calc(var(--hdr) + 24px);align-self:start}}
.take{border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:18px 20px 20px}
.take h2{font-size:17px;margin-bottom:10px}
.verdict{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.verdict li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:14.5px}
.tally{display:flex;flex-direction:column;gap:4px;margin-top:16px;font-size:14px}
.tally .muted{font-size:12.5px}
.note{border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:14px 16px;margin:20px 0 0;font-size:14.5px;max-width:80ch}
.cmp{table-layout:fixed;font-size:15px}
.cmp thead{position:sticky;top:var(--hdr);z-index:10;background:var(--bg-elev)}
.cmp thead td,.cmp thead th{padding:14px 12px 12px;border-bottom:1px solid var(--rule-2);text-align:left;vertical-align:bottom}
.cmp thead td{width:26%}
.fn{display:block;font-size:clamp(19px,2.2vw,26px);font-weight:600;letter-spacing:-.02em;line-height:1.1;text-decoration:none;transition:color 150ms ease}
@media (hover:hover){.fn:hover{color:var(--accent)}}
.hs{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:14px}
.cmp tbody th{font:400 13.5px/1.4 var(--f-ui);color:var(--mute);text-align:left;padding:12px 12px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.cmp tbody td{padding:12px;border-bottom:1px solid var(--rule);vertical-align:top;overflow-wrap:anywhere}
.cmp tbody tr{transition:background-color 150ms ease}
@media (hover:hover) and (pointer:fine){.cmp tbody tr:hover{background:var(--bg-2)}}
.cmp td .v{display:inline}
.cmp td.win .v{color:var(--accent);font-weight:600;background:var(--accent-tint);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:2px 6px;margin-left:-6px;border-radius:4px}
.cmp td.win .v .nil,.cmp td.win small{color:var(--ink-2)}
.cmp td.win .tp .i{color:var(--accent)}
.cmp tfoot td{padding:20px 12px 0;border:0}
.cmp tfoot .btn{width:100%}
@media (max-width:639px){
  .cmp,.cmp tbody,.cmp tfoot{display:block}
  .cmp thead{display:block}
  .cmp tr{display:grid;grid-template-columns:1fr 1fr}
  .cmp thead td{display:none}
  .cmp thead th{padding:12px 8px 10px 0}
  .cmp tbody th{grid-column:1/-1;padding:12px 0 2px;border:0;font-size:12.5px}
  .cmp tbody td{padding:2px 8px 12px 0;font-size:14.5px}
  .cmp tfoot td:first-child{display:none}
  .cmp tfoot td{padding:16px 4px 0 0}
  .cmp tfoot .btn{padding:0 10px;font-size:14px}
}
.picker{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:20px 0 24px;border-top:1px solid var(--rule)}
.picker .fl{flex:1 1 200px}
.picker select{height:42px;font-size:15px;width:100%}
.picker .vs{font-size:13px;padding-bottom:13px}
#live:not(:empty){margin-bottom:32px}
.pgroups{display:grid;gap:32px}
@media (min-width:900px){.pgroups{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pgroups h3{font-size:15px;margin-bottom:8px;font-weight:600;letter-spacing:0}

/* ---------- discounts / shortlists ---------- */
.deals{border-top:1px solid var(--rule-2)}
.dl{display:grid;gap:10px 24px;padding:20px 0;border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;align-items:center}
.dn{text-decoration:none;display:flex;flex-direction:column;gap:2px;grid-column:1/-1}
.dn b{font-size:18px;font-weight:600;letter-spacing:-.015em}
.dn small{font-size:12.5px;color:var(--mute)}
.dv{font-size:15.5px;color:var(--ink-2);grid-column:1/-1}
.dc{display:flex;align-items:center;gap:10px}.dc small{font-size:12px;color:var(--mute)}
.dl .sc{display:none}
.dl .visit{justify-self:end}
@media (min-width:900px){.dl{grid-template-columns:minmax(200px,1.1fr) minmax(0,1.6fr) 220px 110px 100px}.dn,.dv{grid-column:auto}.dl .sc{display:inline-flex}}
.inline-list{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:15px}
.shortlists{border-top:1px solid var(--rule-2)}
.shortlists a{display:grid;grid-template-columns:1fr auto 20px;gap:4px 24px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.shortlists a>b{font-size:19px;font-weight:600;letter-spacing:-.015em;grid-column:1;transition:color 150ms ease}
.shortlists a>span:not(.cnt){grid-column:1;grid-row:2;color:var(--ink-2);font-size:14.5px}
.shortlists .cnt{grid-column:2;grid-row:1/span 2;align-self:center;font-size:13px;color:var(--mute);white-space:nowrap}
.shortlists .cnt b{font-size:19px;color:var(--ink);font-weight:600;margin-right:4px}
.shortlists .i{grid-column:3;grid-row:1/span 2;align-self:center;color:var(--mute);transition:transform 160ms var(--ease-out),color 150ms ease}
@media (hover:hover){.shortlists a:hover>b{color:var(--accent)}.shortlists a:hover .i{transform:translateX(3px);color:var(--accent)}}

/* ---------- prose ---------- */
.prose{max-width:70ch;padding-bottom:16px}
.prose h1{font-size:clamp(30px,3.8vw,44px);letter-spacing:-.028em;padding:16px 0 8px}
.prose h2{font-size:21px;margin:44px 0 12px}
.prose p{font-size:16px;line-height:1.7;margin:0 0 16px;color:var(--ink-2)}
.prose .small{font-size:13.5px}
table.mini{font-size:14px;margin:8px 0 24px}
table.mini th{font:500 12px var(--f-ui);color:var(--mute);text-align:left;padding:8px 12px 8px 0;border-bottom:1px solid var(--rule-2)}
table.mini td{padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
table.mini tbody tr{transition:background-color 150ms ease}
@media (hover:hover) and (pointer:fine){table.mini tbody tr:hover{background:var(--bg-2)}}
table.mini th.num,table.mini td.num{text-align:right}
table.mini td a{color:var(--ink);font-weight:500;text-decoration:none}
@media (hover:hover){table.mini td a:hover{color:var(--accent);text-decoration:underline}}
.log td:first-child a{font-weight:600}
/* form controls: boundaries >= 3:1 against their surface (WCAG 1.4.11) in both schemes */
input[type=search],select,input[type=number],.fbtn,.tog span,.opt span,.btn.line,.menu,.code{border-color:var(--ctl)}
@media (hover:hover){input[type=search]:hover,select:hover,.fbtn:hover,.tog:hover span,.opt:hover span,.btn.line:hover,.code:hover{border-color:var(--ink-2)}}
.tog input:checked+span,.opt input:checked+span,.code.ok{border-color:var(--accent)}
input[type=search]:focus-visible,select:focus-visible,input[type=number]:focus-visible{border-color:var(--accent)}
/* generated ranking tables (EN guides + /zh/): stacked cards on phones, same pattern as the main firm table */
@media (max-width:639px){
  .tablewrap:has(> table.gt){overflow:visible}
  table.gt{display:block;margin-top:4px}
  table.gt thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  table.gt tbody{display:block;border-top:1px solid var(--rule-2)}
  table.gt tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;padding:14px 0 10px;border-bottom:1px solid var(--rule)}
  table.gt tr:has(> .gt-rk){grid-template-columns:24px repeat(2,minmax(0,1fr))}
  table.gt td,table.gt td.num{display:block;padding:4px 0;border:0;text-align:left;min-width:0;max-width:none;overflow-wrap:anywhere}
  table.gt td::before{content:attr(data-label);display:block;font:500 11.5px/1.3 var(--f-ui);color:var(--mute);margin-bottom:2px}
  table.gt .gt-rk{grid-column:1;grid-row:1 / span 12;color:var(--mute);font-size:13px;padding-top:2px}
  table.gt .gt-rk::before,table.gt .gt-firm::before{content:none}
  table.gt .gt-firm{grid-column:1/-1;grid-row:1;font-size:17px;font-weight:600;padding-bottom:6px}
  table.gt tr:has(> .gt-rk) .gt-firm{grid-column:2/-1}
  /* PA score shares the top line with the firm name, right-aligned */
  table.gt tr:has(> .gt-sc) .gt-firm{grid-column:1}
  table.gt tr:has(> .gt-rk):has(> .gt-sc) .gt-firm{grid-column:2}
  table.gt td.gt-sc{grid-column:-2;grid-row:1;justify-self:end;text-align:right;font-size:18px;padding-bottom:6px}
  table.gt .gt-sc::before{content:none}
  table.gt .gt-sc b{font-weight:600}
  table.gt .gt-firm a{color:var(--ink);font-weight:600;text-decoration:none}
}
.cmpl-v{display:inline-flex;align-items:center;gap:10px}

/* ---------- footer ---------- */
.foot{margin-top:96px;border-top:1px solid var(--rule);background:var(--bg-2);padding:44px 0 32px}
.fgrid{display:grid;gap:32px}
@media (min-width:900px){.fgrid{grid-template-columns:1.2fr 1fr 1.4fr;gap:48px}}
.fbrand p{margin-top:12px;color:var(--ink-2);font-size:14px;max-width:34ch}
.foot h2{font:600 13px var(--f-ui);color:var(--ink);letter-spacing:0;margin-bottom:12px}
.foot ul{list-style:none;margin:0;padding:0;columns:2;column-gap:24px}
.foot li{padding:3px 0;font-size:14px}
.foot li a{text-decoration:none;color:var(--ink-2)}
@media (hover:hover){.foot li a:hover{color:var(--accent)}}
.foot .fgrid>div>p{font-size:14px;color:var(--ink-2);max-width:52ch}
.fine{margin-top:32px;padding-top:20px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--mute)}
.fine p{max-width:110ch}
.fmeta{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:12px}

/* ---------- 404 ---------- */
.nf{padding-top:72px;padding-bottom:96px}
.nf .big{font-size:88px;font-weight:600;letter-spacing:-.045em;line-height:1;color:var(--accent)}
.nf h1{font-size:clamp(28px,4vw,42px);margin-top:16px}
.nf .lede{margin-bottom:24px}

/* ---------- motion: one-time reveal; JS adds .pre only to blocks that start below the fold ---------- */
.rv{transition:opacity 420ms var(--ease-out),transform 420ms var(--ease-out)}
.rv.pre{opacity:0;transform:translateY(10px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important}
  .rv{transition:opacity 200ms ease}.rv.pre{transform:none}
  .btn:active,.fbtn:active,.menu:active,.code:active,.tog:active span,.opt:active span{transform:none}
  .visit:hover .i,.more:hover .i,.shortlists a:hover .i{transform:none}
  .faq summary::after{transition:none}
}

/* ---------- reviews, offers, crypto, news, tools, quiz, guides ---------- */
.nowrap{white-space:nowrap}
.verdict-box{border-top:0;padding-top:0}
.vtext{font-size:16.5px;line-height:1.6;max-width:68ch;color:var(--ink)}
.pc{display:grid;gap:24px;margin-top:8px}
@media (min-width:768px){.pc{grid-template-columns:1fr 1fr;gap:40px}}
.pc h3{font-size:14px;font-weight:600;letter-spacing:0;padding-bottom:8px;border-bottom:1px solid var(--rule-2)}
.pc ul{list-style:none;margin:0;padding:0}
.pc li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--rule);font-size:14.5px;line-height:1.45}
.pc li .i{width:14px;height:14px;margin-top:3px}
.pros .i{color:var(--accent)}
.cons .i{color:var(--mute)}
.matrix td.lo{background:var(--accent-tint);color:var(--accent);font-weight:600}
.calc-link{margin:-16px 0 24px}
.clink{margin:20px 0 0}.clink .more{margin-top:0}
table.mini small{display:block;font-size:12px;color:var(--mute);margin-top:2px}
table.mini .c-firm a{text-decoration:none}table.mini .c-firm b{font-weight:600}
table.mini td.wide{min-width:22ch;max-width:44ch}
.changes .was{color:var(--mute);text-decoration:line-through;text-decoration-color:var(--rule-2)}
.changes .now{font-weight:500}
.changes small.kind{font:500 11.5px var(--f-ui);color:var(--mute)}
.cday h2{display:flex;align-items:baseline;gap:12px;font-size:20px;margin-bottom:12px}.cday .cnt{font:400 13px var(--f-ui);color:var(--mute)}
.ctas .btn .i{margin-right:2px}
.newsf{padding:16px 0;border-top:1px solid var(--rule)}.newsf .fl{flex:0 1 260px}
.calc{display:grid;gap:24px;border-top:1px solid var(--rule);padding-top:24px}
@media (min-width:900px){.calc{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:48px}}
.cform{display:grid;gap:16px}
@media (min-width:600px){.cform{grid-template-columns:1fr 1fr}}
.cform .fl small{font-size:12px;color:var(--mute)}
.cform select,.cform input[type=number]{height:42px;font-size:15px;width:100%}
input[type=number]{border:1px solid var(--rule-2);border-radius:var(--r);background:var(--bg);color:var(--ink);font:400 15px var(--f-ui);padding:0 10px;-moz-appearance:textfield;transition:border-color 150ms ease,box-shadow 150ms ease}
input[type=number]:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
input[type=number]::-webkit-inner-spin-button{opacity:.4}
.ninp{position:relative;display:block}.ninp i{position:absolute;right:30px;top:50%;transform:translateY(-50%);font:400 12.5px var(--f-ui);font-style:normal;color:var(--mute);pointer-events:none}
.cform .tog{align-self:end;min-height:42px}
.cout{position:relative;border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:6px 18px 18px}
@media (min-width:900px){.cout{position:sticky;top:calc(var(--hdr) + 24px);align-self:start}}
.res{margin:0}
.res>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule)}
.res dt{font-size:14px;color:var(--ink-2)}.res dd{margin:0;font:600 17px var(--f-ui)}
.res .hl{background:var(--bg);border:1px solid var(--rule);border-radius:var(--r);padding:14px 12px;margin:8px -8px}.res .hl dd{font-size:22px;color:var(--accent)}
.res dd.neg{color:var(--ink);text-decoration:underline wavy var(--ctl) 1px;text-underline-offset:5px}
.cout .small{margin-top:12px}
.gauge{height:6px;background:var(--bg-3);margin-top:16px;border-radius:3px;overflow:hidden}
.gauge i{display:block;height:100%;width:calc(var(--w,1) * 100%);background:var(--accent);transition:width 250ms var(--ease-out)}
.quiz{display:grid;gap:32px;border-top:1px solid var(--rule);padding-top:24px}
@media (min-width:1000px){.quiz{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr);gap:56px}}
.qf{border:0;margin:0 0 24px;padding:0}
.qf legend{font-weight:600;font-size:18px;letter-spacing:-.015em;margin-bottom:10px;padding:0}
.qf legend .n{font:500 12px var(--f-ui);color:var(--mute);margin-right:8px;vertical-align:middle}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative;cursor:pointer}
.opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.opt span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--rule-2);border-radius:var(--r);font-size:14.5px;background:var(--bg);transition:border-color 150ms ease,background-color 150ms ease,color 150ms ease,transform 160ms var(--ease-out)}
.opt:active span{transform:scale(.97)}
.opt input:checked+span{background:var(--accent-tint);color:var(--accent);border-color:var(--accent);font-weight:500}
.opt input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
@media (hover:hover){.opt:hover span{border-color:var(--ctl)}}
.qf select{height:42px;font-size:15px;min-width:260px}
.qres{border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2);padding:14px 18px 6px}
@media (min-width:1000px){.qres{position:sticky;top:calc(var(--hdr) + 24px);align-self:start}}
.qcount{font-size:15px;margin-bottom:8px}
.qtop{list-style:none;margin:0 0 16px;padding:0}
.qtop a{display:grid;grid-template-columns:28px 1fr auto;gap:2px 12px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--rule);text-decoration:none}
.qtop .qi{font-size:13px;color:var(--mute)}.qtop b{font-size:18px;font-weight:600;letter-spacing:-.015em}
.qtop .qs{font:600 17px var(--f-ui)}.qtop small{grid-column:2/4;font-size:13px;color:var(--ink-2)}
.qtop li:first-child .qs{background:var(--accent-tint);color:var(--accent);padding:1px 7px;border-radius:4px}
.guide .answer{font-size:17px;line-height:1.6;max-width:66ch;margin-top:16px;padding:16px 18px;border:1px solid var(--rule);border-radius:var(--r-box);background:var(--bg-2)}
.guide .meta{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:13px;color:var(--mute);margin-top:12px}
.gbody{max-width:920px}
.gsec{padding:28px 0 8px}
.gsec h2{font-size:21px;margin-bottom:12px}
.gsec p{font-size:16px;line-height:1.7;max-width:70ch;color:var(--ink-2);margin-bottom:14px}
.grel{padding:32px 0;max-width:920px}.grel h2{font-size:18px;margin-bottom:12px}
.gidx{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 0 20px;border-top:1px solid var(--rule);font-size:14px}
.gloss{margin:0;max-width:820px}
.gloss>div{display:grid;gap:4px 32px;padding:16px 0;border-bottom:1px solid var(--rule);scroll-margin-top:calc(var(--hdr) + 16px);transition:background-color 300ms ease}
@media (min-width:700px){.gloss>div{grid-template-columns:220px 1fr}}
.gloss dt{font-weight:600;font-size:16.5px;letter-spacing:-.01em}
.gloss dd{margin:0;font-size:15.5px;line-height:1.6;color:var(--ink-2);max-width:66ch}
.gloss>div:target{background:var(--accent-tint)}
.faq.solo{max-width:820px;border-top:1px solid var(--rule)}
.lower2{display:grid;gap:40px}@media (min-width:900px){.lower2{grid-template-columns:1fr 1fr}}
.offers td{vertical-align:middle}.offers .dv{max-width:28ch}

.verdict-box .vwrap{min-width:0}
.cform .tog span{height:42px;width:100%;color:var(--ink)}
/* below-the-fold sections skip layout until scrolled near */
.pmain>.block,.pmain>.spec~.spec,.gsec~.gsec,.gbody>.faq,.cday~.cday,.calc~.block{content-visibility:auto;contain-intrinsic-size:auto 640px}
.foot nav li a{display:inline-flex;align-items:center;min-height:28px}
/* zh-Hans: CJK fallbacks after the Latin face, looser line-height for Han text */
:lang(zh-Hans){--f-ui:"Instrument Sans","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",ui-sans-serif,system-ui,sans-serif;--f-disp:var(--f-ui)}
:lang(zh-Hans) .answer,:lang(zh-Hans) .gsec p,:lang(zh-Hans) .prose p{line-height:1.85}
:lang(zh-Hans) h1,:lang(zh-Hans) h2{letter-spacing:0}
