/* /aftercare-guide: its own sheet, loaded after site.css.
   The sibling of /journey-guide. On paper it is a cover and eleven Letter sheets
   a patient prints or saves as a PDF (the PRINT block at the foot of this
   file). On a screen it is one page read in the order recovery happens: the
   first 72 hours, the rules, physical therapy, the part of the body that was
   treated, and when to call.
   One picture runs through it: time, drawn to scale. Two weeks as fourteen
   days on the cover, 72 hours as four stretches, nine months as one line, a
   year with its three reads, and twelve weeks of load stepping up from day 10. No drawing shows a result; they show time only.
   Script: scripts/aftercare-guide.js. With that script absent every part is
   visible, every fold is open, the ticks still tick and every link jumps. */

html:has(body.ac) {
  --hc-nav-h: 64px;            /* fallback; the script sets the real header height */
  --hc-bar-h: 52px;
  /* every jump, anchor and Tab stop lands below the header and the bar */
  scroll-padding-top: calc(var(--hc-nav-h) + var(--hc-bar-h) + 12px);
}
.ac {
  --ac-ease: cubic-bezier(.16, 1, .3, 1);
  --ac-gut: clamp(20px, 4vw, 56px);
  --ac-pad: clamp(52px, 6vw, 88px);
  --ac-warn: #7d2d18;          /* the "hold off" and "call" colour, as the printed guide always had it */
}
.ac main { overflow-x: clip; }

/* ============ GROUND RULES ============ */
.ac-wrap { max-width: calc(1240px + 2 * var(--ac-gut)); margin-inline: auto; padding-inline: var(--ac-gut); }
/* text fills its column; the column sets the measure */
.ac main p { max-width: none; margin: 0; text-wrap: wrap; }
.ac main a:not(.btn) { border-bottom: 0; }
/* one class of weight, so each part's own spacing below still wins */
.ac :where(main ul, main ol, main dl, main dd, main figure) { list-style: none; margin: 0; padding: 0; }
.ac main h2 {
  font-family: var(--font-display); font-weight: 300; color: var(--ink);
  font-size: clamp(2rem, 3.5vw, 3.1rem); line-height: 1.08; letter-spacing: -.012em;
  margin: 0; max-width: none; text-wrap: wrap;
}
.ac main :is(h3, h4) { margin: 0; max-width: none; }
.ac-h3 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.45rem, 2vw, 1.8rem); line-height: 1.15; letter-spacing: -.01em; color: var(--ink); }
.ac main strong { font-weight: 600; color: var(--ink); }
.ac-lede { font-size: clamp(1.1rem, 1.45vw, 1.28rem); line-height: 1.55; color: var(--ink-soft); }
.ac-sub { font-size: 15px; line-height: 1.4; color: var(--ink-muted); }
.ac-head { display: grid; gap: 16px; margin-bottom: clamp(32px, 4vw, 52px); }
.ac-paper, .ac-paper img { display: none; }   /* the sheets' own furniture: paper only */
/* a link inside a sentence is underlined, so it reads as one */
.ac main :is(p, li:not(.ac-toc li)) > a:not([class]) { color: var(--accent-blue-hover); text-decoration: underline; text-decoration-color: var(--accent-ice); text-decoration-thickness: 1.5px; text-underline-offset: 4px; transition: color 200ms, text-decoration-color 200ms; }
.ac main :is(p, li:not(.ac-toc li)) > a:not([class]):hover { color: var(--accent-blue); text-decoration-color: currentColor; }
.ac main :is(a, button, summary, input):focus-visible, .ac-hours input:focus-visible + .ac-box { outline: 2px solid var(--accent-blue); outline-offset: 3px; border-radius: 4px; }
.ac :is(.ac-adjunct, .ac-next, .ac-pt) :is(a, button):focus-visible { outline-color: var(--accent-ice); }
/* a part that receives focus after a jump is not itself a control */
.ac main :is(h1, h2, h3, section)[tabindex="-1"]:focus { outline: none; }

/* the small drawn marks share one pen */
.ac-ic { width: 28px; height: 28px; flex: none; }
.ac-ic :is(path, circle, rect), .ac-fig :is(path, circle, rect), .ac-bag :is(path, rect, circle), .ac-nopill :is(path, rect, circle), .ac-beside :is(path, rect), .ac-ring path, .ac-cal :is(path, rect, circle) {
  fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round;
}
.ac-chev { flex: none; }
.ac-chev path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ac-badge { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; border: 1.5px solid var(--ink); background: #fff; color: var(--ink); flex: none; }
/* the person: one figure, the treated part marked */
.ac-fig { flex: none; color: var(--ink); }
.ac-fig .ac-fig__dot { fill: var(--accent-blue); stroke: #fff; stroke-width: 2; }
.ac-fig .ac-fig__line { stroke: var(--accent-blue); stroke-width: 4.5; }
.ac-fig .ac-fig__fill { fill: var(--accent-wash); stroke: none; }
.ac-notice { margin-top: clamp(24px, 3vw, 36px) !important; font-size: 15.5px; line-height: 1.55; color: var(--ink-muted); }
.ac-notice strong { margin-right: 6px; }
.ac-dots li { position: relative; padding: 11px 0 11px 22px; font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); border-bottom: 1px solid var(--border); }
.ac-dots li::before { content: ""; position: absolute; left: 2px; top: 22px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent-blue); }

