/* Best Link Building Services: site.css (component contract v1)
Tokens first, then base, layout and components. Light theme only.
Class names follow docs/component-contract.md;additions are listed in design/BRAND.md. */

/* Fonts: self-hosted OFL Latin subsets (BRAND.md) */
@font-face {
font-family:"Newsreader";
src:url("../fonts/newsreader-latin-var.woff2") format("woff2");
font-weight:500 800;font-style:normal;font-display:swap;
}
@font-face {
font-family:"Newsreader";
src:url("../fonts/newsreader-italic-latin-var.woff2") format("woff2");
font-weight:400 500;font-style:italic;font-display:swap;
}
@font-face {
font-family:"Public Sans";
src:url("../fonts/publicsans-latin-var.woff2") format("woff2");
font-weight:400 800;font-style:normal;font-display:swap;
}
@font-face {
font-family:"Public Sans";
src:url("../fonts/publicsans-italic-latin-var.woff2") format("woff2");
font-weight:400 700;font-style:italic;font-display:swap;
}

/* Tokens */
:root {
/* Colour: ledger green + marigold on warm paper */
--c-paper:#F7F4EC;
--c-surface:#FFFFFF;
--c-surface-2:#F0EBDF;
--c-line:#DCD5C5;
--c-line-strong:#8C8473;
--c-ink:#18201C;
--c-ink-2:#4B5550;
--c-ink-3:#5F6863;
--c-green-900:#0A3A2C;
--c-green-800:#084633;
--c-green-700:#0B5640;
--c-green-300:#7FB39C;
--c-green-100:#E2EEE7;
--c-green-50:#EFF6F1;
--c-marigold:#F2B233;
--c-marigold-100:#FCEFCF;
--c-marigold-700:#8A5A00;
--c-clay:#9B3E14;
--c-clay-100:#F7E6DA;
--c-on-dark:#F7F4EC;
--c-on-dark-2:#C9D8CF;
--c-focus:var(--c-green-700);

/* Type */
--font-serif:"Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
--font-sans:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
--fs-100:0.75rem;
--fs-200:0.875rem;
--fs-300:1rem;
--fs-400:1.0625rem;
--fs-500:1.1875rem;
--fs-600:clamp(1.25rem, 1.15rem + 0.45vw, 1.4375rem);
--fs-700:clamp(1.5rem, 1.25rem + 1.1vw, 2rem);
--fs-800:clamp(2.125rem, 1.6rem + 2.4vw, 3.25rem);
--lh-tight:1.12;
--lh-body:1.62;

/* Space (4px base) */
--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.25rem;
--sp-6:1.5rem;--sp-7:2rem;--sp-8:2.5rem;--sp-9:3rem;--sp-10:4rem;
--section-gap:clamp(2.5rem, 2rem + 2.5vw, 4rem);

/* Shape */
--r-s:3px;--r-m:6px;--r-l:10px;--r-pill:999px;
--shadow-1:0 1px 2px rgb(24 32 28 / 0.06), 0 1px 1px rgb(24 32 28 / 0.04);
--shadow-2:0 10px 24px -14px rgb(10 58 44 / 0.35), 0 2px 4px rgb(24 32 28 / 0.05);

/* Layout */
--max:80rem;
--gutter:clamp(1rem, 4vw, 2rem);
--measure:68ch;
--aside:15rem;

/* Icons (inline data URIs; no external requests) */
--i-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h10M8.5 4l4 4-4 4' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
--i-external:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 3h8v8M13 3 3.5 12.5' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
--i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8.5 3.2 3L13 4.5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
--i-list:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.5 4H14M5.5 8H14M5.5 12H14' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='2.3' cy='4' r='1.2'/%3E%3Ccircle cx='2.3' cy='8' r='1.2'/%3E%3Ccircle cx='2.3' cy='12' r='1.2'/%3E%3C/svg%3E");
}

/* Base */
.cta::after, .toc-jump::before, .provider__strengths li::before, .top-picks__item::after, .provider__next a::after, .needs__pick::after, .readnext::after, .not-found li a::after { content:"";flex:none;background:currentColor;mask:var(--icon, var(--i-arrow)) center / contain no-repeat;}
*, *::before, *::after { box-sizing:border-box;}
html { -webkit-text-size-adjust:100%;text-size-adjust:100%;}
@media (prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth;} }
body {
margin:0;
background:var(--c-paper);
color:var(--c-ink);
font:400 var(--fs-400)/var(--lh-body) var(--font-sans);
font-variant-numeric:lining-nums;
border-top:4px solid var(--c-green-700);
}
img, svg { max-width:100%;height:auto;}
h1, h2, h3, h4 { font-family:var(--font-serif);font-weight:700;line-height:var(--lh-tight);color:var(--c-ink);margin:0;text-wrap:balance;}
p, ul, ol, dl, dd, figure, blockquote { margin:0;}
a { color:var(--c-green-700);text-decoration-thickness:1px;text-underline-offset:0.18em;}
a:hover { color:var(--c-green-800);text-decoration-thickness:2px;}
:focus-visible { outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-s);}
[id] { scroll-margin-top:var(--sp-6);}
strong, b { font-weight:700;}
table { font-variant-numeric:tabular-nums lining-nums;}

.skip-link {
position:absolute;left:var(--sp-4);top:-100px;z-index:100;
padding:var(--sp-3) var(--sp-4);background:var(--c-ink);color:var(--c-on-dark);
font-weight:700;border-radius:var(--r-m);text-decoration:none;
}
.skip-link:focus { top:var(--sp-4);}

