/* ==========================================================================
   OsherTech accessibility toolbar
   Standalone: depends on no other stylesheet, safe to drop into any page.
   ========================================================================== */

.a11y-open{
  position:fixed; inset-block-end:20px; left:20px; z-index:1000;
  width:52px; height:52px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:#0b6b5c; color:#fff; border:2px solid #5eead4;
  box-shadow:0 6px 22px rgba(0,0,0,.5);
  transition:transform .25s cubic-bezier(.22,1,.36,1), background-color .25s;
}
.a11y-open:hover{background:#0f8b78; transform:scale(1.06);}
.a11y-open svg{width:26px; height:26px;}

.a11y-panel{
  position:fixed; inset-block-end:84px; left:20px; z-index:1000;
  width:min(300px, calc(100vw - 40px));
  padding:18px; border-radius:16px;
  background:#08110f; border:1px solid rgba(126,232,220,.32);
  box-shadow:0 18px 48px rgba(0,0,0,.6);
  color:#eafcfa; font-family:'Assistant',Arial,sans-serif; font-size:15px; line-height:1.5;
  direction:rtl; text-align:right;
}
.a11y-panel[hidden]{display:none;}
.a11y-panel h2{
  margin:0 0 4px; font-size:1rem; font-weight:700; color:#eafcfa;
}
.a11y-panel .a11y-hint{margin:0 0 14px; font-size:.8rem; color:rgba(234,252,250,.6);}
.a11y-group{display:flex; flex-direction:column; gap:8px;}

.a11y-btn{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  width:100%; padding:11px 14px; border-radius:10px; cursor:pointer;
  font:inherit; text-align:right;
  background:rgba(94,234,212,.07); color:#eafcfa;
  border:1px solid rgba(126,232,220,.2);
  transition:background-color .2s, border-color .2s;
}
.a11y-btn:hover{background:rgba(94,234,212,.16); border-color:rgba(126,232,220,.45);}
.a11y-btn[aria-pressed="true"]{background:#5eead4; color:#04201d; border-color:#5eead4; font-weight:700;}
.a11y-btn .a11y-state{font-size:.75rem; opacity:.75;}

.a11y-size{display:flex; gap:8px;}
.a11y-size .a11y-btn{justify-content:center;}

.a11y-reset{
  margin-top:12px; width:100%; padding:10px; border-radius:10px; cursor:pointer;
  font:inherit; background:transparent; color:rgba(234,252,250,.7);
  border:1px dashed rgba(126,232,220,.3);
}
.a11y-reset:hover{color:#eafcfa; border-color:rgba(126,232,220,.55);}

.a11y-statement{
  display:block; margin-top:12px; font-size:.8rem; text-align:center;
  color:#5eead4; text-decoration:underline;
}

.a11y-open:focus-visible, .a11y-btn:focus-visible,
.a11y-reset:focus-visible, .a11y-statement:focus-visible{
  outline:3px solid #ffdd00; outline-offset:3px;
}

/* ── text scaling. The page uses rem for type, so moving the root size moves
      the whole scale without touching a single component. ── */
html.a11y-text-1{font-size:112.5%;}
html.a11y-text-2{font-size:125%;}
html.a11y-text-3{font-size:140%;}

/* ── greyscale. Applied to each top level region rather than to <html>, because
      a filter on an ancestor turns fixed positioning into scroll bound
      positioning and would break the video background and the sticky header. ── */
html.a11y-grayscale .site-bg,
html.a11y-grayscale header.nav,
html.a11y-grayscale main,
html.a11y-grayscale footer,
html.a11y-grayscale .legal-shell{
  filter:grayscale(1);
}

/* ── high contrast ── */
html.a11y-contrast body{background:#000;}
html.a11y-contrast .site-bg__wrap,
html.a11y-contrast .site-bg__v{opacity:.12 !important;}
html.a11y-contrast{
  --ink:#ffffff;
  --ink-soft:#ffffff;
  --ink-faint:#e6e6e6;
  --card:#000000;
  --ground:#000000;
  --ground-deep:#000000;
  --glass:#000000;
  --hairline:#ffffff;
  --hairline-strong:#ffffff;
  --cyan:#00ffe0;
  --cyan-dim:#00ffe0;
}
html.a11y-contrast .service-card,
html.a11y-contrast .panel,
html.a11y-contrast .stat,
html.a11y-contrast .c-method,
html.a11y-contrast .automation-banner,
html.a11y-contrast .nav__rail,
html.a11y-contrast .case-study,
html.a11y-contrast .project-card,
html.a11y-contrast .lead-form{
  background:#000 !important; border-color:#fff !important;
}
html.a11y-contrast .btn-solid{background:#fff; color:#000;}
html.a11y-contrast .btn-cyan{background:#00ffe0; color:#000;}
html.a11y-contrast p,
html.a11y-contrast li,
html.a11y-contrast span,
html.a11y-contrast label{color:#fff !important;}

/* ── link highlighting ── */
html.a11y-links main a,
html.a11y-links footer a,
html.a11y-links header a{
  text-decoration:underline !important;
  text-underline-offset:3px;
  outline:1px dotted currentColor; outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  .a11y-open{transition:none;}
}

@media (max-width:520px){
  .a11y-open{width:46px; height:46px; inset-block-end:14px; left:14px;}
  .a11y-panel{inset-block-end:70px; left:14px;}
}