/* the onward link: the arrow leans the way it points */
.ac-go { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; font-weight: 600; color: var(--accent-blue-hover); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; transition: color 200ms, text-decoration-color 260ms; }
.ac-go span { display: inline-block; transition: transform 360ms var(--ac-ease); }
.ac-go:hover { color: var(--accent-blue); text-decoration-color: currentColor; }
.ac-go:active span { transform: scale(.9); }
.ac-go--back:hover span { transform: translateX(-6px); }
.ac-go--call { color: var(--ac-warn); }
.ac-go--call:hover { color: var(--ac-warn); }
.ac-go--call:hover span { transform: translateY(4px); }
.ac-next .ac-go { color: var(--accent-ice); }
.ac-next .ac-go:hover { color: #fff; }

/* ============ REVEALS ============
   Hidden only once the script has said it is running (ac-js on <html>), so
   with no script nothing is ever hidden. Each part comes in its own way. */
.ac-js [data-r] { transition: opacity 620ms ease, transform 820ms var(--ac-ease); transition-delay: calc(var(--n, 0) * 90ms); }
.ac-js [data-r]:not(.is-in) { opacity: 0; transform: translateY(18px); }
.ac-js [data-r="left"]:not(.is-in) { transform: translateX(-28px); }
.ac-js [data-r="right"]:not(.is-in) { transform: translateX(28px); }
.ac-js [data-r="up"]:not(.is-in) { transform: translateY(34px); }
/* these stay put and draw themselves instead */
.ac-js :is([data-r="span"], [data-r="rule1"], [data-r="adjunct"], [data-r="flags"], [data-r="pt"]):not(.is-in) { opacity: 1; transform: none; }

/* ============ COVER ============ */
.ac-hero { padding-block: clamp(20px, 3vw, 40px) clamp(40px, 5vw, 72px); }
.ac-hero__h1 { font-family: var(--font-display); font-weight: 300; font-size: clamp(2.15rem, 4.2vw, 3.8rem); line-height: 1.06; letter-spacing: -.015em; color: var(--ink); margin: 0 0 clamp(24px, 3.4vw, 48px); max-width: none; text-wrap: wrap; }
/* a heading that has to wrap breaks where the styling changes */
.ac-hero__h1 > .h-lead, .ac-hero__h1 > em { display: inline-block; }
.ac-hero__h1 > em { color: var(--accent-blue); }
.ac-hero__row { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.ac-hero__answer { font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.5; color: var(--ink); }
.ac-hero__lede { margin-top: 18px !important; font-size: clamp(1.02rem, 1.25vw, 1.14rem); line-height: 1.6; color: var(--ink-soft); }
.ac-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin-top: 28px; }
.ac-hero__reviewed { margin-top: 18px !important; font-size: 14px; line-height: 1.5; color: var(--ink-muted); }
.ac-print { min-height: 48px; }
.ac-print__ic { flex: none; overflow: visible; }
.ac-print__ic path { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ac-print__out { transition: transform 360ms var(--ac-ease); }
.ac-print:hover .ac-print__out { transform: translateY(2.5px); }
/* the button prints: with no script it has nothing to do */
html:not(.ac-js) .ac-print { display: none; }

/* two weeks, fourteen days */
.ac-hero__fig { margin: 0; }
.ac-cal { display: block; width: 100%; height: auto; overflow: visible; color: var(--ink); }
.ac-cal .ac-cal__day { fill: #fff; stroke: var(--border-strong); transition: fill 320ms, stroke 320ms; }
.ac-cal .ac-cal__day:nth-of-type(-n + 10) { stroke: var(--accent-blue); stroke-width: 2; }
.ac-cal text { fill: var(--ink-muted); stroke: none; font-family: var(--font-body); font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; }
.ac-cal .ac-cal__day.is-past { fill: var(--accent-wash); }
.ac-cal .ac-cal__brace { stroke: var(--accent-blue); stroke-width: 2; stroke-dasharray: 1; }
.ac-cal .ac-cal__water { fill: var(--accent-ice); stroke: none; }
.ac-cal .ac-cal__no { stroke: var(--accent-blue); stroke-width: 2.4; }
.ac-cal .ac-cal__run { stroke-width: 2; stroke-dasharray: 1; }
.ac-cal .ac-cal__run-tip { stroke-width: 2; }
.ac-cal .ac-cal__pill rect { fill: #fff; }
.ac-cal .ac-cal__now { stroke: var(--accent-blue); stroke-width: 3; transition: x 520ms var(--ac-ease), y 520ms var(--ac-ease); }
.ac-cal .ac-cal__now[hidden] { display: none; }

/* "When were you treated?": kept on the reader's own device */
.ac-when { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--border-strong); }
.ac-when[hidden] { display: none; }
.ac-when__label { display: block; font-family: var(--font-display); font-size: clamp(1.3rem, 1.8vw, 1.55rem); line-height: 1.2; color: var(--ink); margin-bottom: 10px; }
.ac-when__field { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.ac-when__input { min-height: 48px; min-width: min(100%, 250px); padding: 0 14px; border: 1.5px solid var(--ink-muted); border-radius: 4px; background: #fff; color: var(--ink); font: 500 16px/1.2 var(--font-body); font-variant-numeric: tabular-nums; transition: border-color 200ms, box-shadow 200ms; }
.ac-when__input:hover { border-color: var(--accent-blue); }
/* a date-and-time field hands focus to its own inner parts, so the ring is asked for on :focus-within too */
.ac-when__input:is(:focus-visible, :focus-within) { border-color: var(--accent-blue); outline: 2px solid var(--accent-blue); outline-offset: 2px; }
.ac-when__clear { min-height: 44px; padding: 0 6px; border: 0; background: none; color: var(--accent-blue-hover); font: 600 15px/1 var(--font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; transition: color 200ms, transform 200ms var(--ac-ease); }
.ac-when__clear[hidden] { display: none; }
.ac-when__clear:hover { color: var(--accent-blue); }
.ac-when__clear:active { transform: scale(.96); }
.ac-when__note { margin-top: 8px !important; font-size: 14px; line-height: 1.5; color: var(--ink-muted); }
/* said aloud, not shown: the one place a change is announced from */
.ac-vh { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.ac-when__bad { color: var(--ink); font-weight: 600; }
.ac-when__bad[hidden] { display: none; }
.ac-now { margin-top: 18px; }
.ac-now[hidden] { display: none; }
.ac-now__treated { display: none; }
.ac-now__since { font-size: 17px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.ac-now__list li { display: grid; gap: 2px; padding-block: 11px; border-top: 1px solid var(--border); font-size: 15.5px; line-height: 1.5; color: var(--ink-soft); }
.ac-now__list li:first-child { margin-top: 10px; }
.ac-now__list li:last-child { border-bottom: 1px solid var(--border); }
.ac-now__list b { font-weight: 600; color: var(--accent-blue-hover); font-size: 14px; font-variant-numeric: tabular-nums; }
@keyframes ac-arrive { from { opacity: 0; transform: translateY(8px); } }
.ac-now.is-fresh > * { animation: ac-arrive 520ms var(--ac-ease) both; }
.ac-now.is-fresh > ul { animation-delay: 90ms; }

.ac-toc { margin-top: clamp(32px, 4.5vw, 60px); }
.ac-toc ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(20px, 3vw, 48px); }
.ac main .ac-toc a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; padding-block: 14px; border-top: 1px solid var(--border-strong); font-size: 16px; line-height: 1.4; font-weight: 500; color: var(--ink); text-decoration: none; transition: color 200ms, border-color 260ms; }
.ac-toc a::after { content: ""; flex: none; width: 10px; height: 10px; border-right: 1.5px solid var(--accent-blue); border-bottom: 1.5px solid var(--accent-blue); transform: translateY(-3px) rotate(45deg); transition: transform 360ms var(--ac-ease); }
.ac main .ac-toc a:hover { color: var(--accent-blue-hover); border-top-color: var(--accent-blue); }
.ac-toc a:hover::after { transform: translateY(3px) rotate(45deg); }
.ac-toc a:active::after { transform: translateY(6px) rotate(45deg); }

/* first paint: the fourteen days are laid out one after another, the first
   three are bracketed, and the line under them is drawn out past the last */
@keyframes ac-up { from { opacity: 0; transform: translateY(22px); } }
@keyframes ac-fade { from { opacity: 0; } }
@keyframes ac-rise { from { opacity: 0; transform: translateY(14px); } }
@keyframes ac-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes ac-day { from { opacity: 0; transform: scale(.7); } }
.ac-js .ac-hero__h1 > * { animation: ac-up 900ms var(--ac-ease) both; }
.ac-js .ac-hero__h1 > em { animation-delay: 110ms; }
.ac-js .ac-hero__text > * { animation: ac-up 900ms var(--ac-ease) 240ms both; }
.ac-js .ac-hero__text > .ac-hero__actions { animation-delay: 340ms; }
.ac-js .ac-cal__day { transform-box: fill-box; transform-origin: center; animation: ac-day 520ms var(--ac-ease) calc(300ms + var(--n, 0) * 55ms) both; }
.ac-js .ac-cal .ac-cal__brace { animation: ac-draw 700ms var(--ac-ease) 1150ms both; }
.ac-js .ac-cal :is(.ac-cal__glass, .ac-cal__wine) { animation: ac-fade 500ms ease 1500ms both; }
.ac-js .ac-cal .ac-cal__run { animation: ac-draw 1500ms var(--ac-ease) 1500ms both; }
.ac-js .ac-cal :is(.ac-cal__run-tip, .ac-cal__pill) { animation: ac-fade 400ms ease 2700ms both; }
.ac-js .ac-when { animation: ac-fade 600ms ease 700ms both; }
.ac-js .ac-toc li { animation: ac-rise 700ms var(--ac-ease) calc(520ms + var(--n, 0) * 70ms) both; }

/* ============ CONTENTS BAR (follows the reader) ============ */
.ac .hc-bar {
  /* under the phone menu's sheet (55) and backdrop (50), over the page */
  position: fixed; left: 0; right: 0; top: var(--hc-nav-h); z-index: 49;
  height: var(--hc-bar-h);
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--border);
  transform: translateY(-8px); opacity: 0; visibility: hidden;
  transition: opacity 260ms, transform 360ms var(--ac-ease), visibility 0s 360ms;
}
.ac .hc-bar.is-on { transform: none; opacity: 1; visibility: visible; transition: opacity 260ms, transform 360ms var(--ac-ease); }
body.ac.nav-open .hc-bar { opacity: 0; visibility: hidden; }
.ac .hc-bar__track {
  max-width: calc(1240px + 2 * var(--ac-gut)); margin: 0 auto; padding: 0 var(--ac-gut);
  height: 100%; display: flex; align-items: stretch; gap: clamp(18px, 2.4vw, 32px);
  overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; scroll-padding-inline: 28px;
}
.ac .hc-bar__track::-webkit-scrollbar { display: none; }
.ac .hc-bar__track a {
  position: relative; flex: none; display: flex; align-items: center;
  font-size: 14px; font-weight: 500; color: var(--ink-muted); white-space: nowrap;
  transition: color 200ms;
}
.ac .hc-bar__track a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: var(--accent-blue); transform: scaleX(0); transform-origin: left;
  transition: transform 360ms var(--ac-ease);
}
.ac .hc-bar__track a:hover, .ac .hc-bar__track a[aria-current] { color: var(--ink); }
.ac .hc-bar__track a:hover::after { transform: scaleX(.35); }
.ac .hc-bar__track a[aria-current]::after { transform: scaleX(1); }
.ac .hc-bar__track a:focus-visible { outline: 2px solid var(--accent-blue); outline-offset: -4px; border-radius: 4px; }
/* the one link a reader may need in a hurry is never the quiet one */
.ac .hc-bar__track a.hc-bar__call { margin-left: auto; color: var(--ac-warn); font-weight: 600; }
.ac .hc-bar__track a.hc-bar__call::after { background: var(--ac-warn); }
/* the part whose window the reader is inside right now carries a dot */
.ac .hc-bar__track a.is-now::before { content: ""; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--accent-blue); }
.ac .hc-bar__progress {
  position: absolute; left: 0; top: 0; height: 2px; width: 100%;
  background: var(--accent-ice); transform-origin: left; transform: scaleX(var(--hc-p, 0));
}
/* the track runs off a phone's edge: a fade says there is more */
.ac .hc-bar::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 36px; background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff 80%); pointer-events: none; opacity: 0; transition: opacity 200ms; }
.ac .hc-bar.has-more::after { opacity: 1; }

/* ============ ABOUT THIS GUIDE ============ */
.ac-about { padding-block: var(--ac-pad) clamp(40px, 5vw, 72px); border-top: 1px solid var(--border); }
.ac-about__row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.ac-about__text { display: grid; gap: 20px; }
.ac-about__text p { font-size: clamp(1.06rem, 1.3vw, 1.2rem); line-height: 1.6; color: var(--ink-soft); }
.ac-quote { padding-top: 6px; }
.ac-quote__mark { display: block; margin-bottom: 14px; }
.ac-quote__mark path { fill: var(--accent-blue); }
.ac-quote blockquote { margin: 0; }
.ac-quote blockquote p { font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: clamp(1.4rem, 2.1vw, 1.9rem); line-height: 1.3; color: var(--ink); }
.ac-quote blockquote em { color: var(--accent-blue); }
.ac-quote figcaption { margin-top: 14px; font-size: 15px; color: var(--ink-muted); }
.ac-about__find { margin-top: clamp(40px, 5vw, 68px) !important; margin-bottom: 10px !important; }
.ac main .ac-track { display: grid; grid-template-columns: 48px minmax(0, 1fr) 20px; gap: clamp(16px, 2.4vw, 32px); align-items: center; min-height: 92px; padding-block: 12px; border-top: 1px solid var(--border-strong); color: var(--ink-soft); font-size: 17px; line-height: 1.55; text-decoration: none; transition: border-color 260ms, color 200ms; }
.ac main .ac-tracks li:last-child .ac-track { border-bottom: 1px solid var(--border-strong); }
.ac-tracks li:nth-child(2) { --n: 1; }
.ac-tracks li:nth-child(3) { --n: 2; }
.ac-track .ac-chev { color: var(--accent-blue); transform: rotate(-90deg); transition: transform 360ms var(--ac-ease); }
.ac main .ac-track:hover { border-top-color: var(--accent-blue); color: var(--ink); }
.ac-track:hover .ac-chev { transform: rotate(-90deg) translateY(6px); }
.ac-track:active .ac-fig { transform: scale(.94); }
.ac-track .ac-fig { transition: transform 260ms var(--ac-ease); }
.ac-track:hover .ac-fig { transform: translateY(-3px); }

/* ============ THE FIRST 72 HOURS ============ */
.ac-first { padding-block: clamp(40px, 5vw, 72px) var(--ac-pad); }
.ac-hours__count { margin-bottom: 10px !important; font-size: 15px; font-weight: 600; color: var(--accent-blue-hover); font-variant-numeric: tabular-nums; }
.ac-hours__count[hidden] { display: none; }
@keyframes ac-settle { 40% { transform: translateY(-3px); } }
.ac-hours__count.is-all { animation: ac-settle 700ms var(--ac-ease); }
.ac-hours__list li { border-top: 1px solid var(--border); position: relative; }
.ac-hours__list li:last-child { border-bottom: 1px solid var(--border); }
.ac-hours label { display: grid; grid-template-columns: 24px 82px minmax(120px, 2fr) minmax(0, 7fr) minmax(76px, auto); gap: 8px clamp(14px, 2vw, 28px); align-items: center; min-height: 72px; padding-block: 16px; cursor: pointer; }
.ac-hours input { position: absolute; opacity: 0; width: 24px; height: 24px; margin: 0; cursor: pointer; }
.ac-box { display: grid; place-items: center; width: 24px; height: 24px; border: 1.5px solid var(--ink-muted); border-radius: 4px; background: #fff; transition: background 220ms, border-color 220ms, transform 260ms var(--ac-ease); }
.ac-box svg { width: 16px; height: 16px; }
.ac-box path { fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 320ms var(--ac-ease) 60ms; }
.ac-hours label:hover .ac-box { border-color: var(--accent-blue); transform: scale(1.08); }
.ac-hours label:active .ac-box { transform: scale(.94); }
.ac-hours input:checked + .ac-box { background: var(--accent-blue); border-color: var(--accent-blue); }
.ac-hours input:checked + .ac-box path { stroke-dashoffset: 0; }
.ac-hours__when { font-size: 17px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-hours__text { font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); transition: color 200ms; }
.ac-hours__tag { justify-self: end; font-size: 16px; font-weight: 600; color: var(--ink); }
.ac-hours input:checked ~ :is(.ac-hours__text, .ac-hours__tag, .ac-hours__when) { color: var(--ink-muted); }
/* each stretch drawn where it falls in the 72 hours, to scale */
.ac-hours__bar { position: relative; height: 14px; border-radius: 2px; background: repeating-linear-gradient(90deg, var(--border-strong) 0 1px, transparent 1px 33.333%) left / 100% 100% no-repeat, linear-gradient(var(--border), var(--border)) left bottom / 100% 1px no-repeat; }
.ac-hours__bar::after { content: ""; position: absolute; right: 0; top: 0; bottom: 0; width: 1px; background: var(--border-strong); }
.ac-hours__bar i { position: absolute; top: 2px; bottom: 3px; left: var(--a); width: var(--w); background: var(--accent-blue); border-radius: 2px; transform-origin: left; transition: background 260ms; }
.ac-hours__list li:nth-child(1) .ac-hours__bar i { --a: 0%; --w: 8.333%; }
.ac-hours__list li:nth-child(2) .ac-hours__bar i { --a: 8.333%; --w: 25%; }
.ac-hours__list li:nth-child(3) .ac-hours__bar i { --a: 33.333%; --w: 33.333%; }
.ac-hours__list li:nth-child(4) .ac-hours__bar i { --a: 66.667%; --w: 33.333%; }
.ac-hours input:checked ~ .ac-hours__bar i { background: var(--ink-muted); }
@keyframes ac-grow { from { transform: scaleX(0); } }
.ac-js .ac-hours__list:not(.is-in) .ac-hours__bar i { transform: scaleX(0); }
.ac-js .ac-hours__list.is-in .ac-hours__bar i { animation: ac-grow 700ms var(--ac-ease) calc(120ms + var(--n, 0) * 180ms) both; }
/* the stretch the reader is in, once they have said when they were treated */
.ac-hours__list li.is-now::before { content: ""; position: absolute; left: -14px; top: 12px; bottom: 12px; width: 3px; border-radius: 2px; background: var(--accent-blue); }
.ac-hours__list li.is-now .ac-hours__when { color: var(--accent-blue-hover); }

.ac-curve { margin-top: clamp(52px, 6.5vw, 96px); }
.ac-curve__head { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 16px clamp(28px, 5vw, 80px); align-items: start; margin-bottom: clamp(28px, 3.4vw, 44px); }
/* nine months, one line: four stretches, a tick where each ends */
.ac-arc { position: relative; padding-bottom: 30px; }
.ac-arc__svg, .ac-year__svg { display: block; width: 100%; height: 48px; overflow: visible; }
.ac-arc__seg { transition: opacity 260ms; transform-box: fill-box; transform-origin: left; }
.ac-arc__seg[data-seg="0"], .ac-phase[data-phase="0"] { --k: var(--accent-ice); }
.ac-arc__seg[data-seg="1"], .ac-phase[data-phase="1"] { --k: var(--accent-blue); }
.ac-arc__seg[data-seg="2"], .ac-phase[data-phase="2"] { --k: var(--accent-blue-hover); }
.ac-arc__seg[data-seg="3"], .ac-phase[data-phase="3"] { --k: var(--ink); }
.ac-arc__seg { fill: var(--k); }
.ac-arc__tail { fill: var(--ink); opacity: .5; }
.ac-arc__now { fill: var(--ac-warn); display: none; }
.ac-arc.has-now .ac-arc__now { display: block; }
.ac-arc[data-lit] .ac-arc__seg { opacity: .22; }
.ac-arc[data-lit="0"] [data-seg="0"], .ac-arc[data-lit="1"] [data-seg="1"], .ac-arc[data-lit="2"] [data-seg="2"], .ac-arc[data-lit="3"] [data-seg="3"] { opacity: 1; }
.ac-arc__ticks b, .ac-year__ticks b { position: absolute; bottom: 0; line-height: 1; font-size: 14px; font-weight: 600; color: var(--ink-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ac-arc__ticks b:nth-child(1) { left: 0; }
.ac-arc__ticks b:nth-child(2) { left: 21.2%; transform: translateX(-50%); }
.ac-arc__ticks b:nth-child(3) { left: 42.4%; transform: translateX(-50%); }
.ac-arc__ticks b:nth-child(4) { left: 95.5%; transform: translateX(-100%); }
.ac-js .ac-arc:not(.is-in) :is(.ac-arc__seg, .ac-arc__tail) { opacity: 0; }
.ac-js .ac-arc.is-in .ac-arc__seg { animation: ac-grow 500ms linear both; }
.ac-js .ac-arc.is-in [data-seg="0"] { animation-duration: 120ms; animation-delay: 150ms; }
.ac-js .ac-arc.is-in [data-seg="1"] { animation-duration: 420ms; animation-delay: 270ms; }
.ac-js .ac-arc.is-in [data-seg="2"] { animation-duration: 470ms; animation-delay: 690ms; }
.ac-js .ac-arc.is-in [data-seg="3"] { animation-duration: 1100ms; animation-delay: 1160ms; }
.ac-js .ac-arc.is-in .ac-arc__tail { animation: ac-fade 400ms ease 2260ms both; }
.ac-phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(18px, 2.6vw, 40px); margin-top: clamp(20px, 2.6vw, 32px) !important; }
@supports (grid-template-rows: subgrid) {
  .ac-phases { grid-template-rows: repeat(3, auto); }
  .ac-phase { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
}
.ac-phase { border-top: 4px solid var(--k); padding-top: 14px; transition: opacity 260ms; }
.ac-phase:nth-child(2) { --n: 1; }
.ac-phase:nth-child(3) { --n: 2; }
.ac-phase:nth-child(4) { --n: 3; }
.ac-phase__when { font-size: 15px; font-weight: 600; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.ac-phase h4 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.3rem, 1.7vw, 1.55rem); line-height: 1.2; color: var(--ink); margin-top: 4px; }
.ac-phase > p:last-child { margin-top: 8px !important; font-size: 16px; line-height: 1.55; color: var(--ink-soft); }
.ac-phase.is-now .ac-phase__when { color: var(--ac-warn); }

/* ============ THE RULES ============ */
.ac-rules { padding-block: var(--ac-pad); border-top: 1px solid var(--border); }
.ac-rule1 { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: clamp(20px, 3.4vw, 48px); align-items: center; padding: clamp(24px, 3.2vw, 44px); border: 1.5px solid var(--ink); border-radius: 6px; }
.ac-rule1 > div { display: grid; gap: 12px; }
.ac-rule1 p { font-size: clamp(1.1rem, 1.45vw, 1.28rem); line-height: 1.6; color: var(--ink-soft); }
.ac-rule1 p > span:first-child { font-weight: 600; color: var(--ink); }
.ac-rule1 em { font-style: normal; color: var(--ink); text-decoration: underline; text-decoration-color: var(--accent-blue); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.ac-nopill { color: var(--ink); }
.ac-nopill .ac-nopill__pill rect { fill: var(--accent-wash); }
.ac-nopill :is(.ac-nopill__ring, .ac-nopill__bar) { stroke: var(--ac-warn); stroke-width: 4; stroke-dasharray: 1; }
.ac-js .ac-rule1:not(.is-in) :is(.ac-nopill__ring, .ac-nopill__bar) { stroke-dashoffset: 1; }
.ac-js .ac-rule1.is-in .ac-nopill__ring { animation: ac-draw 900ms var(--ac-ease) 200ms both; }
.ac-js .ac-rule1.is-in .ac-nopill__bar { animation: ac-draw 420ms var(--ac-ease) 1000ms both; }
.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 6vw, 96px); margin-top: clamp(40px, 5vw, 68px); }
/* the two lists read across as well as down: line for line on one row */
@supports (grid-template-rows: subgrid) {
  :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) { grid-template-rows: repeat(6, auto); row-gap: 0; }
  :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) > div { display: grid; grid-template-rows: subgrid; grid-row: span 6; }
  :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) .ac-dots { display: grid; grid-template-rows: subgrid; grid-row: span 4; }
}
.ac-rules__col .ac-sub, .ac-neuro__cols .ac-sub, .ac-combined__col .ac-sub { margin: 4px 0 10px !important; }
.ac-rules__col .ac-dots, .ac-neuro__cols .ac-dots, .ac-combined__col .ac-dots { border-top: 1.5px solid var(--ink); }
.ac-pain__h { margin: clamp(44px, 5.5vw, 76px) 0 22px !important; }
.ac-pain { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 64px); }
@supports (grid-template-rows: subgrid) {
  .ac-pain { grid-template-rows: repeat(4, auto); }
  .ac-pain li { display: grid; grid-template-rows: subgrid; grid-row: span 4; }
}
.ac-pain li { position: relative; row-gap: 8px; }
.ac-pain li:nth-child(2) { --n: 1; }
.ac-pain li:nth-child(3) { --n: 2; }
/* the line runs from one badge to the next and stops at the last */
.ac-pain li:not(:last-child)::after { content: ""; position: absolute; top: 28px; left: 56px; width: calc(100% - 56px + clamp(24px, 4vw, 64px)); height: 1.5px; background: var(--border-strong); }
.ac-pain__rank { font-family: var(--font-display); font-size: clamp(1.3rem, 1.7vw, 1.55rem); line-height: 1.2; color: var(--ink); margin-top: 8px !important; }
.ac-pain li > p:nth-of-type(2) { font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); }
.ac-pain__tag { font-size: 16px; font-weight: 600; color: var(--ink); align-self: end; }
.ac-pain .is-avoid :is(.ac-pain__rank, .ac-pain__tag) { color: var(--ac-warn); }
.ac-pain .is-avoid .ac-badge { border-color: var(--ac-warn); color: var(--ink-muted); }
.ac-ic .ac-ic__no { stroke: var(--ac-warn); stroke-width: 2; }