/* Header */
.site-header {
display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
column-gap:var(--sp-6);
padding:var(--sp-3) max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))) 0;
background:var(--c-surface);
border-bottom:1px solid var(--c-line);
}
.site-logo { display:inline-flex;align-items:center;padding-block:var(--sp-2);line-height:0;}
.site-logo img, .site-logo svg { height:28px;width:auto;}
.site-nav { width:100%;}
.site-nav ul { display:flex;gap:0;margin:0 calc(var(--sp-3) * -1);padding:0;list-style:none;overflow-x:auto;}
.site-nav a {
display:block;padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + 1px);
color:var(--c-ink);font-size:var(--fs-300);font-weight:600;text-decoration:none;white-space:nowrap;
box-shadow:inset 0 -3px 0 transparent;
}
.site-nav a:hover { color:var(--c-green-700);box-shadow:inset 0 -3px 0 var(--c-green-100);}
.site-nav a[aria-current="page"] { color:var(--c-green-700);box-shadow:inset 0 -3px 0 var(--c-marigold);}
.site-nav__toggle { display:none;} /* unused, see BRAND.md */
@media (min-width:64rem) {
.site-header { flex-wrap:nowrap;padding-block:0;}
.site-logo { padding-block:var(--sp-4);}
.site-logo img, .site-logo svg { height:36px;}
.site-nav { width:auto;}
.site-nav ul { margin:0;gap:var(--sp-2);overflow:visible;}
.site-nav a { padding-block:calc(var(--sp-6) + 2px) var(--sp-6);}
}

/* Page frame */
.page {
max-width:var(--max);margin-inline:auto;
padding:var(--sp-6) var(--gutter) var(--sp-10);
}
.page__main { min-width:0;}
.page__aside { margin-top:var(--section-gap);}
@media (min-width:64rem) {
.page { padding-top:var(--sp-7);}
.page:has(> .page__aside) {
display:grid;grid-template-columns:13rem minmax(0, 1fr);column-gap:var(--sp-8);
}
.page:has(> .page__aside) > .page__main { grid-column:2;grid-row:1;}
.page__aside {
grid-column:1;grid-row:1;align-self:start;margin-top:0;
position:sticky;top:var(--sp-6);
max-height:calc(100vh - var(--sp-7));overflow-y:auto;overscroll-behavior:contain;
padding:var(--sp-1) var(--sp-1) var(--sp-4) 0;
}
}
@media (min-width:80rem) {
.page:has(> .page__aside) { grid-template-columns:var(--aside) minmax(0, 1fr);column-gap:var(--sp-9);}
}
.page--page:not(:has(> .page__aside)) .page__main { max-width:46rem;margin-inline:auto;}
.page--hub .page-head { padding-bottom:var(--sp-6);border-bottom:1px solid var(--c-line);}
.page--author .breadcrumb + .author-profile { margin-top:var(--sp-6);}
/* No-:has() fallback: list and guide pages always have a TOC aside */
@supports not selector(:has(a)) {
@media (min-width:64rem) {
.page--list, .page--guide { display:grid;grid-template-columns:13rem minmax(0, 1fr);column-gap:var(--sp-8);}
.page--list > .page__main, .page--guide > .page__main { grid-column:2;grid-row:1;}
}
}

/* Main column rhythm */
.page__main > * + * { margin-top:var(--section-gap);}
.page__main > .breadcrumb + .page-head { margin-top:var(--sp-4);}
.page__main > .page-head + * { margin-top:var(--sp-7);}
.page__main > .answer-box + .top-picks, .page__main > .takeaways + * { margin-top:var(--sp-7);}
.page__main > .prose:not(:has(> h2:first-child)) { margin-top:var(--sp-7);}
.page__main > .prose + :is(.needs, .readnext, .prose-figure, .parent-card) { margin-top:var(--sp-6);}

/* Breadcrumb */
.breadcrumb ol { display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2);margin:0;padding:0;list-style:none;font-size:var(--fs-200);color:var(--c-ink-2);}
.breadcrumb li { display:inline-flex;align-items:center;gap:var(--sp-2);}
.breadcrumb li + li::before {
content:"";width:0.4em;height:0.4em;margin-right:0.15em;
border-top:1.5px solid var(--c-ink-3);border-right:1.5px solid var(--c-ink-3);transform:rotate(45deg);
}
.breadcrumb a { color:var(--c-ink-2);}
.breadcrumb a:hover { color:var(--c-green-700);}
.breadcrumb [aria-current="page"] { color:var(--c-ink);font-weight:600;}

/* Title block + byline */
.page-head { display:grid;gap:var(--sp-4);}
.page-head__kicker {
display:inline-flex;align-items:center;gap:var(--sp-2);justify-self:start;
color:var(--c-green-700);
}
.page-head__kicker::before { content:"";width:0.75em;height:0.75em;background:var(--c-marigold);border-radius:1px;}
.page-head__title { font-size:var(--fs-800);font-weight:750;letter-spacing:-0.018em;line-height:1.06;max-width:22ch;}
.page-head__dek { font-size:var(--fs-500);line-height:1.5;color:var(--c-ink-2);max-width:60ch;}

.byline {
display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-3);
padding-top:var(--sp-4);border-top:1px solid var(--c-line);
font-size:var(--fs-200);color:var(--c-ink-2);
}
.byline__author { font-weight:700;color:var(--c-ink);}
.byline__role::before { content:", ";margin-left:calc(-1 * var(--sp-3));}
.byline__date, .byline__readtime { display:inline-flex;align-items:center;gap:var(--sp-3);}
.byline__date::before, .byline__readtime::before { content:"";width:4px;height:4px;border-radius:50%;background:var(--c-line-strong);}
.byline__date { color:var(--c-ink);font-weight:600;}

