/* UX v64 chrome: components shared by EVERY page (header, menu, buttons, labels, cards, footer, motion).
   Split out of the UX base.css (v64-design-preview) so legacy-markup pages get the same header and buttons
   without the element resets. Changes from UX: menu breakpoint 960px -> 900px, a navy "Call Tom" header
   link at 900px and below, tighter header spacing at 400px and below. */
.acc-wrap{max-width:var(--acc-layout-max);margin-inline:auto;padding-inline:var(--acc-space-gutter)}
.acc-section{padding-block:var(--acc-space-section)}
.acc-inverse{background:var(--acc-color-surface-inverse);color:var(--acc-color-text-on-inverse)}
.acc-inverse :focus-visible{outline-color:var(--acc-color-focus-ring-on-inverse)}
.acc-sunk{background:var(--acc-color-surface-sunk)}

/* label: sentence case sans, 13px floor, replaces 9 to 11px typewriter mono */
.acc-label{display:inline-flex;align-items:center;gap:var(--acc-ref-space-2);font-size:var(--acc-type-size-xs);font-weight:600;letter-spacing:var(--acc-type-tracking-label);text-transform:uppercase;color:var(--acc-color-text-accent)}
.acc-inverse .acc-label{color:var(--acc-color-text-accent-on-inverse)}
.acc-lede{font-size:var(--acc-type-size-l);color:var(--acc-color-text-secondary);max-width:56ch}
.acc-inverse .acc-lede{color:var(--acc-color-text-on-inverse-secondary)}
.acc-muted{color:var(--acc-color-text-secondary)}
.acc-inverse .acc-muted{color:var(--acc-color-text-on-inverse-secondary)}
.acc-num{font-variant-numeric:tabular-nums}

:focus-visible{outline:3px solid var(--acc-color-focus-ring);outline-offset:3px;border-radius:4px}
[tabindex="-1"]:focus{outline:none}
.acc-skip{position:absolute;left:var(--acc-ref-space-4);top:-100px;z-index:100;background:var(--acc-button-secondary-bg);color:var(--acc-button-secondary-fg);padding:var(--acc-ref-space-3) var(--acc-ref-space-4);border-radius:var(--acc-radius-field)}
.acc-skip:focus{top:var(--acc-ref-space-4)}
.acc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* buttons */
.acc-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--acc-ref-space-2);min-height:var(--acc-button-height);padding:0 var(--acc-ref-space-5);border-radius:var(--acc-button-radius);border:1.5px solid transparent;font:inherit;font-size:var(--acc-type-size-s);font-weight:620;text-decoration:none;cursor:pointer;transition:background-color var(--acc-motion-fast) var(--acc-motion-ease),transform var(--acc-motion-fast) var(--acc-motion-ease),box-shadow var(--acc-motion-base) var(--acc-motion-ease)}
.acc-btn:active{transform:translateY(1px) scale(.99)}
.acc-btn--primary{background:var(--acc-button-primary-bg);color:var(--acc-button-primary-fg)}
.acc-btn--primary:hover{background:var(--acc-button-primary-bg-hover);box-shadow:var(--acc-shadow-raised)}
.acc-btn--secondary{background:var(--acc-button-secondary-bg);color:var(--acc-button-secondary-fg)}
.acc-btn--ghost{background:transparent;color:inherit;border-color:var(--acc-button-ghost-border)}
.acc-inverse .acc-btn--ghost{border-color:var(--acc-color-text-on-inverse-secondary)}
.acc-btn--ghost:hover{background:var(--acc-color-surface-sunk)}
.acc-inverse .acc-btn--ghost:hover{background:var(--acc-color-surface-inverse-raised)}
.acc-btn .acc-arrow{transition:transform var(--acc-motion-base) var(--acc-motion-ease)}
.acc-btn:hover .acc-arrow{transform:translateX(3px)}
.acc-link{font-weight:620;text-decoration:underline;text-decoration-color:var(--acc-color-border-subtle);text-underline-offset:.25em}
.acc-link:hover{text-decoration-color:currentColor}

/* header: translucent cream, rust reserved for the primary action */
.acc-header{position:sticky;top:0;z-index:50;background:var(--acc-header-bg);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--acc-header-border)}
.acc-header__in{display:flex;align-items:center;gap:var(--acc-ref-space-5);min-height:68px}
.acc-brand{display:flex;align-items:center;gap:var(--acc-ref-space-2);text-decoration:none;font-weight:700;font-size:1.125rem;letter-spacing:-0.01em}
.acc-brand img{width:28px;height:auto}
.acc-nav{display:flex;gap:var(--acc-ref-space-1);margin-left:auto;align-items:center}
.acc-nav a{text-decoration:none;font-size:var(--acc-type-size-s);font-weight:520;color:var(--acc-color-text-secondary);padding:var(--acc-ref-space-2) var(--acc-ref-space-3);border-radius:var(--acc-radius-control);transition:color var(--acc-motion-fast),background-color var(--acc-motion-fast)}
.acc-nav a:hover,.acc-nav a[aria-current="page"]{color:var(--acc-color-text-primary);background:var(--acc-color-surface-sunk)}
.acc-header .acc-btn{min-height:40px;padding:0 var(--acc-ref-space-4)}
.acc-menu{display:none;margin-left:auto}
.acc-menu summary{list-style:none;cursor:pointer;min-height:var(--acc-target-min);display:flex;align-items:center;padding:0 var(--acc-ref-space-4);border:1.5px solid var(--acc-color-border-strong);border-radius:var(--acc-radius-control);font-weight:620;font-size:var(--acc-type-size-s)}
.acc-menu summary::-webkit-details-marker{display:none}
.acc-menu[open] .acc-menu__panel{display:grid}
.acc-menu__panel{display:none;position:absolute;left:var(--acc-space-gutter);right:var(--acc-space-gutter);top:72px;background:var(--acc-color-surface-raised);border:1px solid var(--acc-color-border-subtle);border-radius:var(--acc-radius-card);padding:var(--acc-ref-space-3);box-shadow:var(--acc-shadow-overlay)}
.acc-menu__panel a{padding:var(--acc-ref-space-3) var(--acc-ref-space-4);text-decoration:none;font-weight:560;border-radius:var(--acc-radius-field);min-height:var(--acc-target-min)}
.acc-menu__panel a:hover{background:var(--acc-color-surface-sunk)}
.acc-header__call{display:none}
@media (max-width:900px){.acc-nav{display:none}.acc-menu{display:block}.acc-header__cta{display:none}
  .acc-header__call{display:inline-flex;margin-left:auto;min-height:var(--acc-target-min);padding:0 var(--acc-ref-space-4)}
  .acc-header__call+.acc-menu{margin-left:0}}
