/* Chatbot Prices: editorial design system.
   Self-hosted fonts (OFL): Source Serif 4 for headings and figures in prose, Public Sans for UI and tables.
   Hairline rules, one accent (ink blue), tabular figures, no shadows, pills or gradients.
   Neutral tokens (paper, ink, rules, ochre for paid tags) follow the shared comparison-site standard; the accent is this site's own. */
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:360 620;font-display:swap;src:url(/fonts/source-serif-4-roman-latin.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:420;font-display:swap;src:url(/fonts/source-serif-4-italic-latin.woff2) format("woff2")}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-latin.woff2) format("woff2")}
:root{--paper:#f5f1e8;--paper2:#ece6d9;--sheet:#fffdf8;--ink:#171614;--ink2:#2c2a26;--muted:#5c5850;--rule:#d6cebe;--rule2:#b9b09e;
--blue:#1f3566;--blue2:#142447;--bluewash:#e6e9f1;--ochre:#7d4f0b;--ochrebg:#f6e8c8;--ochreline:#d2a650;
--serif:"Source Serif 4",Georgia,"Times New Roman",serif;--sans:"Public Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--wrap:1240px;--gut:24px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16.5px/1.62 var(--sans);color:var(--ink2);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:clip}
h1,h2,h3{color:var(--ink);font-family:var(--serif);font-weight:440;letter-spacing:-.012em;line-height:1.15}
h1{font-size:clamp(34px,5vw,56px);margin:0 0 18px;max-width:20ch}
h2{font-size:clamp(25px,3vw,33px);margin:56px 0 14px}
h3{font-size:20px;font-weight:560;margin:28px 0 8px}
p{max-width:68ch}
a{color:var(--blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(31,53,102,.4)}
a:hover{text-decoration-color:currentColor;text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:9}.skip:focus{left:12px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
small{font-size:13.5px}.num,td,th{font-variant-numeric:tabular-nums lining-nums}
.muted{color:var(--muted)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Masthead */
.preview{background:var(--ink);color:#f3f1ea;font-size:13px;text-align:center;padding:7px 12px}
.dateline{border-bottom:1px solid var(--rule);font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:560}
.dateline .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
header.site{border-bottom:2px solid var(--ink)}
.mast{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;flex-wrap:wrap}
.logo{text-decoration:none;color:var(--ink)}
.wm{font-family:var(--serif);font-size:27px;letter-spacing:-.02em}.wm-b{font-style:italic;color:var(--blue)}
nav.main{display:flex;gap:22px;flex-wrap:wrap;font-size:15px}
nav.main a{color:var(--ink2);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current]{border-bottom-color:var(--blue);color:var(--ink)}

/* Page furniture */
main{padding-bottom:72px}
.crumbs{font-size:13.5px;color:var(--muted);margin:22px 0 0}.crumbs a{color:var(--muted)}
.kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);font-weight:650;margin:34px 0 10px}
.dek{font-family:var(--serif);font-size:clamp(19px,2.1vw,23px);line-height:1.45;color:var(--ink2);max-width:58ch;margin:0 0 22px}
.byline{font-size:13.5px;color:var(--muted);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:10px 0;margin:22px 0 30px;display:flex;gap:18px;flex-wrap:wrap}
.hero{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;padding:28px 0 18px;border-bottom:1px solid var(--rule)}
.hero aside{border-left:1px solid var(--rule);padding-left:28px;font-size:15px}
.hero aside h2{font-size:19px;margin:6px 0 10px;font-weight:560}
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);margin:30px 0}
.figs div{padding:16px 18px 16px 0}.figs div+div{padding-left:18px;border-left:1px solid var(--rule)}
.figs b{display:block;font-family:var(--serif);font-size:32px;font-weight:460;color:var(--ink);line-height:1.1}
.figs span{font-size:13.5px;color:var(--muted)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 34px}
.cols>div{border-top:1px solid var(--rule);padding-top:12px}
.cols h3{margin-top:4px}
.note{border-left:3px solid var(--blue);background:var(--sheet);padding:14px 18px;margin:22px 0;max-width:76ch}
.note.warn{border-left-color:var(--ochreline);background:#fbf5e6}
.note p{margin:6px 0}
ul.plain{padding-left:20px;max-width:70ch}ul.plain li{margin:6px 0}
dl.facts{display:grid;grid-template-columns:minmax(150px,220px) 1fr;border-top:1px solid var(--ink);margin:18px 0}
dl.facts dt,dl.facts dd{padding:11px 0;border-bottom:1px solid var(--rule);margin:0}
dl.facts dt{font-weight:620;color:var(--ink);font-size:14.5px;padding-right:16px}
.unv{display:inline-block;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;font-weight:650;color:var(--ochre);border:1px solid var(--ochreline);padding:0 6px;border-radius:2px;margin-left:4px;vertical-align:1px;white-space:nowrap}
.tag{display:inline-block;font-size:12px;font-weight:650;padding:1px 7px;border:1px solid var(--rule2);border-radius:2px;white-space:nowrap}
.tag.feat{background:var(--ochrebg);border-color:var(--ochreline);color:var(--ochre)}
.tag.ret{border-color:#a33;color:#8a1f1f}
.src{font-size:13px;color:var(--muted)}
.btn{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;padding:10px 16px;font-weight:600;font-size:15px;border-radius:2px}
.btn:hover{background:var(--blue2);color:#fff}
.golink{white-space:nowrap}
.aff-label{display:inline-block;font-size:11.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--ochre);margin-left:6px}

/* Tables */
.tablewrap{overflow-x:auto;border-top:2px solid var(--ink);margin:18px 0 8px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14.5px;background:transparent}
th,td{text-align:left;vertical-align:top;padding:12px 12px 12px 0;border-bottom:1px solid var(--rule)}
th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:650;border-bottom:1px solid var(--ink)}
td small{display:block;color:var(--muted);line-height:1.45;margin-top:3px}
td.rank{font-family:var(--serif);font-size:22px;color:var(--ink);width:44px}
td.rank .paid{font-family:var(--sans);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ochre);font-weight:700}
td.est b{font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}
tr.is-feat td{background:#fbf3df}
td .tname{font-weight:650;color:var(--ink);text-decoration:none}td .tname:hover{text-decoration:underline}
.filters{display:flex;gap:18px;flex-wrap:wrap;align-items:end;font-size:14px;margin:18px 0 0}
.filters label{display:flex;flex-direction:column;gap:4px;font-weight:600}
.filters label.chk{flex-direction:row;align-items:center;gap:8px;font-weight:500}
select{font:inherit;padding:7px 8px;border:1px solid var(--rule2);background:var(--sheet);border-radius:2px}
.foot-note{font-size:13.5px;color:var(--muted);max-width:90ch}
col.c-rank{width:46px}col.c-tool{width:16%}col.c-est{width:18%}col.c-entry{width:17%}col.c-ai{width:13%}col.c-free{width:11%}col.c-extra{width:13%}col.c-src{width:11%}
input[type=number],input[type=search]{font:inherit;padding:7px 8px;border:1px solid var(--rule2);background:var(--sheet);border-radius:2px;width:11em;max-width:100%}
.filters small{font-weight:400;color:var(--muted);max-width:16em}
fieldset{border:0;padding:0;margin:0;display:flex;gap:14px;flex-wrap:wrap;align-items:center}fieldset legend{font-weight:600;padding:0;margin-bottom:4px;width:100%}
.calc{padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.unknown{color:var(--muted)}
@media (max-width:820px){
 .mast{min-height:0;padding-top:12px;padding-bottom:8px;gap:6px}.dateline .wrap>span+span{display:none}
 nav.main{display:flex;flex-wrap:wrap;gap:0 16px;width:100%;font-size:14.5px;border-top:1px solid var(--rule);padding-top:4px}
 nav.main a{white-space:nowrap;padding:4px 0}
 .golink{white-space:normal}
 .hero{grid-template-columns:1fr;gap:20px}.hero aside{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:14px}
 table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
 table.stack thead,table.stack colgroup{display:none}
 table.stack tr{border-bottom:1px solid var(--ink2);padding:12px 0}
 table.stack td,table.stack th[scope=row]{border:0;padding:5px 0 5px 112px;position:relative;min-height:26px}
 table.stack th[scope=row]{display:block;padding-left:0;padding-top:12px}
 table.stack td::before{content:attr(data-label);position:absolute;left:0;top:7px;width:100px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:650;line-height:1.3}
 table.stack td.rank{font-size:18px}
 table.stack caption{display:none}
 dl.facts{grid-template-columns:1fr}dl.facts dt{border-bottom:0;padding-bottom:0}
 .figs div+div{border-left:0;padding-left:0;border-top:1px solid var(--rule)}
}

/* Stamp, folds, pull quotes */
.stamp{max-width:none;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 18px}
.stamp>*+*{border-left:1px solid var(--rule2);padding-left:14px}.stamp time{color:var(--ink)}
details{border-top:1px solid var(--rule);margin:0}details.fold:last-of-type{border-bottom:1px solid var(--rule)}
summary{cursor:pointer;font-family:var(--serif);font-size:18.5px;color:var(--ink);padding:16px 0;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
summary::-webkit-details-marker{display:none}summary:after{content:"+";font-family:var(--sans);font-size:22px;line-height:1;color:var(--blue)}
details[open] summary:after{content:"\2212"}
details.fold summary h2{margin:0;font-size:clamp(22px,2.4vw,27px)}details.fold>ul,details.fold>p{margin-top:0;max-width:72ch}details.fold{margin-top:28px}
blockquote.pull{margin:28px 0;padding:6px 0 6px 20px;border-left:3px solid var(--blue);font-family:var(--serif);font-size:22px;color:var(--ink);max-width:40ch}blockquote.pull p{margin:0}
.btn.alt{background:transparent;color:var(--blue);border:1px solid var(--blue);margin-left:8px}.btn.alt:hover{background:var(--bluewash);color:var(--blue2)}
.whence h2{font-size:22px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Footer */
footer.site{border-top:2px solid var(--ink);padding:28px 0 44px;font-size:14px;color:var(--muted)}
footer.site .cols>div{border-top:0;padding-top:0}
footer.site a{color:var(--ink2)}
footer.site ul{list-style:none;padding:0;margin:6px 0}footer.site li{margin:4px 0}
footer.site .f-about{max-width:80ch;margin:0 0 18px;color:var(--ink2)}footer.site .f-small{margin:18px 0 0;font-size:13px}
footer.site h2{font-size:13px;font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;color:var(--ink);font-weight:650}