/* Prose */
.prose, .provider__body { font-size:var(--fs-400);line-height:var(--lh-body);}
.prose > * + *, .provider__body > * + * { margin-top:var(--sp-4);}
.prose > *, .provider__body > * { max-width:var(--measure);}
.prose > .table-scroll, .prose > figure, .provider__body > .table-scroll { max-width:none;}
.prose h2 { font-size:var(--fs-700);letter-spacing:-0.01em;margin-top:var(--sp-9);}
.prose h3 { font-size:var(--fs-600);margin-top:var(--sp-7);}
.prose > :is(.table-scroll, figure, .callout, .readnext) { margin-block:var(--sp-6);}
.prose h2 + *, .prose h3 + * { margin-top:var(--sp-3);}
.prose > :first-child { margin-top:0;}
.prose ul, .prose ol, .provider__body ul, .provider__body ol { padding-left:1.4em;}
.prose li + li, .provider__body li + li { margin-top:var(--sp-2);}
.prose ul > li::marker, .provider__body ul > li::marker { color:var(--c-green-700);}
.prose ol > li::marker { color:var(--c-green-700);font-weight:700;}
.prose blockquote {
padding:var(--sp-1) 0 var(--sp-1) var(--sp-6);border-left:3px solid var(--c-marigold);
font:italic 450 var(--fs-600)/1.42 var(--font-serif);color:var(--c-ink);
}
.prose blockquote p + p { margin-top:var(--sp-3);}
.prose blockquote footer, .prose blockquote cite, .prose figure > blockquote + figcaption {
display:block;margin-top:var(--sp-3);font:normal 600 var(--fs-200)/1.4 var(--font-sans);color:var(--c-ink-2);
}
.prose figure > blockquote + figcaption { padding-left:calc(var(--sp-6) + 3px);}
.prose figure img, .prose-figure img { display:block;width:100%;height:auto;border:1px solid var(--c-line);border-radius:var(--r-l);background:var(--c-surface);}
.prose figcaption, .prose-figure figcaption { margin-top:var(--sp-2);font-size:var(--fs-200);color:var(--c-ink-2);max-width:var(--measure);}
.prose hr { border:0;border-top:1px solid var(--c-line);margin-block:var(--sp-8);}

/* Answer box */
.answer-box {
position:relative;padding:var(--sp-5) var(--sp-6) var(--sp-6);
background:var(--c-surface);border:1px solid var(--c-line);border-left:6px solid var(--c-green-700);
border-radius:var(--r-m);box-shadow:var(--shadow-1);
}
.answer-box__label, .takeaways__label, .callout__label, .toc__label, .parent-card__label, .provider__list-title, .provider__verdict-label,
.page-head__kicker, .provider__flag, .facts__label, .card__meta, .side-nav__label, .author-box__label, .author-profile__label, thead th, .needs__label, .readnext__label {
font-family:var(--font-sans);font-size:var(--fs-100);font-weight:800;letter-spacing:0.08em;text-transform:uppercase;line-height:1.4;
}
.toc__label, .facts__label, .card__meta, .side-nav__label, .author-box__label, .author-profile__label, .parent-card__label { color:var(--c-ink-2);}
.answer-box__label { display:flex;align-items:center;gap:var(--sp-2);color:var(--c-green-700);}
.answer-box__label::before { content:"";width:0.75em;height:0.75em;background:var(--c-marigold);border-radius:1px;}
.answer-box__text { margin-top:var(--sp-2);font-size:var(--fs-400);line-height:1.5;font-weight:500;max-width:var(--measure);}
.answer-box__text a { font-weight:700;}
@media (min-width:40rem) { .answer-box__text { font-size:var(--fs-500);} }

/* Section headings used outside .prose */
.top-picks__title, .section-title, .faq > h2, .sources > h2, .related > h2 { font-size:var(--fs-700);letter-spacing:-0.01em;}

/* Top picks: ranked cards, not a table */
p.section-intro + * { margin-top:var(--sp-5);}
.top-picks__list { display:grid;gap:var(--sp-2);margin:0;padding:0;list-style:none;}
.top-picks__item {
position:relative;min-height:3.75rem;padding:var(--sp-3) 2.5rem var(--sp-3) 3.75rem;
background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-l);box-shadow:var(--shadow-1);
transition:border-color 0.15s, box-shadow 0.15s;
}
.top-picks__item::after { position:absolute;right:var(--sp-4);top:calc(50% - 0.5rem);width:1rem;height:1rem;color:var(--c-green-700);transform:rotate(90deg);}
.top-picks__item:hover { border-color:var(--c-green-700);box-shadow:var(--shadow-2);}
.top-picks__item:has(:focus-visible) { outline:3px solid var(--c-focus);outline-offset:2px;}
.top-picks__rank, .provider__rank {
display:grid;place-items:center;
background:var(--c-green-900);color:var(--c-on-dark);
font-family:var(--font-serif);font-weight:800;font-variant-numeric:lining-nums tabular-nums;line-height:1;
border-radius:var(--r-m);
}
.top-picks__rank { position:absolute;left:var(--sp-3);top:calc(50% - 1.125rem);width:2.25rem;height:2.25rem;font-size:1.25rem;}
.top-picks__name { display:block;font-weight:700;color:var(--c-ink);text-decoration:none;line-height:1.3;}
.top-picks__name::before { content:"";position:absolute;inset:0;border-radius:inherit;}
.top-picks__name:hover { color:var(--c-green-700);}
.top-picks__name:focus-visible { outline:none;}
.top-picks__best-for, .top-picks__price { display:block;font-size:var(--fs-200);line-height:1.4;color:var(--c-ink-2);}
.top-picks__price { font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums;}
.top-picks__item--top { padding-block:var(--sp-4);padding-left:4.25rem;background:var(--c-marigold-100);border:2px solid var(--c-marigold);}
.top-picks__item--top .top-picks__rank, .provider--top .provider__rank { background:var(--c-marigold);color:var(--c-ink);}
.top-picks__item--top .top-picks__rank { top:calc(50% - 1.375rem);width:2.75rem;height:2.75rem;font-size:1.625rem;}
.top-picks__item--top .top-picks__name::after {
content:"Top pick";margin-left:var(--sp-2);padding:1px 6px;vertical-align:2px;
border-radius:var(--r-s);background:var(--c-ink);color:var(--c-on-dark);
font-size:0.6875rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;
}
@media (min-width:48rem) {
.top-picks__item, .top-picks__item--top { display:grid;grid-template-columns:auto auto minmax(0, 1fr) auto 1rem;column-gap:var(--sp-4);align-items:center;padding-inline:var(--sp-4) var(--sp-5);}
.top-picks__item > *, .top-picks__item::after { position:static;}
.top-picks__best-for { justify-self:start;padding:2px var(--sp-3);border-radius:var(--r-pill);background:var(--c-green-100);color:var(--c-green-700);font-weight:600;}
.top-picks__item--top .top-picks__name { font-size:var(--fs-500);}
.top-picks__price { white-space:nowrap;}
}

