﻿/* ANDOVER HOSPITAL Accessibility — self-contained widget. UI scoped under #acba-root; effects on <html>. */
#acba-root,#acba-root *{box-sizing:border-box}

/* Launcher (bottom-left to avoid the site's bottom CTA bar + bottom-right scroll-top) */
#acba-launcher{position:fixed;left:28px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:2147483000;width:58px;height:58px;border:0;border-radius:50%;cursor:pointer;background:linear-gradient(135deg,#1f6fe5,#0c2d74);color:#fff;box-shadow:0 12px 30px rgba(9,44,116,.4);display:flex;align-items:center;justify-content:center;transition:transform .2s}
#acba-launcher:hover{transform:translateY(-2px) scale(1.04)}
#acba-launcher svg{width:30px;height:30px}
#acba-launcher:focus-visible{outline:3px solid #ffbf00;outline-offset:3px}
@media(max-width:767px){#acba-launcher{left:14px;bottom:calc(92px + env(safe-area-inset-bottom));width:52px;height:52px}#acba-launcher svg{width:28px;height:28px}}

/* Overlay + sliding panel */
#acba-overlay{position:fixed;inset:0;z-index:2147483002;display:none;background:rgba(7,20,48,.5);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#acba-overlay.open{display:block}
#acba-panel{position:absolute;top:0;left:0;height:100%;width:min(420px,92vw);background:#fff;box-shadow:0 0 60px rgba(7,20,48,.4);display:flex;flex-direction:column;font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;color:#16233d;transform:translateX(-100%);transition:transform .28s ease}
#acba-overlay.open #acba-panel{transform:none}

.acba-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:linear-gradient(135deg,#1f6fe5,#0c2d74);color:#fff}
.acba-head h2{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.01em;color:#fff}
.acba-close{flex:none;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.acba-close:hover{background:rgba(255,255,255,.3)}

.acba-body{flex:1 1 auto;overflow-y:auto;padding:16px}
.acba-steps{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.acba-step{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid #e6ecf5;border-radius:12px}
.acba-step .lb{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.92rem;color:#0c2d74}
.acba-step .lb svg{width:20px;height:20px;color:#1f6fe5;flex:none}
.acba-stepper{display:flex;align-items:center;gap:8px}
.acba-stepper button{width:32px;height:32px;border:1px solid #cfe0f7;background:#fff;border-radius:8px;color:#0c2d74;font-size:18px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}
.acba-stepper button:hover{background:#f3f8ff;border-color:#1f6fe5}
.acba-stepper b{min-width:44px;text-align:center;font-size:.78rem;font-weight:700;color:#5b6b85}

.acba-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.acba-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:16px 8px;min-height:98px;border:1.5px solid #e6ecf5;border-radius:14px;background:#fff;color:#0c2d74;font-weight:700;font-size:.78rem;line-height:1.2;cursor:pointer;transition:.15s}
.acba-tile svg{width:26px;height:26px;color:#1f6fe5;transition:.15s}
.acba-tile span{display:block}
.acba-tile:hover{border-color:#1f6fe5;background:#f3f8ff}
.acba-tile[aria-pressed="true"]{background:#0c2d74;border-color:#0c2d74;color:#fff;box-shadow:0 10px 24px -12px rgba(12,45,116,.7)}
.acba-tile[aria-pressed="true"] svg{color:#fff}

.acba-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid #eef2f8;background:#f7faff}
.acba-reset{border:0;background:#eef2f8;color:#0c2d74;font-weight:800;font-size:.82rem;padding:10px 16px;border-radius:10px;cursor:pointer}
.acba-reset:hover{background:#e0e8f4}
.acba-cred{font-size:.66rem;color:#9aa8bd;text-decoration:none}
.acba-cred:hover{color:#1f6fe5}
.acba-tile:focus-visible,.acba-stepper button:focus-visible,.acba-reset:focus-visible,.acba-close:focus-visible{outline:3px solid #ffbf00;outline-offset:2px}

/* Reading guide bar */
#acba-guidebar{position:fixed;left:0;right:0;top:0;height:42px;z-index:2147482900;pointer-events:none;background:rgba(12,45,116,.10);border-top:2px solid rgba(12,45,116,.55);border-bottom:2px solid rgba(12,45,116,.55);display:none}
html.acba-guide #acba-guidebar{display:block}

/* ====================== EFFECT CLASSES (on <html>) ====================== */
html.acba-fs-1{font-size:108%!important}
html.acba-fs-2{font-size:118%!important}
html.acba-fs-3{font-size:132%!important}

html.acba-sp-1 body :is(p,li,a,span,h1,h2,h3,h4,h5,h6,dt,dd,label,td,th,blockquote,figcaption){letter-spacing:.04em!important;word-spacing:.08em!important;line-height:1.7!important}
html.acba-sp-2 body :is(p,li,a,span,h1,h2,h3,h4,h5,h6,dt,dd,label,td,th,blockquote,figcaption){letter-spacing:.09em!important;word-spacing:.16em!important;line-height:2!important}

html.acba-font body :is(p,li,a,span,h1,h2,h3,h4,h5,h6,dt,dd,label,td,th,blockquote,figcaption,input,textarea,button,select){font-family:'Atkinson Hyperlegible',Verdana,Tahoma,Arial,sans-serif!important}

html.acba-links body a{text-decoration:underline!important;outline:2px solid #ffbf00!important;outline-offset:1px;background:#fff8e1!important;color:#0a2a6b!important}

html.acba-cursor,html.acba-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' stroke='%23fff' stroke-width='1.4' d='M5 2l14 7-6 2-2 6z'/%3E%3C/svg%3E") 5 3,auto!important}

html.acba-noanim *,html.acba-noanim *::before,html.acba-noanim *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

html.acba-noimg body :is(img,picture,video,iframe){visibility:hidden!important}

/* Filter modes applied per top-level body child, excluding the widget itself */
html.acba-gray body>*:not(#acba-root){filter:grayscale(1)!important}
html.acba-invert body>*:not(#acba-root){filter:invert(1) hue-rotate(180deg)!important}
html.acba-invert body>*:not(#acba-root) :is(img,video,picture,iframe){filter:invert(1) hue-rotate(180deg)!important}
