/*
Theme Name:   BrokerWatcher
Theme URI:    https://brokerwatcher.com/
Description:  Child theme of Kadence for BrokerWatcher. Achromatic brand, verdict colours as the only chroma. Holds the broker review, directory and regulator templates that a free page builder cannot produce.
Author:       BrokerWatcher
Template:     kadence
Version:      1.4.3
Requires PHP: 7.4
Text Domain:  brokerwatcher
*/

/* ============================================================
   BROKERWATCHER DESIGN SYSTEM
   Achromatic brand. Verdict colours are the only chroma.
   ============================================================ */
:root {
  --paper:#F7F8FA; --surface:#FFFFFF; --surface-2:#EFF1F5; --surface-3:#E3E7EE;
  --ink:#1C232C; --ink-2:#4C5765; --muted:#7C8796;
  --rule:#E0E4EB; --rule-soft:#EDF0F4;
  --accent:#2F5D8C; --accent-soft:#EAF0F7;
  --scam:#B22B41; --scam-bg:#FCEFF1; --scam-line:#EFCDD3;
  --risk:#9E6A11; --risk-bg:#FCF5E7; --risk-line:#EEDCB6;
  --neutral:#6B7684; --neutral-bg:#F0F2F6; --neutral-line:#DDE1E8;
  --trust:#1F7A57; --trust-bg:#EAF5F0; --trust-line:#C2DFD2;
  --shadow:0 1px 1px rgba(28,35,44,.03), 0 10px 30px -22px rgba(28,35,44,.32);
  --maxw:1180px;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --paper:#12161C; --surface:#1A2029; --surface-2:#222933; --surface-3:#2B333E;
  --ink:#EEF1F5; --ink-2:#BFC7D1; --muted:#8894A3;
  --rule:#2E3742; --rule-soft:#242C36;
  --accent:#8FBAEA; --accent-soft:#1E2A38;
  --scam:#F2879A; --scam-bg:#2E181C; --scam-line:#50262E;
  --risk:#E0AE55; --risk-bg:#2C2216; --risk-line:#4A3922;
  --neutral:#9AA5B2; --neutral-bg:#222A33; --neutral-line:#343C48;
  --trust:#63C99D; --trust-bg:#152A21; --trust-line:#234A3A;
  --shadow:0 1px 1px rgba(0,0,0,.4), 0 10px 30px -22px rgba(0,0,0,.85);
}}
:root[data-theme="dark"]{
  --paper:#12161C; --surface:#1A2029; --surface-2:#222933; --surface-3:#2B333E;
  --ink:#EEF1F5; --ink-2:#BFC7D1; --muted:#8894A3;
  --rule:#2E3742; --rule-soft:#242C36;
  --accent:#8FBAEA; --accent-soft:#1E2A38;
  --scam:#F2879A; --scam-bg:#2E181C; --scam-line:#50262E;
  --risk:#E0AE55; --risk-bg:#2C2216; --risk-line:#4A3922;
  --neutral:#9AA5B2; --neutral-bg:#222A33; --neutral-line:#343C48;
  --trust:#63C99D; --trust-bg:#152A21; --trust-line:#234A3A;
  --shadow:0 1px 1px rgba(0,0,0,.4), 0 10px 30px -22px rgba(0,0,0,.85);
}