/* ============ JOINTS, AND THE IV TRACKS: one fold for each ============ */
.ac-joint, .ac-iv { padding-block: var(--ac-pad); border-top: 1px solid var(--border); }
.ac-upper { padding-block: 0 var(--ac-pad); }
.ac-neuro { padding-top: var(--ac-pad); border-top: 1px solid var(--border); }
.ac-region { border-top: 1.5px solid var(--ink); }
.ac-regions > .ac-region:last-child { border-bottom: 1px solid var(--border-strong); }
.ac-region summary { display: grid; grid-template-columns: auto minmax(0, 1fr) 20px; gap: clamp(14px, 2vw, 28px); align-items: center; min-height: 64px; padding-block: 14px; cursor: pointer; list-style: none; color: var(--ink); transition: color 200ms; }
.ac-region summary::-webkit-details-marker { display: none; }
.ac-region summary .ac-fig { width: 48px; height: 68px; transition: transform 260ms var(--ac-ease); }
.ac-region__id { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 20px; }
.ac-region__name { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; color: inherit; }
.ac-region__cond { margin: 0; font-size: 15px; line-height: 1.4; color: var(--ink-muted); }
.ac-region .ac-chev { transition: transform 360ms var(--ac-ease); }
.ac-region summary:hover { color: var(--accent-blue-hover); }
.ac-region summary:hover .ac-chev { transform: translateY(3px); }
.ac-region summary:hover .ac-fig { transform: translateY(-2px); }
.ac-region summary:active .ac-fig { transform: scale(.95); }
.ac-region[open] .ac-chev, .ac-region[open] summary:hover .ac-chev { transform: rotate(180deg); }
@keyframes ac-unfold { from { opacity: 0; transform: translateY(-8px); } }
.ac-region[open] .ac-win { animation: ac-unfold 420ms var(--ac-ease); }
.ac-win { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(18px, 2.6vw, 40px); padding-bottom: clamp(24px, 3vw, 36px) !important; }
.ac-win > div { border-top: 3px solid var(--accent-blue); padding-top: 12px; }
.ac-win > div.is-hold { border-top-color: var(--ac-warn); }
.ac-win dt { font-size: 16px; font-weight: 600; color: var(--ink); }
.ac-win .is-hold dt { color: var(--ac-warn); }
.ac-win dd { margin-top: 6px !important; font-size: 16px; line-height: 1.55; color: var(--ink-soft); }

