/* 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}

/* Horizon: panoramic buyer guide. Full-width bands from sky to white, wide sky art, a thin horizon rule.
   Colours and fonts come from the per-site variant CSS. */
body.hz{background:#fff;color:var(--ink);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
.hz a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}
.hz a:hover{color:var(--ink)}
.hz h1,.hz h2,.hz h3,.hz h4{font-family:var(--head);font-weight:var(--hw);letter-spacing:var(--track);line-height:1.15;margin:0 0 .45em;color:var(--ink);text-wrap:balance}
.hz h1 a,.hz h2 a,.hz h3 a{color:inherit;text-decoration:none}
.hz h1 a:hover,.hz h2 a:hover,.hz h3 a:hover{color:var(--accent);text-decoration:underline;text-decoration-thickness:2px}
.hz p{margin:0 0 .9em}
.hz dl dd{margin-left:0}
.hz-art{display:block;width:100%;height:auto}
.hz-in{max-width:1320px;margin-left:auto;margin-right:auto;padding-left:48px;padding-right:48px}
.hz figcaption{font:400 13.5px/1.45 var(--body);color:var(--mute);margin-top:8px}
.hz figcaption a{color:var(--mute)}

/* Kicker labels and bylines */
.jn-category,.ep-kicker,.ed-guide-type{font:600 12.5px/1.3 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.jn-byline,.ed-guide-byline,.ep-byline,.byline{font:500 14px/1.45 var(--body);color:var(--mute)}
.ep-byline span+span::before{content:"·";margin:0 .6em}
.jn-read{display:inline-flex;align-items:center;gap:10px;font:600 14.5px/1.3 var(--body);letter-spacing:.02em;text-decoration:none!important;color:var(--accent)}
.jn-read::after{content:"";width:28px;height:1px;background:currentColor;transition:width .2s}
.jn-read:hover::after{width:44px}

/* ---------- Masthead ---------- */
.hz-mast{background:#fff}
.hz-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none!important;color:var(--ink)!important;font:var(--hw) 22px/1.1 var(--head);letter-spacing:var(--track)}
.hz-brand svg{width:30px;height:30px;flex:none}
.hz-brand svg rect{fill:var(--sky-top);stroke:none}
.hz-brand svg path{fill:none;stroke:#fff}
.hz-meta{margin:0;font:400 14px/1.5 var(--body);color:var(--mute)}
.hz-meta time{color:var(--ink);font-weight:600}
.hz-nav{display:flex;flex-wrap:wrap;gap:4px 34px}
.hz-nav a{font:500 15px/1.3 var(--body);color:var(--ink);text-decoration:none;padding:14px 0 13px;border-bottom:2px solid transparent}
.hz-nav a:hover{color:var(--accent);border-bottom-color:var(--sky)}
/* Sablon: airy, name + tagline on one line, nav standing on the horizon rule */
.hz-air-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:40px;align-items:center;padding-top:26px;padding-bottom:18px}
.hz-air-top .hz-meta{max-width:72ch;justify-self:end;text-align:right}
.hz-air-top .hz-meta br{display:none}
.hz-air-top .hz-meta span{display:block}
.hz-air-nav{position:relative}
.hz-air-nav::after{content:"";position:absolute;left:48px;right:48px;bottom:0;height:1px;background:linear-gradient(90deg,var(--sky),var(--line) 40%,var(--line) 70%,transparent)}
.hz-mast-air .hz-brand{font-size:24px}
/* Fachwerk: name and nav in a deep-sky bar */
.hz-bar{background:var(--deep)}
.hz-bar-in{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.hz-mast-band .hz-brand{color:#fff!important;padding:16px 0;text-transform:none}
.hz-mast-band .hz-brand svg rect{fill:#fff}
.hz-mast-band .hz-brand svg path{fill:var(--deep);stroke:none}
.hz-mast-band .hz-nav a{color:#fff;padding:20px 0 18px;border-bottom-width:3px}
.hz-mast-band .hz-nav a:hover{color:#fff;border-bottom-color:var(--deep-accent)}
.hz-meta-row{display:flex;padding-top:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.hz-meta-row .hz-meta{display:flex;flex-wrap:wrap;gap:4px 8px;width:100%}
.hz-meta-row .hz-meta>span{margin-right:auto;padding-right:28px}
.hz-meta-row .hz-meta br{display:none}
.hz-strip{height:56px;background:linear-gradient(180deg,var(--sky-top),var(--sky) 45%,var(--pale))}
.hz-strip-photo{height:auto;background:none}
.hz-strip-photo .hz-art{width:100%;height:clamp(150px,17vw,250px);object-fit:cover;object-position:center 45%}

/* ---------- Home bands ---------- */
.hz-band{position:relative}
.hz-white{background-color:#fff;padding:88px 0}
.hz-pale{background-color:var(--pale);padding:88px 0}
.hz-deep{background-color:var(--deep);color:var(--deep-ink);padding:84px 0 72px}
.hz-hero{background-color:var(--pale);background-image:linear-gradient(var(--pale),var(--mist) 55%,#fff);padding-bottom:72px}
.hz-pano .hz-art{width:100%;height:clamp(220px,32vw,470px);object-fit:cover;object-position:center 55%}

/* Lead: set wide, headline left, dek right */
.hz-lead{margin-top:-64px;position:relative}
.hz-lead .jn-lead{background:#fff;padding:44px 52px 40px;border-top:3px solid var(--rule);box-shadow:0 24px 60px -40px rgba(12,59,96,.35)}
.hz-lead .jn-lead-copy{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);grid-template-areas:"cat cat" "title dek" "title by" "title read";column-gap:64px;align-items:start}
.hz-lead .jn-category{grid-area:cat}
.hz-lead h1{grid-area:title;font-size:clamp(36px,4.6vw,64px);line-height:1.04;margin:0}
.hz-lead .jn-dek{grid-area:dek;font-size:19px;line-height:1.55;color:var(--ink);margin-top:6px}
.hz-lead .jn-byline{grid-area:by;margin:4px 0 14px}
.hz-lead .jn-read{grid-area:read}

/* Guides: waypoints on a horizon line */
.hz-waypoints{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;margin-top:64px}
.hz-waypoints>article{position:relative;padding-top:34px;border-top:1px solid var(--line)}
.hz-waypoints>article::before{content:"";position:absolute;top:-3px;left:0;width:7px;height:7px;background:var(--rule)}
.hz-waypoints>article::after{content:"";position:absolute;top:-1px;left:0;width:96px;height:1px;background:var(--rule)}
.hz-waypoints h2{font-size:clamp(23px,2.1vw,29px);line-height:1.2}
.hz-waypoints p:not(.jn-category){color:var(--ink)}

/* Reviews: panoramic rows */
.hz-head .jn-section-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.hz-head h2{font-size:clamp(30px,3.4vw,46px);margin:0}
.hz-head a{font:600 15px/1.3 var(--body);text-decoration:none;white-space:nowrap}
.hz-head a::after{content:" →"}
.hz-feature article{display:block}
.hz-feature figure{margin-bottom:32px}
.hz-feature figure img,.hz-sky-fig .hz-art{width:100%;aspect-ratio:21/9;height:auto;object-fit:cover}
.hz-feature article>div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3.5fr) minmax(0,3.5fr);grid-template-areas:"cat cat cat" "title claim claim" "read verdict check";column-gap:48px;align-items:start}
.hz-feature article>div>p:not([class]){font-size:19px;line-height:1.6}
.hz-feature .jn-category{grid-area:cat}
.hz-feature h3{grid-area:title;font-size:clamp(34px,3.6vw,52px);line-height:1.05}
.hz-feature article>div>p:not([class]){grid-area:claim}
.hz-feature .jn-verdict{grid-area:verdict}
.hz-feature .jn-check{grid-area:check}
.hz-feature .jn-read{grid-area:read;align-self:end;margin-bottom:8px}
.jn-verdict,.jn-check{font-size:16.5px;line-height:1.55;padding-top:12px;border-top:2px solid var(--sky)}
.jn-check{border-top-color:var(--line)}
.jn-verdict b,.jn-check b{display:block;font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.hz-rows{margin-top:64px;display:flex;flex-direction:column}
.hz-rows>article{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;padding:36px 0;border-top:1px solid var(--line);align-items:start}
.hz-rows figure img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:top left;border:1px solid var(--line)}
.hz-rows article>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"cat cat" "title title" "claim claim" "verdict check" "read read";column-gap:32px}
.hz-rows .jn-category{grid-area:cat}
.hz-rows h3{grid-area:title;font-size:clamp(26px,2.4vw,34px)}
.hz-rows article>div>p:not([class]){grid-area:claim}
.hz-rows .jn-verdict{grid-area:verdict}
.hz-rows .jn-check{grid-area:check}
.hz-rows .jn-read{grid-area:read;margin-top:8px}

/* Comparison: header row, instrument strip, wide ranked rows */
.hz-compare .jn-shortlist-layout{max-width:none;padding:0;margin:0}
.hz-compare .jn-shortlist-layout>header{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:64px;align-items:end;margin-bottom:36px}
.hz-compare .jn-shortlist-layout>header h2{grid-row:span 3;font-size:clamp(32px,3.8vw,52px);line-height:1.05;margin:0}
.hz-compare .jn-shortlist-layout>header p{margin:0 0 6px;color:var(--ink)}
.ed-controls{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;background:#fff;padding:20px 24px;border-top:3px solid var(--rule);margin-bottom:28px}
.ed-control-group{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;flex:1 1 100%}
.ed-control-label,.ed-focus>span{font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.ed-chipset{display:flex;flex-wrap:wrap;gap:8px}
.ed-chip{font:500 14.5px/1 var(--body);padding:9px 14px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;cursor:pointer}
.ed-chip[aria-pressed="true"]{background:var(--deep);border-color:var(--deep);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(--line);background:#fff;color:var(--ink);border-radius:4px}
.ed-control-actions{display:flex;flex-wrap:wrap;gap:10px;margin-left:auto}
.ed-button{font:600 14px/1 var(--body);padding:11px 16px;border:1px solid var(--deep);background:#fff;color:var(--deep);border-radius:999px;cursor:pointer}
.ed-button-accent{background:var(--accent);border-color:var(--accent);color:#fff}
.ed-control-status{font-size:14px;color:var(--mute);flex-basis:100%}
.ed-control-status:empty{display:none}
.ed-share-url{font:14px var(--body);padding:8px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.ed-empty{color:var(--mute)}
.jn-vendors{display:flex;flex-direction:column;gap:2px}
.jn-vendors details{background:#fff}
.jn-vendors summary{display:grid;grid-template-columns:72px minmax(0,1fr) 28px;align-items:center;gap:20px;padding:20px 24px;list-style:none}
.jn-vendors summary::-webkit-details-marker{display:none}
.jn-vendors summary::after{content:"+";font:300 26px/1 var(--head);color:var(--accent);text-align:center}
.jn-vendors details[open] summary::after{content:"−"}
.jn-vendors summary>span:last-child{display:flex;flex-direction:column;gap:3px}
.jn-vendors summary strong{font:var(--hw) 21px/1.25 var(--head);letter-spacing:var(--track)}
.jn-vendors summary small{font:400 15.5px/1.5 var(--body);color:var(--mute)}
[class*="-rank"]{font:300 40px/1 var(--head);font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:-.03em}
.jn-vendors [class*="-rank"]::before{content:"0"}
[class*="vendor-body"]{padding:4px 24px 26px 116px}
.jn-criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px 28px;margin:18px 0}
.jn-criteria section{border-top:1px solid var(--line);padding-top:12px}
.jn-criteria h4{font:600 15px/1.3 var(--body);letter-spacing:0;margin-bottom:6px}
.ed-status,.ep-status{display:inline-block;font:600 11.5px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:999px;margin-bottom:8px;background:#fff;border:1px solid currentColor}
[data-status="documented"]>.ed-status,[data-status="documented"] .ep-status{color:#17603A}
[data-status="partial"]>.ed-status,[data-status="partial"] .ep-status{color:#7A4A06}
[data-status="not-established"]>.ed-status,[data-status="not-established"] .ep-status{color:#9A2B2B}
.ed-claim{display:inline}
.ed-basis{display:block;font-size:14px;color:var(--mute);margin-top:4px}

/* Archive: a window onto the sky */
.hz-window-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:center}
.hz-window-art .hz-art{aspect-ratio:3/2;object-fit:cover}
.hz-window-copy h2{font-size:clamp(28px,3vw,40px);line-height:1.12}
.hz-window-copy p:not(.jn-category){font-size:18px}

/* Alternatives: deep-sky band */
.hz-deep h2,.hz-deep h3,.hz-deep strong{color:var(--deep-ink)}
.hz-deep a{color:var(--deep-accent)}
.hz-deep a:hover{color:#fff}
.hz-alts [data-journal-alternatives]>h2{font-size:clamp(28px,3.2vw,44px);margin-bottom:40px;max-width:24ch}
.hz-alts [data-journal-alternatives]>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0}
.hz-alts article{padding:26px 32px 8px;border-left:1px solid rgba(255,255,255,.22);border-top:1px solid rgba(255,255,255,.22)}
.hz-alts article:first-child{border-left:0;padding-left:0}
.hz-alts h3{font-size:24px}
.hz-alts h3 a{color:#fff}
.hz-alts p{color:var(--deep-mute)}
.jn-alternative-scenario{font-size:18px;line-height:1.5;color:#fff!important}

/* ---------- Footer ---------- */
.hz-foot-sky .hz-art{width:100%;height:clamp(110px,12vw,180px);object-fit:cover;object-position:center 40%}
.hz-foot{background:#fff;padding:40px 0 56px}
.hz-foot>.ed-wrap{max-width:1320px;margin:0 auto;padding:0 48px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:48px;align-items:end}
.hz-foot strong{display:block;font:var(--hw) 26px/1.2 var(--head);letter-spacing:var(--track);margin-bottom:10px}
.hz-foot p{color:var(--mute);font-size:15.5px;max-width:58ch;margin:0}
.hz-foot>.ed-wrap>div:last-child p{text-align:right;margin-left:auto;font-size:15.5px;line-height:2}
.hz-foot a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.hz-foot a:hover{color:var(--accent);border-bottom-color:var(--accent)}

/* ---------- Inner pages ---------- */
.hz-inner{padding-top:0;padding-bottom:72px}
/* The page head is a pale-sky band that runs edge to edge under the strip */
.hz-inner>.crumbs,.hz-inner>.ed-wrap>.crumbs,.ed-guide-hero,.ep-journal-open,.jn-ac-lead,.ed-source-page>header,.hz-pagehead,.mainart>h1,.mainart>.byline{background-color:var(--pale);box-shadow:0 0 0 100vmax var(--pale);clip-path:inset(0 -100vmax)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:22px 0 18px;margin:0;font:500 14px/1.4 var(--body);color:var(--mute)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--rule)}
.crumbs a{text-decoration:none}
.hz-inner h1{font-size:clamp(34px,4.4vw,60px);line-height:1.06}
.ed-guide-hero,.jn-ac-lead,.ed-source-page>header{padding:12px 0 44px;margin-bottom:56px}
.mainart>.byline{padding-bottom:36px;margin-bottom:48px}
.hz-article-index>.tline{padding-bottom:40px;margin-bottom:48px;font-size:17px;color:var(--mute)}
.hz-article-index>h1,.mainart>h1{margin:0;padding:10px 0 12px}
.ed-guide-heading{max-width:920px}
.ed-guide-dek,.jn-ac-dek{font-size:21px;line-height:1.5;color:var(--ink);max-width:62ch}
.ed-guide-dates{display:flex;gap:28px;font:500 14px/1.4 var(--body);color:var(--mute);margin:16px 0 0}
.ed-guide-dates div{display:flex;gap:6px}
.ed-guide-dates dt{font-weight:600;color:var(--ink)}
.ed-guide-layout{display:grid;grid-template-columns:240px minmax(0,720px);gap:72px}
.ed-guide-toc,.tocm{font:400 15px/1.5 var(--body);align-self:start;position:sticky;top:24px;border-top:3px solid var(--rule);padding-top:14px}
.ed-guide-toc summary,.tocm summary,.rtoc h2{font:600 12.5px/1.3 var(--body)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:10px}
.ed-guide-toc ol,.tocm ol,.rtoc ol{padding-left:20px;margin:0}
.ed-guide-toc li,.tocm li,.rtoc li{margin:7px 0}
.ed-guide-toc a,.tocm a,.rtoc a{text-decoration:none}
.ed-guide-body,.artbody,.pf-main{font-size:18px;line-height:1.72}
.ed-guide-body h2,.artbody h2,.pf-main h2{font-size:clamp(25px,2.4vw,31px);margin-top:1.6em;padding-top:.9em;border-top:1px solid var(--line);position:relative}
.ed-guide-body h2::before,.artbody h2::before,.pf-main h2::before{content:"";position:absolute;top:-1px;left:0;width:64px;height:1px;background:var(--rule)}
.ed-guide-section:first-child h2,.pf-main>.ps:first-of-type h2{margin-top:0}
.ed-guide-checklist{background:var(--pale);border-top:3px solid var(--rule);padding:20px 24px;margin:28px 0}
.ed-guide-checklist h3{font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.ed-guide-checklist ul{margin:0;padding-left:20px}
.ed-guide-checklist li{margin:6px 0}
.ed-guide-notes,.ed-guide-related{max-width:1032px;margin:48px 0 0 312px;padding-top:18px;border-top:1px solid var(--line);font-size:16px}
.ed-guide-notes summary{font:600 15px/1.3 var(--body)}
.ed-guide-related-block a{font:var(--hw) 19px/1.35 var(--head)}

/* Review */
.ep-journal-open{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:56px;align-items:start;padding:12px 0 56px;margin-bottom:64px}
.ep-journal-verdict{order:-1}
.ep-journal-picture img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top left;border:1px solid var(--line);background:#fff}
.ep-journal-fit{font-size:20px;line-height:1.55}
.ep-fit-guide{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:22px 0}
.ep-fit-guide div{border-top:2px solid var(--rule);padding-top:12px}
.ep-fit-guide div+div{border-top-color:var(--line)}
.ep-fit-guide dt{font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.ep-fit-guide dd{margin:6px 0 0;font-size:16.5px}
.ep-official{display:inline-block;margin-top:8px;font:600 15px/1 var(--body);padding:12px 18px;border-radius:999px;background:var(--deep);color:#fff!important;text-decoration:none}
.ep-official:hover{background:var(--accent)}
.pf-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:72px;max-width:1160px}
.pf-main .tocm{display:none}
.pf-aside{font-size:15.5px;align-self:start;position:sticky;top:24px;display:flex;flex-direction:column;gap:28px}
.pf-aside h2{font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pf-aside .card{background:var(--pale);border-top:3px solid var(--rule);padding:18px 20px}
.glance{margin:0}.glance dt{font:600 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:12px}.glance dt:first-child{margin-top:0}.glance dd{margin:3px 0 0;font:500 17px/1.4 var(--head)}
.alts{list-style:none;padding:0;margin:0}.alts li{padding:12px 0;border-top:1px solid var(--line)}.alts small{display:block;color:var(--mute);font-size:14.5px;margin:4px 0}
.shot{margin:28px 0}
.shot img{border:1px solid var(--line)}
.ep-profile{margin-top:72px;padding:64px 0 56px;background-color:var(--pale);box-shadow:0 0 0 100vmax var(--pale);clip-path:inset(0 -100vmax)}
.ep-assessment-head{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:64px;align-items:end;margin-bottom:28px}
.ep-assessment-head h2{font-size:clamp(28px,3vw,42px);margin:0}
.ep-assessment-head p{margin:0}
.ep-criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2px}
.ep-criterion{background:#fff;padding:22px 24px}
.ep-criterion header{display:flex;flex-direction:column-reverse;gap:2px}
.ep-criterion h3{font-size:21px}
.ep-criterion .ep-status{align-self:flex-start}
.ep-proof{font-size:16px;color:var(--mute)}
.ep-criterion details summary{font:600 14.5px/1.3 var(--body);color:var(--accent)}

/* About, method, sources, index, archive article */
.ed-accountability,.mainart,.ed-source-page,.faq{max-width:none}
.jn-ac-section,.ed-ac-block{max-width:820px;margin:40px 0;padding-top:22px;border-top:1px solid var(--line);position:relative}
.jn-ac-section::before,.ed-ac-block::before{content:"";position:absolute;top:-1px;left:0;width:64px;height:1px;background:var(--rule)}
.jn-ac-section h2,.ed-ac-block h2,.ed-ac-block h3{font-size:clamp(24px,2.4vw,30px)}
.jn-ac-question{font:var(--hw) 20px/1.45 var(--head);color:var(--ink);border-left:3px solid var(--rule);padding-left:18px}
.jn-ac-lead>p:not(.jn-ac-dek):not(.jn-ac-question){max-width:68ch}
.ed-ac-evidence div{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.ed-ac-evidence dt{font-weight:600}
.ed-ac-evidence dd{margin:0}
.jn-ac-criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.jn-ac-revisions{max-width:820px;margin:40px 0;border-top:1px solid var(--line);padding-top:16px}
.jn-ac-revisions summary{font:600 16px/1.3 var(--body)}
.jn-ac-revisions article{padding:12px 0;border-bottom:1px solid var(--line)}
.jn-ac-corrections{max-width:none;background-color:var(--pale);box-shadow:0 0 0 100vmax var(--pale);clip-path:inset(0 -100vmax);padding:40px 0 32px;margin-bottom:0;border-top:0}
.jn-ac-corrections::before{display:none}
.ed-ac-contact{font-weight:600}
.alist{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px}
.alist li{padding:26px 0;border-top:1px solid var(--line);position:relative}
.alist li::before{content:"";position:absolute;top:-1px;left:0;width:64px;height:1px;background:var(--rule)}
.alist a.n{font:var(--hw) 23px/1.25 var(--head);letter-spacing:var(--track);text-decoration:none;color:var(--ink)}
.alist a.n:hover{color:var(--accent)}
.alist .byline{margin:8px 0 0}
.mainart .artbody{max-width:760px}
.faq{margin-top:56px;padding:48px 0;background-color:var(--pale);box-shadow:0 0 0 100vmax var(--pale);clip-path:inset(0 -100vmax)}
.faq>h2{font-size:clamp(26px,2.6vw,36px)}
.qa{border-top:1px solid var(--line);padding:18px 0;max-width:820px}.qa h3{font-size:20px}
table.matrix{width:100%;font-size:15.5px;margin:24px 0;display:block;overflow-x:auto}
table.matrix th,table.matrix td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}
table.matrix th{background:var(--pale)}
.srcs{margin:56px 0 0;padding-top:22px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.6}
.srcs h2{font:600 12.5px/1.3 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.srcs ol{columns:2;column-gap:56px;padding-left:24px}.srcs li{break-inside:avoid;margin-bottom:9px}
.hz-sources .srcs{border-top:0;margin-top:0;padding-top:0}
.hz-after{padding-bottom:64px}
.hz-404{padding-top:12vh;padding-bottom:16vh;max-width:760px}
.hz-404 h1{font-size:clamp(40px,6vw,72px)}

/* ---------- Narrow screens ---------- */
@media (max-width:1100px){
  .hz-feature article>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"cat cat" "title title" "claim claim" "verdict check" "read read"}
}
@media (max-width:980px){
  .hz-in,.hz-foot>.ed-wrap{padding-left:28px;padding-right:28px}
  .hz-air-nav::after{left:28px;right:28px}
  .hz-air-top{grid-template-columns:1fr;gap:10px}
  .hz-air-top .hz-meta{justify-self:start;text-align:left}
  .hz-lead .jn-lead-copy{grid-template-columns:1fr;grid-template-areas:"cat" "title" "dek" "by" "read"}
  .hz-lead h1{margin-bottom:16px}
  .hz-rows>article,.hz-window-in,.ep-journal-open,.pf-body,.ed-guide-layout,.hz-compare .jn-shortlist-layout>header,.ep-assessment-head,.hz-foot>.ed-wrap{grid-template-columns:minmax(0,1fr)}
  .hz-rows>article{gap:20px}
  .hz-compare .jn-shortlist-layout>header h2{grid-row:auto;margin-bottom:14px}
  .hz-alts [data-journal-alternatives]>div{grid-template-columns:minmax(0,1fr)}
  .hz-alts article{border-left:0;padding:24px 0 8px}
  .ed-guide-toc,.pf-aside,.tocm{position:static}
  .ed-guide-notes,.ed-guide-related{margin-left:0}
  .pf-main .tocm{display:block;margin-bottom:24px}
  .pf-aside .rtoc{display:none}
  .ep-journal-verdict{order:0}
  .srcs ol,.alist{columns:1;grid-template-columns:minmax(0,1fr)}
  .hz-foot>.ed-wrap>div:last-child p{text-align:left;margin-left:0}
  .ed-control-actions{margin-left:0}
}
@media (max-width:640px){
  body.hz{font-size:17px}
  .hz-in,.hz-foot>.ed-wrap{padding-left:18px;padding-right:18px}
  .hz-air-nav::after{left:18px;right:18px}
  .hz-nav{gap:2px 20px}
  .hz-nav a{padding:10px 0 9px}
  .hz-mast-band .hz-nav{gap:2px 14px}
  .hz-mast-band .hz-nav a{padding:6px 0 12px;font-size:14.5px}
  .hz-mast-band .hz-brand{padding:14px 0 6px}
  .hz-white,.hz-pale{padding:56px 0}
  .hz-deep{padding:56px 0 48px}
  .hz-lead{margin-top:-36px}
  .hz-lead .jn-lead{padding:26px 20px 24px}
  .hz-waypoints{grid-template-columns:minmax(0,1fr);gap:40px;margin-top:44px}
  .hz-head .jn-section-top{flex-direction:column;align-items:flex-start;gap:8px}
  .hz-feature article>div,.hz-rows article>div{grid-template-columns:minmax(0,1fr);grid-template-areas:"cat" "title" "claim" "verdict" "check" "read"}
  .hz-feature figure img,.hz-sky-fig .hz-art{aspect-ratio:16/9}
  .jn-check{margin-top:4px}
  .ed-controls{padding:16px}
  .jn-vendors summary{grid-template-columns:44px minmax(0,1fr) 20px;gap:12px;padding:16px}
  [class*="-rank"]{font-size:28px}
  [class*="vendor-body"]{padding:4px 16px 20px}
  .ep-fit-guide{grid-template-columns:minmax(0,1fr);gap:16px}
  .ed-ac-evidence div{grid-template-columns:minmax(0,1fr);gap:4px}
  .ed-guide-dates{flex-direction:column;gap:4px}
  .ep-criteria{grid-template-columns:minmax(0,1fr)}
  .hz-meta-row .hz-meta{flex-direction:column}
}


/* ---------- Round 2: page-head art, filled columns, typography ---------- */
.hz-lead-art{margin:0}
.hz-lead-art .hz-art{width:100%;aspect-ratio:3/2;object-fit:cover}
.ed-guide-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:64px;align-items:center}
.ed-guide-hero .ed-guide-heading{max-width:none}
.jn-ac-lead,.ed-source-page>header{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:64px;align-items:start}
.jn-ac-lead>*,.ed-source-page>header>*{grid-column:1}
.jn-ac-lead>.hz-lead-art,.ed-source-page>header>.hz-lead-art{grid-column:2;grid-row:1 / span 8;align-self:center}
.hz-pagehead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);column-gap:64px;align-items:center;padding-bottom:40px;margin-bottom:48px}
.hz-pagehead h1{margin:0;padding:6px 0 10px}
.hz-pagehead .tline{font-size:17px;color:var(--mute);margin:0}
.hz-pagehead .hz-lead-art .hz-art{aspect-ratio:5/2}
.hz-404{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:64px;align-items:center;max-width:1320px}
.ed-guide-toc>summary,.tocm>summary{list-style:none}
.ed-guide-toc>summary::-webkit-details-marker,.tocm>summary::-webkit-details-marker{display:none}
.ed-guide-toc>summary::after,.tocm>summary::after{content:"+";margin-left:8px;color:var(--accent)}
.ed-guide-toc[open]>summary::after,.tocm[open]>summary::after{content:"−"}
/* About and method sections run wide: heading on the left, text on the right */
.jn-ac-section,.ed-ac-block{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:56px;max-width:none;align-items:start}
.jn-ac-section>h2,.ed-ac-block>h2,.ed-ac-block>h3{grid-column:1;grid-row:1 / span 12}
.jn-ac-section>*:not(h2),.ed-ac-block>*:not(h2):not(h3){grid-column:2}
.jn-ac-revisions{max-width:none;margin-left:calc((100% - 56px) / 3 + 56px)}
.ed-status,.ep-status{white-space:nowrap}
.hz-meta span,.jn-dek,.ed-guide-dek,.jn-ac-dek,.hz-foot p,.hz p{text-wrap:pretty}
/* Footer links: separators travel with the next link */
.hz-flinks{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:2px 0}
.hz-fl{white-space:nowrap}
.hz-fl+.hz-fl{padding-left:8px}
.hz-fl a{margin-left:8px}
.hz-fl:first-child a{margin-left:0}
@media (max-width:980px){
  .ed-guide-hero,.jn-ac-lead,.ed-source-page>header,.hz-pagehead,.hz-404,.jn-ac-section,.ed-ac-block{grid-template-columns:minmax(0,1fr)}
  .jn-ac-lead>.hz-lead-art,.ed-source-page>header>.hz-lead-art,.jn-ac-section>h2,.ed-ac-block>h2,.ed-ac-block>h3,.jn-ac-section>*:not(h2),.ed-ac-block>*:not(h2):not(h3){grid-column:1;grid-row:auto}
  .hz-lead-art{margin-top:24px}
  .hz-lead-art .hz-art,.hz-pagehead .hz-lead-art .hz-art{aspect-ratio:3/1}
  .jn-ac-revisions{margin-left:0}
  .hz-flinks{justify-content:flex-start}
}
@media (max-width:640px){
  .hz-nav{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:0 12px;width:100%}
  .hz-mast-band .hz-nav{gap:0 12px}
  .hz-mast-band .hz-bar-in{flex-direction:column;align-items:stretch;gap:0}
  .hz-flinks{flex-direction:column;align-items:flex-start;gap:6px}
  .hz-fl{font-size:16px}
  .hz-fl:first-child::before{content:"·";margin-right:8px;color:var(--mute)}
  .hz-fl a{margin-left:4px}
  .hz-fl+.hz-fl{padding-left:0}
}

/* Round 3: photographs. A thin horizon rule closes each picture. */
.hz-pano,.hz-lead-art,.hz-window-art,.hz-sky-fig,.hz-strip-photo{position:relative}
.hz-lead-art .hz-art,.hz-window-art .hz-art,.hz-sky-fig .hz-art{border-bottom:3px solid var(--rule)}
/* The Nexus card shows a real Nexus product image, framed whole on a pale-sky mat (never cropped into a scene). */
.hz-nexus-fig{background:var(--pale);padding:32px 40px 0;border-bottom:3px solid var(--rule);overflow:hidden}
.hz-feature .hz-nexus-fig .hz-art,.hz-nexus-fig .hz-art{aspect-ratio:auto;width:100%;height:auto;max-height:540px;object-fit:cover;object-position:top center;border:1px solid var(--line);border-bottom:0;box-shadow:0 20px 50px -30px rgba(12,40,70,.35);border-bottom:0}
@media (max-width:640px){.hz-nexus-fig{padding:16px 16px 0}}

/* ---------- Round 5: judge fixes ---------- */
/* 1. Photo strips crop low enough to show the people at work, not only the skyline */
.hz-strip-photo .hz-art{height:clamp(200px,24vw,340px);object-position:center 78%}
.hz-foot-sky .hz-art{height:clamp(170px,19vw,280px);object-position:center 80%}
/* 2. Archive article: one centred measure for header band, body and FAQ */
.hz-archive-article>.ed-wrap{max-width:800px;margin-left:auto;margin-right:auto}
.hz-archive-article .mainart .artbody{max-width:none}
/* 3. Home Nexus card: real product image shown whole; read link sits under the title */
@media (min-width:1101px){.hz-feature article>div{grid-template-areas:"cat claim claim" "title claim claim" "read verdict check"}}
.hz-feature .jn-read{align-self:start;margin:8px 0 0}
.hz-feature .hz-nexus-fig .hz-art,.hz-nexus-fig .hz-art{max-height:none;object-fit:contain}
.hz-nexus-fig{padding:32px 40px 32px}
.hz-nexus-fig .hz-art{border-bottom:1px solid var(--line)}
/* 4. Review criteria: five tiles fill two full rows (3 + 2 wide); no blank cell */
@media (min-width:981px){
  .ep-criteria{grid-template-columns:repeat(6,minmax(0,1fr))}
  .ep-criterion{grid-column:span 2}
  .ep-criterion:nth-child(3n+1):nth-last-child(2),.ep-criterion:nth-child(3n+2):last-child{grid-column:span 3}
  .ep-criterion:nth-child(3n+1):last-child{grid-column:span 6}
}
.ep-profile{padding-bottom:40px}
.hz-after .srcs{margin-top:40px}
/* 7. Brand mark: a small horizon mark (sky above a rule) drawn on the source mark's box */
.hz-brand svg{background:linear-gradient(180deg,var(--sky-top) 0,var(--sky) 60%,var(--rule) 60%,var(--rule) 68%,#fff 68%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.hz-brand svg rect,.hz-mast-band .hz-brand svg rect{fill:transparent;stroke:none}
.hz-brand svg path,.hz-mast-band .hz-brand svg path{fill:none;stroke:none}
/* 8. No lone "?" on a line: balanced or pretty wrapping on every text element */
.hz li,.hz dd,.hz summary,.hz small,.hz figcaption{text-wrap:pretty}
.ed-guide-checklist li{text-wrap:balance}
/* 1b. Crop focus per strip, measured on the images: people sit at 35 to 65% of the height */
body[data-page="review"] .hz-strip-photo .hz-art{object-position:center 62%}
body[data-page="archive-article"] .hz-strip-photo .hz-art{object-position:center 42%}
.hz-foot-sky .hz-art{object-position:center 48%}
/* 4b. Review: the criteria band runs straight into Sources, no blank gap */
.hz-main.hz-review{padding-bottom:0}
.hz-main.hz-review+.hz-after .srcs{margin-top:44px}
