/* Affinity Acupuncture – accessibility toolbar + user-selected display modes.
   Self-hosted; no external requests. Generated into assets/css/a11y.css by build_site.py
   (the "stacked layout at large text" block at the end is derived from style.css). */

/* ---- Floating button + panel ---- */
.a11y-root{position:fixed;z-index:90;left:20px;bottom:calc(20px + var(--a11y-bar-h,0px))}
.a11y-btn{display:grid;place-items:center;width:56px;height:56px;padding:0;border-radius:50%;border:3px solid #fff;background:var(--sage-800);color:#fff;cursor:pointer;box-shadow:0 0 0 1px rgba(29,47,39,.35),0 6px 20px rgba(29,47,39,.32);transition:background-color .2s,transform .2s}
.a11y-btn:hover{background:var(--sage-900);transform:scale(1.05)}
.a11y-btn svg{width:30px;height:30px}
.a11y-backdrop{position:fixed;inset:0;z-index:89;background:rgba(29,47,39,.38)}
.a11y-backdrop[hidden],.a11y-panel[hidden]{display:none}
.a11y-panel{position:fixed;z-index:91;left:20px;bottom:calc(88px + var(--a11y-bar-h,0px));width:min(400px,calc(100vw - 40px));max-height:calc(100vh - 110px - var(--a11y-bar-h,0px));max-height:calc(100dvh - 110px - var(--a11y-bar-h,0px));display:flex;flex-direction:column;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(29,47,39,.3);font:400 1rem/1.45 var(--sans);overflow:hidden}
.a11y-panel:focus{outline:none}
.a11y-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 12px 20px;border-bottom:1px solid var(--line);background:var(--sage-50)}
.a11y-head .a11y-title{margin:0;font:500 1.3rem/1.2 var(--serif);letter-spacing:-.01em;color:var(--sage-900)}
.a11y-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--sage-200);background:#fff;color:var(--sage-900);cursor:pointer}
.a11y-close:hover{background:var(--sage-100)}
.a11y-close svg{width:20px;height:20px}
.a11y-body{padding:16px 20px 18px;overflow-y:auto;overscroll-behavior:contain}
.a11y-size{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.a11y-size-label{font-weight:600;color:var(--sage-900)}
.a11y-size-ctl{display:flex;align-items:center;gap:8px}
.a11y-step{min-width:52px;min-height:48px;padding:0 12px;border-radius:12px;border:1.5px solid var(--sage-700);background:#fff;color:var(--sage-900);font:700 1.05rem/1 var(--sans);cursor:pointer}
.a11y-step:hover{background:var(--sage-100)}
.a11y-step[aria-disabled="true"]{opacity:.45;cursor:not-allowed;border-color:var(--sage-200)}
.a11y-readout{min-width:3.6em;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.a11y-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.a11y-tog{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:8px 12px;text-align:left;border-radius:12px;border:1.5px solid var(--sage-200);background:#fff;color:var(--ink);font:500 .92rem/1.25 var(--sans);cursor:pointer;transition:background-color .2s,border-color .2s}
.a11y-tog:hover{background:var(--sage-50)}
.a11y-tog[aria-checked="true"]{border-color:var(--sage-800);background:var(--sage-50)}
.a11y-sw{flex:none;position:relative;width:38px;height:22px;border-radius:999px;background:#fff;border:2px solid var(--sage-700);transition:background-color .2s}
.a11y-sw::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--sage-700);transition:transform .2s,background-color .2s}
.a11y-tog[aria-checked="true"] .a11y-sw{background:var(--sage-800)}
.a11y-tog[aria-checked="true"] .a11y-sw::after{transform:translateX(16px);background:#fff}
.a11y-reset{width:100%;margin-top:14px;min-height:48px;border-radius:999px;border:1.5px solid var(--clay);background:#fff;color:#6F4326;font:600 .98rem/1 var(--sans);cursor:pointer}
.a11y-reset:hover{background:var(--clay-soft)}
.a11y-statement{display:inline-block;margin-top:14px;font-weight:600;color:var(--sage-800)}
.a11y-note{margin:10px 0 0;font-size:.82rem;line-height:1.5;color:var(--muted)}

@media (max-width:960px){
  .a11y-root{left:12px;bottom:calc(12px + var(--a11y-bar-h,0px))}
  .a11y-btn{width:48px;height:48px;border-width:2px}
  .a11y-btn svg{width:26px;height:26px}
  .a11y-panel{left:12px;right:12px;bottom:12px;width:auto;max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}
}
@media (max-width:420px){.a11y-grid{grid-template-columns:1fr}}

/* ---- Display modes (set on <html> by the toolbar) ---- */
/* grayscale / invert */
html.a11y-gray{filter:grayscale(1)}
html.a11y-invert{filter:invert(1) hue-rotate(180deg)}
html.a11y-gray.a11y-invert{filter:grayscale(1) invert(1) hue-rotate(180deg)}
html.a11y-invert img,html.a11y-invert video{filter:invert(1) hue-rotate(180deg)}
/* Footer logo is light-on-dark artwork: let the page-level invert turn it dark-on-light with the footer (do not re-invert it) */
html.a11y-invert img.foot-logo{filter:none}

/* high contrast */
html.a11y-hc body{background:#000!important;color:#fff!important}
html.a11y-hc body *{background-color:#000!important;background-image:none!important;color:#fff!important;border-color:#fff!important;box-shadow:none!important;text-shadow:none!important;opacity:1}
html.a11y-hc body *::before,html.a11y-hc body *::after{background-image:none!important;border-color:#fff!important;color:#fff!important;box-shadow:none!important}
html.a11y-hc .facts li::before,html.a11y-hc .steps li::after{background-color:#fff!important}
html.a11y-hc .steps li::before{background-color:#fff!important;color:#000!important}
html.a11y-hc .site-header::before,html.a11y-hc .cta-band::after{background-color:transparent!important}
html.a11y-hc .a11y-backdrop{background:#000!important}
html.a11y-hc a,html.a11y-hc a *{color:#ffff00!important;text-decoration:underline!important}
html.a11y-hc .btn{border:2px solid #fff!important;text-decoration:none!important}
html.a11y-hc a.btn-primary,html.a11y-hc a.btn-primary *,html.a11y-hc .a11y-btn,html.a11y-hc .a11y-btn *{background-color:#ffff00!important;color:#000!important}
html.a11y-hc .a11y-btn{border-color:#fff!important}
html.a11y-hc img{filter:contrast(1.1)}
html.a11y-hc :focus-visible{outline:4px solid #00ffff!important;outline-offset:3px}
html.a11y-hc .a11y-tog[aria-checked="true"] .a11y-sw{background-color:#ffff00!important}
html.a11y-hc .a11y-tog[aria-checked="true"] .a11y-sw::after{background-color:#000!important}
html.a11y-hc .a11y-sw::after{background-color:#fff!important}
html.a11y-hc .a11y-sw,html.a11y-hc .a11y-sw::after{box-shadow:none!important}
html.a11y-hc .faq summary::after{background-image:none!important;background-color:#000!important;width:30px;height:30px;display:grid;place-items:center;content:"+";color:#fff!important;font:700 1.3rem/1 var(--sans)}
html.a11y-hc .eyebrow::before{background-color:#fff!important}
html.a11y-hc .skip:focus{background-color:#ffff00!important;color:#000!important}

/* readable (dyslexia-friendly system) font */
html.a11y-font body,html.a11y-font body *:not(svg):not(svg *){font-family:Verdana,Tahoma,"DejaVu Sans","Trebuchet MS",Arial,sans-serif!important;font-variation-settings:normal!important;font-style:normal!important}
html.a11y-font body *::before,html.a11y-font body *::after{font-family:Verdana,Tahoma,"DejaVu Sans",Arial,sans-serif!important}

/* highlight links */
html.a11y-links a:not(.a11y-btn){text-decoration:underline!important;text-decoration-thickness:2px!important;text-underline-offset:3px!important;background-color:#fff59d!important;color:#1a1a1a!important;outline:2px solid #1a1a1a;outline-offset:1px;border-radius:3px}
html.a11y-links a:not(.a11y-btn) *{color:#1a1a1a!important}
html.a11y-links a:not(.a11y-btn):focus-visible{outline:4px solid var(--clay);outline-offset:2px}
html.a11y-links .nav-list a{background-color:#fff59d!important}

/* large cursor (self-contained SVG data URIs) */
html.a11y-cursor,html.a11y-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 d='M4 2l15 9.5-6.5 1.4 3.7 7.6-3 1.5-3.7-7.6L4.8 19z' fill='black' stroke='white' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 8 4,auto!important}
html.a11y-cursor a,html.a11y-cursor a *,html.a11y-cursor button,html.a11y-cursor button *,html.a11y-cursor summary,html.a11y-cursor summary *,html.a11y-cursor [role="button"]{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 d='M4 2l15 9.5-6.5 1.4 3.7 7.6-3 1.5-3.7-7.6L4.8 19z' fill='%23d9480f' stroke='white' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 8 4,pointer!important}

/* pause animations and motion */
html.a11y-motion{scroll-behavior:auto!important}
html.a11y-motion *,html.a11y-motion *::before,html.a11y-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.a11y-motion .reveal{opacity:1!important;transform:none!important}
html.a11y-motion .btn:hover,html.a11y-motion .a11y-btn:hover{transform:none!important}

/* line and letter spacing (WCAG 1.4.12 values) */
html.a11y-spacing body *:not(svg):not(svg *){line-height:1.8!important;letter-spacing:.12em!important;word-spacing:.16em!important}
html.a11y-spacing body p{margin-bottom:2em!important}
html.a11y-spacing{overflow-wrap:break-word}

/* text-size helpers: allow long words to wrap instead of overflowing */
html.a11y-ts body,html.a11y-spacing body,html.a11y-font body{overflow-wrap:anywhere}
html.a11y-ts .brand-name,html.a11y-ts h1,html.a11y-ts h2,html.a11y-ts h3{overflow-wrap:anywhere}
html.a11y-ts .brand-text{min-width:0}
html.a11y-ts .header-in{flex-wrap:wrap;row-gap:6px}
html.a11y-big .header-in{flex-wrap:nowrap;gap:12px;padding-block:6px}
html.a11y-big.no-js .header-in{flex-wrap:wrap}
html.a11y-big .brand{min-width:0;flex:1 1 auto}
html.a11y-big .brand-name{font-size:.9rem;line-height:1.1}
html.a11y-big .brand-sub{font-size:.5rem;letter-spacing:.14em}
html.a11y-big .nav-toggle{flex:none}
html.a11y-big h1{font-size:1.55rem}
html.a11y-big h2{font-size:1.4rem}
html.a11y-big h3{font-size:1.2rem}
.a11y-root .a11y-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Large text (150%+): reflow like a narrow screen. Generated from style.css media queries. ---- */
html.a11y-big .header-cta .btn-ghost .t{display:none}
html.a11y-big .nav-list a{padding:10px 10px;font-size:.9rem}
html.a11y-big{--header-h:64px}
html.a11y-big.js .nav-toggle{display:inline-flex}
html.a11y-big .header-cta{display:none}
html.a11y-big .primary-nav{position:fixed;inset:var(--header-h) 0 0 0;background:var(--bg);padding:12px var(--gutter) 120px;overflow-y:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
html.a11y-big .primary-nav.open{opacity:1;transform:none;visibility:visible}
html.a11y-big .nav-list{flex-direction:column;gap:0}
html.a11y-big .nav-list a{padding:18px 4px;border-radius:0;border-bottom:1px solid var(--line);font:400 1.5rem/1.2 var(--serif);background:none!important}
html.a11y-big .nav-list a[aria-current="page"]{color:var(--clay)}
html.a11y-big.no-js .primary-nav{position:static;opacity:1;visibility:visible;transform:none;padding:0 0 12px;width:100%}
html.a11y-big.no-js .header-in{flex-wrap:wrap}
html.a11y-big .mobile-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(251,248,243,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
html.a11y-big .mobile-bar .btn{min-height:50px}
html.a11y-big body{padding-bottom:76px}
html.a11y-big .hero-grid{grid-template-columns:1fr}
html.a11y-big .hero-art{max-width:290px;order:-1;margin-bottom:6px}
html.a11y-big .hero{padding-top:28px}
html.a11y-big .hero-badge{left:-8px;bottom:22px}
html.a11y-big .hero-art .arch{aspect-ratio:1/1.1}
html.a11y-big .cols-4{grid-template-columns:repeat(2,1fr)}
html.a11y-big .cols-3{grid-template-columns:1fr 1fr}
html.a11y-big .cols-4,html.a11y-big .cols-3,html.a11y-big .cols-2{grid-template-columns:1fr}
html.a11y-big .split{grid-template-columns:1fr}
html.a11y-big .split .reverse-m{order:-1}
html.a11y-big .steps{grid-template-columns:1fr}
html.a11y-big .steps li::after{display:none}
html.a11y-big .steps li{padding:0 0 0 66px}
html.a11y-big .person{grid-template-columns:1fr}
html.a11y-big .person .arch{max-width:300px}
html.a11y-big .cta-band{grid-template-columns:1fr}
html.a11y-big .svc{grid-template-columns:1fr}
html.a11y-big .svc:nth-child(even) .svc-media{order:0}
html.a11y-big .foot-grid{grid-template-columns:1fr 1fr}
html.a11y-big .foot-grid{grid-template-columns:1fr}
html.a11y-big .foot-brand img.foot-logo{width:200px}
html.a11y-big body{padding-bottom:calc(var(--a11y-bar-h,76px) + 8px)}
html.a11y-big .a11y-panel .a11y-grid{grid-template-columns:1fr}