*{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
.bw-wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace; font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* ---------- masthead ---------- */
.bw-top{background:var(--surface); border-bottom:1px solid var(--rule)}
.bw-top .bw-wrap{display:flex; align-items:center; gap:28px; height:66px}
.bw-logo{display:flex; align-items:baseline; gap:0; text-decoration:none; color:var(--ink); flex:none}
.bw-logo .a{font-weight:800; font-size:19px; letter-spacing:-.035em}
.bw-logo .b{font-weight:400; font-size:19px; letter-spacing:-.035em; color:var(--muted)}
.bw-logo .bw-mark{display:flex; align-items:center; margin-right:9px; flex:none}
.bw-logo .bw-mark svg{display:block; border-radius:5px}
.bw-nav{display:flex; gap:24px; margin-left:8px}
.bw-nav a{
  color:var(--ink-2); text-decoration:none; font-size:14px; font-weight:500;
  padding:22px 0; border-bottom:2px solid transparent;
}
.bw-nav a:hover, .bw-nav a[aria-current]{color:var(--accent); border-bottom-color:var(--accent)}
.bw-search{margin-left:auto; position:relative; flex:none}
.bw-search input{
  font:inherit; font-size:13.5px; font-family:"Public Sans",sans-serif;
  background:var(--paper); border:1px solid var(--rule); color:var(--ink);
  padding:8px 12px 8px 32px; width:240px; border-radius:2px;
}
.bw-search input::placeholder{color:var(--muted)}
.bw-search svg{position:absolute; left:10px; top:50%; transform:translateY(-50%); color:var(--muted)}
@media (max-width:900px){ .bw-nav,.bw-search{display:none} }

/* ---------- verdict chips ---------- */
.chip{
  display:inline-flex; align-items:center; gap:6px;
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase; padding:4px 9px; border-radius:2px;
  border:1px solid transparent; white-space:nowrap;
}
.chip::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor; flex:none}
.c-scam{background:var(--scam-bg); color:var(--scam); border-color:var(--scam-line)}
.c-risk{background:var(--risk-bg); color:var(--risk); border-color:var(--risk-line)}
.c-neutral{background:var(--neutral-bg); color:var(--neutral); border-color:var(--neutral-line)}
.c-trust{background:var(--trust-bg); color:var(--trust); border-color:var(--trust-line)}

/* ---------- home: ledger ---------- */
.bw-lead{background:var(--surface); border-bottom:1px solid var(--rule)}
.bw-lead .bw-wrap{padding-top:52px; padding-bottom:0}
.bw-kicker{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); margin-bottom:16px;
}
.bw-lead h1{
  font-family:"Newsreader",Georgia,serif; font-weight:600;
  font-size:clamp(2.3rem,5.2vw,3.5rem); line-height:1.06; letter-spacing:-.022em;
  margin:0; max-width:15ch; text-wrap:balance;
}
.bw-lead p.sub{
  font-size:1.06rem; color:var(--ink-2); max-width:52ch; margin:18px 0 0;
}
.bw-bigsearch{display:flex; gap:0; margin:30px 0 0; max-width:560px}
.bw-bigsearch input{
  font:inherit; font-family:"Public Sans",sans-serif; font-size:15px; flex:1;
  padding:14px 16px; border:1px solid var(--rule); border-right:none;
  background:var(--surface); color:var(--ink); border-radius:2px 0 0 2px; min-width:0;
}
.bw-bigsearch button{
  font:inherit; font-family:"Public Sans",sans-serif; font-size:14px; font-weight:600;
  background:var(--accent); color:#fff; border:1px solid var(--accent);
  padding:14px 24px; cursor:pointer; border-radius:0 2px 2px 0; white-space:nowrap;
}
.bw-bigsearch button:hover{opacity:.86}

.ledger{
  display:grid; grid-template-columns:repeat(5,1fr); margin-top:46px;
  border-top:1px solid var(--rule); border-left:1px solid var(--rule);
}
.ledger div{
  border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:18px 20px 20px;
}
.ledger .n{
  font-family:"IBM Plex Mono",monospace; font-size:1.85rem; font-weight:500;
  letter-spacing:-.03em; display:block; line-height:1.1; font-variant-numeric:tabular-nums;
}
.ledger .l{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); display:block; margin-top:8px;
}
.ledger .s-scam .n{color:var(--scam)} .ledger .s-risk .n{color:var(--risk)}
.ledger .s-neutral .n{color:var(--neutral)} .ledger .s-trust .n{color:var(--trust)}
@media (max-width:820px){ .ledger{grid-template-columns:repeat(2,1fr)} .ledger div:first-child{grid-column:1/-1} }

/* ---------- section frame ---------- */
.bw-sec{padding:54px 0}
.bw-sechead{display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:22px; border-bottom:1px solid var(--rule); padding-bottom:12px}
.bw-sechead h2{
  font-family:"Newsreader",Georgia,serif; font-size:1.5rem; font-weight:600;
  letter-spacing:-.015em; margin:0;
}
.bw-sechead a{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); text-decoration:none; white-space:nowrap;
}
.bw-sechead a:hover{color:var(--ink)}

