:root{
  --ink:#0f1c33; --ink2:#27364f; 
  --muted:#5d6b82; --line:#e4e8ef; --bg:#ffffff; --bg2:#f6f8fb;
  --accent:#c9a23a; --accent2:#15457a; --good:#1f8a5b; --ok:#b8801f; --low:#b23b3b;
  --top:#15457a;
  --maxw:1160px;
  --serif:"Georgia","Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;font-size:17px}
a{color:var(--accent2);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
img{max-width:100%}

/* header */
header.site{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:saturate(140%) blur(6px);z-index:50}
.nav{display:flex;align-items:center;justify-content:space-between;height:66px;gap:18px}
.logo{font-family:var(--serif);font-weight:700;font-size:1.45rem;color:var(--ink);letter-spacing:-.3px;display:flex;align-items:center;gap:10px}
.logo b{color:var(--accent)}
.logo small{font-family:var(--sans);font-weight:600;font-size:.62rem;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;display:block;line-height:1}
.navlinks{display:flex;gap:22px;align-items:center;font-size:.95rem;font-weight:600}
.navlinks a{color:var(--ink2)}
.badge-xpm{font-size:.66rem;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);font-weight:600}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:1rem}

/* hero */
.hero{background:linear-gradient(180deg,#0f1c33 0%,#15294a 100%);color:#fff;padding:62px 0 54px}
.hero .kicker{text-transform:uppercase;letter-spacing:2px;font-size:.72rem;color:var(--accent);font-weight:700}
.hero h1{font-family:var(--serif);font-size:2.6rem;line-height:1.12;margin:.4em 0 .3em;max-width:18ch}
.hero p.lead{font-size:1.15rem;color:#cdd7e6;max-width:60ch;margin:0 0 26px}
.hero .cta{display:inline-block;background:var(--accent);color:#10203a;font-weight:700;padding:13px 22px;border-radius:9px;margin-right:12px}
.hero .cta.ghost{background:transparent;color:#fff;border:1px solid #3a567f}
.trust{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;font-size:.86rem;color:#a9b6cb}
.trust b{color:#fff;display:block;font-size:1.3rem;font-family:var(--serif)}

/* sections */
section{padding:52px 0}
section.alt{background:var(--bg2)}
h2.sec{font-family:var(--serif);font-size:1.9rem;margin:0 0 6px}
.sub{color:var(--muted);margin:0 0 28px;max-width:70ch}
.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:.72rem;color:var(--accent2);font-weight:700;margin-bottom:6px}

/* ranking table */
.ranktable{width:100%;border-collapse:collapse;font-size:.94rem;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.ranktable th,.ranktable td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
.ranktable thead th{background:#0f1c33;color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.6px;cursor:pointer;user-select:none;white-space:nowrap}
.ranktable thead th:hover{background:#16294a}
.ranktable tbody tr:hover{background:#f3f6fb}
.ranktable tr.is-waled{background:#fbf6e7}
.ranktable tr.is-waled:hover{background:#f7efd4}
.rk{font-family:var(--serif);font-weight:700;font-size:1.1rem;color:var(--ink);width:38px}
.vname{font-weight:700;color:var(--ink)}
.vmeta{font-size:.78rem;color:var(--muted)}
.flag{font-size:.7rem;border:1px solid var(--line);border-radius:5px;padding:2px 6px;color:var(--muted);margin-left:6px}
.scorepill{display:inline-block;min-width:54px;text-align:center;font-weight:700;border-radius:7px;padding:5px 8px;color:#fff}
.scorepill.top{background:var(--top)} .scorepill.good{background:var(--good)} .scorepill.ok{background:var(--ok)} .scorepill.low{background:var(--low)}
.smallscore{font-weight:700}
.smallscore.top{color:var(--top)} .smallscore.good{color:var(--good)} .smallscore.ok{color:var(--ok)} .smallscore.low{color:var(--low)}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:18px}
.card{border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;transition:.15s}
.card:hover{box-shadow:0 8px 26px rgba(15,28,51,.08);transform:translateY(-2px)}
.card h3{margin:.1em 0 .2em;font-family:var(--serif);font-size:1.2rem}
.card .tot{font-family:var(--serif);font-size:1.7rem;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.chip{font-size:.72rem;background:var(--bg2);border:1px solid var(--line);border-radius:999px;padding:3px 9px;color:var(--ink2)}

/* methodology bars */
.crit{margin:18px 0;border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:#fff}
.crit .top{display:flex;justify-content:space-between;align-items:baseline}
.crit h4{margin:0;font-size:1.05rem}
.wt{font-weight:700;color:var(--accent2)}
.bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin-top:8px}
.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent))}

/* profile */
.profile-head{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;justify-content:space-between}
.bigscore{text-align:center;border:1px solid var(--line);border-radius:14px;padding:18px 26px;background:var(--bg2);min-width:150px}
.bigscore .n{font-family:var(--serif);font-size:2.6rem;font-weight:700;line-height:1}
.bigscore .l{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}
.proscons ul{margin:8px 0 0;padding-left:20px}
.proscons .pro li::marker{color:var(--good)}
.proscons .con li::marker{color:var(--low)}
.scorerow{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.scorerow .lab{font-weight:600}
.scorerow .wt{font-size:.78rem;color:var(--muted);font-weight:500}

/* duell */
.duell{display:grid;grid-template-columns:1fr 70px 1fr;gap:14px;align-items:center}
.duell .vcol{border:1px solid var(--line);border-radius:12px;padding:18px;text-align:center}
.duell .vs{text-align:center;font-family:var(--serif);font-weight:700;color:var(--muted)}

/* notice / transparency */
.notice{background:#fbf6e7;border:1px solid #e8d99a;border-radius:10px;padding:16px 18px;font-size:.9rem;color:#5a4d22}
.notice b{color:#3f3614}

/* footer */
footer.site{background:#0f1c33;color:#aebacd;padding:40px 0 30px;font-size:.9rem;margin-top:30px}
footer.site a{color:#cdd7e6}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px}
footer h5{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px}
.fbtm{border-top:1px solid #25395c;margin-top:26px;padding-top:16px;font-size:.8rem;color:#7e8da6;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

.breadcrumb{font-size:.82rem;color:var(--muted);padding:14px 0}
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.toolbar select,.toolbar input{padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:.9rem;font-family:inherit}
.tag{display:inline-block;background:var(--accent2);color:#fff;font-size:.68rem;font-weight:700;padding:3px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.5px}

@media(max-width:820px){
  .navlinks{display:none}
  .menu-btn{display:block}
  .navlinks.open{display:flex;position:absolute;top:66px;left:0;right:0;background:#fff;flex-direction:column;padding:16px 22px;border-bottom:1px solid var(--line);gap:14px}
  .hero h1{font-size:2rem}
  .fgrid{grid-template-columns:1fr}
  .proscons{grid-template-columns:1fr}
  .ranktable{display:block;overflow-x:auto;white-space:nowrap}
  .duell{grid-template-columns:1fr;gap:8px}
  .duell .vs{padding:6px 0}
}

/* awards, price, product tables (v1.1) */
.award{display:inline-block;font-size:.7rem;font-weight:700;color:#8a6d1f;background:#fbf3d7;border:1px solid #e8d99a;border-radius:999px;padding:3px 9px;margin-top:6px;letter-spacing:.2px}
.price{font-weight:700;color:var(--accent2);letter-spacing:1px;white-space:nowrap}
.ranktable td.price{font-size:1rem}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.tablewrap .ranktable{border:none;border-radius:0;min-width:860px}
.tablewrap .ranktable tbody tr:nth-child(even){background:#fafbfd}
.tablewrap .ranktable tr.is-waled{background:#fbf6e7}
details summary{color:var(--ink2)}

/* references (v1.2) */
.reflist{margin:8px 0 0;padding-left:20px}
.reflist li{margin:5px 0}
.is-waled .reflist li::marker,.reflist li::marker{color:var(--accent)}

/* logo + imagery (v1.3) */
.logo-img{height:40px;width:auto;display:block}
.hero.hero--img{background:linear-gradient(180deg,rgba(15,28,51,.82),rgba(15,28,51,.94)),url('img/hero.jpg');background-size:cover;background-position:center}
.pcard img{display:block}
.pbanner{height:200px;border-radius:12px;background-size:cover;background-position:center;margin:14px 0 18px;border:1px solid var(--line)}
@media(max-width:820px){.pbanner{height:140px}}

/* DOOH calculator (v1.4) */
.calcgrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:14px}
.calcinputs label{display:block;font-size:.85rem;font-weight:600;color:var(--ink2);margin-bottom:12px}
.calcinputs input{display:block;width:100%;margin-top:5px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:.95rem;font-family:inherit}
.calcout{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:18px}
.calcbig{display:flex;flex-direction:column;gap:2px;padding-bottom:12px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.calcbig .l{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.calcbig .n{font-family:var(--serif);font-size:2.2rem;font-weight:700;color:var(--good)}
.calcrow{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:.92rem;border-bottom:1px solid var(--line)}
.calcrow:last-child{border-bottom:none}
.calcrow b{font-weight:700;color:var(--ink)}
@media(max-width:760px){.calcgrid{grid-template-columns:1fr}}
