:root{
  --bg:#14171B; --bg2:#181C21; --card:#1F242B; --line:#2C323A; --line2:#3A424B; --ctl:#6B7580;
  --text:#F2F4F6; --muted:#C3CBD2; --dim:#A3ADB6;
  --teal:#34D399; --teal-h:#6EE7B7; --teal-d:#0F172A; --teal-s:#0E3B2F; --sky:#38BDF8; --amber:#F0BE5E; --red:#F38B80;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--text);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
svg{display:block}
h1,h2{font-family:var(--sans);font-weight:600;line-height:1.12;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(32px,3.4vw,50px)}
h2{font-size:clamp(24px,2.2vw,32px);margin-bottom:18px}
h3{font-family:var(--sans);font-weight:600;font-size:21px;margin:0;letter-spacing:-.01em}
p{margin:0}
.eyebrow{font:600 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}
.fine{font-size:13px;color:var(--dim);line-height:1.5}
.fine a{text-decoration:none}.fine a:hover{color:var(--text)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--teal);color:var(--teal-d);padding:10px 16px;border-radius:6px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.fine a{text-decoration:underline;text-underline-offset:2px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:6px;font:600 14px/1 var(--sans);text-decoration:none;border:1px solid transparent;cursor:pointer;background:none;color:inherit;transition:transform .15s,background .2s,border-color .2s,color .2s}
.btn:active{transform:scale(.98)}
.btn-p{background:var(--teal);color:var(--teal-d)}
.btn-p:hover{background:var(--teal-h)}
.btn-g{border-color:var(--ctl)}
.btn-g:hover{border-color:var(--teal);color:var(--teal)}
.btn.sm{padding:8px 14px;font-size:13px}
.btn.full{width:100%}

/* ===== one-screen shell: left | main | right ===== */
.shell{display:grid;grid-template-columns:250px minmax(0,1fr) 290px;height:100vh;height:100dvh;min-height:640px}
.side{display:flex;flex-direction:column;gap:14px;padding:22px 20px;overflow-y:auto;background:var(--bg2)}
.left{border-right:1px solid var(--line)}
.right{border-left:1px solid var(--line)}
.main{position:relative;display:flex;flex-direction:column;padding:34px clamp(24px,3.5vw,56px) 18px;overflow:hidden;outline:none}
.main::before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;opacity:.28;-webkit-mask-image:radial-gradient(ellipse at 75% 15%,#000 5%,transparent 60%);mask-image:radial-gradient(ellipse at 75% 15%,#000 5%,transparent 60%);pointer-events:none}
.view{position:relative;flex:1;min-height:0;overflow-y:auto;animation:fade .35s ease;padding-right:4px}
.view[hidden]{display:none}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* left column */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;padding-bottom:16px;border-bottom:1px solid var(--line)}
.logo b{font-family:var(--sans);font-weight:600;font-size:21px;display:block;line-height:1.1;letter-spacing:-.02em}
.logo .wm{color:var(--teal)}
.logo-mark{display:block;flex:none;width:34px;height:44px}
.logo small{display:block;font:600 11px/1.4 var(--sans);letter-spacing:.08em;white-space:nowrap;text-transform:uppercase;color:var(--sky)}
.nav{position:relative;display:flex;flex-direction:column;flex:none;--prog:0px;--n:13px}
.side-foot{margin-top:auto}
/* the trail: a quiet line with an emerald fill that grows to the current section */
.trail::before,.trail::after{content:"";position:absolute;left:calc(var(--n) / 2 + 5px);top:calc(9px + var(--n) / 2);width:2px;border-radius:2px;pointer-events:none}
.trail::before{bottom:calc(9px + var(--n) / 2);background:var(--line)}
.trail::after{height:var(--prog);background:linear-gradient(180deg,var(--sky),var(--teal));transition:height .6s cubic-bezier(.2,.7,.2,1)}
.trail > a{position:relative;display:grid;grid-template-columns:calc(var(--n) + 10px) 1fr;column-gap:10px;align-items:start;padding:7px 4px 7px 0;text-decoration:none;color:var(--muted);border-radius:6px}
.trail .node{position:relative;z-index:1;width:var(--n);height:var(--n);margin:4px 0 0 5px;border-radius:50%;background:var(--bg2);border:2px solid var(--ctl);transition:border-color .25s,background .25s,transform .25s}
.trail .t b{display:block;font-weight:500;font-size:15px;line-height:1.35;transition:color .2s}
.trail .t small{display:block;font-size:12px;line-height:1.4;color:var(--dim);max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .35s ease}
.trail > a:hover{color:var(--text)}
.trail > a:hover .node{border-color:var(--teal);transform:scale(1.12)}
.trail > a.passed .node{border-color:var(--teal);background:var(--teal-s)}
.trail > a[aria-current=page]{color:var(--text)}
.trail > a[aria-current=page] .t b{color:var(--text);font-weight:600}
.trail > a[aria-current=page] .t small{max-height:20px;opacity:1;margin-top:1px}
.trail > a[aria-current=page] .node{background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 4px rgba(52,211,153,.16);animation:nodePulse 3.2s ease-in-out infinite}
@keyframes nodePulse{0%,100%{box-shadow:0 0 0 4px rgba(52,211,153,.16)}50%{box-shadow:0 0 0 7px rgba(52,211,153,.06)}}
.trail > a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
/* service sub-links hang off the trail like control references */
.sub{display:none;flex-direction:column;margin:0 0 6px calc(var(--n) + 20px)}
.sub.open{display:flex}
.sub a{position:relative;padding:5px 0 5px 16px;font-size:13px;line-height:1.35;color:var(--dim);text-decoration:none}
.sub a::before{content:"";position:absolute;left:0;top:13px;width:9px;height:2px;background:var(--line);transition:background .2s,width .2s}
.sub a:hover{color:var(--text)}
.sub a:hover::before{background:var(--teal)}
.sub a[aria-current=true]{color:var(--teal)}
.sub a[aria-current=true]::before{background:var(--teal);width:11px}
.sub a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.side-foot{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--line)}