/* ---------- broker rows ---------- */
.rows{background:var(--surface); border:1px solid var(--rule); box-shadow:var(--shadow)}
.row{
  display:grid; grid-template-columns:1fr 132px 108px 96px; gap:18px; align-items:center;
  padding:16px 20px; border-bottom:1px solid var(--rule-soft); text-decoration:none; color:inherit;
}
.row:last-child{border-bottom:none}
.row:hover{background:var(--surface-2)}
.row .nm{font-weight:600; font-size:15px; letter-spacing:-.008em; display:block}
.row .meta{font-size:12.5px; color:var(--muted); display:block; margin-top:3px}
.row .sc{font-family:"IBM Plex Mono",monospace; font-size:15px; font-weight:500; text-align:right; font-variant-numeric:tabular-nums}
.row .sc b{font-weight:500} .row .sc span{color:var(--muted); font-size:12px}
.row .dt{font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--muted); text-align:right}
@media (max-width:780px){
  .row{grid-template-columns:1fr auto; gap:10px}
  .row .dt{display:none} .row .sc{text-align:left}
}

/* ---------- changelog feed ---------- */
.feed{background:var(--surface); border:1px solid var(--rule); box-shadow:var(--shadow)}
.fitem{display:grid; grid-template-columns:88px 1fr; gap:18px; padding:16px 20px; border-bottom:1px solid var(--rule-soft)}
.fitem:last-child{border-bottom:none}
.fitem .d{font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--muted); padding-top:2px}
.fitem .t{font-size:14px; color:var(--ink-2)}
.fitem .t b{color:var(--ink); font-weight:600}
.fitem .mv{display:inline-flex; align-items:center; gap:7px; margin-bottom:6px; flex-wrap:wrap}
.fitem .arw{color:var(--muted); font-size:12px}

.twocol{display:grid; grid-template-columns:1fr 1fr; gap:34px}
@media (max-width:900px){ .twocol{grid-template-columns:1fr} }

/* ---------- regulator strip ---------- */
.regs{display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); border-top:1px solid var(--rule); border-left:1px solid var(--rule)}
.reg{
  border-right:1px solid var(--rule); border-bottom:1px solid var(--rule);
  padding:16px 18px; background:var(--surface); text-decoration:none; color:inherit; display:block;
}
.reg:hover{background:var(--surface-2)}
.reg .ab{font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:14px; letter-spacing:.02em}
.reg .tr{font-size:11.5px; color:var(--muted); margin-top:4px}
.reg .ct{font-size:12px; color:var(--ink-2); margin-top:9px}

/* ============================================================
   REVIEW PAGE
   ============================================================ */
.bw-crumb{
  font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--muted);
  padding:16px 0 0; letter-spacing:.04em;
}
.bw-crumb a{color:var(--muted); text-decoration:none} .bw-crumb a:hover{color:var(--ink)}

.rev{display:grid; grid-template-columns:minmax(0,1fr) 316px; gap:44px; padding:22px 0 60px; align-items:start}
@media (max-width:960px){ .rev{grid-template-columns:1fr; gap:28px} }

.rev h1{
  font-family:"Newsreader",Georgia,serif; font-weight:600;
  font-size:clamp(1.95rem,4vw,2.6rem); line-height:1.1; letter-spacing:-.02em;
  margin:14px 0 0; text-wrap:balance;
}
.answer{
  font-size:1.09rem; line-height:1.62; color:var(--ink); margin:18px 0 0;
  padding:18px 20px; background:var(--surface); border:1px solid var(--rule);
  border-left:3px solid var(--risk);
}
.byline{
  display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-top:18px;
  padding-bottom:22px; border-bottom:1px solid var(--rule);
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--muted);
}
.byline b{color:var(--ink); font-weight:500}

