:root{--ink:#14212b;--muted:#5b6b78;--brand:#0f4c75;--brand-2:#0b3a5a;--accent:#ffc857;--paper:#f6f8fa;--card:#fff;--line:#dde4ea;--buy:#1f8a4c;--soft:#e8f0f6}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}a:hover{color:var(--brand-2)}
img{max-width:100%;height:auto}
.wrap{max-width:1140px;margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:#fff;padding:8px;z-index:9}
.topbar{background:var(--brand-2);color:#dbe8f2;text-align:center;font-size:12px;letter-spacing:.08em;padding:6px 16px}
.header{background:#fff;border-bottom:1px solid var(--line)}
.headrow{display:flex;align-items:center;gap:16px;justify-content:space-between;padding-top:14px;padding-bottom:10px;flex-wrap:wrap}
.brand{font-weight:800;font-size:26px;letter-spacing:-.03em;color:var(--brand);text-decoration:none;line-height:1;display:inline-block}
.brand span{color:var(--ink)}.brand small{display:block;font-size:10px;letter-spacing:.18em;color:var(--muted);font-weight:600;margin-top:4px}
.brand.light{color:#fff}.brand.light span{color:var(--accent)}.brand.light small{color:#b9cddd}
.search{display:flex;flex:1;max-width:420px;min-width:220px}
.search input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px 0 0 10px;padding:9px 12px;font:inherit}
.search button{border:0;background:var(--brand);color:#fff;border-radius:0 10px 10px 0;padding:0 14px;font:inherit;font-weight:600;cursor:pointer}
.nav{display:flex;gap:18px;overflow-x:auto;padding-bottom:10px;white-space:nowrap}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:15px}.nav a:hover{color:var(--brand)}
main{padding-top:24px;padding-bottom:48px}
h1{font-size:clamp(28px,4.4vw,42px);line-height:1.15;letter-spacing:-.02em;margin:.2em 0 .4em}
h2{font-size:clamp(22px,3vw,28px);line-height:1.25;margin:1.6em 0 .5em;letter-spacing:-.01em}
h3{font-size:19px;margin:1.3em 0 .4em}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;color:var(--brand);margin:0}
.lead{font-size:18px;color:#33434f}
.muted{color:var(--muted)}.small{font-size:14px}.center{text-align:center}
.btn{display:inline-block;background:var(--brand);color:#fff;text-decoration:none;font-weight:700;padding:11px 18px;border-radius:10px;margin:4px 6px 4px 0}
.btn:hover{background:var(--brand-2);color:#fff}
.btn.ghost{background:#fff;color:var(--brand);border:2px solid var(--brand)}
.btn.buy{background:var(--buy);display:block;text-align:center;font-size:17px;margin-top:12px}.btn.buy:hover{background:#176b3b}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center;background:radial-gradient(circle at 85% 15%,#1b6fa3 0,transparent 45%),linear-gradient(135deg,#0b3a5a 0%,#0f4c75 55%,#13618f 100%);color:#fff;border-radius:24px;padding:48px 44px;overflow:hidden;position:relative}
.hero:after{content:"";position:absolute;right:-120px;bottom:-160px;width:420px;height:420px;border-radius:50%;background:rgba(255,200,87,.12)}
.hero-copy{position:relative;z-index:1}
.hero .eyebrow{color:var(--accent)}
.hero h1{color:#fff;font-size:clamp(30px,4.6vw,48px)}
.hero .lead{color:#dbe8f2}.hero .lead strong{color:#fff}
.hero-cta{margin:22px 0 8px}
.btn.accent{background:var(--accent);color:var(--ink)}.btn.accent:hover{background:#ffd47a;color:var(--ink)}
.hero .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.hero .btn.ghost:hover{background:rgba(255,255,255,.1)}
.hero-points{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:14px;color:#cfe0ec}
.hero-points li:before{content:"✓";color:var(--accent);font-weight:800;margin-right:6px}
.hero-art{position:relative;z-index:1}.hero-art img{display:block;width:100%;height:auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.18))}
section{margin-top:40px}
.sectionhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.sectionhead h2{margin-top:.2em}
.more{font-weight:700;text-decoration:none}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:20px;margin-top:16px}
.card{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.card-img{display:block}.card-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.card h3{margin:0;font-size:18px;line-height:1.3}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:hover{color:var(--brand)}
.card p{margin:0;color:#3f4f5b;font-size:15px;flex:1}
.tag{align-self:flex-start;background:var(--soft);color:var(--brand);font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}
.topics{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.topics li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.topics span{color:var(--muted);font-size:14px}.topics .soon{align-self:flex-start;background:#fff4d6;color:#7a5600;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.trust{background:var(--brand);color:#eaf2f8;border-radius:20px;padding:28px 32px}.trust h2{color:#fff;margin-top:0}.trust a{color:var(--accent)}
.prose{max-width:820px;margin:0 auto}
.prose p,.prose li{font-size:17px}
.summary{font-size:18px;line-height:1.6;color:#22323d;margin:12px 0 18px}
.crumbs ol{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px;font-size:14px;color:var(--muted)}
.crumbs li+li:before{content:"/";margin-right:6px;color:#9aa8b3}.crumbs a{color:var(--muted)}
.byline{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px}.byline img{width:40px;height:40px;aspect-ratio:1;object-fit:cover;object-position:center top;border-radius:50%;flex:none}.byline p{margin:0;font-size:14px!important}
.hero-img{margin:18px 0}.hero-img img{display:block;border-radius:16px;width:100%;aspect-ratio:16/9;object-fit:cover}
figcaption{font-size:13px;color:var(--muted);margin-top:6px}
.toc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 18px;margin:18px 0}.toc p{margin:0;font-weight:700;font-size:15px!important}.toc ol{margin:6px 0 0;padding-left:20px}.toc li{font-size:15px!important}
.tablewrap{overflow-x:auto;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:15px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--soft);color:var(--brand-2);font-size:14px}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}tbody th{font-weight:700}
.note{background:#fff8e6;border-left:4px solid var(--accent);padding:12px 16px;border-radius:8px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:10px 0}
.faq summary{font-weight:700;cursor:pointer;font-size:17px}.faq details p{margin:.6em 0 0}
.sources ul{font-size:15px}
.authorbox{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:32px 0 16px}
.authorbox img{width:80px;height:80px;aspect-ratio:1;object-fit:cover;object-position:center top;border-radius:50%;flex:none;border:3px solid var(--soft)}.authorbox p{margin:.25em 0;font-size:15px!important}.ab-label{text-transform:uppercase;letter-spacing:.1em;font-size:11px!important;font-weight:700;color:var(--brand)}.ab-name{font-weight:800;font-size:18px!important}.ab-role{color:var(--muted)}
.authorhero{display:flex;align-items:center;gap:18px;margin:12px 0 20px}.authorhero img{width:160px;height:160px;aspect-ratio:1;object-fit:cover;object-position:center top;border-radius:50%;border:4px solid #fff;box-shadow:0 6px 20px rgba(15,76,117,.18)}
.disclosure{font-size:14px!important;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:10px;padding:10px 14px}
.glance{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin:16px 0}.glance h2{margin:0 0 8px;font-size:20px}
.glance dl{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;margin:0}.glance dt{font-weight:700}.glance dd{margin:0}.glance small{display:block;color:var(--muted)}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:16px}.proscons>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 22px;margin-top:20px}
.related{margin-top:36px}
.footer{background:var(--brand-2);color:#c9dae7;padding:36px 0 24px;margin-top:40px}
.footer a{color:#fff}.footgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:24px}
.footgrid nav{display:flex;flex-direction:column;gap:6px}.foothead{color:var(--accent);font-weight:700;margin:0 0 4px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.fineprint{border-top:1px solid rgba(255,255,255,.15);margin-top:24px;padding-top:16px;font-size:13px}
.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.15);padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;max-width:900px;margin:0 auto}
.consent-banner p{margin:4px 0 0;font-size:14px}.consent-actions{display:flex;gap:8px}.consent-actions button{border:2px solid var(--brand);background:#fff;color:var(--brand);border-radius:10px;padding:8px 12px;font-weight:700;cursor:pointer}.consent-actions button[data-consent=analytics]{background:var(--brand);color:#fff}
@media (max-width:820px){.hero{grid-template-columns:1fr;padding:30px 20px}.footgrid{grid-template-columns:1fr 1fr}.proscons{grid-template-columns:1fr}.glance dl{grid-template-columns:1fr}.glance dt{margin-top:6px}}
@media (max-width:520px){.footgrid{grid-template-columns:1fr}.search{max-width:none}.authorbox{flex-direction:column;align-items:flex-start}}

.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.layout .prose{max-width:none;margin:0;min-width:0}
.sidebar{position:sticky;top:16px;display:flex;flex-direction:column;gap:18px}
.sb-box{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.sb-title{margin:0 0 10px;font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand)}
.sb-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.sb-list li{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.4}
.sb-list a{color:var(--ink);text-decoration:none;font-weight:600}.sb-list a:hover{color:var(--brand)}
.sb-n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--ink);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.sb-upd{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.sb-upd a{display:flex;gap:10px;text-decoration:none;color:var(--ink);font-size:14px;line-height:1.35;font-weight:600}
.sb-upd img{flex:none;width:96px;height:54px;object-fit:cover;border-radius:8px}
.sb-upd time{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:3px}
.sb-banner{display:block;margin-bottom:10px}.sb-banner img{display:block;width:100%;height:auto;border-radius:10px}
.sb-note{font-size:12px;color:var(--muted);margin:0}
.sb-trust{background:var(--soft);border-color:transparent}.sb-trust p{font-size:14px;margin:0 0 8px}.sb-trust a{font-weight:700;font-size:14px}
@media (max-width:980px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{position:static}.layout .prose{max-width:820px;width:100%;margin:0 auto}.sidebar{max-width:820px;width:100%;margin:0 auto}}
.sidebar section{margin-top:0}
/* ---------- v4: conversion components ---------- */
.prose h2{position:relative;padding-top:6px}
.prose h2:before{content:"";display:block;width:44px;height:4px;border-radius:4px;background:var(--accent);margin-bottom:10px}
.factcheck{margin:6px 0 0;font-size:13px!important;color:#1f6b40}.factcheck span{display:inline-flex;width:18px;height:18px;border-radius:50%;background:#e3f4ea;align-items:center;justify-content:center;font-weight:800;margin-right:4px}.factcheck a{color:#1f6b40}
.takeaways{background:#fff;border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:14px;padding:14px 20px;margin:18px 0}
.tk-title{margin:0 0 6px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px!important;color:var(--brand)}
.takeaways ul{margin:0;padding-left:20px}.takeaways li{margin:4px 0}
.answer{background:linear-gradient(135deg,#eef5fa,#fff);border:1px solid #cfe0ec;border-radius:16px;padding:16px 20px;margin:16px 0}
.answer-label{margin:0 0 4px!important;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px!important;color:var(--brand)}.answer p{margin:0}
.tlogo{display:inline-flex;align-items:center;justify-content:center;border-radius:14px;flex:none;overflow:hidden;background:#fff;border:1px solid var(--line)}
.tlogo img{width:100%;height:100%;object-fit:contain}
.tlogo.mono{color:#fff;font-weight:800;font-size:24px;border:0;letter-spacing:-.02em}
.toolcard{position:relative;background:#fff;border:2px solid var(--brand);border-radius:18px;padding:20px 22px;margin:24px 0;box-shadow:0 10px 30px rgba(15,76,117,.08)}
.tc-badge{position:absolute;top:-13px;left:20px;background:var(--accent);color:var(--ink);font-weight:800;font-size:12px;padding:4px 12px;border-radius:999px;letter-spacing:.03em}
.tc-head{display:flex;gap:14px;align-items:center}
.tc-name{margin:0!important;font-weight:800;font-size:21px!important}
.tc-pitch{margin:2px 0 0!important;color:#3f4f5b;font-size:15px!important}
.tc-points{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.tc-points li{font-size:15px!important;padding-left:24px;position:relative;margin:0}
.tc-points li:before{content:"✓";position:absolute;left:0;top:0;color:var(--buy);font-weight:800}
.tc-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.tc-price{margin:0!important;font-size:16px!important}.tc-price small{display:block;color:var(--muted);font-size:12px}
.tc-cta{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.tc-cta .btn.buy{display:inline-block;margin:0;padding:12px 22px}
.tc-more{font-size:14px;font-weight:700}
.btn.sm{padding:8px 14px;font-size:14px;margin:0;white-space:nowrap}
.btn.big{padding:14px 26px;font-size:18px}
.picks{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;margin:18px 0;box-shadow:0 6px 20px rgba(15,76,117,.06)}
.picks-title{margin:0 0 10px!important;font-weight:800;font-size:17px!important}
.picks ul{list-style:none;margin:0;padding:0}
.picks li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.picks li:first-child{border-top:0}
.pk-main{flex:1;min-width:0}.pk-name{margin:0!important;font-weight:800;font-size:16px!important}.pk-price{margin:0!important;font-size:14px!important;color:var(--muted)}
.pk-badge{display:inline-block;background:#fff4d6;color:#7a5600;font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;vertical-align:middle}
.picks-note{margin:8px 0 0!important;font-size:12px!important;color:var(--muted)}
.finalcta{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#0b3a5a,#0f4c75);color:#fff;border-radius:20px;padding:22px 24px;margin:32px 0}
.finalcta .fc-title{margin:0!important;font-weight:800;font-size:20px!important;color:#fff}.finalcta p{margin:4px 0 0;color:#dbe8f2}.finalcta>div{flex:1}
.finalcta .btn{margin:0;white-space:nowrap}
.sb-feature{border:2px solid var(--brand)}.sbf-head{display:flex;gap:10px;align-items:center}.sbf-name{margin:0;font-weight:800;font-size:17px}.sbf-badge{margin:0;font-size:12px;color:#7a5600;font-weight:700}
.sbf-price{font-size:14px;margin:10px 0 4px}.sb-feature .btn.buy{margin:6px 0}
.tablewrap tbody tr:nth-child(even){background:#fafcfd}
@media (max-width:640px){.tc-points{grid-template-columns:1fr}.tc-cta{align-items:stretch;width:100%}.tc-cta .btn.buy{text-align:center}.finalcta{flex-direction:column;align-items:flex-start}.finalcta .btn{width:100%;text-align:center}.picks li{flex-wrap:wrap}.picks li .btn{margin-left:56px}}
.linkbtn{background:none;border:0;padding:0;color:#fff;font:inherit;text-align:left;text-decoration:underline;cursor:pointer}
.consent-banner[hidden]{display:none!important}
/* v7: complete grids on desktop */
.grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card.featured{flex-direction:row}
.card.span2{grid-column:span 2}.card.span3{grid-column:span 3}
.card.featured .card-img{flex:0 0 55%}.card.featured .card-img img{height:100%;aspect-ratio:auto;min-height:100%}
.card.span3 .card-img{flex-basis:50%}
.card.featured .card-body{padding:26px 28px;justify-content:center}
.card.featured h3{font-size:24px}.card.featured p{flex:0;font-size:16px}
.card.featured .tag:after{content:" · Featured";}
@media (max-width:980px){.grid.cols3{grid-template-columns:repeat(2,minmax(0,1fr))}.card.span3{grid-column:span 2}}
@media (max-width:820px){.card.featured{flex-direction:column}.card.featured .card-img img{aspect-ratio:16/9;height:auto}}
@media (max-width:640px){.grid.cols3,.grid.cols2{grid-template-columns:minmax(0,1fr)}.card.span2,.card.span3{grid-column:auto}}
/* v8: review layout */
.disclosure-line{font-size:13px!important;color:var(--muted);margin:-4px 0 14px}
.reviewcta{margin:22px 0 26px}
.reviewcta .tlogo{border-radius:16px}
.ctastrip{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--buy);border-radius:16px;padding:12px 16px;margin:22px 0}
.ctastrip p{flex:1;margin:0!important;font-size:15px!important}
.ctastrip .btn{margin:0;white-space:nowrap}
.glancebox{background:var(--soft);border-radius:16px;padding:16px 20px;margin:18px 0}
.gl-title{margin:0 0 8px!important;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:13px!important;color:var(--brand)}
.glancebox dl{display:grid;grid-template-columns:160px 1fr;gap:6px 14px;margin:0}.glancebox dt{font-weight:700;font-size:15px}.glancebox dd{margin:0;font-size:15px}
.promo{margin:28px 0}.promo img{display:block;width:100%;height:auto;border-radius:14px}
.altgrid{display:grid;gap:12px;margin:16px 0 8px}
.altcard{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.alt-main{flex:1;min-width:0}.alt-name{margin:0!important;font-weight:800;font-size:17px!important}.alt-name a{color:var(--ink);text-decoration:none}
.alt-price{margin:2px 0 0!important;font-size:14px!important;color:var(--muted)}
.alt-cta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
@media (max-width:640px){.ctastrip,.altcard{flex-wrap:wrap}.ctastrip .btn,.alt-cta{width:100%}.alt-cta{align-items:stretch}.alt-cta .btn{text-align:center}.ctastrip .btn{text-align:center}.glancebox dl{grid-template-columns:1fr}}
