/* Functional floor shared by every design (prepended to each design's style.css by render-designs.mjs).
   Behaviour only: no colour, font, spacing or layout choices live here. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0}
[hidden]{display:none!important}
img,svg,video{max-width:100%;height:auto}
img{display:block}
figure{margin:0}
table{border-collapse:collapse}
.skip{position:absolute;left:-9999px;top:0;z-index:100}
.skip:focus{left:12px;top:12px;padding:8px 12px;background:#fff;color:#000;outline:3px solid #000}
summary{cursor:pointer}
:focus-visible{outline:3px solid currentColor;outline-offset:2px}
sup.rf{line-height:0;font-size:.7em;white-space:nowrap}
.ed-share-url{width:100%;max-width:100%}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
main{overflow-wrap:break-word}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.srcs,.srcw,.srcs a{overflow-wrap:anywhere}
/* Structure the old stylesheet gave the correction contact: the address sits on its own line under the link. */
.ed-ac-address,.ed-ac-contact-note{display:block;overflow-wrap:anywhere}
.ed-ac-contact{display:inline-flex;align-items:center;min-height:44px}

/* Ledger: analyst report. 12-column Swiss grid, numbered sections, rank numbers in the margin.
   Colours and families come from the per-site variant CSS (--paper --ink --navy --signal --mute --rule --tint --head --body --mono). */
body.lg{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);font-feature-settings:"kern","liga","tnum";-webkit-font-smoothing:antialiased}
.lg a{color:var(--ink);text-decoration-color:var(--signal);text-decoration-thickness:1px;text-underline-offset:3px}
.lg a:hover{color:var(--signal)}
.lg h1,.lg h2,.lg h3,.lg h4{font-family:var(--head);font-weight:var(--hw);line-height:1.12;letter-spacing:-.012em;margin:0 0 .45em;color:var(--ink);text-wrap:balance}
.lg h1 a,.lg h2 a,.lg h3 a{text-decoration:none}
.lg h1 a:hover,.lg h2 a:hover,.lg h3 a:hover{text-decoration:underline;text-decoration-color:var(--signal)}
.lg p{margin:0 0 .9em}
.lg dl dd{margin-left:0}
.lg figcaption{font:400 13px/1.45 var(--body);color:var(--mute);margin-top:8px}
.lg-art{width:100%;height:auto}
body.lg{--rail:72px}
.lg-wrap{max-width:1320px;margin:0 auto;padding-left:40px;padding-right:40px}

/* Shared small type: mono labels */
.jn-category,.ep-kicker,.ed-guide-type{font:600 12px/1.3 var(--mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--signal)!important;margin:0 0 10px!important}
.jn-byline,.ed-guide-byline,.ep-byline,.byline{font:500 13px/1.5 var(--mono);color:var(--mute);letter-spacing:.02em}
.ep-byline span+span::before{content:"/";margin:0 .7em;color:var(--signal)}
.jn-read{display:inline-flex;align-items:center;gap:8px;font:600 13px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none!important;color:var(--ink);border-top:2px solid var(--ink);padding-top:8px;margin-top:4px}
.jn-read::after{content:"";width:18px;height:2px;background:var(--signal);transition:width .2s}
.jn-read:hover::after{width:30px}

/* ---------- Masthead ---------- */
.lg-mast-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:center}
.lg-name{grid-column:1/7;display:flex;align-items:center;gap:16px;text-decoration:none;font-family:var(--head);font-weight:var(--hw);line-height:1;letter-spacing:-.02em}
.lg-name:hover{color:inherit}
.lg-mark{flex:none;width:30px;height:30px}
.lg-meta{grid-column:8/-1}
.lg-meta .ed-mast-meta{margin:0;font:400 13px/1.55 var(--mono);letter-spacing:.01em}
.lg-meta .ed-mast-meta span{display:block;margin-bottom:6px}
.lg-meta .ed-mast-meta br{display:none}
.lg-meta time{font-weight:600}
.lg-nav{display:flex;flex-wrap:wrap;gap:0;counter-reset:nav;padding:0!important;margin:0;max-width:none!important}
.lg-nav a{counter-increment:nav;display:flex;align-items:baseline;gap:10px;font:500 14px/1 var(--body);text-decoration:none;padding:16px 28px 15px 0;margin-right:4px}
.lg-nav a::before{content:counter(nav,decimal-leading-zero);font:500 11px/1 var(--mono)}
.lg-nav a:hover{text-decoration:underline;text-decoration-color:var(--signal);text-decoration-thickness:2px;text-underline-offset:6px}
.lg-nav .jn-nav-about{margin-left:auto;padding-right:0}

