/* sc-qa-v5.css (SC-N248) - fixes from the 10/19 browser QA + axe accessibility run. Loaded LAST on every page, so removing this one
   <link> undoes all of it. Targets the exact colour pairs that failed WCAG AA (4.5:1) and the layout issues seen on phones. */

/* 1. Muted text was rgba(255,255,255,.38) = #646568 on #05070b (3.45:1): footer links, eyebrows, copyright, "/mo", mono captions. */
:root { --ink-4: rgba(255,255,255,.58); --sc-ink-3: #93a0ae; }
.footer-copy, .sfp-eyebrow, footer a, footer li, sub { color: rgba(255,255,255,.62); }

/* 2. Product mock-up cards (home, cloud-servers, web-hosting): labels/values were #404144-#484f58 on #11151b-#21262d (1.5-2.3:1). */
.hcs-l, .hc-snap-date { color: #9aa6b2 !important; }
.hcs-v, .hc-snap-name { color: #e6edf3 !important; }

/* 3. "2 months free" badge: white on #448fbf (3.54:1) -> the brand's deep blue. */
.scb-save { background: #1B76B1 !important; color: #fff !important; }

/* 4. Code comments in terminal blocks were #6b6d73 on #10141d (3.56:1). */
pre .c, code .c, [class*="term"] .c, [class*="code"] .c { color: #8d96a0 !important; }

/* 5. Links inside running text must not rely on colour alone (axe link-in-text-block). */
p a:not([class]), li > a:not([class]):not(nav a):not(footer a) { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(131,195,236,.55); }
p a:not([class]):hover { text-decoration-color: currentColor; }

/* 6. Headlines: no single orphan word on the last line ("fees.", "verify.", "default."). */
h1, h2, h3 { text-wrap: balance; }

/* 7. Phones: wide tables and code scroll inside their own box instead of pushing the page wider (borgbase-alternative was 469px). */
@media (max-width: 640px) {
  main table, article table, section table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  pre, code { max-width: 100%; overflow-x: auto; }
  img, video, svg { max-width: 100%; height: auto; }
}

/* pricing-cards (SC-N272) */
.pr-grid > .pr-card > .pr-chip.pr-chip.pr-chip{position:absolute!important;top:-11px!important;bottom:auto!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;white-space:nowrap!important;max-width:none!important;margin:0!important;float:none!important;z-index:2!important;background:linear-gradient(rgba(131,195,236,.16),rgba(131,195,236,.16)),#0f1824!important;border:1px solid rgba(131,195,236,.45)!important}
/* end pricing-cards */
/* ---- ui4 (SC-N251): measured fixes - phone overflow, window dots, hero accent, breadcrumb, headings, terminals ---- */
h1,h1 *,h2,h3{text-wrap:balance!important}
div.wrap h1{max-width:none!important}

/* ---- ui6 (SC-N256): measured fixes rebuilt - phone fit (full-page width), terminal windows only, window dots, pinned breadcrumb/h1 ---- */
.sc-pin-crumb{font-family:"Geist Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace!important;font-size:12.48px!important;letter-spacing:0.9984px!important;text-transform:none!important;color:rgba(255, 255, 255, 0.48)!important;margin-bottom:20px!important}
.sc-pin-crumb a{color:rgba(255, 255, 255, 0.48)!important;text-decoration-line:none!important;font-family:inherit!important}

/* ---- ui7 (SC-N257): phone fit by culprit isolation, terminal windows (monospace in pre/terminal only), label/value tables, hero terminal spacing ---- */
@media (max-width: 480px){div.content-block.cb-wide table,div.content-block.cb-wide table tbody,div.content-block.cb-wide table tr,div.content-block.cb-wide table th,div.content-block.cb-wide table td{display:block;width:auto!important}div.content-block.cb-wide table thead{display:none}div.content-block.cb-wide table tr{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}div.content-block.cb-wide table td:first-child,div.content-block.cb-wide table th:first-child{padding-bottom:2px;font-weight:600}table.ir-map,table.ir-map tbody,table.ir-map tr,table.ir-map th,table.ir-map td{display:block;width:auto!important}table.ir-map thead{display:none}table.ir-map tr{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}table.ir-map td:first-child,table.ir-map th:first-child{padding-bottom:2px;font-weight:600}table.ir-spec,table.ir-spec tbody,table.ir-spec tr,table.ir-spec th,table.ir-spec td{display:block;width:auto!important}table.ir-spec thead{display:none}table.ir-spec tr{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08)}table.ir-spec td:first-child,table.ir-spec th:first-child{padding-bottom:2px;font-weight:600}}
.sc-pin-heroterm{margin-top:40px!important}

/* ---- ui8 (SC-N258): comparison tables fit phones (wrap first, scroll inside the table last), affiliates edge ---- */
@media (max-width: 640px){table.ctable{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:auto!important}table.ctable th,table.ctable td,table.ctable td *,table.ctable th *{white-space:normal!important;overflow-wrap:anywhere!important;min-width:0!important}}

/* ---- auto (SC-N262 axefix6): 22 contrast selectors (22 kept from before), 9 link underlines, 2 nodes skipped, 4 pinned ---- */
.canary-status-card > dl > div:nth-child(1) > dt { color: #7c7e81 !important; }
.canary-status-card > dl > div:nth-child(2) > dt { color: #7c7e81 !important; }
.cta-inner > .reveal > p:nth-child(3) { color: #797a7c !important; }
.cta-inner > p { color: #797a7c !important; }
.h-note { color: #78797c !important; }
.hc-bar2 > span:nth-child(1) { color: #797e84 !important; }
.hc-bar2 > span:nth-child(2) { color: #797e84 !important; }
.hc-label { color: #797e84 !important; }
.hc-label:nth-child(2) { color: #797e84 !important; }
.hc-label:nth-child(4) { color: #797e84 !important; }
.key-card-download > span { color: #f8f8f8 !important; }
.legal-crumb > span { color: #797a7c !important; }
.reveal > p:nth-child(5) { color: #787a7c !important; }
.reveal:nth-child(3) { color: #797a7c !important; }
.sc-pin-c-7c7e81 { color: #7c7e81 !important; }
.sc-pin-c-7e7f81 { color: #7e7f81 !important; }
.sc-pin-c-808183 { color: #808183 !important; }
.sec-dark2 > .wrap > div:nth-child(1) > p:nth-child(4) { color: #797a7c !important; }
.sfp-eyebrow { color: #787a7c !important; }
div.tech-box.reveal p { color: #7c7d7f !important; }
div.tech-box.reveal strong { color: #7c7d7f !important; }
dl.key-card-meta dt { color: #7c7e81 !important; }
.sc-pin-c-717b85 { color: #717b85 !important; }
.pgp-lede > a[href$="warrant-canary/"] { text-decoration: underline !important; text-underline-offset: 3px; }
.step-p > a[href$="website-protection/"] { text-decoration: underline !important; text-underline-offset: 3px; }
a[href$="borgbase.com/"] { text-decoration: underline !important; text-underline-offset: 3px; }
a[href$="status.servercrate.net"] { text-decoration: underline !important; text-underline-offset: 3px; }
tr:nth-child(2) > td:nth-child(4) > .note > a[rel="noopener nofollow"][target="_blank"] { text-decoration: underline !important; text-underline-offset: 3px; }
tr:nth-child(3) > td:nth-child(4) > .note > a[rel="noopener nofollow"][target="_blank"] { text-decoration: underline !important; text-underline-offset: 3px; }
tr:nth-child(4) > td:nth-child(4) > .note > a[href$="pricing"] { text-decoration: underline !important; text-underline-offset: 3px; }
tr:nth-child(6) > td:nth-child(4) > .note > a[rel="noopener nofollow"][target="_blank"] { text-decoration: underline !important; text-underline-offset: 3px; }
tr:nth-child(7) > td:nth-child(4) > .note > a[rel="noopener nofollow"][target="_blank"] { text-decoration: underline !important; text-underline-offset: 3px; }

/* sc-n404-endings-v1 */
/* Page endings: the "Next steps" links sit in the page's own container, directly under the final CTA, with no dead gap. */
html body .sec:has(+ .sc-nextsteps),html body .scp-sec:has(+ .sc-nextsteps){padding-bottom:var(--s7,48px)!important}
html body .sec:has(+ .sc-nextsteps) > .wrap > :last-child{margin-bottom:0!important}
html body .sc-trust-panel.sc-nextsteps{display:block!important;height:auto!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;max-width:var(--sc-max,1180px);margin:0 auto var(--s8,64px);padding:0 var(--sc-gutter,24px);box-sizing:border-box}
html body .sec-tint + .sc-trust-panel.sc-nextsteps,html body .sec-dark + .sc-trust-panel.sc-nextsteps,html body .scp-sec + .sc-trust-panel.sc-nextsteps,html body script + .sc-trust-panel.sc-nextsteps,html body p + .sc-trust-panel.sc-nextsteps{margin-top:var(--s6,32px)}
/* the injected Bitcoin note above the panel follows the same left edge instead of floating centered */
html body p[data-injected="btc-internal-link-v1"]:has(~ .sc-nextsteps){box-sizing:border-box;max-width:min(760px,calc(100% - 2 * var(--sc-gutter,24px)))!important;margin-left:max(var(--sc-gutter,24px),calc((100% - var(--sc-max,1180px)) / 2 + var(--sc-gutter,24px)))!important;margin-right:auto!important}
.sc-nextsteps .sc-ns-label{font-family:var(--sc-mono,'Geist Mono',ui-monospace,monospace);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--sc-ink-3,#7d8a99);margin:0 0 var(--s4,16px)}
.sc-nextsteps .sc-ns-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4,16px);align-items:stretch}
html body section:has(> .wrap > .content-block) + .sc-nextsteps .sc-ns-grid{max-width:760px}
html body .sc-nextsteps .sc-ns-grid > a{display:flex;flex-direction:column;gap:6px;min-width:0;padding:20px 22px;background:var(--sc-surface,#0c1016);border:1px solid var(--sc-line,rgba(255,255,255,.08));border-radius:var(--r-card,10px);color:inherit;text-decoration:none;transform:none;transition:border-color .15s ease,background-color .15s ease}
html body .sc-nextsteps .sc-ns-grid > a:hover{border-color:var(--sc-line-2,rgba(255,255,255,.14));background:var(--sc-surface-2,#11161e);transform:none}
html body .sc-nextsteps .sc-ns-grid > a > div:first-child{margin:0;font-size:1rem;font-weight:600;line-height:1.3;letter-spacing:-.01em;color:var(--sc-ink,#f3f6f9)}
html body .sc-nextsteps .sc-ns-grid > a > div:first-child::after{content:"\00a0\2192";color:var(--sc-blue-400,#83C3EC)}
html body .sc-nextsteps .sc-ns-grid > a > div:nth-child(2){font-size:.88rem;line-height:1.5;color:var(--sc-ink-3,#7d8a99)}
/* the kept injected CTA (pages with no CTA of their own): one bar on the same container edge */
html body .sc-inline-cta.sc-endcta{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--s6,32px);align-items:center;box-sizing:border-box;width:calc(100% - 2 * var(--sc-gutter,24px));max-width:calc(var(--sc-max,1180px) - 2 * var(--sc-gutter,24px));margin:0 auto var(--s8,64px);padding:var(--s5,24px) var(--s6,32px);text-align:left;background:var(--sc-surface,#0c1016);border:1px solid rgba(131,195,236,.22);border-radius:var(--r-card,10px)}
.sc-endcta > *{grid-column:1}
.sc-endcta .sc-ec-label{margin:0 0 6px;font-family:var(--sc-mono,'Geist Mono',ui-monospace,monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sc-blue-400,#83C3EC)}
.sc-endcta .sc-ec-h{margin:0 0 4px;font-size:1.25rem;font-weight:600;line-height:1.3;color:var(--sc-ink,#f3f6f9)}
.sc-endcta .sc-ec-p{margin:0;font-size:.92rem;line-height:1.55;color:var(--sc-ink-2,#aab6c3)}
html body .sc-endcta > a{grid-column:2;grid-row:1 / span 3;align-self:center;white-space:nowrap}
/* shared plans band: one accent (brand blue), like the rest of the page */
html body .sc-allplans-eyebrow,html body .sc-allplans-cta{color:var(--sc-blue-400,#83C3EC)!important}
html body .sc-allplans-cta:hover{color:var(--sc-blue-200,#C1E1F6)!important}
@media (max-width:760px){
  .sc-nextsteps .sc-ns-grid{grid-template-columns:1fr}
  .sc-nextsteps .sc-ns-grid > a{padding:18px 20px}
  html body .sc-inline-cta.sc-endcta{grid-template-columns:1fr;padding:var(--s5,24px)}
  html body .sc-endcta > a{grid-column:1;grid-row:auto;margin-top:var(--s4,16px);text-align:center}
}
/* article pages pad their sections inline on phones (16px, then 14px); the panel keeps the same text edge */
@media (max-width:720px){
  html body .sc-nextsteps.sc-ns-inset{padding-left:calc(16px + var(--sc-gutter,24px));padding-right:calc(16px + var(--sc-gutter,24px))}
  html body .sc-inline-cta.sc-endcta.sc-ns-inset{width:calc(100% - 2 * (16px + var(--sc-gutter,24px)))}
  html body:has(.sc-ns-inset) p[data-injected="btc-internal-link-v1"]:has(~ .sc-nextsteps){margin-left:calc(16px + var(--sc-gutter,24px))!important;max-width:calc(100% - 2 * (16px + var(--sc-gutter,24px)))!important}
}
@media (max-width:480px){
  html body .sc-nextsteps.sc-ns-inset{padding-left:calc(14px + var(--sc-gutter,16px));padding-right:calc(14px + var(--sc-gutter,16px))}
  html body .sc-inline-cta.sc-endcta.sc-ns-inset{width:calc(100% - 2 * (14px + var(--sc-gutter,16px)))}
  html body:has(.sc-ns-inset) p[data-injected="btc-internal-link-v1"]:has(~ .sc-nextsteps){margin-left:calc(14px + var(--sc-gutter,16px))!important;max-width:calc(100% - 2 * (14px + var(--sc-gutter,16px)))!important}
}
@media (max-width:640px){
  /* article final CTA boxes (inline padding:48px) get phone-sized padding */
  html body .sec .wrap > div[style*="padding:48px"][style*="var(--bg2)"]{padding:28px 20px!important}
}
/* /black-friday/ and /proxmox-backup-setup/ (built by pagefix.py on the lp template) */
.sc-deal-group + .sc-deal-group{margin-top:var(--s8,64px)}
.sc-deal-group > .lp-head{margin-bottom:var(--s5,24px)}
.sc-deal-group .lp-head h3{margin:8px 0 8px;font-size:1.35rem;letter-spacing:-.015em;color:var(--sc-ink,#f3f6f9)}
.sc-deals{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s4,16px)}
.sc-deal{gap:4px!important}
.sc-deal .sc-deal-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.sc-deal .sc-deal-top h3{margin:0!important}
.sc-deal .sc-deal-size{font-family:var(--sc-mono,'Geist Mono',ui-monospace,monospace);font-size:12px;color:var(--sc-ink-3,#7d8a99);white-space:nowrap}
.sc-deal .sc-deal-price{margin:14px 0 2px;font-size:2rem;font-weight:700;line-height:1;letter-spacing:-.03em;color:var(--sc-ink,#f3f6f9)}
.sc-deal .sc-deal-price span{margin-left:6px;font-size:.82rem;font-weight:500;letter-spacing:0;color:var(--sc-ink-3,#7d8a99)}
.sc-deal p.sc-deal-was{margin:0 0 16px!important;font-size:.84rem!important;line-height:1.5!important;color:var(--sc-ink-3,#7d8a99)}
.sc-deal p.sc-deal-was s{color:var(--sc-ink-2,#aab6c3)}
.sc-deal p.sc-deal-was b{color:var(--sc-blue-400,#83C3EC);font-weight:600}
.sc-deal .btn{margin-top:auto;white-space:nowrap;padding-left:12px;padding-right:12px}
.sc-terms{margin:0;border:1px solid rgba(131,195,236,.14);border-radius:16px;overflow:hidden;background:rgba(11,22,36,.55)}
.sc-terms > div{display:grid;grid-template-columns:190px minmax(0,1fr);border-bottom:1px solid rgba(131,195,236,.09)}
.sc-terms > div:last-child{border-bottom:0}
.sc-terms dt{padding:15px 20px;font-weight:600;font-size:.9rem;color:var(--sc-ink,#f3f6f9);background:rgba(131,195,236,.03)}
.sc-terms dd{margin:0;padding:15px 20px;font-size:.9rem;line-height:1.55;color:var(--sc-ink-2,#aab6c3)}
.sc-page-faq .faq-item{max-width:860px}
@media (max-width:640px){.sc-deals{grid-template-columns:1fr 1fr}.sc-deal .sc-deal-top{flex-direction:column;gap:2px}.sc-terms > div{grid-template-columns:1fr}.sc-terms dt{padding:12px 16px 0;background:none}.sc-terms dd{padding:4px 16px 12px}}
@media (max-width:420px){.sc-deals{grid-template-columns:1fr}}
/* /sc-n404-endings-v1 */
/* sc-n408-visual-v1 */
/* SC-N408 sitewide visual pass: one type scale, one container, one section rhythm, one card surface, phone tables that
   scroll inside their own box, and proportional scaling on large monitors. Class-based; no page carries a <style> for it. */

/* ---- 0. tokens ---------------------------------------------------------------------------------------------------- */
:root{
  --sc-max:1200px;
  --n408-read:760px;                 /* long-form reading column */
  --n408-body:16px;                  /* marketing body copy */
  --n408-prose:17px;                 /* long-form paragraphs */
  --n408-small:14px;                 /* fine print floor */
  --n408-label:12px;                 /* mono / uppercase label floor */
  --n408-table:15px;                 /* table + FAQ answer floor */
  --n408-sec:clamp(56px,5.4vw,78px);   /* section padding */
  --n408-sec-tight:clamp(32px,4vw,48px);
}
@media (max-width:760px){:root{--n408-prose:16px;--n408-body:15.5px}}

/* Large monitors: the 1200px page used to sit in a sea of black at 11-15px. Scale the whole page proportionally, the
   same thing browser zoom does, so type, cards and the container grow together. Media queries keep using the real
   viewport, so no layout breakpoint changes. */
@media (min-width:1600px){html{zoom:1.1}}
@media (min-width:1840px){html{zoom:1.2}}
@media (min-width:2160px){html{zoom:1.32}}
@media (min-width:2480px){html{zoom:1.45}}
@media (min-width:3000px){html{zoom:1.7}}

/* ---- 1. type scale ------------------------------------------------------------------------------------------------ */
/* leads */
html body .lead,html body p.lead,html body .page-hero .lead,html body .h-sub,html body .lp-head p{font-size:clamp(16.5px,1.25vw,18px)!important;line-height:1.65!important}
/* long-form prose (content-block is the article column on ~60 pages) */
html body .content-block p,html body .content-block li,html body .content-block dd,html body .content-block blockquote{font-size:var(--n408-prose)!important;line-height:1.72!important}
html body .content-block h2{font-size:clamp(23px,2.1vw,30px)!important;line-height:1.2!important;letter-spacing:-.02em!important;margin:clamp(36px,4vw,52px) 0 14px!important}
html body .content-block > h2:first-child,html body .content-block > :first-child{margin-top:0!important}
html body .content-block h3{font-size:clamp(18px,1.45vw,20.5px)!important;line-height:1.3!important;letter-spacing:-.012em!important;margin:30px 0 10px!important}
html body .content-block > *{max-width:100%!important}
html body .content-block code{font-size:.88em}
/* code blocks */
html body pre,html body pre code,html body .content-block pre{font-size:13.5px!important;line-height:1.7!important}
/* tables everywhere in page content */
html body section table td,html body section table th,html body main table td,html body main table th,html body .lp-table td,html body .lp-table th{font-size:var(--n408-table)!important;line-height:1.55!important}
html body section table th,html body main table th{font-weight:600}
html body section table thead th,html body main table thead th{font-size:14.5px!important;letter-spacing:0}
html body section table td .note,html body table td div.note{font-size:var(--n408-small)!important;line-height:1.5!important}
/* FAQ (three markups) */
html body .faq-q,html body .scp-faq-q{font-size:clamp(16.5px,1.3vw,18.5px)!important;line-height:1.4!important}
html body .faq-body-inner,html body .faq-body-inner p,html body .scp-faq-body-inner,html body .scp-faq-body-inner p{font-size:16px!important;line-height:1.7!important}
html body .faq-item,html body .scp-faq-item{max-width:var(--n408-read)!important}
/* card copy */
html body .feat p,html body .prod-card p,html body .lp-card p,html body .step p,html body .related-link p,html body .related-link span:not([class*="icon"]),html body .sc-ns-grid > a > div:nth-child(2){font-size:15px!important;line-height:1.6!important}
html body .pr-card li,html body .pr-strip li,html body .lp-facts li,html body ul.pr-feat li{font-size:15px!important;line-height:1.5!important}
/* fine print floor: 14px */
html body .pr-foot,html body .pr-note,html body .pr-lock,html body .cta-fineprint,html body .h-note,html body .sc-eh-fineprint,html body .br-note,html body .nt-note,html body .nt-fine,html body .bo-fine,html body .br-fine,html body .bp-disclose,html body .lp-note,html body .rd-note,html body .sc-tools-note,html body figcaption,html body .sc-endcta .sc-ec-p,html body .sc-tool-m,html body .nt-hint,html body p.pr-foot a,html body .legal-toc a,html body .legal-toc li{font-size:var(--n408-small)!important;line-height:1.55!important}
/* label floor: 12px (mono eyebrows, badges, hero card captions, footer headings) */
html body .eyebrow,html body .eyebrow-dark,html body .eyebrow-light,html body .scp-eyebrow,html body .h-eyebrow,html body .sc-allplans-eyebrow,html body .pgp-eyebrow,html body .legal-footer-eyebrow,html body .sc-eh-kicker,html body .spi-eyebrow,html body .ple-eyebrow,html body .sc-ns-label,html body .sc-ec-label,html body .footer-col-title,html body .sfp-eyebrow,html body .ft-badge,html body .hcs-l,html body .hc-badge,html body .hc-snap-date,html body .hc-snap-ok,html body .pr-chip,html body .pr-mb,html body .scb-save,html body .sc-ap-name,html body .bench-label,html body .tl-cell h3,html body .legal-footer-link-meta,html body .rd-cell p.l,html body .e404-result-path,html body .sct-stat .l,html body .nr-tab-count,html body .h-badge,html body .h-badge *,html body .hero dt,html body .page-hero dt,html body .h-facts dt,html body .sfp-hours{font-size:var(--n408-label)!important}
html body .breadcrumb,html body .breadcrumb a,html body .breadcrumb span,html body .sc-pin-crumb{font-size:12.5px!important}

/* more labels found by the measurement pass */
html body .pr-grid > .pr-card > .pr-chip.pr-chip.pr-chip,html body .hc-bar2 > span,html body .hc-foot,html body .hc-foot > span,html body .hc-label,html body .lp-card span.k,html body .pr-strip > h3,html body .copy-btn,html body .legal-toc-eyebrow,html body .sct-stat .s,html body .af-term .l,html body .nr-card-meta span,html body .bt-save,html body .cx-fact .l,html body .use-case-tag,html body .ir-rep-m span,html body .ir-rep-url{font-size:var(--n408-label)!important}
html body .rd-cell p.v{font-size:15px!important}
html body .bp-pick-rows li > span,html body .ir-rep-rows li span,html body .ao-note,html body .ao-foot,html body .ci-fine,html body .ir-fine,html body .sct-f label,html body .tl-cell p,html body p.date{font-size:var(--n408-small)!important}
/* inline font sizes below the floor (style="font-size:.78rem" etc. on ~100 elements): copy goes to 14px, labels to 12px */
html body :is(section,main,aside,article) :is(p,li,div,dd,td,a,span):is([style*="font-size:.7"],[style*="font-size:.8"],[style*="font-size:12px"],[style*="font-size:12.5px"],[style*="font-size:13px"],[style*="font-size:13.5px"]):not([style*="uppercase"]):not([style*="letter-spacing"]):not([style*="mono"]):not(:is(h1,h2,h3,h4,pre,code,button,.btn) *){font-size:var(--n408-small)!important}
html body :is(section,main,aside,article) :is(p,li,div,span,a):is([style*="font-size:11px"],[style*="font-size:.6"],[style*="font-size:.7"]):is([style*="uppercase"],[style*="letter-spacing"],[style*="mono"]):not(:is(h1,h2,h3,h4) *){font-size:var(--n408-label)!important}
/* contrast: muted labels that measured under 4.5:1 */
html body .breadcrumb-sep{opacity:1!important}
html body .breadcrumb-sep,html body a > span.arr,html body .e404-result-path,html body .nr-tab-count,html body .hc-bar .hc-label,html body .e404-status > span{color:var(--sc-ink-3,#93a0ae)!important}
/* warrant canary: blue text on a blue button (1.5:1) */
html body .canary-status-cta,html body .canary-if-dead .cta-link{color:#fff!important}
/* the 404 page does not load polish-v4: give it the same flat CTA and solid accent as every other page */
html body:has(.e404) #site-header a.nav-cta[href],html body:has(.e404) #nav-shell a.nav-cta[href],html body:has(.e404) .btn-blue{background:var(--sc-blue-700,#1B76B1)!important;background-image:none!important;color:#fff!important}
html body .e404{background-image:none!important}
html body:has(.e404) h1 span{background:none!important;-webkit-text-fill-color:currentColor!important;color:var(--sc-blue-400,#83C3EC)!important}

/* definition rows (ul.def-list, 64 lists on the article pages) were 14.7px at 54% white */
html body .def-list{padding-left:0!important}
html body .def-list li strong{font-size:15.5px!important;line-height:1.45!important}
html body .def-list li span{font-size:16px!important;line-height:1.65!important;color:var(--sc-ink-2,#aab6c3)!important}
/* card and step copy: 15px everywhere (was 13.4-14.7 depending on the template) */
html body .feat-body,html body .step-p,html body .step-body,html body .use-case p,html body .bench-desc,html body .timeline-p,html body .tl-cell p,html body ol.lp-steps > li,html body .vc .vp,html body .nr-card-desc,html body a.related-link,html body .related-link,html body .sc-ns-grid > a > div:nth-child(2),html body .pr-fit{font-size:15px!important;line-height:1.6!important}
html body :is(section,main,aside,article) :is(p,div,li):is([style*="font-size:.9rem"],[style*="font-size:.92rem"],[style*="font-size:.93rem"],[style*="font-size:.94rem"],[style*="font-size:.95rem"]):not(:is(h1,h2,h3,h4,pre,code,button,.btn) *){font-size:15px!important}
html body .scb-note,html body .scb-note b,html body .spi-s{font-size:13.5px!important}
html body .h-ti,html body .h-trust .h-ti,html body .step-block .tip{font-size:14px!important}
/* terminal mock-ups and code panels: 13.5px floor (12-13px before) */
html body .term-body,html body .term-body div,html body .term-body span,html body .step-block .code,html body .os-panel .code,html body .lp-term pre,html body .scp-term pre{font-size:13.5px!important}
html body .term-bar .term-t{font-size:12px!important}
html body :is(section,main) :is(div,p,span)[style*="font-size:13px"][style*="mono"],html body :is(section,main) :is(div,p,span)[style*="font-size:12.5px"][style*="mono"]{font-size:13.5px!important}
/* legal documents: body copy at long-form size */
html body .legal-content p,html body .legal-content li{font-size:16.5px!important;line-height:1.75!important}
html body .legal-note p{font-size:15.5px!important}
/* "on this page" boxes: a later rule forced position:relative but left top:96px, so the box sat 96px below its slot and
   covered the text under it on phones. Desktop legal pages get the sticky sidebar back; elsewhere it stays in flow. */
html body .legal-toc,html body .toc,html body .toc-wrap{top:auto!important}
@media (min-width:1024px){html body .legal-body > .legal-toc{position:sticky!important;top:104px!important;align-self:start}}
/* home portal head: an !important flex turned eyebrow + heading into one row */
html body .showcase-head{display:block!important}
html body .showcase-head .lead{margin-left:0!important}
/* inline feature grids capped at 1000/1100px and centred: span the container like every other grid */
html body .wrap > div[style*="grid-template-columns:repeat(auto-fit"][style*="margin:0 auto"]{max-width:none!important;margin-left:0!important;margin-right:0!important}
html body .wrap > div[style*="text-align:center;max-width:680px;margin:0 auto"]{text-align:left!important;margin-left:0!important;max-width:var(--n408-read)!important}
html body .wrap div[style*="padding:24px;background:var(--bg2)"]{background:var(--sc-surface,#0c1016)!important;border:1px solid var(--sc-line,rgba(255,255,255,.08))!important;border-radius:var(--r-card,10px)!important}

/* /setup/: the related block was a lighter 16px-radius slab with negative margins, and the two closing boxes were centred
   one-offs; they now use the page's edge, the card surface and left alignment like every other page ending */
html body .setup-wrap > div[style*="calc(-1 * var(--px))"]{margin:var(--s8,64px) 0 var(--s6,32px)!important;padding:0!important;background:none!important;border-radius:0!important}
html body .setup-wrap > div[style*="calc(-1 * var(--px))"] div[style*="text-align:center"]{text-align:left!important;margin-left:0!important;max-width:var(--n408-read)!important}
html body .setup-wrap > div[style*="calc(-1 * var(--px))"] .lead{text-align:left!important;margin-left:0!important}
html body .setup-wrap > div[style*="background:var(--dark)"],html body .setup-wrap > div[style*="background:var(--bg2);border-radius:14px"]{background:var(--sc-surface,#0c1016)!important;border:1px solid var(--sc-line,rgba(255,255,255,.08))!important;border-radius:var(--r-card,10px)!important;text-align:left!important;padding:28px 32px!important;margin-top:var(--s4,16px)!important}
html body .setup-wrap > div[style*="background:var(--dark)"]{border-color:rgba(131,195,236,.22)!important}
html body .setup-wrap > div[style*="background:var(--dark)"] > div[style*="position:absolute"]{display:none!important}
html body .setup-wrap > div[style*="background:var(--dark)"] p,html body .setup-wrap > div[style*="background:var(--bg2);border-radius:14px"] p{margin-left:0!important;max-width:none!important}
html body .setup-wrap > div[style*="background:var(--dark)"] div[style*="inline-flex"]{justify-content:flex-start!important}
html body .setup-wrap > div[style*="background:var(--dark)"] h3{font-size:clamp(22px,2vw,26px)!important}
/* /security/, /continuity/, /recovery-drill/, /restic-vs-arq/: the document column was meant to be 840px (inline) but an
   !important container rule stretched its paragraphs to 1150px lines; text goes back to the reading measure */
html body .wrap[style*="max-width:840px"] > *{max-width:880px!important}
html body .wrap[style*="max-width:840px"] > p{max-width:var(--n408-read)!important;font-size:var(--n408-prose)!important}
html body .wrap[style*="max-width:840px"] > h2:not(.h2){font-size:clamp(26px,2.4vw,32px)!important;line-height:1.15!important;margin-top:clamp(40px,4.5vw,56px)!important}

/* /about/: the prose wrap ran its paragraphs across the full 1150px container */
html body .wrap.prose :is(p,ul,ol,h2,h3,.linkrow){max-width:var(--n408-read)!important}
html body .wrap.prose p,html body .wrap.prose li{font-size:var(--n408-prose)!important;line-height:1.72!important}

/* last labels from the measurement pass (spec sheets, report mock-ups, TOC titles, badges) */
html body dl.h-spec dt,html body .canary-status-card dt,html body dl.key-card-meta dt,html body .nt-fields dt,html body .ir-k,html body .bt-save,html body .e404-foot span,html body .toc-title,html body .ao-panel h3,html body .ir-rep-m,html body .ir-rep-k,html body .sc-tool-k,html body .plan-pop,html body .rd-pass,html body .canary-hero .eyebrow,html body .ci-toc-h,html body .e404-kicker,html body .e404-cardbadge,html body .priv-tag,html body .bo-toc-k,html body .canary-actions button,html body figcaption code,html body p kbd,html body li kbd{font-size:var(--n408-label)!important}
html body .scp-faq-icon{font-size:14px!important}
html body :is(section,main,article) dl > div > dt,html body [class*="canary"] dt,html body .archive-meta,html body .br-picks li > span,html body .br-picks li > em,html body ol[class$="-picks"] > li > :is(span,em),html body .canary-actions a,html body .bt-opt .bt-save,html body button .bt-save,html body .ir-note,html body span > kbd{font-size:var(--n408-label)!important}
html body .bp-pick-rows li b,html body .ir-rep-rows b,html body .ir-cap,html body .nt-fields dd,html body .sc-tool > span:not([class*="-k"]){font-size:var(--n408-small)!important}
html body :is(section,main) p[style*="font-size:13.5px"]{font-size:var(--n408-small)!important}
/* card descriptions set inline at .85-.88rem (contact, downloads) read as card copy, not fine print */
html body :is(section,main) p:is([style*="font-size:.85rem"],[style*="font-size:.875rem"],[style*="font-size:.88rem"]):not([style*="uppercase"]):not([style*="letter-spacing"]):not([style*="mono"]):not(.n408-x):not(:is(h1,h2,h3,h4,pre,code,button,.btn) *){font-size:15px!important}
html body #learn-more .cluster-list li a .arr{color:var(--sc-ink-3,#93a0ae)!important}
html body .nr-tab .nr-tab-count,html body .canary-status-card dt,html body dl.key-card-meta dt,html body :is(section,main,article) dl > div > dt,html body [class*="canary"] dt,html body .e404-foot span{color:var(--sc-ink-3,#93a0ae)!important;opacity:1!important}

/* ---- 2. one container, one section rhythm ------------------------------------------------------------------------- */
html body section.sec{padding-top:var(--n408-sec)!important;padding-bottom:var(--n408-sec)!important}
html body .hero{padding-bottom:clamp(48px,5vw,72px)!important}
/* the last element of a section never adds its own bottom margin on top of the section padding */
html body .sec > .wrap > :last-child,html body .sec .content-block > :last-child,html body .scp-sec .scp-wrap > :last-child{margin-bottom:0!important}
/* consecutive sections on the same background read as one page, not as separate 190px-gapped slabs */
html body .sec:not(.sec-tint):not(.sec-dark):not(.cta-sec) + .sec:not(.sec-tint):not(.sec-dark):not(.cta-sec):not([style]){padding-top:clamp(24px,3vw,40px)!important}
/* sections that set their own smaller padding inline were being forced back to 96px by an !important rule */
html body section.sec[style*="padding:48px 0"],html body section.sec[style*="padding:56px 0"],html body section.sec[style*="padding-top:48px;padding-bottom:48px"]{padding-top:var(--n408-sec-tight)!important;padding-bottom:var(--n408-sec-tight)!important}
html body section.sec[style*="padding-top:48px;padding-bottom:0"]{padding-top:var(--n408-sec-tight)!important;padding-bottom:0!important}
html body section.sec[style*="padding:30px 0"],html body section.sec[style*="padding:36px 0"]{padding-top:clamp(28px,3vw,36px)!important;padding-bottom:clamp(28px,3vw,36px)!important}
html body section.sec[style*="padding:20px 0"]{padding-top:20px!important;padding-bottom:20px!important}
html body section.sec[style*="padding:20px 0 40px"]{padding-bottom:40px!important}
html body section.sec[style*="padding:24px 0 0"]{padding-top:24px!important;padding-bottom:0!important}
html body section.sec[style*="padding:0"]{padding-top:0!important;padding-bottom:0!important}
html body section.sec[style*="padding-top:60px"],html body section.sec[style*="padding-top:52px"]{padding-top:clamp(40px,4.5vw,60px)!important}
html body section.sec[style*="padding-top:40px"],html body section.sec[style*="padding-top:36px"]{padding-top:clamp(28px,3vw,40px)!important}

/* the restore-drill line between article sections: one quiet callout on the reading column, not a 300px empty band */
html body section.sec[data-sentinel="sc-wedge-v1"] .content-block{max-width:var(--n408-read)!important;margin:0!important;padding:20px 24px!important;background:var(--sc-surface,#0c1016);border:1px solid var(--sc-line,rgba(255,255,255,.08));border-left:2px solid var(--sc-blue-400,#83C3EC);border-radius:var(--r-card,10px)}
html body section.sec[data-sentinel="sc-wedge-v1"] .content-block p{font-size:16px!important}

/* left-aligned section heads everywhere (the lp template centred a 720px box but left-aligned its text) */
html body .lp-head.c{margin-left:0!important;margin-right:auto!important;text-align:left!important}

/* section head + prose: on desktop the heading takes a left column and the copy a reading-width right column, so the
   section fills the container instead of leaving a 400px void on the right (FAQ and explainer sections on ~20 pages).
   Same 34% split the product template already uses for its cb-flush sections (polish-v4 section 16), as a grid with a
   sticky heading; the float version is neutralised on these wraps. */
@media (min-width:1024px){
  html body .sec > .wrap:is(:has(> .h2:first-child + .content-block:not(.cb-wide):last-child),:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child)){display:grid!important;grid-template-columns:34% minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:0;align-items:start}
  html body .sec > .wrap:is(:has(> .h2:first-child + .content-block:not(.cb-wide):last-child),:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child)) > :is(.eyebrow,.h2){grid-column:1;float:none!important;width:auto!important;max-width:none!important;margin:0!important;padding-right:var(--s7,48px)!important;box-sizing:border-box}
  html body .sec > .wrap:is(:has(> .h2:first-child + .content-block:not(.cb-wide):last-child),:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child)) > .h2{font-size:clamp(28px,2.5vw,36px)!important;line-height:1.12!important;position:sticky;top:104px;align-self:start}
  html body .sec > .wrap:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child) > .eyebrow{grid-row:1;align-self:start;margin-bottom:var(--s3,12px)!important;justify-self:start}
  html body .sec > .wrap:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child) > .h2{grid-row:2}
  html body .sec > .wrap:has(> .h2:first-child + .content-block:not(.cb-wide):last-child) > .h2{grid-row:1 / span 2}
  html body .sec > .wrap:is(:has(> .h2:first-child + .content-block:not(.cb-wide):last-child),:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child)) > .content-block{grid-column:2;grid-row:1 / span 2;width:auto!important;max-width:var(--n408-read)!important;margin:0!important}
  html body .sec > .wrap:is(:has(> .h2:first-child + .content-block:not(.cb-wide):last-child),:has(> .eyebrow:first-child + .h2 + .content-block:not(.cb-wide):last-child)) > .content-block > h3:first-child{margin-top:0!important}
}

/* FAQ sections (head block + list of accordion items, ~30 pages incl. the home page): same split, sticky head */
@media (min-width:1024px){
  html body .sec > .wrap:has(> div:first-child > .h2):has(> div:nth-child(2) > .faq-item):not(:has(> :nth-child(4))),
  html body .scp-sec > .scp-wrap:has(> .sec-head:first-child + .scp-faq):not(:has(> :nth-child(4))){display:grid!important;grid-template-columns:34% minmax(0,1fr);align-items:start}
  html body .sec > .wrap:has(> div:first-child > .h2):has(> div:nth-child(2) > .faq-item):not(:has(> :nth-child(4))) > :first-child,
  html body .scp-sec > .scp-wrap:has(> .sec-head:first-child + .scp-faq):not(:has(> :nth-child(4))) > :first-child{grid-column:1;grid-row:1 / span 3;position:sticky;top:104px;align-self:start;margin:0!important;padding-right:var(--s7,48px);max-width:none!important;text-align:left!important}
  html body .sec > .wrap:has(> div:first-child > .h2):has(> div:nth-child(2) > .faq-item):not(:has(> :nth-child(4))) > :first-child .h2,
  html body .scp-sec > .scp-wrap:has(> .sec-head:first-child + .scp-faq):not(:has(> :nth-child(4))) > :first-child h2{font-size:clamp(28px,2.5vw,36px)!important;line-height:1.12!important;margin-left:0!important;text-align:left!important}
  html body .sec > .wrap:has(> div:first-child > .h2):has(> div:nth-child(2) > .faq-item):not(:has(> :nth-child(4))) > :not(:first-child),
  html body .scp-sec > .scp-wrap:has(> .sec-head:first-child + .scp-faq):not(:has(> :nth-child(4))) > :not(:first-child){grid-column:2;width:100%;max-width:var(--n408-read)!important;margin-left:0!important;margin-right:0!important}
}

/* inline widths that fought the reading column (880 / 900 / 780px blocks next to 760px ones) */
html body .content-block[style*="max-width:880px"],html body .content-block[style*="max-width:900px"],html body .content-block[style*="max-width:780px"]{max-width:var(--n408-read)!important;margin-left:0!important;margin-right:auto!important}
/* the same strips placed between sections (outside any .wrap) were pinned to the viewport edge; put them on the container edge */
html body .content-block[style*="margin:48px auto"]:not(.wrap *){box-sizing:border-box;width:auto!important;max-width:min(var(--n408-read),calc(100% - 2 * var(--sc-gutter,24px)))!important;margin:var(--s7,48px) auto var(--s7,48px) max(var(--sc-gutter,24px),calc((100% - var(--sc-max,1200px)) / 2 + var(--sc-gutter,24px)))!important}
/* inline "compare / try it" strips inside articles: the site's flat card surface instead of a one-off gradient + 14px radius */
html body .content-block[style*="border:1px solid rgba(131,195,236,.22)"]{background:var(--sc-surface,#0c1016)!important;border:1px solid rgba(131,195,236,.22)!important;border-radius:var(--r-card,10px)!important;padding:20px 24px!important;max-width:var(--n408-read)!important}
html body .content-block[style*="border:1px solid rgba(131,195,236,.22)"] p{margin:0!important}
html body .content-block[style*="border:1px solid rgba(131,195,236,.22)"] p:not(:first-child){font-size:var(--n408-small)!important}
/* mid-page CTA between article sections sits on the page container's left edge at reading width */
html body aside.midpage-cta:not(.wrap aside){box-sizing:border-box!important;width:auto!important;max-width:min(var(--n408-read),calc(100% - 2 * var(--sc-gutter,24px)))!important;margin-left:max(var(--sc-gutter,24px),calc((100% - var(--sc-max,1200px)) / 2 + var(--sc-gutter,24px)))!important;margin-right:auto!important}

/* ---- 3. phones ---------------------------------------------------------------------------------------------------- */
@media (max-width:640px){
  /* label/value tables (th + td per row): stack the label above the value instead of squeezing two columns */
  html body section table:not(:has(thead)):has(tr > th:first-child + td:last-child) tr{display:block!important;padding:12px 16px!important;border-bottom:1px solid var(--sc-line,rgba(255,255,255,.08))}
  html body section table:not(:has(thead)):has(tr > th:first-child + td:last-child) tbody{display:block!important}
  html body section table:not(:has(thead)):has(tr > th:first-child + td:last-child) th,
  html body section table:not(:has(thead)):has(tr > th:first-child + td:last-child) td{display:block!important;width:auto!important;padding:0!important;border:0!important;background:none!important}
  html body section table:not(:has(thead)):has(tr > th:first-child + td:last-child) th{margin-bottom:4px!important;font-size:14px!important;color:var(--sc-ink,#f3f6f9)!important}
  /* comparison tables (3+ columns): keep words whole and scroll sideways inside the table's own box */
  html body section table:has(tr > :nth-child(3)){display:block!important;position:relative!important;max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  html body section table:has(tr > :nth-child(3)) th,html body section table:has(tr > :nth-child(3)) td{min-width:136px!important;overflow-wrap:normal!important;word-break:normal!important;hyphens:manual!important;white-space:normal!important}
  html body section table:has(tr > :nth-child(3)) th *,html body section table:has(tr > :nth-child(3)) td *{overflow-wrap:normal!important;word-break:normal!important}
  html body section table:has(tr > :nth-child(3)) tr > :first-child{min-width:120px!important}
  /* tap targets: 44px controls */
  html body .nav-burger,html body #nav-shell .nav-burger{width:44px!important;height:44px!important}
  html body .site-logo{min-height:44px;display:inline-flex!important;align-items:center}
  html body .billing-toggle .bt-opt,html body .bt-opt,html body .scb-toggle button{height:auto!important;min-height:40px!important}
  html body .footer-col a{min-height:40px;display:flex!important;align-items:center}
  html body .footer-social a{width:44px!important;height:44px!important}
  html body .footer-news-form input,html body #sc-newsletter-email{min-height:44px!important}
  html body .footer-news-form button{min-height:44px!important}
  html body .footer-social[aria-label] a,html body .footer-col.footer-brand-col .footer-social[aria-label] a{width:44px!important;height:44px!important}
  html body .footer-legal a,html body .legal-crumb a,html body .sc-pin-crumb a,html body p.pr-foot a,html body .breadcrumb a{display:inline-block;padding-top:11px!important;padding-bottom:11px!important}
  html body .footer-legal{row-gap:0!important}
  html body nav.pr-jump a,html body .legal-toc li > a,html body .toc-list a,html body .toc > a,html body .sc-allplans-cta,html body .nr-tab,html body .term-bar button,html body .sct-seg button,html body .canary-actions :is(a,button){min-height:44px!important;display:inline-flex!important;align-items:center}
  html body .sct-f input{min-height:44px!important}
}
/* /sc-n408-visual-v1 */