/* Tables */
.table-scroll {
overflow-x:auto;-webkit-overflow-scrolling:touch;
border:1px solid var(--c-line);border-radius:var(--r-l);
background:
linear-gradient(to left, var(--c-surface) 40%, rgb(255 255 255 / 0)) right center / 2.5rem 100% no-repeat local,
radial-gradient(farthest-side at 100% 50%, rgb(24 32 28 / 0.16), rgb(24 32 28 / 0)) right center / 0.9rem 100% no-repeat scroll,
var(--c-surface);
}
.table-scroll:focus-visible { outline-offset:3px;}
.table-scroll table, .prose table { width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-200);line-height:1.45;}
.table-scroll caption {
caption-side:top;text-align:left;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-200);color:var(--c-ink-2);
border-bottom:1px solid var(--c-line);
}
.table-scroll caption strong { color:var(--c-ink);}
th, td { text-align:left;vertical-align:top;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--c-line);}
thead th {
vertical-align:bottom;letter-spacing:0.06em;color:var(--c-ink-2);border-bottom:2px solid var(--c-ink);white-space:nowrap;background:var(--c-surface);
}
tbody tr:last-child > * { border-bottom:0;}
tbody th { font-weight:700;color:var(--c-ink);}
.checked { display:block;margin-top:2px;font-size:var(--fs-100);color:var(--c-ink-3);white-space:nowrap;}

.table-scroll table { min-width:34rem;}
.compare-table { min-width:50rem;}
.compare-table th, .compare-table td { padding-inline:var(--sp-3);}
.compare-table thead th { white-space:normal;}
.compare-table td:has(.checked) { font-weight:600;white-space:nowrap;}
.compare-table tbody th[scope="row"], .compare-table thead th:first-child {
position:sticky;left:0;z-index:1;min-width:8.5rem;max-width:10rem;
background:var(--c-surface);box-shadow:inset -1px 0 0 var(--c-line);
}
.compare-table thead th:first-child { z-index:2;}
.compare-table tbody th[scope="row"]:has(.compare-table__rank) { padding-left:calc(var(--sp-3) + 1.5rem + var(--sp-2));}
.compare-table tbody th[scope="row"] a { color:var(--c-ink);text-decoration:none;}
.compare-table tbody th[scope="row"] a:hover { color:var(--c-green-700);text-decoration:underline;}
.compare-table tbody tr:first-child > * { background:var(--c-marigold-100);}
.compare-table__rank {
position:absolute;left:var(--sp-3);top:calc(var(--sp-3) - 1px);
display:grid;place-items:center;width:1.5rem;height:1.5rem;
border-radius:var(--r-s);background:var(--c-green-900);color:var(--c-on-dark);
font:800 0.8125rem/1 var(--font-serif);
}
.compare-table tbody tr:first-child .compare-table__rank { background:var(--c-marigold);color:var(--c-ink);}
@media (min-width:40rem) {
.compare-table tbody th[scope="row"], .compare-table thead th:first-child { min-width:9.5rem;max-width:12rem;}
}

.criteria-table th[scope="row"] { min-width:10rem;}
.criteria-table__weight {
width:9rem;font-weight:700;color:var(--c-green-700);font-variant-numeric:tabular-nums;
background-image:linear-gradient(var(--c-green-700), var(--c-green-700)), linear-gradient(var(--c-green-100), var(--c-green-100));
background-size:calc((100% - 2 * var(--sp-4)) * var(--weight, 0) / 100) 6px, calc(100% - 2 * var(--sp-4)) 6px;
background-position:var(--sp-4) calc(100% - var(--sp-4)), var(--sp-4) calc(100% - var(--sp-4));
background-repeat:no-repeat;padding-bottom:calc(var(--sp-4) + 12px);
}
.criteria-table__weight:not([style*="--weight"]) { background-image:none;padding-bottom:var(--sp-3);}
.criteria-table td:last-child { min-width:16rem;color:var(--c-ink-2);}

/* Provider entry: #1 is a card, the rest open sections under a rule */
.provider { position:relative;padding-top:var(--sp-7);border-top:3px solid var(--c-ink);}
.provider > * + * { margin-top:var(--sp-6);}
.provider--top {
padding:var(--sp-7) var(--sp-5) var(--sp-6);background:var(--c-surface);
border:2px solid var(--c-marigold);border-top-width:6px;border-radius:var(--r-l);box-shadow:var(--shadow-2);
}
.provider__flag {
position:absolute;top:-6px;left:var(--sp-5);transform:translateY(-50%);
padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);
background:var(--c-marigold);color:var(--c-ink);
}
.provider > .provider__flag + * { margin-top:0;}
.provider__header {
display:grid;grid-template-columns:auto auto minmax(0, 1fr);
grid-template-areas:"rank mark best" "name name name";
column-gap:var(--sp-3);row-gap:var(--sp-3);align-items:center;
}
.provider__rank { grid-area:rank;width:3rem;height:3rem;font-size:1.75rem;}
.provider__mark {
grid-area:mark;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;
background:var(--c-surface-2);color:var(--c-ink-2);border:1px solid var(--c-line);overflow:hidden;
font:800 0.9375rem/1 var(--font-sans);letter-spacing:0.02em;
}
.provider__mark img { width:100%;height:100%;object-fit:contain;}
.provider__name { grid-area:name;font-size:var(--fs-700);letter-spacing:-0.012em;line-height:1.15;}
.provider__best-for {
grid-area:best;justify-self:start;
padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);
background:var(--c-green-100);color:var(--c-green-700);
font-size:var(--fs-200);font-weight:700;line-height:1.35;
}
@media (min-width:40rem) {
.provider--top { padding:var(--sp-8) var(--sp-7) var(--sp-7);}
.provider__flag { left:var(--sp-7);}
.provider__header {
grid-template-columns:auto auto minmax(0, 1fr);
grid-template-areas:"rank mark name" "rank mark best";
column-gap:var(--sp-4);row-gap:var(--sp-2);align-items:start;
}
.provider__rank { width:3.75rem;height:3.75rem;font-size:2.25rem;}
.provider__mark { width:3.75rem;height:3.75rem;font-size:1.0625rem;}
.provider__name { align-self:end;}
}

