.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;top:-100px;left:16px;z-index:20;padding:12px 20px;background:var(--navy);color:white}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.hero{padding-block:clamp(32px,4vw,52px)}
.hero h1{font-size:clamp(3rem,6vw,5rem)}
.heart-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);gap:clamp(36px,6vw,80px);padding-block:44px 56px;align-items:start}
.heart-controls{min-width:0}
.heart-criteria{display:grid;gap:10px;border:0;margin:0;padding:0;min-width:0}
.heart-choice{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px;align-items:start;padding:17px 18px;border:1px solid var(--line);border-radius:3px;background:#fff;cursor:pointer}
.heart-choice:hover{border-color:#809b99}
.heart-choice:has(input:checked){border-color:var(--teal);background:#edf6f3;box-shadow:inset 4px 0 0 var(--teal)}
.heart-choice:has(input:focus-visible){outline:3px solid var(--teal);outline-offset:2px}
.heart-choice input{appearance:auto;accent-color:var(--teal);width:20px;height:20px;margin:2px 0 0;cursor:pointer}
.criterion-copy{display:grid;gap:5px;font-size:.91rem;line-height:1.45}
.criterion-copy>span{color:#4b596b;font-size:.81rem;line-height:1.55}
.criterion-copy>span strong{white-space:nowrap;font-size:.75rem;color:var(--teal)}
.heart-result-panel{position:sticky;top:28px;border-left:1px solid var(--line);padding-left:clamp(24px,3vw,40px);min-width:0}
#result-card{--risk-color:#26704e;border-top:4px solid var(--risk-color);padding-top:20px}
#result-card.border-red-600{--risk-color:#a73535}
.heart-score-value{margin:20px 0 14px;color:var(--navy);font-family:var(--serif);font-size:clamp(3.2rem,5vw,4.5rem);font-weight:600;letter-spacing:-.045em;line-height:1.1}
#risk{display:inline-block;margin:0;padding:7px 12px;background:color-mix(in srgb,var(--risk-color) 10%,white);color:var(--risk-color);font-size:.88rem;font-weight:750;line-height:1.4;border-radius:3px}
.result-warning{margin:20px 0 0;color:#5b4338;font-size:.84rem;font-weight:600;line-height:1.5}
.heart-interpretation{padding-top:24px;margin-top:26px;border-top:1px solid var(--line)}
.heart-interpretation h3{margin:0 0 12px;color:var(--teal);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
#interpretation{margin:0;color:#334156;font-family:var(--serif);font-size:1.06rem;line-height:1.65}
.interpretation-note{color:var(--muted);font-size:.78rem;margin-top:16px}
.heart-interpretation a{font-size:.8rem;color:var(--navy);font-weight:700;text-underline-offset:4px}
.article-layout{padding-block:76px 24px}
caption{text-align:left;padding:16px 12px;font-family:var(--serif);font-size:1rem}
.table-wrap{margin-bottom:22px}
.table-wrap th:last-child,.table-wrap td:last-child{text-align:center}
.table-wrap td:last-child span{display:block}
.prose-section .table-note{font-family:var(--sans);font-size:.79rem;line-height:1.55;color:var(--muted)}
@media(max-width:820px){
 .heart-grid{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:0}
 .heart-result-panel{display:contents}
 #result-card{grid-row:1;position:sticky;top:0;z-index:5;background:var(--surface);padding:12px 0 14px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:4px 20px;align-items:center}
 #result-card .result-kicker{grid-column:1/-1;margin:0;font-size:.65rem}
 .heart-score-value{margin:0;font-size:2.4rem;white-space:nowrap}
 #risk{font-size:.8rem;padding:5px 9px;justify-self:start}
 .result-warning{grid-column:1/-1;font-size:.74rem;margin-top:5px}
 .heart-controls{grid-row:2}
 .heart-interpretation{grid-row:3;margin-top:0;padding-top:26px}
 .heart-choice{scroll-margin-top:185px}
 .heart-controls .section-heading{margin-bottom:24px}
}
@media(max-width:520px){
 .hero{padding-block:30px}
 .hero h1{font-size:2.8rem;overflow-wrap:break-word}
 .hero .standfirst{margin-top:20px}
 .hero-facts{display:flex;gap:8px 18px;font-size:.78rem}
 .heart-choice{padding:15px 14px;gap:12px}
 .criterion-copy{font-size:.88rem}
 #result-card{column-gap:12px}
 .heart-score-value{font-size:2rem}
 #risk{font-size:.73rem}
 .masthead-note{max-width:130px;text-align:right;font-size:.65rem}
 .aside-inner dl div{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.heart-criterion{border:0;padding:0;margin:0 0 30px;min-width:0}
.heart-criterion legend{padding:0;font-weight:750;font-size:1rem;color:var(--navy)}
.heart-help{color:var(--muted);font-size:.8rem;line-height:1.6;margin:8px 0 14px}
.heart-choice{padding:14px 18px}.criterion-copy>strong{font-size:.88rem;font-weight:650}
.heart-score-value small{font-family:var(--sans);font-size:.4em;color:var(--muted);font-weight:500;letter-spacing:0}
#progress{font-size:.85rem;color:var(--muted)}
#result-card{--risk-color:var(--navy)}#result-card[data-risk=low]{--risk-color:#26704e}#result-card[data-risk=moderate]{--risk-color:#8a5b12}#result-card[data-risk=high]{--risk-color:#a73535}
#risk{background:color-mix(in srgb,var(--risk-color) 10%,white);color:var(--risk-color)}
.heart-actions{margin-top:24px;gap:20px;flex-wrap:wrap}.heart-actions .primary-button{min-height:44px;padding:0 20px;font-size:.8rem}.heart-actions .text-button{font-size:.8rem}
@media(max-width:820px){#live-result,#empty-result,#complete-result{display:contents}#progress{margin:0;font-size:.75rem}.heart-score-value{grid-column:1}#risk{grid-column:2}#result-card .result-warning{margin-bottom:0}.heart-criterion{scroll-margin-top:180px}.heart-interpretation{min-width:0}}
@media(max-width:520px){.table-wrap th,.table-wrap td{padding:12px 8px;font-size:.8rem}}
.medical-author{display:flex;align-items:flex-start;gap:20px;margin-top:16px}
.medical-author img{width:112px;height:112px;border-radius:50%;object-fit:cover;border:2px solid #475569;flex-shrink:0}
.medical-author-copy{min-width:0}.medical-author-copy h2{font-size:1.3rem;line-height:1.25}
.medical-author-copy>p{font-size:.88rem}.medical-author-copy .author-credentials{font-size:.78rem;color:#aeb8c5;margin-top:4px}
.medical-author-copy .author-bio{font-size:.78rem;color:#aeb8c5;line-height:1.6;margin-top:10px}
@media(max-width:520px){.medical-author{gap:16px}.medical-author img{width:96px;height:96px}.medical-author-copy h2{font-size:1.15rem}}
@media print{.masthead,.form-actions,.related{display:none}.heart-result-panel{position:static}.editorial-footer{background:white;color:black}.footer-grid a{color:black}}
