:root{--p:#501080;--l:#9BCB3B;--bg:#f7f4fb;--t:#221a2b}
*{box-sizing:border-box}body{margin:0;font:16px/1.5 system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--t);padding-bottom:76px}
header{background:var(--p);color:#fff;padding:calc(env(safe-area-inset-top) + 14px) 16px 14px}header h1{margin:0;font-size:1.25rem}header p{margin:2px 0 0;opacity:.85;font-size:.9rem}
main{padding:16px;max-width:640px;margin:auto}h2{color:var(--p);font-size:1.2rem}
.card{background:#fff;border-radius:16px;padding:16px;margin:0 0 14px;box-shadow:0 2px 8px #50108014}
.card h3{margin:0 0 4px;color:var(--p)}.small{font-size:.85rem;color:#665d70}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:999px;background:var(--p);color:#fff;text-decoration:none;font-weight:600;border:0;font-size:.95rem;cursor:pointer}
.btn.l{background:var(--l);color:#2a1440}.btn.w{background:#25D366}.btn.o{background:#fff;color:var(--p);border:2px solid var(--p)}
.pick{display:flex;gap:6px;margin-bottom:12px}.pick button{flex:1;padding:10px 4px;border-radius:12px;border:2px solid var(--p);background:#fff;color:var(--p);font-weight:600;font-size:.8rem}
.pick button.on{background:var(--p);color:#fff}
nav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;border-top:1px solid #e4dcef;padding-bottom:env(safe-area-inset-bottom)}
nav a{flex:1;text-align:center;padding:8px 2px;font-size:.7rem;color:#665d70;text-decoration:none}nav a span{display:block;font-size:1.3rem}nav a.on{color:var(--p);font-weight:700}
footer{font-size:.8rem;color:#665d70;text-align:center;padding:10px 16px 20px}
.loy{background:var(--p);color:#fff;border-radius:18px;padding:18px;position:relative;overflow:hidden}
.loy:after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--l);opacity:.9}
.loy h3{margin:0;color:#fff;font-size:1.3rem;position:relative;z-index:1}.loy .lime{color:var(--l);font-weight:700}
.stamps{display:flex;gap:8px;margin:16px 0;justify-content:space-between}
.st{width:52px;height:52px;border-radius:50%;border:2px dashed var(--l);display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:#ffffff14}
.st.on{background:var(--l);border-style:solid}.st.free{font-size:.7rem;font-weight:800;color:var(--l)}.st.free.on{color:var(--p)}
img.full{width:100%;border-radius:12px}ul{padding-left:1.2em}li{margin:.25em 0}
.note{background:#f1fbe3;border-left:4px solid var(--l);padding:10px 12px;border-radius:8px;font-size:.9rem}
input,select{font-size:1rem;padding:10px;border-radius:10px;border:1px solid #cbbfdc;width:100%;margin:4px 0 10px}
.tg{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:560px){.tg{grid-template-columns:1fr 1fr}}.tm{display:flex;gap:14px;align-items:flex-start;padding:12px;border:1px solid #eee6f5;border-radius:14px;background:#fff}.tm img{flex:0 0 100px;width:100px;height:100px;border-radius:50%;object-fit:cover;object-position:center 20%;border:3px solid var(--p);box-shadow:0 3px 10px #50108033;display:block}.tm>div{min-width:0}.tm h3{font-size:1rem;margin:2px 0 2px}.tm p{margin:2px 0}

/* v24 clinic logos */
.brand-strip{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:14px auto 4px;max-width:640px}
.logo-card{display:inline-flex;align-items:center;justify-content:center;background:#fff;border-radius:16px;padding:10px 14px;box-shadow:0 1px 3px rgba(16,42,67,.08);border:1px solid #dde3ea}
.logo-card img{display:block;height:64px;width:auto;max-width:100%;object-fit:contain}
.brand-dot{color:#9fb3c8;font-size:1.6em}
.footer-logos{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.logo-card.sm{padding:6px 10px;border-radius:12px;box-shadow:none}
.logo-card.sm img{height:34px}
@media (max-width:420px){.brand-strip{gap:8px}.brand-dot{display:none}.logo-card{padding:8px 10px;flex:1 1 40%;max-width:46%}.logo-card img{height:auto;max-height:58px;width:100%}.logo-card.sm{flex:0 1 auto;max-width:none}.logo-card.sm img{height:30px;width:auto}}
/* v25 team grid fix */
.tg{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important;gap:14px;width:100%;max-width:100%;box-sizing:border-box}
.tg,.tg *{box-sizing:border-box}
.tm{display:grid!important;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start;min-width:0;width:auto;max-width:100%}
.tm img{width:96px!important;height:96px!important;aspect-ratio:1;object-fit:cover;border-radius:50%;flex:none}
.tm-t{display:block;min-width:0;overflow-wrap:anywhere}
.tm-t h3,.tm-t p{display:block;width:auto}
@media (max-width:360px){.tm{grid-template-columns:1fr;justify-items:center;text-align:center}}

/* v26 professional theme */
:root{--p:#0b3d5c;--a:#0f7c8c;--l:#0f7c8c;--bg:#f5f7fa;--t:#1f2933;--mut:#52606d;--bd:#dde3ea;--r:10px}
html{background:var(--bg)}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--t);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--a)}
header{background:#fff;color:var(--p);border-bottom:1px solid var(--bd);box-shadow:0 1px 2px rgba(16,42,67,.04);padding:calc(env(safe-area-inset-top) + 18px) 20px 18px}
header h1{color:var(--p);font-size:1.4rem;font-weight:700;letter-spacing:-.01em}header p{color:var(--mut);opacity:1}
main{padding:20px 16px}
h2{color:var(--p);font-weight:700;letter-spacing:-.01em}h3,.card h3,.tm h3{color:var(--p)}
.card{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(16,42,67,.06)}
.small,footer{color:var(--mut)}
.btn{background:var(--p);color:#fff;border-radius:8px;padding:11px 16px;font-weight:600;box-shadow:none;transition:background .15s}
.btn:hover{background:#082d44}
.btn.l{background:var(--a);color:#fff}.btn.l:hover{background:#0b6370}
.btn.w{background:#1a7f45;color:#fff}
.btn.o{background:#fff;color:var(--p);border:1px solid var(--p)}
.pick button{border:1px solid var(--bd);border-radius:8px;background:#fff;color:var(--p)}.pick button.on{background:var(--p);border-color:var(--p);color:#fff}
nav{background:#fff;border-top:1px solid var(--bd);box-shadow:0 -1px 3px rgba(16,42,67,.05)}
nav a{color:var(--mut)}nav a.on{color:var(--p);font-weight:700}
.loy{background:var(--p);border-radius:12px;box-shadow:0 2px 8px rgba(16,42,67,.15)}
.loy:after{background:var(--a);opacity:.35}.loy .lime{color:#8fe0ea}
.st{border-color:#8fe0ea}.st.on{background:#8fe0ea}.st.free{color:#8fe0ea}.st.free.on{color:var(--p)}
.note{background:#eef6f8;border-left:4px solid var(--a);border-radius:8px;color:var(--t)}
input,select,textarea{background:#fff;color:var(--t);border:1px solid #bcccdc;border-radius:8px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--a);outline-offset:1px}
:focus-visible{outline:3px solid var(--a);outline-offset:2px}
img.full,video{border-radius:10px}
table td,table th{border-color:var(--bd)!important}
.acc details{background:#fff;border:1px solid var(--bd);border-radius:10px}
.tm{background:#fff!important;border:1px solid var(--bd);border-radius:10px;box-shadow:none}
.tm img{border:2px solid #fff;box-shadow:0 0 0 1px var(--bd);object-position:center 20%}
.logo-card{border-radius:10px}
header>h1,header>p{max-width:608px;margin-left:auto;margin-right:auto}
/* v27 logo palette — Ruislip purple #4c1078, Cleaner Ears purple #632c8c, Ruislip green #6aa31a, Cleaner Ears lime #9bc93a */
:root{--p:#4c1078;--p2:#632c8c;--g:#6aa31a;--lime:#9bc93a;--gd:#3d6b0c;--a:#632c8c;--l:#9bc93a;--bg:#f7f5fa;--t:#1f1a29;--mut:#5a5266;--bd:#e4def0}
body{background:var(--bg);color:var(--t)}
a{color:var(--p2)}
header{background:linear-gradient(120deg,#4c1078 0%,#632c8c 55%,#4f7d14 100%);color:#fff;border-bottom:4px solid var(--lime);box-shadow:none}
header h1{color:#fff}header p{color:#efe7f7}
h2{color:var(--p)}h2:after{content:"";display:block;width:40px;height:3px;border-radius:2px;background:var(--g);margin-top:6px}
#team h2:after,.card h2[style*="margin-top:0"]:after{margin-top:6px}
h3,.card h3,.tm h3{color:var(--p)}
.card{border-top:3px solid var(--p2);border-radius:10px}
.card:nth-of-type(even){border-top-color:var(--g)}
.btn{background:var(--p);color:#fff}.btn:hover{background:#3a0b5d}
.btn.l{background:var(--lime);color:#1f1030}.btn.l:hover{background:#8ab82e}
.btn.o{background:#fff;color:var(--p);border:1px solid var(--p)}
.pick button{color:var(--p);border-color:var(--bd)}.pick button.on{background:var(--p);border-color:var(--p);color:#fff}
nav{border-top:3px solid var(--lime)}
nav a.on{color:var(--p);box-shadow:inset 0 3px 0 var(--g)}
.loy{background:linear-gradient(135deg,#4c1078,#632c8c)}.loy:after{background:var(--lime);opacity:.85}.loy .lime{color:var(--lime)}
.st{border-color:var(--lime)}.st.on{background:var(--lime)}.st.free{color:var(--lime)}.st.free.on{color:var(--p)}
.note{background:#f2f8e8;border-left-color:var(--g)}
[style*="border-left:4px solid var(--l)"]{border-left-color:var(--g)!important}
input:focus,select:focus,textarea:focus,:focus-visible{outline-color:var(--p2)}
.tm{border-top:3px solid var(--g)!important}
.tm img{box-shadow:0 0 0 2px var(--p2);border-color:#fff}
.brand-strip .logo-card{border:1px solid rgba(255,255,255,.6)}
footer .logo-card{border-color:var(--bd)}

/* v30 features */
.cta-book{display:flex;width:100%;font-size:1.05rem;padding:14px;margin:0 0 14px;background:var(--p);color:#fff}
.ptab{width:100%;border-collapse:collapse;margin:8px 0}.ptab td{padding:6px 4px;border-bottom:1px solid var(--bd)}.ptab td+td{text-align:right}
.ph,.ph-i{background:#fff4d6;color:#7a4b00;border:1px dashed #c98a00;border-radius:6px;padding:1px 6px;font-size:.85em;font-weight:600}
.chk{list-style:none;padding:0}.chk li{margin:6px 0}.chk input{width:auto;margin:0 8px 0 0;accent-color:var(--p)}
/* v31 additions */
.a11y{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin:0 auto 10px;max-width:608px}
.a11y button,.a11y select{font:inherit;font-size:.8rem;padding:4px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.12);color:#fff;width:auto;margin:0;cursor:pointer}
.a11y select option{color:#111}.a11y [aria-pressed="true"]{background:#fff;color:var(--p);font-weight:700}
html.fs1{font-size:112.5%}html.fs2{font-size:127%}html.fs1 body{font-size:18px}html.fs2 body{font-size:20.5px}
html.hc body{background:#fff;color:#000}html.hc .card,html.hc .tm{background:#fff!important;border:2px solid #000!important;box-shadow:none}
html.hc header{background:#000!important;border-bottom-color:#ff0}html.hc h1,html.hc h2,html.hc h3,html.hc .card h3{color:#000}html.hc header h1,html.hc header p{color:#fff}
html.hc a{color:#00008b;text-decoration:underline}html.hc .btn{background:#000!important;color:#fff!important;border:2px solid #000}html.hc .btn.o{background:#fff!important;color:#000!important}
html.hc .small,html.hc footer,html.hc nav a{color:#000!important}html.hc nav{background:#fff;border-top:2px solid #000}html.hc .note{background:#fff;border:2px solid #000}
.a2hs{position:fixed;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:50;display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--bd);border-left:4px solid var(--g);border-radius:10px;padding:10px 12px;box-shadow:0 4px 16px rgba(31,26,41,.18);max-width:600px;margin:auto;font-size:.9rem}
.a2hs span{flex:1}.a2hs .x{background:none;border:0;font-size:1.1rem;cursor:pointer;color:var(--mut);padding:4px 6px}.a2hs .go{padding:8px 12px}
.tq{margin:0 0 12px;padding:12px 14px;border-left:4px solid var(--g);background:#faf8fd;border-radius:8px}.tq p{margin:0 0 6px;font-style:italic}.tq footer{font-size:.8rem;color:var(--mut);padding:0;text-align:left}
.ni{padding:10px 0;border-bottom:1px solid var(--bd)}.ni:last-child{border:0}.ni h3{font-size:1rem;margin:2px 0}.ni p{margin:2px 0}
.qz{border:1px solid var(--bd)}.qz legend{padding:0 4px}.opt{display:flex;gap:8px;align-items:flex-start;padding:8px 6px;border-radius:8px;cursor:pointer}.opt:hover{background:#f4f0f9}.opt input{width:auto;margin:3px 0 0;accent-color:var(--p)}
.qz legend{float:left;width:100%;padding:0;margin:0 0 8px}.qz legend+*{clear:both}.qz .opt{clear:both}