/* Facts: last row stretches, no empty cells */
.facts {
display:flex;flex-wrap:wrap;overflow:hidden;
border:1px solid var(--c-line);border-radius:var(--r-m);background:var(--c-surface);
}
.provider--top .facts { background:var(--c-paper);}
.facts__row {
flex:1 1 8.5rem;margin:0 -1px -1px 0;padding:var(--sp-3) var(--sp-4);
border-right:1px solid var(--c-line);border-bottom:1px solid var(--c-line);
}
.facts__value { margin-top:2px;font-size:var(--fs-300);font-weight:650;line-height:1.35;font-variant-numeric:tabular-nums;}
.facts__checked { display:block;margin-top:2px;font-size:var(--fs-100);font-weight:500;color:var(--c-ink-3);}

/* Strengths and things to know */
.provider__lists { display:grid;gap:var(--sp-5);}
@media (min-width:48rem) {
.provider__lists:has(> :nth-child(2)) { grid-template-columns:1fr 1fr;}
.provider__lists > :only-child > .provider__strengths { columns:2;column-gap:var(--sp-7);}
.provider__lists > :only-child li { break-inside:avoid;}
}
.provider__list-title { margin-bottom:var(--sp-3);color:var(--c-ink-2);}
.provider__strengths, .provider__notes { margin:0;padding:0;list-style:none;font-size:var(--fs-300);line-height:1.5;}
.provider__strengths li, .provider__notes li { position:relative;padding-left:1.75rem;}
.provider__strengths li + li, .provider__notes li + li { margin-top:var(--sp-2);}
.provider__strengths li::before {
--icon:var(--i-check);position:absolute;left:0;top:0.2em;width:1.15rem;height:1.15rem;color:var(--c-green-700);
}
.provider__notes li::before {
content:"";position:absolute;left:0.3rem;top:0.55em;width:0.5rem;height:0.5rem;
background:var(--c-clay);transform:rotate(45deg);
}
.provider__list:has(> .provider__notes) .provider__list-title { color:var(--c-clay);}
.provider__list:has(> .provider__strengths) .provider__list-title { color:var(--c-green-700);}

/* Verdict + CTA */
.provider__verdict {
padding:var(--sp-4) var(--sp-5);border-radius:var(--r-m);
background:var(--c-green-50);border-left:4px solid var(--c-green-700);
font-size:var(--fs-400);line-height:1.55;max-width:none;
}
.provider__verdict-label { display:block;margin-bottom:var(--sp-1);color:var(--c-green-700);}
.provider > .cta { margin-top:var(--sp-5);}
.provider__next {
display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2) var(--sp-5);
padding-top:var(--sp-4);border-top:1px dashed var(--c-line-strong);font-size:var(--fs-200);
}
.provider__next a { display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;text-decoration:none;}
.provider__next a::after { width:1em;height:1em;}
.provider__next a:hover { text-decoration:underline;}
.provider__next-top { color:var(--c-ink-2);}
.provider__next-top::after { transform:rotate(-90deg);}