.rev h2{
  font-family:"Newsreader",Georgia,serif; font-size:1.44rem; font-weight:600;
  letter-spacing:-.014em; margin:42px 0 4px; text-wrap:balance;
}
.rev h3{font-size:1rem; font-weight:600; margin:26px 0 8px}
.rev p{margin:14px 0; color:var(--ink-2); max-width:68ch}
.rev ul{margin:14px 0; padding-left:20px; max-width:68ch; color:var(--ink-2)}
.rev li{margin-bottom:8px}
.rev li::marker{color:var(--muted)}

.facts{width:100%; border-collapse:collapse; font-size:14px; margin:18px 0 0; background:var(--surface); border:1px solid var(--rule)}
.facts th{
  text-align:left; font-family:"IBM Plex Mono",monospace; font-weight:400; font-size:11.5px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
  padding:11px 16px; border-bottom:1px solid var(--rule-soft); width:44%; vertical-align:top;
}
.facts td{padding:11px 16px; border-bottom:1px solid var(--rule-soft); color:var(--ink); vertical-align:top}
.facts tr:last-child th,.facts tr:last-child td{border-bottom:none}

/* Attribution line under an evidence point. Written as <p class="src"> in the
   review body so it stays plain HTML that any editor can handle. */
.rev article p.src{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; line-height:1.65;
  color:var(--muted); border-left:2px solid var(--rule); padding-left:12px;
  margin:14px 0 26px; max-width:none;
}

.reply{background:var(--surface-2); border:1px solid var(--rule); padding:20px 22px; margin:18px 0}
.reply .hd{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); margin-bottom:12px;
}
.reply p{font-style:italic; color:var(--ink-2); margin:0 0 10px}
.reply .attr{font-size:12.5px; color:var(--muted); font-style:normal}

.alts{display:grid; grid-template-columns:repeat(auto-fit,minmax(184px,1fr)); gap:12px; margin:18px 0}
.alt{background:var(--surface); border:1px solid var(--rule); padding:16px 18px; text-decoration:none; color:inherit; display:block}
.alt:hover{background:var(--surface-2)}
.alt .nm{font-weight:600; font-size:14.5px; display:block; margin:10px 0 4px}
.alt .sc{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--muted)}

details.faq{border-bottom:1px solid var(--rule-soft); background:var(--surface); padding:0 18px}
details.faq:first-of-type{border-top:1px solid var(--rule)}
details.faq summary{
  cursor:pointer; padding:15px 0; font-weight:600; font-size:14.5px; list-style:none;
  display:flex; justify-content:space-between; gap:14px; align-items:center;
}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+"; font-family:"IBM Plex Mono",monospace; color:var(--muted); font-size:16px; flex:none}
details.faq[open] summary::after{content:"–"}
details.faq p{margin:0 0 16px; font-size:14.5px}

.clog{background:var(--surface); border:1px solid var(--rule); margin:18px 0}
.clog .e{display:grid; grid-template-columns:92px 1fr; gap:18px; padding:15px 18px; border-bottom:1px solid var(--rule-soft)}
.clog .e:last-child{border-bottom:none}
.clog .d{font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--muted); padding-top:3px}
.clog .w{font-size:14px; color:var(--ink-2)}
.clog .mv{display:flex; align-items:center; gap:8px; margin-bottom:7px; flex-wrap:wrap}

