/* Approved Heracles identity. Load after each surface's layout stylesheet. */
@font-face{font-family:Heracles;src:url('fonts/heracles-light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:Heracles;src:url('fonts/heracles-roman.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Heracles;src:url('fonts/heracles-medium.woff2') format('woff2');font-weight:500 800;font-style:normal;font-display:swap}
:root{
 --h-sand:#f7f3ee;--h-sand-deep:#f0e8df;--h-ink:#141516;--h-muted:#656666;
 --h-line:#e8e3df;--h-brand:#a22c29;--h-brand-dark:#861f1c;--h-white:#fff;
 --sans:Heracles,'Helvetica Neue',Arial,sans-serif;--display:var(--sans);
 --heading:var(--h-ink);--foreground:#454646;--muted:var(--h-muted);--border:var(--h-line);
 --accent:var(--h-brand);--accent-dark:var(--h-brand-dark);--heading-weight:300;
 --success:#67533f;--success-soft:#eee4d8;--info:#665748;--info-soft:#f0e8df;
 --radius:6px;--radius-lg:10px;--shadow-whisper:none;--shadow-selection:none;
}
body.heracles-patient,body.heracles-staff,body.funnel{font-family:var(--sans);-webkit-font-smoothing:antialiased;color:var(--h-ink)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--h-brand);outline-offset:4px}
:where(button,a,input,select,textarea){touch-action:manipulation}
.heracles-patient .heading-1{font-size:clamp(2rem,3.3vw,2.8rem);letter-spacing:-.04em;line-height:1.13;font-weight:300}
.heracles-patient .heading-2{font-size:clamp(1.35rem,2vw,1.7rem);font-weight:300;letter-spacing:-.025em}
.heracles-patient .heading-3{font-weight:400;letter-spacing:-.015em}
body.heracles-patient.bg-ambient{background:#fff}
.heracles-patient .glass-card,.heracles-patient .glass-panel,.heracles-patient .glass-row{background:#fff;border:1px solid var(--h-line);border-radius:8px;box-shadow:none}
.heracles-patient .glass-light{background:var(--h-sand-deep);border-color:var(--h-line)}
.heracles-patient .glass-sidebar{background:#fff;border:0;border-right:1px solid var(--h-line);border-radius:0;box-shadow:none;backdrop-filter:none}
.heracles-patient .glass-pill{background:#fff;border-color:var(--h-line);box-shadow:none}
.heracles-patient .app-panel{max-width:1120px;margin-inline:auto;padding:clamp(20px,3vw,42px);background:#fff;border:0;border-radius:0}
.heracles-patient .btn{min-height:44px;font-weight:400;font-family:var(--sans)}
@media(min-width:601px){.heracles-patient .btn{display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start;justify-self:start;padding:12px 24px}}
.heracles-patient .font-bold,.heracles-patient .font-semibold{font-weight:500}
.heracles-patient :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-family:var(--sans);font-size:16px;border-radius:5px}
.heracles-patient input:is([type=checkbox],[type=radio]){accent-color:var(--h-brand)}
.heracles-patient :is(table,.num-tab){font-variant-numeric:tabular-nums}
.heracles-patient dialog{border:1px solid var(--h-line);border-radius:12px;background:#fff;max-height:90dvh;overflow:auto}
.heracles-patient dialog::backdrop{background:#14151673;backdrop-filter:blur(3px)}
@media(min-width:760px){.heracles-patient dialog{inset:0;margin:auto;width:min(620px,calc(100vw - 64px));height:auto}}
@media(max-width:759px){.heracles-patient .app-panel{padding:22px 18px;border:0;border-radius:0}.heracles-patient main{min-width:0}.heracles-patient dialog{inset:auto 0 0;margin:0 auto;max-width:100%;width:100%;border-radius:16px 16px 0 0}}
body.funnel{--bg:var(--h-sand);--surface:#fff;--surface-2:var(--h-sand-deep);--input:#fff;--heading:var(--h-ink);--foreground:#454646;--text:#454646;--muted:var(--h-muted);--heading-weight:300;background:var(--h-sand)}
.funnel .funnel-shell{max-width:540px;padding-top:26px}
.funnel .q-title{font-size:clamp(1.8rem,3vw,2.35rem);font-weight:300;letter-spacing:-.035em;line-height:1.18}
.funnel .q-body,.funnel .q-sub{line-height:1.65}
.funnel .card,.funnel .opt{border-radius:6px;box-shadow:none}
.funnel .opt{min-height:58px;border:1px solid var(--h-line);background:#fff}
.funnel .opt:hover{background:var(--h-sand-deep)}
.funnel .opt.selected,.funnel .opt:has(input:checked){border-color:var(--h-brand);box-shadow:inset 0 0 0 1px var(--h-brand)}
.funnel input,.funnel select,.funnel textarea{font-family:var(--sans)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Patient service selection: a quiet, readable catalogue. */
.service-store{max-width:680px;margin:0 auto;padding:12px 0 40px}.service-back{display:inline-block;color:var(--h-brand,#a22c29);font-size:14px;margin-bottom:28px;text-decoration:none}.service-heading{margin-bottom:32px}.service-heading h1{font-weight:300;font-size:42px;letter-spacing:-.035em;line-height:1.15;margin-bottom:12px}.service-heading p,.service-explanation p,.service-help p{font-size:15px;line-height:1.65;color:#4f5051}.service-store fieldset{border:0;padding:0;margin:0}.service-choice{display:flex;align-items:flex-start;gap:16px;padding:24px;margin-bottom:12px;background:#fff;border:1px solid #dcd0c2;border-radius:8px;cursor:pointer}.service-choice:has(input:checked){border-color:#a22c29;box-shadow:inset 3px 0 #a22c29}.service-choice:has(input:focus-visible){outline:2px solid #a22c29;outline-offset:3px}.service-choice input{appearance:auto;accent-color:#a22c29;flex-shrink:0;width:19px;height:19px;margin-top:4px}.service-choice-copy{display:block;flex:1;min-width:0}.service-choice-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.service-choice-heading strong{font-size:19px;line-height:1.4;font-weight:400}.service-price{text-align:right;flex:0 0 145px;font-size:20px;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap}.service-price small{display:block;text-align:right;white-space:normal;font-size:11px;color:#656666;margin-top:3px}.service-description{display:block;font-size:14px;line-height:1.6;color:#4f5051;margin-top:12px}.service-inclusions{display:block;font-size:12px;line-height:1.7;color:#656666;margin-top:10px}.service-explanation{padding:22px 0;margin:10px 0 18px;border-bottom:1px solid #dcd0c2}.service-explanation h2,.service-help h2{font-size:17px;font-weight:500;margin-bottom:8px;letter-spacing:0}.service-help{background:#fff;border-top:1px solid #e8e3df;border-radius:0;padding:24px 0;margin-top:30px}.service-help a{display:inline-block;margin-top:12px;color:#a22c29;text-underline-offset:4px;font-size:14px}.service-error{padding:14px;background:#f6e5e1;color:#982825;margin-bottom:20px}
@media(max-width:600px){.service-store{padding-top:0}.service-heading h1{font-size:34px}.service-heading{margin-bottom:24px}.service-choice{padding:18px 16px;gap:12px}.service-choice-heading strong{font-size:17px}.service-price{font-size:18px}.service-help{padding:20px}.service-back{margin-bottom:22px}}
/* Compact service actions on desktop. */
.heracles-patient .service-store .btn{width:auto;min-height:46px;display:inline-flex;gap:24px;padding:12px 24px}
@media(max-width:600px){.heracles-patient .service-store .btn{width:100%;justify-content:center}}

/* Test contents: the detail control stays outside the product's radio label. */
.service-choice--product{display:block}
.service-choice-select{display:flex;align-items:flex-start;gap:16px;cursor:pointer;margin:0}
.service-markers-link{display:inline-flex;align-items:center;gap:12px;margin:16px 0 0 35px;padding:0 0 3px;background:none;border:0;border-bottom:1px solid #d8c8bc;border-radius:0;color:#a22c29;font:inherit;font-size:13px;line-height:1.6;cursor:pointer;text-align:left}
.service-markers-link:hover{border-color:#a22c29}.service-markers-link:focus-visible{outline:2px solid #a22c29;outline-offset:5px}
body:has(.test-contents[open]){overflow:hidden}
.heracles-patient .test-contents{inset:0;margin:auto;padding:0;border:1px solid #e8e1d9;border-radius:12px;width:min(780px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 64px);background:#fff;color:#171918;box-shadow:0 24px 90px #211b1824;overflow:hidden}
.test-contents::backdrop{background:#29262273;backdrop-filter:blur(3px)}
.test-contents-panel{display:flex;flex-direction:column;max-height:calc(100dvh - 66px)}
.test-contents-header{padding:26px 34px 22px;flex-shrink:0;border-bottom:1px solid #ebe5df}
.test-contents-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.test-contents-topline img{width:135px;height:auto}
.test-contents-close{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;border:0;border-radius:50%;padding:0;background:#f7f4f0;color:#272625;font-size:28px;font-weight:300;line-height:1;cursor:pointer}
.test-contents-eyebrow{margin:0 0 9px;font-size:12px;color:#a22c29}
.test-contents-header h2{margin:0;font-size:30px;font-weight:300;line-height:1.2;letter-spacing:-.035em;outline:none}
.test-contents-intro{margin:12px 0 0;color:#686662;font-size:13px;line-height:1.5}
.test-contents-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:25px 34px 28px}
.test-contents-body:focus-visible{outline:2px solid #a22c29;outline-offset:-4px}
.test-contents-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:38px;row-gap:28px}
.test-contents-group:only-child{grid-column:1/-1}
.test-contents-group h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid #ded3c6;font-size:16px;font-weight:500;letter-spacing:-.01em}
.test-contents-group h3 span{font-size:12px;font-weight:400;color:#79716b}
.test-contents-group ul{list-style:none;margin:0;padding:0}.test-contents-group li{position:relative;padding:4px 0 4px 13px;font-size:14px;line-height:1.5;color:#4a4946;overflow-wrap:anywhere}
.test-contents-group li::before{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:#b7a18c;left:0;top:13px}
.test-contents-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-shrink:0;padding:18px 34px;background:#f8f5f1;border-top:1px solid #e8e1d9}
.test-contents-footer p{font-size:15px;line-height:1.5;margin:0;font-variant-numeric:tabular-nums}.test-contents-footer p span{font-size:13px;color:#686662}.test-contents-footer small{display:block;font-size:11px;color:#686662;margin-top:3px}
.test-contents-done{display:inline-flex;align-items:center;justify-content:center;padding:10px 23px;border:1px solid #a22c29;border-radius:30px;background:#a22c29;color:#fff;font:inherit;font-size:14px;cursor:pointer}
.test-contents-close:focus-visible,.test-contents-done:focus-visible{outline:2px solid #a22c29;outline-offset:3px}
@media(max-width:600px){
 .service-choice-select{gap:12px}.service-choice-heading{gap:12px}.service-price{flex-basis:112px}.service-price small{font-size:10px}.service-markers-link{margin-left:31px}
 .heracles-patient .test-contents{width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:10px}.test-contents-panel{max-height:calc(100dvh - 26px)}
 .test-contents-header{padding:20px 22px 18px}.test-contents-topline{margin-bottom:20px}.test-contents-header h2{font-size:26px}.test-contents-intro{font-size:12px}
 .test-contents-body{padding:22px}.test-contents-groups{grid-template-columns:1fr;row-gap:22px}.test-contents-footer{padding:16px 22px;gap:12px}.test-contents-footer p span{display:block}
}