.cta {
display:inline-block;text-align:center;
padding:calc(var(--sp-3) + 1px) var(--sp-6);
border:2px solid var(--c-green-700);border-radius:var(--r-m);
background:var(--c-surface);color:var(--c-green-700);
font-size:var(--fs-300);font-weight:750;line-height:1.2;text-decoration:none;
transition:background-color 0.15s, color 0.15s;
}
.cta::after { --icon:var(--i-external);display:inline-block;width:1em;height:1em;margin-left:0.45em;vertical-align:-0.14em;}
.cta:hover { background:var(--c-green-50);color:var(--c-green-800);text-decoration:none;}
.cta--primary { background:var(--c-green-700);color:#FFFFFF;}
.cta--primary:hover { background:var(--c-green-900);border-color:var(--c-green-900);color:#FFFFFF;}
@media (max-width:39.99rem) { .provider .cta { display:block;padding-inline:var(--sp-4);} }

/* v1.1: needs, read next, reading progress */
.needs {
padding:var(--sp-5) var(--sp-5) var(--sp-3);background:var(--c-surface);
border:1px solid var(--c-line);border-top:4px solid var(--c-green-700);border-radius:var(--r-l);box-shadow:var(--shadow-1);
}
.needs__label { color:var(--c-green-700);}
.needs ul { margin:var(--sp-2) 0 0;padding:0;list-style:none;}
.needs__item { display:grid;gap:2px var(--sp-6);padding:var(--sp-3) 0;}
.needs__item + .needs__item { border-top:1px dashed var(--c-line);}
.needs__if { font:650 var(--fs-400)/1.35 var(--font-serif);}
.needs__pick { justify-self:start;display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:700;text-decoration:none;}
.needs__pick::after { width:0.9em;height:0.9em;transform:rotate(90deg);}
.needs__pick:hover { text-decoration:underline;}
.needs__why { font-size:var(--fs-200);color:var(--c-ink-2);}
@media (min-width:48rem) {
.needs__item { grid-template-columns:minmax(0, 15rem) minmax(0, 1fr);grid-template-areas:"if pick" "if why";}
.needs__if { grid-area:if;} .needs__pick { grid-area:pick;} .needs__why { grid-area:why;}
}

.readnext {
position:relative;display:grid;grid-template-columns:minmax(0, 1fr) 1.5rem;column-gap:var(--sp-5);align-items:center;
padding:var(--sp-4) var(--sp-5);max-width:var(--measure);
background:var(--c-green-50);border:1px solid var(--c-green-100);border-left:6px solid var(--c-green-700);border-radius:var(--r-m);
transition:border-color 0.15s;
}
.readnext > * { grid-column:1;}
.readnext::after { grid-column:2;grid-row:1 / span 4;width:1.5rem;height:1.5rem;color:var(--c-green-700);}
.readnext:hover { border-color:var(--c-green-700);}
.readnext:has(:focus-visible) { outline:3px solid var(--c-focus);outline-offset:2px;}
.readnext__label { color:var(--c-green-700);}
.readnext__title { margin-top:var(--sp-1);font:700 var(--fs-600)/1.25 var(--font-serif);color:var(--c-ink);text-decoration:none;}
.readnext__title::before { content:"";position:absolute;inset:0;}
.readnext__title:hover { color:var(--c-green-700);text-decoration:underline;}
.readnext__title:focus-visible { outline:none;}
.readnext__desc { margin-top:var(--sp-1);font-size:var(--fs-200);line-height:1.5;color:var(--c-ink-2);}
.readnext__meta { margin-top:var(--sp-2);font-size:var(--fs-100);font-weight:700;color:var(--c-ink-3);}

.read-progress {
position:fixed;top:0;left:0;z-index:30;width:100%;height:3px;pointer-events:none;
background:var(--c-green-700);transform:scaleX(0);transform-origin:0 50%;
}

/* Key takeaways */
.takeaways {
padding:var(--sp-5) var(--sp-6) var(--sp-6);border-radius:var(--r-l);
background:var(--c-green-900);color:var(--c-on-dark);
}
.takeaways__label { color:var(--c-marigold);}
.takeaways ul { margin:var(--sp-3) 0 0;padding:0;list-style:none;max-width:var(--measure);}
.takeaways li { position:relative;padding-left:1.5rem;}
.takeaways li + li { margin-top:var(--sp-2);}
.takeaways li::before { content:"";position:absolute;left:0;top:0.6em;width:0.5rem;height:0.5rem;background:var(--c-marigold);}
.takeaways a { color:var(--c-on-dark);}
.takeaways :focus-visible { outline-color:var(--c-marigold);}

/* Callout */
.callout {
padding:var(--sp-4) var(--sp-5);border-radius:var(--r-m);
background:var(--c-surface);border:1px solid var(--c-line);border-left:4px solid var(--c-ink);
}
.callout > * + * { margin-top:var(--sp-2);}
.callout__label { color:var(--c-ink);}
.callout--tip { background:var(--c-green-50);border-color:var(--c-green-100);border-left-color:var(--c-green-700);}
.callout--tip .callout__label { color:var(--c-green-700);}
.callout--note { background:var(--c-marigold-100);border-color:#F3DDA6;border-left-color:var(--c-marigold);}
.callout--note .callout__label { color:var(--c-marigold-700);}
.prose > .callout { max-width:var(--measure);}

/* Table of contents */
.toc { padding:var(--sp-5);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-l);}
.toc__label { margin-bottom:var(--sp-3);}
.toc__list { margin:0;padding:0;list-style:none;border-left:2px solid var(--c-line);font-size:var(--fs-200);line-height:1.35;}
.toc__link {
display:block;margin-left:-2px;padding:var(--sp-2) 0 var(--sp-2) var(--sp-3);
border-left:2px solid transparent;color:var(--c-ink-2);text-decoration:none;
}
.toc__link:hover { color:var(--c-ink);border-left-color:var(--c-line-strong);}
.toc__link[aria-current="true"], .toc__link[aria-current="location"] { color:var(--c-green-700);font-weight:700;border-left-color:var(--c-green-700);}
.toc__link:focus-visible { outline-offset:-1px;}
@media (min-width:64rem) {
.toc { padding:0;background:none;border:0;border-radius:0;}
}
/* Mobile "Contents" jump link to the TOC */
.toc-jump {
position:fixed;right:var(--sp-4);bottom:max(var(--sp-4), env(safe-area-inset-bottom));z-index:20;
display:inline-flex;align-items:center;gap:var(--sp-2);
padding:var(--sp-2) var(--sp-4);min-height:2.75rem;border-radius:var(--r-pill);
background:var(--c-green-900);color:var(--c-on-dark);box-shadow:var(--shadow-2);
font-size:var(--fs-200);font-weight:700;text-decoration:none;
}
.toc-jump::before { --icon:var(--i-list);width:1rem;height:1rem;}
.toc-jump:hover { color:var(--c-on-dark);background:var(--c-green-700);}
@media (max-width:63.99rem) { .page:has(.toc-jump) { padding-bottom:6rem;} }
@media (min-width:64rem) { .toc-jump { display:none;} }

/* Side nav (trust pages) */
.side-nav ul { margin:0;padding:0;list-style:none;border-left:2px solid var(--c-line);font-size:var(--fs-300);}
.side-nav a { display:block;margin-left:-2px;padding:var(--sp-2) var(--sp-3);border-left:2px solid transparent;color:var(--c-ink-2);text-decoration:none;}
.side-nav a:hover { color:var(--c-ink);border-left-color:var(--c-line-strong);}
.side-nav a[aria-current="page"] { color:var(--c-green-700);font-weight:700;border-left-color:var(--c-green-700);}
.side-nav__label { margin-bottom:var(--sp-3);}

/* FAQ */
.faq > h2 { margin-bottom:var(--sp-4);}
.faq__item { border-top:1px solid var(--c-line);}
.faq__item:last-of-type { border-bottom:1px solid var(--c-line);}
.faq__q {
display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);
padding:var(--sp-4) 0;cursor:pointer;list-style:none;
font-size:var(--fs-400);font-weight:700;line-height:1.4;
}
.faq__q::-webkit-details-marker { display:none;}
.faq__q::after {
content:"";flex:none;width:1.5rem;height:1.5rem;margin-top:-0.05rem;border-radius:50%;
background:
linear-gradient(var(--c-green-700), var(--c-green-700)) center / 0.7rem 2px no-repeat,
linear-gradient(var(--c-green-700), var(--c-green-700)) center / 2px 0.7rem no-repeat,
var(--c-green-100);
}
.faq__item[open] > .faq__q::after {
background:linear-gradient(var(--c-on-dark), var(--c-on-dark)) center / 0.7rem 2px no-repeat, var(--c-green-700);
}
.faq__q:hover { color:var(--c-green-700);}
.faq__a { padding:0 0 var(--sp-5);max-width:var(--measure);color:var(--c-ink);}
.faq__a > * + * { margin-top:var(--sp-3);}

/* Author box */
.author-box {
display:grid;grid-template-columns:4.5rem minmax(0, 1fr);column-gap:var(--sp-5);row-gap:var(--sp-1);align-items:start;
padding:var(--sp-6);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-l);
}
.author-box > :not(.author-box__portrait) { grid-column:2;}
.author-box__portrait {
grid-column:1;grid-row:1 / span 4;width:4.5rem;height:4.5rem;border-radius:50%;overflow:hidden;object-fit:cover;
background:var(--c-marigold-100);border:2px solid var(--c-green-700);
}
.author-box__name { font:700 var(--fs-600)/1.2 var(--font-serif);color:var(--c-ink);text-decoration:none;justify-self:start;}
.author-box__name:hover { color:var(--c-green-700);text-decoration:underline;}
.author-box__role { font-size:var(--fs-200);font-weight:600;color:var(--c-ink-2);}
.author-box__bio { margin-top:var(--sp-2);font-size:var(--fs-300);max-width:var(--measure);}
@media (max-width:29.99rem) {
.author-box { grid-template-columns:3.5rem minmax(0, 1fr);padding:var(--sp-5);}
.author-box__portrait { width:3.5rem;height:3.5rem;grid-row:1 / span 3;}
.author-box > .author-box__bio { grid-column:1 / -1;}
}