/* ---------- scorecard (the signature component) ---------- */
.card{position:sticky; top:112px; background:var(--surface); border:1px solid var(--rule); box-shadow:var(--shadow)}
@media (max-width:960px){ .card{position:static} }
.card .hd{padding:18px 20px 16px; border-bottom:1px solid var(--rule)}
.card .lbl{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--muted); margin-bottom:11px;
}
.card .big{display:flex; align-items:baseline; gap:8px; margin-top:14px}
.card .big .v{
  font-family:"IBM Plex Mono",monospace; font-size:2.7rem; font-weight:500;
  letter-spacing:-.045em; line-height:1; color:var(--risk); font-variant-numeric:tabular-nums;
}
.card .big .o{font-family:"IBM Plex Mono",monospace; font-size:1rem; color:var(--muted)}
.card .pill{padding:16px 20px; border-bottom:1px solid var(--rule)}
.pl{margin-bottom:13px}
.pl:last-child{margin-bottom:0}
.pl .t{display:flex; justify-content:space-between; gap:10px; font-size:12.5px; margin-bottom:5px; align-items:baseline}
.pl .t .w{font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--muted)}
.pl .t .s{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink); font-variant-numeric:tabular-nums}
.pl .bar{height:4px; background:var(--surface-3); position:relative; border-radius:1px; overflow:hidden}
.pl .bar i{position:absolute; inset:0 auto 0 0; background:var(--accent); display:block; border-radius:1px}
.pl.lo .bar i{background:var(--scam)}
.pl.md .bar i{background:var(--risk)}
.pl.hi .bar i{background:var(--trust)}
.card .kv{padding:16px 20px; border-bottom:1px solid var(--rule)}
.card .kv dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 14px; font-size:12.5px}
.card .kv dt{color:var(--muted); font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; padding-top:2px}
.card .kv dd{margin:0; color:var(--ink); text-align:right; font-weight:500}
.card .ft{padding:14px 20px}
.card .ft a{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink); text-decoration:none;
  border-bottom:1px solid var(--rule); padding-bottom:2px;
}
.card .ft a:hover{border-bottom-color:var(--ink)}

/* ============================================================
   DIRECTORY
   ============================================================ */
.dir{display:grid; grid-template-columns:212px minmax(0,1fr); gap:38px; padding:26px 0 60px; align-items:start}
@media (max-width:880px){ .dir{grid-template-columns:1fr; gap:24px} }
.filters{position:sticky; top:112px}
@media (max-width:880px){ .filters{position:static} }
.fgrp{margin-bottom:26px}
.fgrp .h{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--muted); padding-bottom:9px;
  border-bottom:1px solid var(--rule); margin-bottom:11px;
}
.fgrp label{display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ink-2); padding:4px 0; cursor:pointer}
.fgrp label:hover{color:var(--ink)}
.fgrp input{accent-color:var(--ink); width:14px; height:14px; flex:none}
.fgrp label .ct{margin-left:auto; font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--muted)}
.dirhead{display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:16px; flex-wrap:wrap}
.dirhead h1{font-family:"Newsreader",Georgia,serif; font-size:2rem; font-weight:600; letter-spacing:-.02em; margin:0}
.dirhead .ct{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--muted)}

/* ---------- footer ---------- */
.bw-foot{background:var(--surface); border-top:1px solid var(--rule); margin-top:20px}
.bw-foot .bw-wrap{padding:40px 24px 44px}
.fcols{display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:34px}
@media (max-width:800px){ .fcols{grid-template-columns:1fr 1fr; gap:26px} }
.fcols h5{
  font-family:"IBM Plex Mono",monospace; font-size:10px; letter-spacing:.15em;
  text-transform:uppercase; color:var(--muted); margin:0 0 12px; font-weight:500;
}
.fcols a{display:block; color:var(--ink-2); text-decoration:none; font-size:13.5px; padding:3px 0}
.fcols a:hover{color:var(--ink)}
.fcols p{font-size:13px; color:var(--muted); margin:12px 0 0; max-width:36ch}
.riskwarn{
  margin-top:32px; padding-top:22px; border-top:1px solid var(--rule);
  font-size:12px; color:var(--muted); line-height:1.6;
}
.riskwarn b{color:var(--ink-2); font-weight:600}
.fbot{
  margin-top:20px; padding-top:18px; border-top:1px solid var(--rule-soft);
  display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap;
  font-family:"IBM Plex Mono",monospace; font-size:11px; color:var(--muted);
}

/* ============================================================
   WORDPRESS INTEGRATION
   Kadence ships its own container and header. These rules stop
   the parent theme fighting the templates above.
   ============================================================ */
.bw-page .site-container,
.bw-page .content-container,
.bw-page .content-area{max-width:none; padding:0; margin:0}
.bw-page .entry-content-wrap{padding:0}
.bw-page .entry-header{display:none}
.bw-page #wrapper{background:var(--paper)}

.bw-page .rev article > *:first-child{margin-top:0}
.bw-page img{max-width:100%; height:auto}
.bw-page figure{margin:22px 0}
.bw-page figcaption{font-size:12.5px; color:var(--muted); margin-top:8px; font-family:"IBM Plex Mono",monospace}

