/* dials.css [DIALS-20261027] AUTO-SEO copy (WordPress-SEO file with the indigo brand colours, 27 Oct 2026) "Your website check" dials. Self-contained (no Tailwind classes, so icontop.css never touches it).
   Brand colours and fonts arrive as CSS variables on #sd-root from dials.php?step=cfg (dials-lib.php sdBrand()). */
#sd-root{--sd-accent:#6366f1;--sd-accent-dark:#4f46e5;--sd-soft:#EEF2FF;--sd-line:#E0E7FF;--sd-ink:#0f172a;--sd-ink2:#64748b;
  --sd-display:ui-sans-serif,system-ui,sans-serif;--sd-body:Inter,ui-sans-serif,system-ui,sans-serif;
  --sd-red:#C2363B;--sd-amber:#B26A00;--sd-green:#138A47;--sd-card:#fff;--sd-border:#EFEDF6;
  display:block;max-width:1040px;margin:24px auto 0;padding:0;text-align:left;font-family:var(--sd-body);color:var(--sd-ink);scroll-margin-top:84px;box-sizing:border-box}
#sd-root *,#sd-root *::before,#sd-root *::after{box-sizing:border-box}
#sd-root[hidden],#sd-root [hidden]{display:none!important}
.sd-card{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:22px;box-shadow:0 12px 40px -18px rgba(49,46,129,.18)}
.sd-h{font-family:var(--sd-display);font-weight:800;letter-spacing:-.015em;margin:0;color:var(--sd-ink)}
.sd-muted{color:var(--sd-ink2)}
.sd-eyebrow{font:700 12px/1.2 var(--sd-body);letter-spacing:.12em;text-transform:uppercase;color:var(--sd-accent);margin:0 0 10px}

