/* SchemaCart v2 additions. Load after schemacart.css.
   New components only, no overrides of v1 rules. */

/* ---------- footer, multi-column ---------- */
.sc-footer__cols{display:grid;gap:var(--sc-8);grid-template-columns:1fr;padding-bottom:var(--sc-8);border-bottom:1px solid #1E293B;margin-bottom:var(--sc-6)}
.sc-footer__col h4{font:600 12px var(--sc-font-text);letter-spacing:.06em;text-transform:uppercase;color:#64748B;margin:0 0 var(--sc-3)}
.sc-footer__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.sc-footer__col a{color:#CBD5E1;font-size:14px}
.sc-footer__col a:hover{color:#fff}

/* ---------- specificity repairs on v1 chrome ----------
   .sc-nav a and .sc-footer a (0-1-1) out-rank .sc-btn--primary (0-1-0),
   so a button inside either lands on the link colour. */
.sc-nav a.sc-btn--primary,.sc-nav a.sc-btn--primary:hover,
.sc-footer a.sc-btn--primary,.sc-footer a.sc-btn--primary:hover{color:#fff}
.sc-nav a.sc-btn,.sc-footer a.sc-btn{text-decoration:none}

/* ---------- page intro ---------- */
.sc-pagehead{padding-top:var(--sc-10);padding-bottom:var(--sc-8)}
.sc-pagehead h1{font-size:clamp(28px,6vw,42px);margin:var(--sc-3) 0}

/* ---------- offer ladder (pricing) ---------- */
.sc-ladder{display:grid;gap:var(--sc-4);grid-template-columns:1fr}
.sc-ladder__label{display:flex;align-items:baseline;gap:var(--sc-3);flex-wrap:wrap;margin:var(--sc-10) 0 var(--sc-4)}
.sc-ladder__label h2{font-size:22px}
.sc-ladder__label p{font-size:14px;color:var(--sc-muted)}
/* the price is the big thing; "from" is a small qualifier before it.
   v1's .sc-tier__price span rule would otherwise shrink the converted number. */
.sc-tier__price [data-usd]{font:inherit;color:inherit;letter-spacing:inherit}
.sc-tier__from{font:500 15px var(--sc-font-text);color:var(--sc-muted);margin-right:7px;align-self:center}
.sc-tier__rule{border:0;border-top:1px solid var(--sc-line);margin:var(--sc-4) 0}

/* ---------- comparison table ---------- */
.sc-table{width:100%;border-collapse:collapse;font-size:14.5px}
.sc-table th,.sc-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--sc-line);vertical-align:top}
.sc-table thead th{font:600 12px var(--sc-font-text);letter-spacing:.05em;text-transform:uppercase;color:var(--sc-muted);background:var(--sc-bg-alt)}
.sc-table tbody th{font-weight:600;color:var(--sc-ink);width:34%}
.sc-table--cmp td:last-child{background:var(--sc-accent-soft)}
.sc-tablewrap{overflow-x:auto;border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);background:#fff}
.sc-tablewrap .sc-table{min-width:560px}

/* ---------- numbered delivery steps ---------- */
.sc-numlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--sc-5);counter-reset:sc}
.sc-numlist li{display:flex;gap:var(--sc-4);counter-increment:sc}
.sc-numlist li::before{content:counter(sc,decimal-leading-zero);flex:none;width:38px;height:38px;border-radius:50%;
  border:1.5px solid var(--sc-line);display:flex;align-items:center;justify-content:center;
  font:700 13px var(--sc-font-display);color:var(--sc-accent);background:#fff}
.sc-numlist h3{font-size:17px;margin-bottom:5px}
.sc-numlist p{font-size:14.5px;color:var(--sc-muted)}

/* ---------- promise / anti-promise columns ---------- */
.sc-promise{display:grid;gap:var(--sc-4);grid-template-columns:1fr}
.sc-promise--do,.sc-promise--dont{list-style:none;margin:var(--sc-3) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sc-3)}
.sc-promise--do li,.sc-promise--dont li{display:flex;gap:10px;font-size:14.5px;line-height:1.55;color:var(--sc-ink-2)}
.sc-promise--do li::before,.sc-promise--dont li::before{flex:none;font-weight:700}
.sc-promise--do li::before{content:"✓";color:var(--sc-pass-text)}
.sc-promise--dont li::before{content:"✕";color:var(--sc-fail)}

/* ---------- FAQ / disclosure list ---------- */
.sc-qa{background:#fff;border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);margin-bottom:var(--sc-3)}
.sc-qa summary{display:flex;align-items:center;gap:var(--sc-3);padding:18px var(--sc-5);cursor:pointer;
  font:600 16px var(--sc-font-text);color:var(--sc-ink);list-style:none}
.sc-qa summary::-webkit-details-marker{display:none}
.sc-qa summary::after{content:"+";margin-left:auto;font:400 20px var(--sc-font-text);color:var(--sc-muted-2);line-height:1}
.sc-qa[open] summary::after{content:"–"}
.sc-qa__body{padding:0 var(--sc-5) var(--sc-5);font-size:15.5px;line-height:1.7;color:var(--sc-ink-2)}
.sc-qa__body p+p{margin-top:var(--sc-3)}

/* ---------- article ---------- */
.sc-toc{background:var(--sc-bg-alt);border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);padding:var(--sc-5)}
.sc-toc ol{margin:var(--sc-3) 0 0;padding-left:20px;display:flex;flex-direction:column;gap:9px;font-size:14.5px}
.sc-prose h2{margin:var(--sc-10) 0 var(--sc-4)}
.sc-prose h3{margin:var(--sc-8) 0 var(--sc-3)}
.sc-prose ul,.sc-prose ol{margin:0 0 var(--sc-5);padding-left:22px;display:flex;flex-direction:column;gap:10px;font-size:17px;line-height:1.7}
.sc-prose code{font:400 14.5px var(--sc-font-mono);background:var(--sc-bg-alt);border:1px solid var(--sc-line);border-radius:5px;padding:2px 6px}
.sc-codeblock{background:var(--sc-ink);border-radius:var(--sc-r-md);padding:var(--sc-5);margin:0 0 var(--sc-5);overflow-x:auto}
.sc-codeblock pre{margin:0;font:400 13.5px/1.75 var(--sc-font-mono);color:#CBD5E1;white-space:pre}
.sc-codeblock__cap{display:flex;justify-content:space-between;gap:var(--sc-3);font:500 11.5px var(--sc-font-text);
  letter-spacing:.05em;text-transform:uppercase;color:#64748B;margin-bottom:12px}
.sc-callout{display:flex;gap:var(--sc-3);border-radius:var(--sc-r-md);padding:16px 18px;margin:0 0 var(--sc-5);font-size:15.5px;line-height:1.65}
.sc-callout b{display:block;margin-bottom:3px}
.sc-callout--note{background:var(--sc-accent-soft);border:1px solid #DBEAFE;color:#1E3A8A}
.sc-callout--warn{background:var(--sc-warn-soft);border:1px solid #FDE68A;color:#78350F}
.sc-callout--honest{background:var(--sc-bg-alt);border:1px solid var(--sc-line);color:var(--sc-ink-2)}
.sc-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sc-3);font-size:13.5px;color:var(--sc-muted)}
.sc-meta__dot{width:3px;height:3px;border-radius:50%;background:var(--sc-line-2)}
.sc-related{display:grid;gap:var(--sc-4);grid-template-columns:1fr}
.sc-related a{display:block;background:#fff;border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);padding:var(--sc-5);color:var(--sc-ink)}
.sc-related a:hover{border-color:var(--sc-line-2);text-decoration:none}
.sc-related h3{font-size:16px;margin-bottom:6px}
.sc-related p{font-size:13.5px;color:var(--sc-muted)}

/* ---------- inline conversion block ---------- */
.sc-convert{background:var(--sc-ink);border-radius:var(--sc-r-xl);padding:var(--sc-8) var(--sc-6);color:#fff;margin:var(--sc-10) 0}
.sc-convert h3{color:#fff;font-size:22px}
.sc-convert p{color:#94A3B8;font-size:14.5px;margin:10px 0 var(--sc-5);max-width:46ch}
.sc-convert .sc-input{background:#1E293B;border-color:#334155;color:#fff}
.sc-convert .sc-input::placeholder{color:#64748B}

/* ---------- person / legitimacy ---------- */
.sc-person{display:flex;gap:var(--sc-5);align-items:flex-start;flex-wrap:wrap}
.sc-person__photo{width:96px;height:96px;border-radius:var(--sc-r-lg);background:var(--sc-bg-alt);border:1px dashed var(--sc-line-2);flex:none;overflow:hidden}
.sc-person__photo img{width:100%;height:100%;object-fit:cover}
.sc-deflist{display:grid;gap:var(--sc-4);grid-template-columns:1fr;margin:0}
.sc-deflist dt{font:600 12px var(--sc-font-text);letter-spacing:.05em;text-transform:uppercase;color:var(--sc-muted-2);margin-bottom:5px}
.sc-deflist dd{margin:0;font-size:15.5px;color:var(--sc-ink)}

/* ---------- evidence sampling (audit + sample report) ---------- */
.sc-samples{display:grid;gap:var(--sc-3);grid-template-columns:1fr}
.sc-sample{background:#fff;border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);padding:var(--sc-5)}
.sc-sample__q{font:600 15px var(--sc-font-text);line-height:1.45;margin-bottom:var(--sc-3)}
.sc-sample__src{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--sc-muted);margin-bottom:var(--sc-3)}
.sc-sample__ans{font-size:14px;line-height:1.65;color:var(--sc-ink-2);background:var(--sc-bg-alt);border-left:2px solid var(--sc-line-2);
  border-radius:0 8px 8px 0;padding:12px 14px}
.sc-sample__ans em{color:var(--sc-muted);font-style:normal}
/* pills in a flex row must not shrink below their nowrap text */
.sc-sample__src .sc-pill{flex:none}

/* ---------- empty state / data slots (proof) ---------- */
.sc-empty{border:1px dashed var(--sc-line-2);border-radius:var(--sc-r-lg);background:var(--sc-bg-alt);
  padding:var(--sc-8) var(--sc-5);text-align:center;color:var(--sc-muted)}
.sc-empty__label{font:500 12px var(--sc-font-mono);color:var(--sc-muted-2);letter-spacing:.04em}
.sc-slot{border:1px dashed var(--sc-line-2);border-radius:var(--sc-r-md);background:var(--sc-bg-alt);min-height:120px;
  display:flex;align-items:center;justify-content:center;font:400 12.5px var(--sc-font-mono);color:var(--sc-muted-2);text-align:center;padding:var(--sc-4)}

/* ---------- 404 ---------- */
.sc-404{min-height:64vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sc-5);padding:var(--sc-12) var(--sc-5)}
.sc-404__code{font:800 clamp(64px,18vw,120px)/1 var(--sc-font-display);letter-spacing:-.06em;color:var(--sc-line)}
.sc-404__links{display:flex;flex-wrap:wrap;gap:var(--sc-3);justify-content:center}

/* ---------- embed slot (scheduling) ---------- */
.sc-embed{border:1px solid var(--sc-line);border-radius:var(--sc-r-xl);background:#fff;min-height:520px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sc-3);text-align:center;padding:var(--sc-8) var(--sc-5)}

/* ---------- layered image slot (2-3 stacked layers, parallax at different
   speeds). Generation is paused: these render as labelled placeholders.
   Layers are oversized so the parallax never exposes an edge. ---------- */
.sc-imgslot{position:relative;overflow:hidden;border-radius:var(--sc-r-lg);background:var(--sc-ink);border:1px dashed #334155}
.sc-imgslot__layer{position:absolute;inset:-14% 0;display:flex;align-items:center;justify-content:center;padding:var(--sc-4);
  font:400 11.5px/1.6 var(--sc-font-mono);color:#64748B;text-align:center}
.sc-imgslot__layer img{width:100%;height:100%;object-fit:cover}
.sc-imgslot__layer--mid{mix-blend-mode:screen}
.sc-imgslot__layer--front{mix-blend-mode:screen;align-items:flex-end}
.sc-imgslot__cap{position:absolute;left:12px;bottom:10px;z-index:3;font:500 10.5px var(--sc-font-mono);letter-spacing:.04em;color:#94A3B8}
@keyframes sc-par-back{from{transform:translateY(-5%)}to{transform:translateY(5%)}}
@keyframes sc-par-mid{from{transform:translateY(-9%)}to{transform:translateY(9%)}}
@keyframes sc-par-front{from{transform:translateY(-13%)}to{transform:translateY(13%)}}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .sc-imgslot__layer--back{animation:sc-par-back linear both;animation-timeline:view()}
    .sc-imgslot__layer--mid{animation:sc-par-mid linear both;animation-timeline:view()}
    .sc-imgslot__layer--front{animation:sc-par-front linear both;animation-timeline:view()}
  }
}

/* ---------- the product loop (baseline → fix → re-measure → evidence) ---------- */
.sc-loop{display:grid;gap:var(--sc-3);grid-template-columns:1fr;counter-reset:loop;margin:var(--sc-6) 0 var(--sc-3)}
.sc-loop__step{position:relative;background:#fff;border:1px solid var(--sc-line);border-radius:var(--sc-r-lg);padding:var(--sc-5);counter-increment:loop}
.sc-loop__step::before{content:counter(loop);display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:var(--sc-accent-soft);color:var(--sc-accent);font:700 12px var(--sc-font-display);margin-bottom:var(--sc-3)}
.sc-loop__step h3{font-size:16px}
.sc-loop__step p{font-size:14px;line-height:1.6;color:var(--sc-muted);margin-top:6px}
.sc-loop__step:not(:last-child)::after{content:"↓";position:absolute;left:50%;bottom:-19px;transform:translateX(-50%);
  color:var(--sc-line-2);font-size:14px;line-height:1}
.sc-loop__again{font-size:13.5px;color:var(--sc-muted);display:flex;align-items:center;gap:8px}
.sc-loop__again::before{content:"↻";color:var(--sc-accent);font-size:16px}

/* ---------- scan flow: one error slot for every validation case ---------- */
.sc-error{display:flex;gap:var(--sc-3);background:var(--sc-fail-soft);border:1px solid var(--sc-fail-line);border-radius:var(--sc-r-md);
  padding:13px 15px;font-size:14px;line-height:1.6;color:#7F1D1D;text-align:left}
.sc-error b{display:block}
.sc-error__mark{flex:none;font-weight:700}
.sc-error a{color:#7F1D1D;text-decoration:underline}

/* the page-speed phase is the long one: an indeterminate sweep so it never
   reads as frozen. Reduced motion leaves the static full-width rail. */
.sc-sweep{position:relative;height:6px;background:#F1F5F9;border-radius:3px;overflow:hidden}
.sc-sweep i{position:absolute;inset:0;background:linear-gradient(90deg,#F1F5F9,var(--sc-accent),#F1F5F9);opacity:.55;
  animation:sc-sweep 1.6s ease-in-out infinite}
@keyframes sc-sweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* review-only caption marking which state each block shows. Safe to delete
   when porting into templates. */
.sc-statecap{display:flex;align-items:center;gap:var(--sc-3);margin:var(--sc-10) 0 var(--sc-4);
  font:600 11.5px var(--sc-font-text);letter-spacing:.08em;text-transform:uppercase;color:var(--sc-muted-2)}
.sc-statecap::after{content:"";flex:1;border-top:1px dashed var(--sc-line-2)}

/* ---------- report page: identity band ---------- */
.sc-rpt-top{background:#fff;border-bottom:1px solid var(--sc-line);padding:var(--sc-6) 0}
.sc-rpt-top__row{display:flex;flex-wrap:wrap;gap:var(--sc-4);align-items:flex-start;justify-content:space-between}
.sc-rpt-url{font:700 clamp(20px,4.6vw,27px)/1.15 var(--sc-font-display);letter-spacing:-.035em;overflow-wrap:anywhere;margin:6px 0 5px}
.sc-rpt-actions{display:flex;flex-wrap:wrap;gap:var(--sc-2)}
.sc-rpt-actions .sc-btn{min-height:40px;padding:9px 14px;font-size:14px}

/* ---------- report page: score hero (built to be screenshotted) ---------- */
.sc-scorecard{background:#fff;border:1px solid var(--sc-line);border-radius:var(--sc-r-xl);padding:var(--sc-6);display:grid;gap:var(--sc-6);grid-template-columns:1fr}
.sc-scorecard__num{display:flex;align-items:center;gap:var(--sc-4);flex-wrap:wrap}
.sc-state{font:600 13px var(--sc-font-text);border-radius:var(--sc-r-pill);padding:6px 12px;white-space:nowrap}
.sc-state--pass{background:var(--sc-pass-soft);color:var(--sc-pass-text);border:1px solid var(--sc-pass-line)}
.sc-state--warn{background:var(--sc-warn-soft);color:var(--sc-warn);border:1px solid #FDE68A}
.sc-state--fail{background:var(--sc-fail-soft);color:var(--sc-fail);border:1px solid var(--sc-fail-line)}
.sc-scorecard__say{font-size:16px;line-height:1.7;color:var(--sc-ink-2);max-width:66ch}

/* 75 / 25 split, the weights release made visible */
.sc-split{display:grid;gap:var(--sc-5);grid-template-columns:1fr}
.sc-split__cap{display:flex;flex-wrap:wrap;row-gap:4px;align-items:baseline;justify-content:space-between;gap:var(--sc-3);margin-bottom:8px}
.sc-split__name{font:600 13.5px var(--sc-font-text);color:var(--sc-ink)}
.sc-split__pts{font:700 14px var(--sc-font-display);letter-spacing:-.02em;white-space:nowrap}
.sc-splitbar{height:10px;background:var(--sc-line);border-radius:5px;overflow:hidden}
.sc-splitbar i{display:block;height:100%;border-radius:5px}
.sc-split__sub{font-size:12.5px;color:var(--sc-muted-2);margin-top:7px}

/* ---------- report page: monitoring delta (subscribed stores only) ---------- */
.sc-delta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sc-5);background:var(--sc-accent-soft);border:1px solid #DBEAFE;border-radius:var(--sc-r-lg);padding:var(--sc-5)}
.sc-delta__num{font:800 30px var(--sc-font-display);letter-spacing:-.045em;line-height:1;white-space:nowrap}
.sc-delta__num--up{color:var(--sc-pass-text)}
.sc-delta__num--down{color:var(--sc-fail)}
.sc-delta__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:14px;color:#1E3A8A;min-width:min(100%,260px);flex:1}

/* ---------- report page: point-in-time / partial banner ---------- */
.sc-banner{display:flex;gap:var(--sc-3);border-radius:var(--sc-r-md);padding:15px 17px;font-size:14.5px;line-height:1.65;
  background:var(--sc-warn-soft);border:1px solid #FDE68A;color:#78350F}
.sc-banner b{display:block;margin-bottom:3px}

/* ---------- report page: findings groups ---------- */
.sc-group{margin-top:var(--sc-10)}
.sc-group__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sc-3);margin-bottom:var(--sc-4)}
.sc-group__head h2{font-size:21px}
.sc-group__pts{font:600 11.5px var(--sc-font-text);letter-spacing:.05em;text-transform:uppercase;color:var(--sc-muted);
  border:1px solid var(--sc-line);border-radius:var(--sc-r-pill);padding:4px 11px;white-space:nowrap}
.sc-group__note{flex:0 0 100%;font-size:13.5px;line-height:1.6;color:var(--sc-muted);max-width:70ch}

/* severity hierarchy: a colour edge, so the order fail → warn → pass reads at a glance */
.sc-finding--fail{box-shadow:inset 3px 0 0 var(--sc-fail)}
.sc-finding--warn{box-shadow:inset 3px 0 0 var(--sc-warn)}
.sc-finding--pass{box-shadow:inset 3px 0 0 var(--sc-pass)}
.sc-finding--incon{box-shadow:inset 3px 0 0 var(--sc-line-2);background:var(--sc-bg-alt)}
.sc-finding__pts{font:600 12px var(--sc-font-text);color:var(--sc-muted-2);white-space:nowrap;font-variant-numeric:tabular-nums}
/* inconclusive is not failure: outlined, not filled */
.sc-pill--incon{background:#fff;color:var(--sc-muted);border:1px solid var(--sc-line-2)}
.sc-keep{display:flex;gap:var(--sc-2);background:var(--sc-bg-alt);border:1px solid var(--sc-line);border-radius:var(--sc-r-md);
  padding:13px 15px;font-size:14px;line-height:1.6;color:var(--sc-muted)}
.sc-keep__label{font:600 12px var(--sc-font-text);color:var(--sc-ink-2);flex:none;padding-top:1px}

/* ---------- report page: closing conversion pair ---------- */
.sc-ctaduo{display:grid;gap:var(--sc-3);grid-template-columns:1fr}

/* ---------- print / PDF ---------- */
@media print{
  .sc-header,.sc-footer,.sc-rpt-actions,.sc-tech-toggle,.sc-cta-bar{display:none!important}
  body{background:#fff!important}
  .sc-report{display:block!important}
  .sc-sticky{position:static!important;margin-top:var(--sc-6)}
  .sc-card,.sc-finding,.sc-scorecard,.sc-sample{break-inside:avoid;box-shadow:none!important}
  .sc-card--dark,.sc-convert{background:#fff!important;color:var(--sc-ink)!important;border:1px solid var(--sc-line-2)!important}
  .sc-card--dark h3,.sc-convert h3{color:var(--sc-ink)!important}
  .sc-card--dark p,.sc-convert p{color:var(--sc-ink-2)!important}
  .sc-tech{background:#fff!important;color:var(--sc-ink)!important;border:1px solid var(--sc-line-2)}
  details:not([open]) .sc-finding__body{display:block!important}
  @page{margin:14mm}
}

/* ---------- responsive ---------- */
@media (min-width:640px){
  .sc-split{grid-template-columns:repeat(2,1fr)}
  .sc-ctaduo{grid-template-columns:repeat(2,1fr)}
  .sc-ladder{grid-template-columns:repeat(2,1fr)}
  .sc-promise{grid-template-columns:repeat(2,1fr)}
  .sc-related{grid-template-columns:repeat(2,1fr)}
  .sc-samples{grid-template-columns:repeat(2,1fr)}
  .sc-deflist{grid-template-columns:repeat(2,1fr)}
  .sc-footer__cols{grid-template-columns:repeat(2,1fr)}
  .sc-convert{padding:var(--sc-10)}
}
@media (min-width:900px){
  .sc-loop{grid-template-columns:repeat(4,1fr)}
  .sc-loop__step:not(:last-child)::after{content:"→";left:auto;right:-19px;bottom:auto;top:50%;transform:translateY(-50%)}
  .sc-ladder--three{grid-template-columns:repeat(3,1fr)}
  .sc-related{grid-template-columns:repeat(3,1fr)}
  .sc-footer__cols{grid-template-columns:1.6fr 1fr 1fr 1fr}
  .sc-article{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--sc-10);align-items:start}
}


/* ============================================================
   MOBILE ADAPTATION · v2.1 mobile run, 2026-08-04
   Layout, spacing and touch-target rules only, added so the small
   viewport mimics the approved desktop build.
   Zero new tokens. Zero new classes. No markup or copy change.
   Every declaration targets a selector that already exists above,
   and every value is an existing token or plain layout geometry.
   Recorded for the Design System Guide in design_v2.1/README.md.
   ============================================================ */
@media (max-width:639px){
  /* HERO. The backdrop is a bottom band on desktop because the hero is
     ~700px tall there. At 375px the hero is far taller, so a 300px top
     offset drops the artwork behind the lede. Anchor it to the bottom
     instead and the composition reads as it does on desktop. */
  .sc-hero{padding:var(--sc-10) var(--sc-5) var(--sc-8)}
  .sc-hero__media{top:auto;height:240px}

  /* Diagram slots keep their whole composition instead of being
     side-cropped by the desktop cover fit at a third of the width. */
  .sc-media img{object-fit:contain}

  /* SCAN STEPPER. Three 140px steps plus space-between overflow a 335px
     row. Share the row instead, and pull the rail in to match. */
  .sc-stepper__steps{gap:var(--sc-2)}
  .sc-step{width:auto;flex:1 1 0;min-width:0}
  .sc-stepper__track{left:17%;right:17%}

  /* FINDINGS. Desktop reads as one row: question, weight, status, caret.
     At 375px the fixed items leave the question ~110px and it breaks over
     five lines. Wrapping gives the question the first line and the status
     row the second, in the same order, with the whole padded summary row
     still the disclosure target. */
  .sc-finding__head{flex-wrap:wrap;padding:var(--sc-4)}
  .sc-finding__q{flex:1 1 100%}
  .sc-finding__caret{margin-left:auto}
  .sc-finding__body{padding:0 var(--sc-4) var(--sc-4)}
  /* WHAT TO DO NEXT / KEEP labels sit above their sentence rather than
     taking a third of the line beside it. */
  .sc-fix,.sc-keep{flex-direction:column;gap:var(--sc-1)}
  /* the technical disclosure control reaches the 48px target */
  .sc-tech-toggle{min-height:48px;padding:var(--sc-3) 0}

  /* REPORT IDENTITY BAND. Compact 40px desktop actions become full
     48px targets and share the row. */
  .sc-rpt-actions{width:100%}
  .sc-rpt-actions .sc-btn{flex:1 1 auto;min-height:48px}

  /* PRICING. The currency control is a control: 48px like the rest. */
  .sc-currency{width:100%;justify-content:space-between;padding:6px 8px 6px var(--sc-4)}
  .sc-currency select{min-height:48px}

  /* TABLES still scroll inside .sc-tablewrap, per the Guide. Tighter
     cells mean less of it. */
  .sc-table th,.sc-table td{padding:var(--sc-3) var(--sc-4)}

  /* FOOTER. Column links are far apart enough to hit one at a time. */
  .sc-footer__col ul{gap:var(--sc-4)}
  .sc-footer__col a{display:inline-block;padding:var(--sc-1) 0}
  .sc-footer__links{gap:var(--sc-4) var(--sc-6)}
  .sc-footer__links a{display:inline-block;padding:var(--sc-1) 0}
}