.screen-reader-text{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.bw-pager{display:flex; gap:6px; margin:26px 0 0; flex-wrap:wrap}
.bw-pager .page-numbers{
  font-family:"IBM Plex Mono",monospace; font-size:12.5px; padding:8px 13px;
  border:1px solid var(--rule); background:var(--surface); color:var(--ink-2); text-decoration:none;
}
.bw-pager .page-numbers:hover{background:var(--surface-2); color:var(--ink)}
.bw-pager .page-numbers.current{background:var(--accent); color:#fff; border-color:var(--accent)}

.bw-empty{
  background:var(--surface); border:1px solid var(--rule); padding:34px 26px;
  text-align:center; color:var(--muted); font-size:15px;
}
.bw-note{
  background:var(--surface-2); border:1px solid var(--rule); padding:14px 18px;
  font-size:13.5px; color:var(--ink-2); margin:18px 0;
}
.bw-filter-actions{display:flex; gap:8px; margin-top:20px}
.bw-filter-actions button, .bw-filter-actions a{
  font:inherit; font-family:"Public Sans",sans-serif; font-size:13px; font-weight:600;
  padding:9px 15px; cursor:pointer; border-radius:2px; text-decoration:none; text-align:center;
}
.bw-filter-actions button{background:var(--accent); color:#fff; border:1px solid var(--accent); flex:1}
.bw-filter-actions a{background:transparent; color:var(--muted); border:1px solid var(--rule)}
.bw-filter-actions a:hover{color:var(--ink); border-color:var(--ink)}

/* ============================================================
   DOCUMENT PAGES
   Methodology, disclosure, about, legal, guides. Same type system
   as the reviews so the site reads as one thing.
   ============================================================ */
.bw-doc{max-width:none; padding:6px 0 64px}
.bw-doc > *{max-width:70ch}
.bw-doc h1{
  font-family:"Newsreader",Georgia,serif; font-weight:600;
  font-size:clamp(2rem,4.4vw,2.9rem); line-height:1.08; letter-spacing:-.022em;
  margin:16px 0 0; text-wrap:balance; max-width:20ch;
}
.bw-doc .bw-doc-lede{
  font-family:"Newsreader",Georgia,serif; font-size:1.22rem; line-height:1.5;
  color:var(--ink-2); margin:16px 0 0;
}
.bw-doc .bw-doc-meta{
  font-family:"IBM Plex Mono",monospace; font-size:11.5px; letter-spacing:.06em;
  color:var(--muted); margin:20px 0 0; padding-bottom:24px;
  border-bottom:1px solid var(--rule);
}
.bw-doc h2{
  font-family:"Newsreader",Georgia,serif; font-size:1.6rem; font-weight:600;
  letter-spacing:-.016em; line-height:1.2; margin:46px 0 2px; text-wrap:balance;
}
.bw-doc h3{font-size:1.06rem; font-weight:600; margin:30px 0 6px; letter-spacing:-.006em}
.bw-doc p{margin:15px 0; color:var(--ink-2); font-size:1.02rem; line-height:1.66}
.bw-doc ul, .bw-doc ol{margin:15px 0; padding-left:22px; color:var(--ink-2); font-size:1.02rem}
.bw-doc li{margin-bottom:10px; line-height:1.6}
.bw-doc li::marker{color:var(--muted)}
.bw-doc strong{color:var(--ink); font-weight:600}
.bw-doc a{color:var(--accent); text-decoration:none; border-bottom:1px solid var(--rule); padding-bottom:1px}
.bw-doc a:hover{border-bottom-color:var(--accent)}
.bw-doc code{
  font-family:"IBM Plex Mono",monospace; font-size:.86em;
  background:var(--surface-2); padding:2px 6px; border-radius:2px; color:var(--ink);
}
.bw-doc figure.wp-block-table, .bw-doc .wp-block-table{
  max-width:none; margin:24px 0; overflow-x:auto;
  border:1px solid var(--rule); background:var(--surface); box-shadow:var(--shadow);
}
.bw-doc table{border-collapse:collapse; width:100%; font-size:.9rem; min-width:560px}
.bw-doc thead th{
  text-align:left; font-family:"IBM Plex Mono",monospace; font-weight:500;
  font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
  padding:12px 16px; border-bottom:1px solid var(--rule); background:var(--surface-2);
  white-space:nowrap;
}
.bw-doc tbody td{
  padding:13px 16px; border-bottom:1px solid var(--rule-soft);
  color:var(--ink-2); vertical-align:top;
}
.bw-doc tbody tr:last-child td{border-bottom:none}
.bw-doc tbody td:first-child{color:var(--ink)}
.bw-doc blockquote{
  margin:24px 0; padding:16px 20px; background:var(--surface);
  border:1px solid var(--rule); border-left:3px solid var(--ink);
}
.bw-doc blockquote p{margin:0}

/* ---------- guides ---------- */
.guides{display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:14px}
.guide{
  background:var(--surface); border:1px solid var(--rule); box-shadow:var(--shadow);
  padding:20px 22px 22px; text-decoration:none; color:inherit; display:block;
}
.guide:hover{background:var(--surface-2)}
.guide .gdate{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); display:block;
}
.guide .gtitle{
  font-family:"Newsreader",Georgia,serif; font-size:1.2rem; font-weight:600;
  line-height:1.25; letter-spacing:-.012em; color:var(--ink);
  display:block; margin:10px 0 0; text-wrap:balance;
}
.guide .gex{display:block; margin-top:9px; font-size:.9rem; color:var(--ink-2); line-height:1.5}

/* wp_nav_menu outputs <li> items; strip list styling so they sit flat in the bar */
.bw-nav li{list-style:none; margin:0; padding:0; display:flex}
.bw-nav li::marker{content:none}
.bw-nav > li > a, .bw-nav li a{
  color:var(--ink-2); text-decoration:none; font-size:14px; font-weight:500;
  padding:22px 0; border-bottom:2px solid transparent; display:block; white-space:nowrap;
}
.bw-nav li a:hover, .bw-nav li.current-menu-item a{color:var(--accent); border-bottom-color:var(--accent)}

/* ---------- broker sub-pages ---------- */
.subbody{margin-top:6px}
.backup{margin:30px 0 6px}
.backup .lb{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.13em;
  text-transform:uppercase; color:var(--muted); display:block; margin-bottom:10px;
}
.backup .alt{max-width:none}
.subnav{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; margin:16px 0}
.subnav a{
  background:var(--surface); border:1px solid var(--rule); padding:15px 17px;
  text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:7px;
  transition:border-color .12s ease;
}
.subnav a:hover{border-color:var(--accent)}
.subnav .q{font-size:14.5px; font-weight:500; line-height:1.4}
.subnav .go{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.08em; color:var(--accent);
}
.subfoot{
  margin-top:34px; padding-top:16px; border-top:1px solid var(--rule);
  font-size:13.5px; color:var(--muted);
}
.subfoot a{color:var(--accent)}

/* sub-page links shown on the parent review */
.subpages{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; margin:16px 0 6px}
.subpages a{
  background:var(--surface-2); border:1px solid var(--rule); padding:12px 15px;
  text-decoration:none; color:var(--ink); display:flex; align-items:center;
  justify-content:space-between; gap:10px; font-size:14px;
  transition:border-color .12s ease;
}
.subpages a:hover{border-color:var(--accent); color:var(--accent)}
.subpages a::after{content:"→"; font-family:"IBM Plex Mono",monospace; color:var(--muted); flex:none}


/* ---------- Broker website row ----------
   Namespaced bw-exturl, not .site: Kadence's page wrapper is
   <div class="site wp-site-blocks">, so a bare .site rule here collapses
   the whole layout. */
.bw-exturl{display:inline-flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.bw-exturl .mono{font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:13px}
.bw-exturl .go{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px;
  letter-spacing:.12em; text-transform:uppercase; color:var(--accent);
}
.bw-exturl.off .mono{color:var(--ink)}
.bw-exturl.off .why{font-size:12px; color:var(--muted); font-style:italic}
a.bw-exturl{color:inherit; text-decoration:none}
a.bw-exturl:hover .mono{text-decoration:underline}