/* ---------- analysing step ---------- */
.sd-an{max-width:560px;margin:0 auto 20px;padding:26px 26px 22px;text-align:center;transition:opacity .4s ease}
.sd-logo{position:relative;width:76px;height:76px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center}
.sd-logo b{width:52px;height:52px;border-radius:15px;background:var(--sd-accent);color:#fff;display:flex;align-items:center;justify-content:center;font:800 26px/1 var(--sd-display);box-shadow:0 10px 24px -8px rgba(99,102,241,.55);position:relative;z-index:1}
.sd-logo::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--sd-line);border-top-color:var(--sd-accent);animation:sd-spin 1.1s linear infinite}
.sd-an.is-done .sd-logo::before{animation:none;border-color:var(--sd-line)}
.sd-an h3{font-size:20px;line-height:1.3;word-break:break-word}
.sd-an h3 span{color:var(--sd-accent)}
.sd-bar{height:8px;border-radius:99px;background:var(--sd-soft);margin:16px 0 18px;overflow:hidden}
.sd-bar i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#A5B4FC,var(--sd-accent));transition:width .5s ease}
.sd-list{list-style:none;margin:0;padding:0;text-align:left}
.sd-item{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start;padding:7px 0;font-size:15px;line-height:1.45;color:#9a98ab;transition:color .3s}
.sd-item .sd-ic{width:22px;height:22px;border-radius:50%;border:2px solid #E4E1EE;margin-top:0;display:flex;align-items:center;justify-content:center;transition:all .3s}
.sd-item.is-run{color:var(--sd-ink)}
.sd-item.is-run .sd-ic{border-color:var(--sd-line);border-top-color:var(--sd-accent);animation:sd-spin .9s linear infinite}
.sd-item.is-done{color:var(--sd-ink)}
.sd-item.is-done .sd-ic{background:var(--sd-green);border-color:var(--sd-green)}
.sd-item.is-done .sd-ic::after{content:"";width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.sd-item.is-skip{color:var(--sd-ink2)}
.sd-item.is-skip .sd-ic{background:#FFF4E0;border-color:#F3C77A}
.sd-item.is-skip .sd-ic::after{content:"";width:8px;height:2px;background:var(--sd-amber);border-radius:2px}
.sd-item small{display:block;font-size:13px;color:var(--sd-ink2)}
.sd-an-note{margin:14px 0 0;font-size:14px;color:var(--sd-ink2)}
/* [NOJUMP-20261027] Mark 19:07 "keep the box and the clocks still": the finished checklist keeps exactly the height it had while running
   (dials.js pins it at the moment it finishes). The list stays as the record and spreads into the space the bar and the note leave. */
.sd-an{display:flex;flex-direction:column}
.sd-an .sd-list{flex:1 1 auto;display:flex;flex-direction:column;justify-content:space-between}
.sd-an.is-done .sd-bar{visibility:hidden}   /* its slot stays as the gap under the heading */
.sd-an.is-done .sd-an-note{display:none}
.sd-an-hh{display:grid}
.sd-an-hh > span{grid-area:1 / 1;min-width:0}
.sd-an h3.sd-an-hh > span{color:inherit}
.sd-an h3.sd-an-hh > span span{color:var(--sd-accent)}
.sd-an-hh .sd-an-ghost{visibility:hidden}
.sd-item[data-step="tech"] small,.sd-item[data-step="platform"] small{min-height:1.45em}
/* the right card holds its place from the first frame (invisible until the first result arrives, then it rises in as before) */
#sd-root .sd-sum[hidden]{display:block!important;visibility:hidden;animation:none}
/* [/NOJUMP-20261027] */

/* ---------- summary ---------- */
.sd-sum,.sd-more{padding:22px 24px;animation:sd-rise .5s ease both;scroll-margin-top:84px;min-width:0}
.sd-more{margin-top:14px}
.sd-top{display:flex;gap:12px 16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.sd-badge{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--sd-body);padding:7px 12px;border-radius:99px;background:var(--sd-soft);color:var(--sd-accent-dark);border:1px solid var(--sd-line)}
.sd-badge.is-done{background:#E9F7EF;color:var(--sd-green);border-color:#C7EBD5}
.sd-title{font-size:24px;line-height:1.2;margin:6px 0 2px}
.sd-host{font-size:16px;color:var(--sd-ink2);margin:0;word-break:break-word}
.sd-biz{display:flex;gap:12px;align-items:center;padding:9px 14px;border-radius:14px;background:var(--sd-soft);border:1px solid var(--sd-line);min-width:0;max-width:100%}
.sd-av{flex:none;width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--sd-line);color:var(--sd-accent);display:flex;align-items:center;justify-content:center;font:800 20px/1 var(--sd-display)}
.sd-biz-t{min-width:0}
.sd-biz-t b{display:block;font:700 16px/1.3 var(--sd-display);word-break:break-word}
.sd-biz-t span{display:block;font-size:14px;color:var(--sd-ink2);line-height:1.45}

.sd-dials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 16px}
.sd-dial{padding:14px 12px 14px;text-align:center;border-radius:20px;border:1px solid var(--sd-border);background:#fff;box-shadow:0 8px 30px -16px rgba(49,46,129,.2)}
.sd-dial h4{font:700 16px/1.3 var(--sd-display);margin:0 0 6px;color:var(--sd-ink)}
.sd-gauge{display:block;width:100%;max-width:210px;height:auto;margin:0 auto;overflow:visible}
.sd-gauge .sd-trk{fill:none;stroke:#EEEAF5;stroke-width:14;stroke-linecap:round}
.sd-gauge .sd-val{fill:none;stroke-width:14;stroke-linecap:round;transition:stroke-dashoffset 1.3s cubic-bezier(.22,1,.36,1)}
.sd-gauge .sd-tick{stroke:#D9D5E6;stroke-width:2;stroke-linecap:round}
.sd-gauge .sd-needle{transition:transform 1.3s cubic-bezier(.22,1,.36,1);transform-origin:100px 100px}
.sd-num{display:flex;align-items:baseline;justify-content:center;gap:4px;margin-top:-6px;min-height:46px}
.sd-num b{font:800 40px/1 var(--sd-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}   /* [NOJUMP-20261027] digits never change width */
.sd-num span{font-size:14px;color:var(--sd-ink2);font-weight:600}
.sd-lbl{font:600 15px/1.35 var(--sd-body);margin:6px 0 0;color:var(--sd-ink);min-height:2.7em}   /* [NOJUMP-20261027] room for a 2-line label */
.sd-dial.is-wait .sd-val,.sd-dial.is-wait .sd-needle,.sd-dial.is-na .sd-val,.sd-dial.is-na .sd-needle{opacity:0}
.sd-dial.is-wait .sd-trk{animation:sd-pulse 1.4s ease-in-out infinite}
.sd-dial.is-wait .sd-num b,.sd-dial.is-na .sd-num b{color:#B9B5C9}
.sd-dial.is-wait .sd-num span,.sd-dial.is-na .sd-num span{visibility:hidden}   /* [NOJUMP-20261027] was display:none */
.sd-dial.is-wait .sd-lbl{color:var(--sd-ink2)}
.sd-dial.is-wait .sd-lbl::before{content:"";display:inline-block;width:12px;height:12px;margin-right:7px;vertical-align:-1px;border-radius:50%;border:2px solid var(--sd-line);border-top-color:var(--sd-accent);animation:sd-spin .9s linear infinite}
.sd-dial.is-na .sd-lbl{color:var(--sd-amber)}

.sd-panel{border:1px solid var(--sd-border);border-radius:18px;padding:18px 20px;margin:0 0 16px;background:#FBFBFE}
.sd-panel h5{font:700 12px/1.2 var(--sd-body);letter-spacing:.12em;text-transform:uppercase;color:var(--sd-ink2);margin:0 0 12px}
.sd-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px}
.sd-row{display:flex;gap:12px;align-items:flex-start;min-width:0}
.sd-row .sd-dot{flex:none;width:28px;height:28px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--sd-soft);color:var(--sd-accent);font:800 13px/1 var(--sd-display)}
.sd-row .sd-dot svg{width:16px;height:16px}
.sd-row p{margin:0;font-size:15px;line-height:1.5;color:var(--sd-ink2);min-width:0}
.sd-row p b{color:var(--sd-ink)}

.sd-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:14px;border:1px solid var(--sd-border);border-radius:16px;margin:0 0 16px}
.sd-chip{display:inline-flex;align-items:center;gap:7px;font-size:14px;line-height:1.3;padding:7px 12px;border-radius:99px;background:#F7F6FB;color:var(--sd-ink);max-width:100%}
.sd-chip i{flex:none;width:8px;height:8px;border-radius:50%;background:var(--sd-green)}
.sd-chip.is-warn i{background:#E39B1B}
.sd-chip.is-na i{background:#B9B5C9}

.sd-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 16px}
.sd-two .sd-panel{margin:0}
.sd-pills{display:flex;flex-wrap:wrap;gap:8px}
.sd-pill{display:inline-block;font-size:14px;line-height:1.35;padding:7px 12px;border-radius:99px;background:var(--sd-soft);color:var(--sd-accent-dark);border:1px solid var(--sd-line);max-width:100%;word-break:break-word}
.sd-pill.is-gap{background:#FFF7E8;color:#7A4A00;border-color:#F6DEB0}
.sd-empty{font-size:15px;color:var(--sd-ink2);margin:0}

.sd-wins{display:grid;gap:10px}
.sd-win{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--sd-border)}
.sd-win .sd-n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--sd-accent);color:#fff;display:flex;align-items:center;justify-content:center;font:800 14px/1 var(--sd-display)}
.sd-win div{min-width:0}
.sd-win b{display:block;font:700 16px/1.35 var(--sd-display);color:var(--sd-ink)}
.sd-win p{margin:3px 0 0;font-size:15px;line-height:1.5;color:var(--sd-ink2)}

.sd-slot:empty{display:none}
.sd-slot{margin:0 0 16px}

.sd-errnote{margin:8px 0 10px;padding:10px 14px;border-radius:12px;background:#FFF5F5;border:1px solid #F5C7C9;color:#8A1F24;font-size:15px;line-height:1.5}
.sd-cta{margin-top:8px;padding:24px;border-radius:20px;background:linear-gradient(135deg,var(--sd-accent) 0%,var(--sd-accent-dark) 100%);color:#fff;text-align:center}
.sd-cta h4{font:800 24px/1.25 var(--sd-display);margin:0 0 6px;color:#fff;letter-spacing:-.015em}
.sd-cta p{margin:0 auto 16px;max-width:520px;font-size:16px;line-height:1.5;color:rgba(255,255,255,.9)}
.sd-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 28px;border-radius:99px;border:0;background:#fff;color:var(--sd-accent-dark);font:800 17px/1 var(--sd-display);cursor:pointer;text-decoration:none;box-shadow:0 10px 24px -10px rgba(0,0,0,.35);transition:transform .15s ease}
.sd-btn:hover{transform:translateY(-2px)}
.sd-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.sd-cta .sd-warn{background:rgba(255,255,255,.14);border-radius:12px;padding:10px 14px;margin:0 auto 14px;max-width:560px;font-size:15px}
.sd-cta.is-wait{background:#F4F2FA;color:var(--sd-ink2)}
.sd-cta.is-wait h4{color:var(--sd-ink2);font-size:18px}
.sd-cta.is-err{background:#FFF5F5;color:#8A1F24;border:1px solid #F5C7C9}
.sd-cta.is-err h4{color:#8A1F24;font-size:18px}
.sd-cta.is-err p{color:#8A1F24}

.sd-grid{display:block}
@media (min-width:900px){
  #sd-root{max-width:1120px}
  /* [LAYOUT2] row 1: checklist + dials card, same height; row 2: everything else, full width (Mark 12:08) */
  .sd-grid{display:grid;grid-template-columns:272px minmax(0,1fr);gap:18px;align-items:stretch}
  .sd-grid > .sd-an{margin:0;max-width:none;padding:16px 16px 14px;text-align:left;display:flex;flex-direction:column}
  .sd-grid > .sd-an .sd-list{flex:1 1 auto;display:flex!important;flex-direction:column;justify-content:space-between}
  .sd-grid > .sd-sum{display:flex;flex-direction:column;padding:22px 26px}
  #sd-root .sd-grid > .sd-sum[hidden]{display:flex!important}   /* [NOJUMP-20261027] was display:none */
  .sd-grid > .sd-sum .sd-top{margin-bottom:0}
  .sd-grid > .sd-sum .sd-dials{margin:auto 0;padding:18px 0 4px;gap:18px}
  .sd-grid > .sd-more{grid-column:1 / -1;margin:0}
  .sd-grid > .sd-more .sd-rows{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px}
  .sd-grid > .sd-more .sd-row{flex-direction:column;gap:8px}
  .sd-grid > .sd-an .sd-logo{width:44px;height:44px;margin:0 0 8px}
  .sd-grid > .sd-an .sd-logo b{width:34px;height:34px;font-size:17px;border-radius:10px}
  .sd-grid > .sd-an h3{font-size:16px}
  .sd-grid > .sd-an .sd-bar{margin:10px 0 8px;height:6px}
  .sd-grid > .sd-an .sd-item{font-size:14px;padding:4px 0;gap:10px;grid-template-columns:20px 1fr}
  .sd-grid > .sd-an .sd-item .sd-ic{width:18px;height:18px}
  .sd-grid > .sd-an .sd-item small{font-size:12px}
  .sd-grid > .sd-an .sd-an-note{font-size:12px;margin-top:8px}
  /* finished: keep the ticked list as a record of what was checked ([NOJUMP-20261027] same layout as while running, so nothing moves) */
  .sd-grid > .sd-sum{margin:0}
  .sd-grid .sd-top{flex-wrap:nowrap;align-items:flex-start}
  .sd-grid .sd-top > div:first-child{min-width:0;flex:1 1 auto}
  .sd-grid .sd-biz{flex:0 1 auto;max-width:52%}
}
@keyframes sd-spin{to{transform:rotate(360deg)}}
@keyframes sd-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes sd-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  #sd-root *{animation:none!important;transition:none!important}
}

/* ---------- phones: dials stack, icons on their own top row with the text full width below (Mark's hard rule) ---------- */
@media (max-width:719px){
  #sd-root{margin-top:18px}
  .sd-an{padding:22px 18px 18px}
  .sd-sum,.sd-more{padding:20px 16px;border-radius:20px}
  .sd-title{font-size:24px}
  .sd-top{flex-direction:column;align-items:stretch}
  .sd-dials{grid-template-columns:1fr;gap:12px}
  .sd-gauge{max-width:124px}
  .sd-dial{padding:10px 10px 10px;border-radius:16px}
  .sd-dial h4{font-size:15px;margin-bottom:2px}
  .sd-num{min-height:34px;margin-top:-4px}
  .sd-num b{font-size:30px}
  .sd-lbl{font-size:14px;margin-top:2px;min-height:1.35em}
  .sd-dials{gap:10px}
  .sd-top{margin-bottom:12px}
  .sd-title{font-size:22px}
  .sd-rows,.sd-two{grid-template-columns:1fr}
  .sd-biz,.sd-row,.sd-win{flex-direction:column;align-items:flex-start;gap:8px}
  .sd-biz-t,.sd-row p,.sd-win div{width:100%}
  .sd-cta{padding:22px 16px}
  .sd-cta h4{font-size:21px}
  .sd-btn{display:block;width:100%;padding:14px 16px;font-size:16px;line-height:1.3;text-align:center}
}

/* [FOUNDON-20261027] "Get found on" row above the homepage scan box: subtle, one line (Mark 27 Oct: "get the logos on 1 line") */
.sd-found{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:12px;max-width:720px;margin:26px auto 0;padding:0 8px;font:600 13px/1.3 Inter,ui-sans-serif,system-ui,sans-serif;color:#64748b;white-space:nowrap}
.sd-found-l{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A8798;margin-right:2px}
.sd-found-i{display:inline-flex;align-items:center;gap:5px;opacity:.82}
.sd-found-i svg{flex:none;color:#4A4858}
.sd-found.is-colour .sd-fo-g,.sd-found.is-grey .sd-fo-c{display:none}
.sd-found.is-colour .sd-found-i{opacity:1}.sd-found.is-colour .sd-found-n{color:#64748b}
/* phones: icons only (names stay in the title and the row's aria-label), still one line */
@media (max-width:719px){.sd-found{flex-wrap:wrap;white-space:normal;gap:8px 18px;max-width:360px;margin-top:20px}.sd-found-l{flex-basis:100%;text-align:center;margin:0}.sd-found-n{display:none}.sd-found-i svg{width:22px;height:22px}} /* phones: "Get found on" line 1, icons line 2 (Mark 27 Oct 12:41 "same on wpseo") */

/* [DIALS-20261027 ARTICLES-STACKED] Dev's "first three articles" card inside the dials: the three articles stacked at every width
   (Mark 12:04 "on top of each other as opposed to side by side"). Scoped to the dials slot; Dev's own file is untouched.
   Phones keep Dev's layout (badge + "Article 1" on their own top row, text full width below: the icons-on-top rule). */
#sd-slot-titles .fax-card{margin:0;padding:18px 18px 14px;max-width:none;box-shadow:none;border-radius:18px}
#sd-slot-titles .fax-head{margin:0 0 12px}
#sd-slot-titles .fax-h{font-size:20px}
#sd-slot-titles .fax-sub{font-size:14px;margin-top:4px}
#sd-slot-titles .fax-list{grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
#sd-slot-titles .fax-item{padding:12px 14px!important;gap:4px;border-radius:14px}
#sd-slot-titles .fax-tag{white-space:nowrap}
#sd-slot-titles .fax-title{font-size:16px;line-height:1.35}
#sd-slot-titles .fax-why{font-size:14px;line-height:1.45}
#sd-slot-titles .fax-phrase{font-size:12.5px}
#sd-slot-titles .fax-phrase b{padding:3px 9px}
#sd-slot-titles .fax-foot{margin-top:10px;font-size:13.5px}
@media (min-width:640px){
  #sd-slot-titles .fax-item{display:grid!important;grid-template-columns:32px minmax(0,1fr);column-gap:14px;row-gap:3px;align-items:start}
  #sd-slot-titles .fax-top{display:contents}
  #sd-slot-titles .fax-num{grid-column:1;grid-row:1 / span 4;align-self:start}
  #sd-slot-titles .fax-tag,#sd-slot-titles .fax-title,#sd-slot-titles .fax-why,#sd-slot-titles .fax-phrase{grid-column:2}
  #sd-slot-titles .fax-tag{grid-row:1;line-height:1.2}
}

/* [SCROLLCUE1-20261027] "AI terminal" scroll cue under the top row (Mark picked Option 1 at 17:32) */
.sd-cue-wrap{display:flex;flex-direction:column;align-items:center;margin:14px 0 0;grid-column:1 / -1;opacity:0;transition:opacity .45s ease}
.sd-cue-wrap.is-in{opacity:1}
.sd-term{width:100%;max-width:640px;background:#0F0E2A;border:1px solid #27245A;border-radius:14px;padding:13px 16px;color:#E0E7FF;font:500 15px/1.6 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;box-shadow:0 0 0 1px rgba(99,102,241,.15),0 14px 40px -16px rgba(99,102,241,.7);min-height:50px;text-align:left}
.sd-cur{display:inline-block;width:9px;height:1.1em;vertical-align:-.15em;margin-left:2px;background:#A5B4FC;animation:sd-blink 1s steps(1) infinite}
@keyframes sd-blink{50%{opacity:0}}
.sd-glow{margin-top:14px;width:52px;height:52px;border-radius:50%;border:0;background:radial-gradient(circle at 50% 40%,#818CF8,#6366f1 60%);color:#fff;font-size:22px;line-height:1;cursor:pointer;opacity:0;transform:translateY(6px);transition:opacity .5s ease,transform .5s ease;animation:sd-glowp 1.8s ease-in-out infinite}
.sd-glow.is-in{opacity:1;transform:none}
.sd-glow:focus-visible{outline:3px solid #A5B4FC;outline-offset:3px}
@keyframes sd-glowp{0%{box-shadow:0 0 0 0 rgba(99,102,241,.55),0 8px 22px -6px rgba(99,102,241,.8)}70%{box-shadow:0 0 0 16px rgba(99,102,241,0),0 8px 22px -6px rgba(99,102,241,.8)}100%{box-shadow:0 0 0 0 rgba(99,102,241,0),0 8px 22px -6px rgba(99,102,241,.8)}}
.sd-cue-wrap.is-gone{opacity:0;pointer-events:none}
@media (min-width:900px){.sd-grid > .sd-cue-wrap{margin:0}}
@media (max-width:719px){.sd-cue-wrap{align-items:flex-start;padding-right:84px}.sd-term{font-size:13.5px;padding:12px 14px}.sd-glow{margin-left:6px}}   /* phones: clear of the floating WhatsApp button on the right */

/* [FUNNELLOCK-20261027] not used on Auto-SEO (coordinator 27 Oct: keep the funnel lock off) */

/* [MOBDIALS-20261027] Mark 19:22 "Mobile version need improvement" (phones only, laptops unchanged):
   the results card comes first with all three dials side by side in one compact row, the checklist sits under it,
   the results card is there from the first frame (no rise, nothing below it can push it), the scroll cue never leaves an empty gap,
   and the WhatsApp bubble steps aside while the results are on screen. */
@media (max-width:719px){
  .sd-grid{display:flex;flex-direction:column}
  .sd-grid > .sd-sum{order:1;margin:0 0 14px}
  .sd-grid > .sd-an{order:2;margin:0 0 14px;max-width:none}
  .sd-grid > .sd-cue-wrap{order:3;margin:0 0 14px}
  .sd-grid > .sd-more{order:4;margin-top:0}
  #sd-root .sd-sum[hidden]{visibility:visible}
  #sd-root .sd-sum{animation:none}
  .sd-biz-t span{min-height:2.9em}
  .sd-dials{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:0}
  .sd-dial{padding:10px 4px;border-radius:14px;min-width:0}
  .sd-dial h4{font-size:13px;line-height:1.25;min-height:2.5em;margin:0 0 4px;display:flex;align-items:center;justify-content:center}
  .sd-gauge{max-width:92px}
  .sd-num{min-height:28px;margin-top:-2px;gap:2px}
  .sd-num b{font-size:24px}
  .sd-num span{font-size:11px}
  .sd-lbl{font-size:12px;line-height:1.3;min-height:2.6em;margin-top:2px}
  .sd-dial.is-wait .sd-lbl::before{width:10px;height:10px;margin-right:5px}
  .sd-cue-wrap.is-gone{opacity:1;pointer-events:auto}
  html.sd-onscreen #aseo-wa-btn{opacity:0!important;pointer-events:none!important;transition:opacity .25s}
}
/* [/MOBDIALS-20261027] */

/* [CUECENTRE-20261027] Mark 20:05 "put the analysis complete and scroll down indicator in the centre": box and arrow centred at every width,
   the box sized to its line so the cursor stays on the same line (phones used to sit left to clear the WhatsApp bubble, now hidden while results show) */
.sd-cue-wrap{align-items:center}
.sd-term{display:inline-flex;align-items:center;width:auto;max-width:100%;white-space:nowrap}
@media (max-width:719px){.sd-cue-wrap{align-items:center;padding-right:0}.sd-glow{margin-left:0}}
/* [/CUECENTRE-20261027] */

/* [SECCTA-20261027] Mark 20:08 "Too much scrolling without a call to action - put a cta after every section": a compact button after each
   result section, styled like the site's primary button. In the page from the first frame (greyed until the check finishes), so nothing moves. */
.sd-mcta{margin:0 0 16px;text-align:center}
.sd-mcta p{margin:0 0 8px;font:600 15px/1.4 var(--sd-body);color:var(--sd-ink)}
.sd-mbtn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:50px;margin:0 auto;padding:12px 20px;border-radius:9999px;background:var(--sd-accent);color:#fff;font:700 16px/1.25 var(--sd-body);text-decoration:none;box-shadow:0 10px 24px -8px rgba(99,102,241,.55);transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .3s ease}
.sd-mbtn:hover{background:var(--sd-accent-dark);transform:translateY(-2px);box-shadow:0 16px 32px -8px rgba(99,102,241,.6)}
.sd-mbtn:active{transform:none}
.sd-mbtn{white-space:nowrap}   /* Mark 20:17: one line on phones */
.sd-mcta p{text-wrap:pretty;text-wrap:balance}   /* Mark 20:18 "Make this more equal on 2 lines" (balance where supported, pretty otherwise) */
.sd-mbtn{text-wrap:pretty}
@media (max-width:719px){.sd-mcta p{max-width:30ch;margin-left:auto;margin-right:auto}}   /* older iOS without balance: no lone last word */
.sd-mbtn:focus-visible{outline:3px solid #A5B4FC;outline-offset:3px}
.sd-mcta.is-wait .sd-mbtn{background:#ECE9F4;color:#9A98AB;box-shadow:none;pointer-events:none;cursor:default}
.sd-mcta.is-wait p{color:var(--sd-ink2)}
.sd-chips[hidden] + .sd-mcta{display:none}   /* no chips yet: never two buttons in a row */
#sd-more:has(#sd-slot-titles:empty) .sd-mcta[data-sec="wins"]{display:none}   /* no articles card: the big box follows Quick wins directly */
@media (min-width:720px){.sd-mcta.is-mob{display:none}.sd-mbtn{max-width:480px}}
/* [/SECCTA-20261027] */

/* [ASEO-DIALS-20261027] Auto-SEO: the lightning-bolt logo in the checklist card */
.sd-logo b svg{display:block;width:56%;height:56%}
/* [/ASEO-DIALS-20261027] */

/* [SECCTA-DESK-20261027] Mark 20:39 "too many cta buttons on desktop": laptops keep one CTA per screenful (after the dials, after key phrases /
   content gaps); phones keep one after every section. [NONWP-20261027] not-WordPress sites on WordPress-SEO: no trial CTAs, the big box hands over. */
@media (min-width:720px){#sd-root .sd-mcta[data-desk="0"]{display:none}}
#sd-root.sd-nowp .sd-mcta{display:none}
.sd-cta.is-nowp .sd-nowp-alt{margin:14px 0 0;font-size:14px}
.sd-cta.is-nowp .sd-nowp-alt a{color:rgba(255,255,255,.88);text-decoration:underline;text-underline-offset:2px}
/* [/SECCTA-DESK-20261027] */

/* [URLLINE-20261028] site address on its own line under the checklist heading */
.sd-an-hh > span span{display:block}