@media (max-width:400px){.acc-header__in{gap:var(--acc-ref-space-2)}.acc-brand{font-size:1rem}.acc-brand img{width:24px}
  .acc-header__call,.acc-menu summary{padding:0 var(--acc-ref-space-3)}}

/* cards: whole card clickable via stretched link, not a wrapping <a> */
.acc-card{position:relative;background:var(--acc-card-bg);border:1px solid var(--acc-card-border);border-radius:var(--acc-card-radius);padding:var(--acc-card-pad);transition:border-color var(--acc-motion-base) var(--acc-motion-ease),box-shadow var(--acc-motion-base) var(--acc-motion-ease),transform var(--acc-motion-base) var(--acc-motion-ease)}
.acc-card:has(.acc-stretch):hover{border-color:var(--acc-color-border-strong);box-shadow:var(--acc-shadow-raised);transform:translateY(-2px)}
.acc-stretch::after{content:"";position:absolute;inset:0;border-radius:inherit}
.acc-stretch{text-decoration:none}
.acc-card:has(.acc-stretch:focus-visible){outline:3px solid var(--acc-color-focus-ring);outline-offset:3px}
.acc-stretch:focus-visible{outline:none}
.acc-chip{display:inline-flex;align-items:center;min-height:28px;padding:0 var(--acc-ref-space-3);border-radius:var(--acc-radius-control);background:var(--acc-color-surface-sunk);font-size:var(--acc-type-size-xs);font-weight:560;color:var(--acc-color-text-secondary)}
.acc-inverse .acc-chip{background:var(--acc-color-surface-inverse-raised);color:var(--acc-color-text-on-inverse-secondary)}

/* footer */
.acc-footer{padding-block:var(--acc-ref-space-8) var(--acc-ref-space-6);font-size:var(--acc-type-size-s)}
.acc-footer__top{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:var(--acc-ref-space-6)}
.acc-footer h3,.acc-footer .acc-footer__h{font-family:var(--acc-font-body);font-weight:600;line-height:1.4;letter-spacing:var(--acc-type-tracking-label);font-size:var(--acc-type-size-xs);text-transform:uppercase;letter-spacing:var(--acc-type-tracking-label);color:var(--acc-color-text-on-inverse-secondary);margin-bottom:var(--acc-ref-space-3)}
.acc-footer a,.acc-footer__static{display:block;padding-block:6px;text-decoration:none;color:var(--acc-color-text-on-inverse)}
.acc-footer a:hover{text-decoration:underline}
.acc-footer__brand{font-family:var(--acc-font-display);font-size:var(--acc-type-size-xl)}
.acc-footer__brand span{color:var(--acc-color-text-accent-on-inverse)}
.acc-footer__bottom{display:flex;flex-wrap:wrap;gap:var(--acc-ref-space-4);justify-content:space-between;margin-top:var(--acc-ref-space-7);padding-top:var(--acc-ref-space-5);border-top:1px solid var(--acc-color-surface-inverse-raised);color:var(--acc-color-text-on-inverse-secondary)}
@media (max-width:820px){.acc-footer__top{grid-template-columns:1fr 1fr}.acc-footer__top>div:first-child{grid-column:1/-1}}

/* motion: progressive, CSS-first. Content is visible by default; entrance only
   where scroll-driven animations exist, and never under reduced motion. */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .acc-rise{animation:acc-rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
  }
  @view-transition{navigation:auto}
}
@keyframes acc-rise{from{opacity:.001;transform:translateY(20px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
.acc-preview-flag{background:var(--acc-color-surface-inverse);color:var(--acc-color-text-on-inverse);font-size:var(--acc-type-size-xs);text-align:center;padding:6px var(--acc-ref-space-4)}
/* v64 pass 3: every proof stat carries the date it was verified (CLAIMS.md, Oct 2026). No engagement year is on file. */
.as-of{display:block;margin-top:4px;font-size:.8125rem;line-height:1.4;color:var(--acc-color-text-secondary);font-style:normal}
.claim-line .as-of,p > .as-of{display:inline;margin:0}
/* v64 pass 5: on navy the cream-page grey is 2.46:1, so the label takes the on-navy secondary tone */
.acc-inverse .as-of,.ink-section .as-of,.method .as-of,.stats-bar .as-of,.results .as-of,.book-feature .as-of,.cta-banner .as-of{color:var(--acc-color-text-on-inverse-secondary)}