.ac-iv__head { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: clamp(28px, 6vw, 96px); align-items: center; }
.ac-bag { color: var(--ink); margin-bottom: clamp(32px, 4vw, 52px); }
.ac-bag .ac-bag__level { fill: var(--accent-wash); stroke: none; }
.ac-bag .ac-bag__drop { fill: var(--accent-blue); stroke: none; }
@keyframes ac-drop { 0% { transform: translateY(-6px); opacity: 0; } 18% { opacity: 1; } 78% { transform: translateY(11px); opacity: 1; } 100% { transform: translateY(13px); opacity: 0; } }
/* the drip runs only while the bag is on screen */
.ac-bag.is-live .ac-bag__drop { animation: ac-drop 1700ms ease-in infinite; }

/* ============ NEUROLOGIC ============ */
.ac-reads__h { margin-bottom: 18px !important; }
.ac-year { position: relative; padding-bottom: 30px; }
.ac-year__line { fill: var(--border-strong); }
.ac-year__mark { fill: var(--accent-blue); transform-box: fill-box; transform-origin: center; }
.ac-year__ticks b:nth-child(1) { left: 25%; transform: translateX(-50%); }
.ac-year__ticks b:nth-child(2) { left: 50%; transform: translateX(-50%); }
.ac-year__ticks b:nth-child(3) { right: 0; }
@keyframes ac-mark { from { transform: scaleY(0); opacity: 0; } }
.ac-js .ac-year:not(.is-in) .ac-year__mark { opacity: 0; }
.ac-js .ac-year.is-in .ac-year__line { transform-box: fill-box; transform-origin: left; animation: ac-grow 1400ms linear both; }
.ac-js .ac-year.is-in .ac-year__mark { animation: ac-mark 360ms var(--ac-ease) 350ms both; }
.ac-js .ac-year.is-in .ac-year__mark:nth-of-type(3) { animation-delay: 700ms; }
.ac-js .ac-year.is-in .ac-year__mark:nth-of-type(4) { animation-delay: 1400ms; }
.ac-reads { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(24px, 4vw, 64px); margin-top: clamp(20px, 2.6vw, 32px) !important; }
.ac-reads li { border-top: 1.5px solid var(--ink); padding-top: 14px; }
.ac-reads li:nth-child(2) { --n: 1; }
.ac-reads li:nth-child(3) { --n: 2; }
.ac-reads__when { font-family: var(--font-display); font-size: clamp(1.3rem, 1.7vw, 1.55rem); line-height: 1.2; color: var(--ink); font-variant-numeric: tabular-nums; }
.ac-reads li > p:last-child { margin-top: 6px !important; font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); }
.ac-neuro__cols { padding-bottom: var(--ac-pad); }
.ac-adjunct { background: var(--navy-brand); color: rgba(255, 255, 255, .88); padding-block: clamp(44px, 5.5vw, 80px); }
.ac-adjunct__grid { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); align-items: center; }
.ac-adjunct__grid > div { display: grid; gap: 12px; }
.ac-adjunct .ac-h3 { color: #fff; }
.ac-adjunct p { font-family: var(--font-display); font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.32; color: #fff; }
.ac-adjunct em { color: var(--accent-ice); }
.ac-beside { color: #fff; }
.ac-beside .ac-beside__plus { stroke: var(--accent-ice); stroke-width: 2.4; }
@keyframes ac-meet-l { from { transform: translateX(-14px); opacity: 0; } }
@keyframes ac-meet-r { from { transform: translateX(14px); opacity: 0; } }
.ac-js .ac-adjunct:not(.is-in) .ac-beside > * { opacity: 0; }
.ac-js .ac-adjunct.is-in .ac-beside__rx { animation: ac-meet-l 800ms var(--ac-ease) 150ms both; }
.ac-js .ac-adjunct.is-in .ac-beside__iv { animation: ac-meet-r 800ms var(--ac-ease) 150ms both; }
.ac-js .ac-adjunct.is-in .ac-beside__plus { animation: ac-fade 400ms ease 800ms both; }

/* ============ COMBINED PROTOCOLS ============ */
.ac-combined { padding-block: var(--ac-pad); }
.ac-combined__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.ac-combined__aside { position: sticky; top: calc(var(--hc-nav-h) + var(--hc-bar-h) + 28px); }
.ac-stack { display: block; width: min(100%, 320px); height: auto; }
.ac-stack__short { fill: var(--accent-wash); stroke: var(--accent-ice); stroke-width: 1.5; }
.ac-stack__long { fill: var(--accent-blue); }
.ac-stack__ok { fill: #fff; stroke: var(--accent-blue); stroke-width: 1.5; }
.ac-stack__tick { fill: none; stroke: var(--accent-blue); stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.ac-stack :is(.ac-stack__short, .ac-stack__long) { transform-box: fill-box; transform-origin: left; }
.ac-js .ac-combined__aside:not(.is-in) .ac-stack :is(rect, circle) { opacity: 0; }
.ac-js .ac-combined__aside:not(.is-in) .ac-stack__tick { stroke-dashoffset: 1; }
.ac-js .ac-combined__aside.is-in .ac-stack__short { animation: ac-grow 500ms linear 400ms both; }
.ac-js .ac-combined__aside.is-in .ac-stack__long { animation: ac-grow 870ms linear 400ms both; }
.ac-js .ac-combined__aside.is-in .ac-stack__ok { animation: ac-fade 300ms ease 1300ms both; }
.ac-js .ac-combined__aside.is-in .ac-stack__tick { animation: ac-draw 480ms var(--ac-ease) 1450ms both; }
.ac-steps { position: relative; }
.ac-step { position: relative; padding: 0 0 clamp(26px, 3.2vw, 40px) 40px; }
.ac-step:last-child { padding-bottom: 0; }
.ac-step h3 { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.4rem, 1.9vw, 1.7rem); line-height: 1.2; color: var(--ink); }
.ac-case summary { display: grid; grid-template-columns: minmax(0, 1fr) 20px; gap: 16px; align-items: center; min-height: 44px; cursor: pointer; list-style: none; color: var(--ink); transition: color 200ms; }
.ac-case summary::-webkit-details-marker { display: none; }
.ac-case summary:hover { color: var(--accent-blue-hover); }
.ac-case summary h3 { color: inherit; }
.ac-case .ac-chev { transition: transform 360ms var(--ac-ease); }
.ac-case summary:hover .ac-chev { transform: translateY(3px); }
.ac-case[open] .ac-chev, .ac-case[open] summary:hover .ac-chev { transform: rotate(180deg); }
.ac-case[open] p { animation: ac-unfold 420ms var(--ac-ease); }
.ac-step p { margin-top: 4px !important; font-size: 17px; line-height: 1.6; color: var(--ink-soft); }
/* the rail: a dot at each case; each stretch runs from this dot to the next, so it ends at the last */
.ac-step::before { content: ""; position: absolute; left: 0; top: 15px; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--ink); background: #fff; z-index: 1; transition: background 360ms, border-color 360ms; }
.ac-step.is-on::before { background: var(--accent-blue); border-color: var(--accent-blue); }
.ac-step:not(:last-child)::after { content: ""; position: absolute; left: 7.5px; top: 22px; width: 2px; height: 100%; background: linear-gradient(var(--accent-blue), var(--accent-blue)) top / 100% calc(var(--f, 0) * 100%) no-repeat var(--border-strong); }
.ac-heur { margin-top: clamp(40px, 5vw, 68px); padding: clamp(24px, 3.2vw, 44px); border: 1.5px solid var(--ink); border-radius: 6px; display: grid; gap: 12px; }
.ac-heur p { font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.8rem); line-height: 1.35; color: var(--ink); }
.ac-heur em { color: var(--accent-blue); }

/* ============ FOLLOW-UP, AND WHEN TO CALL ============ */
.ac-call { padding-top: var(--ac-pad); border-top: 1px solid var(--border); }
.ac-fu__h { margin: clamp(28px, 3.5vw, 44px) 0 8px !important; }
.ac-fu li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px clamp(16px, 2.4vw, 32px); align-items: baseline; padding-block: 18px; border-bottom: 1px solid var(--border); }
.ac-fu li:first-child { border-top: 1.5px solid var(--ink); }
.ac-fu li:nth-child(2) { --n: 1; }
.ac-fu li:nth-child(3) { --n: 2; }
.ac-fu__track { font-family: var(--font-display); font-size: clamp(1.3rem, 1.7vw, 1.55rem); line-height: 1.2; color: var(--ink); }
.ac-fu li > p:nth-child(2) { grid-column: 1 / -1; grid-row: 2; font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); }
.ac-fu__tag { grid-column: 2; grid-row: 1; font-size: 16px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.ac-alone { display: grid; gap: 10px; padding-block: clamp(36px, 4.5vw, 60px); }
.ac-alone p { font-size: clamp(1.1rem, 1.45vw, 1.28rem); line-height: 1.55; color: var(--ink-soft); }
.ac-alone em { font-style: normal; font-weight: 600; color: var(--ink); }
/* the one tinted band on the page */
.ac-flags { background: var(--accent-wash); padding-block: clamp(44px, 5.5vw, 80px); }
.ac-flags__head { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: clamp(18px, 3vw, 40px); align-items: center; }
.ac-flags__head > div { display: grid; gap: 8px; }
.ac-flags__lead { font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.45; font-weight: 600; color: var(--ac-warn); }
.ac-ring { color: var(--ink); }
.ac-ring .ac-ring__phone { fill: #fff; }
.ac-ring .ac-ring__wave { stroke: var(--ac-warn); stroke-width: 2.4; stroke-dasharray: 1; }
@keyframes ac-ringing { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-9deg); } 40% { transform: rotate(7deg); } 60% { transform: rotate(-5deg); } 80% { transform: rotate(3deg); } }
.ac-js .ac-flags:not(.is-in) .ac-ring__wave { stroke-dashoffset: 1; }
.ac-js .ac-flags.is-in .ac-ring__phone { transform-box: fill-box; transform-origin: 40% 60%; animation: ac-ringing 800ms ease-in-out 250ms both; }
.ac-js .ac-flags.is-in .ac-ring__wave { animation: ac-draw 420ms var(--ac-ease) 900ms both; }
.ac-js .ac-flags.is-in .ac-ring__wave--2 { animation-delay: 760ms; }
.ac-flags__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 40px) clamp(24px, 4vw, 64px); margin-top: clamp(28px, 3.5vw, 44px) !important; }
.ac-flags__grid li { border-top: 3px solid var(--ac-warn); padding-top: 12px; }
.ac-flags__grid h4 { font-family: var(--font-body); font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--ac-warn); }
.ac-flags__grid p { margin-top: 6px !important; font-size: 16.5px; line-height: 1.55; color: var(--ink-soft); }
.ac-js .ac-flags__grid li { transition: opacity 520ms ease calc(200ms + var(--n, 0) * 70ms), transform 700ms var(--ac-ease) calc(200ms + var(--n, 0) * 70ms); }
.ac-js .ac-flags:not(.is-in) .ac-flags__grid li { opacity: 0; transform: translateY(14px); }
.ac-reach { margin-top: clamp(32px, 4vw, 52px) !important; padding: clamp(20px, 2.6vw, 32px); background: #fff; border: 1.5px solid var(--ink); border-radius: 6px; font-size: clamp(1.06rem, 1.3vw, 1.2rem); line-height: 1.6; color: var(--ink-soft); }
.ac-reach strong { margin-right: 6px; }

/* ============ KEEP GOING ============ */
.ac-next { background: var(--navy-brand); color: rgba(255, 255, 255, .86); padding-block: var(--ac-pad); }
.ac-next__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.ac-next__text { display: grid; gap: 20px; justify-items: start; }
.ac-next h2 { color: #fff !important; margin-bottom: clamp(28px, 3.5vw, 44px) !important; }
.ac-next__text p { font-size: clamp(1.06rem, 1.3vw, 1.2rem); line-height: 1.6; }
.ac main .ac-way { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: 20px; align-items: center; padding-block: 24px; border-top: 1px solid rgba(255, 255, 255, .24); color: rgba(255, 255, 255, .86); text-decoration: none; transition: border-color 260ms, color 200ms; }
.ac main .ac-ways li:last-child .ac-way { border-bottom: 1px solid rgba(255, 255, 255, .24); }
.ac-way__body { display: grid; gap: 6px; font-size: 16.5px; line-height: 1.55; }
.ac main .ac-way strong { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.5rem, 2.1vw, 1.95rem); line-height: 1.15; color: #fff; }
.ac-way__url { font-size: 15px; font-weight: 600; color: var(--accent-ice); }
.ac-way__arrow { width: 48px; height: 48px; color: #fff; transition: transform 360ms var(--ac-ease), color 260ms; }
.ac-way__arrow circle { fill: transparent; stroke: rgba(255, 255, 255, .4); stroke-width: 1; transition: fill 260ms, stroke 260ms; }
.ac-way__arrow path { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ac main .ac-way:hover { border-top-color: var(--accent-ice); color: #fff; }
.ac-way:hover .ac-way__arrow { transform: translateX(6px); color: var(--ink); }
.ac-way:active .ac-way__arrow { transform: translateX(6px) scale(.94); }
.ac-way:hover .ac-way__arrow circle { fill: var(--accent-ice); stroke: var(--accent-ice); }
.ac-ways li:nth-child(2) { --n: 1; }
.ac-ways li:nth-child(3) { --n: 2; }

/* ============ NARROWER SCREENS ============ */
@media (max-width: 1000px) {
  .ac-hero__row, .ac-about__row, .ac-curve__head, .ac-combined__grid, .ac-next__grid { grid-template-columns: minmax(0, 1fr); }
  .ac-combined__aside { position: static; }
  .ac-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ac-win, .ac-phases { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .ac-phases { grid-template-rows: none; }
  .ac-phase { display: block; grid-row: auto; }
  .ac-hours label { grid-template-columns: 24px 82px minmax(0, 1fr) auto; }
  .ac-hours__bar { grid-column: 3; }
  .ac-hours__tag { grid-column: 4; grid-row: 1; }
  .ac-hours__text { grid-column: 2 / -1; }
  .ac-flags__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .ac-toc ol, .ac-rules__cols, .ac-neuro__cols, .ac-combined__cols, .ac-win, .ac-phases, .ac-flags__grid { grid-template-columns: minmax(0, 1fr); }
  :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) { grid-template-rows: none; row-gap: 36px; }
  :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) > div, :is(.ac-rules__cols, .ac-neuro__cols, .ac-combined__cols) .ac-dots { display: block; }
  .ac main .ac-toc a { min-height: 56px; }
  .ac-hero__actions .btn { width: 100%; }
  .ac-when__input { width: 100%; }
  .ac main .ac-track { grid-template-columns: 40px minmax(0, 1fr) 20px; font-size: 16.5px; }
  .ac-track .ac-fig { width: 40px; height: 57px; }
  .ac-rule1, .ac-adjunct__grid { grid-template-columns: minmax(0, 1fr); }
  .ac-nopill { width: 72px; height: 72px; }
  .ac-pain { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 0; }
  .ac-pain li { display: grid; grid-template-columns: 56px minmax(0, 1fr); grid-template-rows: none; grid-row: auto; column-gap: 20px; row-gap: 4px; padding-bottom: 30px; }
  .ac-pain li:last-child { padding-bottom: 0; }
  .ac-pain .ac-badge { grid-row: 1 / span 3; }
  .ac-pain li > p { grid-column: 2; }
  .ac-pain__rank { margin-top: 0 !important; align-self: end; padding-top: 12px; }
  /* the line turns to run down the badges */
  .ac-pain li:not(:last-child)::after { top: 28px; left: 27px; width: 1.5px; height: 100%; z-index: -1; }
  .ac-region summary .ac-fig { width: 34px; height: 48px; }
  .ac-win { row-gap: 18px; }
  .ac-iv__head { grid-template-columns: minmax(0, 1fr); }
  .ac-bag { width: 64px; height: 100px; margin-bottom: 28px; order: -1; }
  .ac-reads { grid-template-columns: minmax(0, 1fr); row-gap: 22px; }

  .ac-flags__head { grid-template-columns: 56px minmax(0, 1fr); align-items: start; }
  .ac-ring { width: 56px; height: 56px; }
  .ac-hours__list li.is-now::before { left: -10px; }
  .ac .hc-bar__track a.hc-bar__call { margin-left: 0; }
}

/* ============ REDUCED MOTION: every end state, nothing moving ============ */
@media (prefers-reduced-motion: reduce) {
  .ac main *, .ac main *::before, .ac main *::after { animation: none !important; transition: none !important; }
  .ac-js [data-r], .ac-js .ac-flags .ac-flags__grid li { opacity: 1 !important; transform: none !important; }
  .ac-js :is(.ac-arc, .ac-year) :is(rect) { opacity: 1 !important; }
  .ac-js .ac-arc .ac-arc__tail { opacity: .5 !important; }
  .ac-js .ac-hours__list .ac-hours__bar i { transform: none !important; }
  .ac-js :is(.ac-nopill__ring, .ac-nopill__bar, .ac-ring__wave, .ac-stack__tick) { stroke-dashoffset: 0 !important; }
  .ac-js .ac-stack :is(rect, circle), .ac-js .ac-beside > * { opacity: 1 !important; }
  .ac .hc-bar { transition: none; }
}

/* ============ PHYSICAL THERAPY ============
   The one dark band in the middle of the guide, because it is the step that
   matters most once the 7 to 10 days are up. Two drawings: the cells and
   physical therapy as two circles that meet, and twelve weeks drawn to scale
   with load stepping up from day 10. Like every drawing here they show time
   and load, never a result. Hovering a stage lights its stretch of the line. */
.ac-pt { background: var(--navy-brand); color: rgba(255, 255, 255, .86); padding-block: clamp(64px, 8vw, 128px); }
.ac main .ac-pt h2 { color: #fff; font-size: clamp(2.4rem, 4.8vw, 4.4rem); line-height: 1.02; }
.ac-pt h2 > .h-lead, .ac-pt h2 > em { display: inline-block; }
.ac-pt h2 > em { color: var(--accent-ice); }
.ac main .ac-pt strong { color: #fff; }
.ac-pt .ac-h3 { color: #fff; }
.ac-pt .ac-sub { margin-top: 8px !important; color: rgba(255, 255, 255, .7); }
.ac-pt .ac-notice { color: rgba(255, 255, 255, .74); }
.ac main .ac-pt :is(p, li:not(.ac-toc li)) > a:not([class]) { color: #fff; text-decoration-color: var(--accent-ice); }
.ac main .ac-pt :is(p, li:not(.ac-toc li)) > a:not([class]):hover { color: var(--accent-ice); }
.ac-pt__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.ac-pt__text { display: grid; gap: clamp(18px, 2vw, 26px); }
.ac-pt__lede { font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.5; color: #fff; }
.ac-pt__you { justify-self: start; padding: 10px 16px; border: 1.5px solid var(--accent-ice); border-radius: 6px; font-size: 16px; font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; }

/* the cells, and physical therapy: two circles that meet */
.ac-pt__pair { justify-self: end; width: 100%; max-width: 400px; }
.ac-pt__pair svg { display: block; width: 100%; height: auto; overflow: visible; }
.ac-pt__ring { fill: none; stroke: var(--accent-ice); stroke-width: 1.5; }
.ac-pt__lens { fill: var(--accent-blue); opacity: .75; }
.ac-pt__cell { fill: var(--accent-ice); }
.ac-pt__wave { fill: none; stroke: var(--accent-ice); stroke-width: 1.5; opacity: 0; transform-box: fill-box; transform-origin: center; }
.ac-pt__stair { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ac-pt__pair text { font-family: var(--font-body); font-size: 15px; font-weight: 500; fill: rgba(255, 255, 255, .86); text-anchor: middle; }

/* twelve weeks to scale: 100 units a week, day 10 at 143 */
.ac-pt__ramp { margin-top: clamp(40px, 6vw, 88px) !important; }
.ac-pt__plot { position: relative; }
.ac-pt__svg { display: block; width: 100%; height: clamp(150px, 23.3vw, 290px); overflow: visible; }
.ac-pt__rest { fill: rgba(255, 255, 255, .06); }
.ac-pt__base { fill: none; stroke: rgba(255, 255, 255, .3); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.ac-pt__area { fill: rgba(124, 169, 209, .14); }
.ac-pt__line { fill: none; stroke: var(--accent-ice); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }
.ac-pt__seg { fill: none; stroke: #fff; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity 260ms; }
.ac-pt__run { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; stroke-dasharray: .035 .965; stroke-dashoffset: 1; opacity: 0; }
.ac-pt__start { fill: none; stroke: #fff; stroke-width: 1.5; stroke-dasharray: 5 6; vector-effect: non-scaling-stroke; }
.ac-pt__node { position: absolute; left: var(--x); top: var(--y); width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: var(--navy-brand); border: 3px solid var(--accent-ice); transition: transform 360ms var(--ac-ease), background 260ms, border-color 260ms; }
.ac-pt__node[data-node="0"] { background: #fff; border-color: #fff; }
.ac-pt__node[data-node="0"]::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 1.5px solid #fff; opacity: 0; }
.ac-pt__rest-label { position: absolute; left: 0; top: 40%; width: 11.92%; padding-inline: 14px 8px; font-size: 14px; line-height: 1.35; color: rgba(255, 255, 255, .72); }
.ac-pt__rest-label b { display: block; font-weight: 600; color: #fff; }
.ac-pt__flag { position: absolute; left: calc(11.92% + 14px); top: 5%; padding: 7px 14px; border-radius: 999px; background: #fff; color: var(--navy-brand); font-size: 15px; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.ac-pt__ticks { position: relative; height: 22px; margin-top: 12px !important; }
.ac-pt__ticks b { position: absolute; left: var(--x); top: 0; transform: translateX(-50%); font-size: 14px; font-weight: 600; line-height: 1; color: rgba(255, 255, 255, .72); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ac-pt__ticks b:last-child { left: auto; right: 0; transform: none; }
/* a phone has no room for the words inside the shaded days, so they sit under the line */
.ac-pt__rest-note { display: none; margin-top: 6px !important; font-size: 14px; line-height: 1.4; color: rgba(255, 255, 255, .72); }

/* the four stages */
.ac-pt__phases { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(18px, 2.6vw, 40px); margin-top: clamp(28px, 3.5vw, 48px) !important; }
@media (min-width: 1001px) {
  .ac-pt__phases { grid-template-rows: repeat(3, auto); }
  .ac-pt__phase { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
}
.ac-pt__phase { border-top: 3px solid rgba(255, 255, 255, .28); padding-top: 16px; transition: border-color 260ms; }
.ac-pt__phase:nth-child(2) { --n: 1; }
.ac-pt__phase:nth-child(3) { --n: 2; }
.ac-pt__phase:nth-child(4) { --n: 3; }
.ac-pt__phase:hover { border-top-color: #fff; }
.ac-pt__when { font-size: 15px; font-weight: 600; color: var(--accent-ice); font-variant-numeric: tabular-nums; }
.ac-pt__phase h3 { margin-top: 6px !important; }
.ac-pt__phase > p:last-child { margin-top: 10px !important; font-size: 16.5px; line-height: 1.55; color: rgba(255, 255, 255, .82); }
/* a stage under the pointer lights its own stretch of the line, and its node */
.ac-pt:has(.ac-pt__phase:nth-child(1):hover) .ac-pt__seg[data-seg="0"],
.ac-pt:has(.ac-pt__phase:nth-child(2):hover) .ac-pt__seg[data-seg="1"],
.ac-pt:has(.ac-pt__phase:nth-child(3):hover) .ac-pt__seg[data-seg="2"],
.ac-pt:has(.ac-pt__phase:nth-child(4):hover) .ac-pt__seg[data-seg="3"] { opacity: 1; }
.ac-pt:has(.ac-pt__phase:nth-child(1):hover) .ac-pt__node[data-node="0"],
.ac-pt:has(.ac-pt__phase:nth-child(2):hover) .ac-pt__node[data-node="1"],
.ac-pt:has(.ac-pt__phase:nth-child(3):hover) .ac-pt__node[data-node="2"],
.ac-pt:has(.ac-pt__phase:nth-child(4):hover) .ac-pt__node[data-node="3"] { transform: scale(1.5); background: #fff; border-color: #fff; }

/* what to take to the first visit */
.ac-pt__bring { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(24px, 5vw, 80px); align-items: start; margin-top: clamp(44px, 6vw, 88px); padding-top: clamp(28px, 3.5vw, 44px); border-top: 1px solid rgba(255, 255, 255, .22); }
.ac-pt__list li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 16px; padding: 13px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); font-size: 16.5px; line-height: 1.55; color: rgba(255, 255, 255, .86); }
.ac-pt__list li:first-child { border-top: 1.5px solid #fff; }
.ac-pt__list li:nth-child(2) { --n: 1; }
.ac-pt__list li:nth-child(3) { --n: 2; }
.ac-pt__check { width: 24px; height: 24px; margin-top: 1px; }
.ac-pt__check circle { fill: none; stroke: var(--accent-ice); stroke-width: 1.5; }
.ac-pt__check path { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; }

/* motion: the circles meet, the line is drawn out week by week, the stages
   land on it, and a light keeps climbing the steps. The loops are paused while
   the drawing is off screen (no is-live, the script's part 11), like the IV
   bag, and pick up where they stopped. */
@keyframes ac-pt-l { from { transform: translateX(-40px); opacity: 0; } }
@keyframes ac-pt-r { from { transform: translateX(40px); opacity: 0; } }
@keyframes ac-pt-lens { 50% { opacity: 1; } }
@keyframes ac-pt-wave { from { transform: scale(.3); opacity: .9; } to { transform: scale(1.9); opacity: 0; } }
@keyframes ac-pt-pop { from { transform: scale(0); opacity: 0; } 60% { transform: scale(1.3); } }
@keyframes ac-pt-ping { from { transform: scale(.6); opacity: .9; } to { transform: scale(1.8); opacity: 0; } }
@keyframes ac-pt-drop { from { transform: translateY(-12px); opacity: 0; } }
.ac-js .ac-pt__pair:not(.is-in) :is(.ac-pt__a, .ac-pt__b, .ac-pt__lens, text) { opacity: 0; }
.ac-pt__pair.is-in .ac-pt__a { animation: ac-pt-l 1100ms var(--ac-ease) 150ms both; }
.ac-pt__pair.is-in .ac-pt__b { animation: ac-pt-r 1100ms var(--ac-ease) 150ms both; }
.ac-pt__pair.is-in .ac-pt__lens { animation: ac-fade 600ms ease 900ms both, ac-pt-lens 3600ms ease-in-out 1500ms infinite; }
.ac-pt__pair.is-in:not(.is-live) .ac-pt__lens { animation-play-state: running, paused; }
.ac-pt__pair.is-in text { animation: ac-fade 600ms ease 1100ms both; }
.ac-pt__pair.is-in .ac-pt__wave { animation: ac-pt-wave 3200ms ease-out 1500ms infinite; }
.ac-pt__pair.is-in .ac-pt__wave + .ac-pt__wave { animation-delay: 3100ms; }
.ac-pt__pair.is-in:not(.is-live) .ac-pt__wave { animation-play-state: paused; }
.ac-js .ac-pt__ramp:not(.is-in) :is(.ac-pt__rest, .ac-pt__area, .ac-pt__start, .ac-pt__node, .ac-pt__flag, .ac-pt__rest-label, .ac-pt__rest-note, .ac-pt__ticks) { opacity: 0; }
.ac-js .ac-pt__ramp:not(.is-in) .ac-pt__line { stroke-dashoffset: 1; }
.ac-pt__ramp.is-in :is(.ac-pt__rest, .ac-pt__rest-label, .ac-pt__rest-note, .ac-pt__ticks) { animation: ac-fade 700ms ease 100ms both; }
.ac-pt__ramp.is-in .ac-pt__start { animation: ac-fade 500ms ease 300ms both; }
.ac-pt__ramp.is-in .ac-pt__flag { animation: ac-pt-drop 700ms var(--ac-ease) 500ms both; }
.ac-pt__ramp.is-in .ac-pt__line { animation: ac-draw 2400ms cubic-bezier(.45, .05, .25, 1) 500ms both; }
.ac-pt__ramp.is-in .ac-pt__area { animation: ac-fade 1100ms ease 1900ms both; }
.ac-pt__ramp.is-in .ac-pt__node { animation: ac-pt-pop 600ms var(--ac-ease) both; }
.ac-pt__ramp.is-in .ac-pt__node[data-node="0"] { animation-delay: 500ms; }
.ac-pt__ramp.is-in .ac-pt__node[data-node="1"] { animation-delay: 900ms; }
.ac-pt__ramp.is-in .ac-pt__node[data-node="2"] { animation-delay: 1650ms; }
.ac-pt__ramp.is-in .ac-pt__node[data-node="3"] { animation-delay: 2150ms; }
.ac-pt__ramp.is-in .ac-pt__node[data-node="0"]::after { animation: ac-pt-ping 2400ms ease-out 1200ms infinite; }
.ac-pt__ramp.is-in:not(.is-live) .ac-pt__node[data-node="0"]::after { animation-play-state: paused; }
.ac-pt__ramp.is-in .ac-pt__run { opacity: 1; animation: ac-fade 400ms ease 3100ms both, ac-draw 5200ms linear 3100ms infinite; }
.ac-pt__ramp.is-in:not(.is-live) .ac-pt__run { animation-play-state: paused; }
.ac-js .ac-pt__list:not(.is-in) .ac-pt__check path { stroke-dashoffset: 1; }
.ac-pt__list.is-in .ac-pt__check path { animation: ac-draw 520ms var(--ac-ease) calc(500ms + var(--n, 0) * 160ms) both; }
@media (prefers-reduced-motion: reduce) {
  .ac-pt__run, .ac-pt__wave { display: none; }
}
@media (max-width: 1000px) {
  .ac-pt__head { grid-template-columns: minmax(0, 1fr); }
  .ac-pt__pair { justify-self: start; max-width: 320px; }
  .ac-pt__phases { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .ac-pt__rest-label { font-size: 13px; padding-inline: 8px 4px; }
}
@media (max-width: 720px) {
  .ac-pt__phases, .ac-pt__bring { grid-template-columns: minmax(0, 1fr); }
  .ac-pt__flag { left: calc(11.92% + 10px); padding: 5px 11px; font-size: 13px; }
  .ac-pt__node { width: 12px; height: 12px; margin: -6px 0 0 -6px; border-width: 2.5px; }
  .ac-pt__ticks b { font-size: 12.5px; }
  .ac-pt__rest-label { display: none; }
  .ac-pt__rest-note { display: block; }
}
@media (max-width: 380px) {
  .ac-pt__flag { padding: 4px 9px; font-size: 12px; }
}

/* ============ PRINT: a cover and eleven Letter sheets ============
   This is the guide a patient saves as a PDF or keeps by the bed. One section
   to a sheet, each with its own head and foot, dark type on white, every
   fold open, nothing left mid-motion. */
@page { size: letter; margin: 0; }
@media print {
  html, body { background: #fff !important; }
  html:has(body.ac) { scroll-padding-top: 0; }
  body.ac > :not(main) { display: none !important; }
  .ac .hc-bar, .ac-hero__actions, .ac-chev, .ac-way__arrow, .ac-hours__count, .ac-vh, .ac-when__label, .ac-when__field, .ac-when__note, .ac-cal__now, .ac-arc__now, .ac-go, .ac-bag__drop { display: none !important; }
  .ac-paper img { display: block; }
  /* paper is taken the instant the dialog opens: nothing may still be fading or sliding in */
  .ac main *, .ac main *::before, .ac main *::after { animation: none !important; transition: none !important; }
  .ac-js [data-r], .ac-js .ac-flags .ac-flags__grid li { opacity: 1 !important; transform: none !important; }
  .ac-js :is(.ac-arc, .ac-year) rect { opacity: 1 !important; transform: none !important; }
  .ac-js .ac-arc .ac-arc__tail { opacity: .5 !important; }
  .ac-js .ac-hours__list .ac-hours__bar i { transform: none !important; }
  .ac-js :is(.ac-nopill__ring, .ac-nopill__bar, .ac-ring__wave, .ac-stack__tick) { stroke-dashoffset: 0 !important; }
  .ac-js .ac-stack :is(rect, circle), .ac-js .ac-beside > * { opacity: 1 !important; }
  .ac-cal .ac-cal__day.is-past { fill: #fff; }
  .ac-step::after { background: var(--border-strong) !important; }
  .ac-step.is-on::before { background: #fff; border-color: var(--ink); }
  .ac-hours__list li.is-now::before { display: none; }
  .ac-phase.is-now .ac-phase__when { color: var(--ink-muted); }
  .ac * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .ac main :is(p, li) > a:not([class]) { color: inherit; text-decoration: none; }
  /* a fold the script did not get to open still prints its contents */
  :is(.ac-region, .ac-case)::details-content { content-visibility: visible; display: block; }
  :is(.ac-region, .ac-case) summary { pointer-events: none; }
  .ac-case summary { min-height: 0; display: block; }

  /* the sheet */
  .ac main { overflow: visible; font-size: 12.5px; }
  .ac-hero, .ac-sheet {
    box-sizing: border-box; width: 8.5in; height: 10.98in; overflow: hidden;
    display: flex; flex-direction: column; padding: 0; margin: 0; border: 0;
    break-after: page; page-break-after: always; break-inside: avoid;
    background: #fff; color: var(--ink);
  }
  .ac-sheet:last-child { break-after: auto; page-break-after: auto; }
  .ac-wrap { max-width: none; width: 100%; box-sizing: border-box; padding-inline: .66in; margin: 0; flex-shrink: 0; }
  .ac-sheet__head + .ac-wrap { padding-top: .3in; }
  .ac-sheet__head, .ac-sheet__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-inline: .66in; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
  .ac-sheet__head { padding: .28in 0 9px; border-bottom: 1px solid var(--border); justify-content: flex-start; }
  .ac-sheet__head img { width: 60px; height: auto; }
  .ac-sheet__head span { border-left: 1px solid var(--border); padding-left: 10px; }
  .ac-sheet__head b { margin-left: auto; font-weight: 500; color: var(--ink); }
  .ac-sheet__foot { margin-top: auto; padding: 9px 0 .24in; border-top: 1px solid var(--border); }

  /* type, sized for paper */
  .ac main h2 { font-size: 34px; line-height: 1.04; }
  .ac-h3 { font-size: 18px; }
  .ac-lede { font-size: 14.5px; line-height: 1.5; }
  .ac-sub { font-size: 11.5px; }
  .ac-head { gap: 9px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--ink); }
  .ac main :is(.ac-about__text p, .ac-track, .ac-hours__text, .ac-phase > p:last-child, .ac-rule1 p, .ac-dots li, .ac-pain li > p:nth-of-type(2), .ac-win dd, .ac-reads li > p:last-child, .ac-step p, .ac-fu li > p:nth-child(2), .ac-alone p, .ac-flags__grid p, .ac-reach, .ac-next__text p, .ac-way__body) { font-size: 13.5px; line-height: 1.5; }
  .ac-notice { margin-top: 18px !important; padding: 10px 14px; border: 1px solid var(--border); border-radius: 3px; font-size: 12px; line-height: 1.45; }
  .ac-notice + .ac-notice { margin-top: 8px !important; }
  .ac-rules .ac-notice { padding-block: 7px; }
  .ac-dots li { padding: 6px 0 6px 15px; border-bottom: 0; }
  .ac-dots li::before { top: 13.5px; width: 5px; height: 5px; background: var(--ink-muted); }
  .ac-badge { width: 36px; height: 36px; }
  .ac-ic { width: 18px; height: 18px; }

  /* cover: the navy sheet the printed guide has always opened with */
  .ac-hero { background: linear-gradient(180deg, #0E2447 0%, #132C5B 55%, #0B1D3A 100%); color: #fff; }
  .ac-hero > .ac-wrap { flex: 1; display: flex; flex-direction: column; padding-block: .6in .42in; }
  .ac-cover__brand { display: block; padding-bottom: 24px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .ac-cover__brand img { height: 28px; width: auto; }
  .ac-hero__h1 { font-size: 54px; line-height: 1; margin: 30px 0 18px; color: #fff; }
  .ac-hero__h1 > em { color: var(--accent-ice); }
  .ac-hero__row { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .ac-hero__answer { font-size: 15.5px; line-height: 1.48; color: #fff; }
  .ac-hero__lede { margin-top: 10px !important; font-size: 13.5px; color: rgba(255, 255, 255, .82); }
  .ac-hero__reviewed { margin-top: 10px !important; font-size: 11px; color: rgba(255, 255, 255, .7); }
  .ac-hero__side { display: grid; grid-template-columns: 4.3in minmax(0, 1fr); gap: .4in; align-items: center; margin-top: 14px; }
  .ac-cal { color: #fff; }
  .ac-cal .ac-cal__day, .ac-cal .ac-cal__day.is-past { fill: transparent; stroke: rgba(255, 255, 255, .5); }
  .ac-cal .ac-cal__day:nth-of-type(-n + 10) { stroke: var(--accent-ice); }
  .ac-cal :is(.ac-cal__brace, .ac-cal__no) { stroke: var(--accent-ice); }
  .ac-cal text { fill: rgba(255, 255, 255, .8); }
  .ac-cal .ac-cal__pill rect { fill: #132C5B; }
  /* the reader's own dates, if they gave one, go on the cover */
  .ac-when { margin: 0; padding: 0; border: 0; }
  .ac-now { margin: 0; }
  .ac-now__since { display: none; }
  .ac-now__treated { display: block; font-size: 13px; font-weight: 600; color: #fff; }
  .ac-now__list li { padding-block: 3px; border-color: rgba(255, 255, 255, .2) !important; font-size: 11.5px; line-height: 1.4; color: rgba(255, 255, 255, .86); }
  .ac-now__list li:first-child { margin-top: 6px; }
  .ac-now__list b { font-size: 11px; color: var(--accent-ice); }
  .ac-now__list li.is-same { padding-bottom: 0; }
  .ac-now__list li.is-same b { display: none; }
  .ac-toc { margin-top: auto; }
  .ac-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; }
  .ac main .ac-toc a { min-height: 0; padding-block: 6px; font-size: 12.5px; font-weight: 400; color: rgba(255, 255, 255, .92); border-top-color: rgba(255, 255, 255, .2); }
  .ac-toc a::after { display: none; }
  .ac-cover__foot { display: flex; justify-content: space-between; margin-top: 12px !important; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, .16); font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }

  /* about */
  .ac-about, .ac-first, .ac-rules, .ac-joint, .ac-upper, .ac-iv, .ac-neuro, .ac-combined, .ac-call, .ac-next { padding: 0; }
  .ac-about > .ac-wrap { flex: 1; display: flex; flex-direction: column; }
  .ac-about__row { display: contents; }
  .ac-about__text { order: 1; gap: 12px; }
  .ac main .ac-about__text p { font-size: 14px; }
  .ac-about__text h2 { padding-bottom: 14px; border-bottom: 1px solid var(--ink); margin-bottom: 4px; }
  .ac-about__find { order: 2; margin-top: 28px !important; margin-bottom: 4px !important; }
  .ac-tracks { order: 3; }
  .ac main .ac-track { grid-template-columns: 30px minmax(0, 1fr); gap: 16px; min-height: 0; padding-block: 9px; }
  .ac-track .ac-fig { width: 30px; height: 42px; }
  .ac-quote { order: 4; margin-top: 30px; padding: 16px 22px; border-left: 2px solid var(--accent-blue); }
  .ac-quote__mark { display: none; }
  .ac-quote blockquote p { font-size: 19px; }
  .ac-quote figcaption { font-size: 11.5px; margin-top: 8px; }
  .ac-about .ac-notice { order: 5; margin-top: auto !important; margin-bottom: 14px !important; }

  /* the first 72 hours */
  .ac-hours label { grid-template-columns: 12px 54px 96px minmax(0, 1fr) 60px; gap: 4px 14px; min-height: 0; padding-block: 12px; align-items: baseline; }
  .ac-hours input { display: none; }
  /* on paper the boxes are for a pen */
  .ac-box, .ac-hours input:checked + .ac-box { width: 12px; height: 12px; border: 1px solid var(--ink-muted); border-radius: 2px; background: #fff; align-self: start; margin-top: 3px; }
  .ac-box svg { display: none; }
  /* a stretch the reader ticked on screen is ticked on their paper too */
  .ac-hours input:checked + .ac-box svg { display: block; width: 10px; height: 10px; }
  .ac-hours input:checked + .ac-box path { stroke: var(--ink); stroke-dashoffset: 0; }
  .ac-hours__bar, .ac-hours__text, .ac-hours__tag { grid-column: auto; grid-row: auto; }
  .ac-hours__bar { height: 9px; align-self: start; margin-top: 4px; }
  .ac-hours__when { font-size: 13.5px; }
  .ac-hours__tag { font-size: 12.5px; }
  .ac-hours input:checked ~ :is(.ac-hours__text, .ac-hours__tag, .ac-hours__when) { color: inherit; }
  .ac-hours input:checked ~ .ac-hours__bar i { background: var(--accent-blue); }
  .ac-curve { margin-top: 34px; }
  .ac-curve__head { grid-template-columns: minmax(0, 1fr); gap: 6px; margin-bottom: 12px; }
  .ac-arc, .ac-year { padding-bottom: 20px; }
  .ac-arc__svg, .ac-year__svg { height: 30px; }
  .ac-arc__ticks b, .ac-year__ticks b { font-size: 10.5px; }
  .ac-phases { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 18px; margin-top: 16px !important; }
  .ac-phase { border-top-width: 3px; padding-top: 8px; }
  .ac-phase__when { font-size: 11px; }
  .ac-phase h4 { font-size: 17px; margin-top: 2px; }
  .ac main .ac-phase > p:last-child { margin-top: 5px !important; font-size: 12.5px; line-height: 1.48; }

  /* the rules */
  .ac-rule1 { grid-template-columns: 60px minmax(0, 1fr); gap: 20px; padding: 16px 22px; border-width: 1px; border-radius: 3px; }
  .ac-nopill { width: 60px; height: 60px; }
  .ac-rule1 > div { gap: 5px; }
  .ac main .ac-rule1 p { font-size: 14.5px; }
  .ac-rules__cols, .ac-neuro__cols, .ac-combined__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin-top: 22px; }
  .ac-rules__col .ac-sub, .ac-neuro__cols .ac-sub, .ac-combined__col .ac-sub { margin: 2px 0 6px !important; }
  .ac-rules__col .ac-dots, .ac-neuro__cols .ac-dots, .ac-combined__col .ac-dots { border-top-width: 1px; padding-top: 4px; }
  .ac-pain__h { margin: 24px 0 10px !important; }
  .ac-pain { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; }
  .ac-pain li { row-gap: 4px; }
  .ac-pain li:not(:last-child)::after { top: 18px; left: 36px; width: calc(100% - 36px + 24px); height: 1px; }
  .ac-pain__rank { font-size: 16px; margin-top: 4px !important; }
  .ac-pain__tag { font-size: 11.5px; }

  /* joints and the IV tracks */
  .ac-region { border-top-width: 1px; break-inside: avoid; }
  .ac-regions > .ac-region:last-child { border-bottom: 0; }
  .ac-region summary { min-height: 0; padding-block: 9px 7px; gap: 14px; grid-template-columns: auto minmax(0, 1fr); }
  .ac-region summary .ac-fig { width: 30px; height: 42px; }
  .ac-region__name { font-size: 21px; }
  .ac-region__cond { font-size: 12px; }
  .ac-win { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 24px; padding-bottom: 13px !important; }
  .ac-win > div { border-top-width: 1.5px; padding-top: 6px; }
  .ac-win dt { font-size: 12.5px; }
  .ac main .ac-win dd { margin-top: 2px !important; font-size: 12.5px; line-height: 1.45; }
  .ac-iv__head { grid-template-columns: minmax(0, 1fr); }
  .ac-bag { display: none; }

  /* neurologic */
  .ac-reads__h { margin-bottom: 12px !important; }
  .ac-reads { gap: 0 22px; margin-top: 14px !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ac-reads li { border-top-width: 1px; padding-top: 8px; }
  .ac-reads__when { font-size: 16px; }
  .ac-neuro__cols { padding-bottom: 0; }
  .ac-adjunct { background: var(--navy-brand); margin: 34px .66in 0; padding: 24px 26px; }
  .ac-adjunct__grid { grid-template-columns: 76px minmax(0, 1fr); gap: 20px; padding: 0; }
  .ac-beside { width: 76px; height: 46px; }
  .ac-adjunct__grid > div { gap: 5px; }
  .ac-adjunct .ac-h3 { font-size: 13px; font-family: var(--font-body); font-weight: 600; color: var(--accent-ice); }
  .ac-adjunct p { font-size: 19px; }

  /* combined */
  .ac-combined__grid { grid-template-columns: minmax(0, 1fr) 140px; gap: 24px; }
  .ac-combined__aside { position: static; order: 2; }
  .ac-stack { width: 140px; }
  .ac-step { padding: 0 0 12px 24px; }
  .ac-step h3 { font-size: 17px; }
  .ac-step p { margin-top: 2px !important; }
  .ac-step::before { top: 6px; width: 9px; height: 9px; border-width: 1px; }
  .ac-step:not(:last-child)::after { left: 5px; top: 11px; width: 1px; }
  .ac-heur { margin-top: 28px; padding: 16px 22px; border: 0; border-left: 2px solid var(--accent-blue); border-radius: 0; gap: 4px; }
  .ac-heur .ac-h3 { font-size: 13px; font-family: var(--font-body); font-weight: 600; color: var(--accent-blue-hover); }
  .ac-heur p { font-size: 18.5px; }

  /* follow-up and when to call */
  .ac-call > .ac-wrap > h2 { padding-bottom: 14px; border-bottom: 1px solid var(--ink); }
  .ac-fu__h { margin: 20px 0 4px !important; }
  .ac-fu li { grid-template-columns: 50px minmax(0, 1fr) 110px; gap: 4px 14px; padding-block: 11px; }
  .ac-fu li:first-child { border-top-width: 1px; }
  .ac-fu__track { font-size: 17px; }
  .ac-fu__tag { grid-column: auto; grid-row: auto; justify-self: end; text-align: right; font-size: 11px; }
  .ac-fu li > p:nth-child(2) { grid-column: auto; grid-row: auto; }
  .ac-alone { gap: 4px; padding-block: 22px; }
  .ac-alone .ac-h3 { font-size: 17px; }
  .ac main .ac-alone p { font-size: 14.5px; }
  .ac-flags { background: none; padding: 0; }
  .ac-flags > .ac-wrap { padding-top: 14px; }
  .ac-flags__head { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding: 16px 20px; background: var(--accent-wash); }
  .ac-ring { width: 44px; height: 44px; }
  .ac-flags__head > div { gap: 2px; }
  .ac-flags__lead { font-size: 16px; }
  .ac-flags__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 22px; margin-top: 20px !important; }
  .ac-flags__grid li { border-top-width: 2px; padding-top: 6px; }
  .ac-flags__grid h4 { font-size: 13.5px; }
  .ac main .ac-flags__grid p { margin-top: 3px !important; font-size: 12.5px; line-height: 1.45; }
  .ac main .ac-reach { margin-top: 22px !important; padding: 14px 18px; border-width: 1.5px; border-radius: 3px; font-size: 14px; }

  /* keep going */
  .ac-next { background: #fff; color: var(--ink-soft); }
  .ac-next > .ac-wrap { padding-top: .7in; }
  .ac-next h2 { color: var(--ink) !important; }
  .ac main .ac-next strong { color: var(--ink); }
  .ac-next__grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .ac-next__text { gap: 12px; }
  .ac main .ac-next h2 { font-size: 46px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); margin-bottom: 18px !important; }
  .ac main .ac-next__text p { font-size: 16px; line-height: 1.6; }
  .ac-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .ac main .ac-way { grid-template-columns: minmax(0, 1fr); padding-block: 14px 0; border-top: 1px solid var(--ink); border-bottom: 0 !important; color: var(--ink-soft); }
  .ac main .ac-way strong { font-size: 20px; color: var(--ink); }
  .ac-way__url { font-size: 11.5px; color: var(--accent-blue-hover); text-decoration: underline; }
  .ac-legal { display: block; margin: auto .66in 0; padding-block: 14px; border-top: 1px solid var(--border); }
  .ac-legal p { font-size: 10.5px !important; line-height: 1.55; color: var(--ink-muted); }
  .ac-legal p:first-child { margin-bottom: 6px !important; font-size: 9.5px !important; letter-spacing: .08em; text-transform: uppercase; }
  .ac-legal strong { font-weight: 500; }
  .ac-next .ac-sheet__foot { margin-top: 0; }

  /* physical therapy: the dark band is a white sheet like the rest */
  .ac main .ac-pt h2 { color: var(--ink); font-size: 34px; line-height: 1.04; }
  .ac-pt h2 > em { color: var(--accent-blue); }
  .ac main .ac-pt strong, .ac-pt .ac-h3, .ac-pt__phase h3, .ac-pt__lede { color: var(--ink); }
  .ac-pt .ac-sub, .ac-pt .ac-notice { color: var(--ink-muted); }
  .ac main .ac-pt :is(p, li:not(.ac-toc li)) > a:not([class]) { color: inherit; }
  .ac-pt__head { grid-template-columns: minmax(0, 1fr) 190px; gap: 28px; padding-bottom: 16px; border-bottom: 1px solid var(--ink); }
  .ac-pt__text { gap: 10px; }
  .ac-pt__lede { font-size: 14.5px; }
  .ac-pt__you { padding: 6px 10px; border: 1px solid var(--accent-blue); border-radius: 3px; font-size: 12.5px; color: var(--ink); }
  .ac-pt__pair { max-width: 190px; }
  .ac-pt__ring { stroke: var(--accent-blue); }
  .ac-pt__cell { fill: var(--accent-blue); }
  .ac-pt__stair { stroke: var(--ink); }
  .ac-pt__pair text { fill: var(--ink); font-size: 17px; }
  .ac-pt__lens { fill: var(--accent-wash); opacity: 1 !important; }
  .ac-pt__wave, .ac-pt__run, .ac-pt__seg, .ac-pt__node[data-node="0"]::after { display: none; }
  .ac-js .ac-pt :is(.ac-pt__a, .ac-pt__b, text, .ac-pt__rest, .ac-pt__area, .ac-pt__start, .ac-pt__node, .ac-pt__flag, .ac-pt__rest-label, .ac-pt__ticks) { opacity: 1 !important; transform: none !important; }
  .ac-js .ac-pt :is(.ac-pt__line, .ac-pt__check path) { stroke-dashoffset: 0 !important; }
  .ac-pt__ramp { margin-top: 26px !important; }
  .ac-pt__svg { height: 170px; }
  .ac-pt__rest { fill: rgba(11, 29, 58, .06); }
  .ac-pt__base { stroke: var(--border-strong); }
  .ac-pt__area { fill: var(--accent-wash); }
  .ac-pt__line { stroke: var(--accent-blue); }
  .ac-pt__start { stroke: var(--ink); }
  .ac-pt__node { width: 11px; height: 11px; margin: -5.5px 0 0 -5.5px; border-width: 2px; background: #fff; border-color: var(--accent-blue); }
  .ac-pt__node[data-node="0"] { background: var(--ink); border-color: var(--ink); }
  .ac-pt__rest-note { display: none; }
  .ac-pt__rest-label { display: block; font-size: 10.5px; color: var(--ink-muted); padding-inline: 6px 4px; }
  .ac-pt__rest-label b { color: var(--ink); }
  .ac-pt__flag { left: calc(11.92% + 10px); padding: 3px 9px; background: var(--ink); color: #fff; font-size: 11px; }
  .ac-pt__ticks { height: 14px; margin-top: 7px !important; }
  .ac-pt__ticks b { font-size: 10.5px; color: var(--ink-muted); }
  .ac-pt__phases { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 18px; margin-top: 18px !important; }
  .ac-pt__phase { border-top: 2px solid var(--ink); padding-top: 8px; }
  .ac-pt__when { font-size: 11px; color: var(--accent-blue-hover); }
  .ac-pt__phase h3 { font-size: 17px; margin-top: 2px !important; }
  .ac main .ac-pt__phase > p:last-child { margin-top: 5px !important; font-size: 12.5px; line-height: 1.48; color: var(--ink-soft); }
  .ac-pt__bring { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 26px; margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--ink); }
  .ac-pt__list li { grid-template-columns: 16px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-color: var(--border); font-size: 12.5px; line-height: 1.48; color: var(--ink-soft); }
  .ac-pt__list li:first-child { border-top: 0; padding-top: 0; }
  .ac-pt__check { width: 16px; height: 16px; }
  .ac-pt__check circle { stroke: var(--accent-blue); }
  .ac-pt__check path { stroke: var(--ink); }
}