/* Sources */
.sources > h2 { margin-bottom:var(--sp-4);}
.sources ol { margin:0;padding-left:1.6em;font-size:var(--fs-200);line-height:1.5;color:var(--c-ink-2);max-width:var(--measure);}
.sources li + li { margin-top:var(--sp-2);}
.sources li::marker { font-variant-numeric:tabular-nums;font-weight:700;color:var(--c-ink-2);}
.sources a { overflow-wrap:anywhere;}
.sources__date { display:inline-block;margin-left:var(--sp-1);color:var(--c-ink-3);white-space:nowrap;}

/* Parent card */
.parent-card {
display:grid;column-gap:var(--sp-4);align-items:center;
position:relative;padding:var(--sp-4) var(--sp-5);max-width:var(--measure);
background:var(--c-surface);border:1px solid var(--c-line);border-left:6px solid var(--c-marigold);border-radius:var(--r-m);
}
.parent-card:has(> .parent-card__icon) { grid-template-columns:auto minmax(0, 1fr);}
.parent-card__icon { grid-row:1 / span 2;width:2.5rem;height:2.5rem;}
.parent-card__icon ~ * { grid-column:2;}
.parent-card__link { font:700 var(--fs-600)/1.25 var(--font-serif);color:var(--c-ink);text-decoration:none;}
.parent-card__link::after { content:"";position:absolute;inset:0;border-radius:inherit;}
.parent-card__link:hover { color:var(--c-green-700);text-decoration:underline;}
.parent-card:has(:focus-visible) { outline:3px solid var(--c-focus);outline-offset:2px;}
.parent-card__link:focus-visible { outline:none;}

/* Cards: related + hub */
.related > h2 { margin-bottom:var(--sp-5);}
.card-grid { display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 16rem), 1fr));gap:var(--sp-4);margin:0;padding:0;list-style:none;}
.card {
position:relative;display:flex;flex-direction:column;gap:var(--sp-2);
padding:var(--sp-5);background:var(--c-surface);border:1px solid var(--c-line);border-top:4px solid var(--c-green-700);
border-radius:var(--r-m);box-shadow:var(--shadow-1);transition:box-shadow 0.15s, transform 0.15s;
}
.related--guides .card, .card--guide { border-top-color:var(--c-marigold);}
.card:hover { box-shadow:var(--shadow-2);}
@media (prefers-reduced-motion:no-preference) { .card:hover { transform:translateY(-2px);} }
.card__meta { order:-1;}
.related--rankings .card__meta { color:var(--c-green-700);}
.related--guides .card__meta, .card--guide .card__meta { color:var(--c-marigold-700);}
.card__title { font:700 var(--fs-600)/1.22 var(--font-serif);color:var(--c-ink);text-decoration:none;text-wrap:balance;}
.card__title::after { content:"";position:absolute;inset:0;border-radius:inherit;}
.card__title:hover { color:var(--c-green-700);text-decoration:underline;}
.card__title:focus-visible { outline:none;}
.card:has(.card__title:focus-visible) { outline:3px solid var(--c-focus);outline-offset:2px;}
.card__desc { font-size:var(--fs-200);line-height:1.5;color:var(--c-ink-2);}
.card-grid--hub { gap:var(--sp-5);}
.card-grid--hub .card { padding:var(--sp-6);}
@media (min-width:64rem) { .card-grid--hub { grid-template-columns:repeat(3, minmax(0, 1fr));} }
.card-grid--hub .card__desc { font-size:var(--fs-300);}

/* Author profile */
.author-profile { display:grid;gap:var(--sp-5);}
.author-profile__portrait {
width:min(100%, 15rem);aspect-ratio:1;border-radius:var(--r-l);overflow:hidden;
background:var(--c-marigold-100);border:2px solid var(--c-green-700);
}
.author-profile__portrait img, .author-profile__portrait svg { display:block;width:100%;height:100%;object-fit:cover;}
.author-profile > h1 { font-size:var(--fs-800);font-weight:750;letter-spacing:-0.018em;}
.author-profile__role { margin-top:calc(var(--sp-3) * -1);font-size:var(--fs-500);font-weight:600;color:var(--c-green-700);}
.author-profile__bio { max-width:var(--measure);}
.author-profile__bio > * + * { margin-top:var(--sp-4);}
.author-profile__expertise { display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:0;padding:0;list-style:none;}
.author-profile__expertise li {
padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);background:var(--c-surface);
border:1px solid var(--c-line);font-size:var(--fs-200);font-weight:600;
}
.author-profile > .related { margin-top:var(--sp-8);}
@media (min-width:48rem) {
.author-profile { grid-template-columns:15rem minmax(0, 1fr);column-gap:var(--sp-8);row-gap:var(--sp-4);align-items:start;}
.author-profile__portrait { grid-row:1 / span 6;}
.author-profile > :not(.author-profile__portrait) { grid-column:2;}
.author-profile > .related { grid-column:1 / -1;}
}