/* Cover masthead (Turnstone): navy report band, white name, block art on the right */
.lg-m-cover .lg-mast-band{background:linear-gradient(var(--signal),var(--signal)) 0 0/100% 3px no-repeat,var(--paper);color:var(--ink);border-top:8px solid var(--navy);padding-top:3px}
.lg-m-cover .lg-mast-grid{min-height:132px}
.lg-m-cover .lg-name{color:var(--navy);font-size:clamp(32px,3.6vw,50px)}
.lg-m-cover .lg-name-1{font-weight:300;color:var(--navy)}
.lg-m-cover .lg-mark{color:var(--navy)}
.lg-m-cover .lg-meta{color:var(--ink);border-left:2px solid var(--navy);padding:6px 0 6px 18px}
.lg-m-cover .lg-navbar{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.lg-m-cover .lg-nav a{color:var(--ink)}
.lg-m-cover .lg-nav a::before{color:var(--signal)}

/* Sheet masthead (Plattformblick): data-sheet header on paper, condensed name, petrol nav bar */
.lg-m-sheet .lg-mast-band{border-top:10px solid var(--navy);padding:30px 0 26px}
.lg-m-sheet .lg-name{grid-column:1/8;font-size:clamp(40px,5vw,72px);color:var(--ink);letter-spacing:-.025em;text-transform:none}
.lg-m-sheet .lg-name-t{display:flex;flex-direction:column}
.lg-m-sheet .lg-mark{color:var(--navy);width:44px;height:44px;align-self:flex-start;margin-top:6px}
.lg-m-sheet .lg-meta{grid-column:9/-1;color:var(--ink);border-top:2px solid var(--ink);padding-top:10px;align-self:end}
.lg-m-sheet .lg-navbar{background:var(--navy)}
.lg-m-sheet .lg-nav a{color:#fff;padding-top:14px;padding-bottom:13px}
.lg-m-sheet .lg-nav a::before{color:#BFD3D5}
.lg-m-sheet .lg-nav a:hover{color:#fff;text-decoration-color:#fff}

.lg-ruler{padding-top:0;padding-bottom:0}
.lg-ruler>div{height:9px;border-bottom:1px solid var(--ink);background:repeating-linear-gradient(to right,var(--ink) 0 1px,transparent 1px calc((100% + 24px) / 12)) 0 0/calc(100% + 24px) 100%}
.lg-m-sheet .lg-ruler>div{height:7px;background-image:repeating-linear-gradient(to right,var(--navy) 0 2px,transparent 2px calc((100% + 24px) / 12))}

/* ---------- Home ---------- */
.lg-main{padding-top:44px;padding-bottom:72px}
.lg-home,.lg-main.lg-home{counter-reset:sec}
.lg-cover{display:grid;grid-template-columns:var(--rail) repeat(12,minmax(0,1fr));column-gap:24px;align-items:stretch;padding-bottom:48px;border-bottom:2px solid var(--ink);background:linear-gradient(var(--rule),var(--rule)) calc(var(--rail) / 2) 0/1px 100% no-repeat}
.lg-cover::before{content:"\00a7\00a0" "00";grid-column:1;grid-row:1;align-self:start;font:600 13px/1 var(--mono);letter-spacing:.04em;color:#fff;background:var(--navy);padding:9px 0;text-align:center;border-top:3px solid var(--signal)}
.lg-cover-lead{grid-column:2/9;grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;padding-right:24px}
.lg-cover-lead h1{font-size:clamp(38px,4.6vw,66px);line-height:1.02;letter-spacing:-.028em;margin-bottom:22px}
.lg-cover-lead p:not(.jn-category){font-size:21px;line-height:1.5;color:var(--ink);max-width:40ch}
.lg-cover-lead .jn-read{align-self:flex-start;margin-top:14px}
.lg-cover-art{grid-column:9/-1;grid-row:1;position:relative}
.lg-cover-art .lg-art{width:100%;height:100%;aspect-ratio:5/4;max-height:540px;object-fit:cover}

.lg-home{counter-reset:sec rv rd}
.lg-sec{counter-increment:sec;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);column-gap:24px;padding:40px 0 48px;border-bottom:1px solid var(--rule);background:linear-gradient(var(--rule),var(--rule)) calc(var(--rail) / 2) 0/1px 100% no-repeat}
.lg-sec::before{content:"§\00a0" counter(sec,decimal-leading-zero);grid-column:1;grid-row:1;align-self:start;position:sticky;top:16px;font:600 13px/1 var(--mono);letter-spacing:.04em;color:#fff;background:var(--navy);padding:9px 0;text-align:center;border-top:3px solid var(--signal)}
.lg-sec-body{grid-column:2;grid-row:1;min-width:0}
.lg-sec-body>header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;border-top:2px solid var(--ink);padding-top:12px;margin-bottom:28px}
.lg-sec-body>header h2{font-size:30px;margin:0}
.lg-sec-body>header .jn-category{flex-basis:100%}
.lg-sec-body>header>a{font:600 13px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase}

/* 01 ranking: the shortlist and comparison controls */
.lg-sec-rank [data-journal-review-index]>.jn-wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:0 40px;align-items:start}
.lg-sec-rank [data-editorial-compare]{display:contents}
.lg-sec-rank .ed-controls{grid-column:2;grid-row:1}
.lg-sec-rank .ed-empty,.lg-sec-rank .jn-vendors{grid-column:1/-1}
.lg-sec-rank .jn-vendors{margin:28px 0 0 calc(-1 * (var(--rail) + 24px));border-top:2px solid var(--ink)}
.lg-sec-rank [data-journal-review-index]>.jn-wrap>header{grid-column:1;grid-row:1;border-top:2px solid var(--ink);padding-top:12px}
.lg-sec-rank [data-journal-review-index]>.jn-wrap>header h2{font-size:32px}
.lg-sec-rank [data-journal-review-index]>.jn-wrap>header p:not(.jn-category){color:var(--mute)}
.ed-controls{display:grid;grid-template-columns:1fr auto;gap:14px 24px;align-items:center;background:var(--tint);padding:18px 20px;margin-bottom:8px;border-top:2px solid var(--ink)}
.ed-control-group{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ed-control-label,.ed-focus>span{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.ed-chipset{display:flex;flex-wrap:wrap;gap:6px}
.ed-chip{font:500 14px/1 var(--body);padding:9px 12px;border:1px solid var(--navy);background:var(--paper);color:var(--navy);border-radius:0;cursor:pointer}
.ed-chip[aria-pressed="true"]{background:var(--navy);color:#fff}
.ed-chip span{display:none}
.ed-focus{display:flex;align-items:center;gap:10px}
.ed-focus select{font:500 15px var(--body);padding:8px 10px;border:1px solid var(--navy);background:var(--paper);color:var(--ink);border-radius:0}
.ed-control-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.ed-button{font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:11px 14px;border:1px solid var(--navy);background:var(--paper);color:var(--navy);cursor:pointer;border-radius:0}
.ed-button-accent{background:var(--signal);border-color:var(--signal);color:#fff}
.ed-control-status{grid-column:1/-1;font:14px var(--mono);color:var(--mute)}
.ed-control-status:empty{display:none}
.ed-share-url{grid-column:1/-1;font:14px var(--mono);padding:8px;border:1px solid var(--rule);background:#fff;color:var(--ink)}
.ed-empty{color:var(--mute);font-style:italic}
.jn-vendors{display:flex;flex-direction:column}
.jn-vendors details{border-bottom:1px solid var(--rule)}
.jn-vendors summary{display:grid;grid-template-columns:var(--rail) minmax(0,1fr) 28px;align-items:start;gap:0 24px;padding:20px 0 18px;list-style:none}
.jn-vendors summary::-webkit-details-marker{display:none}
.jn-vendors summary::after{content:"+";font:400 24px/1 var(--mono);color:var(--signal);text-align:right;padding-top:4px}
.jn-vendors details[open] summary::after{content:"−"}
.jn-vendors summary:hover strong{text-decoration:underline;text-decoration-color:var(--signal)}
.jn-vendors [class*="-rank"]{font:500 26px/1 var(--mono);letter-spacing:-.02em;color:var(--navy);font-variant-numeric:tabular-nums;text-align:center;background:var(--paper);padding:2px 0 6px;border-bottom:2px solid currentColor;justify-self:center;min-width:44px}
.jn-vendors details:first-child [class*="-rank"]{color:var(--signal)}
.jn-vendors summary>span:last-of-type{display:flex;flex-direction:column;gap:4px}
.jn-vendors summary strong{font:var(--hw) 22px/1.2 var(--head)}
.jn-vendors summary small{font:400 16px/1.5 var(--body);color:var(--mute)}
[class*="vendor-body"]{padding:0 36px 24px 0}
.jn-vendors [class*="vendor-body"]{padding-left:calc(var(--rail) + 24px)}
[class*="vendor-body"] dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}
[class*="vendor-body"] dt,[class*="-review"] dl dt,[class*="-verdict"] dt{font:600 12px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal);margin:0 0 4px}
[class*="vendor-body"] dd{margin:0}
[class*="-limit"] b{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--signal);margin-right:6px}
.jn-criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 24px;margin:16px 0 0}
.jn-criteria section{border-top:1px solid var(--ink);padding:12px 0 6px}
.jn-criteria h4{font:600 16px/1.3 var(--head);margin:0 0 8px}
.ed-status,.ep-status{display:inline-flex;align-items:center;gap:6px;font:600 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:0;margin-bottom:8px;white-space:nowrap}
.ed-status::before,.ep-status::before{content:"";width:9px;height:9px;background:currentColor;flex:none}
[data-status="documented"]>.ed-status,[data-status="documented"] .ep-status{color:#1D6338}
[data-status="partial"]>.ed-status,[data-status="partial"] .ep-status{color:#83500A}
[data-status="partial"]>.ed-status::before,[data-status="partial"] .ep-status::before{background:linear-gradient(90deg,currentColor 50%,transparent 50%);outline:1px solid currentColor;outline-offset:-1px}
[data-status="not-established"]>.ed-status,[data-status="not-established"] .ep-status{color:var(--signal)}
[data-status="not-established"]>.ed-status::before,[data-status="not-established"] .ep-status::before{background:transparent;outline:1px solid currentColor;outline-offset:-1px}
.ed-claim{display:inline}
.ed-basis{display:block;font-size:14px;color:var(--mute);margin-top:6px}

/* 02 reviews: featured row then two columns, numbered in the corner */
.lg-reviews{display:grid;grid-template-columns:1fr 1fr;gap:40px 40px}
.lg-reviews>article{counter-increment:rv;position:relative;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--ink);padding-top:18px}
.lg-reviews>article::before{content:counter(rv,decimal-leading-zero);position:absolute;top:-1px;right:0;font:500 13px/1 var(--mono);color:#fff;background:var(--navy);padding:6px 8px}
.lg-reviews>article:first-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;border-top:2px solid var(--ink)}
.lg-reviews>article:first-child::before{background:var(--signal)}
.lg-reviews figure img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top left;border:1px solid var(--rule);background:var(--tint)}
.lg-feature-art .lg-art{aspect-ratio:4/3;object-fit:cover}
.lg-reviews h3{font-size:26px;margin-bottom:10px}
.lg-reviews>article:first-child h3{font-size:36px}
.lg-reviews dl{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:14px 0 16px}
.lg-reviews dl>div{padding:12px 16px 12px 0}
.lg-reviews dl>div+div{border-left:1px solid var(--rule);padding-left:16px}
.lg-reviews dd{margin:0;font-size:16px}

/* 03 reading: guides and archive on a three-column row */
.lg-briefs{padding:32px 0 44px;border-bottom:2px solid var(--ink)}
.lg-briefs>header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-bottom:18px}
.lg-briefs>header .jn-category{margin:0!important}
.lg-briefs>header h2{font-size:22px;margin:0}
.lg-reading{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;counter-reset:rd}
.lg-reading>article,.lg-reading>section{border-top:2px solid var(--ink);padding-top:14px;display:flex;flex-direction:column;align-items:flex-start}
.lg-reading>article:not(:has(.jn-review-magazine-guide-number)){counter-increment:rd}
.lg-reading>article:not(:has(.jn-review-magazine-guide-number))::before{content:counter(rd,decimal-leading-zero);font:600 13px/1 var(--mono);color:var(--signal);margin-bottom:12px;letter-spacing:.06em}
.jn-review-magazine-guide-number{display:block;font:600 13px/1 var(--mono);color:var(--signal);margin-bottom:12px;letter-spacing:.06em}
.lg-reading>article>div{display:flex;flex-direction:column;align-items:flex-start}
.lg-reading h2,.lg-reading h3{font-size:23px}
.lg-m-cover .lg-reading>section[data-journal-archive]{background:var(--tint);color:var(--ink);border-top-color:var(--navy)}
.lg-m-cover .lg-reading>section[data-journal-archive] *{color:var(--ink)!important}
.lg-m-cover .lg-reading>section[data-journal-archive] .jn-category{color:var(--signal)!important}
.lg-m-cover .lg-reading>section[data-journal-archive] .jn-read{border-top-color:var(--ink)}
.lg-reading>section[data-journal-archive]{background:var(--navy);color:#fff;padding:22px 24px 24px;border-top:6px solid var(--signal)}
.lg-reading>section[data-journal-archive] *{color:#fff!important}
.lg-reading>section[data-journal-archive] .jn-category{color:#D6DEEA!important}
.lg-reading>section[data-journal-archive] .jn-read{border-top-color:#fff}

/* 04 alternatives: report rows */
.lg-sec-alts [data-journal-alternatives]>h2{font-size:30px;border-top:2px solid var(--ink);padding-top:12px;margin-bottom:8px}
.lg-sec-alts [data-journal-alternatives]>div{display:flex;flex-direction:column}
/* The last row's own rule closes the list; the section adds no second rule or empty band under it. */
.lg-sec.lg-sec-rank,.lg-sec.lg-sec-alts{padding-bottom:0;border-bottom:0}
.lg-sec.lg-sec-alts{padding-bottom:8px}
.lg-sec-alts article{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) minmax(0,5fr);gap:4px 28px;padding:22px 0;border-bottom:1px solid var(--rule);align-items:start}
.lg-sec-alts article>h3{grid-column:1;grid-row:1/span 3;font-size:22px}
.lg-sec-alts .jn-alternative-scenario{grid-column:2;grid-row:1/span 3;font-weight:500;color:var(--navy)}
.lg-sec-alts article>p:not(.jn-alternative-scenario){grid-column:3;margin-bottom:.6em}
.lg-sec-alts article strong{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--signal);margin-right:4px}

/* ---------- Inner pages ---------- */
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 28px;font:500 13px/1.4 var(--mono);color:var(--mute)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--signal)}
.crumbs a{text-decoration:none;color:var(--mute)}
.lg-main h1{font-size:clamp(34px,4.4vw,58px);line-height:1.04;letter-spacing:-.026em}

/* Review */
.ep-journal-open{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-items:start;padding-bottom:40px;border-bottom:2px solid var(--ink);margin-bottom:40px}
.ep-journal-verdict{grid-column:1/8;grid-row:1}
.ep-journal-picture{grid-column:8/-1;grid-row:1;border-top:6px solid var(--navy);padding-top:14px}
.ep-journal-picture img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top left;border:1px solid var(--rule)}
.ep-journal-fit{font-size:21px;line-height:1.5}
.ep-fit-guide{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);margin:22px 0}
.ep-fit-guide div{padding:14px 18px 14px 0}.ep-fit-guide div+div{border-left:1px solid var(--rule);padding-left:18px}
.ep-fit-guide dt{font:600 12px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal)}
.ep-fit-guide dd{margin:6px 0 0;font-size:16px}
.ep-official{display:inline-block;margin-top:10px;font:600 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#fff!important;background:var(--navy);padding:12px 16px;text-decoration:none}
.ep-official:hover{background:var(--signal)}
.pf-body{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;max-width:none;margin:0}
.pf-main{grid-column:3/11;grid-row:2;min-width:0;counter-reset:ps;font-size:18px;line-height:1.7}
.pf-main .tocm{display:none}
.pf-main>section{counter-increment:ps;position:relative}
.pf-main>section>h2{font-size:28px;margin-top:1.5em;padding-top:14px;border-top:1px solid var(--ink)}
.pf-main>section>h2::before{content:counter(ps,decimal-leading-zero);display:block;font:500 13px/1 var(--mono);color:var(--signal);margin-bottom:10px;letter-spacing:.06em}
.pf-main>section:first-of-type>h2{margin-top:0}
.shot{margin:22px 0}.shot img{border:1px solid var(--rule)}
.pf-aside{grid-column:1/-1;grid-row:1;font-size:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto 1fr;gap:16px 24px;min-width:0;padding-bottom:36px;margin-bottom:40px;border-bottom:2px solid var(--ink)}
.pf-aside>.rtoc{grid-column:1;grid-row:1/span 3}
.pf-aside>.card{grid-column:2;align-self:start}
.pf-aside>div:not(.rtoc):not(.card){grid-column:3;grid-row:1/span 2}
.pf-aside>p.rbox{grid-column:3;grid-row:3;align-self:start;margin:0}
.pf-aside>.card{grid-row:1}
.pf-aside>.lg-aside-art{grid-column:2;grid-row:2/span 2;align-self:start}
.lg-aside-art .lg-art{aspect-ratio:8/5;object-fit:cover}
.pf-aside h2{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;border-top:2px solid var(--ink);padding-top:10px;margin-bottom:10px}
.rtoc ol,.tocm ol,.ed-guide-toc ol{list-style:none;padding:0;margin:0;counter-reset:toc}
.rtoc li,.tocm li,.ed-guide-toc li{counter-increment:toc;display:grid;grid-template-columns:30px 1fr;padding:6px 0;border-bottom:1px solid var(--rule);font-size:15px;line-height:1.4}
.rtoc li::before,.tocm li::before,.ed-guide-toc li::before{content:counter(toc,decimal-leading-zero);font:500 12px/1.6 var(--mono);color:var(--signal)}
.rtoc a,.tocm a,.ed-guide-toc a{text-decoration:none}
.pf-aside .card{background:var(--navy);color:#fff;padding:18px 20px}
.pf-aside .card *{color:#fff}
.glance{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px}
.glance dt{font:600 11px/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#C9D4E6!important}
.glance dd{margin:0;font:var(--hw) 16px/1.4 var(--head)}
.alts{list-style:none;padding:0;margin:0}.alts li{padding:10px 0;border-bottom:1px solid var(--rule)}.alts small{display:block;color:var(--mute);font-size:14px;margin:4px 0}
p.rbox a{font:600 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.ep-profile{margin-top:56px;border-top:2px solid var(--ink);padding-top:28px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.ep-assessment-head{grid-column:1/5}
.ep-assessment-head h2{font-size:30px}
.ep-assessment-head p{color:var(--mute)}
.ep-criteria{grid-column:5/-1;counter-reset:cr;display:flex;flex-direction:column}
.ep-criterion{counter-increment:cr;display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:8px;border-top:1px solid var(--ink);padding:16px 0 10px}
.ep-criterion::before{content:counter(cr,decimal-leading-zero);grid-row:1/span 4;font:500 32px/1 var(--mono);color:var(--navy);letter-spacing:-.04em}
.ep-criterion>*{grid-column:2}
.ep-criterion header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px;align-items:baseline}
.ep-criterion h3{font-size:22px;margin:0}
.ep-criterion details{margin-top:4px}
.ep-criterion summary{font:600 12px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--navy);padding:6px 0}
.ep-proof{font-size:16px;color:var(--mute);border-left:3px solid var(--signal);padding-left:14px}

/* Guide */
.ed-guide-hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:2px solid var(--ink);padding-bottom:32px;margin-bottom:40px}
.ed-guide-heading{grid-column:1/9}
.lg-hero-art{grid-column:9/-1;grid-row:1/span 6;align-self:end}
.lg-hero-art .lg-art{width:100%;aspect-ratio:4/3;object-fit:cover}
.ed-guide-dek{font-size:22px;line-height:1.45;color:var(--mute);max-width:46ch}
.ed-guide-dates{display:flex;flex-wrap:wrap;gap:6px 28px;font:500 13px/1.4 var(--mono);color:var(--mute);margin:16px 0 0}
.ed-guide-dates div{display:flex;gap:8px}.ed-guide-dates dt{color:var(--signal)}.ed-guide-dates dd{margin:0}
.ed-guide-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.ed-guide-toc{grid-column:1/4;align-self:start;position:sticky;top:16px;border-top:2px solid var(--ink);padding-top:10px}
.ed-guide-toc summary,.tocm summary{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.ed-guide-body{grid-column:4/12;counter-reset:gs;font-size:18px;line-height:1.7;min-width:0}
.ed-guide-section{counter-increment:gs}
.ed-guide-section>header{border-top:1px solid var(--ink);padding-top:14px;margin-top:40px}
.ed-guide-section:first-child>header{margin-top:0}
.ed-guide-section>header::before{content:counter(gs,decimal-leading-zero);display:block;font:500 13px/1 var(--mono);color:var(--signal);margin-bottom:10px;letter-spacing:.06em}
.ed-guide-section h2{font-size:30px}
.ed-guide-checklist{background:var(--tint);border-top:4px solid var(--navy);padding:18px 22px;margin:26px 0;font-size:17px}
.ed-guide-checklist h3{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.ed-guide-checklist ul{margin:0;padding-left:20px}
.ed-guide-checklist li{margin:6px 0}
.ed-guide-notes,.ed-guide-related{margin:40px 0 0 calc((100% + 24px) / 4);max-width:calc((100% + 24px) * 8 / 12 - 24px);border-top:2px solid var(--ink);padding-top:14px;font-size:16px}
.ed-guide-notes summary{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.ed-guide-notes nav{display:flex;gap:20px;font:600 13px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.ed-guide-related{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.ed-guide-related h2{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.ed-guide-related ul{list-style:none;padding:0;margin:0}
.ed-guide-related li{padding:8px 0;border-bottom:1px solid var(--rule)}
.ed-guide-related-block a{font:var(--hw) 18px/1.35 var(--head);text-decoration:none}

/* About and method: margin headings, numbered sections */
.ed-accountability{counter-reset:ac}
.jn-ac-lead{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:2px solid var(--ink);padding-bottom:28px;margin-bottom:12px}
.jn-ac-lead>*{grid-column:1/9}
.jn-ac-lead>.lg-hero-art{grid-column:9/-1;grid-row:1/span 6;align-self:end}
.jn-ac-dek{font-size:22px;line-height:1.45;color:var(--mute)}
.jn-ac-question{font-weight:500;color:var(--navy);border-left:4px solid var(--signal);padding-left:16px}
.jn-ac-section,.ed-ac-block{counter-increment:ac;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;padding:28px 0;border-bottom:1px solid var(--rule)}
.jn-ac-section::before,.ed-ac-block::before{content:"§\00a0" counter(ac,decimal-leading-zero);grid-column:1/2;align-self:start;justify-self:start;font:600 13px/1 var(--mono);color:#fff;background:var(--navy);padding:8px 10px;border-top:3px solid var(--signal)}
.jn-ac-section>h2,.ed-ac-block>h3{grid-column:2/5;font-size:24px}
.jn-ac-section>:not(h2),.ed-ac-block>:not(h3){grid-column:5/12}
.jn-ac-section ul{margin:0;padding-left:20px}
.ed-ac-evidence{margin:0}
.ed-ac-evidence div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:10px 0;border-top:1px solid var(--rule)}
.ed-ac-evidence dt{font:600 12px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}.ed-ac-evidence dd{margin:0}
.jn-ac-revisions{margin:28px 0;border-top:2px solid var(--ink);padding:14px 0}
.jn-ac-revisions summary{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.jn-ac-revisions article{display:grid;grid-template-columns:180px 1fr;gap:4px 24px;padding:12px 0;border-bottom:1px solid var(--rule)}
.jn-ac-revisions time{font:500 13px/1.6 var(--mono);color:var(--signal)}
.jn-ac-revisions article>:not(time){grid-column:2}
.jn-ac-revisions small{font-size:14px;color:var(--mute)}
.jn-ac-corrections{background:var(--tint);padding:28px 24px!important;border-bottom:0!important}
.ed-ac-contact{display:inline-block;font:600 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#fff!important;background:var(--navy);padding:12px 16px;text-decoration:none;margin-right:14px}
.ed-ac-address{font-family:var(--mono);font-size:15px;margin-top:10px}

/* Article index: numbered ledger rows */
.lg-article-index{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;align-content:start}
.lg-article-index>*{grid-column:1/-1}
.lg-article-index>h1,.lg-article-index>.tline{grid-column:1/9}
.lg-article-index>h1{padding-bottom:6px;margin-bottom:10px;align-self:end}
.lg-article-index>.lg-index-art{grid-column:9/-1;grid-row:2/span 2;align-self:end;margin-bottom:28px}
.lg-article-index>.lg-index-art .lg-art{aspect-ratio:2/1}
.lg-article-index>.alist{border-top:2px solid var(--ink)}
.lg-article-index .tline{font:500 13px/1.4 var(--mono);color:var(--mute);margin-bottom:28px}
.alist{list-style:none;padding:0;margin:0;counter-reset:al}
.alist li{counter-increment:al;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;padding:24px 0;border-bottom:1px solid var(--rule)}
.alist li::before{content:counter(al,decimal-leading-zero);grid-column:1/2;grid-row:1/span 3;align-self:start;justify-self:start;font:500 26px/1 var(--mono);color:var(--navy);border-bottom:2px solid var(--signal);padding-bottom:6px;min-width:44px;text-align:center}
.alist li>*{grid-column:2/10}
.alist a.n{font:var(--hw) 26px/1.2 var(--head);text-decoration:none;letter-spacing:-.012em}
.alist .byline{margin:8px 0 6px}

/* Archive article */
.lg-archive-article>.ed-wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.lg-archive-article>.ed-wrap>*{grid-column:1/-1}
.mainart,.faq{grid-column:3/11!important;min-width:0}
.mainart>h1{border-bottom:2px solid var(--ink);padding-bottom:18px}
.artbody{font-size:18px;line-height:1.7}
.artbody h2{font-size:28px;margin-top:1.6em;padding-top:14px;border-top:1px solid var(--ink)}
.artbody h3{font-size:21px;margin-top:1.3em}
.faq{margin-top:40px;border-top:2px solid var(--ink);padding-top:14px}
.faq .t2{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.qa{border-top:1px solid var(--rule);padding:14px 0}.qa h2{font-size:21px}
table.matrix{width:100%;font-size:15px;margin:20px 0;display:block;overflow-x:auto}
table.matrix th{font:600 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;text-align:left;border-bottom:2px solid var(--ink);padding:8px}
table.matrix td{border-bottom:1px solid var(--rule);padding:8px;vertical-align:top}

/* Sources (page and after-main lists) */
.ed-source-page>header{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;border-bottom:2px solid var(--ink);padding-bottom:28px;margin-bottom:24px}
.ed-source-page>header>*{grid-column:1/9}
.ed-source-page>header>.lg-hero-art{grid-column:9/-1;grid-row:1/span 3}
.lg-archive-art{margin:20px 0 28px}
.lg-archive-art .lg-art{width:100%;aspect-ratio:21/9;object-fit:cover}
.lg-photo{background:var(--tint)}
.lg-nexus .lg-art{object-fit:contain;background:#fff;border:1px solid var(--rule)}
.lg-aside-art.lg-nexus .lg-art{aspect-ratio:3/2}
.lg-feature-art.lg-nexus .lg-art{aspect-ratio:auto;height:auto}
.srcs{border-top:2px solid var(--ink);padding-top:16px;font-size:15px;line-height:1.55;margin-top:48px}
.ed-source-page .srcs{border-top:0;margin-top:0;padding-top:0}
.srcs h2{font:600 12px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.srcs ol{columns:2;column-gap:48px;padding-left:0;list-style:none;counter-reset:src;margin:0}
.srcs li{counter-increment:src;break-inside:avoid;margin-bottom:10px;padding-left:44px;position:relative}
.srcs li::before{content:counter(src);position:absolute;left:0;top:2px;font:500 12px/1.4 var(--mono);color:var(--signal)}
.lg-after{padding-bottom:40px}
.lg-404{max-width:1040px;margin:0 auto;padding:16vh 32px 12vh;display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto 1fr;column-gap:56px;align-items:start}
.lg-404>*{grid-column:1}
.lg-404>h1{border-top:6px solid var(--signal);padding-top:22px}
.lg-404::after{content:"";grid-column:2;grid-row:1/span 2;width:340px;height:340px;background:var(--img404) center/cover no-repeat;border-top:6px solid var(--navy)}
@media (max-width:700px){.lg-404{grid-template-columns:1fr;padding:12vh 20px}.lg-404::after{grid-column:1;grid-row:auto;margin-top:32px;zoom:.62}}
.lg-404 h1{font-size:52px}

/* ---------- Footer ---------- */
.lg-footzone{background:var(--navy);color:#fff;margin-top:24px;border-top:6px solid var(--signal)}
.lg-foot>.ed-wrap{max-width:1320px;margin:0 auto;padding:40px 40px 56px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:20px}
.lg-foot>.ed-wrap>div:first-child{grid-column:1/7}
.lg-foot>.ed-wrap>div:last-child{grid-column:8/-1;align-self:end}
.lg-foot strong{display:block;font:var(--hw) 28px/1.1 var(--head);letter-spacing:-.02em;margin-bottom:10px;color:#fff}
.lg-foot p{color:#DCE3EE;font-size:16px;margin:0}
.lg-foot a{color:#fff;font:500 14px/2 var(--mono);text-decoration-color:rgba(255,255,255,.5)}
.lg-foot a:hover{color:#fff;text-decoration-color:#fff}

/* ---------- Narrow screens ---------- */
@media (max-width:1060px){
  .lg-sec-rank [data-journal-review-index]>.jn-wrap{grid-template-columns:1fr;gap:20px}
  .lg-sec-rank [data-journal-review-index]>.jn-wrap>header{position:static}
  .lg-sec-alts article{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
  .lg-sec-alts article>h3{grid-row:auto;grid-column:1/-1}
  .lg-sec-alts .jn-alternative-scenario{grid-row:2/span 2;grid-column:1}
  .lg-sec-alts article>p:not(.jn-alternative-scenario){grid-column:2}
}
@media (max-width:900px){
  .lg-wrap,.lg-foot>.ed-wrap{padding-left:24px;padding-right:24px}
  .lg-mast-grid,.lg-cover,.ep-journal-open,.pf-body,.ep-profile,.ed-guide-hero,.ed-guide-layout,.jn-ac-lead,.jn-ac-section,.ed-ac-block,.alist li,.lg-archive-article>.ed-wrap,.lg-foot>.ed-wrap{grid-template-columns:minmax(0,1fr)!important}
  .lg-mast-grid>*,.lg-cover>*,.ep-journal-open>*,.pf-body>*,.ep-profile>*,.ed-guide-hero>*,.ed-guide-layout>*,.jn-ac-lead>*,.jn-ac-section>*,.ed-ac-block>*,.alist li>*,.lg-archive-article>.ed-wrap>*,.lg-foot>.ed-wrap>*{grid-column:1/-1!important}
  .jn-ac-section::before,.ed-ac-block::before,.alist li::before{grid-column:1/-1;grid-row:auto;margin-bottom:16px}
  .lg-sec-rank [data-journal-review-index]>.jn-wrap{grid-template-columns:minmax(0,1fr)}
  .lg-sec-rank .ed-controls{grid-column:1;grid-row:auto;margin-top:16px}
  .lg-hero-art,.jn-ac-lead>.lg-hero-art,.lg-article-index>.lg-index-art{grid-row:auto!important;margin-top:20px}
  .lg-hero-art .lg-art{max-height:220px}
  .lg-article-index>*,.ed-source-page>header>*{grid-column:1/-1!important}
  .ed-source-page>header>.lg-hero-art{grid-row:auto}
  .lg-article-index>.lg-index-art{display:none}
  .lg-m-cover .lg-mast-grid{min-height:0;padding:22px 24px 20px;gap:14px}
  .lg-m-cover .lg-meta{border-left:0;border-top:2px solid var(--navy);padding:12px 0 0}
  .lg-m-sheet .lg-mast-band{padding:22px 0 18px}
  .lg-m-sheet .lg-mast-grid{gap:16px}
  .lg-cover-lead{padding-right:0}
  .lg-cover{background:none}
  .lg-cover::before{grid-column:1/-1;justify-self:start;width:72px;margin-bottom:16px}
  .lg-cover-lead,.lg-cover-art{grid-row:auto}
  .lg-cover-art{margin-top:28px}
  .lg-cover-art .lg-art{max-height:320px}
  .pf-main .tocm{display:block;border-top:2px solid var(--ink);padding-top:10px;margin-bottom:24px}
  .pf-aside .rtoc{display:none}
  .pf-aside .lg-aside-art{display:none}
  .pf-aside,.ed-guide-toc{position:static}
  .pf-aside{display:flex;flex-direction:column;gap:24px;padding-bottom:28px;margin:0 0 32px}
  .pf-main{grid-row:auto}
  .ed-guide-toc{margin-bottom:28px}
  .ed-guide-notes,.ed-guide-related{margin-left:0;max-width:none}
  .ep-journal-open{row-gap:28px}
  .ep-journal-verdict,.ep-journal-picture{grid-row:auto}
  .srcs ol{columns:1}
}
@media (max-width:640px){
  body.lg{font-size:17px}
  .lg-wrap,.lg-foot>.ed-wrap{padding-left:18px;padding-right:18px}
  .lg-m-cover .lg-mast-grid{padding-left:18px;padding-right:18px}
  .lg-nav a{padding:12px 18px 11px 0;font-size:14px}
  .lg-nav .jn-nav-about{margin-left:0}
  .lg-main{padding-top:28px}
  .lg-cover-lead p:not(.jn-category){font-size:19px}
  body.lg{--rail:44px}
  .lg-sec{padding:28px 0 36px;column-gap:14px}
  .lg-sec::before{font-size:11px;padding:7px 0}
  .lg-sec-rank .jn-vendors{margin-left:calc(-1 * (var(--rail) + 14px))}
  .jn-vendors summary{gap:0 14px}
  .jn-vendors [class*="vendor-body"]{padding-left:0}
  .lg-reviews,.lg-reviews>article:first-child,.lg-reading{grid-template-columns:minmax(0,1fr)}
  .lg-reviews>article:first-child h3{font-size:28px}
  .lg-reviews dl,.ep-fit-guide,[class*="vendor-body"] dl,.ed-guide-related{grid-template-columns:1fr}
  .lg-reviews dl>div+div,.ep-fit-guide div+div{border-left:0;padding-left:0;border-top:1px solid var(--rule)}
  .ed-controls{grid-template-columns:1fr;padding:16px}
  .ed-control-actions{justify-content:flex-start}
  .jn-vendors summary{grid-template-columns:var(--rail) minmax(0,1fr) 22px}
  .jn-vendors [class*="-rank"]{font-size:22px;min-width:36px}
  [class*="vendor-body"]{padding:0 0 20px 0}
  .lg-sec-alts article{grid-template-columns:1fr}
  .lg-sec-alts article>*{grid-column:1!important;grid-row:auto!important}
  .ep-criterion{grid-template-columns:44px minmax(0,1fr)}
  .ep-criterion::before{font-size:24px}
  .ed-ac-evidence div,.jn-ac-revisions article{grid-template-columns:1fr;gap:2px}
  .jn-ac-revisions article>:not(time){grid-column:1}
  .glance{grid-template-columns:1fr;gap:2px}
  .glance dd{margin-bottom:8px}
}
