/* Website Clarity — design system (locked)
   green   = tools and diagnostics (the check panel, markers, rules)
   indigo  = primary actions, brand marks, results sections
   yellow  = small evidence/data accents only
   neutrals= pale background, charcoal text
   Do not add further colours, a serif face, gradients or new card styles. */
:root{
  --teal:#1E8878;
  --teal-deep:#14685B;
  --teal-pale:#E8F4F1;
  --teal-dim:#CDE9E2;
  --teal-line:rgba(255,255,255,.22);
  --indigo:#39346B;
  --indigo-deep:#2A2653;
  --indigo-pale:#EFEEF7;
  --gold:#E2A33C;
  --ink:#14171A;
  --grey:#5C6165;
  --line:#E7E4DE;
  --bg:#FCFBF9;
  --white:#fff;
  --max:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Instrument Sans",system-ui,-apple-system,sans-serif;font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:600;letter-spacing:-.022em;line-height:1.08;margin:0 0 .5em;overflow-wrap:break-word}
h1{font-size:clamp(2.1rem,5.1vw,4.1rem);letter-spacing:-.028em}
h2{font-size:clamp(1.55rem,3vw,2.35rem)}
h3{font-size:1.2rem;letter-spacing:-.01em}
p{margin:0 0 1.1em;max-width:62ch}
a{color:inherit}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--indigo);outline-offset:3px}
.wrap{width:min(100% - 3rem,var(--max));margin-inline:auto}
.lede{font-size:1.1rem;color:var(--grey);max-width:52ch}
@media (min-width:700px){.lede{font-size:1.15rem}}
.grey{color:var(--grey)}
.label{font-size:.78rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--indigo);margin:0 0 1rem}

.btn{display:inline-flex;align-items:center;padding:.9rem 1.4rem;border-radius:10px;font-weight:600;font-size:1rem;
  text-decoration:none;border:0;cursor:pointer;font-family:inherit;background:var(--indigo);color:#fff;transition:background .15s}
.btn:hover{background:var(--indigo-deep)}
.btn2{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn2:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--indigo)}
.acts{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}

/* header */
.head{position:sticky;top:0;z-index:9;background:rgba(252,251,249,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.head .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:1rem}
.brand{font-weight:600;font-size:1.2rem;text-decoration:none;color:var(--ink);white-space:nowrap}
.brand span{color:var(--indigo)}
.nav{display:flex;gap:1.5rem;align-items:center;font-size:.95rem;font-weight:500}
.nav a{text-decoration:none;color:var(--grey)}
.nav a:hover{color:var(--ink)}
.nav .btn{padding:.55rem 1rem;font-size:.9rem;color:#fff}
@media (max-width:900px){.nav a:not(.btn){display:none}.nav .btn{display:none}}
.mob{display:none;position:relative}
.mob summary{list-style:none;cursor:pointer;font-weight:600;padding:.6rem .4rem}
.mob summary::-webkit-details-marker{display:none}
.mob div{position:absolute;right:0;top:2.8rem;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.5rem 0;min-width:215px;display:flex;flex-direction:column;box-shadow:0 14px 34px rgba(0,0,0,.09);z-index:20}
.mob div a{padding:.7rem 1.2rem;color:var(--ink)!important;text-decoration:none}
.mob div a:hover{background:var(--bg)}
@media (max-width:900px){
  .mob{display:block}
  /* The rule above hides every anchor inside .nav, and .mob sits inside .nav —
     so without this the mobile menu opened completely empty. Fixed 15 Sep 2026. */
  .nav .mob div a{display:block!important;min-height:44px}
}

/* sections */
section{padding:4.4rem 0}
@media (max-width:700px){section{padding:3.2rem 0}}
.white{background:var(--white)}
.indigotint{background:var(--indigo-pale)}
.tealtint{background:var(--teal-pale)}

/* hero */
.hero{padding:3rem 0}
@media (min-width:860px){.hero{padding:4.2rem 0}}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:3rem}
@media (min-width:980px){.hero .wrap{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center}}
.hero h1{max-width:13ch}
.hero .small{font-size:.9rem;color:var(--grey);margin-top:1.1rem;max-width:46ch}

/* check panel */
.panel{background:var(--teal);color:#fff;border-radius:20px;padding:1.3rem;box-shadow:0 22px 46px rgba(30,136,120,.2);min-width:0}
@media (min-width:560px){.panel{padding:1.7rem}}
.ph{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:.85rem;font-weight:600;color:var(--teal-dim);margin-bottom:.5rem}
.tag{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--teal-line);border-radius:5px;padding:.15rem .45rem}
.rows{list-style:none;padding:0;margin:0}
.rows li{padding:.85rem 0;border-top:1px solid var(--teal-line);opacity:0;transform:translateY(5px);transition:opacity .5s,transform .5s}
.rows li.on{opacity:1;transform:none}
.rows li.off{display:none}
.rows .t{display:flex;justify-content:space-between;gap:1rem;font-weight:600;min-width:0}
.rows .t>span:first-child{min-width:0;overflow-wrap:break-word}
.rows .mark{font-size:.78rem;font-weight:500;color:var(--teal-dim);white-space:nowrap;flex:0 0 auto}
.rows li[data-ok="1"] .mark{color:var(--gold)}
.rows em{display:block;font-style:normal;color:var(--teal-dim);font-size:.9rem;margin-top:.15rem;max-width:44ch}
.rec{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--teal-line);font-size:.92rem;opacity:0;transition:opacity .6s}
.rec.on{opacity:1}
@media (prefers-reduced-motion:reduce){.rows li,.rec{opacity:1;transform:none;transition:none}}

