/* Advanced Pain Solutions, design round 1 world kit: shared tokens (K0, 2026-10-19).
   Load after /kit/fonts/fonts.css. Only the BRAND LOCKS and a shared spacing / layout scale live here; each world adds its own
   palette, type scale and grounds in its own CSS, scoped under [data-world="V<n>"] with the prefix v<n>- (WAVE-BRIEF section 5).

   Brand locks (sources):
     --aps-teal       #0384A9  site CSS + the logo; the 4K end card samples #0083AA, the Drive logo #0085AB (same colour, compression)
     --aps-teal-deep  #005577  site CSS (header pill); passes AA with white text (8.18:1)
     --aps-grey       #6D6E71  the logo's "ADVANCED" (end card #6D6C6F, Drive logo #6A706D)
     --aps-green      #668D43  the logo's spine dots (end card #68913E, Drive logo #638E43; the site's olive #668D43)
     --aps-leaf       #98C072  the site's light leaf green; dots on dark only, NEVER a button fill (white on it = 2.08:1)
     --aps-star       #fbbc04  Google gold, review stars only (fleet No-Senja ruling), never a UI accent
   Contrast notes: white on --aps-teal = 4.31:1 (large text / 24 px+ bold only); --aps-teal on white for body links = 4.31:1, so
   body-size links on light grounds use --aps-teal-deep; --aps-teal-ink #062E3A on --aps-teal = 3.34:1 (large only); --aps-teal on warm paper #F6F2EA = 3.86:1 (large only). */
:root{
  /* ---- brand locks ---- */
  --aps-teal:#0384A9;
  --aps-teal-deep:#005577;
  --aps-teal-ink:#062E3A;
  --aps-grey:#6D6E71;
  --aps-green:#668D43;
  --aps-leaf:#98C072;
  --aps-star:#fbbc04;
  --aps-white:#FFFFFF;

  /* ---- legibility floors for a 50 to 60 audience (WAVE-BRIEF section 5) ---- */
  --aps-body-min:17px;          /* body at 390 */
  --aps-body-max:19px;          /* body at 1440 */
  --aps-body:clamp(17px, 16.26px + 0.19vw, 19px);   /* 17 at 390, 19 at 1440 */
  --aps-lh-body:1.6;
  --aps-tap:48px;               /* minimum tap target */
  --aps-utility:12px;           /* caps utility labels (mono / tracked caps); never body copy */

  /* ---- shared spacing scale (4 px base, 8 px rhythm) ---- */
  --aps-sp-1:4px;  --aps-sp-2:8px;  --aps-sp-3:12px; --aps-sp-4:16px;  --aps-sp-5:24px;
  --aps-sp-6:32px; --aps-sp-7:48px; --aps-sp-8:64px; --aps-sp-9:96px;  --aps-sp-10:128px;
  --aps-section:clamp(72px, 48px + 6vw, 160px);     /* section vertical padding */
  --aps-gutter:clamp(16px, 8px + 2.6vw, 48px);      /* page side gutter (16 at 390) */
  --aps-maxw:1320px;                                /* container */
  --aps-maxw-text:68ch;                             /* reading measure */

  /* ---- shape + motion defaults (worlds may override inside their scope) ---- */
  --aps-r-s:8px; --aps-r-m:16px; --aps-r-l:28px; --aps-r-pill:999px;
  --aps-ease-out:cubic-bezier(.16,1,.3,1);
  --aps-ease-inout:cubic-bezier(.65,0,.35,1);
  --aps-rotor-hold:2.4s;        /* any rotating copy holds at least this long per state */

  /* ---- chrome ---- */
  --aps-mobile-bar-h:64px;      /* the < 768 px Call / Book bar (add env(safe-area-inset-bottom)) */
  --aps-booking-min:560px;      /* booking host container min-height (Poptin playbook); iframe 620 to 640 at build */
}

/* Shared helpers, safe in every world (no colour, no type decisions). */
.aps-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.aps-wrap{width:min(100% - 2*var(--aps-gutter), var(--aps-maxw));margin-inline:auto}
[data-booking-host]{min-height:var(--aps-booking-min)}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