/* right column cards */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.creds{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.creds li{display:grid;gap:1px;padding-left:14px;border-left:2px solid var(--teal-s)}
.creds b{font-family:var(--sans);font-weight:500;font-size:16px}
.creds span{font-size:13px;color:var(--muted);line-height:1.45}
.quote{font-family:var(--sans);font-size:15px;line-height:1.45;margin-bottom:8px}
.rules{margin:0;padding-left:16px;font-size:13px;color:var(--muted)}
.rules li{margin:3px 0}
.rules li::marker{color:var(--teal)}
.mini{display:flex;align-items:center;gap:14px;margin-bottom:8px}
.ring{position:relative;width:84px;height:84px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring .bgc{stroke:var(--line)}
.ring .fg{stroke:var(--teal);stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.2,.7,.2,1),stroke .3s}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font:500 24px var(--sans)}
.level{font-family:var(--sans);font-size:18px}
.advice{font-size:13px;color:var(--muted);margin-bottom:12px;min-height:58px}
.right{gap:10px;padding:18px 18px}
.right .card{padding:14px 16px}
.reply{text-align:center;margin-top:auto}
@media (max-height:820px){.creds span{display:none}.creds{gap:4px}.advice{min-height:0}}

/* overview */
#v-overview h1 em{color:var(--teal);font-style:normal}
em,i{font-style:normal}
b,strong,h4,summary{font-weight:600}
.lead{font-size:17px;color:var(--muted);margin:16px 0 22px;max-width:620px}
.ctas{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.report{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;max-width:760px;box-shadow:0 24px 50px -30px rgba(0,0,0,.7)}
.report-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.report-h b{font-family:var(--sans);font-weight:500;font-size:17px}
.tag{font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:4px;border:1px solid var(--line2);color:var(--dim)}
.rows{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}
.row{display:grid;grid-template-columns:1fr 90px 40px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:13px}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;width:0;border-radius:3px;transition:width 1.2s cubic-bezier(.2,.7,.2,1)}
.c-ok{background:var(--teal)}.c-warn{background:var(--amber)}.c-bad{background:var(--red)}
.row span:last-child{text-align:right;color:var(--muted);font:500 12px var(--sans)}
.report-f{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.pill{font-size:12px;padding:4px 10px;border-radius:20px;background:var(--bg2);border:1px solid var(--line)}
.pill.ok{color:var(--teal)}.pill.warn{color:var(--amber)}.pill.bad{color:var(--red)}

/* services */
.svc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{all:unset;cursor:pointer;padding:7px 14px;border-radius:20px;border:1px solid var(--ctl);font-size:13px;color:var(--muted);transition:all .15s}
.chip:hover{border-color:var(--teal);color:var(--text)}
.chip[aria-selected=true]{background:var(--teal-s);border-color:var(--teal);color:var(--teal)}
.chip:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.svc-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px 26px;animation:fade .3s ease}
.svc-panel > p{color:var(--muted);font-size:15px;margin:8px 0 18px;max-width:680px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cols h4{margin:0 0 6px;font:500 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.cols ul{list-style:none;margin:0;padding:0}
.cols li{padding:6px 0 6px 20px;position:relative;font-size:14px;border-top:1px solid var(--line)}
.cols li::before{content:"";position:absolute;left:2px;top:13px;width:7px;height:7px;border:1.5px solid var(--teal);border-radius:2px}
.meta{display:flex;gap:28px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);flex-wrap:wrap;font-size:13px;color:var(--muted)}
.meta b{display:block;color:var(--text);font-size:14px}

/* readiness */
.sub-lead{color:var(--muted);margin:-8px 0 12px}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.q{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.q p{font-weight:500;font-size:14px;line-height:1.45;margin-bottom:10px}
.q small{display:block;color:var(--dim);font-weight:400;font-size:13px;margin-top:2px}
.opts{display:flex;gap:6px}
.opt{all:unset;cursor:pointer;padding:5px 14px;border-radius:20px;border:1px solid var(--ctl);font-size:13px;color:var(--muted);transition:all .15s}
.opt:hover{border-color:var(--teal);color:var(--text)}
.opt[aria-pressed=true]{background:var(--teal-s);border-color:var(--teal);color:var(--teal)}
.opt:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.q-foot{display:flex;align-items:center;gap:14px;margin-top:14px;flex-wrap:wrap}

/* approach */
.steps{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin:8px 0 22px}
.steps::before{content:"";position:absolute;top:22px;left:12%;right:12%;height:1px;background:var(--line2)}
.step{all:unset;cursor:pointer;text-align:center;position:relative;padding:0 6px}
.step .dot{width:44px;height:44px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;background:var(--bg);border:1px solid var(--ctl);font:500 16px var(--sans);color:var(--muted);transition:all .25s}
.step b{display:block;font-size:15px}
.step small{color:var(--dim);font-size:13px}
.step:hover .dot{border-color:var(--teal)}
.step[aria-selected=true] .dot{background:var(--teal);border-color:var(--teal);color:var(--teal-d);box-shadow:0 0 0 6px var(--teal-s)}
.step:focus-visible .dot{outline:2px solid var(--teal);outline-offset:4px}
.step-detail{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px 26px;display:grid;grid-template-columns:1fr 1fr;gap:26px;animation:fade .3s ease}
.step-detail p{color:var(--muted);margin-top:8px}
.step-detail ul{margin:0;padding-left:18px;color:var(--muted)}
.step-detail li{margin:5px 0}
.step-detail li::marker{color:var(--teal)}
.mt10{margin-top:10px}

/* faq */
.faq{max-width:780px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:14px 36px 14px 0;font-family:var(--sans);font-size:17px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:10px;font:400 22px var(--sans);color:var(--teal);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--muted);padding:0 36px 14px 0;font-size:14px}

/* pager under the main column */
.pager{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}
.pager .btn[disabled]{visibility:hidden}
.dots{display:flex;gap:6px}
.dots i{width:6px;height:6px;border-radius:3px;background:var(--line2);transition:all .25s}
.dots i.on{width:20px;background:var(--teal)}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* readiness result + sister-service referrals */
.result{outline:none;animation:fade .3s ease}
.result[hidden]{display:none}
.res-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.res-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:18px}
.gaps{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:6px 16px}
.gaps li{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.gaps li:first-child{border-top:0}
.recs{display:grid;gap:10px;align-content:start}
.rec{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.rec.rc{box-shadow:inset 3px 0 0 var(--teal)}
.rec b{display:block;font-size:16px;margin-bottom:4px}
.rec p{font-size:14px;color:var(--muted);margin-bottom:10px}
.rec ul{margin:0 0 10px;padding-left:18px;font-size:14px;color:var(--muted)}
.rec li::marker{color:var(--teal)}
.disclose{margin-top:12px;max-width:760px}
.contact{font-size:13px;line-height:1.7;color:var(--muted)}
.contact a{text-decoration:none}
.contact a:hover{color:var(--text);text-decoration:underline}
@media (max-width:620px){.res-grid{grid-template-columns:1fr}}

/* ---------- booking form ---------- */
.book{display:grid;gap:8px}
.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 14px}
.f{display:flex;flex-direction:column;gap:4px;min-width:0}
.f.span2{grid-column:span 2}
.f label{font-size:13px;font-weight:500;color:var(--muted)}
.req{font-weight:400;color:var(--dim)}
input:not([type=checkbox]),select,textarea{font:inherit;font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--ctl);border-radius:6px;padding:8px 10px;width:100%;min-height:38px}
textarea{resize:vertical;min-height:64px;line-height:1.5}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 16px,calc(100% - 11px) 16px;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);outline-offset:1px;border-color:var(--teal)}
[aria-invalid=true]{border-color:var(--red)!important}
.hint{font-size:12px;color:var(--dim);line-height:1.45}
.ferr{font-size:12px;line-height:1.3;color:var(--red);font-weight:500}
.ferr::before{content:"! ";font-weight:600}
.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.45;margin-top:6px;cursor:pointer}
.check input{width:18px;height:18px;margin:0;flex:none;accent-color:var(--teal)}
.check a{text-decoration:underline;text-underline-offset:2px}
.book-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--line)}
.book-foot .check{margin:0;max-width:560px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.err-sum{border:1px solid var(--red);background:rgba(243,139,128,.08);border-radius:10px;padding:8px 14px;font-size:14px;outline:none}
.err-sum ul{margin:6px 0 0;padding-left:18px}
.err-sum a{color:var(--text);text-decoration:underline}
.sent{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px 26px;max-width:640px;outline:none;box-shadow:inset 3px 0 0 var(--teal)}
.sent p{color:var(--muted);margin-top:8px}
.sent a{text-decoration:underline}
.btn[disabled]{opacity:.7;cursor:progress}

/* ---------- legal pages ---------- */
.legal{max-width:780px}
.legal h1{font-size:clamp(28px,2.6vw,38px);margin-bottom:6px}
.legal .updated{color:var(--dim);font-size:13px;margin-bottom:22px}
.legal h2{font-size:20px;margin:26px 0 8px;scroll-margin-top:16px}
.legal p,.legal li{color:var(--muted);font-size:15px}
.legal p{margin:0 0 10px}
.legal ul{margin:0 0 12px;padding-left:20px}
.legal li{margin:4px 0}
.legal li::marker{color:var(--teal)}
.legal b{color:var(--text)}
.legal a{text-decoration:underline;text-underline-offset:2px}
.legal table{border-collapse:collapse;width:100%;margin:4px 0 14px;font-size:14px}
.legal td,.legal th{border-top:1px solid var(--line);padding:8px 10px 8px 0;text-align:left;vertical-align:top;color:var(--muted)}
.legal th{color:var(--text);font-weight:500;width:34%}
.toc ol{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
.toc li{margin:5px 0}
.toc a{text-decoration:none}
.toc a:hover{color:var(--text);text-decoration:underline}
.legal-links{display:flex;flex-wrap:wrap;gap:4px 10px}
@media (max-width:899px){.fgrid{grid-template-columns:1fr 1fr}.f.span2{grid-column:span 2}}
@media (max-width:620px){.fgrid{grid-template-columns:1fr}.f.span2{grid-column:auto}}

/* ---------- fact panel (overview) ---------- */
.facts{position:relative;display:flex;align-items:center;gap:16px;max-width:760px;margin:0 0 18px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.fact{display:flex;align-items:center;gap:16px;flex:1;min-width:0}
.fact.swap{animation:factIn .5s ease}
@keyframes factIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fact-n{flex:none;min-width:96px;font-size:34px;font-weight:600;line-height:1;color:var(--teal);letter-spacing:-.02em}
.fact-body p{color:var(--text);font-size:15px;line-height:1.45}
.fact-src{display:inline-block;margin-top:3px;font-size:12px;color:var(--dim);text-decoration:underline;text-underline-offset:2px}
.fact-src:hover{color:var(--text)}
.fact-ctl{display:flex;align-items:center;gap:4px;flex:none}
.fbtn{all:unset;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--ctl);color:var(--muted);font-size:14px}
.fbtn:hover{border-color:var(--teal);color:var(--teal)}
.fbtn:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.fact-count{font-size:12px;color:var(--dim);min-width:38px;text-align:center}
.fact-timer{position:absolute;left:0;right:0;bottom:0;height:2px;background:transparent}
.fact-timer i{display:block;height:100%;width:0;background:var(--teal);opacity:.8}
@media (max-width:620px){.facts{flex-direction:column;align-items:flex-start}.fact{align-items:flex-start}.fact-n{min-width:0;font-size:28px}}

/* ===== responsive tiers =====
   >= 1200px  three columns (menu | main | trust)
   900-1199   two columns (menu | main); trust content moves into the views
   < 900      one column: slim top bar + menu sheet, natural page scroll       */
.bar-book,.menu-toggle,.trust-row,.score-strip,.mfoot,.step-nav{display:none}
.menu{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}

@media (max-width:1280px){
  .shell{grid-template-columns:220px minmax(0,1fr) 260px}
  .rows{grid-template-columns:1fr}
  .row{grid-template-columns:1fr 120px 40px}
}

/* two columns: tablets in landscape, small laptops */
@media (max-width:1199px){
  .shell{grid-template-columns:220px minmax(0,1fr)}
  .right{display:none}
  .trust-row{display:grid}
  .report{display:none}
  .score-strip{display:flex}
}

/* one column: phones and tablets in portrait */
@media (max-width:899px){
  .shell{display:block;height:auto;min-height:0}
  .left{position:sticky;top:0;z-index:30;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 14px;border-right:0;border-bottom:1px solid var(--line);overflow:visible;background:rgba(24,28,33,.97)}
  .logo{padding:0;border:0;margin-right:auto}
  .logo-mark{width:26px;height:34px}
  .logo b{font-size:18px}
  .logo small{display:none}
  .bar-book{display:inline-flex}
  .menu-toggle{display:inline-flex}
  .menu{display:none;flex-basis:100%;order:3;gap:10px;padding:6px 0 10px;max-height:calc(100dvh - 60px);overflow-y:auto}
  .menu.open{display:flex}
  .nav{flex:none}
  .trail > a{padding:10px 4px 10px 0}
  .sub{display:none!important}
  .main{overflow:visible;padding:20px 16px 16px;min-height:calc(100dvh - 53px)}
  .main::before{display:none}
  .view{overflow:visible;padding-right:0}
  h1{font-size:30px}
  .lead{font-size:16px;margin:12px 0 18px}
  .ctas{margin-bottom:16px}
  .ctas .btn{flex:1 1 auto}
  .mfoot{display:block}
}
@media (max-width:620px){
  .cols,.step-detail{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(4,1fr);margin:4px 0 16px}
  .steps::before{left:12%;right:12%}
  .step small{display:none}
  .step .dot{width:36px;height:36px;margin-bottom:6px}
  .step b{font-size:13px}
  .svc-panel,.step-detail{padding:18px}
  .svc-panel h3{font-size:19px}
  .meta{gap:16px}
}
@media (max-width:599px){
  /* readiness check: one question at a time */
  .qgrid.stepper{grid-template-columns:1fr}
  .qgrid.stepper .q{display:none}
  .qgrid.stepper .q.cur{display:block;animation:fade .25s ease}
  .stepper ~ .q-foot .fine{display:none}
  .step-nav{display:flex}
  .qgrid .opt{padding:10px 18px;font-size:15px}
}

/* trust cards shown in the overview when the right column is hidden */
.trust-row{grid-template-columns:1fr 1fr;gap:12px;max-width:760px}
.trust-row .card{padding:14px 16px}
.trust-row .creds{grid-template-columns:repeat(3,auto);gap:6px 14px}
.trust-row .creds span{display:none}
.trust-row .creds li{padding-left:10px}
.trust-row .creds b{font-size:14px}
.trust-row .quote{font-size:14px;margin:0}
@media (max-width:620px){.trust-row{grid-template-columns:1fr}.trust-row .creds{display:flex;flex-wrap:wrap;gap:4px 16px}.trust-row .creds li{white-space:nowrap}}

/* compact score strip inside the readiness view */
.score-strip{align-items:center;gap:12px;margin:-6px 0 12px;padding:8px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;font-size:14px;color:var(--muted)}
.score-strip b{font-size:20px;color:var(--text);min-width:34px}
.score-strip .lvl{color:var(--text);font-weight:500}
.step-nav{align-items:center;justify-content:space-between;margin-bottom:10px}
.step-nav span{font-size:13px;color:var(--muted)}

/* menu, top bar buttons */
.menu-toggle{align-items:center;gap:6px}
.bar-book{white-space:nowrap}

/* compact company footer (all pages, smaller screens) */
.mfoot{margin-top:18px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--dim);line-height:1.6}
.mfoot a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.mfoot nav{margin-top:4px;display:flex;flex-wrap:wrap;gap:2px 12px}

/* optional booking fields: always open on desktop, folded on smaller screens */
.more{border:1px solid var(--line);border-radius:10px;padding:0 12px}
.more summary{cursor:pointer;padding:10px 0;font-size:14px;font-weight:500;color:var(--muted);list-style:none}
.more summary::-webkit-details-marker{display:none}
.more summary::after{content:" +";color:var(--teal)}
.more[open] summary::after{content:" –"}
.more[open]{padding-bottom:10px}
.fgrid.opt4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (min-width:1200px){.more{border:0;padding:0}.more summary{display:none}.more[open]{padding:0}}
@media (max-width:1199px){.fgrid.opt4{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.fgrid.opt4{grid-template-columns:1fr}}
.f.span3{grid-column:1/-1}

/* fine-tuning: two-column tier (tablet landscape) */
@media (max-width:1199px) and (min-width:900px){
  #v-readiness .sub-lead{display:none}
  .q{padding:12px 14px}
  .q p{margin-bottom:8px}
  .score-strip{margin:0 0 10px}
}
/* fine-tuning: phones */
@media (max-width:599px){
  h1{font-size:27px}
  h2{font-size:22px;margin-bottom:12px}
  .eyebrow{margin-bottom:6px}
  .lead{font-size:15px}
  .facts{padding:12px 14px;margin-bottom:14px;gap:10px}
  .fact-n{font-size:26px}
  .fact-body p{font-size:14px}
  .svc-tabs{margin-bottom:12px;gap:6px}
  .chip{padding:6px 12px}
  .svc-panel > p{font-size:14px;margin:6px 0 12px}
  .cols{gap:14px}
  .cols li{padding:4px 0 4px 18px;font-size:13.5px}
  .cols li::before{top:10px}
  .meta{margin-top:12px;padding-top:10px}
  .sub-lead{font-size:14px;margin:-4px 0 12px}
  /* booking: two columns, key fields full width */
  .fgrid{grid-template-columns:1fr 1fr;gap:6px 10px}
  .fgrid > .f{grid-column:1/-1}
  .fgrid > .f:has(#f-when),.fgrid > .f:has(#f-format){grid-column:auto}
  .fgrid.opt4 > .f{grid-column:1/-1}
  .book-foot .btn{width:100%}
  .pager{margin-top:10px;padding-top:10px}
}
@media (max-width:1199px) and (min-width:900px){.qgrid{gap:8px}.q{padding:10px 14px}}
@media (max-width:599px){
  .res-head{margin-bottom:10px}
  .res-head h3{font-size:18px}
  .res-grid{gap:12px}
  .gaps{display:grid;grid-template-columns:1fr 1fr;column-gap:14px;padding:4px 12px}
  .gaps li{font-size:13px;padding:7px 0}
  .gaps li:nth-child(2){border-top:0}
  .rec{padding:12px 14px}
  .rec p,.rec ul{font-size:13.5px}
}
/* tap targets: footer links at least 24px tall (WCAG 2.5.8) */
.mfoot a{display:inline-block;padding:5px 0;min-height:24px}
.mfoot nav{gap:0 16px}
@media (max-width:1199px) and (min-width:900px){.q p{margin-bottom:6px}}

/* ---------- light effects (all disabled by prefers-reduced-motion) ---------- */
/* logo: shield outline draws itself, then the check-arrow rises into place */
.logo-mark .ol{stroke-dasharray:1;stroke-dashoffset:1;animation:drawLine 1.1s cubic-bezier(.6,.1,.2,1) .15s forwards}
.logo-mark .ck,.logo-mark .ap{opacity:0;transform:translate(-6px,8px);transform-box:fill-box;animation:riseIn .6s cubic-bezier(.2,.7,.2,1) .8s forwards}
.logo-mark .ap{animation-delay:1s}
@keyframes drawLine{to{stroke-dashoffset:0}}
@keyframes riseIn{to{opacity:1;transform:none}}
/* hero: a sweep underlines "Evidence" once the page has loaded */
#v-overview h1 em{position:relative;white-space:nowrap}
#v-overview h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.08em;border-radius:2px;background:linear-gradient(90deg,var(--sky),var(--teal));transform:scaleX(0);transform-origin:left;animation:sweep .9s cubic-bezier(.2,.7,.2,1) .6s forwards}
@keyframes sweep{to{transform:scaleX(1)}}
/* cards and panels: a soft emerald edge when interactive content inside is used */
.svc-panel,.facts,.q,.rec{transition:border-color .25s}
.svc-panel:hover,.facts:hover,.q:hover,.rec:hover{border-color:rgba(52,211,153,.35)}
.btn-p{position:relative;overflow:hidden}
.btn-p::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s ease}
.btn-p:hover::after{transform:translateX(120%)}
/* services: link to the full page */
.more-link{margin-left:auto;align-self:center;color:var(--teal);font-size:14px;font-weight:500;text-decoration:none}
.more-link:hover{text-decoration:underline;text-underline-offset:3px}
/* service and about pages */
.crumbs{font-size:13px;color:var(--dim);margin-bottom:14px}
.crumbs a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.legal .lead{font-size:17px;color:var(--muted);margin:10px 0 8px;max-width:680px}
.legal .suited{font-size:14px}
.legal .related{font-size:14px;margin-top:14px}
.legal details{border-top:1px solid var(--line)}
.legal details:last-of-type{border-bottom:1px solid var(--line)}
.legal summary{cursor:pointer;padding:12px 0;font-weight:500;color:var(--text)}
.legal details p{margin:0 0 12px}
@media (prefers-reduced-motion:reduce){
  .logo-mark .ol{stroke-dashoffset:0}
  .logo-mark .ck,.logo-mark .ap{opacity:1;transform:none}
  #v-overview h1 em::after{transform:none}
  .btn-p::after{display:none}
}
@media (max-width:599px){#v-services .sub-lead{display:none}.faq summary{padding:12px 32px 12px 0;font-size:16px}}