/* question wall */
.qwall{margin-top:2.5rem;max-width:1000px}
.qwall p{margin:0 0 .35em;max-width:none;letter-spacing:-.025em;line-height:1.15;font-weight:500}
.qwall .q1{font-size:clamp(1.45rem,3.4vw,2.6rem);color:var(--ink)}
.qwall .q2b{font-size:clamp(1.1rem,2vw,1.6rem);color:var(--teal);padding-left:clamp(0rem,4vw,3.5rem)}
.qwall .q3{font-size:clamp(1rem,1.7vw,1.35rem);color:var(--grey);padding-left:clamp(0rem,8vw,7rem)}
.qwall p+p{margin-top:.15em}

/* work areas */
.areas{display:grid;gap:0;margin-top:2.5rem}
.area{display:grid;grid-template-columns:minmax(0,1fr);gap:.4rem 3rem;padding:1.9rem 0;border-top:1px solid var(--line)}
@media (min-width:860px){.area{grid-template-columns:minmax(0,15rem) minmax(0,1fr)}}
.area:last-child{border-bottom:1px solid var(--line)}
.area h3{margin:0;color:var(--indigo)}
.area p{margin:0;color:var(--grey)}

/* result */
.result{background:var(--indigo);color:#fff}
.result h2,.result h3{color:#fff}
.res{display:block}
.res-top h2{font-size:clamp(1.7rem,4vw,3.1rem);max-width:20ch;margin-bottom:.6rem}
.lede-w{color:#D9D6EC;font-size:1.1rem;max-width:62ch}
@media (min-width:700px){.lede-w{font-size:1.15rem}}
.figs{display:grid;grid-template-columns:minmax(0,1fr);gap:2.4rem;margin:3.2rem 0 3.4rem;padding-top:2.6rem;border-top:1px solid rgba(255,255,255,.18)}
@media (min-width:860px){.figs{grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,.7fr);gap:3rem}}
.figs b{display:block;font-size:clamp(2.2rem,8vw,3.6rem);font-weight:600;letter-spacing:-.035em;line-height:1;color:#fff}
.figs div:nth-child(2) b{color:var(--gold)}
.figs span{display:block;color:#D9D6EC;font-size:.95rem;margin-top:.6rem;max-width:30ch}
.aichart{padding-top:2.6rem;border-top:1px solid rgba(255,255,255,.18)}
.aihead{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;flex-wrap:wrap}
.chartnum{font-size:clamp(1.25rem,2.6vw,2.1rem);font-weight:600;letter-spacing:-.025em;color:#fff;margin:0}
.chartnum span{font-variant-numeric:tabular-nums;color:var(--gold)}
.aichart .chart{margin-top:1.6rem}
.chart img{width:100%;max-width:100%;height:clamp(150px,20vw,240px);display:block}
.axislab{display:flex;justify-content:space-between;gap:1rem;margin-top:.7rem;font-size:.84rem;color:#B9B4D6;flex-wrap:wrap}
.axislab span:nth-child(2){color:var(--gold)}
.chartnote{color:#D9D6EC;font-size:.95rem;max-width:70ch;margin:1.1rem 0 0}
.res-end{margin-top:3.4rem;padding-top:2.6rem;border-top:1px solid rgba(255,255,255,.18);max-width:62ch}
.res-end h3{font-size:1.4rem}
.res-end p{color:#D9D6EC}
.src{font-size:.88rem;color:#B9B4D6;margin-top:1.6rem}

/* assistant */
.asst{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.3rem;max-width:520px;min-width:0}
@media (min-width:560px){.asst{padding:1.6rem}}
.asst .soon{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);background:var(--teal-pale);border-radius:5px;padding:.2rem .5rem;display:inline-block;margin-bottom:1rem}
.asst .q{background:var(--teal-pale);border-radius:12px 12px 12px 4px;padding:.65rem .9rem;margin:0 0 .7rem;font-size:.95rem;max-width:85%}
.asst .a{background:var(--teal);color:#fff;border-radius:12px 12px 4px 12px;padding:.65rem .9rem;margin:0 0 .7rem 15%;font-size:.95rem}

/* steps */
.steps{display:grid;grid-template-columns:minmax(0,1fr);gap:1.8rem;margin-top:2.4rem}
@media (min-width:860px){.steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step{border-top:2px solid var(--teal);padding-top:1rem}
.step p{color:var(--grey);margin:0;font-size:.98rem}

/* prices */
.plist{list-style:none;padding:0;margin:2rem 0 0;max-width:640px}
.plist li{display:flex;justify-content:space-between;gap:1.5rem;padding:.9rem 0;border-top:1px solid var(--line);min-width:0}
.plist li:last-child{border-bottom:1px solid var(--line)}
.plist li>span:first-child,.plist li>:first-child{min-width:0}
.plist b{font-weight:600;color:var(--indigo);white-space:nowrap;flex:0 0 auto}

/* two col */
.two{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem 4rem}
@media (min-width:860px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.two ul{padding-left:1.1em;color:var(--grey);margin:0}
.two li{margin-bottom:.55em}

/* quotes */
.q2{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;margin-top:2rem}
@media (min-width:860px){.q2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
blockquote{margin:0;font-size:1.15rem;line-height:1.45;font-weight:500;letter-spacing:-.01em}
@media (min-width:700px){blockquote{font-size:1.25rem}}
blockquote::before{content:"";display:block;width:2.2rem;height:2px;background:var(--teal);margin-bottom:1.1rem}
cite{display:block;font-style:normal;font-size:.92rem;color:var(--grey);margin-top:.9rem}

/* footer */
.foot{border-top:1px solid var(--line);padding:2.5rem 0 3.5rem;font-size:.92rem;color:var(--grey);background:var(--bg)}
.foot .wrap{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.foot nav{display:flex;gap:1.2rem;flex-wrap:wrap}
.foot a{color:var(--grey);text-decoration:none}

/* ── The free check page (15 Sep 2026) ──────────────────────────────
   The homepage panel showed an example; this is the live version, so it
   needs a third state. A check that could not be run is not a failure —
   about one site in five sits behind bot protection that answers an
   automated request with a challenge instead of the page. */
.rows li[data-ok="2"] .mark{color:var(--teal-dim);opacity:.75}
.rows li[data-ok="0"] .mark{color:#FFD9A8}
.checkform{display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;margin:1.4rem 0 .4rem;max-width:520px}
@media (min-width:520px){.checkform{grid-template-columns:minmax(0,1fr) auto}}
.checkform input{font:inherit;padding:.85rem 1rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-width:0}
.checkform input:focus{outline:2px solid var(--teal);outline-offset:1px}
.checkform button{white-space:nowrap}
.cknote{font-size:.85rem;color:var(--grey);margin:.1rem 0 0}
.ckerr{color:#A4331F;font-size:.9rem;margin:.6rem 0 0}
.ckwrap{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:start;padding:2rem 0 1rem}
@media (min-width:900px){.ckwrap{grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:3rem;padding:2.6rem 0 1.5rem}}
.ckwrap>*{min-width:0}
.ckscore{font-size:.85rem;color:var(--teal-dim);margin:.2rem 0 0}
.panel[aria-busy="true"]{opacity:.65}
.ckafter{border-top:1px solid var(--line);margin-top:2.4rem;padding-top:2rem}
