Qwen Qwen3.8 Max (0902) – Health and Fitness
via Alibaba · Generated
- AIMAC Debt 9.88
- Cost $0.24
- Total Violations 61
- HTML Size 88 KB
- Em Dashes 74
Screenshot
View Live Page
Accessibility Issues Found
61 Serious
-
aria-hidden-focus serious 1 instance
ARIA hidden element must not be focusable or contain focusable elements
Example HTML
<div class="mnav" id="mnav" aria-hidden="true"> -
aria-prohibited-attr serious 1 instance
Elements must only use permitted ARIA attributes
Example HTML
<div class="streak" aria-label="Streak progress: 12 of 30 days complete"> -
color-contrast serious 59 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<small>INTEGRATED CARE COLLECTIVE</small>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>NorthPulse Health — Clinical precision. Everyday vitality.</title>
<meta name="description" content="NorthPulse Health is an integrated health collective pairing physicians, dietitians, physiotherapists and behavioral specialists under one roof.">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' rx='10' fill='%230E3B2C'/%3E%3Cpolyline points='4,22 12,22 16,12 22,28 26,18 29,22 36,22' fill='none' stroke='%23D6F154' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..700;1,9..144,400..700&family=Instrument+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<style>
/* ============ TOKENS & RESET ============ */
:root{
--paper:#F3EFE4; --paper2:#EAE3D1; --card:#FBF9F1;
--pine:#0E3B2C; --pine-d:#082419; --ink:#101B15;
--lime:#D6F154; --sage:#C3D6C0; --clay:#E0682B;
--line:rgba(16,27,21,.16); --line-d:rgba(214,241,84,.18);
--disp:'Fraunces',Georgia,serif; --body:'Instrument Sans',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
--shadow:0 24px 48px -24px rgba(8,36,25,.28);
--ease:cubic-bezier(.22,.7,.2,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit;font-size:inherit;color:inherit}
::selection{background:var(--lime);color:var(--pine)}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px;border-radius:4px}
section[id]{scroll-margin-top:92px}
/* grain overlay */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:120;opacity:.05;mix-blend-mode:multiply;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");}
.wrap{max-width:1220px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.skip{position:absolute;left:-9999px;top:0;background:var(--pine);color:var(--lime);padding:12px 20px;z-index:300}
.skip:focus{left:16px;top:16px}
/* type helpers */
.kick{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;color:var(--pine)}
.kick::before{content:"";width:9px;height:9px;background:var(--lime);border:1.5px solid var(--pine);flex:none}
.on-dark .kick{color:var(--lime)}
.on-dark .kick::before{border-color:var(--lime)}
h1,h2,h3{font-family:var(--disp);font-weight:600;letter-spacing:-.015em;line-height:1.05}
h2{font-size:clamp(2rem,4vw,3.1rem)}
.it{font-style:italic;font-weight:500}
.lede{font-size:clamp(1.02rem,1.4vw,1.15rem);color:rgba(16,27,21,.74);max-width:56ch}
.on-dark .lede{color:rgba(243,239,228,.78)}
.sec-head{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;margin-bottom:clamp(34px,5vw,58px)}
.sec-head .kick{margin-bottom:16px}
.sec-head h2{max-width:16ch}
.sec-head .lede{max-width:38ch;padding-bottom:6px}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;font-weight:600;font-size:15px;border:1.5px solid var(--ink);transition:transform .28s var(--ease),box-shadow .28s var(--ease),background .2s;line-height:1}
.btn svg{transition:transform .28s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-lime{background:var(--lime);color:var(--pine);box-shadow:5px 5px 0 var(--pine)}
.btn-lime:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--pine)}
.btn-pine{background:var(--pine);color:var(--paper);box-shadow:5px 5px 0 rgba(16,27,21,.25)}
.btn-pine:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 rgba(16,27,21,.25)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.on-dark .btn-ghost{color:var(--paper);border-color:var(--paper)}
.on-dark .btn-ghost:hover{background:var(--paper);color:var(--pine)}
.btn-sm{padding:11px 20px;font-size:14px}
.chip{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:7px 13px;border-radius:999px;border:1px solid var(--line)}
/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}
.lm{display:block;overflow:hidden}
.lm>span{display:block;transform:translateY(112%);transition:transform 1s var(--ease)}
.in .lm:nth-child(1)>span{transition-delay:.05s}.in .lm:nth-child(2)>span{transition-delay:.15s}.in .lm:nth-child(3)>span{transition-delay:.25s}
.in .lm>span{transform:none}
/* ============ HEADER ============ */
.topbar{background:var(--pine);color:var(--paper)}
.topbar-in{display:flex;justify-content:space-between;gap:16px;padding:9px 0;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em}
.topbar a:hover{color:var(--lime)}
.topbar .pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-right:8px;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(214,241,84,.55)}55%{box-shadow:0 0 0 7px rgba(214,241,84,0)}}
.site-nav{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-nav.scrolled{box-shadow:0 12px 30px -18px rgba(8,36,25,.35)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0}
.brand{display:flex;align-items:center;gap:13px}
.brand-txt b{font-family:var(--disp);font-weight:700;font-size:21px;letter-spacing:-.01em;display:block;line-height:1}
.brand-txt small{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;color:rgba(16,27,21,.6);display:block;margin-top:4px}
.nav-links{display:flex;gap:4px;align-items:center;list-style:none}
.nav-links a{font-size:14.5px;font-weight:500;padding:9px 13px;border-radius:999px;position:relative;transition:background .2s}
.nav-links a:hover{background:rgba(14,59,44,.09)}
.nav-links .nav-cta{background:var(--pine);color:var(--paper);font-weight:600;margin-left:8px}
.nav-links .nav-cta:hover{background:var(--ink)}
.burger{display:none;flex-direction:column;gap:5px;padding:10px}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s var(--ease)}
.mnav{position:fixed;inset:0;background:var(--pine);z-index:200;display:flex;flex-direction:column;justify-content:center;padding:32px;gap:6px;transform:translateY(-100%);transition:transform .5s var(--ease)}
.mnav.open{transform:none}
.mnav a{color:var(--paper);font-family:var(--disp);font-size:clamp(1.8rem,7vw,2.6rem);padding:8px 0;border-bottom:1px solid var(--line-d)}
.mnav a:hover{color:var(--lime);padding-left:10px;transition:.25s}
.mnav-close{position:absolute;top:22px;right:26px;color:var(--paper);font-size:34px;line-height:1}
/* ============ HERO ============ */
.hero{position:relative;padding:clamp(48px,7vh,84px) 0 clamp(40px,6vh,70px);
background-image:linear-gradient(rgba(14,59,44,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(14,59,44,.055) 1px,transparent 1px);background-size:34px 34px}
.hero-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(20px,3vw,44px);align-items:center}
.hero-copy{grid-column:span 7}
.hero-copy .kick{margin-bottom:26px}
.hero h1{font-size:clamp(2.7rem,5.6vw,4.7rem);margin-bottom:26px}
.hero h1 .accent{color:var(--pine);font-style:italic;font-weight:500}
.hero .lede{margin-bottom:34px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px}
.hero-stats{display:flex;gap:clamp(22px,3.4vw,48px);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:26px}
.hstat b{font-family:var(--disp);font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:600;display:block;color:var(--pine)}
.hstat span{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,27,21,.6)}
.hero-visual{grid-column:span 5;position:relative}
.kb{overflow:hidden;border-radius:18px;border:1px solid var(--line)}
.kb img{width:100%;height:100%;object-fit:cover;animation:kenburns 20s var(--ease) infinite alternate}
@keyframes kenburns{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.14) translate(-2.5%,2%)}}
.hero-photo{aspect-ratio:4/5;box-shadow:var(--shadow)}
.photo-tag{position:absolute;top:18px;left:-14px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 12px 24px -12px rgba(8,36,25,.4)}
.float-badge{position:absolute;top:-22px;right:-14px;background:var(--lime);border:1.5px solid var(--pine);border-radius:14px;padding:12px 18px;font-weight:600;font-size:13.5px;transform:rotate(3deg);box-shadow:4px 4px 0 var(--pine);max-width:200px;line-height:1.35}
/* vitals card */
.vitals{position:absolute;bottom:-34px;left:-38px;width:min(320px,86%);background:var(--pine-d);color:var(--paper);border-radius:16px;padding:18px 20px 16px;box-shadow:0 30px 50px -20px rgba(8,36,25,.55);border:1px solid rgba(214,241,84,.25)}
.vitals-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:8px}
.live{display:flex;align-items:center;gap:7px;color:var(--lime)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--lime);animation:pulse 1.6s infinite}
.vitals-main{display:flex;align-items:baseline;gap:8px}
.vitals-main b{font-family:var(--disp);font-size:52px;font-weight:600;line-height:1;color:var(--lime)}
.vitals-main span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--sage)}
.ecg{width:100%;height:52px;margin:6px 0 8px}
.ecg-grid{stroke:rgba(214,241,84,.12);stroke-width:1}
.ecg-line{fill:none;stroke:var(--lime);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:120 560;animation:ecg 4.2s linear infinite;filter:drop-shadow(0 0 5px rgba(214,241,84,.6))}
@keyframes ecg{to{stroke-dashoffset:-680}}
.vitals-row{display:flex;justify-content:space-between;gap:8px;font-family:var(--mono);font-size:11px;color:var(--sage);border-top:1px solid rgba(214,241,84,.15);padding-top:10px}
.vitals-row b{color:var(--paper);font-weight:500}
/* trust strip */
.trust{margin-top:clamp(48px,7vh,76px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;gap:14px 30px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,27,21,.62)}
.trust span{display:flex;align-items:center;gap:10px}
.trust i{width:6px;height:6px;background:var(--clay);border-radius:50%;flex:none}
/* ticker */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;border-bottom:3px solid var(--lime)}
.ticker-track{display:flex;width:max-content;animation:marquee 36s linear infinite;padding:13px 0}
.ticker-track span{font-family:var(--mono);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;padding:0 26px;display:flex;align-items:center;gap:26px}
.ticker-track b{color:var(--lime);font-weight:500}
.ticker-track em{font-style:normal;color:var(--clay)}
@keyframes marquee{to{transform:translateX(-50%)}}
/* ============ PILLARS ============ */
.pillars{padding:clamp(76px,10vw,124px) 0}
.pillar{display:grid;grid-template-columns:88px 1.15fr .9fr auto;gap:clamp(16px,3vw,38px);align-items:center;padding:30px 18px;border-top:1px solid var(--line);transition:background .35s,color .35s;position:relative}
.pillar:last-child{border-bottom:1px solid var(--line)}
.p-num{font-family:var(--mono);font-size:13px;letter-spacing:.12em;color:rgba(16,27,21,.5)}
.pillar h3{font-size:clamp(1.35rem,2.1vw,1.7rem);margin-bottom:9px}
.pillar p{font-size:15px;color:rgba(16,27,21,.72);max-width:52ch}
.p-tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.p-arrow{width:52px;height:52px;border:1.5px solid currentColor;border-radius:50%;display:grid;place-items:center;flex:none;transition:transform .35s var(--ease)}
.pillar:hover{background:var(--pine);color:var(--paper)}
.pillar:hover p{color:rgba(243,239,228,.75)}
.pillar:hover .p-num{color:var(--lime)}
.pillar:hover .chip{border-color:var(--line-d);color:var(--sage)}
.pillar:hover .p-arrow{transform:translateX(8px) rotate(-45deg);background:var(--lime);color:var(--pine);border-color:var(--lime)}
/* ============ PROGRAMS ============ */
.programs{background:var(--paper2);padding:clamp(76px,10vw,124px) 0;border-top:1px solid var(--line)}
.prog-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:14px;transition:transform .35s var(--ease),box-shadow .35s var(--ease);position:relative;overflow:hidden}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pcard .chip{align-self:flex-start}
.pcard h3{font-size:clamp(1.3rem,1.9vw,1.62rem)}
.pcard p{font-size:14.8px;color:rgba(16,27,21,.72)}
.p-meta{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;color:rgba(16,27,21,.58);border-top:1px dashed var(--line);padding-top:14px;margin-top:auto}
.p-meta b{display:block;color:var(--ink);font-weight:600;font-size:13px;margin-top:2px}
.p-foot{display:flex;justify-content:space-between;align-items:center;gap:12px}
.price{font-family:var(--disp);font-size:1.35rem;font-weight:600;color:var(--pine)}
.price small{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:rgba(16,27,21,.5);display:block;font-weight:400}
.prog-feat{grid-column:span 7;grid-row:span 2;padding:0}
.prog-feat .kb{border-radius:17px 17px 0 0;border:none;aspect-ratio:16/9.4}
.prog-feat .inner{padding:28px;display:flex;flex-direction:column;gap:14px;flex:1}
.tag-lime{background:var(--lime);color:var(--pine);border-color:var(--pine)}
.tag-sage{background:var(--sage);color:var(--pine)}
.tag-clay{background:var(--clay);color:var(--paper);border-color:var(--clay)}
.tag-outline{background:transparent}
.stack{grid-column:span 5;display:grid;gap:20px}
.prog-third{grid-column:span 4}
.prog-third::after{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:var(--sage)}
.prog-third.c2::after{background:var(--clay)}
.prog-third.c3::after{background:var(--lime)}
/* ============ CALCULATOR ============ */
.calc{background:var(--pine-d);color:var(--paper);padding:clamp(80px,10vw,130px) 0;position:relative;overflow:hidden}
.calc::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(214,241,84,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(214,241,84,.05) 1px,transparent 1px);background-size:34px 34px}
.calc .wrap{position:relative}
.calc-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,70px);align-items:start}
.calc h2{margin:16px 0 20px}
.calc-note{font-family:var(--mono);font-size:11.5px;line-height:1.7;color:var(--sage);border-left:2px solid var(--lime);padding-left:16px;margin-top:30px;max-width:44ch}
.panel{background:var(--card);color:var(--ink);border-radius:20px;padding:clamp(22px,3vw,36px);box-shadow:0 40px 70px -30px rgba(0,0,0,.55)}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(16,27,21,.55)}
.panel-head i{width:9px;height:9px;border-radius:50%;background:var(--lime);border:1px solid var(--pine);animation:pulse 2s infinite}
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field label{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(16,27,21,.6);margin-bottom:8px}
.field input,.field select{width:100%;padding:13px 15px;border:1.5px solid var(--line);border-radius:11px;background:#fff;font-size:15px;transition:border-color .2s}
.field input:focus,.field select:focus{border-color:var(--pine);outline:none}
.seg{display:flex;border:1.5px solid var(--line);border-radius:11px;overflow:hidden}
.seg button{flex:1;padding:12px;font-weight:600;font-size:14px;background:#fff;transition:.2s}
.seg button.on{background:var(--pine);color:var(--paper)}
.field.full{grid-column:span 2}
.calc-go{grid-column:span 2;margin-top:6px}
.results{margin-top:28px;border-top:2px solid var(--ink);padding-top:24px}
.res-hero{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.res-hero small{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(16,27,21,.55);display:block}
.res-hero b{font-family:var(--disp);font-size:clamp(2.6rem,4vw,3.6rem);font-weight:600;color:var(--pine);line-height:1}
.res-hero b sub{font-family:var(--mono);font-size:.9rem;font-weight:400}
.bmi-badge{font-family:var(--mono);font-size:12px;letter-spacing:.08em;padding:9px 16px;border-radius:999px;border:1.5px solid var(--pine);background:var(--lime)}
.res-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}
.res-cell{border:1px solid var(--line);border-radius:13px;padding:14px 16px;background:#fff}
.res-cell small{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,27,21,.55);display:block;margin-bottom:4px}
.res-cell b{font-family:var(--disp);font-size:1.5rem;font-weight:600}
.res-cell span{font-family:var(--mono);font-size:11px;color:rgba(16,27,21,.6)}
.macro-line{height:14px;border-radius:99px;background:var(--paper2);overflow:hidden;display:flex;margin-bottom:10px}
.macro-line i{display:block;height:100%;transition:width 1s var(--ease)}
.m-p{background:var(--clay)}.m-c{background:var(--lime)}.m-f{background:var(--sage)}
.macro-key{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:11px;color:rgba(16,27,21,.7);margin-bottom:24px}
.macro-key i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:6px;vertical-align:baseline}
.bmi-scale{position:relative;height:10px;border-radius:99px;background:linear-gradient(90deg,#7FA98C 0%,#D6F154 34%,#E8C15A 55%,#E0682B 100%);margin:18px 0 6px}
.bmi-pin{position:absolute;top:-7px;width:4px;height:24px;background:var(--ink);border-radius:3px;transition:left 1s var(--ease);left:35%}
.bmi-labels{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;color:rgba(16,27,21,.5)}
.res-hint{font-size:13.5px;color:rgba(16,27,21,.68);margin-top:18px;border-top:1px dashed var(--line);padding-top:16px}
/* ============ NUTRITION ============ */
.nutrition{padding:clamp(80px,10vw,130px) 0}
.nut-grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,5vw,64px);align-items:start}
.nut-imgs{position:relative}
.nut-imgs .kb{border-radius:18px;aspect-ratio:4/4.7;box-shadow:var(--shadow)}
.nut-sub{position:absolute;bottom:-34px;right:-24px;width:52%;border-radius:14px;overflow:hidden;border:5px solid var(--paper);transform:rotate(3deg);box-shadow:0 24px 40px -18px rgba(8,36,25,.4)}
.rd-badge{position:absolute;top:20px;left:-18px;background:var(--pine);color:var(--paper);border-radius:13px;padding:14px 18px;font-size:13.5px;font-weight:600;line-height:1.4;box-shadow:4px 4px 0 var(--lime)}
.rd-badge small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--lime);font-weight:400;text-transform:uppercase}
.article{display:grid;grid-template-columns:118px 1fr auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);transition:transform .3s var(--ease)}
.article:first-of-type{border-top:1px solid var(--line);margin-top:28px}
.article:hover{transform:translateX(8px)}
.article img{width:118px;height:86px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.article h4{font-family:var(--disp);font-size:1.15rem;font-weight:600;margin:5px 0 6px;line-height:1.25}
.article p{font-size:13.8px;color:rgba(16,27,21,.68)}
.a-meta{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);font-weight:600}
.a-time{font-family:var(--mono);font-size:11px;color:rgba(16,27,21,.5);white-space:nowrap}
.article .go{width:38px;height:38px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;flex:none;transition:.3s}
.article:hover .go{background:var(--lime);transform:rotate(-45deg)}
.nut-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.nut-actions .mini{font-family:var(--mono);font-size:12px;color:rgba(16,27,21,.6)}
/* ============ PROVIDERS ============ */
.providers{background:var(--paper2);border-top:1px solid var(--line);padding:clamp(76px,10vw,124px) 0}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fchip{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);transition:.25s;font-weight:500}
.fchip:hover{border-color:var(--pine)}
.fchip.on{background:var(--pine);color:var(--lime);border-color:var(--pine)}
.f-count{font-family:var(--mono);font-size:11.5px;color:rgba(16,27,21,.55);margin-bottom:26px}
.prov-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prov{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px;transition:transform .35s var(--ease),box-shadow .35s var(--ease),opacity .4s;display:flex;flex-direction:column;gap:12px}
.prov:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.prov.hide{display:none}
.prov-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.prov img{width:64px;height:64px;border-radius:50%;border:2px solid var(--pine);outline:3px solid var(--lime)}
.open-dot{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);display:flex;align-items:center;gap:6px;background:rgba(214,241,84,.4);padding:6px 11px;border-radius:99px}
.open-dot i{width:6px;height:6px;border-radius:50%;background:var(--pine);animation:pulse 2s infinite}
.prov h3{font-size:1.28rem}
.prov .role{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay);font-weight:600}
.prov p{font-size:13.8px;color:rgba(16,27,21,.7)}
.prov-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px dashed var(--line);padding-top:16px;margin-top:auto}
.next-av{font-family:var(--mono);font-size:11px;background:var(--paper2);padding:8px 12px;border-radius:8px;color:var(--pine);font-weight:600}
/* ============ MIND ============ */
.mind{background:var(--pine);color:var(--paper);padding:clamp(80px,10vw,130px) 0;position:relative;overflow:hidden}
.mind::after{content:"";position:absolute;right:-140px;top:-140px;width:420px;height:420px;border:1px solid var(--line-d);border-radius:50%}
.mind::before{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border:1px solid var(--line-d);border-radius:50%;z-index:0}
.mind-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center;position:relative;z-index:1}
.mind h2{margin:16px 0 20px}
.mind-list{list-style:none;margin:28px 0;display:grid;gap:14px}
.mind-list li{display:flex;gap:14px;align-items:baseline;font-size:15.5px}
.mind-list li b{font-weight:600}
.mind-list li::before{content:"✓";color:var(--lime);font-weight:700;flex:none}
.mind-stats{display:flex;gap:26px;flex-wrap:wrap;border-top:1px solid var(--line-d);padding-top:24px}
.mind-stats b{font-family:var(--disp);font-size:1.9rem;color:var(--lime);display:block;font-weight:600}
.mind-stats span{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage)}
.breath-card{background:var(--paper);color:var(--ink);border-radius:22px;padding:clamp(26px,3.5vw,42px);text-align:center;box-shadow:0 40px 70px -30px rgba(0,0,0,.55);max-width:430px;margin:0 auto;width:100%}
.breath-card h3{font-size:1.5rem;margin-bottom:8px}
.breath-card>p{font-size:14px;color:rgba(16,27,21,.68);margin-bottom:26px}
.breath-stage{width:210px;height:210px;margin:0 auto 22px;display:grid;place-items:center;position:relative}
.breath-ring{position:absolute;inset:0;border:1.5px dashed rgba(14,59,44,.35);border-radius:50%}
.breath-orb{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E9F7B0,var(--lime) 60%,#A8C63B);box-shadow:0 14px 34px -10px rgba(166,196,58,.7);transition:transform 4s cubic-bezier(.45,0,.4,1)}
.breath-phase{font-family:var(--disp);font-size:1.35rem;font-style:italic;color:var(--pine);min-height:34px}
.breath-count{font-family:var(--mono);font-size:12px;letter-spacing:.2em;color:rgba(16,27,21,.5);margin:6px 0 20px;text-transform:uppercase}
/* ============ WEEK / SCHEDULE ============ */
.week{padding:clamp(76px,10vw,124px) 0}
.week-grid{display:grid;grid-template-columns:8fr 4fr;gap:22px;align-items:start}
.sched-card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.sched-head{display:flex;justify-content:space-between;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:rgba(16,27,21,.6)}
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:640px}
th{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(16,27,21,.5);text-align:left;padding:13px 26px;border-bottom:1px solid var(--line)}
td{padding:15px 26px;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr{transition:background .2s}
tbody tr:hover{background:rgba(214,241,84,.22)}
td.t-time{font-family:var(--mono);font-size:12.5px;color:var(--pine);font-weight:600;white-space:nowrap}
td .cls{font-weight:600}
td .coach{color:rgba(16,27,21,.6);font-size:13px;display:block}
.spots{font-family:var(--mono);font-size:11.5px;display:inline-flex;align-items:center;gap:7px}
.spots i{width:7px;height:7px;border-radius:50%;background:var(--clay)}
.spots.ok i{background:var(--pine)}
.spots.low{color:var(--clay);font-weight:600}
.sched-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:20px 26px;background:var(--paper2)}
.sched-foot p{font-size:13px;color:rgba(16,27,21,.65)}
.side-stack{display:grid;gap:22px}
.challenge{background:var(--lime);border:1.5px solid var(--pine);border-radius:18px;padding:30px;box-shadow:6px 6px 0 var(--pine);transform:rotate(-1.2deg);transition:transform .35s var(--ease)}
.challenge:hover{transform:rotate(0)}
.challenge .chip{border-color:var(--pine);margin-bottom:16px;display:inline-block}
.challenge h3{font-size:1.55rem;margin-bottom:12px}
.challenge p{font-size:14.5px;color:rgba(14,45,32,.85);margin-bottom:20px}
.streak{display:flex;gap:5px;margin-bottom:22px;flex-wrap:wrap}
.streak i{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--pine);background:transparent}
.streak i.fill{background:var(--pine)}
.coach-card{background:var(--pine);color:var(--paper);border-radius:18px;overflow:hidden}
.coach-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.coach-card div{padding:22px 24px}
.coach-card b{font-family:var(--disp);font-size:1.2rem;font-weight:600;display:block}
.coach-card small{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.coach-card p{font-size:13.5px;color:rgba(243,239,228,.75);margin-top:10px}
/* ============ TESTIMONIALS ============ */
.stories{background:var(--paper2);border-top:1px solid var(--line);padding:clamp(76px,10vw,124px) 0}
.story-row{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:start}
.story{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px;position:relative;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.story:hover{transform:rotate(0) translateY(-6px)!important;box-shadow:var(--shadow)}
.story.r1{transform:rotate(-1.6deg)}.story.r2{transform:rotate(1.4deg) translateY(22px)}.story.r3{transform:rotate(-1deg) translateY(8px)}
.story .q{font-family:var(--disp);font-size:3rem;line-height:0;color:var(--lime);-webkit-text-stroke:1px var(--pine);display:block;margin-bottom:22px}
.story blockquote{font-family:var(--disp);font-size:1.12rem;font-style:italic;line-height:1.5;margin-bottom:22px;color:rgba(16,27,21,.88)}
.story-who{display:flex;align-items:center;gap:13px;margin-bottom:16px}
.story-who img{width:46px;height:46px;border-radius:50%;border:2px solid var(--lime)}
.story-who b{display:block;font-size:14.5px}
.story-who span{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(16,27,21,.55)}
.metric{font-family:var(--mono);font-size:11.5px;background:rgba(214,241,84,.4);border:1px solid rgba(14,59,44,.25);padding:8px 13px;border-radius:8px;color:var(--pine);font-weight:600;display:inline-block}
/* ============ FAQ ============ */
.faq{padding:clamp(76px,10vw,124px) 0}
.faq-grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(30px,5vw,70px);align-items:start}
.faq-aside{position:sticky;top:110px}
.faq-aside .lede{margin-top:18px}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:first-child{border-top:1px solid var(--line)}
.faq-q{width:100%;display:flex;align-items:center;gap:20px;text-align:left;padding:24px 4px;transition:color .2s}
.faq-q:hover{color:var(--pine)}
.faq-q .idx{font-family:var(--mono);font-size:12px;color:var(--clay);flex:none}
.faq-q h3{font-size:1.2rem;font-weight:600;flex:1}
.faq-q .plus{width:34px;height:34px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;flex:none;font-size:18px;transition:transform .35s var(--ease),background .25s}
.faq-item.open .plus{transform:rotate(45deg);background:var(--lime)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.faq-a p{padding:0 54px 26px;font-size:15px;color:rgba(16,27,21,.74);max-width:62ch}
/* ============ CTA BAND ============ */
.band{background:var(--lime);border-top:2px solid var(--pine);border-bottom:2px solid var(--pine);padding:clamp(64px,9vw,100px) 0}
.band-in{display:flex;justify-content:space-between;align-items:center;gap:36px;flex-wrap:wrap}
.band h2{font-size:clamp(2rem,4.4vw,3.4rem);max-width:18ch;color:var(--pine)}
.band .mono-note{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(14,45,32,.75);margin-top:18px;display:block}
.band-ctas{display:grid;gap:14px}
/* ============ FOOTER ============ */
footer{background:var(--pine-d);color:var(--paper);padding:clamp(64px,8vw,96px) 0 0}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.3fr;gap:clamp(26px,4vw,50px);padding-bottom:60px;border-bottom:1px solid var(--line-d)}
.foot-brand p{font-size:14.5px;color:rgba(243,239,228,.7);margin:20px 0 24px;max-width:34ch}
.foot-grid h4{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--lime);margin-bottom:20px;font-weight:600}
.foot-grid ul{list-style:none;display:grid;gap:11px}
.foot-grid ul a{font-size:14.5px;color:rgba(243,239,228,.78);transition:.2s}
.foot-grid ul a:hover{color:var(--lime);padding-left:6px}
address{font-style:normal;font-size:14.5px;line-height:1.9;color:rgba(243,239,228,.78)}
address b{color:var(--paper)}
.news-form{display:flex;margin-top:6px;border:1.5px solid var(--line-d);border-radius:999px;overflow:hidden}
.news-form input{flex:1;background:transparent;border:none;padding:13px 18px;color:var(--paper);font-size:14px;min-width:0}
.news-form input::placeholder{color:rgba(243,239,228,.45)}
.news-form input:focus{outline:none}
.news-form button{background:var(--lime);color:var(--pine);font-weight:600;padding:0 20px;font-size:14px;transition:.2s}
.news-form button:hover{background:var(--paper)}
.news-note{font-family:var(--mono);font-size:10.5px;color:rgba(243,239,228,.45);margin-top:12px;letter-spacing:.06em}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{width:40px;height:40px;border:1.5px solid var(--line-d);border-radius:50%;display:grid;place-items:center;transition:.25s}
.socials a:hover{background:var(--lime);border-color:var(--lime)}
.socials a:hover svg{fill:var(--pine)}
.socials svg{fill:var(--paper);width:16px;height:16px;transition:.25s}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px 30px;flex-wrap:wrap;padding:26px 0;font-size:13px;color:rgba(243,239,228,.55)}
.foot-bottom nav{display:flex;gap:22px;flex-wrap:wrap}
.foot-bottom a:hover{color:var(--lime)}
.coords{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-align:center;padding:16px 0;border-top:1px solid var(--line-d);color:rgba(243,239,228,.4)}
/* toast */
.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,80px);background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:13px;padding:15px 26px;border-radius:12px;border:1px solid rgba(214,241,84,.4);z-index:400;opacity:0;transition:transform .45s var(--ease),opacity .45s;max-width:min(480px,90vw);text-align:center}
.toast.show{transform:translate(-50%,0);opacity:1}
.toast b{color:var(--lime);font-weight:500}
/* ============ RESPONSIVE ============ */
@media (max-width:1040px){
.nav-links{display:none}
.burger{display:flex}
.hero-grid{grid-template-columns:1fr}
.hero-copy,.hero-visual{grid-column:span 12}
.hero-visual{max-width:520px;margin-top:26px}
.vitals{left:-10px;bottom:-30px}
.pillar{grid-template-columns:52px 1fr;gap:14px}
.p-tags{display:none}
.prog-feat{grid-column:span 12}
.stack{grid-column:span 12;grid-template-columns:1fr 1fr}
.prog-third{grid-column:span 6}
.calc-grid,.nut-grid,.mind-grid,.faq-grid{grid-template-columns:1fr}
.faq-aside{position:static}
.prov-grid{grid-template-columns:1fr 1fr}
.week-grid{grid-template-columns:1fr}
.story-row{grid-template-columns:1fr;max-width:560px;margin:0 auto}
.story.r2,.story.r3{transform:rotate(1deg)}
.foot-grid{grid-template-columns:1fr 1fr}
.sec-head{grid-template-columns:1fr}
}
@media (max-width:640px){
.topbar .hide-s{display:none}
.stack{grid-template-columns:1fr}
.prog-third{grid-column:span 12}
.prov-grid{grid-template-columns:1fr}
.res-row{grid-template-columns:1fr}
.f-grid{grid-template-columns:1fr}
.field.full,.calc-go{grid-column:span 1}
.foot-grid{grid-template-columns:1fr}
.nut-sub{right:0}
.float-badge{right:0}
.band-in{flex-direction:column;align-items:flex-start}
}
/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
.rv,.lm>span{opacity:1!important;transform:none!important}
.ticker{overflow-x:auto}
.ticker-track{animation:none;width:auto}
}
</style>
</head>
<body>
<a class="skip" href="#main">Skip to main content</a>
<!-- ================= HEADER ================= -->
<header>
<div class="topbar">
<div class="wrap topbar-in">
<span><i class="pulse-dot"></i>Clinical precision. Everyday vitality.</span>
<span class="hide-s">Mon–Sat 6a–9p · Telehealth 24/7</span>
<a href="tel:+13125550148">Nurse line: (312) 555-0148</a>
</div>
</div>
<nav class="site-nav" aria-label="Primary">
<div class="wrap nav-in">
<a class="brand" href="#top">
<svg width="42" height="42" viewBox="0 0 40 40" aria-hidden="true"><rect width="40" height="40" rx="10" fill="#0E3B2C"/><path d="M27 7h6v3h-3v6h-3z" fill="#F3EFE4" opacity=".9"/><polyline points="4,23 12,23 16,13 22,30 26,19 29,23 34,23" fill="none" stroke="#D6F154" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
<span class="brand-txt"><b>NorthPulse Health</b><small>INTEGRATED CARE COLLECTIVE</small></span>
</a>
<ul class="nav-links">
<li><a href="#care">Care Areas</a></li>
<li><a href="#programs">Programs</a></li>
<li><a href="#nutrition">Nutrition</a></li>
<li><a href="#mind">Mental Wellness</a></li>
<li><a href="#providers">Find Provider</a></li>
<li><a href="#week">Schedule</a></li>
<li><a class="nav-cta" href="#contact">Contact</a></li>
</ul>
<button class="burger" aria-label="Open menu" aria-expanded="false" id="burger"><span></span><span></span><span></span></button>
</div>
</nav>
</header>
<div class="mnav" id="mnav" aria-hidden="true">
<button class="mnav-close" id="mnavClose" aria-label="Close menu">×</button>
<a href="#care">Care Areas</a><a href="#programs">Programs</a><a href="#nutrition">Nutrition</a>
<a href="#mind">Mental Wellness</a><a href="#providers">Find Provider</a><a href="#week">Schedule</a><a href="#contact">Contact</a>
</div>
<main id="main">
<!-- ================= HERO ================= -->
<section class="hero" id="top">
<div class="wrap">
<div class="hero-grid">
<div class="hero-copy rv in">
<span class="kick">Integrated health system · Chicago · Est. 2011</span>
<h1>
<span class="lm"><span>Whole-body medicine</span></span>
<span class="lm"><span>for people</span></span>
<span class="lm"><span class="accent">in motion.</span></span>
</h1>
<p class="lede">NorthPulse pairs board-certified physicians and registered dietitians with strength coaches, physiotherapists and behavioral specialists — so your labs, your training and your mind are treated as one system, not three waiting rooms.</p>
<div class="cta-row">
<a href="#calculator" class="btn btn-lime">Start your wellness plan
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
<a href="#week" class="btn btn-ghost">View class schedule</a>
</div>
<div class="hero-stats">
<div class="hstat"><b><span data-count="42800" data-suffix="+">0</span></b><span>Patients guided</span></div>
<div class="hstat"><b><span data-count="14">0</span></b><span>Midwest clinics</span></div>
<div class="hstat"><b><span data-count="96" data-suffix="%">0</span></b><span>Renew each year</span></div>
</div>
</div>
<div class="hero-visual rv in d2">
<span class="float-badge">Now enrolling — <u>GLP-1 Companion</u> medical program</span>
<div class="kb hero-photo"><img src="https://picsum.photos/seed/northpulse-training/900/1120" alt="Member completing a coached strength session in a NorthPulse performance lab" width="900" height="1120"></div>
<span class="photo-tag">Strength Lab — Halsted Campus</span>
<div class="vitals" aria-label="Live session vitals">
<div class="vitals-head"><span class="live"><i></i>Live session</span><span>Coach T. Ferreira</span></div>
<div class="vitals-main"><b id="bpm">64</b><span>BPM · ZONE 2</span></div>
<svg class="ecg" viewBox="0 0 620 80" preserveAspectRatio="none" aria-hidden="true">
<g class="ecg-grid"><line x1="0" y1="20" x2="620" y2="20"/><line x1="0" y1="44" x2="620" y2="44"/><line x1="0" y1="68" x2="620" y2="68"/></g>
<path class="ecg-line" pathLength="680" d="M0 44 H120 L132 44 L140 18 L150 68 L158 32 L164 44 H300 L312 44 L320 10 L332 72 L342 28 L348 44 H480 L490 44 L497 24 L505 60 L512 34 L517 44 H620"/>
</svg>
<div class="vitals-row"><span>SpO₂ <b>98%</b></span><span>HRV <b>64ms</b></span><span>KCAL <b>312</b></span></div>
</div>
</div>
</div>
<div class="trust rv">
<span><i></i>NCQA Patient-Centered Medical Home</span>
<span><i></i>AACVI Accredited Echo Lab</span>
<span><i></i>ACSM Exercise Is Medicine®</span>
<span><i></i>4.9 ★ — 3,100+ verified reviews</span>
</div>
</div>
</section>
<!-- ================= TICKER ================= -->
<div class="ticker" aria-hidden="true">
<div class="ticker-track" id="tickerTrack">
<span>Resting HR <b>58 bpm</b> ◆ VO₂ Max <b>46.2</b> ◆ HbA1c <b>5.1%</b> ◆ Sleep <b>7h 42m</b> ◆ RHR trend <em>▼ 6%</em> ◆ Hydration <b>2.4 L</b> ◆ LDL <b>92 mg/dL</b> ◆ Mobility score <b>82/100</b> ◆ Recovery <b>green</b> ◆ Steps <b>11,240</b> ◆</span>
</div>
</div>
<!-- ================= CARE PILLARS ================= -->
<section class="pillars" id="care">
<div class="wrap">
<div class="sec-head rv">
<div><span class="kick">The continuum of care</span>
<h2>Four disciplines.<br>One <span class="it">wellness plan.</span></h2></div>
<p class="lede">Most systems make you choose between a doctor and a coach. At NorthPulse, your physician, dietitian, physiotherapist and behavioral specialist share one chart, one goal-set and one quarterly review — with you.</p>
</div>
<div class="pillar rv">
<span class="p-num">01</span>
<div><h3>Primary & Preventive Medicine</h3>
<p>Annual physicals built around your data: full metabolic panels, thyroid and hormone screens, lipid fractions and inflammatory markers — reviewed against your training load, not just population ranges. Same-week appointments, results in your portal within 48 hours.</p></div>
<div class="p-tags"><span class="chip">Lab panels</span><span class="chip">Metabolic rate</span><span class="chip">Annual physicals</span></div>
<a class="p-arrow" href="#providers" aria-label="Explore primary care"><svg width="18" height="18" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
</div>
<div class="pillar rv">
<span class="p-num">02</span>
<div><h3>Nutrition Counseling</h3>
<p>Registered dietitians translate your labs into a plate: resting metabolic rate testing, continuous glucose insights, gut-health protocols and performance fueling. No detox teas, no guilt — just an evidence-based nutrition plan you can actually keep.</p></div>
<div class="p-tags"><span class="chip">RMR testing</span><span class="chip">Gut health</span><span class="chip">Sports fueling</span></div>
<a class="p-arrow" href="#nutrition" aria-label="Explore nutrition"><svg width="18" height="18" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
</div>
<div class="pillar rv">
<span class="p-num">03</span>
<div><h3>Movement & Physical Therapy</h3>
<p>From post-surgical rehab to your first pull-up: gait and movement screens, progressive strength programming, cardiac rehab phase II and return-to-sport testing — all prescribed by DPTs and certified strength coaches working from the same plan.</p></div>
<div class="p-tags"><span class="chip">Post-op rehab</span><span class="chip">Gait analysis</span><span class="chip">Strength blocks</span></div>
<a class="p-arrow" href="#programs" aria-label="Explore movement"><svg width="18" height="18" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
</div>
<div class="pillar rv">
<span class="p-num">04</span>
<div><h3>Mental Wellness & Behavioral Health</h3>
<p>Behavioral care embedded in primary care — CBT and ACT therapy, psychiatric medication management, sleep coaching and burnout recovery. Average intake within 48 hours, and $0 copay with most insurance plans.</p></div>
<div class="p-tags"><span class="chip">CBT / ACT</span><span class="chip">Psychiatry</span><span class="chip">Sleep coaching</span></div>
<a class="p-arrow" href="#mind" aria-label="Explore mental wellness"><svg width="18" height="18" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
</div>
</div>
</section>
<!-- ================= PROGRAMS ================= -->
<section class="programs" id="programs">
<div class="wrap">
<div class="sec-head rv">
<div><span class="kick">Signature programs</span>
<h2>Built like prescriptions.<br>Run like <span class="it">training blocks.</span></h2></div>
<p class="lede">Every program is clinician-designed, cohort-based and measured: baseline labs in week one, progress check every two weeks, outcomes report at the end.</p>
</div>
<div class="prog-grid">
<article class="pcard prog-feat rv">
<div class="kb"><img src="https://picsum.photos/seed/northpulse-metabolic/1000/620" alt="Dietitian reviewing metabolic results with a member" width="1000" height="620"></div>
<div class="inner">
<span class="chip tag-lime">Flagship · 12 weeks</span>
<h3>The Metabolic Reset</h3>
<p>Our most-prescribed program. Twelve weeks of paired physician and dietitian care targeting insulin sensitivity, resting metabolic rate and body composition. Includes RMR and VO₂ testing, quarterly bloodwork, weekly coaching calls and a progressive training plan calibrated to your labs — not a template. 87% of graduates report measurable improvements in energy and HbA1c.</p>
<div class="p-meta"><span>Duration<b>12 weeks</b></span><span>Cadence<b>2× coaching / wk</b></span><span>Format<b>In-person + app</b></span></div>
<div class="p-foot"><span class="price">$449<small>or $149/mo for members</small></span>
<button class="btn btn-pine btn-sm" data-toast="✓ <b>Metabolic Reset</b> — you're on the waitlist. Care team will call within 2 business hours.">Join Program</button></div>
</div>
</article>
<div class="stack">
<article class="pcard rv d1">
<span class="chip tag-sage">Foundations · 8 weeks</span>
<h3>Strength Foundations</h3>
<p>Zero-to-barbell for absolute beginners and returning lifters. Small cohorts of six, DPT-screened movement baselines, and progressive overload written into your app each week.</p>
<div class="p-foot"><span class="price">$289<small>equipment included</small></span>
<button class="btn btn-ghost btn-sm" data-toast="✓ <b>Strength Foundations</b> — next cohort starts Monday. See class schedule below.">Join Program</button></div>
</article>
<article class="pcard rv d2">
<span class="chip tag-clay">Clinical · 6 weeks</span>
<h3>Sleep & Recovery Lab</h3>
<p>CBT-I based insomnia protocol plus wearable sleep-stage tracking, circadian timing consults and recovery nutrition. Average participant gains 68 minutes of sleep per night.</p>
<div class="p-foot"><span class="price">$329<small>telehealth available</small></span>
<button class="btn btn-ghost btn-sm" data-toast="✓ <b>Sleep Lab</b> — intake scheduled. Check your inbox for the sleep diary.">Join Program</button></div>
</article>
</div>
<article class="pcard prog-third rv">
<span class="chip tag-outline">Clinical · Phase II</span>
<h3>Heart Strong</h3>
<p>Supervised cardiac rehabilitation post-event or post-procedure: telemetry-monitored conditioning, lipid and blood-pressure management, and family education sessions — referred by cardiologists across the Midwest.</p>
<div class="p-foot"><button class="btn btn-ghost btn-sm" data-toast="✓ <b>Heart Strong</b> — we'll request a referral from your cardiologist.">Start Trial</button></div>
</article>
<article class="pcard prog-third c2 rv d1">
<span class="chip tag-outline">Life-stage · Rolling</span>
<h3>Prenatal & Postpartum Track</h3>
<p>Trimester-specific strength and pelvic-floor programming, nutrition for two (correctly), and a return-to-running protocol cleared by your OB. Babies welcome in Thursday sessions.</p>
<div class="p-foot"><button class="btn btn-ghost btn-sm" data-toast="✓ <b>Prenatal Track</b> — our OB liaison will confirm your trimester plan.">Join Program</button></div>
</article>
<article class="pcard prog-third c3 rv d2">
<span class="chip tag-outline">New · Ongoing</span>
<h3>GLP-1 Companion</h3>
<p>Medical support for members on GLP-1 therapy: lean-mass preservation training, protein-first nutrition plans, side-effect monitoring and dose coordination with your prescriber.</p>
<div class="p-foot"><button class="btn btn-ghost btn-sm" data-toast="✓ <b>GLP-1 Companion</b> — a nurse will confirm your current prescription.">Start Trial</button></div>
</article>
</div>
</div>
</section>
<!-- ================= CALCULATOR ================= -->
<section class="calc on-dark" id="calculator">
<div class="wrap">
<div class="calc-grid">
<div class="rv">
<span class="kick">The energy lab</span>
<h2>Know your numbers before you change your <span class="it">plate.</span></h2>
<p class="lede">Durable results start with a baseline. This tool estimates your resting metabolic rate, daily energy expenditure, calorie target and macro split using the Mifflin-St Jeor equation — the same method our dietitians use in-clinic before refining it with real RMR testing.</p>
<p class="calc-note">FOR EDUCATIONAL USE. Results are estimates and not a diagnosis. If you manage diabetes, cardiovascular disease, or are pregnant, book a consult before changing intake. — NorthPulse Clinical Team</p>
</div>
<div class="panel rv d2">
<div class="panel-head"><span>Protocol NR-04 · Energy Expenditure</span><i></i></div>
<form class="f-grid" id="calcForm">
<div class="field"><label>Biological sex</label>
<div class="seg" role="group" aria-label="Biological sex">
<button type="button" class="on" data-sex="m">Male</button>
<button type="button" data-sex="f">Female</button>
</div></div>
<div class="field"><label for="age">Age (years)</label><input id="age" type="number" min="16" max="90" value="34" required></div>
<div class="field"><label for="height">Height (cm)</label><input id="height" type="number" min="120" max="230" value="175" required></div>
<div class="field"><label for="weight">Weight (kg)</label><input id="weight" type="number" min="35" max="250" value="74" step="0.5" required></div>
<div class="field full"><label for="activity">Activity level</label>
<select id="activity">
<option value="1.2">Sedentary — desk days, light walking</option>
<option value="1.375">Light — training 1–3× / week</option>
<option value="1.55" selected>Moderate — training 3–5× / week</option>
<option value="1.725">Very active — training 6–7× / week</option>
<option value="1.9">Athlete — twice daily sessions / physical job</option>
</select></div>
<div class="field full"><label for="goal">Primary goal</label>
<select id="goal">
<option value="cut">Fat loss — steady ~0.5 kg / week</option>
<option value="maintain" selected>Maintain — performance & health</option>
<option value="build">Lean gain — muscle first</option>
</select></div>
<button class="btn btn-lime calc-go" type="submit">Calculate my targets
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></button>
</form>
<div class="results" id="results">
<div class="res-hero">
<div><small>Daily calorie target</small><b><span id="rCal">2,420</span><sub> kcal</sub></b></div>
<span class="bmi-badge" id="rBmiBadge">BMI 24.2 · Healthy</span>
</div>
<div class="res-row">
<div class="res-cell"><small>BMR (Mifflin-St Jeor)</small><b id="rBmr">1,688</b> <span>kcal</span></div>
<div class="res-cell"><small>TDEE (maintenance)</small><b id="rTdee">2,616</b> <span>kcal</span></div>
<div class="res-cell"><small>Protein target</small><b id="rPro">148</b> <span>g / day</span></div>
</div>
<div class="macro-line" aria-hidden="true"><i class="m-p" id="mP" style="width:30%"></i><i class="m-c" id="mC" style="width:45%"></i><i class="m-f" id="mF" style="width:25%"></i></div>
<div class="macro-key"><span><i style="background:var(--clay)"></i>Protein <b id="kP">30%</b></span><span><i style="background:var(--lime)"></i>Carbs <b id="kC">45%</b></span><span><i style="background:var(--sage)"></i>Fats <b id="kF">25%</b></span></div>
<div class="bmi-scale" aria-hidden="true"><span class="bmi-pin" id="bmiPin"></span></div>
<div class="bmi-labels"><span>15</span><span>18.5</span><span>25</span><span>30</span><span>40</span></div>
<p class="res-hint" id="rHint">Maintain-weight plan. To refine this with real metabolic testing, RMR breath analysis and a dietitian-built plate framework, book a Nutrition consult.</p>
<div style="margin-top:18px"><a href="#nutrition" class="btn btn-pine btn-sm">Book a Nutrition consult</a></div>
</div>
</div>
</div>
</div>
</section>
<!-- ================= NUTRITION ================= -->
<section class="nutrition" id="nutrition">
<div class="wrap">
<div class="nut-grid">
<div class="nut-imgs rv">
<div class="kb"><img src="https://picsum.photos/seed/northpulse-nutrition-plate/840/980" alt="Colourful whole-food plate prepared by a NorthPulse dietitian" width="840" height="980"></div>
<div class="nut-sub"><img src="https://picsum.photos/seed/northpulse-market/460/340" alt="Fresh produce selection at a weekly nutrition workshop" width="460" height="340"></div>
<div class="rd-badge"><small>Clinical team</small>9 registered dietitians<br>on staff</div>
</div>
<div>
<div class="rv"><span class="kick">The Nutrition Desk</span>
<h2>Food is data.<br>We read it <span class="it">with you.</span></h2>
<p class="lede" style="margin-top:20px">Our dietitians don't hand out meal plans and disappear. They work your triglycerides, glucose response, ferritin and gut symptoms into a framework — then iterate it every four weeks against what's actually on your dinner table. Medical nutrition therapy for diabetes, IBS, celiac, renal health and performance goals, all charted alongside your physician.</p>
</div>
<article class="article rv">
<img src="https://picsum.photos/seed/northpulse-protein/300/220" alt="High-protein meal prep containers" width="300" height="220">
<div><span class="a-meta">Performance</span><h4>Protein timing is overrated. Total intake isn't.</h4><p>Our sports RD breaks down why the "anabolic window" keeps shrinking — and what 1.6–2.2 g/kg actually looks like on a plate.</p></div>
<div style="display:grid;gap:10px;justify-items:end"><span class="a-time">6 min read</span><span class="go"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></span></div>
</article>
<article class="article rv">
<img src="https://picsum.photos/seed/northpulse-labs/300/220" alt="Clinician pointing at a lipid panel report" width="300" height="220">
<div><span class="a-meta">Clinical</span><h4>Reading a lipid panel without panicking</h4><p>LDL, ApoB, triglyceride-to-HDL ratio — a cardiologist explains which numbers deserve action and which deserve a re-test.</p></div>
<div style="display:grid;gap:10px;justify-items:end"><span class="a-time">8 min read</span><span class="go"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></span></div>
</article>
<article class="article rv">
<img src="https://picsum.photos/seed/northpulse-dinner/300/220" alt="Family dinner built with the 80/20 plate method" width="300" height="220">
<div><span class="a-meta">Everyday</span><h4>The 80/20 plate: a dietitian's framework for real dinners</h4><p>Structure without restriction — how our most-successful members hit fiber and protein goals while still eating tacos on Friday.</p></div>
<div style="display:grid;gap:10px;justify-items:end"><span class="a-time">5 min read</span><span class="go"><svg width="14" height="14" viewBox="0 0 16 16" fill="none"><path d="M2 8h11M9 3.5 13.5 8 9 12.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"/></svg></span></div>
</article>
<div class="nut-actions rv">
<button class="btn btn-pine" data-toast="✓ Consult requested — a dietitian will confirm your slot within 24 hours.">Book a nutrition consult</button>
<span class="mini">↳ Most insurance accepted · $0 copay plans common</span>
</div>
</div>
</div>
</div>
</section>
<!-- ================= PROVIDERS ================= -->
<section class="providers" id="providers">
<div class="wrap">
<div class="sec-head rv">
<div><span class="kick">Find a provider</span>
<h2>240 clinicians.<br>Start with <span class="it">these six.</span></h2></div>
<p class="lede">Every clinician below is accepting new patients this week. Filter by specialty, compare next availability, and book directly — no phone tree.</p>
</div>
<div class="filters rv" role="group" aria-label="Filter providers by specialty">
<button class="fchip on" data-filter="all">All specialties</button>
<button class="fchip" data-filter="primary">Primary Care</button>
<button class="fchip" data-filter="cardiology">Cardiology</button>
<button class="fchip" data-filter="nutrition">Nutrition</button>
<button class="fchip" data-filter="pt">Physical Therapy</button>
<button class="fchip" data-filter="mental">Mental Health</button>
<button class="fchip" data-filter="sports">Sports Medicine</button>
</div>
<p class="f-count" id="fCount">Showing 6 of 6 providers</p>
<div class="prov-grid" id="provGrid">
<article class="prov rv" data-spec="primary">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-osei" alt="Portrait of Dr. Amara Osei" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Dr. Amara Osei, MD</h3><span class="role">Primary Care · FACP</span></div>
<p>Preventive medicine with a metabolic lens. Annual physicals that read like a coaching report, not a bill.</p>
<div class="prov-foot"><span class="next-av">Today · 3:40 PM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Dr. Osei</b> — confirmation within 2 hours.">Book</button></div>
</article>
<article class="prov rv d1" data-spec="cardiology">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-reyes" alt="Portrait of Dr. Daniel Reyes" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Dr. Daniel Reyes, MD</h3><span class="role">Cardiology · FACC</span></div>
<p>Sports cardiology and lipid clinics. Runs the Heart Strong rehab program and our VO₂ testing lab.</p>
<div class="prov-foot"><span class="next-av">Tomorrow · 9:15 AM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Dr. Reyes</b> — confirmation within 2 hours.">Book</button></div>
</article>
<article class="prov rv d2" data-spec="nutrition">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-lindqvist" alt="Portrait of Maya Lindqvist" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Maya Lindqvist, RD, CDCES</h3><span class="role">Nutrition · Diabetes Care</span></div>
<p>Diabetes reversal protocols and GLP-1 nutrition. Built our 80/20 plate framework used by 6,000+ members.</p>
<div class="prov-foot"><span class="next-av">Today · 5:00 PM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Maya Lindqvist</b> — confirmation within 2 hours.">Book</button></div>
</article>
<article class="prov" data-spec="pt">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-ferreira" alt="Portrait of Tomás Ferreira" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Tomás Ferreira, DPT</h3><span class="role">Physical Therapy · OCS</span></div>
<p>Post-op knees, shoulders and spines back to full load. Leads Strength Foundations and the mobility lab.</p>
<div class="prov-foot"><span class="next-av">Thu · 8:30 AM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Tomás Ferreira</b> — confirmation within 2 hours.">Book</button></div>
</article>
<article class="prov" data-spec="mental">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-klein" alt="Portrait of Dr. Sarah Klein" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Dr. Sarah Klein, PsyD</h3><span class="role">Behavioral Health · CBT-I</span></div>
<p>Anxiety, burnout and insomnia. Runs the Sleep & Recovery Lab; evening telehealth slots available.</p>
<div class="prov-foot"><span class="next-av">Tonight · 7:20 PM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Dr. Klein</b> — confirmation within 2 hours.">Book</button></div>
</article>
<article class="prov" data-spec="sports">
<div class="prov-top"><img src="https://i.pravatar.cc/128?u=np-boateng" alt="Portrait of Jordan Boateng" width="64" height="64"><span class="open-dot"><i></i>Accepting new</span></div>
<div><h3>Jordan Boateng, CSCS</h3><span class="role">Sports Performance</span></div>
<p>Return-to-sport testing and endurance programming. Coaches Zone 2 Run Club and Saturday Community WOD.</p>
<div class="prov-foot"><span class="next-av">Fri · 7:00 AM</span><button class="btn btn-pine btn-sm" data-toast="✓ Booking request sent to <b>Jordan Boateng</b> — confirmation within 2 hours.">Book</button></div>
</article>
</div>
</div>
</section>
<!-- ================= MENTAL WELLNESS ================= -->
<section class="mind on-dark" id="mind">
<div class="wrap">
<div class="mind-grid">
<div class="rv">
<span class="kick">Mental wellness</span>
<h2>Strong minds <span class="it">recover faster.</span></h2>
<p class="lede">Behavioral health is embedded in every NorthPulse plan, because stress hormones don't respect department boundaries. Therapy, psychiatry and sleep medicine sit in the same building as your physician — same chart, same goals, no referrals required.</p>
<ul class="mind-list">
<li><span><b>CBT & ACT therapy</b> — individual, couples and adolescent tracks</span></li>
<li><span><b>Psychiatric medication management</b> with quarterly metabolic review</span></li>
<li><span><b>CBT-I sleep coaching</b> — the gold-standard insomnia protocol</span></li>
<li><span><b>Burnout & grief programs</b> including employer EAP partnerships</span></li>
</ul>
<div class="mind-stats">
<div><b>48h</b><span>Average intake wait</span></div>
<div><b>$0</b><span>Copay w/ most plans</span></div>
<div><b>31</b><span>Licensed specialists</span></div>
</div>
</div>
<div class="rv d2">
<div class="breath-card" id="breathCard">
<h3>The 60-second reset</h3>
<p>Box breathing lowers heart rate and cortisol in real time — our behavioral team teaches it before every first visit. Try three rounds.</p>
<div class="breath-stage">
<span class="breath-ring" aria-hidden="true"></span>
<div class="breath-orb" id="orb"></div>
</div>
<p class="breath-phase" id="phase" aria-live="polite">Ready when you are</p>
<p class="breath-count" id="breathCount">3 rounds remaining</p>
<button class="btn btn-pine" id="breathBtn">Begin the reset</button>
</div>
</div>
</div>
</div>
</section>
<!-- ================= THIS WEEK ================= -->
<section class="week" id="week">
<div class="wrap">
<div class="sec-head rv">
<div><span class="kick">Movement studio</span>
<h2>This week<br>on the <span class="it">floor.</span></h2></div>
<p class="lede">Coached classes are capped, screened and scaled. Members book free; drop-ins $18 — every session includes warm-up, coaching and recovery cooldown.</p>
</div>
<div class="week-grid">
<div class="sched-card rv">
<div class="sched-head"><span>Week of Mar 10 – Halsted Campus</span><span>● 6 studios live</span></div>
<div class="tbl-wrap">
<table>
<thead><tr><th>Time</th><th>Class</th><th>Room</th><th>Spots</th></tr></thead>
<tbody>
<tr><td class="t-time">MON 6:00a</td><td><span class="cls">Kettlebell Foundations</span><span class="coach">T. Ferreira, DPT</span></td><td>Studio A</td><td><span class="spots low"><i></i>2 left</span></td></tr>
<tr><td class="t-time">MON 12:15p</td><td><span class="cls">Lunchtime Mobility</span><span class="coach">J. Boateng, CSCS</span></td><td>Studio B</td><td><span class="spots ok"><i></i>9 left</span></td></tr>
<tr><td class="t-time">TUE 7:00a</td><td><span class="cls">Zone 2 Run Club</span><span class="coach">Riverfront track</span></td><td>Off-site</td><td><span class="spots ok"><i></i>14 left</span></td></tr>
<tr><td class="t-time">WED 6:00p</td><td><span class="cls">Strength I — Barbell Basics</span><span class="coach">Coach panel of 2</span></td><td>Strength Lab</td><td><span class="spots low"><i></i>3 left</span></td></tr>
<tr><td class="t-time">THU 8:00a</td><td><span class="cls">Prenatal Flow</span><span class="coach">L. Nakamura, RYT-500</span></td><td>Studio C</td><td><span class="spots ok"><i></i>7 left</span></td></tr>
<tr><td class="t-time">FRI 5:30p</td><td><span class="cls">Rowing Intervals</span><span class="coach">J. Boateng, CSCS</span></td><td>Erg Room</td><td><span class="spots low"><i></i>1 left</span></td></tr>
<tr><td class="t-time">SAT 9:00a</td><td><span class="cls">Community WOD</span><span class="coach">Members free · families welcome</span></td><td>Main Floor</td><td><span class="spots ok"><i></i>22 left</span></td></tr>
</tbody>
</table>
</div>
<div class="sched-foot">
<p>Waitlists auto-fill cancellations. Heart-rate monitored classes require a front-desk waiver.</p>
<div style="display:flex;gap:10px;flex-wrap:wrap">
<button class="btn btn-ghost btn-sm" data-toast="✓ Full weekly PDF sent to your inbox — 34 classes across 3 campuses.">View full schedule</button>
<button class="btn btn-pine btn-sm" data-toast="✓ Spot reserved! Confirmation and waiver link emailed.">Reserve a spot</button>
</div>
</div>
</div>
<div class="side-stack">
<div class="challenge rv d1">
<span class="chip">Monthly challenge</span>
<h3>Mobility March — 30 days</h3>
<p>A 10-minute daily joint protocol delivered to your inbox each morning. Streak board in the lobby, physio check-in at day 15, and a free RMR test for the longest streak.</p>
<div class="streak" aria-label="Streak progress: 12 of 30 days complete">
<i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i class="fill"></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i>
</div>
<button class="btn btn-pine btn-sm" data-toast="✓ You're in! Day 13's mobility flow lands at 6:00 AM tomorrow.">Join the challenge</button>
</div>
<div class="coach-card rv d2">
<img src="https://picsum.photos/seed/northpulse-coach/560/420" alt="Coach Jordan Boateng leading a rowing session" width="560" height="420">
<div><small>Coach spotlight</small><b>Jordan Boateng, CSCS</b>
<p>"We don't chase soreness. We chase a resting heart rate that keeps dropping and knees that still work at 70."</p></div>
</div>
</div>
</div>
</div>
</section>
<!-- ================= TESTIMONIALS ================= -->
<section class="stories" id="stories">
<div class="wrap">
<div class="sec-head rv">
<div><span class="kick">Member outcomes</span>
<h2>Receipts, not<br><span class="it">resolutions.</span></h2></div>
<p class="lede">Every outcome below is drawn from a member's own chart summary — shared with permission, measured in the same labs that set their baseline.</p>
</div>
<div class="story-row">
<article class="story r1 rv">
<span class="q">"</span>
<blockquote>I came in pre-diabetic and skeptical of anything that smelled like a gym. Nine months later my endocrinologist asked what changed. The dietitian never once made me feel ashamed of food — she just rebuilt my week around it.</blockquote>
<div class="story-who"><img src="https://i.pravatar.cc/96?u=np-priya" alt="" width="46" height="46"><span><b>Priya S., 41</b><span>Metabolic Reset · Lincoln Park</span></span></div>
<span class="metric">HbA1c 6.1% → 5.4% · −9 kg</span>
</article>
<article class="story r2 rv d1">
<span class="q">"</span>
<blockquote>After ACL reconstruction I was told 'six months, maybe.' Tomás screened me weekly, my surgeon got the same progress notes I did, and I crossed the finish of the Chicago Marathon eleven months post-op. Not as a survivor — as a competitor.</blockquote>
<div class="story-who"><img src="https://i.pravatar.cc/96?u=np-marcus" alt="" width="46" height="46"><span><b>Marcus T., 33</b><span>Physical Therapy → Strength Foundations</span></span></div>
<span class="metric">Return-to-run in 21 weeks · 3:41 marathon</span>
</article>
<article class="story r3 rv d2">
<span class="q">"</span>
<blockquote>The GLP-1 Companion program is the reason I kept my muscle while losing weight. Strength twice a week, protein targets from Maya, and a physician watching my labs the whole way. Nobody else offered that — not even close.</blockquote>
<div class="story-who"><img src="https://i.pravatar.cc/96?u=np-elena" alt="" width="46" height="46"><span><b>Elena R., 52</b><span>GLP-1 Companion · Telehealth + Halsted</span></span></div>
<span class="metric">−14 kg · lean mass preserved +0.8 kg</span>
</article>
</div>
</div>
</section>
<!-- ================= FAQ ================= -->
<section class="faq" id="faq">
<div class="wrap">
<div class="faq-grid">
<div class="faq-aside rv">
<span class="kick">Good questions</span>
<h2>Asked before<br>every <span class="it">first visit.</span></h2>
<p class="lede">Still unsure about something? Call the concierge line at (312) 555-0148 — a human answers within two rings, seven days a week.</p>
<div style="margin-top:28px"><a href="#contact" class="btn btn-pine">Ask us directly</a></div>
</div>
<div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q01</span><h3>Do you accept insurance?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>Yes — NorthPulse is in-network with BCBS IL, Aetna, UnitedHealthcare, Cigna and most Medicare Advantage plans, covering roughly 92% of Chicago-area members. Primary visits, labs, dietitian consults and behavioral health are typically covered; our financial counselors verify your exact benefits before your first appointment, so there are never surprise bills.</p></div></div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q02</span><h3>What happens at a first visit?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>Sixty unhurried minutes. Your clinician reviews history, goals and any outside records, takes baseline vitals and body-composition data, and orders labs if warranted. You leave with a written 90-day wellness plan — not a to-do list of vague advice — and a named care coordinator to book follow-ups with your dietitian, PT or therapist.</p></div></div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q03</span><h3>Is telehealth available?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>All behavioral health, nutrition counseling, medication follow-ups and lab-result reviews are offered by secure video, 24/7, across Illinois, Wisconsin and Indiana. Physical assessments and diagnostics happen in-clinic; our app syncs wearable data so remote visits are informed ones.</p></div></div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q04</span><h3>How soon will I notice results?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>Honestly: sleep and energy usually shift within two to three weeks; strength and resting heart rate within six to eight; measurable changes in BMI, lipids and HbA1c within one quarterly cycle. We re-test at week 12 in every program, so progress is a number in your chart — not a feeling you're asked to trust.</p></div></div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q05</span><h3>What does membership cost?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>There's no membership requirement to receive clinical care — insurance or cash-pay visits stand on their own. The optional Pulse Membership ($79/month) adds unlimited studio classes, quarterly body-composition scans, priority booking and member pricing on all programs. Cancel anytime, no annual lock-in.</p></div></div>
<div class="faq-item rv"><button class="faq-q" aria-expanded="false"><span class="idx">Q06</span><h3>How is my health data protected?</h3><span class="plus">+</span></button>
<div class="faq-a"><p>Every record lives in a HIPAA-compliant, SOC 2-audited EHR with role-based access; wearable data is encrypted end-to-end and never sold or used for advertising — contractually. You can export or delete your data at any time through the patient portal.</p></div></div>
</div>
</div>
</div>
</section>
<!-- ================= CTA BAND ================= -->
<section class="band">
<div class="wrap band-in rv">
<div>
<h2>Your first visit is a conversation, not a checklist.</h2>
<span class="mono-note">Same-week appointments · Most insurance accepted · 14 Midwest locations</span>
</div>
<div class="band-ctas">
<button class="btn btn-pine" data-toast="✓ Booking started — pick a campus and we'll hold 60 minutes for you.">Book your first visit</button>
<button class="btn btn-ghost" data-toast="✓ Virtual tour link sent — see the Halsted campus in 3 minutes.">Tour a clinic</button>
</div>
</div>
</section>
</main>
<!-- ================= FOOTER ================= -->
<footer id="contact">
<div class="wrap">
<div class="foot-grid">
<div class="foot-brand">
<a class="brand" href="#top">
<svg width="42" height="42" viewBox="0 0 40 40" aria-hidden="true"><rect width="40" height="40" rx="10" fill="#D6F154"/><polyline points="4,23 12,23 16,13 22,30 26,19 29,23 34,23" fill="none" stroke="#0E3B2C" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
<span class="brand-txt" style="color:var(--paper)"><b>NorthPulse Health</b><small style="color:rgba(243,239,228,.55)">INTEGRATED CARE COLLECTIVE</small></span>
</a>
<p>Physicians, dietitians, therapists and coaches sharing one chart and one goal: the strongest version of your next decade.</p>
<label for="newsEmail" style="font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--lime)">The Pulse — monthly letter</label>
<form class="news-form" id="newsForm">
<input id="newsEmail" type="email" placeholder="you@example.com" required aria-label="Email address">
<button type="submit">Join</button>
</form>
<p class="news-note">One email/month. Zero fad diets. Unsubscribe anytime.</p>
</div>
<div>
<h4>Explore</h4>
<ul><li><a href="#care">Care areas</a></li><li><a href="#programs">Programs</a></li><li><a href="#calculator">Energy calculator</a></li><li><a href="#week">Class schedule</a></li><li><a href="#stories">Member outcomes</a></li><li><a href="#faq">FAQ</a></li></ul>
</div>
<div>
<h4>Care</h4>
<ul><li><a href="#providers">Find a provider</a></li><li><a href="#nutrition">Nutrition counseling</a></li><li><a href="#mind">Mental wellness</a></li><li><a href="#programs">Cardiac rehab</a></li><li><a href="#programs">GLP-1 companion</a></li><li><a href="#providers">Telehealth 24/7</a></li></ul>
</div>
<div>
<h4>Resources</h4>
<ul><li><a href="#" data-toast="✓ Patient portal — secure sign-in would open here.">Patient portal</a></li><li><a href="#" data-toast="✓ Insurance & billing guide — PDF sent to your inbox.">Insurance & billing</a></li><li><a href="#" data-toast="✓ New-patient forms downloaded.">New-patient forms</a></li><li><a href="#" data-toast="✓ Careers page — 12 open clinical roles.">Careers</a></li><li><a href="#" data-toast="✓ Referring provider fax line: (312) 555-0149.">For referring MDs</a></li></ul>
</div>
<div>
<h4>Contact</h4>
<address>
<b>Halsted Flagship Campus</b><br>
480 N. Halsted Street, Suite 900<br>Chicago, IL 60642<br><br>
<a href="tel:+13125550148">Concierge: (312) 555-0148</a><br>
<a href="mailto:care@northpulse.health">care@northpulse.health</a><br><br>
Mon–Fri 6a–9p · Sat 8a–4p<br>Nurse line & telehealth: 24/7
</address>
<div class="socials">
<a href="#" aria-label="Instagram" data-toast="✓ @northpulse.health — 48k followers."><svg viewBox="0 0 24 24"><path d="M12 2.2c3.2 0 3.6 0 4.9.1 3.3.1 4.8 1.7 4.9 4.9.1 1.3.1 1.6.1 4.8s0 3.6-.1 4.8c-.1 3.2-1.7 4.8-4.9 4.9-1.3.1-1.6.1-4.9.1s-3.6 0-4.9-.1c-3.3-.1-4.8-1.7-4.9-4.9-.1-1.3-.1-1.6-.1-4.8s0-3.6.1-4.8C2.3 4 3.9 2.4 7.1 2.3c1.3-.1 1.7-.1 4.9-.1zm0 3.7a6.1 6.1 0 1 0 0 12.2 6.1 6.1 0 0 0 0-12.2zm0 10a4 4 0 1 1 0-7.9 4 4 0 0 1 0 7.9zm6.3-11.7a1.4 1.4 0 1 0 0 2.9 1.4 1.4 0 0 0 0-2.9z"/></svg></a>
<a href="#" aria-label="YouTube" data-toast="✓ YouTube — weekly mobility tutorials."><svg viewBox="0 0 24 24"><path d="M23 7.2s-.2-1.6-.9-2.3c-.9-.9-1.9-.9-2.3-1C16.6 3.6 12 3.6 12 3.6s-4.6 0-7.8.3c-.4.1-1.4.1-2.3 1-.7.7-.9 2.3-.9 2.3S.8 9.1.8 11v1.8c0 1.9.2 3.8.2 3.8s.2 1.6.9 2.3c.9.9 2 .9 2.5 1 1.8.2 7.6.3 7.6.3s4.6 0 7.8-.4c.4-.1 1.4-.1 2.3-1 .7-.7.9-2.3.9-2.3s.2-1.9.2-3.8V11c0-1.9-.2-3.8-.2-3.8zM9.7 14.9V8.4l6.3 3.3-6.3 3.2z"/></svg></a>
<a href="#" aria-label="X" data-toast="✓ @NorthPulseHQ on X."><svg viewBox="0 0 24 24"><path d="M18.2 2.3h3.3l-7.2 8.2 8.5 11.2h-6.6l-5.2-6.8-6 6.8H1.8l7.7-8.8L1.3 2.3H8l4.7 6.2 5.5-6.2z"/></svg></a>
<a href="#" aria-label="LinkedIn" data-toast="✓ NorthPulse Health on LinkedIn — we're hiring."><svg viewBox="0 0 24 24"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3zM9 9h3.8v1.7h.1c.5-1 1.8-2 3.7-2 4 0 4.7 2.6 4.7 6V21h-4v-5.5c0-1.3 0-3-1.9-3s-2.2 1.4-2.2 2.9V21H9z"/></svg></a>
</div>
</div>
</div>
<div class="foot-bottom">
<span>© 2025 NorthPulse Health Collective. All rights reserved.</span>
<nav aria-label="Legal"><a href="#" data-toast="✓ Privacy policy — last updated Jan 2025.">Privacy</a><a href="#" data-toast="✓ Terms of service.">Terms</a><a href="#" data-toast="✓ Accessibility statement — WCAG 2.2 AA target.">Accessibility</a><a href="#" data-toast="✓ HIPAA notice of privacy practices.">HIPAA Notice</a></nav>
</div>
<p class="coords">41.8907° N, 87.6478° W — CHICAGO · MILWAUKEE · MINNEAPOLIS · DETROIT</p>
</div>
</footer>
<div class="toast" id="toast" role="status" aria-live="polite"></div>
<script>
(function(){
'use strict';
var RM = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
/* ---- header ---- */
var nav = document.querySelector('.site-nav');
window.addEventListener('scroll', function(){ nav.classList.toggle('scrolled', window.scrollY > 8); }, {passive:true});
/* ---- mobile menu ---- */
var burger=document.getElementById('burger'), mnav=document.getElementById('mnav');
function toggleMenu(open){ mnav.classList.toggle('open',open); mnav.setAttribute('aria-hidden',!open); burger.setAttribute('aria-expanded',open); document.body.style.overflow=open?'hidden':''; }
burger.addEventListener('click',function(){toggleMenu(true)});
document.getElementById('mnavClose').addEventListener('click',function(){toggleMenu(false)});
mnav.querySelectorAll('a').forEach(function(a){a.addEventListener('click',function(){toggleMenu(false)})});
/* ---- reveal on scroll ---- */
var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}})},{threshold:.14});
document.querySelectorAll('.rv').forEach(function(el){io.observe(el)});
/* ---- ticker duplicate for loop ---- */
var tt=document.getElementById('tickerTrack');
tt.innerHTML += tt.innerHTML;
/* ---- count-up ---- */
function fmt(n){return Math.round(n).toLocaleString('en-US')}
var cio=new IntersectionObserver(function(es){es.forEach(function(e){
if(!e.isIntersecting)return; cio.unobserve(e.target);
var el=e.target,end=parseFloat(el.dataset.count),suf=el.dataset.suffix||'';
if(RM){el.textContent=fmt(end)+suf;return;}
var t0=performance.now(),dur=1400;
(function tick(t){var p=Math.min((t-t0)/dur,1),ease=1-Math.pow(1-p,3);
el.textContent=fmt(end*ease)+suf; if(p<1)requestAnimationFrame(tick);})(t0);
})},{threshold:.5});
document.querySelectorAll('[data-count]').forEach(function(el){cio.observe(el)});
/* ---- bpm jitter ---- */
var bpm=document.getElementById('bpm');
if(!RM){setInterval(function(){bpm.textContent=60+Math.floor(Math.random()*13)},1900);}
/* ---- toast ---- */
var toast=document.getElementById('toast'),tTimer;
function showToast(html){toast.innerHTML=html;toast.classList.add('show');clearTimeout(tTimer);tTimer=setTimeout(function(){toast.classList.remove('show')},3200);}
document.querySelectorAll('[data-toast]').forEach(function(el){el.addEventListener('click',function(ev){ev.preventDefault();showToast(el.dataset.toast)})});
/* ---- calculator ---- */
var sex='m';
document.querySelectorAll('.seg button').forEach(function(b){b.addEventListener('click',function(){
document.querySelectorAll('.seg button').forEach(function(x){x.classList.remove('on')});
b.classList.add('on'); sex=b.dataset.sex;});});
var prev={cal:2420,bmr:1688,tdee:2616,pro:148};
function animateNum(el,from,to){
if(RM){el.textContent=fmt(to);return;}
var t0=performance.now(),dur=900;
(function tick(t){var p=Math.min((t-t0)/dur,1),e=1-Math.pow(1-p,3);
el.textContent=fmt(from+(to-from)*e); if(p<1)requestAnimationFrame(tick);})(t0);
}
document.getElementById('calcForm').addEventListener('submit',function(ev){
ev.preventDefault();
var age=Math.min(Math.max(+document.getElementById('age').value||34,16),90),
h=Math.min(Math.max(+document.getElementById('height').value||175,120),230),
w=Math.min(Math.max(+document.getElementById('weight').value||74,35),250),
act=parseFloat(document.getElementById('activity').value),
goal=document.getElementById('goal').value;
var bmr=Math.round(10*w+6.25*h-5*age+(sex==='m'?5:-161));
var tdee=Math.round(bmr*act);
var cal=goal==='cut'?Math.round(tdee*.8):goal==='build'?Math.round(tdee*1.12):tdee;
var pPct=goal==='build'?.3:goal==='cut'?.35:.28, fPct=.25, cPct=1-pPct-fPct;
var pro=Math.round(cal*pPct/4);
var bmi=w/Math.pow(h/100,2);
animateNum(document.getElementById('rCal'),prev.cal,cal);
animateNum(document.getElementById('rBmr'),prev.bmr,bmr);
animateNum(document.getElementById('rTdee'),prev.tdee,tdee);
animateNum(document.getElementById('rPro'),prev.pro,pro);
prev={cal:cal,bmr:bmr,tdee:tdee,pro:pro};
var cat=bmi<18.5?'Underweight':bmi<25?'Healthy':bmi<30?'Overweight':'Obese';
document.getElementById('rBmiBadge').textContent='BMI '+bmi.toFixed(1)+' · '+cat;
document.getElementById('bmiPin').style.left=Math.min(Math.max((bmi-15)/25*100,2),97)+'%';
document.getElementById('mP').style.width=(pPct*100)+'%';
document.getElementById('mC').style.width=(cPct*100)+'%';
document.getElementById('mF').style.width=(fPct*100)+'%';
document.getElementById('kP').textContent=Math.round(pPct*100)+'%';
document.getElementById('kC').textContent=Math.round(cPct*100)+'%';
document.getElementById('kF').textContent=Math.round(fPct*100)+'%';
var hints={cut:'Fat-loss plan: a moderate 20% deficit with elevated protein to protect lean mass. Re-assess with your care team after 6 weeks.',
maintain:'Maintain-weight plan. To refine it with real RMR breath testing and a dietitian-built plate framework, book a Nutrition consult.',
build:'Lean-gain plan: a gentle surplus with ~140 g protein baseline. Pair with Strength Foundations for supervised progressive overload.'};
document.getElementById('rHint').textContent=hints[goal];
showToast('✓ <b>Targets updated</b> — scroll the panel for macros & BMI.');
});
/* ---- provider filter ---- */
var chips=document.querySelectorAll('.fchip'),provs=document.querySelectorAll('.prov'),fCount=document.getElementById('fCount');
chips.forEach(function(c){c.addEventListener('click',function(){
chips.forEach(function(x){x.classList.remove('on')});c.classList.add('on');
var f=c.dataset.filter,n=0;
provs.forEach(function(p){var show=f==='all'||p.dataset.spec===f;p.classList.toggle('hide',!show);if(show)n++;});
fCount.textContent='Showing '+n+' of '+provs.length+' providers'+(f!=='all'?' · '+c.textContent:'');
})});
/* ---- breathing widget ---- */
var orb=document.getElementById('orb'),phase=document.getElementById('phase'),
bCount=document.getElementById('breathCount'),bBtn=document.getElementById('breathBtn'),
bTimer=null,running=false;
var PHASES=[['Inhale',4,1.72],['Hold',4,1.72],['Exhale',4,1],['Hold',4,1]];
function runRound(rounds){
var i=0;
(function step(){
if(i>=PHASES.length){
rounds--;
if(rounds<=0){endBreath('Well done — feel that?');return;}
bCount.textContent=rounds+' round'+(rounds>1?'s':'')+' remaining'; i=0;
}
var ph=PHASES[i]; phase.textContent=ph[0];
if(!RM) orb.style.transform='scale('+ph[2]+')';
i++; bTimer=setTimeout(step,ph[1]*1000);
})();
}
function endBreath(msg){
running=false; phase.textContent=msg||'Ready when you are';
bCount.textContent='3 rounds remaining';
bBtn.textContent='Begin the reset';
if(!RM) orb.style.transform='scale(1)';
}
bBtn.addEventListener('click',function(){
if(running){clearTimeout(bTimer);endBreath();return;}
running=true;bBtn.textContent='Stop';runRound(3);
});
/* ---- FAQ accordion ---- */
document.querySelectorAll('.faq-item').forEach(function(item){
var q=item.querySelector('.faq-q'),a=item.querySelector('.faq-a');
q.addEventListener('click',function(){
var open=item.classList.contains('open');
document.querySelectorAll('.faq-item.open').forEach(function(o){
o.classList.remove('open');o.querySelector('.faq-a').style.maxHeight=null;
o.querySelector('.faq-q').setAttribute('aria-expanded','false');});
if(!open){item.classList.add('open');a.style.maxHeight=a.scrollHeight+'px';q.setAttribute('aria-expanded','true');}
});
});
/* ---- newsletter ---- */
document.getElementById('newsForm').addEventListener('submit',function(ev){
ev.preventDefault();
showToast('✓ <b>Welcome to The Pulse</b> — your first letter arrives on the 1st.');
this.reset();
});
})();
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T10:00:47.769Z",
"url": "https://benchmark.aimac.invalid/51865a1bb329b8df1178f5f48e0646bfc3844c6255892f1b9d63bf9074acbfdd.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
]
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "deprecatedrole",
"data": null,
"relatedNodes": [],
"impact": "minor",
"message": "ARIA role is not deprecated"
}
],
"impact": null,
"html": "<div class=\"seg\" role=\"group\" aria-label=\"Biological sex\">\n <button type=\"button\" class=\"on\" data-sex=\"m\">Male</button>\n <button type=\"button\" data-sex=\"f\">Female</button>\n </div>",
"target": [
".seg"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": "serious",
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<svg width=\"42\" height=\"42\" viewBox=\"0 0 40 40\" aria-hidden=\"true\">",
"target": [
".nav-in > .brand[href$=\"#top\"] > svg[width=\"42\"][height=\"42\"][viewBox=\"0 0 40 40\"]"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
]
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-required-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "All required ARIA attributes are present"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"seg\" role=\"group\" aria-label=\"Biological sex\">\n <button type=\"button\" class=\"on\" data-sex=\"m\">Male</button>\n <button type=\"button\" data-sex=\"f\">Female</button>\n </div>",
"target": [
".seg"
]
}
]
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "invalidrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is valid"
},
{
"id": "abstractrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Abstract roles are not used"
},
{
"id": "unsupportedrole",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA role is supported"
}
],
"impact": null,
"html": "<div class=\"seg\" role=\"group\" aria-label=\"Biological sex\">\n <button type=\"button\" class=\"on\" data-sex=\"m\">Male</button>\n <button type=\"button\" data-sex=\"f\">Female</button>\n </div>",
"target": [
".seg"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<span class=\"brand-txt\" style=\"color:var(--paper)\"><b>NorthPulse Health</b><small style=\"color:rgba(243,239,228,.55)\">INTEGRATED CARE COLLECTIVE</small></span>",
"target": [
".foot-brand > .brand[href$=\"#top\"] > .brand-txt"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"btn btn-pine btn-sm\" data-toast=\"\u2713 <b>Metabolic Reset</b> \u2014 you're on the waitlist. Care team will call within 2 business hours.\">Join Program</button>",
"target": [
".p-foot > .btn-pine.btn-sm.btn"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1>\n <span class=\"lm\"><span>Whole-body medicine</span></span>\n <span class=\"lm\"><span>for people</span></span>\n <span class=\"lm\"><span class=\"accent\">in motion.</span></span>\n </h1>",
"target": [
"h1"
]
},
{
"html": "<h2>Four disciplines.<br>One <span class=\"it\">wellness plan.</span></h2>",
"target": [
"#care > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Primary & Preventive Medicine</h3>",
"target": [
".pillar.rv:nth-child(2) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Nutrition Counseling</h3>",
"target": [
".pillar.rv:nth-child(3) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Movement & Physical Therapy</h3>",
"target": [
".pillar.rv:nth-child(4) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Mental Wellness & Behavioral Health</h3>",
"target": [
".pillar.rv:nth-child(5) > div:nth-child(2) > h3"
]
},
{
"html": "<h2>Built like prescriptions.<br>Run like <span class=\"it\">training blocks.</span></h2>",
"target": [
"#programs > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>The Metabolic Reset</h3>",
"target": [
".inner > h3"
]
},
{
"html": "<h3>Strength Foundations</h3>",
"target": [
".stack > .d1.pcard > h3"
]
},
{
"html": "<h3>Sleep & Recovery Lab</h3>",
"target": [
".stack > .pcard.d2 > h3"
]
},
{
"html": "<h3>Heart Strong</h3>",
"target": [
".prog-third.pcard:nth-child(3) > h3"
]
},
{
"html": "<h3>Prenatal & Postpartum Track</h3>",
"target": [
".c2 > h3"
]
},
{
"html": "<h3>GLP-1 Companion</h3>",
"target": [
".c3 > h3"
]
},
{
"html": "<h2>Know your numbers before you change your <span class=\"it\">plate.</span></h2>",
"target": [
".calc-grid > .rv:nth-child(1) > h2"
]
},
{
"html": "<h2>Food is data.<br>We read it <span class=\"it\">with you.</span></h2>",
"target": [
"div:nth-child(2) > .rv:nth-child(1) > h2"
]
},
{
"html": "<h4>Protein timing is overrated. Total intake isn't.</h4>",
"target": [
".article:nth-child(2) > div:nth-child(2) > h4"
]
},
{
"html": "<h4>Reading a lipid panel without panicking</h4>",
"target": [
".article:nth-child(3) > div:nth-child(2) > h4"
]
},
{
"html": "<h4>The 80/20 plate: a dietitian's framework for real dinners</h4>",
"target": [
".article:nth-child(4) > div:nth-child(2) > h4"
]
},
{
"html": "<h2>240 clinicians.<br>Start with <span class=\"it\">these six.</span></h2>",
"target": [
"#providers > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Dr. Amara Osei, MD</h3>",
"target": [
"article[data-spec=\"primary\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Dr. Daniel Reyes, MD</h3>",
"target": [
"article[data-spec=\"cardiology\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Maya Lindqvist, RD, CDCES</h3>",
"target": [
"article[data-spec=\"nutrition\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Tom\u00e1s Ferreira, DPT</h3>",
"target": [
"article[data-spec=\"pt\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Dr. Sarah Klein, PsyD</h3>",
"target": [
"article[data-spec=\"mental\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Jordan Boateng, CSCS</h3>",
"target": [
"article[data-spec=\"sports\"] > div:nth-child(2) > h3"
]
},
{
"html": "<h2>Strong minds <span class=\"it\">recover faster.</span></h2>",
"target": [
".mind-grid > .rv:nth-child(1) > h2"
]
},
{
"html": "<h3>The 60-second reset</h3>",
"target": [
"#breathCard > h3"
]
},
{
"html": "<h2>This week<br>on the <span class=\"it\">floor.</span></h2>",
"target": [
"#week > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Mobility March \u2014 30 days</h3>",
"target": [
".challenge > h3"
]
},
{
"html": "<h2>Receipts, not<br><span class=\"it\">resolutions.</span></h2>",
"target": [
"#stories > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h2>Asked before<br>every <span class=\"it\">first visit.</span></h2>",
"target": [
".faq-aside > h2"
]
},
{
"html": "<h3>Do you accept insurance?</h3>",
"target": [
".faq-item.rv:nth-child(1) > .faq-q > h3"
]
},
{
"html": "<h3>What happens at a first visit?</h3>",
"target": [
".faq-item.rv:nth-child(2) > .faq-q > h3"
]
},
{
"html": "<h3>Is telehealth available?</h3>",
"target": [
".faq-item.rv:nth-child(3) > .faq-q > h3"
]
},
{
"html": "<h3>How soon will I notice results?</h3>",
"target": [
".faq-item.rv:nth-child(4) > .faq-q > h3"
]
},
{
"html": "<h3>What does membership cost?</h3>",
"target": [
".faq-item.rv:nth-child(5) > .faq-q > h3"
]
},
{
"html": "<h3>How is my health data protected?</h3>",
"target": [
".faq-item.rv:nth-child(6) > .faq-q > h3"
]
},
{
"html": "<h2>Your first visit is a conversation, not a checklist.</h2>",
"target": [
".band-in > div:nth-child(1) > h2"
]
},
{
"html": "<h4>Explore</h4>",
"target": [
".foot-grid > div:nth-child(2) > h4"
]
},
{
"html": "<h4>Care</h4>",
"target": [
"div:nth-child(3) > h4"
]
},
{
"html": "<h4>Resources</h4>",
"target": [
"div:nth-child(4) > h4"
]
},
{
"html": "<h4>Contact</h4>",
"target": [
"div:nth-child(5) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"main\">",
"target": [
"#main"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f3efe4",
"bgColor": "#0e3b2c",
"contrastRatio": 10.87,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 10.87"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span><i class=\"pulse-dot\"></i>Clinical precision. Everyday vitality.</span>",
"target": [
".topbar-in > span:nth-child(1)"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "age",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<input id=\"age\" type=\"number\" min=\"16\" max=\"90\" value=\"34\" required=\"\">",
"target": [
"#age"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"age\">Age (years)</label>",
"target": [
"label[for=\"age\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input id=\"age\" type=\"number\" min=\"16\" max=\"90\" value=\"34\" required=\"\">",
"target": [
"#age"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://picsum.photos/seed/northpulse-training/900/1120\" alt=\"Member completing a coached strength session in a NorthPulse performance lab\" width=\"900\" height=\"1120\">",
"target": [
"img[width=\"900\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"age\">Age (years)</label>",
"target": [
"label[for=\"age\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input id=\"age\" type=\"number\" min=\"16\" max=\"90\" value=\"34\" required=\"\">",
"target": [
"#age"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a class=\"skip\" href=\"#main\">Skip to main content</a>",
"target": [
".skip"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"nav-links\">",
"target": [
".nav-links"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li><a href=\"#care\">Care Areas</a></li>",
"target": [
".nav-links > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://picsum.photos/seed/northpulse-training/900/1120\" alt=\"Member completing a coached strength session in a NorthPulse performance lab\" width=\"900\" height=\"1120\">",
"target": [
"img[width=\"900\"]"
]
}
]
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"activity\">Activity level</label>",
"target": [
"label[for=\"activity\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<select id=\"activity\">",
"target": [
"#activity"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 195.4,
"height": 50.4
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (195.4px by 50.4px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"skip\" href=\"#main\">Skip to main content</a>",
"target": [
".skip"
]
}
]
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "td-headers-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The headers attribute is exclusively used to refer to other cells in the table"
}
],
"none": [],
"impact": null,
"html": "<table>",
"target": [
"table"
]
}
]
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "th-has-data-cells",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "All table header cells refer to data cells"
}
],
"none": [],
"impact": null,
"html": "<table>",
"target": [
"table"
]
}
]
}
],
"incomplete": [
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": {
"role": null,
"nodeName": "div",
"messageKey": "noRoleSingular",
"prohibited": [
"aria-label"
]
},
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute is not well supported on a div with no valid role attribute."
}
],
"impact": "serious",
"html": "<div class=\"vitals\" aria-label=\"Live session vitals\">",
"target": [
".vitals"
],
"failureSummary": "Fix all of the following:\n aria-label attribute is not well supported on a div with no valid role attribute."
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": null,
"bgColor": null,
"contrastRatio": 0,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": "bgGradient",
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"hero\" id=\"top\">",
"target": [
"#top"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a background gradient"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"kick\">Integrated health system \u00b7 Chicago \u00b7 Est. 2011</span>",
"target": [
".hero-copy > .kick"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a background gradient"
}
]
}
],
"violations": [
{
"id": "aria-hidden-focus",
"impact": "serious",
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [
{
"html": "<button class=\"mnav-close\" id=\"mnavClose\" aria-label=\"Close menu\">\u00d7</button>",
"target": [
"#mnavClose"
]
}
],
"impact": "serious",
"message": "Focusable content should be disabled or be removed from the DOM"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [
{
"html": "<a href=\"#care\">Care Areas</a>",
"target": [
"#mnav > a[href$=\"#care\"]"
]
},
{
"html": "<a href=\"#programs\">Programs</a>",
"target": [
"#mnav > a[href$=\"#programs\"]"
]
},
{
"html": "<a href=\"#nutrition\">Nutrition</a>",
"target": [
"#mnav > a[href$=\"#nutrition\"]"
]
},
{
"html": "<a href=\"#mind\">Mental Wellness</a>",
"target": [
"#mnav > a[href$=\"#mind\"]"
]
},
{
"html": "<a href=\"#providers\">Find Provider</a>",
"target": [
"#mnav > a[href$=\"#providers\"]"
]
},
{
"html": "<a href=\"#week\">Schedule</a>",
"target": [
"#mnav > a[href$=\"#week\"]"
]
},
{
"html": "<a href=\"#contact\">Contact</a>",
"target": [
"#mnav > a[href$=\"#contact\"]"
]
}
],
"impact": "serious",
"message": "Focusable content should have tabindex=\"-1\" or be removed from the DOM"
}
],
"none": [],
"impact": "serious",
"html": "<div class=\"mnav\" id=\"mnav\" aria-hidden=\"true\">",
"target": [
"#mnav"
],
"failureSummary": "Fix all of the following:\n Focusable content should be disabled or be removed from the DOM\n Focusable content should have tabindex=\"-1\" or be removed from the DOM"
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": {
"role": null,
"nodeName": "div",
"messageKey": "noRoleSingular",
"prohibited": [
"aria-label"
]
},
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute cannot be used on a div with no valid role attribute."
}
],
"impact": "serious",
"html": "<div class=\"streak\" aria-label=\"Streak progress: 12 of 30 days complete\">",
"target": [
".streak"
],
"failureSummary": "Fix all of the following:\n aria-label attribute cannot be used on a div with no valid role attribute."
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7068",
"bgColor": "#f3efe4",
"contrastRatio": 4.41,
"fontSize": "7.1pt (9.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<nav class=\"site-nav\" aria-label=\"Primary\">",
"target": [
".site-nav"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.41 (foreground color: #6b7068, background color: #f3efe4, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>INTEGRATED CARE COLLECTIVE</small>",
"target": [
".nav-in > .brand[href$=\"#top\"] > .brand-txt > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.41 (foreground color: #6b7068, background color: #f3efe4, font size: 7.1pt (9.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#72756a",
"bgColor": "#eae3d1",
"contrastRatio": 3.67,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"providers\" id=\"providers\">",
"target": [
"#providers"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.67 (foreground color: #72756a, background color: #eae3d1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"f-count\" id=\"fCount\">Showing 6 of 6 providers</p>",
"target": [
"#fCount"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.67 (foreground color: #72756a, background color: #eae3d1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov\" data-spec=\"pt\">",
"target": [
"article[data-spec=\"pt\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Physical Therapy \u00b7 OCS</span>",
"target": [
"article[data-spec=\"pt\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov\" data-spec=\"mental\">",
"target": [
"article[data-spec=\"mental\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Behavioral Health \u00b7 CBT-I</span>",
"target": [
"article[data-spec=\"mental\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov\" data-spec=\"sports\">",
"target": [
"article[data-spec=\"sports\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Sports Performance</span>",
"target": [
"article[data-spec=\"sports\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#66756a",
"bgColor": "#082419",
"contrastRatio": 3.38,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer id=\"contact\">",
"target": [
"#contact"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.38 (foreground color: #66756a, background color: #082419, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"coords\">41.8907\u00b0 N, 87.6478\u00b0 W \u2014 CHICAGO \u00b7 MILWAUKEE \u00b7 MINNEAPOLIS \u00b7 DETROIT</p>",
"target": [
".coords"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.38 (foreground color: #66756a, background color: #082419, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">01</span>",
"target": [
".pillar.in.rv:nth-child(2) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">02</span>",
"target": [
".pillar.in.rv:nth-child(3) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">03</span>",
"target": [
".pillar.in.rv:nth-child(4) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">04</span>",
"target": [
".pillar.in.rv:nth-child(5) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#737871",
"bgColor": "#fbf9f1",
"contrastRatio": 4.28,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard prog-feat rv in\">",
"target": [
".prog-feat"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Duration<b>12 weeks</b></span>",
"target": [
".p-meta > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#737871",
"bgColor": "#fbf9f1",
"contrastRatio": 4.28,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard prog-feat rv in\">",
"target": [
".prog-feat"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Cadence<b>2\u00d7 coaching / wk</b></span>",
"target": [
".p-meta > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#737871",
"bgColor": "#fbf9f1",
"contrastRatio": 4.28,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard prog-feat rv in\">",
"target": [
".prog-feat"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Format<b>In-person + app</b></span>",
"target": [
".p-meta > span:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.28 (foreground color: #737871, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard prog-feat rv in\">",
"target": [
".prog-feat"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>or $149/mo for members</small>",
"target": [
".inner > .p-foot > .price > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard rv d1 in\">",
"target": [
".d1.pcard.in"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>equipment included</small>",
"target": [
".d1.pcard.in > .p-foot > .price > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f3efe4",
"bgColor": "#e0682b",
"contrastRatio": 2.95,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<span class=\"chip tag-clay\">Clinical \u00b7 6 weeks</span>",
"target": [
".tag-clay"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #f3efe4, background color: #e0682b, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"chip tag-clay\">Clinical \u00b7 6 weeks</span>",
"target": [
".tag-clay"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #f3efe4, background color: #e0682b, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard rv d2 in\">",
"target": [
".pcard.d2.in"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>telehealth available</small>",
"target": [
".pcard.d2.in > .p-foot > .price > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard rv d1 in\">",
"target": [
".stack > .d1.pcard"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>equipment included</small>",
"target": [
".d1.pcard > .p-foot > .price > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"pcard rv d2 in\">",
"target": [
".stack > .pcard.d2"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<small>telehealth available</small>",
"target": [
".pcard.d2 > .p-foot > .price > small"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-meta\">Performance</span>",
"target": [
".article:nth-child(2) > div:nth-child(2) > .a-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-time\">6 min read</span>",
"target": [
".article:nth-child(2) > div:nth-child(3) > .a-time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-meta\">Clinical</span>",
"target": [
".article:nth-child(3) > div:nth-child(2) > .a-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-time\">8 min read</span>",
"target": [
".article:nth-child(3) > div:nth-child(3) > .a-time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-meta\">Everyday</span>",
"target": [
".article:nth-child(4) > div:nth-child(2) > .a-meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"a-time\">5 min read</span>",
"target": [
".article:nth-child(4) > div:nth-child(3) > .a-time"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6b7068",
"bgColor": "#f3efe4",
"contrastRatio": 4.41,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.41 (foreground color: #6b7068, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"mini\">\u21b3 Most insurance accepted \u00b7 $0 copay plans common</span>",
"target": [
".mini"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.41 (foreground color: #6b7068, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov rv in\" data-spec=\"primary\">",
"target": [
"article[data-spec=\"primary\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Primary Care \u00b7 FACP</span>",
"target": [
"article[data-spec=\"primary\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov rv d1 in\" data-spec=\"cardiology\">",
"target": [
"article[data-spec=\"cardiology\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Cardiology \u00b7 FACC</span>",
"target": [
"article[data-spec=\"cardiology\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.3pt (11px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"prov rv d2 in\" data-spec=\"nutrition\">",
"target": [
"article[data-spec=\"nutrition\"]"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"role\">Nutrition \u00b7 Diabetes Care</span>",
"target": [
"article[data-spec=\"nutrition\"] > div:nth-child(2) > .role"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Time</th>",
"target": [
"th:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Class</th>",
"target": [
"th:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Room</th>",
"target": [
"th:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868a83",
"bgColor": "#fbf9f1",
"contrastRatio": 3.33,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<th>Spots</th>",
"target": [
"th:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.33 (foreground color: #868a83, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"spots low\"><i></i>2 left</span>",
"target": [
"tr:nth-child(1) > td:nth-child(4) > .low.spots"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"spots low\"><i></i>3 left</span>",
"target": [
"tr:nth-child(4) > td:nth-child(4) > .low.spots"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#fbf9f1",
"contrastRatio": 3.22,
"fontSize": "8.6pt (11.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"sched-card rv in\">",
"target": [
".sched-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"spots low\"><i></i>1 left</span>",
"target": [
"tr:nth-child(6) > td:nth-child(4) > .low.spots"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.22 (foreground color: #e0682b, background color: #fbf9f1, font size: 8.6pt (11.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "10.9pt (14.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r1 rv in\">",
"target": [
".r1"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Priya S., 41</b>",
"target": [
".r1 > .story-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r1 rv in\">",
"target": [
".r1"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Metabolic Reset \u00b7 Lincoln Park</span>",
"target": [
".r1 > .story-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "10.9pt (14.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r2 rv d1 in\">",
"target": [
".r2"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Marcus T., 33</b>",
"target": [
".r2 > .story-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r2 rv d1 in\">",
"target": [
".r2"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Physical Therapy \u2192 Strength Foundations</span>",
"target": [
".r2 > .story-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "10.9pt (14.5px)",
"fontWeight": "bold",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r3 rv d2 in\">",
"target": [
".r3"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<b>Elena R., 52</b>",
"target": [
".r3 > .story-who > span > b"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 10.9pt (14.5px), font weight: bold). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7f78",
"bgColor": "#fbf9f1",
"contrastRatio": 3.88,
"fontSize": "7.9pt (10.5px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"story r3 rv d2 in\">",
"target": [
".r3"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>GLP-1 Companion \u00b7 Telehealth + Halsted</span>",
"target": [
".r3 > .story-who > span > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #7a7f78, background color: #fbf9f1, font size: 7.9pt (10.5px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q01</span>",
"target": [
".faq-item.in.rv > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q01</span>",
"target": [
".faq-item.in.rv:nth-child(1) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q02</span>",
"target": [
".faq-item.in.rv:nth-child(2) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q03</span>",
"target": [
".faq-item.in.rv:nth-child(3) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q04</span>",
"target": [
".faq-item.in.rv:nth-child(4) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q05</span>",
"target": [
".faq-item.in.rv:nth-child(5) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q06</span>",
"target": [
".faq-item.in.rv:nth-child(6) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">01</span>",
"target": [
".pillar.rv.in:nth-child(2) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">02</span>",
"target": [
".pillar.rv.in:nth-child(3) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">03</span>",
"target": [
".pillar.rv.in:nth-child(4) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#82857d",
"bgColor": "#f3efe4",
"contrastRatio": 3.26,
"fontSize": "9.8pt (13px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"p-num\">04</span>",
"target": [
".pillar.rv.in:nth-child(5) > .p-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.26 (foreground color: #82857d, background color: #f3efe4, font size: 9.8pt (13px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q01</span>",
"target": [
".faq-item.rv.in:nth-child(1) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q02</span>",
"target": [
".faq-item.rv.in:nth-child(2) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q03</span>",
"target": [
".faq-item.rv.in:nth-child(3) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q04</span>",
"target": [
".faq-item.rv.in:nth-child(4) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q05</span>",
"target": [
".faq-item.rv.in:nth-child(5) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#e0682b",
"bgColor": "#f3efe4",
"contrastRatio": 2.95,
"fontSize": "9.0pt (12px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"idx\">Q06</span>",
"target": [
".faq-item.rv.in:nth-child(6) > .faq-q > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.95 (foreground color: #e0682b, background color: #f3efe4, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 12668
},
{
"y": 576,
"height": 12668
},
{
"y": 1152,
"height": 12668
},
{
"y": 1728,
"height": 12668
},
{
"y": 2304,
"height": 12668
},
{
"y": 2880,
"height": 12668
},
{
"y": 3456,
"height": 12668
},
{
"y": 4032,
"height": 12668
},
{
"y": 4608,
"height": 12668
},
{
"y": 5184,
"height": 12668
},
{
"y": 5760,
"height": 12668
},
{
"y": 6336,
"height": 12668
},
{
"y": 6912,
"height": 12668
},
{
"y": 7488,
"height": 12668
},
{
"y": 8064,
"height": 12668
},
{
"y": 8640,
"height": 12668
},
{
"y": 9216,
"height": 12668
},
{
"y": 9792,
"height": 12668
},
{
"y": 10368,
"height": 12668
},
{
"y": 10944,
"height": 12668
},
{
"y": 11520,
"height": 12668
},
{
"y": 11948,
"height": 12668
}
],
"scans": 23,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Health and Fitness" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.
**Client & Category:**
- Industry: "Health and Fitness"
- Description: Healthcare, wellness, fitness tips, nutrition, and medical resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Health and Fitness" category.
2. **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3. **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.
**Content & Structure Requirements (Deliver a COMPLETE page):**
- **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
- **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Nutrition", "Contact", "Find Provider".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Health and Fitness" category. Consider themes similar to: "Nutrition Counseling", "Mental Wellness", "Medical Services".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "metabolic rate", "BMI", "wellness plan".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Join Program", "Start Trial", "View Schedule".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Health and Fitness" sector. Ideas similar but not limited to: "calorie calculator".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "fitness challenges", "class schedule", "patient testimonials".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.