/* Not found */
.not-found { display:grid;gap:var(--sp-5);justify-items:start;max-width:40rem;margin:var(--sp-8) auto var(--sp-6);}
.not-found__art { width:7rem;height:auto;}
.not-found h1 { font-size:var(--fs-800);font-weight:750;letter-spacing:-0.018em;}
.not-found p { font-size:var(--fs-500);color:var(--c-ink-2);}
.not-found ul { display:grid;gap:var(--sp-2);width:100%;margin:0;padding:0;list-style:none;}
.not-found li a {
display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
padding:var(--sp-4) var(--sp-5);background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--r-m);
font-weight:700;text-decoration:none;color:var(--c-ink);
}
.not-found li a::after { width:1.1rem;height:1.1rem;color:var(--c-green-700);}
.not-found li a:hover { border-color:var(--c-green-700);color:var(--c-green-700);}

/* Footer */
.site-footer {
display:grid;gap:var(--sp-6);
padding:var(--sp-9) max(var(--gutter), calc((100% - var(--max)) / 2 + var(--gutter))) var(--sp-7);
background:var(--c-green-900);color:var(--c-on-dark);
--c-focus:var(--c-marigold);
}
.site-footer__brand { display:inline-flex;line-height:0;}
.site-footer__brand img { height:2.5rem;width:auto;}
.site-footer__statement { max-width:40ch;font:500 var(--fs-600)/1.4 var(--font-serif);color:var(--c-on-dark);}
.site-footer__links ul { display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);margin:0;padding:0;list-style:none;}
.site-footer__links a { display:inline-block;padding-block:var(--sp-1);color:var(--c-on-dark);font-size:var(--fs-300);font-weight:600;text-decoration:none;}
.site-footer__links a:hover { text-decoration:underline;color:#FFFFFF;}
.site-footer__legal { padding-top:var(--sp-5);border-top:1px solid rgb(247 244 236 / 0.2);font-size:var(--fs-200);color:var(--c-on-dark-2);}
@media (min-width:64rem) {
.site-footer { grid-template-columns:minmax(0, 1fr) auto;column-gap:var(--sp-9);align-items:start;}
.site-footer__brand, .site-footer__statement { grid-column:1;}
.site-footer__links { grid-column:2;grid-row:1 / span 2;}
.site-footer__links ul { flex-direction:column;gap:var(--sp-1);}
.site-footer__legal { grid-column:1 / -1;}
}

/* Utilities */
.visually-hidden { position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}
.section-intro { margin-top:var(--sp-3);max-width:var(--measure);color:var(--c-ink-2);}

/* ------------------------------------------------------------------------------------------
   Generator additions (S3, contract v1.1). Classes the generator emits that the design
   mockups do not show, styled with the design's own tokens and patterns. Not in design/.
   ------------------------------------------------------------------------------------------ */
/* Header: the inline logo SVG carries the wordmark; the name span is for assistive tech only */
.site-logo__mark { display:block;}
/* Byline: "Published" date gets the same CSS dot separator as the other items */
.byline__published { display:inline-flex;align-items:center;gap:var(--sp-3);}
.byline__published::before { content:"";width:4px;height:4px;border-radius:50%;background:var(--c-line-strong);}
/* Title block extras: entity topics line and the optional lead image */
.page-head__topics { font-size:var(--fs-200);color:var(--c-ink-3);max-width:60ch;}
.page-head__figure img { display:block;width:100%;height:auto;border:1px solid var(--c-line);border-radius:var(--r-l);background:var(--c-surface);}
/* Footer topics line (on green-900: on-dark-2, 8.59:1) */
.site-footer__topics { max-width:60ch;font-size:var(--fs-200);color:var(--c-on-dark-2);}
@media (min-width:64rem) { .site-footer__topics { grid-column:1;} }
/* Top picks: a pick with no entry or review on the page is a plain card (no jump arrow) */
.top-picks__item:not(:has(a.top-picks__name))::after { display:none;}
.top-picks__item:not(:has(a.top-picks__name)):hover { border-color:var(--c-line);box-shadow:var(--shadow-1);}
.top-picks__item--top:not(:has(a.top-picks__name)):hover { border-color:var(--c-marigold);}
span.top-picks__name::before { content:none;}
/* Facts: the "About" row spans the full width; the "Website" link wraps long domains */
.facts__row:first-child:has(> .facts__label + .facts__value) { flex-basis:100%;}
.facts__value a { overflow-wrap:anywhere;}
/* Review pages share the list/guide two-column frame (fallback when :has() is missing) */
@supports not selector(:has(a)) {
@media (min-width:64rem) {
.page--review { display:grid;grid-template-columns:13rem minmax(0, 1fr);column-gap:var(--sp-8);}
.page--review > .page__main { grid-column:2;grid-row:1;}
}
}
/* 404 frame: centred single column like trust pages */
.page--notfound .page__main { max-width:46rem;margin-inline:auto;}
/* Author page: related cards follow the rankings treatment (green rule, green meta) */
.related--author .card__meta { color:var(--c-green-700);}
.related--author .card--guide .card__meta { color:var(--c-marigold-700);}
.related--author > h2 { font-size:var(--fs-700);letter-spacing:-0.01em;margin-bottom:var(--sp-5);}
/* Author profile links (sameAs profiles) */
.author-profile__links { display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin:0;padding:0;list-style:none;font-size:var(--fs-200);}
.author-profile__links a { overflow-wrap:anywhere;font-weight:600;}
/* FAQ intro written in the content */
.faq > .section-intro { margin-bottom:var(--sp-4);}
.faq > .section-intro > * + * { margin-top:var(--sp-3);}
