/* ==== assets/pages/component-variants.css ==== */
/*
 * recipe-variants.css — visual variants for the section-recipe chrome (apb-rx-*): nav (mega + mobile
 * drawer), hero (gradient / stat_strip / video_bg), footer (mega / animated), announcement_bar
 * (marquee / countdown). Companion to layouts.css (which holds the base apb-rx-* styles) and
 * apb-recipe-ui.js (interactivity). Token-with-fallback, no !important. Self-contained custom props
 * below so the file needs nothing beyond layouts.css's --color-* tokens.
 */
:root{
  --apb-rx-ease:cubic-bezier(.22,1,.36,1);
  --apb-rx-brand:var(--color-primary,#4f46e5);
  --apb-rx-brand2:#7c3aed;
  --apb-rx-brand3:#2563eb;
  --apb-rx-ink:#0b0d12;
  --apb-rx-muted:#6b7280;
  --apb-rx-line:var(--color-gray-200,#e7e8ec);
  --apb-rx-shadow-1:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-shadow-2:0 2px 6px rgba(11,13,18,.06),0 14px 34px -12px rgba(11,13,18,.22);
  --apb-rx-shadow-3:0 8px 24px -6px rgba(11,13,18,.18),0 30px 70px -20px rgba(11,13,18,.30);
  /* brand-derived effect tokens — NEUTRAL defaults here (non-themed pages); .apb-rx-theme re-derives
     them from the brand below. Glows/checks/accent-text consume these so nothing is hardcoded to blue. */
  --apb-rx-glow:rgba(11,13,18,.20);
  --apb-rx-glow-soft:rgba(11,13,18,.08);
  --apb-rx-ring:rgba(11,13,18,.20);
  --apb-rx-check:var(--color-primary,#4f46e5);
  --apb-rx-check-bg:rgba(0,0,0,.06);
  --apb-rx-accent-text:var(--color-primary,#4f46e5);
  --apb-rx-soft:#f4f5f7;          /* faint tinted surface (icon tiles) — NEUTRAL default */
  --apb-rx-line-accent:var(--color-gray-200,#e7e8ec); /* hover/active accent border */
  /* composable contract — override any of these on the page root (or per [data-apb-theme]) and every
     recipe re-flows: one radius knob scales sm/md/lg, fonts swap globally, border width + motion scale. */
  --apb-rx-radius:16px;
  --apb-rx-radius-pill:999px;
  --apb-rx-density:1;              /* vertical-rhythm multiplier: <1 compact, >1 airy (one knob scales section/hero/cta/footer padding) */
  --apb-rx-density-safe:clamp(.5, var(--apb-rx-density,1), 2);  /* bounded form consumers use — a 0/negative/huge density can't collapse or explode layout */
  --apb-rx-font:inherit;          /* body text */
  --apb-rx-font-display:inherit;  /* headings (themes set this) */
  --apb-rx-body-scale:1;          /* body-size multiplier */
  --apb-rx-body-leading:1.6;      /* body line-height */
  --apb-rx-border:1px;            /* card/divider border width */
  /* SKIN SEAM (style axis) — each defaults to today's literal so [data-apb-style] presets can re-skin
     material/type with ZERO regression when unset. A page-root [data-apb-style="liquid-glass"] (etc.)
     overrides these; base recipes consume them via var(token, <same-literal>) fallbacks.
     surface = primary card/panel fill; surface-2 = nested/overlay (mega panel, bento card, faq);
     ink-2 = strong body text (referenced with per-site fallbacks so one override flips all).
     blur stays 0px in base CSS — base rules NEVER apply backdrop-filter; only a style opts in (perf). */
  --apb-rx-surface:#fff;
  --apb-rx-surface-2:#fff;
  --apb-rx-blur:0px;
  --apb-rx-display-scale:1;       /* heading SIZE multiplier (editorial cranks this) */
  --apb-rx-display-weight:800;    /* heading weight (variable-font wght hook) */
  /* NOTE: --apb-rx-display-tracking (kerning) and --apb-rx-display-leading (line-height) are intentionally
     NOT declared here — hero h1 and section h2 carry DIFFERENT defaults (-.02em/1.05 vs -.025em/1.08), so
     each reads var(token, <its-own-default>). A per-page `type` token then drives BOTH consistently. */
  /* BUDGET (advisory; read by apb-recipe-ui.js / picker, not by base CSS): a glass/motion style must
     not exceed --apb-rx-max-glass simultaneous backdrop-filter layers, nor blur past --apb-rx-blur-cap,
     on mobile. Defined here as the single source of truth for the device-budget tier. */
  --apb-rx-max-glass:3;
  --apb-rx-blur-cap:20px;
  --apb-rx-dur:1;                 /* motion SPEED multiplier (.5 slower, 2 faster); prefers-reduced-motion disables motion */
  /* centralised interaction timing — every hover/transition reads these, so one --apb-rx-dur knob
     (or these three) retimes the whole system consistently. */
  --apb-rx-t-fast:calc(.16s * var(--apb-rx-dur));
  --apb-rx-t:calc(.28s * var(--apb-rx-dur));
  --apb-rx-t-slow:calc(.55s * var(--apb-rx-dur));
  /* LAYER SCALE (self-contained; mirrors the admin --apb-z-* intent). The whole sticky nav sits at the
     dropdown layer so its mega panel + mobile drawer are ALWAYS above page content — a weak agent can
     drop a section with z-index up to ~999 and the menu still wins. Page-level protection is the nav z
     ALONE: flyout/scrim are NAV-LOCAL (they only order children within the nav's z-index:1000 stacking
     context, never compared against page content). Anything that must sit ABOVE the open menu (a future
     modal / lightbox / cookie banner) MUST use --apb-rx-z-overlay or higher — never exceed it elsewhere. */
  --apb-rx-z-nav:1000;     /* sticky header layer (mega panel + drawer render inside it) — top PUBLIC layer */
  --apb-rx-z-overlay:2000; /* reserved: full-page overlays that must cover the nav/menu (none ship today) */
  --apb-rx-z-flyout:60;    /* NAV-LOCAL: mega panel / mobile drawer — above the nav row, within the nav layer */
  --apb-rx-z-scrim:50;     /* NAV-LOCAL: mobile scrim — below the drawer */
}
/* ============================================================================================
   BRAND-DERIVED TOKEN LAYER — declared on the .apb-rx-theme WRAPPER (not :root) so a brand that
   overrides --color-primary on the wrapper actually re-resolves these (the :root declaration is
   computed once from the default and inherited as a literal). Everything brand-tinted (glow,
   focus ring, decorative checks, accent text) derives from --apb-rx-brand + the colour scheme,
   so ANY brand themes correctly with zero per-brand CSS.
   EFFECTS TOGGLE: data-apb-fx="full"(default) | "soft" | "off". Agents set it per brand — some
   brands want no glow. "off" keeps neutral elevation + an accessible focus ring, drops the colour.
   ============================================================================================ */
.apb-rx-theme{
  --apb-rx-brand:var(--color-primary,#4f46e5);                                  /* re-resolve at wrapper scope */
  --apb-rx-brand2:var(--color-primary,#4f46e5);  /* default monochrome; [data-apb-theme] + inline brand override */
  --apb-rx-brand3:var(--color-primary,#4f46e5);  /* tri-stop gradients derive from brand too */
  --apb-rx-accent:var(--apb-rx-brand);           /* SOLID accent fill (charts/typography/content highlights read var(--apb-rx-accent,#4f46e5)); derives from brand so those components conform. Override at page root for a distinct accent. */
  --apb-rx-glow:color-mix(in srgb, var(--apb-rx-brand) 50%, transparent);       /* brand-tinted drop glow */
  --apb-rx-glow-soft:color-mix(in srgb, var(--apb-rx-brand) 16%, transparent);  /* ambient/contact shadow */
  --apb-rx-ring:color-mix(in srgb, var(--apb-rx-brand) 35%, transparent);       /* focus ring */
  --apb-rx-check:var(--apb-rx-brand);                                           /* decorative tick colour */
  --apb-rx-check-bg:color-mix(in srgb, var(--apb-rx-brand) 16%, var(--apb-rx-surface,#fff));
  --apb-rx-accent-text:color-mix(in srgb, var(--apb-rx-brand) 75%, var(--apb-rx-ink,#0b0d12)); /* deepen toward ink so PALE brands (yellow/lime) stay legible as text on light */
  --apb-rx-soft:color-mix(in srgb, var(--apb-rx-brand) 8%, var(--apb-rx-surface,#fff));   /* brand-tinted tile surface */
  --apb-rx-line-accent:color-mix(in srgb, var(--apb-rx-brand) 26%, var(--apb-rx-line,#e7e8ec));
}
.apb-rx-theme[data-apb-scheme="dark"]{
  --apb-rx-accent-text:color-mix(in srgb, var(--apb-rx-brand) 50%, #fff); /* lighter so near-black brands stay AA-legible on dark */
  --apb-rx-glow:color-mix(in srgb, var(--apb-rx-brand) 60%, transparent);
  --apb-rx-check-bg:color-mix(in srgb, var(--apb-rx-brand) 24%, #000);
  --apb-rx-soft:color-mix(in srgb, var(--apb-rx-brand) 14%, #000);
  --apb-rx-line-accent:color-mix(in srgb, var(--apb-rx-brand) 34%, #000);
}
.apb-rx-theme[data-apb-fx="soft"]{
  --apb-rx-glow:color-mix(in srgb, var(--apb-rx-brand) 24%, transparent);
  --apb-rx-glow-soft:color-mix(in srgb, var(--apb-rx-brand) 8%, transparent);
  --apb-rx-ring:color-mix(in srgb, var(--apb-rx-brand) 24%, transparent);
}
.apb-rx-theme[data-apb-fx="off"]{
  --apb-rx-glow:rgba(11,13,18,.16);          /* neutral elevation — no colour */
  --apb-rx-glow-soft:rgba(11,13,18,.06);
  --apb-rx-ring:color-mix(in srgb, var(--apb-rx-brand) 30%, transparent); /* keep focus ring for a11y */
}
.apb-rx-theme[data-apb-scheme="dark"][data-apb-fx="off"]{
  --apb-rx-glow:rgba(0,0,0,.5);
  --apb-rx-glow-soft:rgba(0,0,0,.32);
}
/* legacy browsers without color-mix: neutral (NOT blue) glow + brand check/accent fallbacks */
@supports not (color: color-mix(in srgb, red, blue)){
  .apb-rx-theme{
    --apb-rx-glow:rgba(11,13,18,.28);--apb-rx-glow-soft:rgba(11,13,18,.10);--apb-rx-ring:rgba(11,13,18,.22);
    --apb-rx-check:var(--apb-rx-brand);--apb-rx-check-bg:rgba(0,0,0,.06);--apb-rx-accent-text:var(--apb-rx-brand);
    --apb-rx-soft:#f4f5f7;--apb-rx-line-accent:var(--apb-rx-line,#e7e8ec);
  }
  .apb-rx-theme[data-apb-fx="off"]{--apb-rx-glow:rgba(11,13,18,.14);--apb-rx-glow-soft:rgba(11,13,18,.05);--apb-rx-ring:rgba(11,13,18,.22)}
}
/* font composability: sections inherit the body font, headings the display font. :where() keeps
   specificity at 0 so component heading rules still win; explicit roots (no substring leak). */
:where(.apb-rx-section,.apb-rx-nav,.apb-rx-announce,.apb-rx-hero,.apb-rx-hero--gradient,.apb-rx-hero--video,.apb-rx-footer,.apb-rx-footer--mega){font-family:var(--apb-rx-font,inherit)}
:where(.apb-rx-section,.apb-rx-hero,.apb-rx-hero--gradient,.apb-rx-hero--video) :where(h1,h2,h3),:where(.apb-rx-wordmark){font-family:var(--apb-rx-font-display,var(--apb-rx-font,inherit))}
/* inline emphasis (*word* in a headline/heading/lead -> <em class="apb-rx-em">). Defaults to italic;
   per-page `type` tokens can give it a contrasting font / weight / kerning. Pure type, no layout. */
.apb-rx-em{font-style:var(--apb-rx-em-style,italic);font-family:var(--apb-rx-em-font,inherit);font-weight:var(--apb-rx-em-weight,inherit);letter-spacing:var(--apb-rx-em-tracking,inherit)}

/* centralised scroll-reveal: wrap the page in [data-apb-animate] (engine `animate` flag); every
   top-level section eases in on scroll (apb-recipe-ui.js adds .apb-rx-in). Nav is excluded (sticky).
   Hiding is gated on [data-apb-animate-ready] which JS adds ONLY after it can reveal — so with JS
   off/errored the content is never hidden (fail-open). prefers-reduced-motion shows everything. */
/* base reveal — byte-identical to before: opacity+transform only, --apb-rx-reveal-tf defaults to the
   original translateY(20px); reveal timing/easing are REVEAL-SCOPED tokens defaulting to the originals,
   so unset = zero change AND brand motion never retimes ambient/looping UI or interaction easing. */
[data-apb-animate-ready]>:not(.apb-rx-nav){transition:opacity var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
[data-apb-animate-ready]>:not(.apb-rx-nav):not(.apb-rx-in){opacity:0;transform:var(--apb-rx-reveal-tf,translateY(20px))}
@media(prefers-reduced-motion:reduce){[data-apb-animate-ready]>*{opacity:1;transform:none;filter:none;clip-path:none;-webkit-mask-image:none;mask-image:none;transition:none}}

/* MOTION personality buckets (brand `motion`). reveal STYLE sets the hidden-state from-transform. */
[data-apb-reveal="fade"]{--apb-rx-reveal-tf:none}
[data-apb-reveal="fade-down"]{--apb-rx-reveal-tf:translateY(calc(-1 * var(--apb-rx-reveal-distance,20px)))}
[data-apb-reveal="scale-in"]{--apb-rx-reveal-tf:scale(.94)}
[data-apb-reveal="clip-up"]{--apb-rx-reveal-tf:translateY(var(--apb-rx-reveal-distance,26px))}
[data-apb-reveal="mask-up"]{--apb-rx-reveal-tf:translateY(60px)}
/* blur-in adds a filter transition ONLY for itself — base reveal never transitions filter (zero-reg) */
[data-apb-reveal="blur-in"]{--apb-rx-reveal-tf:translateY(12px)}
[data-apb-animate-ready][data-apb-reveal="blur-in"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
[data-apb-animate-ready][data-apb-reveal="blur-in"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){filter:blur(8px)}
/* blur-bloom — sharpens out of an over-bright gaussian while settling from a slight zoom (filter transition, like blur-in) */
[data-apb-reveal="blur-bloom"]{--apb-rx-reveal-tf:scale(.9)}
[data-apb-animate-ready][data-apb-reveal="blur-bloom"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
[data-apb-animate-ready][data-apb-reveal="blur-bloom"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){filter:blur(14px) brightness(1.35)}
/* ---- extended reveal catalog (brand motion.reveal). Transform-only styles just set the from-transform;
   styles animating filter/clip-path/mask add their own transition + explicit endpoints (like blur-in).
   The heavy filter/mask "expressive" styles degrade to the base transform on small screens. ---- */
[data-apb-reveal="rise"]{--apb-rx-reveal-tf:translateY(30px) scale(.965)}
[data-apb-reveal="overshoot"]{--apb-rx-reveal-tf:translateY(40px) scale(.9)}
[data-apb-reveal="glide-left"]{--apb-rx-reveal-tf:translateX(48px)}
[data-apb-reveal="glide-right"]{--apb-rx-reveal-tf:translateX(-48px)}
[data-apb-reveal="skew-rise"]{--apb-rx-reveal-tf:translateY(30px) skewY(3.5deg)}
[data-apb-reveal="tilt-in"]{--apb-rx-reveal-tf:perspective(1100px) rotateX(12deg) translateY(28px)}
/* focus-pull — cinematic rack focus (gaussian + scale); needs a filter transition */
[data-apb-reveal="focus-pull"]{--apb-rx-reveal-tf:scale(1.045)}
[data-apb-animate-ready][data-apb-reveal="focus-pull"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
[data-apb-animate-ready][data-apb-reveal="focus-pull"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){filter:blur(18px)}
/* wipe-up / iris — geometric clip wipes; explicit clip-path endpoints (none won't interpolate) */
[data-apb-reveal="wipe-up"]{--apb-rx-reveal-tf:none}
[data-apb-animate-ready][data-apb-reveal="wipe-up"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),clip-path var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease));clip-path:inset(0 0 0 0)}
[data-apb-animate-ready][data-apb-reveal="wipe-up"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){clip-path:inset(100% 0 0 0)}
[data-apb-reveal="iris"]{--apb-rx-reveal-tf:none}
[data-apb-animate-ready][data-apb-reveal="iris"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),clip-path var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease));clip-path:circle(150% at 50% 55%)}
[data-apb-animate-ready][data-apb-reveal="iris"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){clip-path:circle(0% at 50% 55%)}
/* mask-soft — feathered gradient wipe (premium) */
[data-apb-reveal="mask-soft"]{--apb-rx-reveal-tf:translateY(18px)}
@supports ((-webkit-mask-image:linear-gradient(#000,#000)) or (mask-image:linear-gradient(#000,#000))){
  [data-apb-animate-ready][data-apb-reveal="mask-soft"]>:not(.apb-rx-nav):not([data-apb-reveal]){-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 60%,transparent);-webkit-mask-size:100% 240%;mask-size:100% 240%;-webkit-mask-position:0 0;mask-position:0 0;transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready][data-apb-reveal="mask-soft"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){-webkit-mask-position:0 -140%;mask-position:0 -140%}
}
/* sheen-in — luminous diagonal sweep materialize (mask-position sweep, like mask-soft) */
[data-apb-reveal="sheen-in"]{--apb-rx-reveal-tf:translateY(14px)}
@supports ((-webkit-mask-image:linear-gradient(#000,#000)) or (mask-image:linear-gradient(#000,#000))){
  [data-apb-animate-ready][data-apb-reveal="sheen-in"]>:not(.apb-rx-nav):not([data-apb-reveal]){-webkit-mask-image:linear-gradient(105deg,#000 42%,rgba(0,0,0,.25) 50%,#000 58%);mask-image:linear-gradient(105deg,#000 42%,rgba(0,0,0,.25) 50%,#000 58%);-webkit-mask-size:280% 100%;mask-size:280% 100%;-webkit-mask-position:0 0;mask-position:0 0;transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready][data-apb-reveal="sheen-in"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){-webkit-mask-position:180% 0;mask-position:180% 0}
}
/* === EXPRESSIVE (heavy) — full effect on >=760px; phones get the base transform fade === */
[data-apb-reveal="unfold"]{--apb-rx-reveal-tf:translateY(24px)}
[data-apb-reveal="dither"]{--apb-rx-reveal-tf:scale(.99)}
[data-apb-reveal="motion-blur"]{--apb-rx-reveal-tf:translateX(60px)}
@media(min-width:760px){
  [data-apb-reveal="unfold"]{--apb-rx-reveal-tf:perspective(1200px) rotateX(-74deg)}
  [data-apb-animate-ready][data-apb-reveal="unfold"]>:not(.apb-rx-nav):not([data-apb-reveal]){transform-origin:top center}
  [data-apb-animate-ready][data-apb-reveal="motion-blur"]>:not(.apb-rx-nav):not([data-apb-reveal]){transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready][data-apb-reveal="motion-blur"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){filter:url(#apb-mblur)}
  @supports ((-webkit-mask-image:url('#x')) or (mask-image:url('#x'))){
    [data-apb-animate-ready][data-apb-reveal="dither"]>:not(.apb-rx-nav):not([data-apb-reveal]){-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");-webkit-mask-size:1px 1px;mask-size:1px 1px;transition:opacity var(--apb-rx-reveal-dur,.55s) steps(7),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-size var(--apb-rx-reveal-dur,.55s) steps(7),mask-size var(--apb-rx-reveal-dur,.55s) steps(7)}
    [data-apb-animate-ready][data-apb-reveal="dither"]>:not(.apb-rx-nav):not([data-apb-reveal]):not(.apb-rx-in){-webkit-mask-size:34px 34px;mask-size:34px 34px}
  }
}
/* easing personality — REVEAL-scoped (--apb-rx-reveal-ease); hover/nav/menu keep smooth --apb-rx-ease.
   spring/bounce linear() are @supports-guarded so unsupported browsers fall back to the smooth curve. */
[data-apb-ease="smooth"]{--apb-rx-reveal-ease:var(--apb-rx-ease)}
[data-apb-ease="snappy"]{--apb-rx-reveal-ease:cubic-bezier(.2,.9,.3,1)}
@supports (transition-timing-function:linear(0,1)){
  [data-apb-ease="spring"]{--apb-rx-reveal-ease:linear(0,.006,.025,.101,.539,.826,.967,1.025,1.04,1.02,1.004,.998,1)}
  [data-apb-ease="bounce"]{--apb-rx-reveal-ease:linear(0,.004,.016,.325,.65,.85,.95,.99,1.01,1.005,1)}
}
/* pace — REVEAL-scoped duration + distance + stagger step (does NOT touch the global --apb-rx-dur, so
   marquee / countdown / sheen / drawer keep their own pacing) */
[data-apb-pace="calm"]{--apb-rx-reveal-dur:.72s;--apb-rx-reveal-distance:14px;--apb-rx-stagger:90ms}
[data-apb-pace="lively"]{--apb-rx-reveal-dur:.42s;--apb-rx-reveal-distance:28px;--apb-rx-stagger:55ms}

/* CHILD STAGGER — consumes the brand-kit motion.stagger knob (`data-apb-stagger` on the theme wrapper,
   previously emitted by the engine but unconsumed). When ON, items inside the known item-grids cascade
   in one-by-one as their section reveals (.apb-rx-in); step = --apb-rx-stagger (pace-scoped: 90ms calm /
   70ms default / 55ms lively). Implemented as a KEYFRAME with `backwards` fill, NOT a persistent
   transition override: children have no independent hidden state (the section itself is hidden pre-
   reveal), and once the animation completes nothing lingers — hover lifts/transitions on cards keep
   working. CENTRAL by design: adding a new grid to the :is() list is the only wiring a future family
   needs. Fail-open: no attr / no JS (wrapper never armed) -> selector never matches. Grids whose
   children carry their own transforms (polaroid rotations, slider/marquee tracks) stay excluded so a
   mid-animation from-transform can't fight them. */
@keyframes apb-rx-stag-in{from{opacity:0;transform:var(--apb-rx-reveal-tf,translateY(16px))}}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>*{animation:apb-rx-stag-in var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)) backwards}
/* per-index delay, capped at 9 (10+ arrive with the 9th) */
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(2){animation-delay:calc(1*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(3){animation-delay:calc(2*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(4){animation-delay:calc(3*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(5){animation-delay:calc(4*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(6){animation-delay:calc(5*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(7){animation-delay:calc(6*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(8){animation-delay:calc(7*var(--apb-rx-stagger,70ms))}
:is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>:nth-child(n+9){animation-delay:calc(8*var(--apb-rx-stagger,70ms))}
@media(prefers-reduced-motion:reduce){
  :is([data-apb-animate-ready][data-apb-stagger] .apb-rx-in:not([data-apb-s-stagger="off"]),[data-apb-animate-ready] .apb-rx-in[data-apb-stagger]) :is(.apb-rx-grid,.apb-rx-prods,.apb-rx-ccd-grid,.apb-rx-cck-grid,.apb-rx-cpc-grid,.apb-rx-rvg-grid,.apb-rx-relg-grid,.apb-rx-aval-grid,.apb-rx-amis-stats,.apb-rx-psh-stats,.apb-ct-stats,.apb-tm-grid,.apb-tm-circgrid,.apb-tm-stggrid,.apb-tm-wavegrid,.apb-tm-slabgrid,.apb-tm-mosgrid,.apb-tm-bengrid,.apb-tm-hvgrid,.apb-tm-ldgrid,.apb-tm-flgrid,.apb-tm-fsminis,.apb-tm-mascols,.apb-tfg-list,.apb-rx-bks-grid,.apb-rx-bkt-grid)>*{animation:none}
}

/* =========================================================================
   PER-SECTION STYLE — tail-end editability knobs. The engine validates a section's optional `style`
   object (APB_Section_Component_Engine::sanitize_section_style) and stamps data-apb-s-* attrs + inline
   CSS variables on the section's OWN root. Everything below is the central consumer: no component ever
   implements these. cols/radius/accent need NO rules at all (inline --apb-rx-cols/--apb-rx-radius/
   --apb-rx-brand* variables inherit into whatever the component already reads).
   ========================================================================= */
/* fade-up is the DEFAULT reveal; named here so a per-section data-apb-reveal="fade-up" can override a
   fancier page-level style back to the classic rise. */
[data-apb-reveal="fade-up"]{--apb-rx-reveal-tf:translateY(var(--apb-rx-reveal-distance,20px))}
/* per-section timing: later than the reveal catalog, so it retimes heavy filter/clip/mask reveals too. */
[data-apb-animate-ready]>:not(.apb-rx-nav){transition-delay:var(--apb-rx-reveal-delay,0ms)}
/* rich per-section reveals apply to the section root itself. Wrapper-level reveal rules skip sections
   carrying their own data-apb-reveal above, so a local "fade-up" or "wipe-up" truly overrides the page. */
[data-apb-animate-ready]>[data-apb-reveal="blur-in"],
[data-apb-animate-ready]>[data-apb-reveal="blur-bloom"],
[data-apb-animate-ready]>[data-apb-reveal="focus-pull"]{transition:opacity var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,var(--apb-rx-t-slow,.55s)) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
[data-apb-animate-ready]>[data-apb-reveal="blur-in"]:not(.apb-rx-in){filter:blur(8px)}
[data-apb-animate-ready]>[data-apb-reveal="blur-bloom"]:not(.apb-rx-in){filter:blur(14px) brightness(1.35)}
[data-apb-animate-ready]>[data-apb-reveal="focus-pull"]:not(.apb-rx-in){filter:blur(18px)}
[data-apb-animate-ready]>[data-apb-reveal="wipe-up"]{transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),clip-path var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease));clip-path:inset(0 0 0 0)}
[data-apb-animate-ready]>[data-apb-reveal="wipe-up"]:not(.apb-rx-in){clip-path:inset(100% 0 0 0)}
[data-apb-animate-ready]>[data-apb-reveal="iris"]{transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),clip-path var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease));clip-path:circle(150% at 50% 55%)}
[data-apb-animate-ready]>[data-apb-reveal="iris"]:not(.apb-rx-in){clip-path:circle(0% at 50% 55%)}
@supports ((-webkit-mask-image:linear-gradient(#000,#000)) or (mask-image:linear-gradient(#000,#000))){
  [data-apb-animate-ready]>[data-apb-reveal="mask-soft"]{-webkit-mask-image:linear-gradient(180deg,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 60%,transparent);-webkit-mask-size:100% 240%;mask-size:100% 240%;-webkit-mask-position:0 0;mask-position:0 0;transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready]>[data-apb-reveal="mask-soft"]:not(.apb-rx-in){-webkit-mask-position:0 -140%;mask-position:0 -140%}
  [data-apb-animate-ready]>[data-apb-reveal="sheen-in"]{-webkit-mask-image:linear-gradient(105deg,#000 42%,rgba(0,0,0,.25) 50%,#000 58%);mask-image:linear-gradient(105deg,#000 42%,rgba(0,0,0,.25) 50%,#000 58%);-webkit-mask-size:280% 100%;mask-size:280% 100%;-webkit-mask-position:0 0;mask-position:0 0;transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),mask-position var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready]>[data-apb-reveal="sheen-in"]:not(.apb-rx-in){-webkit-mask-position:180% 0;mask-position:180% 0}
}
@media(min-width:760px){
  [data-apb-animate-ready]>[data-apb-reveal="unfold"]{transform-origin:top center}
  [data-apb-animate-ready]>[data-apb-reveal="motion-blur"]{transition:opacity var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),filter var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease))}
  [data-apb-animate-ready]>[data-apb-reveal="motion-blur"]:not(.apb-rx-in){filter:url(#apb-mblur)}
  @supports ((-webkit-mask-image:url('#x')) or (mask-image:url('#x'))){
    [data-apb-animate-ready]>[data-apb-reveal="dither"]{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 -4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");-webkit-mask-size:1px 1px;mask-size:1px 1px;transition:opacity var(--apb-rx-reveal-dur,.55s) steps(7),transform var(--apb-rx-reveal-dur,.55s) var(--apb-rx-reveal-ease,var(--apb-rx-ease)),-webkit-mask-size var(--apb-rx-reveal-dur,.55s) steps(7),mask-size var(--apb-rx-reveal-dur,.55s) steps(7)}
    [data-apb-animate-ready]>[data-apb-reveal="dither"]:not(.apb-rx-in){-webkit-mask-size:34px 34px;mask-size:34px 34px}
  }
}
/* reveal opt-out — placed AFTER the reveal catalog so it also beats the heavy per-style child rules */
[data-apb-animate-ready]>[data-apb-s-reveal="none"],
[data-apb-animate-ready]>[data-apb-s-reveal="none"]:not(.apb-rx-in){opacity:1;transform:none;filter:none;clip-path:none;-webkit-mask-image:none;mask-image:none;transition:none;animation:none}
/* surfaces — remap the LOCAL token set (not just the background) so text/lines/soft tints stay
   contrast-safe on the new ground. dark mirrors the brand-kit dark scheme values. */
[data-apb-s-surface="soft"]{background:var(--apb-rx-soft)}
[data-apb-s-surface="dark"]{background:color-mix(in srgb, #0b0d12 94%, var(--apb-rx-brand) 6%);
  --apb-rx-surface:color-mix(in srgb, #12151c 92%, var(--apb-rx-brand) 8%);--apb-rx-ink:#f4f6f9;--apb-rx-dim:#9aa3b2;--apb-rx-muted:#9aa3b2;
  --apb-rx-line:rgba(244,246,249,.14);--apb-rx-soft:rgba(244,246,249,.07);--apb-rx-accent-text:color-mix(in srgb, var(--apb-rx-brand) 55%, #fff);color:var(--apb-rx-ink)}
[data-apb-s-surface="brand"]{background:linear-gradient(120deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));
  --apb-rx-ink:var(--apb-rx-accent-contrast,#fff);--apb-rx-dim:color-mix(in srgb, var(--apb-rx-accent-contrast,#fff) 78%, transparent);--apb-rx-muted:color-mix(in srgb, var(--apb-rx-accent-contrast,#fff) 78%, transparent);
  --apb-rx-surface:color-mix(in srgb, var(--apb-rx-accent-contrast,#fff) 12%, transparent);--apb-rx-line:color-mix(in srgb, var(--apb-rx-accent-contrast,#fff) 28%, transparent);
  --apb-rx-soft:color-mix(in srgb, var(--apb-rx-accent-contrast,#fff) 10%, transparent);--apb-rx-accent-text:var(--apb-rx-accent-contrast,#fff);color:var(--apb-rx-ink)}
[data-apb-s-surface="transparent"]{background:transparent}
/* image surface — engine injects .apb-rx-sbg as the root's first child (real node so the parallax
   driver can transform it); isolation keeps z-index:-1 behind content but above the page bg. Default
   scrim + dark-scheme ink flip guarantee legibility; overlay="none" opts out (author owns contrast). */
[data-apb-s-surface="image"]{position:relative;isolation:isolate;color:var(--apb-rx-ink)}
[data-apb-s-surface="image"]>.apb-rx-sbg{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;pointer-events:none}
[data-apb-s-surface="image"]>.apb-rx-sbg[data-apb-parallax]{inset:-14% 0}
[data-apb-s-surface="image"]>.apb-rx-sbg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,11,16,.55),rgba(9,11,16,.42))}
[data-apb-s-overlay="strong"]>.apb-rx-sbg::after{background:linear-gradient(180deg,rgba(9,11,16,.74),rgba(9,11,16,.6))}
/* light overlay — a bright bed for DARK text over a LIGHT background seed (auto-picked when a seed's
   luminance facet is "light"); paired below with a dark-ink flip instead of the default light-ink one. */
[data-apb-s-overlay="light"]>.apb-rx-sbg::after{background:linear-gradient(180deg,rgba(248,250,252,.66),rgba(248,250,252,.48))}
[data-apb-s-overlay="none"]>.apb-rx-sbg::after{content:none}
[data-apb-s-surface="image"]:not([data-apb-s-overlay="none"]):not([data-apb-s-overlay="light"]){
  --apb-rx-surface:rgba(18,21,28,.66);--apb-rx-ink:#f4f6f9;--apb-rx-dim:#c3cad6;--apb-rx-muted:#c3cad6;
  --apb-rx-line:rgba(244,246,249,.2);--apb-rx-soft:rgba(244,246,249,.09);--apb-rx-accent-text:color-mix(in srgb, var(--apb-rx-brand) 55%, #fff)}
[data-apb-s-surface="image"][data-apb-s-overlay="light"]{
  --apb-rx-surface:rgba(248,250,252,.72);--apb-rx-ink:#12151c;--apb-rx-dim:#3f4653;--apb-rx-muted:#5a6472;
  --apb-rx-line:rgba(9,11,16,.14);--apb-rx-soft:rgba(9,11,16,.05)}
/* pad — independent vertical-rhythm scale; multiplies into the section padding formulas (layouts.css) */
[data-apb-s-pad="none"]{--apb-rx-pad-scale:0}
[data-apb-s-pad="tight"]{--apb-rx-pad-scale:.55}
[data-apb-s-pad="normal"]{--apb-rx-pad-scale:1}
[data-apb-s-pad="roomy"]{--apb-rx-pad-scale:1.6}
/* width — content measure; --apb-pg-maxw is the var the standard section containers read */
[data-apb-s-width="contained"]{--apb-pg-maxw:1120px}
[data-apb-s-width="wide"]{--apb-pg-maxw:1360px}
[data-apb-s-width="full"]{--apb-pg-maxw:none}
/* alignment — text axis + release/apply the auto-margins centered heads rely on */
[data-apb-s-align="left"]{text-align:left}
[data-apb-s-align="left"] :is([class*="-head "],[class$="-head"],[class*="-lead "],[class$="-lead"]){margin-left:0;margin-right:auto;text-align:left}
[data-apb-s-align="center"]{text-align:center}
[data-apb-s-align="center"] :is([class*="-head "],[class$="-head"]){margin-left:auto;margin-right:auto;text-align:center}
/* media side — source order is text-then-media. Reverse the two children only in LTR layouts;
   RTL auto-placement already puts the media on the physical left without changing text direction. */
[data-apb-s-media="left"]>:where(div,article):dir(ltr):has(>:last-child:nth-child(2))>:first-child{order:2}
[data-apb-s-media="left"]>:where(div,article):dir(ltr):has(>:last-child:nth-child(2))>:last-child{order:1}
@media(max-width:760px){[data-apb-s-media="left"]>:where(div,article):has(>:last-child:nth-child(2))>*{order:initial}}
/* density — the section padding formula already multiplies by --apb-rx-density-safe (layouts.css) */
[data-apb-s-density="compact"]{--apb-rx-density-safe:.6}
[data-apb-s-density="roomy"]{--apb-rx-density-safe:1.45}
/* polish knobs — agents can retune existing component materials without writing raw CSS. */
[data-apb-s-shadow="none"]{--apb-rx-shadow-1:none;--apb-rx-shadow-2:none;--apb-rx-shadow-3:none}
[data-apb-s-shadow="soft"]{--apb-rx-shadow-1:0 1px 2px rgba(11,13,18,.04);--apb-rx-shadow-2:0 8px 24px -18px rgba(11,13,18,.18);--apb-rx-shadow-3:0 16px 46px -26px rgba(11,13,18,.22)}
[data-apb-s-shadow="lifted"]{--apb-rx-shadow-1:0 2px 8px rgba(11,13,18,.08);--apb-rx-shadow-2:0 12px 34px -14px rgba(11,13,18,.24);--apb-rx-shadow-3:0 28px 70px -24px rgba(11,13,18,.34)}
[data-apb-s-shadow="dramatic"]{--apb-rx-shadow-1:0 4px 14px rgba(11,13,18,.12);--apb-rx-shadow-2:0 18px 48px -14px rgba(11,13,18,.32);--apb-rx-shadow-3:0 34px 90px -24px rgba(11,13,18,.46)}
[data-apb-s-glow="off"]{--apb-rx-glow:transparent;--apb-rx-glow-soft:transparent}
[data-apb-s-glow="soft"]{--apb-rx-glow:color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);--apb-rx-glow-soft:color-mix(in srgb,var(--apb-rx-brand) 7%,transparent)}
[data-apb-s-glow="brand"]{--apb-rx-glow:color-mix(in srgb,var(--apb-rx-brand) 50%,transparent);--apb-rx-glow-soft:color-mix(in srgb,var(--apb-rx-brand) 16%,transparent)}
[data-apb-s-glow="strong"]{--apb-rx-glow:color-mix(in srgb,var(--apb-rx-brand) 72%,transparent);--apb-rx-glow-soft:color-mix(in srgb,var(--apb-rx-brand) 24%,transparent)}
[data-apb-s-hover="none"]{--apb-rx-hover-y:0px;--apb-rx-hover-shadow:var(--apb-rx-shadow-1)}
[data-apb-s-hover="subtle"]{--apb-rx-hover-y:-1px;--apb-rx-hover-shadow:var(--apb-rx-shadow-1)}
[data-apb-s-hover="expressive"]{--apb-rx-hover-y:-5px;--apb-rx-hover-shadow:var(--apb-rx-shadow-3)}
[data-apb-s-hover] :is(.apb-rx-tile,.apb-rx-tier,.apb-rx-prod,.apb-rx-quote,.apb-rx-package,.apb-rx-proof-q,.apb-rx-btn,.apb-rx-listing-card,.apb-rx-bac,.apb-ct-dp-card,.apb-rx-bks-card,.apb-rx-fqc,.apb-rx-sres-card,.apb-rx-vs-card,.apb-rx-vs-panel,.apb-rx-rpb-card,.apb-rx-csm-cell,.apb-rx-prs-item,.apb-rx-fbn-tile,.apb-rx-plan-card,.apb-tm-card):hover{transform:translateY(var(--apb-rx-hover-y,0));box-shadow:var(--apb-rx-hover-shadow,var(--apb-rx-shadow-2))}
/* hide sub-elements — curated token map over the shared class vocabulary (token-boundary matching:
   mid-list "…-ey …" or attribute-final "…-ey") */
[data-apb-s-hide~="eyebrow"] :is([class*="-ey "],[class$="-ey"],[class*="-eyebrow"]){display:none}
[data-apb-s-hide~="lead"] :is([class*="-lead "],[class$="-lead"]){display:none}
[data-apb-s-hide~="socials"] :is([class*="-soc "],[class$="-soc"],[class*="-socials"]){display:none}
[data-apb-s-hide~="stars"] :is([class*="-stars"]){display:none} /* deliberately NOT "-rating": that matches whole rating CARDS, not just star adornments */
[data-apb-s-hide~="badge"] :is([class*="-badge"]){display:none} /* deliberately NOT "-pill": pills are functional controls (filter pills, cookie pill) */
[data-apb-s-hide~="icon"] :is([class*="-ic "],[class$="-ic"],[class*="-icon"]){display:none}

/* =========================================================================
   apb-rx VARIANT CSS — candidate for recipe-variants.css
   token-with-fallback, apb-rx-* namespace, no !important
   ========================================================================= */

/* ---------- shared refinements applied by variants ---------- */
.apb-rx-ic{width:1em;height:1em;display:inline-block;vertical-align:-.125em;flex:none}
.apb-rx-brand .apb-rx-logo{font-size:15px}
.apb-rx-btn{box-shadow:0 1px 2px var(--apb-rx-glow-soft),0 8px 20px -8px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease),background .25s}
.apb-rx-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px var(--apb-rx-glow-soft),0 14px 30px -10px var(--apb-rx-glow)}
.apb-rx-btn .apb-rx-ic{margin-left:7px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-btn:hover .apb-rx-ic{transform:translateX(3px)}
.apb-rx-btn-ghost{box-shadow:none}

/* ===================== announcement: marquee ===================== */
.apb-rx-announce--marquee{position:relative;overflow:hidden;padding:0;color:#fff;
  background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2) 38%,var(--apb-rx-brand3) 72%,var(--apb-rx-brand));background-size:200% 100%;animation:apb-rx-bg calc(18s * var(--apb-rx-dur,1)) linear infinite;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
@keyframes apb-rx-bg{to{background-position:200% 0}}
.apb-rx-marquee-track{display:inline-flex;align-items:center;gap:14px;padding:11px 0;animation:apb-rx-marquee calc(26s * var(--apb-rx-dur,1)) linear infinite;will-change:transform}
.apb-rx-announce--marquee:hover .apb-rx-marquee-track{animation-play-state:paused}
.apb-rx-mq-item{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;white-space:nowrap;letter-spacing:.01em}
.apb-rx-mq-item .apb-rx-ic{font-size:14px;opacity:.85;color:color-mix(in srgb,var(--apb-rx-brand) 30%,#fff)}
.apb-rx-mq-dot{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.45);margin:0 8px}
@keyframes apb-rx-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.apb-rx-announce--marquee{animation:none}.apb-rx-marquee-track{animation:none}}

/* ===================== announcement: countdown ===================== */
.apb-rx-announce--countdown{display:flex;gap:18px;align-items:center;justify-content:center;flex-wrap:wrap;color:#fff;font-size:14px;font-weight:600;
  background:radial-gradient(120% 180% at 50% -40%,#1e293b,#0b1220);padding:13px 18px;letter-spacing:.01em}
.apb-rx-cd-label{display:inline-flex;align-items:center;gap:9px}
.apb-rx-cd-pulse{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 0 0 rgba(52,211,153,.6);animation:apb-rx-pulse calc(1.8s * var(--apb-rx-dur,1)) infinite}
@keyframes apb-rx-pulse{70%{box-shadow:0 0 0 7px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
.apb-rx-countdown{display:inline-flex;gap:7px;font-variant-numeric:tabular-nums}
.apb-rx-cd-cell{position:relative;display:inline-flex;flex-direction:column;align-items:center;min-width:48px;padding:6px 9px;line-height:1.05;border-radius:calc(var(--apb-rx-radius,16px) * .68);
  background:linear-gradient(#ffffff1f,#ffffff08);border:1px solid #ffffff1f;box-shadow:inset 0 1px 0 #ffffff22}
.apb-rx-cd-cell b{font-size:19px;font-weight:800;letter-spacing:.01em;transition:transform var(--apb-rx-t-fast,.16s) var(--apb-rx-ease)}
.apb-rx-cd-cell.apb-rx-pop b{transform:translateY(-2px) scale(1.06)}
.apb-rx-cd-cell i{font-size:9px;font-style:normal;letter-spacing:.12em;text-transform:uppercase;opacity:.62;margin-top:2px}
.apb-rx-cd-sep{font-size:18px;font-weight:700;opacity:.3;align-self:flex-start;margin-top:4px}

/* ===================== nav: shared refinement ===================== */
.apb-rx-nav{position:sticky;top:0;z-index:var(--apb-rx-z-nav,1000);background:rgba(255,255,255,.72);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s,color .3s}
.apb-rx-nav[data-apb-stuck="1"]{border-bottom-color:var(--apb-rx-line);box-shadow:0 6px 24px -16px rgba(11,13,18,.4)}
/* OPT-IN transparent overlay header (header_style="transparent"): starts transparent with light text over
   the first hero, then swaps to the solid frosted state once scrolled (data-apb-stuck). Negative bottom
   margin pulls the following hero up UNDER the sticky header so there is no bar above it. */
.apb-rx-nav--overlay{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent;box-shadow:none;
  margin-bottom:calc(var(--apb-rx-nav-h,69px) * -1);color:#fff}
.apb-rx-nav--overlay .apb-rx-brand,.apb-rx-nav--overlay .apb-rx-links>a:not(.apb-rx-btn),.apb-rx-nav--overlay .apb-rx-nav-toggle,.apb-rx-nav--overlay .apb-rx-logo{color:#fff}
.apb-rx-nav--overlay .apb-rx-links>a:not(.apb-rx-btn):hover{color:rgba(255,255,255,.78)}
.apb-rx-nav--overlay[data-apb-stuck="1"]{background:rgba(255,255,255,.72);-webkit-backdrop-filter:saturate(160%) blur(14px);backdrop-filter:saturate(160%) blur(14px);
  border-bottom-color:var(--apb-rx-line);box-shadow:0 6px 24px -16px rgba(11,13,18,.4);color:var(--apb-rx-ink)}
.apb-rx-nav--overlay[data-apb-stuck="1"] .apb-rx-brand,.apb-rx-nav--overlay[data-apb-stuck="1"] .apb-rx-links>a:not(.apb-rx-btn),.apb-rx-nav--overlay[data-apb-stuck="1"] .apb-rx-nav-toggle,.apb-rx-nav--overlay[data-apb-stuck="1"] .apb-rx-logo{color:var(--apb-rx-ink)}
.apb-rx-nav--overlay[data-apb-stuck="1"] .apb-rx-links>a:not(.apb-rx-btn):hover{color:var(--apb-rx-brand)}
/* SOLID (opaque) header — a flat surface colour instead of frosted glass; stays opaque when sticky and
   still gains the border+shadow on scroll. */
.apb-rx-nav--solid{background:var(--apb-rx-surface,#fff);-webkit-backdrop-filter:none;backdrop-filter:none}
/* STATIC header (sticky="false") — scrolls away with the page instead of pinning to the top. */
.apb-rx-nav--static{position:static}
.apb-rx-nav .apb-rx-row{min-height:68px}
.apb-rx-brand{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.03em;font-size:19px}
.apb-rx-brand .apb-rx-logo{width:26px;height:26px;border-radius:calc(var(--apb-rx-radius,16px) * .68);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2));display:inline-flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 10px -2px var(--apb-rx-glow)}
/* scoped to DIRECT nav links + mega triggers so it never leaks into mega-panel descendant links */
.apb-rx-links>a:not(.apb-rx-btn),.apb-rx-megaitem>a{position:relative;display:inline-flex;align-items:center;gap:6px;color:var(--color-gray-700,#3a4250);transition:color .2s}
.apb-rx-links>a:not(.apb-rx-btn)::after,.apb-rx-megaitem>a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;border-radius:calc(var(--apb-rx-radius,16px) * .68);background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2));transform:scaleX(0);transform-origin:center;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-links>a:not(.apb-rx-btn):hover,.apb-rx-megaitem>a:hover{color:var(--apb-rx-ink)}
.apb-rx-links>a:not(.apb-rx-btn):hover::after,.apb-rx-megaitem>a:hover::after{transform:scaleX(1)}
.apb-rx-cta{display:inline-flex;align-items:center}
/* base layouts.css '.apb-rx-links a' sets a gray link colour that out-specifies '.apb-rx-btn';
   keep CTA text white inside the nav */
.apb-rx-links a.apb-rx-btn{color:#fff}
/* active/current nav link — set at runtime by apb-component-ui.js (nav is baked + shared across pages) */
.apb-rx-nav .apb-rx-links a.is-current:not(.apb-rx-btn){color:var(--apb-rx-brand,var(--color-primary,#4f46e5));font-weight:600}

/* hamburger morph */
.apb-rx-nav-toggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:10px;color:var(--apb-rx-ink);border-radius:calc(var(--apb-rx-radius,16px) * .68)}
.apb-rx-nav-toggle:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-burger{position:relative;width:20px;height:14px}
.apb-rx-burger span{position:absolute;left:0;right:0;height:2px;border-radius:calc(var(--apb-rx-radius,16px) * .68);background:currentColor;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),opacity .2s}
.apb-rx-burger span:nth-child(1){top:0}.apb-rx-burger span:nth-child(2){top:6px}.apb-rx-burger span:nth-child(3){top:12px}
.apb-rx-nav[data-apb-open="1"] .apb-rx-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.apb-rx-nav[data-apb-open="1"] .apb-rx-burger span:nth-child(2){opacity:0}
.apb-rx-nav[data-apb-open="1"] .apb-rx-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.apb-rx-nav-scrim{display:none}

@media(max-width:860px){
  .apb-rx-nav,.apb-rx-nav[data-apb-stuck="1"]{-webkit-backdrop-filter:none;backdrop-filter:none}
  .apb-rx-nav .apb-rx-links{display:none;position:fixed;inset:0 0 0 auto;z-index:var(--apb-rx-z-flyout,60);flex-direction:column;align-items:stretch;gap:2px;width:min(82vw,360px);
    max-width:100vw;background:var(--apb-rx-surface-2,#fff);padding:84px 22px 28px;box-shadow:-24px 0 60px rgba(11,13,18,.22);overflow:auto}
  /* the desktop mega rule centers + content-sizes items; in the drawer they must be full-width rows */
  .apb-rx-nav--mega .apb-rx-links{align-items:stretch;margin-left:0;flex:none}
  .apb-rx-megaitem{display:block}
  .apb-rx-megaitem>a{width:100%;justify-content:space-between;padding:13px 8px}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links{display:flex}
  .apb-rx-nav .apb-rx-links>*{opacity:0;transform:translateX(16px)}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*{opacity:1;transform:none;transition:opacity var(--apb-rx-t-slow,.55s) var(--apb-rx-ease),transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*:nth-child(1){transition-delay:.06s}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*:nth-child(2){transition-delay:.11s}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*:nth-child(3){transition-delay:.16s}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*:nth-child(4){transition-delay:.21s}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-links>*:nth-child(5){transition-delay:.26s}
  .apb-rx-nav .apb-rx-links>a:not(.apb-rx-btn),.apb-rx-nav .apb-rx-megaitem>a{padding:13px 8px;font-size:16px;border-radius:calc(var(--apb-rx-radius,16px) * .68)}
  .apb-rx-nav .apb-rx-links a:not(.apb-rx-btn)::after{display:none}
  .apb-rx-nav .apb-rx-cta{margin-top:14px;justify-content:center}
  .apb-rx-nav-toggle{display:inline-flex}
  .apb-rx-nav[data-apb-open="1"] .apb-rx-nav-scrim{display:block;position:fixed;inset:0;z-index:var(--apb-rx-z-scrim,50);background:rgba(8,10,18,.46);backdrop-filter:blur(2px);animation:apb-rx-fade calc(.25s * var(--apb-rx-dur,1)) ease}
}
@keyframes apb-rx-fade{from{opacity:0}to{opacity:1}}

/* ===================== nav: mega ===================== */
/* mega items live on the LEFT next to the brand (CTA pushed right) so wide panels never run off
   the right edge — the conventional product-nav layout. */
.apb-rx-nav--mega .apb-rx-links{margin-left:34px;margin-right:0;flex:1;justify-content:flex-start;align-items:center}
.apb-rx-nav--mega .apb-rx-cta{margin-left:auto}
.apb-rx-nav--mega .apb-rx-megaitem{position:relative}
.apb-rx-nav--mega .apb-rx-megaitem>a{cursor:pointer}
.apb-rx-megacaret{transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease);font-size:13px;opacity:.6}
.apb-rx-megaitem:hover .apb-rx-megacaret,.apb-rx-megaitem[data-apb-open="1"] .apb-rx-megacaret{transform:rotate(180deg)}
.apb-rx-megapanel{position:absolute;top:calc(100% + 16px);left:0;width:fit-content;min-width:288px;max-width:min(760px,92vw);background:var(--apb-rx-surface-2,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius,16px) * 1.4);
  box-shadow:var(--apb-rx-shadow-3);padding:14px;display:grid;gap:6px;max-height:min(calc(100vh - 120px),640px);overflow-y:auto;overscroll-behavior:contain;
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.985);transform-origin:top left;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease),visibility .24s;z-index:var(--apb-rx-z-flyout,60)}
.apb-rx-megapanel--columns{grid-template-columns:repeat(var(--mc,3),minmax(170px,210px))}
.apb-rx-megaitem--right .apb-rx-megapanel{left:auto;right:0;transform-origin:top right}
/* Smart engine (JS) owns hover-intent timing via [data-apb-open] once bound — the plain :hover rule is
   scoped to [data-apb-nav] WITHOUT the JS-ready flag so it is only the no-JS fallback (fail-open: the
   menu still opens on hover without JS, just without debounce/safe-triangle). :focus-within stays an
   unconditional, always-instant path — keyboard focus must never wait on a hover-intent timer. */
.apb-rx-megaitem:focus-within .apb-rx-megapanel,.apb-rx-megaitem[data-apb-open="1"] .apb-rx-megapanel{opacity:1;visibility:visible;transform:none}
[data-apb-nav]:not([data-apb-mega-js]) .apb-rx-megaitem:hover .apb-rx-megapanel{opacity:1;visibility:visible;transform:none}
.apb-rx-megapanel::before{content:"";position:absolute;top:-10px;left:0;right:0;height:16px}/* hover bridge */
.apb-rx-megacol h4{margin:6px 10px 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9aa1ad}
.apb-rx-megalink{display:flex;gap:11px;align-items:flex-start;padding:10px;border-radius:calc(var(--apb-rx-radius,16px) * .68);text-decoration:none;transition:background .2s}
.apb-rx-megalink:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-megaicon{flex:none;width:36px;height:36px;border-radius:calc(var(--apb-rx-radius,16px) * .68);display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line-accent);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow .25s}
.apb-rx-megalink:hover .apb-rx-megaicon{transform:translateY(-2px);box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-megalink strong{display:block;font-size:14px;color:var(--apb-rx-ink);font-weight:650}
.apb-rx-megalink span{font-size:12.5px;color:var(--apb-rx-muted);line-height:1.4}
.apb-rx-megalink .apb-rx-megaicon{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
/* custom per-item icon image (mega_icon URL path) fills the same fixed chip box the glyph uses */
.apb-rx-megaicon img,.apb-rx-mshop-img img,.apb-rx-mpost-thumb img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
/* featured promo card column */
.apb-rx-megafeat{position:relative;border-radius:var(--apb-rx-radius,14px);overflow:hidden;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;text-decoration:none;margin:4px}
.apb-rx-megafeat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-megafeat:hover img{transform:scale(1.06)}
.apb-rx-megafeat .apb-rx-megafeat-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,18,0) 30%,rgba(8,10,18,.82))}
.apb-rx-megafeat .apb-rx-megafeat-body{position:relative;padding:14px}
.apb-rx-megafeat em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 30%,#fff)}
.apb-rx-megafeat strong{display:block;font-size:15px;margin:4px 0 2px}
.apb-rx-megafeat small{font-size:12px;opacity:.85;display:inline-flex;align-items:center;gap:5px}
.apb-rx-megafeat:hover small .apb-rx-ic{transform:translateX(3px)}
.apb-rx-megafeat small .apb-rx-ic{transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
/* --- mega layout: directory (dense plain-link columns) --- */
.apb-rx-megapanel--dir{grid-template-columns:repeat(var(--mc,4),minmax(150px,180px));gap:4px 14px;padding:18px}
.apb-rx-dirlink{display:block;padding:6px 10px;border-radius:calc(var(--apb-rx-radius,16px) * .5);font-size:13.5px;color:var(--apb-rx-muted);text-decoration:none;transition:background var(--apb-rx-t,.28s),color var(--apb-rx-t,.28s)}
.apb-rx-dirlink:hover{background:var(--color-gray-50,#f6f7f9);color:var(--apb-rx-ink)}
/* --- mega layout: feature (link list + dominant promo) --- */
.apb-rx-megapanel--feat{width:fit-content;max-width:min(720px,92vw);grid-template-columns:auto minmax(240px,290px);gap:14px;padding:16px}
.apb-rx-feat-links{display:flex;flex-direction:column;gap:2px}
.apb-rx-feat-link{padding:11px 12px;border-radius:calc(var(--apb-rx-radius,16px) * .68);text-decoration:none;transition:background var(--apb-rx-t,.28s)}
.apb-rx-feat-link:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-feat-link strong{display:block;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-feat-link span{font-size:12.5px;color:var(--apb-rx-muted)}
.apb-rx-megapanel--feat .apb-rx-megafeat{min-height:230px;margin:0}
/* --- mega layout: bento (icon-card grid) --- */
.apb-rx-megapanel--bento{grid-template-columns:repeat(var(--mc,3),minmax(168px,200px));gap:8px;padding:14px}
.apb-rx-bento-card{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--apb-rx-radius,14px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-surface-2,#fff);text-decoration:none;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-bento-card:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-bento-card strong{font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-bento-card span{font-size:12.5px;color:var(--apb-rx-muted);line-height:1.4}
/* --- mega layout: tabs (left rail switches right panel, CSS radios) --- */
.apb-rx-megapanel--tabs{width:660px;grid-template-columns:190px 1fr;gap:10px;padding:14px}
.apb-rx-mt-in{position:absolute;opacity:0;pointer-events:none}
.apb-rx-mt-rail{display:flex;flex-direction:column;gap:4px;border-right:var(--apb-rx-border,1px) solid var(--apb-rx-line);padding-right:8px}
.apb-rx-mt-tab{padding:11px 14px;border-radius:calc(var(--apb-rx-radius,16px) * .68);cursor:pointer;font-weight:600;font-size:14px;color:var(--apb-rx-muted);transition:background var(--apb-rx-t,.28s),color var(--apb-rx-t,.28s)}
.apb-rx-mt-tab:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-mt-i1:focus-visible~.apb-rx-mt-rail .apb-rx-mt-l1,.apb-rx-mt-i2:focus-visible~.apb-rx-mt-rail .apb-rx-mt-l2,.apb-rx-mt-i3:focus-visible~.apb-rx-mt-rail .apb-rx-mt-l3,.apb-rx-mt-i4:focus-visible~.apb-rx-mt-rail .apb-rx-mt-l4,.apb-rx-mt-i5:focus-visible~.apb-rx-mt-rail .apb-rx-mt-l5{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-mt-body .apb-rx-mt-panel{display:none;grid-template-columns:1fr 1fr;gap:2px}
.apb-rx-mt-i1:checked~.apb-rx-mt-body .apb-rx-mt-p1,.apb-rx-mt-i2:checked~.apb-rx-mt-body .apb-rx-mt-p2,.apb-rx-mt-i3:checked~.apb-rx-mt-body .apb-rx-mt-p3,.apb-rx-mt-i4:checked~.apb-rx-mt-body .apb-rx-mt-p4,.apb-rx-mt-i5:checked~.apb-rx-mt-body .apb-rx-mt-p5{display:grid}
.apb-rx-mt-i1:checked~.apb-rx-mt-rail .apb-rx-mt-l1,.apb-rx-mt-i2:checked~.apb-rx-mt-rail .apb-rx-mt-l2,.apb-rx-mt-i3:checked~.apb-rx-mt-rail .apb-rx-mt-l3,.apb-rx-mt-i4:checked~.apb-rx-mt-rail .apb-rx-mt-l4,.apb-rx-mt-i5:checked~.apb-rx-mt-rail .apb-rx-mt-l5{background:var(--apb-rx-brand);color:#fff}
/* a single-category tabs/spotlight menu collapses to a compact list (no rail/two-pane to justify a wide panel) */
.apb-rx-mt-single{display:grid;grid-template-columns:repeat(2,minmax(178px,210px));gap:2px}
.apb-rx-megapanel--tabs:has(.apb-rx-mt-single){display:block;width:fit-content;grid-template-columns:none}
.apb-rx-msl-single{display:flex;flex-direction:column;min-width:230px}
.apb-rx-megapanel--spotlight:has(.apb-rx-msl-single){width:fit-content;min-height:0}
/* --- mega layout: grid (uniform icon-card launcher) --- */
.apb-rx-megapanel--grid{grid-template-columns:repeat(var(--mc,4),minmax(150px,180px));gap:8px;padding:14px}
.apb-rx-mg-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--apb-rx-radius,14px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-surface-2,#fff);text-decoration:none;text-align:center;align-items:center;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mg-card:hover{transform:translateY(-3px);border-color:var(--apb-rx-line-accent);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-mg-card .apb-rx-megaicon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-mg-card strong{font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-mg-card span{font-size:12px;color:var(--apb-rx-muted);line-height:1.4}
/* --- mega layout: spotlight (category rail reveals items on hover, CSS-only) --- */
.apb-rx-megapanel--spotlight{display:block;position:relative;width:640px;min-height:250px;padding:12px}
.apb-rx-msl-cat{width:210px}
.apb-rx-msl-catlabel{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:11px 13px;border-radius:calc(var(--apb-rx-radius,16px) * .68);font:inherit;font-weight:600;font-size:14.5px;color:var(--apb-rx-ink);background:none;border:0;cursor:pointer;transition:background var(--apb-rx-t,.28s),color var(--apb-rx-t,.28s)}
.apb-rx-msl-caret{opacity:.5;transform:rotate(-90deg)}
.apb-rx-msl-cat:hover .apb-rx-msl-catlabel,.apb-rx-msl-cat:focus-within .apb-rx-msl-catlabel{background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-msl-cpanel{position:absolute;left:234px;top:12px;right:12px;bottom:12px;padding-left:22px;border-left:var(--apb-rx-border,1px) solid var(--apb-rx-line);display:grid;grid-template-columns:1fr 1fr;gap:2px;align-content:start;opacity:0;visibility:hidden;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-msl-cat:first-child .apb-rx-msl-cpanel{opacity:1;visibility:visible}
.apb-rx-megapanel--spotlight:hover .apb-rx-msl-cat:first-child .apb-rx-msl-cpanel{opacity:0;visibility:hidden}
.apb-rx-megapanel--spotlight .apb-rx-msl-cat:hover .apb-rx-msl-cpanel{opacity:1;visibility:visible}
/* JS-driven active state (keyboard/click, apb-component-ui.js): once JS wires the click/focus handler,
   the active class is the source of truth for which panel shows — the :hover/:first-child rules above
   remain untouched as the no-JS fallback. */
.apb-rx-msl-cat.apb-rx-msl-cat--active .apb-rx-msl-cpanel{opacity:1;visibility:visible}
/* --- mega layout: showcase (big media promo + link columns) — flexes to fit its content --- */
.apb-rx-megapanel--showcase{display:flex;width:fit-content;max-width:min(760px,92vw);grid-template-columns:none;gap:16px;padding:16px}
.apb-rx-msh-media{flex:0 0 280px}
.apb-rx-msh-media .apb-rx-megafeat{min-height:260px;height:100%;margin:0}
.apb-rx-msh-cols{display:grid;grid-template-columns:repeat(var(--mc,2),minmax(150px,185px));gap:6px;align-content:start}
/* --- mega layout: promo (link columns + full-width CTA banner) — columns size to count --- */
.apb-rx-megapanel--promo{display:block;width:fit-content;max-width:min(760px,92vw);padding:16px}
.apb-rx-mpr-cols{display:grid;grid-template-columns:repeat(var(--mc,3),minmax(150px,190px));gap:10px;margin-bottom:12px}
.apb-rx-mpr-banner{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--apb-rx-radius,14px);background:linear-gradient(120deg,color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:var(--apb-rx-border,1px) solid var(--apb-rx-line-accent);text-decoration:none;overflow:hidden}
.apb-rx-mpr-banner img{width:64px;height:64px;object-fit:cover;border-radius:calc(var(--apb-rx-radius,16px) * .6);flex:0 0 auto}
.apb-rx-mpr-btxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.apb-rx-mpr-btxt em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text)}
.apb-rx-mpr-btxt strong{font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-mpr-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:#fff;background:var(--apb-rx-brand);padding:9px 16px;border-radius:var(--apb-rx-radius-pill,999px)}
/* "View all <heading>" overflow link (directory layout cap) — distinct from apb-rx-dirlink so a long
   column reads as N links + one clearly-different affordance, not a 7th identical row. */
.apb-rx-viewall{display:block;padding:6px 10px;border-radius:calc(var(--apb-rx-radius,16px) * .5);font-size:13.5px;font-weight:650;color:var(--apb-rx-accent-text);text-decoration:none;transition:background var(--apb-rx-t,.28s)}
.apb-rx-viewall:hover{background:var(--color-gray-50,#f6f7f9)}

/* --- mega layout: commerce (full-width shop-by column + product card grid) --- */
.apb-rx-megapanel--commerce{display:flex;width:auto;grid-template-columns:none;gap:20px;padding:18px}
.apb-rx-mshop-nav{flex:0 0 176px;display:flex;flex-direction:column;gap:2px}
.apb-rx-mshop-grid{flex:1;min-width:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-content:start}
.apb-rx-mshop-card{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:var(--apb-rx-radius,14px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-surface-2,#fff);text-decoration:none;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mshop-card:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-mshop-img{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-mshop-card strong{font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-mshop-card span{font-size:12px;color:var(--apb-rx-muted);line-height:1.4}

/* --- mega layout: split (full-width big featured media + oversized nav links — editorial register) --- */
.apb-rx-megapanel--split{display:flex;width:auto;grid-template-columns:none;gap:0;padding:0;overflow:hidden}
.apb-rx-msplit-media{flex:0 0 42%;min-width:0}
.apb-rx-msplit-media .apb-rx-megafeat{min-height:100%;height:100%;margin:0;border-radius:0}
.apb-rx-msplit-nav{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:22px 26px}
.apb-rx-msplit-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px;border-block-end:var(--apb-rx-border,1px) solid var(--apb-rx-line);font-size:18px;font-weight:650;color:var(--apb-rx-ink);text-decoration:none;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),padding-inline-start var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-msplit-link:last-child{border-block-end:0}
.apb-rx-msplit-link:hover{color:var(--apb-rx-accent-text);padding-inline-start:8px}
.apb-rx-msplit-link .apb-rx-ic{opacity:.55;flex:0 0 auto}

/* --- mega layout: search (decorative search box + popular chips + a plain list) --- */
.apb-rx-megapanel--search{width:min(480px,92vw)}
.apb-rx-msearch-box{display:flex;align-items:center;gap:10px;padding:11px 14px;margin-block-end:10px;border-radius:var(--apb-rx-radius-pill,999px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-soft);color:var(--apb-rx-muted)}
.apb-rx-msearch-box input{flex:1;min-width:0;border:0;background:none;font:inherit;color:var(--apb-rx-ink)}
.apb-rx-msearch-box input:focus{outline:none}
.apb-rx-msearch-box input::placeholder{color:var(--apb-rx-muted)}
.apb-rx-msearch h4{margin:4px 10px 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9aa1ad}
.apb-rx-mchiprow{display:flex;flex-wrap:wrap;gap:8px;padding:0 6px 10px}
.apb-rx-mchip{padding:7px 14px;border-radius:var(--apb-rx-radius-pill,999px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);font-size:13px;color:var(--apb-rx-ink);text-decoration:none;transition:background var(--apb-rx-t,.28s),border-color var(--apb-rx-t,.28s)}
.apb-rx-mchip:hover{background:var(--color-gray-50,#f6f7f9);border-color:var(--apb-rx-line-accent)}

/* --- mega layout: cards (uniform bordered feature cards — Notion/HubSpot register) --- */
.apb-rx-megapanel--cards{grid-template-columns:repeat(var(--mc,3),minmax(168px,200px));gap:10px;padding:16px}
.apb-rx-cards-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--apb-rx-radius,14px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-surface-2,#fff);text-decoration:none;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cards-card:hover{border-color:var(--apb-rx-line-accent);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-cards-card .apb-rx-megaicon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-cards-card strong{font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-cards-card span{font-size:12.5px;color:var(--apb-rx-muted);line-height:1.4}

/* --- mega full-width (mega_full slot, desktop only): the grid link-group layouts (columns/promo/
   showcase/feature/cards) widen edge-to-edge on the header row instead of clipping back down via
   max-width — apb-component-ui.js's megaAnchor() measures the real .apb-rx-row box and sets an inline
   px width (never 100vw); this just stops max-width from re-clamping that measured width back down.
   --mc columns go fluid (minmax(0,1fr)) so N columns actually fill the extra width instead of leaving
   a content-width fixed track under-full. Vertical overflow is already handled by the base
   .apb-rx-megapanel max-height/overflow-y rule above — no new scroll rule needed. Wrapped in a
   min-width media query (mirrors the existing max-width:860px accordion breakpoint below) so these
   higher-specificity selectors can never win over the mobile collapse: mega_full/mega_cols are ignored
   under the accordion, same as every other desktop-only geometry choice. */
@media(min-width:861px){
  .apb-rx-megapanel--columns[data-apb-align="full"],
  .apb-rx-megapanel--promo[data-apb-align="full"],
  .apb-rx-megapanel--showcase[data-apb-align="full"],
  .apb-rx-megapanel--feat[data-apb-align="full"],
  .apb-rx-megapanel--cards[data-apb-align="full"]{width:auto;max-width:none}
  .apb-rx-megapanel--columns[data-apb-align="full"]{grid-template-columns:repeat(var(--mc,3),minmax(0,1fr))}
  .apb-rx-megapanel--promo[data-apb-align="full"] .apb-rx-mpr-cols{grid-template-columns:repeat(var(--mc,3),minmax(0,1fr))}
  .apb-rx-megapanel--showcase[data-apb-align="full"] .apb-rx-msh-cols{grid-template-columns:repeat(var(--mc,2),minmax(0,1fr))}
  .apb-rx-megapanel--cards[data-apb-align="full"]{grid-template-columns:repeat(var(--mc,3),minmax(0,1fr))}
}

/* --- mega layout: contact (methods list + a featured CTA card — the menu IS the CTA) --- */
.apb-rx-megapanel--contact{display:flex;width:fit-content;max-width:min(680px,92vw);grid-template-columns:none;gap:14px;padding:14px}
.apb-rx-mcontact-methods{flex:0 0 240px;min-width:0;display:flex;flex-direction:column;gap:2px}
.apb-rx-megapanel--contact .apb-rx-megafeat{flex:1;min-height:200px;margin:0}

/* --- mega layout: content (categories column + post-preview list — blog/editorial register) --- */
.apb-rx-megapanel--content{display:flex;width:fit-content;max-width:min(720px,92vw);grid-template-columns:none;gap:18px;padding:16px}
.apb-rx-mcontent-cats{flex:0 0 150px;min-width:0;display:flex;flex-direction:column;gap:2px}
.apb-rx-mcontent-posts{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,1fr);gap:4px 14px;align-content:start}
.apb-rx-mpost{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:calc(var(--apb-rx-radius,16px) * .68);text-decoration:none;transition:background var(--apb-rx-t,.28s)}
.apb-rx-mpost:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-mpost-thumb{flex:0 0 auto;width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-mpost strong{display:block;font-size:13.5px;color:var(--apb-rx-ink);font-weight:650}
.apb-rx-mpost span span{font-size:12px;color:var(--apb-rx-muted)}
@media(max-width:860px){
  /* in the drawer every mega layout collapses to ONE clean stacked list (min-width:0 so it fits the
     narrow drawer); the panel only shows when its item is tapped open (accordion). */
  .apb-rx-megapanel{position:static;width:auto;min-width:0;max-width:none;grid-template-columns:1fr;box-shadow:none;border:0;border-radius:0;padding:4px 0 4px 8px;opacity:1;visibility:visible;transform:none;display:none}
  .apb-rx-megaitem[data-apb-open="1"] .apb-rx-megapanel{display:block}
  .apb-rx-megapanel--feat,.apb-rx-megapanel--tabs{grid-template-columns:1fr}
  /* new layouts collapse to a single stacked list in the mobile drawer */
  .apb-rx-megapanel--grid,.apb-rx-megapanel--showcase,.apb-rx-megapanel--spotlight,.apb-rx-megapanel--promo,
  .apb-rx-megapanel--commerce,.apb-rx-megapanel--split,.apb-rx-megapanel--cards,.apb-rx-megapanel--contact,.apb-rx-megapanel--content{grid-template-columns:1fr;width:auto;min-height:0}
  .apb-rx-msl-cat,.apb-rx-msh-cols,.apb-rx-mpr-cols{width:auto}
  .apb-rx-msl-cpanel{position:static;opacity:1;visibility:visible;border-left:0;padding-left:0;grid-template-columns:1fr}
  .apb-rx-megapanel--spotlight:hover .apb-rx-msl-cat:first-child .apb-rx-msl-cpanel{opacity:1;visibility:visible}
  .apb-rx-msh-media,.apb-rx-mpr-banner{display:none}
  .apb-rx-megafeat{display:none}
  /* featured-only groups (columns/feat/split/contact with zero list items): the featured card IS the
     only content, so restore it instead of leaving the accordion section blank. */
  .apb-rx-megagroup--featonly .apb-rx-megafeat{display:flex}
  .apb-rx-megagroup--featonly .apb-rx-msplit-media{display:block}
  .apb-rx-megacol,.apb-rx-mt-body{display:block}
  .apb-rx-mt-rail,.apb-rx-mt-in{display:none}
  .apb-rx-mt-body .apb-rx-mt-panel{display:block}
  /* commerce/split/contact/content: drop the media/nav rail column, stack everything single-file */
  .apb-rx-megapanel--commerce,.apb-rx-megapanel--split,.apb-rx-megapanel--contact,.apb-rx-megapanel--content{display:block;max-width:none}
  .apb-rx-mshop-nav,.apb-rx-msplit-media,.apb-rx-mcontact-methods,.apb-rx-mcontent-cats{display:none}
  /* rail-only groups (commerce nav / contact methods / content cats with an empty main/grid side):
     the rail IS the only content, so restore it instead of leaving the accordion section blank. */
  .apb-rx-megagroup--railonly .apb-rx-mshop-nav{display:flex}
  .apb-rx-megagroup--railonly .apb-rx-mcontact-methods{display:flex}
  .apb-rx-megagroup--railonly .apb-rx-mcontent-cats{display:flex}
  .apb-rx-mshop-grid,.apb-rx-mcontent-posts{grid-template-columns:1fr}
  .apb-rx-msplit-nav{padding:4px 0}
}

/* ===================== hero: gradient (mesh) ===================== */
.apb-rx-hero--gradient{position:relative;text-align:center;border-radius:calc(var(--apb-rx-radius,16px) * 1.4);color:#fff;overflow:hidden;isolation:isolate;
  background:var(--apb-rx-brand,#4f46e5)}
.apb-rx-hero--gradient .apb-rx-mesh{position:absolute;inset:-40%;z-index:-2;
  background:
    radial-gradient(38% 44% at 22% 30%,var(--apb-rx-brand2,#6d28d9) 0%,transparent 60%),
    radial-gradient(34% 40% at 80% 24%,var(--apb-rx-brand,#2563eb) 0%,transparent 60%),
    radial-gradient(42% 50% at 62% 84%,var(--apb-rx-brand2,#db2777) 0%,transparent 60%),
    radial-gradient(40% 46% at 18% 78%,var(--apb-rx-brand,#4f46e5) 0%,transparent 62%);
  filter:saturate(125%);animation:apb-rx-mesh calc(18s * var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes apb-rx-mesh{0%,100%{transform:translate3d(0,0,0) rotate(0)}50%{transform:translate3d(2%,-2%,0) rotate(4deg)}}
.apb-rx-hero--gradient .apb-rx-grain{position:absolute;inset:0;z-index:-1;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.apb-rx-hero--gradient .apb-rx-hero-copy{position:relative;max-width:780px;margin:0 auto;padding:clamp(56px,9vw,108px) 24px;color:#fff}
.apb-rx-hero--gradient h1{color:#fff}
/* lead + eyebrow must stay LIGHT on the dark gradient — never the dark border/accent token */
.apb-rx-hero--gradient .apb-rx-lead{color:rgba(255,255,255,.86)}
.apb-rx-hero--gradient .apb-rx-eyebrow{color:rgba(255,255,255,.82)}
.apb-rx-hero--gradient .apb-rx-cta-row{justify-content:center}
.apb-rx-badge-pill{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;padding:6px 6px 6px 6px;border-radius:var(--apb-rx-radius-pill,999px);margin-bottom:22px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);color:#fff}
.apb-rx-badge-pill b{background:#fff;color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:700;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-hero-on-dark{background:var(--apb-rx-surface,#fff);color:var(--apb-rx-accent-text,var(--apb-rx-brand));box-shadow:0 1px 2px rgba(0,0,0,.16),0 16px 36px -14px rgba(0,0,0,.5)}
.apb-rx-hero-on-dark:hover{box-shadow:0 2px 4px rgba(0,0,0,.18),0 20px 44px -14px rgba(0,0,0,.55)}
.apb-rx-hero-ghost-light{background:transparent;border:1px solid rgba(255,255,255,.55);color:#fff;box-shadow:none}
.apb-rx-hero-ghost-light:hover{background:rgba(255,255,255,.1)}
@media(prefers-reduced-motion:reduce){.apb-rx-hero--gradient .apb-rx-mesh{animation:none}}

/* ===================== hero: stat_strip ===================== */
.apb-rx-hero-visual{position:relative}
.apb-rx-hero-visual{border-radius:calc(var(--apb-rx-radius,16px) * 1.4);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-float-chip{position:absolute;left:-14px;bottom:22px;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:10px 14px;box-shadow:var(--apb-rx-shadow-2);
  display:flex;align-items:center;gap:10px;animation:apb-rx-float calc(5s * var(--apb-rx-dur,1)) ease-in-out infinite}
.apb-rx-float-chip .apb-rx-spark{width:34px;height:34px;border-radius:calc(var(--apb-rx-radius,16px) * .68);background:var(--apb-rx-check-bg,#dcfce7);color:var(--apb-rx-check,#16a34a);display:inline-flex;align-items:center;justify-content:center;font-size:17px}
.apb-rx-float-chip b{font-size:16px;font-weight:800;letter-spacing:-.02em}.apb-rx-float-chip span{display:block;font-size:11px;color:var(--apb-rx-muted)}
@keyframes apb-rx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.apb-rx-trustrow{display:flex;align-items:center;gap:12px;margin-top:22px;color:var(--apb-rx-muted);font-size:13px}
.apb-rx-avatars{display:inline-flex}
.apb-rx-avatars img{width:30px;height:30px;border-radius:50%;border:2px solid #fff;margin-left:-9px;object-fit:cover;box-shadow:0 1px 3px rgba(0,0,0,.15)}
.apb-rx-avatars img:first-child{margin-left:0}
.apb-rx-hero-stats{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),1fr);gap:8px;margin-top:34px;border-top:1px solid var(--apb-rx-line);padding-top:24px}
.apb-rx-hero-stats div{position:relative;padding-right:8px}
.apb-rx-hero-stats div+div{padding-left:18px;border-left:1px solid var(--apb-rx-line)}
.apb-rx-hero-stats b{display:block;font-size:30px;font-weight:800;letter-spacing:-.03em;
  background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2));-webkit-background-clip:text;background-clip:text;color:transparent}
.apb-rx-hero-stats span{font-size:13px;color:var(--apb-rx-muted)}
@media(max-width:560px){.apb-rx-float-chip{left:8px}}

/* ===================== hero: video_bg ===================== */
.apb-rx-hero--video{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:calc(var(--apb-rx-radius,16px) * 1.4);overflow:hidden;color:#fff;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hero-media{position:absolute;inset:0;z-index:0}
.apb-rx-hero-media img,.apb-rx-hero-media video{width:100%;height:100%;object-fit:cover}
.apb-rx-hero--video .apb-rx-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(8,10,18,.30),rgba(8,10,18,.20) 40%,rgba(8,10,18,.78)),radial-gradient(60% 60% at 50% 40%,transparent,rgba(8,10,18,.35))}
.apb-rx-hero--video .apb-rx-hero-copy{position:relative;z-index:2;max-width:780px;padding:26px}
.apb-rx-hero--video h1,.apb-rx-hero--video .apb-rx-lead{color:#fff}
.apb-rx-hero--video .apb-rx-cta-row{justify-content:center}
.apb-rx-live-pill{position:absolute;top:18px;left:18px;z-index:3;display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:600;
  padding:6px 11px;border-radius:var(--apb-rx-radius-pill,999px);background:rgba(8,10,18,.42);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.16);color:#fff}
.apb-rx-live-dot{width:7px;height:7px;border-radius:50%;background:#f87171;box-shadow:0 0 0 0 rgba(248,113,113,.6);animation:apb-rx-pulse calc(1.8s * var(--apb-rx-dur,1)) infinite}

/* ===================== footer: mega ===================== */
.apb-rx-footer--mega{position:relative;border-top:1px solid var(--apb-rx-line);padding:calc(58px * var(--apb-rx-density-safe,1)) 0 calc(26px * var(--apb-rx-density-safe,1));margin-top:40px;background:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-soft,#fbfbfd))}
.apb-rx-footer--mega::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--apb-rx-brand),var(--apb-rx-brand2),transparent);opacity:.5}
.apb-rx-footer-grid{display:grid;grid-template-columns:1.5fr repeat(var(--apb-rx-cols,3),1fr);gap:var(--apb-rx-feat-gap,40px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;padding-inline:24px}
.apb-rx-footer-brand .apb-rx-brand{font-size:21px}
.apb-rx-footer-brand p{color:var(--apb-rx-muted);font-size:14px;line-height:1.6;margin:12px 0 16px;max-width:34ch}
/* newsletter = a single bordered input-group (mail icon · input · flush indigo submit) */
.apb-rx-news{display:flex;width:100%;max-width:340px;min-width:0;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius,16px) * .68);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.apb-rx-news:focus-within{border-color:var(--apb-rx-brand);box-shadow:0 0 0 3px var(--apb-rx-ring)}
.apb-rx-news .apb-rx-news-field{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.apb-rx-news .apb-rx-news-field .apb-rx-ic{position:absolute;left:13px;color:#9aa1ad;font-size:15px;pointer-events:none}
.apb-rx-news input{box-sizing:border-box;width:100%;min-width:0;padding:12px 12px 12px 36px;border:0;background:transparent;font:inherit;font-size:14px}
.apb-rx-news input:focus{outline:none}
.apb-rx-news button{flex:none;min-width:46px;border:0;border-radius:0;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;cursor:pointer;white-space:nowrap}
.apb-rx-news button:disabled{cursor:not-allowed;opacity:.55}
.apb-rx-news button .apb-rx-ic{margin:0}
.apb-rx-social{display:inline-flex;gap:9px;margin-top:18px}
.apb-rx-social a{width:38px;height:38px;border-radius:calc(var(--apb-rx-radius,16px) * .68);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);display:inline-flex;align-items:center;justify-content:center;color:var(--apb-rx-muted);font-size:17px;transition:all var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-social a:hover{color:#fff;background:var(--apb-rx-ink);border-color:var(--apb-rx-ink);transform:translateY(-2px)}
.apb-rx-footer-col h4{margin:0 0 14px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#9aa1ad}
.apb-rx-footer-col a{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;color:var(--color-gray-600,#5a6472);text-decoration:none;transition:color .2s,transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-footer-col a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:translateX(3px)}
.apb-rx-footer-col a .apb-rx-ic{font-size:13px;opacity:0;transform:translateX(-4px);transition:all var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-footer-col a:hover .apb-rx-ic{opacity:.8;transform:none}
.apb-rx-footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;max-width:var(--apb-pg-maxw,1120px);margin:40px auto 0;padding:20px 24px 0;border-top:1px solid var(--apb-rx-line);font-size:13px;color:#9aa1ad}
/* region/language switcher pill + popover menu — shared across every footer variant (ft_region()) */
.apb-rx-region-wrap{position:relative;display:inline-flex}
.apb-rx-region{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);cursor:pointer;background:none;font:inherit;font-size:13px;color:inherit}
.apb-rx-region svg:last-child{transition:transform .18s var(--apb-rx-ease,ease)}
.apb-rx-region[aria-expanded="true"] svg:last-child{transform:rotate(180deg)}
.apb-rx-region-menu{position:absolute;bottom:calc(100% + 8px);right:0;z-index:20;min-width:190px;
  background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius,16px) * .75);
  padding:6px;box-shadow:var(--apb-rx-shadow-2,0 18px 44px -14px rgba(11,13,18,.35));
  opacity:0;visibility:hidden;transform:translateY(6px);pointer-events:none;
  transition:opacity .18s var(--apb-rx-ease,ease),transform .2s var(--apb-rx-ease,ease),visibility 0s linear .18s}
.apb-rx-region-wrap[data-apb-open="1"] .apb-rx-region-menu{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.apb-rx-region-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:calc(var(--apb-rx-radius,16px) * .5);color:inherit;text-decoration:none;font-size:13px;white-space:nowrap}
.apb-rx-region-opt:hover{background:var(--apb-rx-soft,#f5f6f9)}
.apb-rx-region-opt[aria-current]{font-weight:700}
.apb-rx-region-opt:focus-visible{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-region-flag{font-size:15px;line-height:1}
.apb-rx-region-label{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.apb-rx-region-menu,.apb-rx-region svg:last-child{transition:none}}
@media(max-width:860px){.apb-rx-footer-grid{grid-template-columns:1fr 1fr;gap:30px}}
@media(max-width:560px){.apb-rx-footer-grid{grid-template-columns:1fr}}
@media(max-width:360px){.apb-rx-news{flex-wrap:wrap}.apb-rx-news .apb-rx-news-field{flex-basis:100%}.apb-rx-news button{width:100%;min-height:40px;white-space:normal;overflow-wrap:anywhere}}

/* ===================== footer: animated ===================== */
.apb-rx-footer--animated{overflow:hidden}
.apb-rx-footer--animated .apb-rx-footer-col,.apb-rx-footer--animated .apb-rx-footer-brand{opacity:0;transform:translateY(18px);transition:opacity var(--apb-rx-t-slow,.55s) var(--apb-rx-ease),transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-footer--animated.apb-rx-in .apb-rx-footer-col,.apb-rx-footer--animated.apb-rx-in .apb-rx-footer-brand{opacity:1;transform:none}
.apb-rx-footer--animated.apb-rx-in .apb-rx-footer-col:nth-child(2){transition-delay:.09s}
.apb-rx-footer--animated.apb-rx-in .apb-rx-footer-col:nth-child(3){transition-delay:.18s}
.apb-rx-footer--animated.apb-rx-in .apb-rx-footer-col:nth-child(4){transition-delay:.27s}
.apb-rx-wordmark-wrap{position:relative;text-align:center;padding:34px 0 6px;-webkit-mask-image:linear-gradient(#000,#000);overflow:hidden}
.apb-rx-wordmark{font-size:clamp(54px,13vw,150px);font-weight:800;letter-spacing:-.04em;line-height:.92;
  background:linear-gradient(100deg,var(--apb-rx-brand),var(--apb-rx-brand2) 30%,var(--apb-rx-brand3) 60%,var(--apb-rx-brand));background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:apb-rx-sheen calc(9s * var(--apb-rx-dur,1)) linear infinite;
  transform:translateY(24px);opacity:0;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease),opacity var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-footer--animated.apb-rx-in .apb-rx-wordmark{transform:none;opacity:1}
@keyframes apb-rx-sheen{to{background-position:300% 0}}
.apb-rx-totop{position:absolute;right:24px;top:-22px;width:44px;height:44px;border-radius:50%;border:var(--apb-rx-border,1px) solid var(--apb-rx-line);background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink);
  display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--apb-rx-shadow-2);cursor:pointer;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-totop:hover{transform:translateY(-3px)}
@media(prefers-reduced-motion:reduce){
  .apb-rx-wordmark{animation:none;opacity:1;transform:none}
  .apb-rx-footer--animated .apb-rx-footer-col,.apb-rx-footer--animated .apb-rx-footer-brand{opacity:1;transform:none}
}
/* hero search variant */
.apb-rx-hero-search{display:flex;gap:8px;max-width:520px;margin-top:24px;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,14px);padding:6px;box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22));transition:border-color .2s,box-shadow .2s}
.apb-rx-hero-search:focus-within{border-color:var(--apb-rx-brand,#4f46e5);box-shadow:0 0 0 3px var(--apb-rx-ring)}
.apb-rx-hero-search input{flex:1;min-width:0;border:0;background:transparent;padding:10px 12px;font:inherit;font-size:15px}
.apb-rx-hero-search input:focus{outline:none}
.apb-rx-hero-search .apb-rx-btn{flex:none}
/* ==== assets/pages/component-sections.css ==== */
/*
 * recipe-sections.css — designer-grade polish for the section-recipe BODY sections (apb-rx-*):
 * cards, proof, pricing, faq, steps, timeline, media, forms. Companion to layouts.css (base apb-rx
 * structure) + recipe-variants.css (chrome variants + shared --apb-rx-* tokens, loaded first).
 * Materials (layered shadows, soft gradients), spring-eased hover micro-interactions, refined type
 * and iconography (inline data-URI check/chevron). Token-with-fallback, no !important.
 */

/* ---------- shared optional icon / mini-image leaf (item_icon helper) ----------
   A consistent, brand-tinted iconography tile any item-based recipe can drop in front of a row.
   Renders an allowlist SVG or a small custom image; sized/tinted uniformly, tokens only. */
.apb-rx-leaficon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--apb-rx-leaficon-size,38px);height:var(--apb-rx-leaficon-size,38px);border-radius:calc(var(--apb-rx-radius,16px) * .6);background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand));overflow:hidden}
.apb-rx-leaficon svg{width:56%;height:56%;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}/* set on the svg so currentColor wins over any container `span{color}` (e.g. award cards) */
.apb-rx-leaficon--img{background:none}
.apb-rx-leaficon--img img{width:100%;height:100%;object-fit:cover;display:block}
/* the same leaf reused with per-surface classes (feature tile / step badge / tab pill); custom mini-image variants */
.apb-rx-tile-icon--img,.apb-rx-step-ic--img,.apb-rx-tab-ic--img{overflow:hidden}
.apb-rx-tile-icon--img{background:none}
.apb-rx-tile-icon--img img,.apb-rx-step-ic--img img,.apb-rx-tab-ic--img img{width:100%;height:100%;object-fit:cover;display:block}
/* step icon badge — same footprint as the numbered badge, brand-tinted */
.apb-rx-step-ic{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:calc(var(--apb-rx-radius,16px) * .55);background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand));overflow:hidden}
.apb-rx-step-ic svg{width:20px;height:20px}
/* tab icon — small inline glyph, inherits the label's colour (flips to white when the tab is active) */
.apb-rx-tab-ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:7px;vertical-align:-3px;color:inherit}
.apb-rx-tab-ic svg{width:100%;height:100%}
.apb-rx-tab-ic--img{border-radius:5px}

/* ---------- section headers + rhythm ---------- */
.apb-rx-head h2{font-size:calc(clamp(26px,3.4vw,40px) * var(--apb-rx-display-scale,1));font-weight:800;letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.08);margin:8px 0 0}
.apb-rx-head .apb-rx-eyebrow{margin-bottom:2px}
.apb-rx-section h3{letter-spacing:-.01em}

/* ---------- shared card treatment (feature/service/post/intg/award/rating) ---------- */
.apb-rx-tile,.apb-rx-quote,.apb-rx-member,.apb-rx-post,.apb-rx-intg-cell,.apb-rx-award,.apb-rx-rating,.apb-rx-tier{
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.05));
  transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),border-color .28s}
.apb-rx-tile:hover,.apb-rx-quote:hover,.apb-rx-member:hover,.apb-rx-post:hover,.apb-rx-intg-cell:hover,.apb-rx-award:hover,.apb-rx-rating:hover{
  transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06),0 14px 34px -12px rgba(11,13,18,.22));border-color:var(--apb-rx-line-accent)}
.apb-rx-tile h3,.apb-rx-post-body h3{font-size:18px;font-weight:650;margin-top:0}
.apb-rx-tile p{color:var(--apb-rx-muted,#5a6472);line-height:1.55}

/* ---------- feature_trio / service_list ---------- */
.apb-rx-tile{border-radius:var(--apb-rx-radius,16px);padding:26px}
.apb-rx-tile-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:calc(var(--apb-rx-radius,16px) * .68);font-size:22px;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));
  background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line-accent);margin-bottom:16px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow .28s}
.apb-rx-tile:hover .apb-rx-tile-icon{transform:translateY(-2px);box-shadow:0 10px 22px -8px var(--apb-rx-glow)}
[data-apb-tag-accent]{--apb-rx-accent-text:var(--apb-item-accent);--apb-rx-glow:color-mix(in srgb,var(--apb-item-accent) 38%,transparent)}
[data-apb-tag-accent] .apb-rx-tile-icon:not(.apb-rx-tile-icon--img){background:var(--apb-item-accent);color:var(--apb-item-accent-fg);border-color:transparent}
[data-apb-tag-accent].apb-rx-tile{border-color:color-mix(in srgb,var(--apb-item-accent) 24%,var(--apb-rx-line,#e5e7eb))}

/* ---------- feature_trio: feat_layout arrangements (alternating/list/carousel/bento/spotlight) ----------
   ONE items array, one shared .apb-rx-feat-item shape (icon/media reuse the primitives above), five
   arrangements selected purely by [data-apb-feat-layout] — mirrors previews/feature-layout-lab.html.
   --apb-rx-feat-gap (all layouts) / --apb-rx-split (alternating + spotlight only) come from feature_trio's
   gap/split_ratio slots (class-apb-component-render.php feat_wrap()); sane defaults when unset. */
.apb-rx-feat-item h3{margin:14px 0 6px}
.apb-rx-feat-item p{color:var(--apb-rx-muted,#5a6472);line-height:1.55;margin:0}

/* alternating — media/copy split rows, alternating sides; split_ratio drives the media:copy track */
.apb-rx-feat[data-apb-feat-layout="alternating"]{display:flex;flex-direction:column;gap:var(--apb-rx-feat-gap,44px)}
.apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item{display:grid;grid-template-columns:var(--apb-rx-split,56%) 1fr;gap:44px;align-items:center}
.apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item:nth-child(even){grid-template-columns:1fr var(--apb-rx-split,56%)}
.apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item:nth-child(even) .apb-rx-feat-media{order:2}
.apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-media{aspect-ratio:16/10}
.apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item h3{font-size:23px;letter-spacing:-.02em}

/* list — dense scannable rows with hairline dividers; gap widens row padding */
.apb-rx-feat[data-apb-feat-layout="list"]{display:flex;flex-direction:column}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-item{display:flex;gap:18px;align-items:flex-start;padding:calc(var(--apb-rx-feat-gap,18px) + 2px) 6px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec);transition:background .2s}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-item:last-child{border-bottom:0}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-item:hover{background:var(--apb-rx-soft)}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-body{flex:1;min-width:0}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-arrow{align-self:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s;font-weight:800}
.apb-rx-feat[data-apb-feat-layout="list"] .apb-rx-feat-item:hover .apb-rx-feat-arrow{opacity:1;transform:none}

/* carousel — horizontal scroll-snap; gap knob drives item spacing */
.apb-rx-feat[data-apb-feat-layout="carousel"]{display:flex;gap:var(--apb-rx-feat-gap,18px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;margin:0 -6px;padding-left:6px;padding-right:6px;scrollbar-width:thin}
.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-item{scroll-snap-align:start;flex:0 0 86%;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.05));transition:border-color .2s,box-shadow .25s}
.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-item:hover{border-color:var(--apb-rx-line-accent);box-shadow:0 20px 44px -24px rgba(11,13,18,.28)}
.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-media{border-radius:0;aspect-ratio:16/10}
.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-cbody{padding:18px}
.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-tile-icon{width:34px;height:34px;margin-bottom:12px}
@media(min-width:760px){.apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-item{flex-basis:clamp(230px,32%,300px)}}

/* bento — mixed-size grid; items 1 (2x2 feature) and 4 (wide) are emphasized; gap drives spacing */
.apb-rx-feat[data-apb-feat-layout="bento"]{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:154px;grid-auto-flow:dense;gap:var(--apb-rx-feat-gap,18px)}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);padding:20px;background:var(--apb-rx-surface,#fff);display:flex;flex-direction:column;overflow:hidden;transition:transform .25s,box-shadow .25s}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:hover{transform:translateY(-2px);box-shadow:0 18px 40px -22px rgba(11,13,18,.26)}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(1){grid-column:span 2;grid-row:span 2;background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 12%,#fff),var(--apb-rx-surface,#fff))}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(4){grid-column:span 2}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-tile-icon{margin-bottom:auto}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item h3{font-size:15px;margin-top:12px}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item p{display:none}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(1) h3{font-size:22px;letter-spacing:-.02em}
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(1) p,
.apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(4) p{display:block}

/* spotlight — one big featured item + a rail of the rest; split_ratio drives the hero:rail track */
.apb-rx-feat[data-apb-feat-layout="spotlight"]{display:grid;grid-template-columns:var(--apb-rx-split,56%) 1fr;gap:calc(var(--apb-rx-feat-gap,18px) + 8px);align-items:stretch}
.apb-rx-feat[data-apb-feat-layout="spotlight"] > .apb-rx-feat-item{border-radius:var(--apb-rx-radius,16px);overflow:hidden;position:relative;color:#fff;min-height:340px;
  display:flex;flex-direction:column;justify-content:flex-end;padding:28px;
  background:linear-gradient(180deg,rgba(10,12,25,0) 30%,rgba(10,12,25,.82)),linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed))}
.apb-rx-feat[data-apb-feat-layout="spotlight"] > .apb-rx-feat-item .apb-rx-tile-icon{background:rgba(255,255,255,.16);color:#fff;border-color:transparent}
.apb-rx-feat[data-apb-feat-layout="spotlight"] > .apb-rx-feat-item h3{font-size:24px;color:#fff;letter-spacing:-.02em}
.apb-rx-feat[data-apb-feat-layout="spotlight"] > .apb-rx-feat-item p{color:rgba(255,255,255,.82)}
.apb-rx-feat-rail{display:flex;flex-direction:column;gap:var(--apb-rx-feat-gap,18px)}
.apb-rx-feat-rail .apb-rx-feat-item{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:13px;padding:15px;flex:1;transition:border-color .2s,transform .2s}
.apb-rx-feat-rail .apb-rx-feat-item:hover{border-color:var(--apb-rx-line-accent);transform:translateX(2px)}
.apb-rx-feat-rail .apb-rx-tile-icon{width:34px;height:34px;margin-bottom:0}
/* spotlight with only the hero (no rail items) collapses to full width — no empty reserved column */
.apb-rx-feat[data-apb-feat-layout="spotlight"] > .apb-rx-feat-item:only-child{grid-column:1/-1}
.apb-rx-feat[data-apb-feat-layout] [data-apb-tag-accent].apb-rx-feat-item{border-color:color-mix(in srgb,var(--apb-item-accent) 24%,var(--apb-rx-line,#e5e7eb))}

/* mobile: every feat_layout stacks to a single column, ignoring split/cols (carousel keeps its
   horizontal scroll-snap mechanic — a mobile carousel IS one dominant item at a time, sized above). */
@media(max-width:860px){
  .apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item,
  .apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item:nth-child(even){grid-template-columns:1fr;gap:20px}
  .apb-rx-feat[data-apb-feat-layout="alternating"] .apb-rx-feat-item:nth-child(even) .apb-rx-feat-media{order:0}
  /* auto-rows must go on the GRID CONTAINER (a grid item ignores it) so tiles size to their
     content on mobile instead of clipping at the fixed 154px desktop row height */
  .apb-rx-feat[data-apb-feat-layout="bento"]{grid-template-columns:1fr;grid-auto-rows:auto}
  .apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(1),
  .apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:nth-child(4){grid-column:span 1;grid-row:span 1}
  .apb-rx-feat[data-apb-feat-layout="spotlight"]{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-feat[data-apb-feat-layout="bento"] .apb-rx-feat-item:hover,
  .apb-rx-feat[data-apb-feat-layout="carousel"] .apb-rx-feat-item:hover,
  .apb-rx-feat-rail .apb-rx-feat-item:hover{transform:none}
}

/* ---------- testimonials: circular avatar + quote mark ---------- */
.apb-rx-quote{border-radius:calc(var(--apb-rx-radius,16px) * 1.4);padding:26px;position:relative}
.apb-rx-quote .apb-rx-thumb{width:52px;height:52px;aspect-ratio:1;border-radius:50%;margin:0 0 18px;overflow:hidden;box-shadow:0 0 0 3px #fff,0 0 0 4px var(--apb-rx-line,#e7e8ec)}
.apb-rx-quote blockquote{font-size:15.5px;line-height:1.6;color:var(--apb-rx-ink-2,#23304a);position:relative}
.apb-rx-quote blockquote::before{content:"\201C";position:absolute;top:-26px;left:-4px;font-size:60px;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));opacity:.16;font-family:Georgia,serif}
.apb-rx-quote figcaption{margin-top:16px;color:var(--apb-rx-ink,#0b0d12)}

/* ---------- testimonial_spotlight ---------- */
.apb-rx-spotlight{box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-spotlight blockquote{position:relative}

/* ---------- team grid: round photos ---------- */
.apb-rx-member{border-radius:calc(var(--apb-rx-radius,16px) * 1.4);padding:22px;text-align:center}
.apb-rx-member .apb-rx-team-photo,.apb-rx-team .apb-rx-media{width:88px;height:88px;aspect-ratio:1;border-radius:50%;margin:0 auto 14px;overflow:hidden}
.apb-rx-member figcaption strong{display:block;font-size:15px}
.apb-rx-member figcaption span{color:var(--apb-rx-muted,#5a6472);font-size:13px}

/* ---------- logos: muted -> ink on hover ---------- */
.apb-rx-logos{gap:14px 40px}
.apb-rx-logos span{color:var(--apb-rx-muted,#9aa1ad);font-weight:700;font-size:17px;letter-spacing:-.01em;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-logos span:hover{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-logos-cap{color:var(--apb-rx-muted,#9aa1ad);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}

/* ---------- stats: band card + dividers ---------- */
.apb-rx-stats{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * 1.4);background:linear-gradient(var(--apb-rx-surface,#fff),#fbfbfd);padding:30px 8px;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-stats>div{position:relative}
.apb-rx-stats>div+div::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:46px;width:1px;background:var(--apb-rx-line,#e7e8ec)}
.apb-rx-stat-n{font-size:clamp(30px,4vw,42px);font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- integration grid: icon tile feel ---------- */
.apb-rx-intg-cell{border-radius:var(--apb-rx-radius,14px);padding:18px;display:flex;flex-direction:column;gap:3px}
.apb-rx-intg-cell strong{font-size:15px}
.apb-rx-intg-cell span{color:var(--apb-rx-muted,#9aa1ad);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.apb-rx-intg-cell img{max-width:100%;max-height:36px;object-fit:contain;display:block}

/* ---------- awards / ratings ---------- */
.apb-rx-award,.apb-rx-rating{border-radius:var(--apb-rx-radius,16px)}
.apb-rx-rating-score{background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- steps: gradient numerals + connector ---------- */
.apb-rx-steps{counter-reset:none}
.apb-rx-step{position:relative}
.apb-rx-step-n{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:var(--apb-rx-radius,14px);font-weight:800;font-size:17px;color:#fff;
  background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-step h3{margin:0 0 4px;font-size:18px}

/* ---------- timeline: gradient rail + dot ---------- */
.apb-rx-tl-item{border-left:2px solid transparent;border-image:linear-gradient(var(--apb-rx-brand,#4f46e5),transparent) 1;position:relative}
.apb-rx-tl-item::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--apb-rx-brand,#4f46e5);box-shadow:0 0 0 4px var(--apb-rx-surface,#fff)}

/* ---------- pricing: highlight + check marks ---------- */
/* flex column so the CTA bottom-aligns regardless of how many features a tier has (grid stretches
   all tiers to equal height; margin-top:auto pushes the button to the shared baseline). */
.apb-rx-tier{border-radius:calc(var(--apb-rx-radius,16px) * 1.4);padding:28px;position:relative;display:flex;flex-direction:column}
.apb-rx-tier>.apb-rx-btn{margin-top:auto}
/* emphasis WITHOUT scale() so all tiers share the same baseline (gradient border + badge + shadow
   carry the emphasis instead of a transform that misaligns price/feature rows across the row). */
.apb-rx-tier--hot{border-color:transparent;box-shadow:var(--apb-rx-shadow-3,0 30px 70px -20px rgba(11,13,18,.3));
  background:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed)) border-box;border:2px solid transparent}
.apb-rx-tier--hot:hover{transform:translateY(-4px)}
/* emphasis knob (0-32): gated behind [data-apb-emph] — that marker is only emitted when the author
   actually sets pricing's `emphasis` slot, so an unset knob leaves cards/duo/tickets byte-identical
   to their pre-knob look (no lift). stacked's own emphasis (outline, further below) is a new variant
   with no back-compat risk and reads the var unguarded. */
.apb-rx-tiers[data-apb-emph] .apb-rx-tier--hot{margin-top:calc(var(--apb-rx-tier-emph,16px) * -1);margin-bottom:calc(var(--apb-rx-tier-emph,16px) * -1);padding-top:calc(28px + var(--apb-rx-tier-emph,16px));padding-bottom:calc(28px + var(--apb-rx-tier-emph,16px))}
/* mobile: tiers collapse to one column (layouts.css @860) — drop the emphasis negative-margin lift so
   the featured card can't overlap its stacked neighbors when emphasis > the row gap */
@media(max-width:860px){.apb-rx-tiers[data-apb-emph] .apb-rx-tier--hot{margin-top:0;margin-bottom:0;padding-top:28px;padding-bottom:28px}}
.apb-rx-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));color:#fff;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:5px 12px;border-radius:var(--apb-rx-radius-pill,999px);box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-price{font-size:34px;font-weight:800;letter-spacing:-.03em;margin:6px 0}
.apb-rx-feats{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px}
.apb-rx-feats li{position:relative;padding-left:28px;color:var(--apb-rx-ink-2,#3a4250);font-size:14px}
/* check follows the BRAND (decorative tick, not a status state): tinted circle (::before) + masked glyph (::after) */
.apb-rx-feats li::before{content:"";position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:50%;background:var(--apb-rx-check-bg,#dcfce7)}
.apb-rx-feats li::after{content:"";position:absolute;left:0;top:1px;width:18px;height:18px;background:var(--apb-rx-check,#16a34a);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat}

/* ---------- comparison table ---------- */
.apb-rx-compare{border-collapse:separate;border-spacing:0;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-compare th,.apb-rx-compare td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--apb-rx-line,#eef0f4)}
.apb-rx-compare thead th{background:var(--apb-rx-soft,#fafbfc);font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--apb-rx-muted,#9aa1ad)}
.apb-rx-compare thead th:nth-child(2){color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5))}
.apb-rx-compare tbody td:nth-child(2){font-weight:700;color:var(--apb-rx-ink,#0b0d12);background:var(--apb-rx-glow-soft)}
.apb-rx-compare tr:last-child th,.apb-rx-compare tr:last-child td{border-bottom:0}

/* ---------- faq: card + animated chevron ---------- */
.apb-rx-faq{max-width:760px;margin-inline:auto;display:grid;gap:10px}
.apb-rx-faq-item{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,14px);background:var(--apb-rx-surface-2,#fff);transition:box-shadow .25s,border-color .25s}
.apb-rx-faq-item[open]{box-shadow:var(--apb-rx-shadow-1);border-color:var(--apb-rx-line-accent)}
.apb-rx-faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;font-weight:600;font-size:15.5px}
.apb-rx-faq-item summary::-webkit-details-marker{display:none}
.apb-rx-faq-item summary::after{content:"";flex:none;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa1ad' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-faq-item[open] summary::after{transform:rotate(180deg)}
.apb-rx-faq-item p{margin:0;padding:0 18px 18px;color:var(--apb-rx-muted,#5a6472);line-height:1.6}

/* ---------- gallery / blog media: hover zoom ---------- */
.apb-rx-gal-item,.apb-rx-post-thumb{overflow:hidden}
.apb-rx-gal-item img,.apb-rx-post-thumb img{transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease,ease)}
.apb-rx-gal-item:hover img,.apb-rx-post:hover .apb-rx-post-thumb img{transform:scale(1.05)}
.apb-rx-post{border-radius:var(--apb-rx-radius,16px)}

/* ---------- about_story / video_feature media ---------- */
.apb-rx-story .apb-rx-media{border-radius:calc(var(--apb-rx-radius,16px) * 1.4);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-media--video::after,.apb-rx-story .apb-rx-media[data-apb-play]::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230b0d12'%3E%3Cpolygon points='8 5 19 12 8 19'/%3E%3C/svg%3E") 54%/22px no-repeat;box-shadow:0 10px 30px -8px rgba(0,0,0,.4)}

/* ---------- forms: contact / lead inputs ---------- */
.apb-rx-form input,.apb-rx-form textarea{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * .68);transition:border-color .2s,box-shadow .2s}
.apb-rx-form input:focus,.apb-rx-form textarea:focus{outline:none;border-color:var(--apb-rx-brand,#4f46e5);box-shadow:0 0 0 3px var(--apb-rx-ring)}

/* ---------- cta band ---------- */
.apb-rx-cta-band{box-shadow:0 24px 60px -24px var(--apb-rx-glow)}

/* ---------- cta_band · app store badges ---------- */
.apb-rx-stores{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.apb-rx-store-badge{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border-radius:calc(var(--apb-rx-radius,16px) * .68);background:#0b0d12;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.16);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-store-badge:hover{transform:translateY(-2px)}
.apb-rx-store-ic{font-size:24px}
.apb-rx-store-badge span{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.apb-rx-store-badge small{font-size:10px;opacity:.8}
.apb-rx-store-badge strong{font-size:15px;font-weight:700}
/* ---------- blog_list · ranked ---------- */
.apb-rx-ranked{max-width:760px;margin-inline:auto;display:grid;gap:4px}
.apb-rx-post--ranked{display:flex;align-items:flex-start;gap:18px;background:transparent;border:0;border-bottom:1px solid var(--apb-rx-line,#eef0f4);border-radius:0;padding:18px 4px;transition:background .2s}
.apb-rx-post--ranked:hover{background:var(--color-gray-50,#f6f7f9)}
.apb-rx-post-rank{flex:none;font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1;width:48px;text-align:center;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));-webkit-background-clip:text;background-clip:text;color:transparent}
.apb-rx-post--ranked h3{margin:4px 0 4px;font-size:17px}
.apb-rx-post--ranked p{margin:0;color:var(--apb-rx-muted,#5a6472);font-size:14px}
/* ---------- pricing · tickets reskin ---------- */
.apb-rx-tiers--tickets .apb-rx-price{font-size:30px}
.apb-rx-tiers--tickets .apb-rx-tier{text-align:center}

/* ===================== slider / carousel =====================
   CSS scroll-snap is the baseline: native touch/trackpad swipe works with ZERO JS; apb-recipe-ui.js
   only enhances arrows/dots/autoplay. Tokens (--apb-rx-*) come from recipe-variants.css :root. */
.apb-rx-slider{position:relative}
.apb-rx-slider-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-slider-track::-webkit-scrollbar{display:none}
.apb-rx-slide{position:relative;margin:0;flex:0 0 100%;scroll-snap-align:center;min-width:0}
.apb-rx-slide>.apb-rx-media,.apb-rx-slide>img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-slide-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;color:#fff;border-radius:0 0 var(--apb-rx-radius,16px) var(--apb-rx-radius,16px);background:linear-gradient(0deg,rgba(8,10,18,.82),rgba(8,10,18,.45) 45%,rgba(8,10,18,0))}
.apb-rx-slide-cap h3{margin:0 0 4px;font-size:20px;font-weight:700;color:#fff}
.apb-rx-slide-cap p{margin:0 0 10px;font-size:14px;opacity:.92}
.apb-rx-slide-cap .apb-rx-btn{margin-top:2px}
/* cards variant: narrower slides reveal a peek of the next */
.apb-rx-slider--cards .apb-rx-slider-track{gap:16px}
.apb-rx-slider--cards .apb-rx-slide{flex-basis:80%}
@media(min-width:760px){.apb-rx-slider--cards .apb-rx-slide{flex-basis:42%}}
/* arrows + dots (only emitted when >1 slide; degrade gracefully if JS is off — snap still scrolls) */
.apb-rx-slider-arrow{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:var(--apb-rx-radius-pill,999px);border:0;background:rgba(255,255,255,.92);color:var(--apb-rx-ink,#0b0d12);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.18));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),background .2s;z-index:2}
.apb-rx-slider-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.07)}
.apb-rx-slider-prev{left:12px}
.apb-rx-slider-next{right:12px}
.apb-rx-slider-prev .apb-rx-ic{transform:rotate(180deg)}
.apb-rx-slider-dots{position:absolute;left:0;right:0;bottom:14px;display:flex;gap:7px;justify-content:center;z-index:2}
.apb-rx-slider-dot{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.55);cursor:pointer;transition:background .2s,transform .2s}
.apb-rx-slider-dot[aria-current="true"]{background:#fff;transform:scale(1.25)}
@media(prefers-reduced-motion:reduce){.apb-rx-slider-track{scroll-behavior:auto}}

/* =========================================================================
   PRICING v2 — flexible variants (tiers/toggle/single/duo/compare/split_proof/
   packages/contact). All brand values via --apb-rx-* tokens; CSS-only toggle.
   ========================================================================= */
.apb-rx-price-sub{font-size:12.5px;color:var(--apb-rx-muted,#5a6472);margin:-2px 0 4px}
.apb-rx-price-foot{max-width:760px;margin:22px auto 0;text-align:center;font-size:12.5px;color:var(--apb-rx-muted,#5a6472)}
.apb-rx-guarantee{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--apb-rx-muted,#5a6472);margin-top:14px}
.apb-rx-guarantee svg{width:16px;height:16px;color:var(--apb-rx-check,#16a34a)}
/* badge tones (decoupled from highlight; nowrap + ellipsis safe) */
.apb-rx-badge{white-space:nowrap;max-width:88%;overflow:hidden;text-overflow:ellipsis}
.apb-rx-badge--success{background:var(--apb-rx-check,#16a34a);box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-badge--neutral{background:var(--apb-rx-ink,#0b0d12);box-shadow:0 8px 18px -8px rgba(11,13,18,.4)}
.apb-rx-badge--outline{background:var(--apb-rx-surface,#fff);color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));border:1.5px solid currentColor;box-shadow:none}

/* billing toggle (CSS-only via :has; equal-width segments so the thumb aligns) */
.apb-rx-billing{display:inline-grid;grid-template-columns:1fr 1fr;position:relative;margin:0 auto clamp(28px,4vw,42px);padding:5px;
  border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-soft,var(--color-gray-100,#f0f1f4));border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-billing input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-billing label{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;white-space:nowrap;
  padding:9px 20px;border-radius:var(--apb-rx-radius-pill,999px);font-weight:650;font-size:14.5px;color:var(--apb-rx-muted,#5a6472);transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-billing-thumb{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:var(--apb-rx-radius-pill,999px);
  background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1);transition:transform var(--apb-rx-t,.32s) var(--apb-rx-ease,ease)}
.apb-rx-billing input:first-of-type:checked ~ label:first-of-type{color:var(--apb-rx-ink,#0b0d12)}
/* annual-selected state (thumb slide + label) is gated to :has support so it can't diverge from the
   :has-driven price swap below — no-:has / no-JS browsers stay on Monthly consistently (fail-open). */
@supports selector(:has(*)){
  .apb-rx-billing input:last-of-type:checked ~ .apb-rx-billing-thumb{transform:translateX(100%)}
  .apb-rx-billing input:last-of-type:checked ~ label:last-of-type{color:var(--apb-rx-ink,#0b0d12)}
}
.apb-rx-billing-save{font-size:11px;font-weight:700;color:var(--apb-rx-check,#15803d);background:var(--apb-rx-check-bg,#dcfce7);border-radius:999px;padding:2px 8px}
.apb-rx-price--toggle{position:relative;min-height:46px;margin:8px 0}
.apb-rx-price--toggle .amt{position:absolute;left:0;right:0;top:0;font-size:38px;font-weight:800;letter-spacing:-.03em;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-price--toggle .amt small{font-size:15px;font-weight:600;color:var(--apb-rx-muted,#5a6472);letter-spacing:0}
.apb-rx-price--toggle .amt-a{opacity:0;transform:translateY(8px)}
.apb-rx-pricing:has(.apb-rx-billing input:last-of-type:checked) .amt-m{opacity:0;transform:translateY(-8px)}
.apb-rx-pricing:has(.apb-rx-billing input:last-of-type:checked) .amt-a{opacity:1;transform:none}
.apb-rx-tiers--duo{grid-template-columns:repeat(2,minmax(0,360px))}

/* stacked (full-width horizontal tier rows: name+price left, features middle, cta right) — SAME
   tier markup as cards, CSS-only reflow. New variant, no back-compat risk. */
.apb-rx-tiers--stacked{display:flex;flex-direction:column;gap:var(--apb-rx-feat-gap,20px);max-width:820px;margin-inline:auto}
.apb-rx-tiers--stacked .apb-rx-tier{flex-direction:row;align-items:center;gap:26px;padding:20px 26px}
.apb-rx-tiers--stacked .apb-rx-tier>h3{flex:0 0 120px;margin:0}
.apb-rx-tiers--stacked .apb-rx-price{flex:0 0 auto;font-size:26px;margin:0}
.apb-rx-tiers--stacked .apb-rx-price-sub{display:none}
.apb-rx-tiers--stacked .apb-rx-feats{flex:1;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px 18px;margin:0}
.apb-rx-tiers--stacked .apb-rx-feats li{padding-left:22px}
.apb-rx-tiers--stacked .apb-rx-btn{flex:0 0 150px;margin:0;padding:11px 0}
.apb-rx-tiers--stacked .apb-rx-tier--hot{outline:calc(var(--apb-rx-tier-emph,16px) / 8) solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 45%,transparent);outline-offset:-1px}
@media(max-width:820px){
  .apb-rx-tiers--stacked .apb-rx-tier{flex-direction:column;align-items:stretch;text-align:center;gap:14px}
  /* reset the desktop row-track flex-bases: in a COLUMN flex container flex-basis is HEIGHT, so these
     would otherwise force a 120px empty block under the heading and a 150px-tall blob button */
  .apb-rx-tiers--stacked .apb-rx-tier>h3,.apb-rx-tiers--stacked .apb-rx-btn{flex:0 0 auto}
  .apb-rx-tiers--stacked .apb-rx-feats{justify-content:center}
}

/* spotlight (featured/hot tier enlarged on one side; the rest compact in a rail) — SAME tiers array.
   New variant, no back-compat risk; emphasis biases the hero/rail split. */
.apb-rx-tiers-spotlight{display:grid;grid-template-columns:calc(52% + var(--apb-rx-tier-emph,16px) * 0.6) 1fr;gap:calc(var(--apb-rx-feat-gap,20px) + 6px);align-items:stretch;max-width:940px;margin-inline:auto}
.apb-rx-tiers-spotlight>.apb-rx-tier{height:100%;background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 9%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border-color:color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 40%,var(--color-gray-200,#e7eaef))}
.apb-rx-tiers-spotlight>.apb-rx-tier .apb-rx-price{font-size:44px}
/* spotlight with only the hero (no rail) collapses to full width — no empty reserved column */
.apb-rx-tiers-spotlight>.apb-rx-tier:only-child{grid-column:1/-1}
.apb-rx-tier-rail{display:flex;flex-direction:column;gap:var(--apb-rx-feat-gap,20px)}
.apb-rx-tier-rail .apb-rx-tier{flex:1;padding:20px 22px}
.apb-rx-tier-rail .apb-rx-feats{gap:6px}
.apb-rx-tier-rail .apb-rx-price-sub{display:none}
@media(max-width:820px){.apb-rx-tiers-spotlight{grid-template-columns:1fr}}

/* single (one centered plan) */
.apb-rx-price-single{max-width:520px;margin-inline:auto;text-align:center;position:relative;padding:clamp(30px,4vw,44px);
  border-radius:calc(var(--apb-rx-radius,16px) * 1.5);box-shadow:var(--apb-rx-shadow-2);
  background:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed)) border-box;border:2px solid transparent}
.apb-rx-price-single h3{font-size:20px;margin:0}
.apb-rx-price-single .apb-rx-price{font-size:clamp(44px,6vw,58px);font-weight:800;letter-spacing:-.03em;margin:6px 0}
.apb-rx-price-single .apb-rx-feats{max-width:360px;margin:20px auto;text-align:left;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.apb-rx-price-single .apb-rx-btn{width:100%;max-width:290px;text-align:center;box-sizing:border-box}
@media(max-width:480px){.apb-rx-price-single .apb-rx-feats{grid-template-columns:1fr}}

/* split_proof (plan + proof column beside) */
.apb-rx-price-split{display:grid;grid-template-columns:1.05fr .95fr;gap:32px;align-items:stretch;max-width:1000px;margin-inline:auto}
@media(max-width:820px){.apb-rx-price-split{grid-template-columns:1fr}}
.apb-rx-price-split .apb-rx-tiers{margin:0}
.apb-rx-proof{display:flex;flex-direction:column;gap:14px;justify-content:center}
.apb-rx-proof-q{padding:18px 20px;border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-proof-q p{margin:0 0 12px;font-size:14.5px;line-height:1.55;color:var(--apb-rx-ink-2,#23304a)}
.apb-rx-proof-q .by{display:flex;align-items:center;gap:10px;font-size:13px}
.apb-rx-proof-q .av{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed))}
.apb-rx-proof-q .by span{color:var(--apb-rx-muted,#5a6472)}
.apb-rx-proof-logos{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;opacity:.6;font-weight:800;font-size:15px;color:var(--apb-rx-muted,#8a93a2)}

/* compare (feature-presence matrix) */
.apb-rx-price-compare{max-width:960px;margin-inline:auto;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * 1.2);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-price-compare table{width:100%;border-collapse:collapse}
.apb-rx-price-compare thead th{padding:22px 18px;text-align:center;vertical-align:top;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-price-compare thead th:first-child{text-align:left}
.apb-rx-price-compare .pl-name{font-weight:700;font-size:16px}
.apb-rx-price-compare .pl-price{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:4px 0 10px}
.apb-rx-price-compare .col-hot{background:var(--apb-rx-soft,rgba(20,24,40,.05))}
.apb-rx-price-compare tbody th{text-align:left;font-weight:600;padding:13px 18px;font-size:14px;border-bottom:1px solid var(--apb-rx-line,#eef0f4);color:var(--apb-rx-ink-2,#23304a)}
.apb-rx-price-compare tbody td{text-align:center;padding:13px 18px;border-bottom:1px solid var(--apb-rx-line,#eef0f4);font-size:14px}
.apb-rx-price-compare tbody tr:last-child th,.apb-rx-price-compare tbody tr:last-child td{border-bottom:0}
.apb-rx-ck{color:var(--apb-rx-check,#16a34a);font-weight:800}.apb-rx-dash{color:var(--color-gray-400,#c2c8d0)}
.apb-rx-price-compare .apb-rx-btn{padding:9px 18px;font-size:14px}

/* packages (service deliverables) */
.apb-rx-packages{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),minmax(0,340px));justify-content:center;gap:20px}
@media(max-width:820px){.apb-rx-packages{grid-template-columns:1fr}}
.apb-rx-package{padding:26px;border-radius:calc(var(--apb-rx-radius,16px) * 1.2);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-1);display:flex;flex-direction:column;position:relative}
.apb-rx-package--hot{border-color:transparent;background:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed)) border-box;border:2px solid transparent;box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-package h3{font-size:20px;margin:6px 0 2px}
.apb-rx-package .from{color:var(--apb-rx-ink,#0b0d12);font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}
.apb-rx-package ul{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:9px;font-size:14px}
.apb-rx-package li{position:relative;padding-left:24px;color:var(--apb-rx-ink-2,#3a4250)}
.apb-rx-package li::before{content:"";position:absolute;left:0;top:2px;width:16px;height:16px;border-radius:50%;background:var(--apb-rx-check-bg,#dcfce7)}
.apb-rx-package li::after{content:"";position:absolute;left:4px;top:6px;width:8px;height:5px;border-left:2px solid var(--apb-rx-check,#16a34a);border-bottom:2px solid var(--apb-rx-check,#16a34a);transform:rotate(-45deg)}
.apb-rx-package .apb-rx-btn{margin-top:auto;text-align:center}

/* contact (enterprise / custom) */
.apb-rx-price-contact{max-width:1000px;margin-inline:auto;display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center;
  padding:clamp(30px,4vw,44px);border-radius:calc(var(--apb-rx-radius,16px) * 1.4);color:#fff;box-shadow:var(--apb-rx-shadow-3);
  background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed))}
@media(max-width:760px){.apb-rx-price-contact{grid-template-columns:1fr;gap:22px}}
.apb-rx-price-contact h2{margin:0 0 8px;font-size:clamp(24px,3vw,32px);letter-spacing:-.02em}
.apb-rx-price-contact p{margin:0;color:rgba(255,255,255,.85);font-size:16px;line-height:1.55}
.apb-rx-price-contact .apb-rx-btn{background:var(--apb-rx-surface,#fff);color:var(--apb-rx-brand,#4f46e5);margin-top:18px}
.apb-rx-price-contact ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:15px}
.apb-rx-price-contact li{position:relative;padding-left:26px}
.apb-rx-price-contact li::before{content:"\2713";position:absolute;left:0;font-weight:800;color:#fff}

@media(prefers-reduced-motion:reduce){.apb-rx-billing-thumb,.apb-rx-price--toggle .amt,.apb-rx-billing label{transition:none}}

/* =========================================================================
   TESTIMONIALS v2 — wall / carousel / single / rating + per-item stars/metric/
   featured. Reuses .apb-rx-quote; all brand values via --apb-rx-* tokens.
   ========================================================================= */
.apb-rx-tstars{font-size:13px;letter-spacing:2px;color:var(--apb-rx-star,#f5a623);margin-bottom:9px}
.apb-rx-tstars-off{color:var(--apb-rx-line,#e7e8ec)}
.apb-rx-tmetric{display:inline-block;font-weight:800;font-size:14px;letter-spacing:-.01em;margin-bottom:10px;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5))}
.apb-rx-tby{display:flex;align-items:center;gap:11px;margin-top:16px}
.apb-rx-tby .apb-rx-thumb{width:38px;height:38px;aspect-ratio:1;border-radius:50%;margin:0;overflow:hidden;flex:none;box-shadow:none}
.apb-rx-tinitials{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed))}
.apb-rx-tby strong{display:block;font-size:14px}
.apb-rx-tby span:not(.apb-rx-tinitials){font-size:12.5px;color:var(--apb-rx-muted,#5a6472)}
/* featured card — brand gradient with a fixed dark scrim UNDER the gradient so white text stays legible
   even for LIGHT custom brands (no scale; keeps row baselines). */
.apb-rx-quote--feat{background:linear-gradient(rgba(8,10,22,.22),rgba(8,10,22,.22)),linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));border-color:transparent}
.apb-rx-quote--feat blockquote,.apb-rx-quote--feat .apb-rx-tby strong{color:#fff}
.apb-rx-quote--feat .apb-rx-tby span{color:rgba(255,255,255,.78)}
.apb-rx-quote--feat .apb-rx-tstars{color:#ffe08a}.apb-rx-quote--feat .apb-rx-tstars-off{color:rgba(255,255,255,.3)}
.apb-rx-quote--feat .apb-rx-tmetric{color:#fff}
.apb-rx-quote--feat .apb-rx-tinitials{background:rgba(255,255,255,.22)}
.apb-rx-quote--feat blockquote::before{color:rgba(255,255,255,.28)}

/* wall (masonry) */
.apb-rx-twall{columns:4 250px;column-gap:var(--apb-rx-feat-gap,16px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
@media(max-width:900px){.apb-rx-twall{columns:2 240px}}
@media(max-width:560px){.apb-rx-twall{columns:1}}
.apb-rx-twall .apb-rx-quote{break-inside:avoid;margin:0 0 var(--apb-rx-feat-gap,16px);display:inline-block;width:100%;box-sizing:border-box}

/* carousel (scroll-snap strip; user-driven, no autoplay) */
.apb-rx-tcarousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 16px;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-tcarousel .apb-rx-quote{flex:0 0 clamp(260px,80vw,340px);scroll-snap-align:start;margin:0}

/* single (one hero testimonial) */
.apb-rx-tsingle{margin:0;max-width:760px;margin-inline:auto;text-align:center;padding:clamp(30px,5vw,52px);
  border-radius:calc(var(--apb-rx-radius,16px) * 1.4);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-tsingle .apb-rx-tstars{justify-content:center;font-size:16px}
.apb-rx-tsingle blockquote{margin:0;font-size:clamp(20px,2.6vw,28px);line-height:1.4;letter-spacing:-.01em;font-weight:600}
.apb-rx-tsingle .apb-rx-tby{justify-content:center;margin-top:22px}

/* rating summary headline */
.apb-rx-trating-sum{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,36px)}
.apb-rx-trating-sum .apb-rx-tstars{margin:0;font-size:20px}
.apb-rx-trating-sum span{font-size:17px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}

/* image-forward single testimonials (portrait / cutout / overlay) — big editorial quote glyph */
.apb-rx-tportrait,.apb-rx-tcutout{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;border-radius:calc(var(--apb-rx-radius,16px) * 1.5);overflow:hidden;
  border:1px solid var(--apb-rx-line,#e7e8ec);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-2)}
/* media() renders <div class="apb-rx-tphoto"><img></div> — size the wrapper, cover the inner img (honour its --apb-rx-focal) */
.apb-rx-tphoto{display:block;width:100%;height:100%}
.apb-rx-tphoto>img{width:100%;height:100%;object-fit:cover;object-position:var(--apb-rx-focal,50% 50%);display:block}
.apb-rx-tportrait blockquote,.apb-rx-tcutout blockquote,.apb-rx-toverlay blockquote{margin:0;position:relative}
.apb-rx-tportrait blockquote::before,.apb-rx-tcutout blockquote::before,.apb-rx-toverlay blockquote::before{content:"\201C";position:absolute;top:-.44em;left:-.06em;
  font-family:Georgia,"Times New Roman",serif;font-size:3.2em;line-height:1;color:var(--apb-rx-brand,#4f46e5);opacity:.16;pointer-events:none}

/* portrait — tall photo | quote panel (real 2-col split; --apb-rx-split ≈ old 1.05fr/1fr ratio) */
.apb-rx-tportrait{display:grid;grid-template-columns:var(--apb-rx-split,51%) minmax(0,1fr);align-items:stretch}
.apb-rx-tphoto-wrap{position:relative;min-height:340px;background:var(--apb-rx-soft)}
.apb-rx-tpanel{padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;justify-content:center}
.apb-rx-tpanel blockquote{font-size:clamp(20px,2.3vw,27px);line-height:1.42;letter-spacing:-.012em;font-weight:600;padding-left:.2em}
.apb-rx-tpanel .apb-rx-tby{margin-top:22px}

/* cutout — brand panel with the person bleeding in beside the quote (real 2-col split; --apb-rx-split ≈ old 1.2fr/.9fr ratio) */
.apb-rx-tcutout{display:grid;grid-template-columns:var(--apb-rx-split,57%) minmax(0,1fr);align-items:end;position:relative;
  background:radial-gradient(120% 140% at 100% 100%,var(--apb-rx-soft),var(--apb-rx-surface,#fff) 60%)}
.apb-rx-tcutout-panel{padding:clamp(30px,4vw,56px);align-self:center}
.apb-rx-tcutout-panel blockquote{font-size:clamp(20px,2.4vw,28px);line-height:1.4;letter-spacing:-.012em;font-weight:650;padding-left:.2em}
.apb-rx-tcutout-panel .apb-rx-tby{margin-top:22px}
.apb-rx-tcutout-photo{position:relative;align-self:end;min-height:300px}
.apb-rx-tcutout-photo::before{content:"";position:absolute;inset:auto 6% 0 6%;height:64%;border-radius:50%;
  background:radial-gradient(closest-side,var(--apb-rx-brand,#4f46e5),transparent);opacity:.16;filter:blur(6px)}
.apb-rx-tcutout-photo .apb-rx-tphoto{position:relative;height:100%;max-height:440px;
  -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}
.apb-rx-tcutout-photo .apb-rx-tphoto>img{object-position:var(--apb-rx-focal,50% 0%)}

/* overlay — quote over a full-bleed photo with scrim */
.apb-rx-toverlay{position:relative;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;min-height:clamp(400px,52vw,560px);
  border-radius:calc(var(--apb-rx-radius,16px) * 1.5);overflow:hidden;display:flex;align-items:flex-end;isolation:isolate}
.apb-rx-toverlay .apb-rx-tphoto{position:absolute;inset:0;z-index:-2}
.apb-rx-toverlay::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(0deg,rgba(8,10,22,.82),rgba(8,10,22,.28) 52%,rgba(8,10,22,.06))}
/* body-local scrim so long quotes stay legible even where the global scrim is faint (e.g. light photos) */
.apb-rx-toverlay-body{padding:clamp(34px,5vw,60px) clamp(28px,5vw,56px) clamp(28px,5vw,56px);max-width:680px;color:#fff;
  background:linear-gradient(0deg,rgba(8,10,22,.55),rgba(8,10,22,.14) 78%,transparent);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}
.apb-rx-toverlay-body blockquote{font-size:clamp(22px,3vw,34px);line-height:1.34;letter-spacing:-.015em;font-weight:650;padding-left:.16em}
.apb-rx-toverlay-body blockquote::before{color:#fff;opacity:.28}
.apb-rx-toverlay-body .apb-rx-tstars{color:#ffe08a}.apb-rx-toverlay-body .apb-rx-tstars-off{color:rgba(255,255,255,.32)}
.apb-rx-toverlay-body .apb-rx-tmetric{color:#fff}
.apb-rx-toverlay-body .apb-rx-tby strong{color:#fff}.apb-rx-toverlay-body .apb-rx-tby span:not(.apb-rx-tinitials){color:rgba(255,255,255,.82)}
.apb-rx-toverlay-body .apb-rx-tby{margin-top:20px}
@media(max-width:720px){
  .apb-rx-tportrait,.apb-rx-tcutout{grid-template-columns:1fr}
  .apb-rx-tphoto-wrap{min-height:300px}
  .apb-rx-tcutout{align-items:stretch}
  .apb-rx-tcutout-photo{min-height:280px}
}
@media(prefers-reduced-motion:reduce){.apb-rx-quote{transition:none}.apb-rx-quote:hover{transform:none}}

/* spotlight — hero quote + supporting rail (real 2-col split; --apb-rx-split ≈ old 1.35fr/1fr ratio) */
.apb-rx-tspot{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:grid;grid-template-columns:var(--apb-rx-split,57%) minmax(0,1fr);gap:var(--apb-rx-feat-gap,20px);align-items:start}
/* single testimonial (rail omitted) → hero spans the full row, no empty reserved column (parity with feat/pricing spotlight) */
.apb-rx-tspot-hero:only-child{grid-column:1/-1}
.apb-rx-tspot-hero .apb-rx-tsingle{text-align:left;margin:0;height:100%}
.apb-rx-tspot-hero .apb-rx-tsingle .apb-rx-tstars,.apb-rx-tspot-hero .apb-rx-tsingle .apb-rx-tby{justify-content:flex-start}
.apb-rx-tspot-hero .apb-rx-tsingle blockquote{font-size:clamp(21px,2.5vw,30px)}
.apb-rx-tspot-rail{display:flex;flex-direction:column;gap:var(--apb-rx-feat-gap,16px)}
.apb-rx-tspot-rail .apb-rx-quote{margin:0}
@media(max-width:820px){.apb-rx-tspot{grid-template-columns:1fr}}

/* marquee — auto-scrolling quote ticker (CSS-only, seamless via a duplicated group) */
.apb-rx-tmarquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.apb-rx-tmarquee-track{display:flex;width:max-content;animation:apb-rx-tmarquee 46s linear infinite}
.apb-rx-tmarquee:hover .apb-rx-tmarquee-track{animation-play-state:paused}
.apb-rx-tmarquee-group{display:flex;gap:var(--apb-rx-feat-gap,16px);padding-right:var(--apb-rx-feat-gap,16px)}
.apb-rx-tchip{flex:0 0 clamp(260px,32vw,340px);margin:0;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  border-radius:var(--apb-rx-radius,16px);padding:22px;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-tchip blockquote{margin:0;font-size:15px;line-height:1.5}
@keyframes apb-rx-tmarquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.apb-rx-tmarquee{overflow-x:auto}.apb-rx-tmarquee-track{animation:none}.apb-rx-tmarquee-group[aria-hidden]{display:none}}

/* stat — metric-led impact cards */
.apb-rx-tstats{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),minmax(0,1fr));gap:18px;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
@media(max-width:760px){.apb-rx-tstats{grid-template-columns:1fr}}
.apb-rx-tstat-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * 1.2);padding:clamp(24px,3vw,34px);
  box-shadow:var(--apb-rx-shadow-1);display:flex;flex-direction:column}
.apb-rx-tstat-n{font-size:clamp(38px,5vw,56px);font-weight:800;letter-spacing:-.03em;line-height:1;margin-bottom:14px;
  color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5))}
.apb-rx-tstat-card blockquote{margin:0;font-size:16px;line-height:1.5;font-weight:550}
.apb-rx-tstat-card .apb-rx-tby{margin-top:auto;padding-top:18px}

/* video — play-button poster cards */
.apb-rx-tvideos{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),minmax(0,1fr));gap:20px;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
@media(max-width:760px){.apb-rx-tvideos{grid-template-columns:1fr}}
.apb-rx-tvideo-card{margin:0;display:flex;flex-direction:column}
.apb-rx-tvideo-thumb{position:relative;display:block;aspect-ratio:16/10;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft);margin-bottom:16px}
.apb-rx-tvideo-thumb .apb-rx-tphoto{position:absolute;inset:0}
.apb-rx-tplay{position:absolute;left:50%;top:50%;width:60px;height:60px;transform:translate(-50%,-50%);border-radius:50%;
  background:rgba(255,255,255,.92);box-shadow:0 10px 30px -8px rgba(8,10,22,.5);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-tplay::before{content:"";position:absolute;left:54%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:11px 0 11px 18px;
  border-color:transparent transparent transparent var(--apb-rx-brand,#4f46e5)}
.apb-rx-tvideo-thumb:hover .apb-rx-tplay{transform:translate(-50%,-50%) scale(1.08)}
.apb-rx-tvideo-card blockquote{margin:0;font-size:16px;line-height:1.5;font-weight:550}

/* bento — mixed-size mosaic */
.apb-rx-tbento{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:16px;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-tbento-tile{margin:0;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);
  padding:24px;box-shadow:var(--apb-rx-shadow-1);display:flex;flex-direction:column}
.apb-rx-tbento-tile blockquote{margin:0;font-size:15.5px;line-height:1.5}
.apb-rx-tbento-tile .apb-rx-tby{margin-top:auto;padding-top:16px}
.apb-rx-tbento-tile--big{grid-column:span 2;grid-row:span 2;
  background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed));border-color:transparent;color:#fff;
  box-shadow:var(--apb-rx-shadow-3,0 30px 70px -20px rgba(11,13,18,.3))}
.apb-rx-tbento-tile--big blockquote{font-size:clamp(19px,2.2vw,26px);line-height:1.4;font-weight:600}
.apb-rx-tbento-tile--big .apb-rx-tby strong{color:#fff}.apb-rx-tbento-tile--big .apb-rx-tby span:not(.apb-rx-tinitials){color:rgba(255,255,255,.8)}
.apb-rx-tbento-tile--big .apb-rx-tstars{color:#ffe08a}.apb-rx-tbento-tile--big .apb-rx-tstars-off{color:rgba(255,255,255,.3)}
.apb-rx-tbento-tile--big .apb-rx-tmetric{color:#fff}.apb-rx-tbento-tile--big .apb-rx-tinitials{background:rgba(255,255,255,.22)}
@media(max-width:760px){.apb-rx-tbento{grid-template-columns:1fr}.apb-rx-tbento-tile--big{grid-column:auto;grid-row:auto}}

/* Brand edge-fade mask — deterministic alpha mask applied at placement by
   APB_Media_Archetype_Store::frame_render_attrs() (mode whitelisted, --f intensity / --s spread clamped server-side).
   Alpha mask: the media dissolves into whatever background sits behind it. */
.apb-media-fade{--f:.55;--s:.5}
.apb-media-fade[data-fade="edges"]{-webkit-mask-image:radial-gradient(120% 120% at 50% 50%,#000 calc(100% - var(--f)*60% - var(--s)*30%),transparent calc(100% - var(--f)*60% + var(--s)*30%));mask-image:radial-gradient(120% 120% at 50% 50%,#000 calc(100% - var(--f)*60% - var(--s)*30%),transparent calc(100% - var(--f)*60% + var(--s)*30%))}
.apb-media-fade[data-fade="bottom"]{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - var(--f)*75% - var(--s)*25%),transparent calc(100% - var(--f)*75% + var(--s)*25%));mask-image:linear-gradient(180deg,#000 calc(100% - var(--f)*75% - var(--s)*25%),transparent calc(100% - var(--f)*75% + var(--s)*25%))}
.apb-media-fade[data-fade="top"]{-webkit-mask-image:linear-gradient(0deg,#000 calc(100% - var(--f)*75% - var(--s)*25%),transparent calc(100% - var(--f)*75% + var(--s)*25%));mask-image:linear-gradient(0deg,#000 calc(100% - var(--f)*75% - var(--s)*25%),transparent calc(100% - var(--f)*75% + var(--s)*25%))}
.apb-media-fade[data-fade="radial"]{-webkit-mask-image:radial-gradient(75% 75% at 50% 45%,#000 calc(25% + var(--f)*25% - var(--s)*20%),transparent calc(45% + var(--f)*25% + var(--s)*30%));mask-image:radial-gradient(75% 75% at 50% 45%,#000 calc(25% + var(--f)*25% - var(--s)*20%),transparent calc(45% + var(--f)*25% + var(--s)*30%))}

/* testimonial wall: per-card CTA + CSS-only collapse/expander (brand-token based) */
.apb-rx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.apb-rx-quote .apb-rx-tcard-cta{display:block;width:100%;text-align:center;margin-top:14px}
.apb-rx-twall-wrap{position:relative;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-twall--clip{max-height:640px;overflow:hidden}
.apb-rx-twall-toggle:checked ~ .apb-rx-twall--clip{max-height:none}
/* fade mask over the collapsed bottom edge, hidden once expanded */
.apb-rx-twall-wrap::after{content:"";position:absolute;left:0;right:0;bottom:0;height:190px;pointer-events:none;background:linear-gradient(180deg,transparent,var(--apb-rx-surface,#fff))}
.apb-rx-twall-wrap:has(.apb-rx-twall-toggle:checked)::after{display:none}
.apb-rx-twall-toggle:checked ~ .apb-rx-twall-more{display:none}
.apb-rx-twall-more{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);z-index:2;display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius-pill,999px);
  padding:12px 24px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-twall-more:hover{border-color:var(--apb-rx-line-accent,#e7e8ec)}
.apb-rx-twall-plus{font-size:19px;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5))}
/* Brand background overlay — a layer over .apb-rx-media <img>, emitted by
   APB_Media_Archetype_Store::overlay_render_attrs() (type/direction whitelisted, --ov clamped).
   Auto scrim = contrast-targeted gradient; tint/gradient/duotone = brand-token driven. */
.apb-has-overlay{position:relative;isolation:isolate}
.apb-media-overlay{position:absolute;inset:0;pointer-events:none;z-index:1;--ov:.55;--ov1:var(--apb-rx-brand,#4f46e5);--ov2:#0a0e16}
.apb-media-overlay[data-ov="scrim"]{background:linear-gradient(0deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.72) 22%,rgba(0,0,0,.32) 48%,transparent 72%)}
.apb-media-overlay[data-ov="scrim"][data-ovdir="top"]{transform:scaleY(-1)}
.apb-media-overlay[data-ov="scrim"][data-ovdir="center"]{background:radial-gradient(120% 80% at 50% 50%,rgba(0,0,0,.8) 0%,rgba(0,0,0,.55) 40%,transparent 78%)}
.apb-media-overlay[data-ov="tint"]{background:var(--ov1);opacity:var(--ov)}
.apb-media-overlay[data-ov="gradient"]{background:linear-gradient(135deg,var(--ov1),var(--ov2));opacity:var(--ov)}
.apb-media-overlay[data-ov="duotone"]{background:linear-gradient(135deg,var(--ov2),var(--ov1));mix-blend-mode:color;opacity:.92}

/* ---- embedded real APB form host (contact / lead_form / share_subscribe with a form_id) ---- */
.apb-rx-formhost{width:100%;min-width:0;font-family:var(--apb-rx-font,inherit)}
.apb-rx-formhost .apb-form{max-width:none;margin:0}
.apb-rx-formhost--inline{max-width:520px;margin-inline:auto}
.apb-rx-contact .apb-rx-formhost,.apb-rx-leadform .apb-rx-formhost{align-self:start}

/* ---- contact / lead_form layout variants ---- */
/* split_info: contact-detail rows beside the form */
.apb-rx-contact-details{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.apb-rx-contact-details li{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-contact-dic{flex:0 0 auto;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-contact-dic svg{width:19px;height:19px}
/* centered: a single centered form card */
.apb-rx-contact--centered .apb-rx-contact-centered{max-width:520px;margin-inline:auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);padding:clamp(24px,4vw,40px);box-shadow:var(--apb-rx-shadow-2,0 12px 30px -16px rgba(11,13,18,.16))}
.apb-rx-contact--centered .apb-rx-contact-head{text-align:center;margin-bottom:22px}
.apb-rx-contact--centered .apb-rx-contact-head h2{margin:0}
/* overlay: form card over a background image */
.apb-rx-contact--overlay{position:relative;padding:clamp(40px,6vw,72px) 24px;overflow:hidden;display:flex;justify-content:center;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-contact-bg{position:absolute;inset:0}
.apb-rx-contact-bg img{width:100%;height:100%;object-fit:cover}
.apb-rx-contact-scrim{position:absolute;inset:0;background:linear-gradient(120deg,rgba(8,10,15,.72),rgba(8,10,15,.42))}
.apb-rx-contact-card{position:relative;width:min(520px,100%);background:var(--apb-rx-surface,#fff);border-radius:var(--apb-rx-radius,16px);padding:clamp(24px,4vw,36px);box-shadow:0 24px 60px -20px rgba(11,13,18,.5)}
.apb-rx-contact-card .apb-rx-contact-head{margin-bottom:20px}
.apb-rx-contact-card .apb-rx-contact-head h2{margin:0}
/* lead_form inline: one horizontal row */
.apb-rx-leadform--inline .apb-rx-leadform-inline{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;background:var(--apb-rx-soft,#f4f5f7);border-radius:var(--apb-rx-radius,16px);padding:clamp(20px,3vw,28px)}
.apb-rx-leadform-inline-head h2{margin:0;font-size:clamp(19px,2.2vw,24px)}
.apb-rx-leadform-inline-head .apb-rx-lead{margin:4px 0 0}
.apb-rx-form--inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.apb-rx-form--inline label{flex:1 1 150px;min-width:0}
.apb-rx-form--inline .apb-rx-btn{flex:0 0 auto;align-self:stretch;justify-self:auto}
/* lead_form split_benefits: value bullets beside the form */
.apb-rx-leadform-benefits{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-leadform-benefits li{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-leadform-benefits svg{flex:0 0 auto;width:18px;height:18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:640px){.apb-rx-leadform--inline .apb-rx-leadform-inline{flex-direction:column;align-items:stretch}.apb-rx-form--inline{flex-direction:column;align-items:stretch}}

/* ---- contact split_media: form beside an image ---- */
.apb-rx-contact--media .apb-rx-contact-mediagrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px);align-items:center}
.apb-rx-contact--media .apb-rx-contact-head{margin-bottom:20px}
.apb-rx-contact--media .apb-rx-contact-head h2{margin:0}
.apb-rx-contact-pic{aspect-ratio:4/5;border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-contact-pic img{width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.apb-rx-contact--media .apb-rx-contact-mediagrid{grid-template-columns:1fr}.apb-rx-contact-pic{order:-1;aspect-ratio:16/10}}
/* ---- lead_form waitlist: centered signup with social proof ---- */
.apb-rx-leadform--waitlist .apb-rx-waitlist{max-width:540px;margin-inline:auto;text-align:center}
.apb-rx-waitlist-head{margin-bottom:24px}
.apb-rx-waitlist-head h2{margin:0;font-size:clamp(28px,4vw,44px);letter-spacing:-.02em}
.apb-rx-waitlist-head .apb-rx-lead{margin:12px auto 0;max-width:44ch}
.apb-rx-leadform--waitlist .apb-rx-form{max-width:440px;margin-inline:auto;text-align:left}
.apb-rx-waitlist-proof{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:22px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-waitlist-avatars{display:flex}
.apb-rx-waitlist-avatars img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--apb-rx-surface,#fff);margin-left:-10px}
.apb-rx-waitlist-avatars img:first-child{margin-left:0}
/* ---- lead_form proof: form beside a trust panel ---- */
.apb-rx-leadform--proof .apb-rx-lfproof{align-self:center}
.apb-rx-lfproof-q{margin:20px 0 0;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(18px,2.2vw,23px);font-weight:600;line-height:1.4;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-lfproof-q cite{display:block;margin-top:12px;font-style:normal;font-size:14px;font-weight:500;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-lfproof-rating{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-lfproof-stars{color:#f5a623;letter-spacing:1px}
.apb-rx-lfproof-logos{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:22px;opacity:.7}
.apb-rx-lfproof-logos img{height:24px;width:auto;object-fit:contain;filter:grayscale(1)}

/* ---- lead_form conversion combos: slider / testimonials / stats / steps ---- */
.apb-rx-leadform--slider,.apb-rx-leadform--tms,.apb-rx-leadform--stats,.apb-rx-leadform--steps{align-items:center}
.apb-rx-lf-head{margin-bottom:20px}
.apb-rx-lf-head h2{margin:0}
.apb-rx-lf-aside{align-self:center}
/* split_slider: auto-crossfading image slider */
.apb-rx-lfslider{position:relative;aspect-ratio:4/3;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-lfslider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.apb-rx-lfslider--n1 img{opacity:1}
.apb-rx-lfslider--n2 img{animation:apb-cf2 8s infinite}
.apb-rx-lfslider--n3 img{animation:apb-cf3 12s infinite}
.apb-rx-lfslider--n4 img{animation:apb-cf4 16s infinite}
.apb-rx-lfslider--n5 img{animation:apb-cf5 20s infinite}
@keyframes apb-cf2{0%{opacity:0}3%,50%{opacity:1}53%,100%{opacity:0}}
@keyframes apb-cf3{0%{opacity:0}3%,33%{opacity:1}36%,100%{opacity:0}}
@keyframes apb-cf4{0%{opacity:0}3%,25%{opacity:1}28%,100%{opacity:0}}
@keyframes apb-cf5{0%{opacity:0}3%,20%{opacity:1}23%,100%{opacity:0}}
/* split_testimonials: stacked mini quotes */
.apb-rx-lftms{display:flex;flex-direction:column;gap:14px;margin-top:20px}
.apb-rx-lftm{margin:0;padding:18px 20px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff)}
.apb-rx-lftm p{margin:0 0 12px;font-size:15px;line-height:1.5;color:var(--apb-rx-ink)}
.apb-rx-lftm figcaption{display:flex;align-items:center;gap:10px;font-size:13px}
.apb-rx-lftm figcaption img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.apb-rx-lftm figcaption b{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-lftm figcaption em{display:block;font-style:normal;color:var(--apb-rx-muted,#6b7280)}
/* split_stats: metric column */
.apb-rx-lfstats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.apb-rx-lfstat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(28px,3.4vw,38px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-lfstat span{display:block;margin-top:6px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
/* split_steps: what-happens-next */
.apb-rx-lfsteps{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}
.apb-rx-lfsteps li{display:flex;gap:14px;align-items:flex-start}
.apb-rx-lfstep-n{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;background:var(--apb-rx-brand);color:#fff}
.apb-rx-lfsteps b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-lfsteps li span:not(.apb-rx-lfstep-n){display:block;margin-top:2px;font-size:14px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
@media(prefers-reduced-motion:reduce){.apb-rx-lfslider img{animation:none}.apb-rx-lfslider img:first-child{opacity:1}}
@media(max-width:760px){.apb-rx-leadform--slider .apb-rx-lfslider{order:-1;aspect-ratio:16/10}}
/* ==== assets/pages/component-footer.css ==== */
/*
 * component-footer.css — extended footer variants (cta_lead / minimal / bento / dark / sitemap /
 * contact / search / marquee / aurora) for the `footer` recipe. Rendered by trait-apb-component-render-footer.php.
 * apb-rx-* namespace, tokens only (no literals for brand values), no !important. Density-aware where sensible.
 */
.apb-rx-ft{font-family:var(--apb-rx-font,inherit);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ft *{box-sizing:border-box}
.apb-rx-ft .apb-rx-ft-brand{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12);display:inline-flex;align-items:center;gap:10px}
.apb-rx-ft-logo{width:32px;height:32px;border-radius:calc(var(--apb-rx-radius,16px) * .6);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));display:inline-flex;align-items:center;justify-content:center;color:#fff}
.apb-rx-ft-logo svg{width:18px;height:18px}
.apb-rx-ft-btns{display:flex;gap:12px;flex-wrap:wrap}
.apb-rx-ft-btn{display:inline-flex;align-items:center;gap:8px;background:var(--apb-rx-brand);color:#fff;text-decoration:none;font-weight:700;font-size:15px;padding:13px 22px;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-ft-btn svg{width:17px;height:17px}
.apb-rx-ft-btn--ghost{background:transparent;color:inherit;border:1px solid var(--apb-rx-line)}
.apb-rx-ft-btn--light{background:#fff;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ftcol h4{margin:0 0 12px;font-size:12px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ftcol a{display:block;padding:5px 0;font-size:14px;text-decoration:none;color:var(--apb-rx-dim,#64748b);transition:color .2s}
.apb-rx-ftcol a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ft-bottom{max-width:1120px;margin:34px auto 0;padding:18px 24px 0;border-top:1px solid var(--apb-rx-line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-ft-legal-links{display:flex;gap:18px}.apb-rx-ft-legal-links a{color:inherit;text-decoration:none}
.apb-rx-ft-bottom-right{display:flex;align-items:center;gap:18px 22px;flex-wrap:wrap}

/* 1. CTA LEAD */
.apb-rx-footer--cta{background:var(--apb-rx-surface,#fff);padding:0 24px 30px}
.apb-rx-footer--cta .apb-rx-ft-band{max-width:1120px;margin:0 auto;background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));color:#fff;border-radius:calc(var(--apb-rx-radius,16px) * 1.5);padding:calc(clamp(36px,5vw,60px) * var(--apb-rx-density-safe,1));text-align:center;box-shadow:0 30px 70px -30px var(--apb-rx-glow,rgba(79,70,229,.5))}
.apb-rx-footer--cta .apb-rx-ft-band h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,4vw,44px);font-weight:800;letter-spacing:-.02em;margin:0}
.apb-rx-footer--cta .apb-rx-ft-band p{max-width:46ch;margin:14px auto 0;font-size:clamp(15px,1.8vw,18px);opacity:.9}
.apb-rx-footer--cta .apb-rx-ft-btns{justify-content:center;margin-top:24px}
.apb-rx-footer--cta .apb-rx-ft-btn{background:#fff;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-footer--cta .apb-rx-ft-btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.apb-rx-ft-row{max-width:1120px;margin:32px auto 0;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.apb-rx-ft-row nav{display:flex;gap:24px;flex-wrap:wrap}
.apb-rx-ft-row nav a{text-decoration:none;color:var(--apb-rx-dim,#64748b);font-size:15px;font-weight:500}

/* 2. MINIMAL */
.apb-rx-footer--minimal{background:var(--apb-rx-surface,#fff);padding:calc(clamp(48px,7vw,84px) * var(--apb-rx-density-safe,1)) 24px;text-align:center}
.apb-rx-ft-wordmark-sm{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12);display:inline-flex;align-items:center;gap:10px}
.apb-rx-ft-wordmark-sm .apb-rx-ft-logo{width:32px;height:32px}
.apb-rx-ft-blurb{margin:14px auto 0;max-width:40ch;color:var(--apb-rx-dim,#64748b);font-size:15px}
.apb-rx-ft-mini-nav{display:flex;gap:8px 26px;justify-content:center;flex-wrap:wrap;margin:24px 0;font-size:15px;font-weight:500}
.apb-rx-ft-mini-nav a{text-decoration:none;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-footer--minimal .apb-rx-social,.apb-rx-footer--aurora .apb-rx-social{justify-content:center}
.apb-rx-ft-mini-legal{margin-top:28px;font-size:13px;color:var(--apb-rx-dim,#64748b)}

/* 3. BENTO */
.apb-rx-footer--bento{background:var(--apb-rx-surface-2,#fbfbfd);padding:calc(clamp(40px,6vw,72px) * var(--apb-rx-density-safe,1)) 24px}
.apb-rx-ft-bento{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(var(--apb-rx-cols,4),1fr);gap:var(--apb-rx-feat-gap,14px)}
.apb-rx-ft-tile,.apb-rx-ft-bento-news{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius,16px) * 1.2);padding:20px}
.apb-rx-ft-bento .apb-rx-ftcol{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius,16px) * 1.2);padding:20px}
.apb-rx-ft-tile--wide{grid-column:span 2}
.apb-rx-ft-bento-news{grid-column:span 2;min-width:0;background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));color:#fff;border:0;display:flex;flex-direction:column;justify-content:space-between;min-height:170px}
.apb-rx-ft-bento-news strong{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:22px}
.apb-rx-ft-bento-news p{margin:6px 0 0;font-size:14px;opacity:.9}
.apb-rx-ft-news{display:flex;min-width:0;max-width:100%;gap:8px;background:rgba(255,255,255,.16);border-radius:var(--apb-rx-radius,16px);padding:6px}
.apb-rx-ft-news input{flex:1;min-width:0;border:0;background:transparent;color:#fff;padding:9px 12px;font:inherit;font-size:14px;outline:none}
.apb-rx-ft-news input::placeholder{color:rgba(255,255,255,.7)}
.apb-rx-ft-news button{border:0;background:#fff;color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-radius:calc(var(--apb-rx-radius,16px) * .7);min-width:40px;padding-inline:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}
.apb-rx-ft-news button:disabled,.apb-rx-fx-form button:disabled{cursor:not-allowed;opacity:.55}
.apb-rx-ft-tile--brand{display:flex;flex-direction:column;justify-content:space-between}
.apb-rx-ft-tile--brand p{margin:0;font-size:13px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-ft-status{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600}
.apb-rx-ft-dot{width:10px;height:10px;border-radius:50%;background:var(--apb-rx-accent-text,var(--apb-rx-brand));box-shadow:0 0 0 4px var(--apb-rx-soft)}
.apb-rx-ft-bento-legal{grid-column:span 4;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:6px;font-size:13px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-ft-bento-legal .apb-rx-ft-legal-links a{color:inherit;text-decoration:none}

/* 4. DARK */
.apb-rx-footer--dark{background:var(--apb-rx-ink,#0b0d12);color:#fff;padding:calc(clamp(48px,6vw,76px) * var(--apb-rx-density-safe,1)) 24px 30px}
.apb-rx-footer--dark .apb-rx-ft-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.6fr repeat(var(--apb-rx-cols,3),1fr);gap:var(--apb-rx-feat-gap,40px)}
.apb-rx-footer--dark .apb-rx-ft-brand{color:#fff}
.apb-rx-footer--dark .apb-rx-ft-logo{box-shadow:0 0 28px var(--apb-rx-glow,rgba(124,58,237,.6))}
.apb-rx-ft-brandcol p{margin:16px 0 0;max-width:34ch;color:rgba(255,255,255,.6);font-size:14px}
.apb-rx-footer--dark .apb-rx-ft-brandcol .apb-rx-ft-btns{margin-top:20px}
.apb-rx-footer--dark .apb-rx-ftcol h4{color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;font-size:11px}
.apb-rx-footer--dark .apb-rx-ftcol a{color:rgba(255,255,255,.8)}
.apb-rx-footer--dark .apb-rx-ftcol a:hover{color:#fff}
.apb-rx-footer--dark .apb-rx-ft-bottom{border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.5)}

/* 5. SITEMAP */
.apb-rx-footer--sitemap{background:var(--apb-rx-surface-2,#fbfbfd);border-top:1px solid var(--apb-rx-line);padding:calc(clamp(44px,6vw,72px) * var(--apb-rx-density-safe,1)) 24px 26px}
.apb-rx-ft-sitegrid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.4fr repeat(var(--apb-rx-cols,auto-fit),minmax(120px,1fr));gap:var(--apb-rx-feat-gap,32px) 24px}
.apb-rx-ft-sitegrid .apb-rx-ft-brandcol p{margin:12px 0 0;max-width:26ch;font-size:13px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-footer--sitemap .apb-rx-ftcol a{font-size:13px}

/* 6. CONTACT */
.apb-rx-footer--contact{background:var(--apb-rx-surface,#fff);border-top:1px solid var(--apb-rx-line);padding:calc(clamp(44px,6vw,72px) * var(--apb-rx-density-safe,1)) 24px 28px}
.apb-rx-ft-cgrid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.3fr repeat(var(--apb-rx-cols,2),1fr);gap:var(--apb-rx-feat-gap,40px);align-items:start}
.apb-rx-ft-clines{margin-top:18px;display:flex;flex-direction:column;gap:14px;font-size:14px}
.apb-rx-ft-cline{display:flex;gap:11px}
.apb-rx-ft-cline>span:first-child{color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-top:1px}
.apb-rx-ft-cline svg{width:18px;height:18px}
.apb-rx-ft-cexplore .apb-rx-ftcol a{font-size:14px}
.apb-rx-ft-map{position:relative;border-radius:calc(var(--apb-rx-radius,16px) * 1.1);overflow:hidden;aspect-ratio:16/10;border:1px solid var(--apb-rx-line);background:var(--apb-rx-soft)}
.apb-rx-ft-map img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-ft-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:var(--apb-rx-brand);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 8px 20px -6px var(--apb-rx-glow,rgba(79,70,229,.5))}
.apb-rx-ft-pin svg{width:18px;height:18px}
.apb-rx-ft-dir{margin-top:12px;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;text-decoration:none;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ft-dir svg{width:16px;height:16px}

/* 7. SEARCH */
.apb-rx-footer--search{background:var(--apb-rx-surface-2,#fbfbfd);border-top:1px solid var(--apb-rx-line);padding:calc(clamp(44px,6vw,72px) * var(--apb-rx-density-safe,1)) 24px 28px}
.apb-rx-ft-searchtop{max-width:760px;margin:0 auto;text-align:center}
.apb-rx-ft-searchtop h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(22px,3vw,32px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ft-search{display:flex;align-items:center;gap:12px;max-width:560px;margin:22px auto 0;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:999px;padding:6px 6px 6px 20px;box-shadow:0 14px 34px -18px var(--apb-rx-glow,rgba(79,70,229,.4))}
.apb-rx-ft-search svg{width:19px;height:19px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-ft-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:16px;outline:none;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ft-search button{border:0;background:var(--apb-rx-brand);color:#fff;font:inherit;font-weight:700;font-size:15px;padding:12px 22px;border-radius:999px;cursor:pointer}
.apb-rx-ft-pills{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:18px;font-size:13px;color:var(--apb-rx-dim,#64748b)}
.apb-rx-ft-pills>span{align-self:center}
.apb-rx-ft-pill{text-decoration:none;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft);padding:6px 13px;border-radius:999px}
.apb-rx-footer--search .apb-rx-ft-row{margin-top:38px;padding-top:20px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-ft-c{font-size:13px;color:var(--apb-rx-dim,#64748b);display:inline-flex;align-items:center;gap:10px}

/* 8. MARQUEE */
.apb-rx-footer--marquee{background:var(--apb-rx-surface,#fff);border-top:1px solid var(--apb-rx-line);overflow:hidden}
.apb-rx-ft-mq{overflow:hidden}
.apb-rx-ft-mqtrack{display:flex;gap:.4em;width:max-content;white-space:nowrap;padding:clamp(20px,3vw,36px) 0;align-items:center;animation:apb-rx-ftmq calc(22s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-ft-mqtrack span{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(44px,8vw,96px);letter-spacing:-.03em;line-height:1;background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)),var(--apb-rx-brand));-webkit-background-clip:text;background-clip:text;color:transparent}
.apb-rx-ft-mqtrack em{font-style:normal;color:var(--apb-rx-line);font-size:clamp(44px,8vw,96px);font-weight:800}
@keyframes apb-rx-ftmq{to{transform:translateX(-50%)}}
.apb-rx-ft-row--top{border-top:1px solid var(--apb-rx-line);padding:8px 24px clamp(24px,3vw,32px)}

/* 9. AURORA */
.apb-rx-footer--aurora{position:relative;overflow:hidden;background:var(--apb-rx-ink,#0b0d12);color:#fff;padding:calc(clamp(56px,8vw,110px) * var(--apb-rx-density-safe,1)) 24px 30px}
.apb-rx-ft-mesh{position:absolute;inset:-30% -10%;z-index:0;filter:blur(60px);opacity:.65;background:radial-gradient(40% 50% at 20% 30%,var(--apb-rx-brand) 0%,transparent 60%),radial-gradient(38% 46% at 78% 26%,var(--apb-rx-brand2,var(--apb-rx-brand)) 0%,transparent 60%),radial-gradient(46% 54% at 55% 78%,var(--apb-rx-brand3,var(--apb-rx-brand)) 0%,transparent 62%);background-size:200% 200%;animation:apb-rx-ftau calc(18s / var(--apb-rx-dur,1)) ease-in-out infinite alternate}
@keyframes apb-rx-ftau{0%{background-position:0 0}100%{background-position:100% 100%}}
.apb-rx-ft-aurora-in{position:relative;z-index:1;max-width:820px;margin:0 auto;text-align:center}
.apb-rx-ft-aurora-wm{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(44px,9vw,104px);letter-spacing:-.04em;line-height:.95}
.apb-rx-ft-aurora-in p{margin:16px auto 0;max-width:44ch;color:rgba(255,255,255,.72);font-size:clamp(15px,1.8vw,18px)}
.apb-rx-ft-aurora-in .apb-rx-ft-btn{margin-top:24px}
.apb-rx-footer--aurora .apb-rx-ft-mini-nav a{color:rgba(255,255,255,.82)}
.apb-rx-ft-aurora-legal{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:13px;color:rgba(255,255,255,.55)}

/* responsive */
@media(max-width:860px){
  .apb-rx-ft-bento,.apb-rx-footer--dark .apb-rx-ft-grid{grid-template-columns:1fr 1fr}
  .apb-rx-ft-bento-news,.apb-rx-ft-bento-legal{grid-column:span 2}
  .apb-rx-ft-cgrid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .apb-rx-ft-bento,.apb-rx-footer--dark .apb-rx-ft-grid{grid-template-columns:1fr}
  .apb-rx-ft-bento-news,.apb-rx-ft-bento-legal{grid-column:span 1}
  .apb-rx-ft-bottom-right{flex-direction:column;align-items:flex-start}
}
@media(max-width:360px){.apb-rx-ft-news{flex-direction:column}.apb-rx-ft-news button{width:100%;min-height:40px}}
@media(max-width:360px){.apb-rx-ftfx .apb-rx-fx-news{min-width:0}.apb-rx-ftfx .apb-rx-fx-form{flex-direction:column;border-radius:var(--apb-rx-radius,16px);padding:8px}.apb-rx-ftfx .apb-rx-fx-form button{width:100%;height:auto;min-height:40px;white-space:normal;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.apb-rx-ft-mqtrack,.apb-rx-ft-mesh{animation:none}}

/* ======================================================================
   footer expand — floats as an inset rounded card, grows to full-bleed as it
   enters view. Growth driven by the data-apb-grow scanner setting --e (0=float,
   1=settled). Fail-open: no [data-apb-grow-ready] / no --e resolves to full-bleed.
   ====================================================================== */
.apb-rx-footer--expand{background:var(--apb-rx-soft,#f4f5f7);overflow:clip;padding:0}
.apb-rx-ftfx.apb-rx-fx-card,.apb-rx-ftfx .apb-rx-fx-card{width:100%;max-width:none;margin:0 auto;border-radius:0;overflow:hidden;
  background:var(--apb-rx-ink,#0b0d12);color:#fff}
.apb-rx-footer--expand[data-apb-grow-ready] .apb-rx-fx-card{
  width:calc(68% + 32% * var(--e,1));
  max-width:calc(1180px + (100vw - 1180px) * var(--e,1));
  border-radius:calc(30px * (1 - var(--e,1)));
  margin-bottom:calc(clamp(44px,10vh,120px) * (1 - var(--e,1)));
  box-shadow:0 calc(40px * (1 - var(--e,1))) calc(90px * (1 - var(--e,1))) -28px rgba(11,13,18,.45)}
.apb-rx-ftfx .apb-rx-fx-inner{max-width:1160px;margin:0 auto;padding:clamp(40px,5vw,72px) clamp(24px,5vw,56px) clamp(22px,3vw,32px)}
.apb-rx-ftfx .apb-rx-fx-top{display:flex;flex-wrap:wrap;gap:clamp(28px,4vw,56px)}
.apb-rx-ftfx .apb-rx-fx-brand{flex:1 1 280px;min-width:240px}
.apb-rx-ftfx .apb-rx-fx-logo{display:inline-flex;align-items:center;gap:10px;font-size:19px;font-weight:800;letter-spacing:-.01em}
.apb-rx-ftfx .apb-rx-ft-logo{display:inline-flex;width:26px;height:26px;border-radius:8px;align-items:center;justify-content:center;background:#fff;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ftfx .apb-rx-fx-brand p{margin:16px 0 0;color:rgba(255,255,255,.62);font-size:14.5px;line-height:1.6;max-width:34ch}
.apb-rx-ftfx .apb-rx-social{display:flex;gap:10px;margin-top:20px}
.apb-rx-ftfx .apb-rx-social a{display:inline-flex;width:36px;height:36px;border-radius:999px;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;transition:background .2s ease}
.apb-rx-ftfx .apb-rx-social a:hover{background:rgba(255,255,255,.16)}
.apb-rx-ftfx .apb-rx-social svg{width:16px;height:16px}
.apb-rx-ftfx .apb-rx-fx-col{flex:0 1 150px;min-width:130px}
.apb-rx-ftfx .apb-rx-fx-col h4{margin:0 0 14px;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.42)}
.apb-rx-ftfx .apb-rx-fx-col a{display:block;color:rgba(255,255,255,.8);text-decoration:none;font-size:14.5px;padding:6px 0;transition:color .18s ease}
.apb-rx-ftfx .apb-rx-fx-col a:hover{color:#fff}
.apb-rx-ftfx .apb-rx-fx-news{flex:1 1 260px;min-width:240px}
.apb-rx-ftfx .apb-rx-fx-news h4{margin:0 0 12px;font-size:15px;font-weight:700;color:#fff}
.apb-rx-ftfx .apb-rx-fx-form{box-sizing:border-box;display:flex;min-width:0;max-width:100%;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 5px 5px 16px}
.apb-rx-ftfx .apb-rx-fx-form input{box-sizing:border-box;flex:1;min-width:0;background:none;border:0;outline:none;color:#fff;font-size:14px}
.apb-rx-ftfx .apb-rx-fx-form input::placeholder{color:rgba(255,255,255,.45)}
.apb-rx-ftfx .apb-rx-fx-form button{flex:0 0 auto;height:38px;padding:0 18px;border:0;border-radius:999px;background:#fff;color:var(--apb-rx-ink,#0b0d12);font-weight:700;font-size:14px;cursor:pointer}
.apb-rx-ftfx .apb-rx-fx-bottom{margin-top:clamp(30px,4vw,48px);padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;justify-content:space-between}
.apb-rx-ftfx .apb-rx-fx-bottom small{color:rgba(255,255,255,.5);font-size:13px}
.apb-rx-ftfx .apb-rx-fx-legal{display:flex;flex-wrap:wrap;gap:18px}
.apb-rx-ftfx .apb-rx-fx-legal a{color:rgba(255,255,255,.5);text-decoration:none;font-size:13px;transition:color .18s ease}
.apb-rx-ftfx .apb-rx-fx-legal a:hover{color:#fff}
@media(prefers-reduced-motion:reduce){
  .apb-rx-footer--expand[data-apb-grow-ready] .apb-rx-fx-card{width:100%;max-width:none;border-radius:0;margin-bottom:0;box-shadow:none}
}
@media(max-width:480px){ .apb-rx-ftfx .apb-rx-fx-brand,.apb-rx-ftfx .apb-rx-fx-news{flex-basis:100%} }

/* ======================================================================
   footer dynamics family — six entrance variants sharing the .apb-rx-ftfx
   content shell. All driven by the data-apb-grow scanner's --e (0 = entering,
   1 = settled). Fail-open: --e defaults to 1, so no-JS/reduced-motion resolve
   to the settled state with zero transforms.
   ====================================================================== */
/* rise — the page lifts off a pinned footer; a shade fades as it is uncovered */
.apb-rx-ftrise-stage{position:relative;--apb-rx-ftrise-h:72vh;height:calc(var(--apb-rx-ftrise-h) + 50vh)}
.apb-rx-footer--rise{position:sticky;top:calc(100vh - var(--apb-rx-ftrise-h));height:var(--apb-rx-ftrise-h);overflow:hidden;display:flex;align-items:flex-end;padding:0}
.apb-rx-footer--rise .apb-rx-fx-inner{width:100%}
.apb-rx-ftrise-shade{position:absolute;inset:0;pointer-events:none;background:rgba(0,0,0,.5);opacity:calc(1 - var(--e,1))}
/* drawer — slides up from below the fold, top corners rounding off as it seats */
.apb-rx-footer--drawer{background:var(--apb-rx-soft,#f4f5f7);overflow:clip;padding:0}
.apb-rx-footer--drawer .apb-rx-fx-card{transform:translateY(calc((1 - var(--e,1)) * 46%));
  border-radius:calc(var(--apb-rx-radius,16px) * 1.4 * (1 - var(--e,1))) calc(var(--apb-rx-radius,16px) * 1.4 * (1 - var(--e,1))) 0 0;will-change:transform}
/* iris — revealed through an expanding rounded clip window */
.apb-rx-footer--iris{background:var(--apb-rx-soft,#f4f5f7);overflow:clip;padding:0}
.apb-rx-footer--iris .apb-rx-fx-card{clip-path:inset(calc((1 - var(--e,1)) * 12%) calc((1 - var(--e,1)) * 16%) 0 calc((1 - var(--e,1)) * 16%) round calc((1 - var(--e,1)) * 40px))}
/* fold — tips up from a 3D fold, flattening as it docks */
.apb-rx-footer--fold{background:var(--apb-rx-soft,#f4f5f7);overflow:clip;padding:0;perspective:1100px}
.apb-rx-footer--fold .apb-rx-fx-card{transform-origin:50% 0;will-change:transform;
  transform:rotateX(calc((1 - var(--e,1)) * -14deg)) translateY(calc((1 - var(--e,1)) * 10%))}
/* cascade — the band is set; brand / columns / legal stagger up into it */
.apb-rx-footer--cascade{padding:0}
.apb-rx-footer--cascade [data-cas]{--p:clamp(0,calc((var(--e,1) - var(--i,0) * .1) / .5),1);
  opacity:var(--p);transform:translateY(calc((1 - var(--p)) * 26px))}
/* split — brand slides in from the left, links from the right */
.apb-rx-footer--split{background:var(--apb-rx-soft,#f4f5f7);overflow:clip;padding:0}
.apb-rx-fxhalf{will-change:transform}
.apb-rx-fxhalf--l{flex:1 1 44%}
.apb-rx-fxhalf--r{flex:1 1 44%;display:flex;flex-wrap:wrap;gap:clamp(26px,4vw,52px);justify-content:flex-end}
.apb-rx-footer--split .apb-rx-fxhalf--l{transform:translateX(calc((1 - var(--e,1)) * -46%))}
.apb-rx-footer--split .apb-rx-fxhalf--r{transform:translateX(calc((1 - var(--e,1)) * 46%))}
@media(max-width:700px){ .apb-rx-fxhalf--r{justify-content:flex-start} }
/* ==== assets/pages/component-industry.css ==== */
/*
 * recipe-industry.css — styles for the industry-diversification recipes (listing/menu/schedule/code/
 * calculator/tour). Companion to layouts.css + recipe-variants.css (shared --apb-rx-* tokens loaded
 * first) + recipe-sections.css. Token-with-fallback, apb-rx-* namespace, no !important.
 */

/* ===================== listing_grid ===================== */
.apb-rx-listing{display:grid;gap:22px;grid-template-columns:repeat(var(--apb-rx-cols,4),minmax(0,1fr))}
.apb-rx-listing-card{background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;
  box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.05));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-listing-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06),0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-listing-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-gray-100,#f1f3f5)}
.apb-rx-listing-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease,ease)}
.apb-rx-listing-card:hover .apb-rx-listing-media img{transform:scale(1.05)}
.apb-rx-listing-media--ph{background:var(--color-gray-100,#f1f3f5)}
.apb-rx-listing-tag{position:absolute;top:10px;left:10px;background:rgba(11,13,18,.72);color:#fff;font-size:11px;font-weight:600;padding:4px 9px;border-radius:var(--apb-rx-radius-pill,999px);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.apb-rx-collection-tag{display:inline-flex;align-items:center;margin-top:10px;background:var(--apb-rx-brand,#4f46e5);color:#fff;font-size:11px;font-weight:650;padding:4px 9px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-collection-empty{padding:28px;border:1px dashed var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);color:var(--apb-rx-muted,#5a6472);text-align:center}.apb-rx-collection-empty h3{margin:0;color:var(--apb-rx-ink,#0b0d12);font-size:18px}.apb-rx-collection-empty p{margin:8px 0 0;font-size:14px}
.apb-rx-listing-body{padding:16px}
.apb-rx-listing-body h3{margin:0 0 8px;font-size:16px;font-weight:650;letter-spacing:-.01em}
.apb-rx-listing-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.apb-rx-listing-price{font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-listing-meta{font-size:13px;color:var(--apb-rx-muted,#5a6472)}
.apb-rx-listing--compact .apb-rx-listing-media{aspect-ratio:16/10}
.apb-rx-listing--compact .apb-rx-listing-body{padding:13px}
@media(max-width:860px){.apb-rx-listing{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.apb-rx-listing{grid-template-columns:1fr}}

/* ===================== menu_grid ===================== */
.apb-rx-menu{max-width:760px;margin-inline:auto;display:grid;gap:34px}
.apb-rx-menu--cards{max-width:980px;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 44px}
.apb-rx-menu-cat{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-menu-item{margin-bottom:16px}
.apb-rx-menu-item:last-child{margin-bottom:0}
.apb-rx-menu-row{display:flex;align-items:baseline;gap:8px}
.apb-rx-menu-name{font-weight:650;font-size:16px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12);display:inline-flex;align-items:center;gap:8px}
.apb-rx-menu-lead{flex:1;border-bottom:1px dotted var(--apb-rx-line,#cfd3da);transform:translateY(-4px)}
.apb-rx-menu-price{font-weight:700;color:var(--apb-rx-ink,#0b0d12);white-space:nowrap}
.apb-rx-menu-desc{margin:3px 0 0;color:var(--apb-rx-muted,#5a6472);font-size:14px;line-height:1.5;max-width:54ch}
.apb-rx-menu-tag{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));background:var(--color-gray-100,#f1f3f5);padding:2px 7px;border-radius:var(--apb-rx-radius-pill,999px)}
@media(max-width:760px){.apb-rx-menu--cards{grid-template-columns:1fr}}

/* ===================== schedule ===================== */
.apb-rx-sched{max-width:820px;margin-inline:auto;display:grid;gap:30px}
.apb-rx-sched--grid{max-width:1100px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;align-items:start}
.apb-rx-sched-day{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-sched-row{display:flex;gap:18px;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--color-gray-100,#eef0f4)}
.apb-rx-sched-row:last-child{border-bottom:0}
.apb-rx-sched-time{flex:none;width:96px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));font-size:14px}
.apb-rx-sched-body{display:flex;flex-direction:column;gap:2px}
.apb-rx-sched-title{font-weight:650;font-size:15.5px;color:var(--apb-rx-ink,#0b0d12);display:inline-flex;align-items:center;gap:8px}
.apb-rx-sched-meta{font-size:13px;color:var(--apb-rx-muted,#5a6472)}
.apb-rx-sched-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));background:var(--color-gray-100,#f1f3f5);padding:2px 7px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-sched--grid .apb-rx-sched-group{background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,14px);padding:18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.05))}
.apb-rx-sched--grid .apb-rx-sched-row{flex-direction:column;gap:2px;align-items:flex-start}
.apb-rx-sched--grid .apb-rx-sched-time{width:auto}
@media(max-width:560px){.apb-rx-sched-row{flex-direction:column;gap:2px}.apb-rx-sched-time{width:auto}}

/* ===================== feature_code ===================== */
.apb-rx-code{display:grid;gap:44px;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-code-row{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.apb-rx-code-row>*{min-width:0}
.apb-rx-code-row:nth-child(even) .apb-rx-code-copy{order:2}
.apb-rx-code--stacked .apb-rx-code-row{grid-template-columns:1fr;gap:18px}
.apb-rx-code-copy h3{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px}
.apb-rx-code-card{background:#0b1020;border:1px solid #1e2440;border-radius:var(--apb-rx-radius,14px);overflow:hidden;box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.4))}
.apb-rx-code-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#11162b;border-bottom:1px solid #1e2440}
.apb-rx-code-bar>span:not(.apb-rx-code-lang){width:11px;height:11px;border-radius:50%;background:#39405e}
.apb-rx-code-bar>span:nth-child(1){background:#ff5f56}.apb-rx-code-bar>span:nth-child(2){background:#ffbd2e}.apb-rx-code-bar>span:nth-child(3){background:#27c93f}
.apb-rx-code-lang{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#7782b0}
.apb-rx-code-pre{margin:0;padding:18px;overflow:auto;font:13.5px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#c8d3f5}
.apb-rx-code-pre code{white-space:pre}
@media(max-width:860px){.apb-rx-code-row,.apb-rx-code-row:nth-child(even) .apb-rx-code-copy{grid-template-columns:1fr;order:0}}

/* ===================== tour_dates ===================== */
.apb-rx-tour{max-width:820px;margin-inline:auto;display:grid;gap:2px}
.apb-rx-tour--cards{gap:14px}
.apb-rx-tour-row{display:flex;align-items:center;gap:20px;padding:18px 4px;border-bottom:1px solid var(--color-gray-100,#eef0f4)}
.apb-rx-tour-row:last-child{border-bottom:0}
.apb-rx-tour--cards .apb-rx-tour-row{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,14px);padding:18px 20px;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.05));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease,ease)}
.apb-rx-tour--cards .apb-rx-tour-row:hover{transform:translateY(-2px);box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-tour-date{flex:none;width:120px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));font-size:15px}
.apb-rx-tour-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.apb-rx-tour-venue{font-weight:650;font-size:16px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-tour-city{font-size:13px;color:var(--apb-rx-muted,#5a6472)}
.apb-rx-tour-action{flex:none}
.apb-rx-tour-status{font-size:13px;font-weight:600;color:var(--apb-rx-muted,#9aa1ad);text-transform:uppercase;letter-spacing:.04em}
.apb-rx-tour-action .apb-rx-btn{padding:9px 18px;font-size:14px}
@media(max-width:600px){.apb-rx-tour-row{flex-wrap:wrap;gap:8px}.apb-rx-tour-date{width:100%}}

/* ===================== calculator ===================== */
.apb-rx-calc-sub{text-align:center;margin-inline:auto;max-width:560px}
.apb-rx-calc{display:grid;grid-template-columns:1.05fr .95fr;max-width:880px;margin:0 auto;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * 1.4);overflow:hidden;box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-calc-inputs{padding:28px;display:grid;gap:16px;background:var(--apb-rx-surface,#fff);align-content:center}
.apb-rx-calc-field{display:grid;gap:6px}
.apb-rx-calc-field span{font-size:13px;font-weight:600;color:var(--apb-rx-muted,#5a6472)}
.apb-rx-calc-field input{padding:12px 14px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius,16px) * .68);font:inherit;font-size:16px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);transition:border-color .2s,box-shadow .2s}
.apb-rx-calc-field input:focus{outline:none;border-color:var(--apb-rx-brand,#4f46e5);box-shadow:0 0 0 3px var(--apb-rx-ring)}
.apb-rx-calc-result{padding:30px 28px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;color:#fff;background:linear-gradient(135deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,#7c3aed))}
.apb-rx-calc-result-label{font-size:13px;font-weight:600;opacity:.85}
.apb-rx-calc-amount{font-size:clamp(34px,5vw,46px);font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.05}
.apb-rx-calc-note{font-size:12px;opacity:.82;margin:4px 0 0}
.apb-rx-calc-result .apb-rx-btn{margin-top:14px;background:#fff;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
@media(max-width:680px){.apb-rx-calc{grid-template-columns:1fr}}

/* ===================== before_after ===================== */
.apb-rx-ba{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:grid;gap:30px}
.apb-rx-ba-item{margin:0}
.apb-rx-ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px;border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-ba-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--color-gray-100,#f1f3f5)}
.apb-rx-ba-img img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-ba-tag{position:absolute;left:10px;bottom:10px;background:rgba(11,13,18,.72);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:var(--apb-rx-radius-pill,999px);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.apb-rx-ba-tag--after{background:var(--apb-rx-brand,#4f46e5)}
.apb-rx-ba-label{text-align:center;margin-top:12px;font-weight:600;color:var(--apb-rx-ink,#0b0d12)}
@media(max-width:560px){.apb-rx-ba-pair{grid-template-columns:1fr}}

/* ===================== gallery · masonry variant ===================== */
.apb-rx-gallery--masonry{display:block;column-count:3;column-gap:18px}
.apb-rx-gallery--masonry .apb-rx-gal-item{break-inside:avoid;margin:0 0 18px}
.apb-rx-gallery--masonry .apb-rx-gal-item .apb-rx-media{aspect-ratio:auto}
@media(max-width:860px){.apb-rx-gallery--masonry{column-count:2}}
@media(max-width:520px){.apb-rx-gallery--masonry{column-count:1}}
/* ==== assets/pages/component-blocks.css ==== */
/* =============================================================================
   component-blocks.css — commerce / trust / content block components.
   Brand-aware via the --apb-rx-* token seam; apb-rx- namespace; no !important.
   Status-only literals: rating gold (#f5a623), sale red (#dc2626). Everything
   else derives from brand + scheme so any brand re-skins cleanly.
   ============================================================================= */

.apb-rx-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}

/* ---------------- product_grid ---------------- */
.apb-rx-prods{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:900px){.apb-rx-prods{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.apb-rx-prods{grid-template-columns:1fr}}
.apb-rx-prod{display:flex;flex-direction:column;border-radius:var(--apb-rx-radius);overflow:hidden;background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-1);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow var(--apb-rx-t,.28s) ease}
.apb-rx-prod:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-prod-media{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--apb-rx-surface-2)}
.apb-rx-prod-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--apb-rx-ease,ease)}
.apb-rx-prod:hover .apb-rx-prod-media img{transform:scale(1.05)}
.apb-rx-prod-tag{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-ink);color:var(--apb-rx-surface)}
.apb-rx-prod-tag--sale{background:#dc2626;color:#fff}
.apb-rx-prod-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.apb-rx-prod-cat{font-size:12px;color:var(--apb-rx-muted)}
.apb-rx-prod-name{font-weight:700;font-size:14.5px;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-prod-stars{color:#f5a623;font-size:12px;letter-spacing:1.5px}
.apb-rx-prod-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px;gap:8px}
.apb-rx-prod-price{font-weight:800;font-size:17px;letter-spacing:-.02em;color:var(--apb-rx-ink)}
.apb-rx-prod-price s{font-weight:500;font-size:13px;color:var(--apb-rx-muted);margin-right:5px}
.apb-rx-prod-add{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 13px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-brand);color:#fff;font-weight:650;font-size:13px;border:0;cursor:pointer;text-decoration:none;transition:filter .2s ease}
.apb-rx-prod-add:hover{filter:brightness(1.08)}

/* ---------------- product_spotlight ---------------- */
.apb-rx-pspot{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
@media(max-width:820px){.apb-rx-pspot{grid-template-columns:1fr;gap:24px}}
.apb-rx-pspot-gallery{display:grid;gap:12px}
.apb-rx-pspot-main{aspect-ratio:4/3;border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface-2) center/cover no-repeat;border:1px solid var(--apb-rx-line);overflow:hidden}
.apb-rx-pspot-main img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pspot-thumbs{display:flex;gap:10px}
.apb-rx-pspot-thumbs span{width:64px;height:64px;border-radius:calc(var(--apb-rx-radius) * .6);background:var(--apb-rx-surface-2) center/cover no-repeat;border:1px solid var(--apb-rx-line);cursor:pointer;transition:border-color .2s ease}
.apb-rx-pspot-thumbs span:first-child{border-color:var(--apb-rx-brand);box-shadow:0 0 0 1px var(--apb-rx-brand)}
.apb-rx-pspot-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text)}
.apb-rx-pspot h2{font-size:32px;letter-spacing:-.02em;margin:8px 0 6px;color:var(--apb-rx-ink)}
.apb-rx-pspot-stars{color:#f5a623;font-size:14px;letter-spacing:2px;margin-bottom:12px}
.apb-rx-pspot-stars small{color:var(--apb-rx-muted);margin-left:6px;letter-spacing:0}
.apb-rx-pspot-lead{color:var(--apb-rx-ink);font-size:15px;line-height:1.6;margin:0 0 18px}
.apb-rx-pspot-price{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin-bottom:16px}
.apb-rx-pspot-price s{font-size:16px;font-weight:500;color:var(--apb-rx-muted);margin-right:8px}
.apb-rx-pspot-opts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.apb-rx-pspot-opts span{min-width:40px;height:36px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border-radius:calc(var(--apb-rx-radius) * .5);border:1px solid var(--apb-rx-line);font-size:13px;font-weight:600;cursor:pointer;color:var(--apb-rx-ink)}
.apb-rx-pspot-opts span.on{border-color:var(--apb-rx-brand);color:var(--apb-rx-accent-text);background:var(--apb-rx-soft)}
.apb-rx-pspot-cta{display:flex;gap:10px;flex-wrap:wrap}

/* ---------------- collection_showcase ---------------- */
.apb-rx-cols{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:200px;gap:14px}
@media(max-width:760px){.apb-rx-cols{grid-template-columns:1fr 1fr}}
.apb-rx-col-tile{position:relative;border-radius:var(--apb-rx-radius);overflow:hidden;background:var(--apb-rx-surface-2) center/cover no-repeat;display:flex;align-items:flex-end;color:#fff;text-decoration:none;cursor:pointer}
.apb-rx-col-tile:first-child{grid-row:span 2}
@media(max-width:760px){.apb-rx-col-tile:first-child{grid-row:span 1;grid-column:span 2}}
.apb-rx-col-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.62))}
.apb-rx-col-cap{position:relative;z-index:1;padding:16px 18px}
.apb-rx-col-cap strong{display:block;font-size:18px;letter-spacing:-.01em}
.apb-rx-col-cap span{font-size:12.5px;opacity:.85}
.apb-rx-col-tile:hover .apb-rx-col-cap strong{text-decoration:underline}
/* carousel variant: horizontal scroll-snap track (distinct from the mosaic tiles layout) */
.apb-rx-cols--carousel{display:flex;grid-template-columns:none;grid-auto-rows:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:thin}
.apb-rx-cols--carousel .apb-rx-col-tile{flex:0 0 clamp(240px,32%,320px);height:340px;scroll-snap-align:start}
.apb-rx-cols--carousel .apb-rx-col-tile:first-child{grid-row:auto;grid-column:auto}
.apb-rx-cols--carousel::-webkit-scrollbar{height:8px}
.apb-rx-cols--carousel::-webkit-scrollbar-thumb{background:var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px)}
@media(max-width:760px){.apb-rx-cols--carousel .apb-rx-col-tile{flex-basis:78%;height:280px}}

/* ---------------- order_summary ---------------- */
.apb-rx-order{max-width:440px;margin-inline:auto;border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-1);overflow:hidden}
.apb-rx-order-h{padding:16px 20px;font-weight:700;font-size:15px;border-bottom:1px solid var(--apb-rx-line);color:var(--apb-rx-ink)}
.apb-rx-order-line{display:flex;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-order-line img{width:48px;height:48px;border-radius:calc(var(--apb-rx-radius) * .6);object-fit:cover;background:var(--apb-rx-surface-2)}
.apb-rx-order-line .n{flex:1;font-size:13.5px;color:var(--apb-rx-ink)}
.apb-rx-order-line .n small{display:block;color:var(--apb-rx-muted);font-size:12px}
.apb-rx-order-line .p{font-weight:700;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-order-sub{padding:12px 20px;display:grid;gap:7px}
.apb-rx-order-sub div{display:flex;justify-content:space-between;font-size:13.5px;color:var(--apb-rx-ink)}
.apb-rx-order-sub .tot{font-weight:800;font-size:17px;color:var(--apb-rx-ink);padding-top:8px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-order-foot{padding:0 20px 20px}
.apb-rx-order-foot .apb-rx-btn{width:100%;justify-content:center}
.apb-rx-order-trust{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;font-size:12px;color:var(--apb-rx-muted)}
.apb-rx-order-trust svg{width:14px;height:14px}

/* ---------------- guarantee_band ---------------- */
.apb-rx-guar{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;padding:30px 34px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-ring)}
@media(max-width:720px){.apb-rx-guar{grid-template-columns:1fr;text-align:center}}
.apb-rx-guar-seal{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;flex:none;margin-inline:auto;background:var(--apb-rx-surface);border:2px solid var(--apb-rx-brand);color:var(--apb-rx-accent-text);font-weight:800;font-size:13px;text-align:center;line-height:1.15;box-shadow:var(--apb-rx-glow,none)}
.apb-rx-guar-seal b{font-size:26px;display:block}
.apb-rx-guar h3{margin:0 0 5px;font-size:20px;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-guar p{margin:0;color:var(--apb-rx-ink);font-size:14.5px;line-height:1.55;max-width:56ch}

/* ---------------- trust_badges ---------------- */
.apb-rx-tbadges{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.apb-rx-tbadge{display:flex;align-items:center;gap:11px;padding:13px 18px;border-radius:calc(var(--apb-rx-radius) * .75);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);min-width:190px}
.apb-rx-tbadge-ic{width:38px;height:38px;border-radius:calc(var(--apb-rx-radius) * .55);flex:none;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-tbadge-ic svg{width:20px;height:20px}
.apb-rx-tbadge strong{display:block;font-size:13.5px;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-tbadge span{font-size:12px;color:var(--apb-rx-muted)}

/* ---------------- press_strip ---------------- */
.apb-rx-press{text-align:center}
.apb-rx-press-lead{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted);margin-bottom:18px}
.apb-rx-press-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:34px}
.apb-rx-press-row span{font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--apb-rx-ink);opacity:.5;font-family:var(--apb-rx-font-display,Georgia,serif);transition:opacity .25s ease}
.apb-rx-press-row span:hover{opacity:.9}

/* ---------------- author_bio ---------------- */
.apb-rx-author{max-width:760px;margin-inline:auto;display:flex;gap:18px;align-items:center;padding:22px 24px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line)}
.apb-rx-author-av{width:66px;height:66px;border-radius:50%;flex:none;overflow:hidden;background:var(--apb-rx-surface-2)}
.apb-rx-author-av img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-author-name{font-weight:700;font-size:16px;color:var(--apb-rx-ink)}
.apb-rx-author-role{font-size:13px;color:var(--apb-rx-accent-text);margin-bottom:5px}
.apb-rx-author p{margin:0;font-size:13.5px;line-height:1.55;color:var(--apb-rx-ink)}
.apb-rx-author-links{display:flex;gap:12px;margin-top:8px}
.apb-rx-author-links a{font-size:12.5px;color:var(--apb-rx-muted);text-decoration:none}
.apb-rx-author-links a:hover{color:var(--apb-rx-accent-text)}

/* ---------------- related_posts ---------------- */
.apb-rx-related{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:720px){.apb-rx-related{grid-template-columns:1fr}}
.apb-rx-rel{border-radius:calc(var(--apb-rx-radius) * .85);overflow:hidden;background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);text-decoration:none;display:flex;flex-direction:column;transition:transform .25s ease,box-shadow .25s ease}
.apb-rx-rel:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-rel-media{aspect-ratio:16/9;background:var(--apb-rx-surface-2) center/cover no-repeat}
.apb-rx-rel-body{padding:14px 16px}
.apb-rx-rel-cat{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text)}
.apb-rx-rel-body h4{margin:6px 0 6px;font-size:15px;letter-spacing:-.01em;color:var(--apb-rx-ink);line-height:1.3}
.apb-rx-rel-meta{font-size:12px;color:var(--apb-rx-muted)}

/* ---------------- toc ---------------- */
.apb-rx-toc{max-width:280px;border-radius:calc(var(--apb-rx-radius) * .85);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);padding:16px 18px}
.apb-rx-toc-h{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted);margin-bottom:12px}
.apb-rx-toc a{display:block;padding:6px 0 6px 12px;font-size:13.5px;color:var(--apb-rx-ink);text-decoration:none;border-left:2px solid var(--apb-rx-line);transition:color .2s ease,border-color .2s ease}
.apb-rx-toc a:hover{color:var(--apb-rx-ink)}
.apb-rx-toc a.on{color:var(--apb-rx-accent-text);border-left-color:var(--apb-rx-brand);font-weight:650}
.apb-rx-toc a.sub{padding-left:24px;font-size:13px}

/* ---------------- share_subscribe ---------------- */
.apb-rx-share{max-width:760px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 22px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-ring)}
.apb-rx-share-l strong{display:block;font-size:15px;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-share-l span{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-share-form{display:flex;gap:8px}
.apb-rx-share-form input{height:40px;padding:0 13px;border-radius:calc(var(--apb-rx-radius) * .6);border:1px solid var(--apb-rx-line);background:var(--apb-rx-surface);font-size:14px;min-width:200px;outline:none;color:var(--apb-rx-ink)}
.apb-rx-share-form input:focus{border-color:var(--apb-rx-brand);box-shadow:0 0 0 3px var(--apb-rx-ring)}
.apb-rx-share-icons{display:flex;gap:8px}
.apb-rx-share-icons a{width:38px;height:38px;border-radius:calc(var(--apb-rx-radius) * .6);display:grid;place-items:center;background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);color:var(--apb-rx-ink);transition:.2s ease}
.apb-rx-share-icons a:hover{color:var(--apb-rx-accent-text);border-color:var(--apb-rx-brand)}
.apb-rx-share-icons svg{width:17px;height:17px}

/* ---------------- faq_accordion ---------------- */
.apb-rx-faqx{max-width:760px;margin-inline:auto}
.apb-rx-faqx-search{display:flex;align-items:center;gap:9px;height:44px;padding:0 14px;margin-bottom:18px;border-radius:calc(var(--apb-rx-radius) * .75);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line)}
.apb-rx-faqx-search svg{width:17px;height:17px;color:var(--apb-rx-muted);flex:none}
.apb-rx-faqx-search input{flex:1;border:0;outline:0;background:transparent;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-faqx details{border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * .75);background:var(--apb-rx-surface);margin-bottom:10px;overflow:hidden}
.apb-rx-faqx details[open]{border-color:var(--apb-rx-ring)}
.apb-rx-faqx summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:650;font-size:15px;color:var(--apb-rx-ink);display:flex;align-items:center;justify-content:space-between;gap:12px}
.apb-rx-faqx summary::-webkit-details-marker{display:none}
.apb-rx-faqx summary::after{content:"+";font-size:20px;font-weight:400;color:var(--apb-rx-accent-text);transition:transform .25s ease;flex:none}
.apb-rx-faqx details[open] summary::after{transform:rotate(45deg)}
.apb-rx-faqx-a{padding:0 18px 16px;font-size:14px;line-height:1.6;color:var(--apb-rx-ink)}

/* ---- share_subscribe card: boxed, centered newsletter block ---- */
.apb-rx-share--card .apb-rx-share-card{max-width:560px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:clamp(28px,4vw,44px);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-2,0 12px 30px -16px rgba(11,13,18,.16))}
.apb-rx-share-cardic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-share-cardic svg{width:26px;height:26px}
.apb-rx-share--card .apb-rx-share-l strong{font-size:clamp(20px,2.4vw,26px);letter-spacing:-.01em}
.apb-rx-share--card .apb-rx-share-form{width:100%;max-width:420px}
/* ==== assets/pages/component-faq.css ==== */
/* FAQ layout variants — cards / two_col / tabbed / split / numbered.
 * Augments the base .apb-rx-faq accordion (component-sections.css). Tokens only, no !important.
 * The base .apb-rx-faq-item summary/chevron styling is inherited from component-sections.css. */

/* ---- cards: always-visible Q&A tiles with an optional icon ---- */
.apb-rx-faq--cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(14px,2vw,20px);max-width:1080px}
.apb-rx-faqc{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);padding:clamp(18px,3vw,26px);transition:transform var(--apb-rx-t-fast) var(--apb-rx-ease),box-shadow var(--apb-rx-t-fast) var(--apb-rx-ease)}
.apb-rx-faqc:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-3,0 18px 40px -18px rgba(11,13,18,.22))}
.apb-rx-faqc-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:14px}
.apb-rx-faqc-ic svg{width:20px;height:20px}
.apb-rx-faqc h3{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-faqc p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.6}

/* ---- two_col: dense two-column accordion grid ---- */
.apb-rx-faq--twocol{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:1000px}
@media(max-width:680px){.apb-rx-faq--twocol{grid-template-columns:1fr}}

/* ---- numbered: editorial rows, answers always visible ---- */
.apb-rx-faq--numbered{max-width:860px}
.apb-rx-faqn-row{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,32px);padding:clamp(20px,3vw,32px) 0;border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-faqn-row:last-child{border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-faqn-n{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(22px,3vw,30px);font-weight:800;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-faqn-row h3{margin:0 0 8px;font-size:clamp(17px,2vw,20px);font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-faqn-row p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.7;max-width:60ch}

/* ---- split: sticky support panel beside the accordion ---- */
.apb-rx-faq--split{display:grid;grid-template-columns:minmax(240px,1fr) 1.6fr;gap:clamp(28px,5vw,64px);align-items:start;max-width:1080px;margin-inline:auto}
.apb-rx-faqs-aside{position:sticky;top:32px}
.apb-rx-faqs-aside h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:-.02em;margin:0 0 14px;color:var(--apb-rx-ink)}
.apb-rx-faqs-aside p{color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;margin:0 0 20px}
.apb-rx-faqs-cta{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:var(--apb-rx-radius,12px);background:var(--apb-rx-brand);color:#fff;font-weight:600;font-size:14px;text-decoration:none;transition:transform var(--apb-rx-t-fast) var(--apb-rx-ease)}
.apb-rx-faqs-cta:hover{transform:translateY(-2px)}
.apb-rx-faqs-list>.apb-rx-faq-item{margin-bottom:12px}
@media(max-width:760px){.apb-rx-faq--split{grid-template-columns:1fr}.apb-rx-faqs-aside{position:static}}

/* ---- tabbed: CSS-only category tabs (structural :checked selectors, id-independent) ---- */
.apb-rx-faq--tabbed{position:relative;max-width:820px;margin-inline:auto}
.apb-rx-faq--tabbed>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-faqt-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}
.apb-rx-faqt-tabs label{cursor:pointer;padding:9px 18px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line,#e7e8ec);font-size:14px;font-weight:600;color:var(--apb-rx-muted,#6b7280);background:var(--apb-rx-surface,#fff);transition:background var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-faqt-panel{display:none}
/* tabs div is div nth-of-type(1); panel k is div nth-of-type(k+1) */
.apb-rx-faq--tabbed>input:nth-of-type(1):checked~.apb-rx-faqt-panel:nth-of-type(2),
.apb-rx-faq--tabbed>input:nth-of-type(2):checked~.apb-rx-faqt-panel:nth-of-type(3),
.apb-rx-faq--tabbed>input:nth-of-type(3):checked~.apb-rx-faqt-panel:nth-of-type(4),
.apb-rx-faq--tabbed>input:nth-of-type(4):checked~.apb-rx-faqt-panel:nth-of-type(5),
.apb-rx-faq--tabbed>input:nth-of-type(5):checked~.apb-rx-faqt-panel:nth-of-type(6),
.apb-rx-faq--tabbed>input:nth-of-type(6):checked~.apb-rx-faqt-panel:nth-of-type(7){display:grid;gap:10px}
.apb-rx-faq--tabbed>input:nth-of-type(1):checked~.apb-rx-faqt-tabs label:nth-child(1),
.apb-rx-faq--tabbed>input:nth-of-type(2):checked~.apb-rx-faqt-tabs label:nth-child(2),
.apb-rx-faq--tabbed>input:nth-of-type(3):checked~.apb-rx-faqt-tabs label:nth-child(3),
.apb-rx-faq--tabbed>input:nth-of-type(4):checked~.apb-rx-faqt-tabs label:nth-child(4),
.apb-rx-faq--tabbed>input:nth-of-type(5):checked~.apb-rx-faqt-tabs label:nth-child(5),
.apb-rx-faq--tabbed>input:nth-of-type(6):checked~.apb-rx-faqt-tabs label:nth-child(6){background:var(--apb-rx-brand);color:#fff;border-color:var(--apb-rx-brand)}

@media(prefers-reduced-motion:reduce){
  .apb-rx-faqc,.apb-rx-faqs-cta,.apb-rx-faqt-tabs label{transition:none}
  .apb-rx-faqc:hover,.apb-rx-faqs-cta:hover{transform:none}
}
/* ==== assets/pages/component-heroes.css ==== */
/* Conversion hero variants — screenshot / tilt / form / logo-strip / video / split-features / stat-band /
 * pill / aurora / app-dual / review / editorial. Tokens only, no !important (bar reduced-motion). */

/* shared */
.apb-rx-hero-copy{max-width:560px}
.apb-rx-hero-copy h1{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(32px,5vw,54px);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin:14px 0 16px;color:var(--apb-rx-ink);text-wrap:balance}
.apb-rx-hero-copy .apb-rx-lead{font-size:clamp(17px,2vw,21px);line-height:1.55;color:var(--apb-rx-muted,#6b7280);margin:0 0 26px;max-width:52ch}
.apb-rx-hero-copy--c{max-width:760px;margin-inline:auto;text-align:center}
.apb-rx-hero-copy--c .apb-rx-lead{margin-inline:auto}
.apb-rx-hero-copy--c .apb-rx-cta-row{justify-content:center}
.apb-rx-hero-shotgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;max-width:1200px;margin-inline:auto}
.apb-rx-hero--shot,.apb-rx-hero--feat,.apb-rx-hero--vid,.apb-rx-hero--dual,.apb-rx-hero--review{padding:clamp(40px,6vw,80px) 24px}
.apb-rx-hero--form,.apb-rx-hero--logos,.apb-rx-hero--stats,.apb-rx-hero--pill,.apb-rx-hero--editorial{padding:clamp(44px,7vw,88px) 24px}

/* screenshot + tilt */
.apb-rx-hero-shot{border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:0 30px 70px -30px rgba(11,13,18,.35);border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-hero-shot img{width:100%;display:block}
.apb-rx-hero--tilt .apb-rx-hero-shot{transform:perspective(1400px) rotateY(-14deg) rotateX(5deg) scale(.98);transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-hero--tilt:hover .apb-rx-hero-shot{transform:perspective(1400px) rotateY(-6deg) rotateX(2deg)}

/* form hero */
.apb-rx-hero--form .apb-rx-hero-copy{max-width:620px;margin-inline:auto;text-align:center}
.apb-rx-hero--form .apb-rx-lead{margin-inline:auto}
.apb-rx-hero-form{max-width:460px;margin:0 auto;display:flex;gap:8px}
.apb-rx-hero-form input{flex:1;min-width:0;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius-pill,999px);padding:13px 18px;font:inherit;font-size:15px;background:var(--apb-rx-surface,#fff)}
.apb-rx-hero-form .apb-rx-btn{flex:0 0 auto}

/* logo strip */
.apb-rx-hero--logos .apb-rx-hero-copy{max-width:680px;margin-inline:auto;text-align:center}
.apb-rx-hero--logos .apb-rx-lead,.apb-rx-hero--logos .apb-rx-cta-row{margin-inline:auto;justify-content:center}
.apb-rx-hero-logos{margin-top:34px}
.apb-rx-hero-logos>span{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);margin-bottom:16px}
.apb-rx-hero-logorow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(20px,4vw,44px)}
.apb-rx-hero-logorow img{height:26px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.7}

/* video hero + lightbox */
.apb-rx-hero-vidgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;max-width:1200px;margin-inline:auto}
.apb-rx-hero-vidposter{position:relative;border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:0 30px 70px -30px rgba(11,13,18,.4);cursor:pointer}
.apb-rx-hero-vidposter img{width:100%;display:block}
.apb-rx-hero-play{position:absolute;inset:0;margin:auto;width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--apb-rx-brand);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-hero-vidposter:hover .apb-rx-hero-play{transform:scale(1.08)}
.apb-rx-hero-play svg{width:30px;height:30px;margin-left:3px}
.apb-rx-herolight{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:24px}
.apb-rx-herolight:target{display:flex}
.apb-rx-herolight-bg{position:absolute;inset:0;background:rgba(8,10,15,.85)}
.apb-rx-herolight-box{position:relative;width:min(900px,94vw)}
.apb-rx-herolight-box video{width:100%;border-radius:var(--apb-rx-radius,16px);display:block}
.apb-rx-herolight-x{position:absolute;top:-42px;right:0;color:#fff;font-size:32px;line-height:1;text-decoration:none}

/* split features */
.apb-rx-hero-checks{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:11px}
.apb-rx-hero-checks li{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--apb-rx-ink)}
.apb-rx-hero-checks svg{flex:0 0 auto;width:18px;height:18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

/* stat band */
.apb-rx-hero-statband{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,5vw,64px);margin-top:clamp(32px,5vw,52px);padding-top:clamp(28px,4vw,40px);border-top:1px solid var(--apb-rx-line,#e7e8ec);max-width:900px;margin-inline:auto}
.apb-rx-hero-stat{text-align:center}
.apb-rx-hero-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-hero-stat span{display:block;margin-top:6px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}

/* centered pill */
.apb-rx-hero-pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 15px;margin-bottom:22px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));text-decoration:none;transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-hero-pill:hover{transform:translateY(-1px)}

/* aurora */
.apb-rx-hero--aurora{position:relative;overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-hero--aurora>.apb-rx-hero-copy{position:relative;z-index:1}
.apb-rx-aurora-a,.apb-rx-aurora-b,.apb-rx-aurora-c{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none}
.apb-rx-aurora-a{width:44vw;height:44vw;background:var(--apb-rx-brand);top:-14vw;left:-6vw;animation:apb-aur1 18s ease-in-out infinite alternate}
.apb-rx-aurora-b{width:38vw;height:38vw;background:var(--apb-rx-brand2,var(--apb-rx-brand));bottom:-16vw;right:-4vw;animation:apb-aur2 22s ease-in-out infinite alternate}
.apb-rx-aurora-c{width:30vw;height:30vw;background:var(--apb-rx-brand3,var(--apb-rx-brand));top:20%;right:24%;opacity:.35;animation:apb-aur1 26s ease-in-out infinite alternate-reverse}
@keyframes apb-aur1{to{transform:translate(8vw,6vw) scale(1.15)}}
@keyframes apb-aur2{to{transform:translate(-8vw,-5vw) scale(1.1)}}

/* app dual phones */
.apb-rx-hero-dual{position:relative;min-height:clamp(320px,42vw,480px)}
.apb-rx-hero-dual img{position:absolute;width:52%;border-radius:calc(var(--apb-rx-radius,16px)*1.6);box-shadow:0 26px 60px -24px rgba(11,13,18,.4)}
.apb-rx-hero-dual-a{left:4%;top:0;z-index:1;transform:rotate(-5deg)}
.apb-rx-hero-dual-b{right:4%;bottom:0;transform:rotate(5deg)}
/* mobile: stack the two overlapping phone shots so they don't collide on a narrow screen */
@media(max-width:560px){
  .apb-rx-hero-dual{min-height:0;display:flex;flex-direction:column;gap:14px;align-items:center}
  .apb-rx-hero-dual img{position:relative;width:74%;left:auto;right:auto;top:auto;bottom:auto;transform:none;margin:0}
}

/* review hero */
.apb-rx-hero-reviewp{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 24px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-hero-stars{color:#f5a623;letter-spacing:1px}
.apb-rx-hero-reviewp b{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-hero-reviewp em{font-style:italic;color:var(--apb-rx-ink);flex-basis:100%}

/* editorial */
.apb-rx-hero--editorial .apb-rx-hero-copy h1{font-size:clamp(40px,7vw,76px)}

@media(max-width:820px){
  .apb-rx-hero-shotgrid,.apb-rx-hero-vidgrid{grid-template-columns:1fr}
  .apb-rx-hero--shot .apb-rx-hero-shot,.apb-rx-hero--feat .apb-rx-hero-shot,.apb-rx-hero-vidposter,.apb-rx-hero-dual{order:-1}
  .apb-rx-hero--tilt .apb-rx-hero-shot{transform:none}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-aurora-a,.apb-rx-aurora-b,.apb-rx-aurora-c{animation:none}
  .apb-rx-hero--tilt .apb-rx-hero-shot{transform:none;transition:none}
  .apb-rx-hero-play,.apb-rx-hero-pill{transition:none}
}
/* ==== assets/pages/component-heroes2.css ==== */
/* Award-style hero recipes (APB_Section_Components_Heroes2) — shared CTA contract + sticker_pop + portal_layers.
   Tokens only; every brand-tinted value derives from --apb-rx-brand. Scrolljack heroes read --apb-p (set by
   the shared data-apb-pin engine) and default to their revealed end-state so no-JS + reduced-motion fail open. */

/* ---------------- shared flexible CTA row (any number of buttons, per-button style) ---------------- */
.apb-rx-h2ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.apb-rx-h2cta{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;border-radius:var(--apb-rx-radius);
  font-weight:700;font-size:15px;line-height:1;text-decoration:none;
  transition:transform var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s),border-color var(--apb-rx-t-fast,.16s)}
.apb-rx-h2cta:hover{transform:translateY(-2px)}
.apb-rx-h2cta-arw{width:15px;height:15px;flex:none}
.apb-rx-h2cta--primary{background:var(--apb-rx-brand);color:#fff;box-shadow:0 12px 30px -10px var(--apb-rx-glow)}
.apb-rx-h2cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-h2cta--outline:hover{border-color:var(--apb-rx-line-accent)}
.apb-rx-h2cta--ghost{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-h2cta--ghost:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-h2cta--soft{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-h2cta--soft:hover{background:color-mix(in srgb,var(--apb-rx-brand) 14%,var(--apb-rx-surface,#fff))}
/* dark-surface palette (heroes on --apb-rx-ink) */
.apb-rx-h2cta--on-dark.apb-rx-h2cta--outline{color:#fff;border-color:rgba(255,255,255,.35)}
.apb-rx-h2cta--on-dark.apb-rx-h2cta--outline:hover{border-color:#fff}
.apb-rx-h2cta--on-dark.apb-rx-h2cta--ghost{color:#fff}
.apb-rx-h2cta--on-dark.apb-rx-h2cta--ghost:hover{background:rgba(255,255,255,.1)}
.apb-rx-h2cta--on-dark.apb-rx-h2cta--soft{background:rgba(255,255,255,.14);color:#fff}
.apb-rx-h2cta--on-dark.apb-rx-h2cta--soft:hover{background:rgba(255,255,255,.2)}

/* fallback (registered-but-unspecialized variant) */
.apb-rx-h2fb{padding:clamp(56px,10vh,110px) 24px;text-align:center}
.apb-rx-h2fb .apb-rx-hero-copy--c{max-width:820px;margin:0 auto}
.apb-rx-h2fb .apb-rx-h2ctas{justify-content:center;margin-top:22px}

/* ============================ sticker_pop ============================ */
.apb-rx-hstk{position:relative;overflow:hidden;padding:clamp(56px,9vh,96px) 24px 0;background:var(--apb-rx-surface,#fff)}
.apb-rx-hstk-wrap{max-width:960px;margin:0 auto;text-align:center;position:relative}
.apb-rx-hstk-coins{display:flex;justify-content:center;margin-bottom:clamp(26px,5vh,44px)}
.apb-rx-hstk-coin{width:clamp(44px,6vw,62px);height:clamp(44px,6vw,62px);border-radius:50%;flex:none;margin:0 -5px;
  display:flex;align-items:center;justify-content:center;background:var(--apb-rx-surface-2,#fff);
  border:2.5px solid var(--ring,var(--apb-rx-brand));box-shadow:2px 3px 0 color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 85%,transparent);
  transition:transform var(--apb-rx-t-fast,.16s);position:relative;z-index:1}
.apb-rx-hstk-coin:hover{transform:translateY(-6px) rotate(-4deg);z-index:2}
.apb-rx-hstk-coin--fill{background:var(--ring,var(--apb-rx-brand))}
.apb-rx-hstk-coin svg{width:58%;height:58%;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hstk-coin--fill svg{color:#fff}
.apb-rx-hstk-coin path,.apb-rx-hstk-coin circle,.apb-rx-hstk-coin rect{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.apb-rx-hstk h1{margin:0 auto 22px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(40px,6.6vw,80px);letter-spacing:var(--apb-rx-display-tracking,-.03em);line-height:var(--apb-rx-display-leading,1.04);
  color:var(--apb-rx-ink,#0b0d12);max-width:17ch;text-wrap:balance}
.apb-rx-hstk-pill{display:inline-flex;align-items:center;gap:.22em;padding:.02em .3em;border-radius:var(--apb-rx-radius-pill,999px);
  background:color-mix(in srgb,var(--apb-rx-brand) 14%,var(--apb-rx-surface,#fff));color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-hstk-pill i{width:.28em;height:.28em;border-radius:50%;background:var(--apb-rx-brand);flex:none}
.apb-rx-hstk-lead{margin:0 auto 30px;color:var(--apb-rx-muted,#6b7280);font-size:clamp(16px,1.8vw,20px);line-height:1.6;max-width:52ch}
.apb-rx-hstk .apb-rx-h2ctas{justify-content:center}
.apb-rx-hstk-stick{position:absolute;width:clamp(44px,5.5vw,74px);height:clamp(44px,5.5vw,74px);border-radius:calc(var(--apb-rx-radius) * .9);
  display:flex;align-items:center;justify-content:center;background:var(--bg,var(--apb-rx-soft,#f4f5f7));
  box-shadow:2px 3px 0 color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 85%,transparent);transform:rotate(var(--rot,0deg));
  animation:hstkFloat calc(5s / var(--apb-rx-dur,1)) ease-in-out infinite;animation-delay:var(--fd,0s)}
.apb-rx-hstk-stick svg{width:56%;height:56%;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hstk-stick path,.apb-rx-hstk-stick circle{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.apb-rx-hstk-stick--a{left:-4%;bottom:18%;--rot:-8deg;--bg:color-mix(in srgb,var(--apb-rx-brand) 20%,var(--apb-rx-surface,#fff))}
.apb-rx-hstk-stick--b{right:-5%;bottom:14%;--rot:7deg;--bg:color-mix(in srgb,var(--apb-rx-brand2,var(--apb-rx-brand)) 30%,var(--apb-rx-surface,#fff));--fd:1.2s}
.apb-rx-hstk-stick--b svg{color:#fff}
@keyframes hstkFloat{0%,100%{transform:rotate(var(--rot,0deg)) translateY(0)}50%{transform:rotate(var(--rot,0deg)) translateY(-8px)}}
.apb-rx-hstk-win{max-width:1120px;margin:clamp(36px,7vh,64px) auto -2px;text-align:left;
  border-radius:calc(var(--apb-rx-radius) * 1.2) calc(var(--apb-rx-radius) * 1.2) 0 0;overflow:hidden;
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-bottom:0;background:var(--apb-rx-surface-2,#fff);
  box-shadow:0 -10px 40px -18px var(--apb-rx-glow-soft),var(--apb-rx-shadow-3)}
.apb-rx-hstk-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-hstk-bar i{width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 13%,var(--apb-rx-surface-2,#fff))}
.apb-rx-hstk-bar span{margin-left:8px;padding:4px 14px;border-radius:calc(var(--apb-rx-radius) * .5);font-size:11.5px;color:var(--apb-rx-muted,#6b7280);
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 5%,var(--apb-rx-surface-2,#fff))}
.apb-rx-hstk-shot img{display:block;width:100%;height:auto}
.apb-rx-hstk-app{display:grid;grid-template-columns:170px 1fr;min-height:150px}
.apb-rx-hstk-nav{border-right:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);padding:14px 12px;display:flex;flex-direction:column;gap:9px;
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 2%,var(--apb-rx-surface-2,#fff))}
.apb-rx-hstk-sk{height:10px;border-radius:5px;background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 7%,var(--apb-rx-surface-2,#fff))}
.apb-rx-hstk-doc{padding:18px 26px;display:flex;flex-direction:column;gap:11px}
.apb-rx-hstk-doc .t{height:20px;width:38%;border-radius:6px;background:color-mix(in srgb,var(--apb-rx-brand) 20%,var(--apb-rx-surface-2,#fff))}
@media(max-width:760px){
  .apb-rx-hstk-stick{display:none}
  .apb-rx-hstk-app{grid-template-columns:1fr}.apb-rx-hstk-nav{display:none}
}
@media (prefers-reduced-motion:reduce){.apb-rx-hstk-stick{animation:none}}

/* ============================ portal_layers (scrolljack, --apb-p) ============================ */
.apb-rx-hprt{padding:0;position:relative}
.apb-rx-hprt-track{height:280vh;position:relative}
.apb-rx-hprt-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--apb-rx-ink,#0b0d12);
  /* phase A opens the foreground aperture; phase B opens the mid-ground + fades copy in */
  --pa:clamp(0, calc(var(--apb-p, 1) / .55), 1);
  --pb:clamp(0, calc((var(--apb-p, 1) - .4) / .6), 1);
  --hprt-r1:calc(12vmin + 160vmin * var(--pa));
  --hprt-r2:calc(160vmax * var(--pb));
  --hprt-copy-o:clamp(0, calc((var(--pb) - .55) / .45), 1);
  --hprt-ring-o:clamp(0, calc(1 - var(--pa) * 1.6), 1)}
.apb-rx-hprt-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.15);
  background-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-ink,#0b0d12))}
.apb-rx-hprt-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.55),rgba(11,13,18,.25) 40%,rgba(11,13,18,.6))}
.apb-rx-hprt-mid{position:absolute;inset:0;background-size:cover;background-position:center;background-color:color-mix(in srgb,var(--apb-rx-brand2,var(--apb-rx-brand)) 40%,var(--apb-rx-ink,#0b0d12));
  -webkit-mask:radial-gradient(circle var(--hprt-r2,150vmax) at 50% 52%,transparent 98%,#000 100%);
  mask:radial-gradient(circle var(--hprt-r2,150vmax) at 50% 52%,transparent 98%,#000 100%)}
.apb-rx-hprt-fg{position:absolute;inset:0;
  background:
    radial-gradient(60vmax 60vmax at 85% -10%,color-mix(in srgb,var(--apb-rx-brand2,var(--apb-rx-brand)) 40%,transparent),transparent 60%),
    radial-gradient(50vmax 50vmax at 10% 110%,color-mix(in srgb,var(--apb-rx-brand3,var(--apb-rx-brand)) 35%,transparent),transparent 60%),
    color-mix(in srgb,var(--apb-rx-brand) 14%,var(--apb-rx-ink,#0b0d12));
  -webkit-mask:radial-gradient(circle var(--hprt-r1,172vmin) at 50% 52%,transparent 98%,#000 100%);
  mask:radial-gradient(circle var(--hprt-r1,172vmin) at 50% 52%,transparent 98%,#000 100%)}
.apb-rx-hprt-fg::before{content:"";position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(color-mix(in srgb,#fff 12%,transparent) 1px,transparent 1.5px);background-size:26px 26px}
.apb-rx-hprt-ring{position:absolute;left:50%;top:52%;width:calc(var(--hprt-r1,172vmin) * 2);height:calc(var(--hprt-r1,172vmin) * 2);
  transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid color-mix(in srgb,var(--apb-rx-brand) 70%,#fff);
  box-shadow:0 0 44px var(--apb-rx-glow),inset 0 0 30px var(--apb-rx-glow-soft);pointer-events:none;opacity:var(--hprt-ring-o,0)}
.apb-rx-hprt-eyebrow{position:absolute;left:50%;top:52%;transform:translate(-50%,calc(-50% - var(--hprt-r1,172vmin) - 34px));
  font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 45%,#fff);opacity:var(--hprt-ring-o,0)}
.apb-rx-hprt-hint{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;
  color:rgba(255,255,255,.65);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:var(--hprt-ring-o,0)}
.apb-rx-hprt-hint svg{width:16px;height:16px;animation:hprtNudge calc(1.6s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes hprtNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.apb-rx-hprt-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:24px;opacity:var(--hprt-copy-o,1);transform:translateY(calc((1 - var(--hprt-copy-o,1)) * 26px))}
.apb-rx-hprt-copy h1{font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);color:#fff;
  font-size:clamp(34px,6vw,64px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.05);margin:0 0 14px;max-width:16ch;text-wrap:balance}
.apb-rx-hprt-copy p{color:rgba(255,255,255,.78);font-size:clamp(15px,1.6vw,18px);line-height:1.6;max-width:52ch;margin:0 0 26px}
.apb-rx-hprt-copy .apb-rx-h2ctas{justify-content:center}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hprt-track{height:100vh}
  .apb-rx-hprt-hint{display:none}
}
/* ==== assets/pages/component-heroes3.css ==== */
/* Award-style hero recipes (APB_Section_Components_Heroes2) — partition 3. Tokens only; every brand-tinted
   value derives from --apb-rx-brand; scrolljack heroes read --apb-p and default to their revealed end-state. */

/* ============================ paper_cutout (scrolljack, --apb-p) ============================ */
.apb-rx-hpcut{padding:0;position:relative}
.apb-rx-hpcut-track{height:240vh;position:relative}
.apb-rx-hpcut-stage{position:sticky;top:0;height:100vh;overflow:hidden;
  background:radial-gradient(90vmax 60vmax at 80% -20%,var(--apb-rx-soft,#f4f5f7),transparent 55%),var(--apb-rx-surface,#fff)}
.apb-rx-hpcut-stage::before{content:"";position:absolute;inset:0;opacity:.4;pointer-events:none;
  background-image:radial-gradient(color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 7%,transparent) 1px,transparent 1.5px);background-size:22px 22px}
.apb-rx-hpcut-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;z-index:2}
.apb-rx-hpcut-ey{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:16px}
.apb-rx-hpcut-ey::before,.apb-rx-hpcut-ey::after{content:"";width:26px;height:1.5px;background:currentColor;opacity:.5}
.apb-rx-hpcut-copy h1{font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(38px,7vw,84px);letter-spacing:var(--apb-rx-display-tracking,-.03em);line-height:var(--apb-rx-display-leading,1.0);
  margin:0;max-width:13ch;text-wrap:balance;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hpcut-copy h1 em{font-style:normal;color:var(--apb-rx-accent-text,var(--apb-rx-brand));position:relative}
.apb-rx-hpcut-copy h1 em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:.04em;height:.28em;z-index:-1;
  background:color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);transform:rotate(-1.2deg)}
.apb-rx-hpcut-copy p{color:var(--apb-rx-muted,#6b7280);font-size:clamp(15px,1.5vw,17px);line-height:1.6;max-width:46ch;margin:20px 0 26px}
.apb-rx-hpcut-copy .apb-rx-h2ctas{justify-content:center}
.apb-rx-hpcut-item{position:absolute;width:clamp(140px,19vw,270px);z-index:1;
  --t:clamp(0, calc((var(--apb-p,1) - (var(--idx,0) * .2)) / .18), 1);
  opacity:var(--t);
  transform:translate(calc(var(--fx,0) * (1 - var(--t))), calc(var(--fy,-60vh) * (1 - var(--t)))) rotate(calc(var(--rot,0deg) + (1 - var(--t)) * var(--rspin,20deg)));
  filter:drop-shadow(0 18px 22px rgba(11,13,18,.28))}
.apb-rx-hpcut-item img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--apb-rx-soft,#f4f5f7);
  border:7px solid var(--apb-rx-surface-2,#fff);
  clip-path:polygon(1% 3%,7% 0%,15% 2%,26% 0%,38% 2%,52% 0%,65% 2%,78% 0%,90% 2%,99% 1%,100% 12%,98% 25%,100% 40%,98% 55%,100% 70%,98% 84%,100% 96%,91% 100%,78% 98%,64% 100%,50% 98%,36% 100%,22% 98%,10% 100%,1% 97%,2% 84%,0% 68%,2% 52%,0% 36%,2% 20%)}
.apb-rx-hpcut-item::after{content:"";position:absolute;top:-12px;left:50%;width:74px;height:26px;transform:translateX(-50%) rotate(calc(var(--rot,0deg) * -.6));
  background:color-mix(in srgb,var(--apb-rx-brand) 26%,rgba(255,255,255,.55));opacity:.85;
  clip-path:polygon(3% 12%,97% 0%,100% 88%,0% 100%)}
.apb-rx-hpcut-i1{top:9%;left:4%;--rot:-7deg;--fx:-30vw;--rspin:-26deg}
.apb-rx-hpcut-i2{top:52%;left:9%;--rot:5deg;--fx:-24vw;--fy:60vh;--rspin:18deg}
.apb-rx-hpcut-i3{top:7%;right:5%;--rot:6deg;--fx:30vw;--rspin:24deg}
.apb-rx-hpcut-i4{top:50%;right:8%;--rot:-4deg;--fx:26vw;--fy:60vh;--rspin:-20deg}
.apb-rx-hpcut-i5{bottom:-4%;left:38%;--rot:3deg;--fy:70vh;--rspin:14deg;width:clamp(120px,15vw,210px)}
@media(max-width:760px){
  .apb-rx-hpcut-item{width:clamp(96px,26vw,150px)}
  .apb-rx-hpcut-i2,.apb-rx-hpcut-i4{display:none}
  .apb-rx-hpcut-i1{top:4%;left:2%}.apb-rx-hpcut-i3{top:4%;right:2%}
}
@media (prefers-reduced-motion:reduce){.apb-rx-hpcut-track{height:100vh}}

/* ============================ kinetic_type (static) ============================ */
.apb-rx-hkin{position:relative;overflow:hidden;padding:clamp(70px,12vh,130px) 24px clamp(40px,7vh,80px);
  background:var(--apb-rx-ink,#0b0d12);color:#fff}
.apb-rx-hkin::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70vmax 50vmax at 50% 120%,color-mix(in srgb,var(--apb-rx-brand) 22%,transparent),transparent 60%)}
.apb-rx-hkin-wrap{max-width:1200px;margin:0 auto;position:relative}
.apb-rx-hkin-top{margin-bottom:clamp(24px,5vh,56px);font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.apb-rx-hkin-head{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(46px,9.5vw,128px);line-height:1.02;letter-spacing:-.03em;text-transform:uppercase;text-wrap:balance}
.apb-rx-hkin-w{display:inline-block;opacity:0;transform:translateY(60%);
  animation:hkinRise calc(.8s / var(--apb-rx-dur,1)) cubic-bezier(.19,1,.22,1) forwards;animation-delay:var(--d,0s)}
.apb-rx-hkin-w--brand{color:transparent;
  background:linear-gradient(100deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)) 55%,var(--apb-rx-brand3,var(--apb-rx-brand)));
  -webkit-background-clip:text;background-clip:text}
@keyframes hkinRise{to{opacity:1;transform:translateY(0)}}
.apb-rx-hkin-sub{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:clamp(28px,5vh,54px)}
.apb-rx-hkin-sub p{margin:0;max-width:44ch;color:rgba(255,255,255,.72);font-size:clamp(15px,1.5vw,17px);line-height:1.6}
.apb-rx-hkin-sub .apb-rx-h2ctas{flex:none}
.apb-rx-hkin-marq{margin-top:clamp(36px,7vh,70px);border-top:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14);
  overflow:hidden;white-space:nowrap;padding:14px 0;mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.apb-rx-hkin-marq-in{display:inline-flex;gap:44px;padding-right:44px;animation:hkinMarq calc(24s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-hkin-marq span{font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);display:inline-flex;align-items:center;gap:44px}
.apb-rx-hkin-marq span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--apb-rx-brand)}
@keyframes hkinMarq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hkin-w{animation:none;opacity:1;transform:none}
  .apb-rx-hkin-marq-in{animation:none}
}

/* ============================ svg_drawline (static) ============================ */
.apb-rx-hdrw{position:relative;overflow:hidden;padding:clamp(60px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-hdrw::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(70vmax 55vmax at 92% 0%,var(--apb-rx-soft,#f4f5f7),transparent 55%)}
.apb-rx-hdrw-wrap{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,72px);align-items:center;position:relative}
.apb-rx-hdrw-ey{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:16px}
.apb-rx-hdrw-wrap h1{margin:0 0 18px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(34px,4.8vw,58px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.06);
  color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-hdrw-lead{color:var(--apb-rx-muted,#6b7280);font-size:clamp(15px,1.5vw,17px);line-height:1.65;margin:0 0 26px;max-width:50ch}
.apb-rx-hdrw-wrap .apb-rx-h2ctas{margin-bottom:30px}
.apb-rx-hdrw-facts{display:flex;gap:clamp(20px,4vw,44px);border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);padding-top:22px}
.apb-rx-hdrw-facts b{display:block;font-size:22px;font-weight:800;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hdrw-facts span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-hdrw-art{position:relative}
.apb-rx-hdrw-art svg{display:block;width:100%;height:auto;overflow:visible}
.apb-rx-hdrw-art .st{fill:none;stroke:var(--apb-rx-ink,#0b0d12);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:620;stroke-dashoffset:620;animation:hdrwDraw calc(2.2s / var(--apb-rx-dur,1)) cubic-bezier(.6,0,.2,1) forwards;animation-delay:var(--d,0s)}
.apb-rx-hdrw-art .st--brand{stroke:var(--apb-rx-brand);stroke-width:2.2}
.apb-rx-hdrw-art .st--soft{stroke:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 30%,transparent)}
@keyframes hdrwDraw{to{stroke-dashoffset:0}}
.apb-rx-hdrw-art .fillin{fill:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);opacity:0;
  animation:hdrwFill calc(.8s / var(--apb-rx-dur,1)) ease forwards;animation-delay:2.1s}
@keyframes hdrwFill{to{opacity:1}}
.apb-rx-hdrw-art .orbit{fill:var(--apb-rx-brand);animation:hdrwOrbit calc(9s / var(--apb-rx-dur,1)) linear infinite;transform-origin:210px 150px}
@keyframes hdrwOrbit{to{transform:rotate(360deg)}}
@media(max-width:860px){.apb-rx-hdrw-wrap{grid-template-columns:1fr;gap:36px}.apb-rx-hdrw-art{max-width:440px;margin:0 auto}}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hdrw-art .st{animation:none;stroke-dashoffset:0}
  .apb-rx-hdrw-art .fillin{animation:none;opacity:1}
  .apb-rx-hdrw-art .orbit{animation:none}
}

/* ============================ zoom_through (scrolljack, --apb-p) ============================ */
.apb-rx-hzoom{padding:0;position:relative}
.apb-rx-hzoom-track{height:260vh;position:relative}
.apb-rx-hzoom-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--apb-rx-surface,#fff);
  display:flex;align-items:center;justify-content:center;
  --hz-p3:calc(var(--apb-p,1) * var(--apb-p,1) * var(--apb-p,1));
  --hz-zoom:calc(1 + var(--hz-p3) * 30);
  --hz-through:clamp(0, calc((var(--apb-p,1) - .62) / .3), 1);
  --hz-word:clamp(0, calc(1 - var(--hz-through) * 1.4), 1);
  --hz-scene:clamp(0, calc(var(--apb-p,1) * .5 + var(--hz-through)), 1);
  --hz-copy:clamp(0, calc((var(--apb-p,1) - .78) / .22), 1)}
.apb-rx-hzoom-scene{position:absolute;inset:0;background-size:cover;background-position:center;opacity:var(--hz-scene,0);
  background-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-ink,#0b0d12))}
.apb-rx-hzoom-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.5),rgba(11,13,18,.2) 45%,rgba(11,13,18,.62))}
.apb-rx-hzoom-word{position:relative;margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:900;text-transform:uppercase;
  font-size:clamp(70px,17vw,240px);letter-spacing:-.04em;line-height:1;user-select:none;
  background-image:var(--hz-img);background-size:cover;background-position:center;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  transform:scale(var(--hz-zoom,1));transform-origin:50% 54%;opacity:var(--hz-word,1);will-change:transform}
.apb-rx-hzoom-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:24px;opacity:var(--hz-copy,0);transform:scale(calc(.94 + .06 * var(--hz-copy,0)))}
.apb-rx-hzoom-copy h1{margin:0 0 14px;color:#fff;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(32px,5.5vw,60px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.05);max-width:16ch;text-wrap:balance}
.apb-rx-hzoom-copy p{margin:0 0 26px;color:rgba(255,255,255,.8);font-size:clamp(15px,1.6vw,18px);line-height:1.6;max-width:50ch}
.apb-rx-hzoom-copy .apb-rx-h2ctas{justify-content:center}
@media (prefers-reduced-motion:reduce){.apb-rx-hzoom-track{height:100vh}}
/* ==== assets/pages/component-heroes4.css ==== */
/* Award-style hero recipes (APB_Section_Components_Heroes2) — partition 4. Tokens only; every brand-tinted
   value derives from --apb-rx-brand; scrolljack heroes read --apb-p and default to their revealed end-state.
   Reuses shared .apb-rx-h2cta* button styles + hx2 helpers from component-heroes2.css. */

/* ============================ slat_shutter (scrolljack, --apb-p) ============================ */
.apb-rx-hslat{padding:0;position:relative}
.apb-rx-hslat-track{height:240vh;position:relative}
.apb-rx-hslat-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hslat-back{position:absolute;inset:0;background-size:cover;background-position:center;
  background-color:color-mix(in srgb,var(--apb-rx-brand2,var(--apb-rx-brand)) 35%,var(--apb-rx-ink,#0b0d12))}
.apb-rx-hslat-back::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.45),rgba(11,13,18,.15) 45%,rgba(11,13,18,.66))}
.apb-rx-hslat-slats{position:absolute;inset:0;display:flex}
.apb-rx-hslat-slat{flex:1;position:relative;overflow:hidden;background-image:var(--hs-img);background-size:800% 100%;
  background-position:calc(var(--i,0) * -100%) 0;background-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-ink,#0b0d12));
  transform:translateY(calc(clamp(0, (var(--apb-p, 1) - var(--d0, 0)) / .55, 1) * var(--dir, 1) * 118%));
  box-shadow:8px 0 24px rgba(11,13,18,.35)}
.apb-rx-hslat-slat::after{content:"";position:absolute;inset:0;background:rgba(11,13,18,calc(.12 + .1 * var(--tone, 0)))}
.apb-rx-hslat-title{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;
  opacity:clamp(0, 1 - var(--apb-p, 1) * 2.2, 1);pointer-events:none}
.apb-rx-hslat-title span{font-size:12px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.apb-rx-hslat-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;
  padding:0 24px clamp(40px,10vh,90px);opacity:clamp(0, (var(--apb-p, 1) - .7) / .3, 1);
  transform:translateY(calc((1 - clamp(0, (var(--apb-p, 1) - .7) / .3, 1)) * 24px))}
.apb-rx-hslat-copy h1{margin:0 0 12px;color:#fff;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(30px,4.8vw,54px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.06);max-width:18ch;text-wrap:balance}
.apb-rx-hslat-copy p{margin:0 0 24px;color:rgba(255,255,255,.8);font-size:clamp(14px,1.5vw,17px);line-height:1.6;max-width:52ch}
.apb-rx-hslat-copy .apb-rx-h2ctas{justify-content:center}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hslat-track{height:100vh}
}

/* ============================ deck_shuffle (scrolljack, --apb-p) ============================ */
.apb-rx-hdck{padding:0;position:relative}
.apb-rx-hdck-track{height:240vh;position:relative}
.apb-rx-hdck-stage{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(80vmax 55vmax at 50% -20%,var(--apb-rx-soft,#f4f5f7),transparent 60%),var(--apb-rx-surface,#fff)}
.apb-rx-hdck-copy{position:relative;z-index:1;text-align:center;padding:24px;max-width:760px;
  opacity:var(--hd-copy);transform:scale(calc(.92 + .08 * var(--hd-copy)))}
.apb-rx-hdck-ey{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-hdck-copy h1{margin:12px 0 16px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(36px,6vw,68px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.02);
  color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-hdck-copy p{margin:0 0 26px;color:var(--apb-rx-muted,#6b7280);font-size:clamp(15px,1.6vw,18px);line-height:1.6}
.apb-rx-hdck-stage{--hd-copy:clamp(0, (var(--apb-p, 1) - .45) / .4, 1)}
.apb-rx-hdck-card{position:absolute;left:50%;top:50%;width:clamp(230px,30vw,400px);aspect-ratio:4/5;z-index:2;
  margin:calc(clamp(230px,30vw,400px) * -.625) 0 0 calc(clamp(230px,30vw,400px) * -.5);
  border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7);
  border:6px solid var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-3);
  --hd-t:clamp(0, (var(--apb-p, 1) - var(--d0, 0)) / .32, 1);
  transform:
    translate(calc(var(--hd-t) * var(--tx,0)), calc(var(--hd-t) * var(--ty,0) + (1 - var(--hd-t)) * var(--stack-y,0px)))
    rotate(calc(var(--rot,0deg) + var(--hd-t) * var(--rspin,0deg)))
    scale(calc(1 - var(--depth,0) * .05 + var(--hd-t) * .06))}
.apb-rx-hdck-card img{display:block;width:100%;height:100%;object-fit:cover}
.apb-rx-hdck-c1{--rot:-2deg;--tx:-60vw;--ty:-16vh;--rspin:-16deg;--depth:0;--stack-y:0px;--d0:0;z-index:6}
.apb-rx-hdck-c2{--rot:3deg;--tx:62vw;--ty:-10vh;--rspin:18deg;--depth:1;--stack-y:8px;--d0:.144;z-index:5}
.apb-rx-hdck-c3{--rot:-5deg;--tx:-58vw;--ty:20vh;--rspin:-22deg;--depth:2;--stack-y:16px;--d0:.288;z-index:4}
.apb-rx-hdck-c4{--rot:6deg;--tx:60vw;--ty:24vh;--rspin:20deg;--depth:3;--stack-y:24px;--d0:.432;z-index:3}
.apb-rx-hdck-c5{--rot:-1deg;--tx:0vw;--ty:-70vh;--rspin:8deg;--depth:4;--stack-y:32px;--d0:.576;z-index:2}
.apb-rx-hdck-hint{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);
  opacity:clamp(0, 1 - var(--hd-copy) * 2, 1)}
.apb-rx-hdck-hint svg{width:14px;height:14px;animation:hdckNudge calc(1.6s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes hdckNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@media(max-width:700px){.apb-rx-hdck-card{width:clamp(190px,58vw,260px);margin-left:calc(clamp(190px,58vw,260px) * -.5);margin-top:calc(clamp(190px,58vw,260px) * -.625)}}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hdck-track{height:100vh}
  .apb-rx-hdck-hint{display:none}
}

/* ============================ blob_morph (static) ============================ */
.apb-rx-hblb{position:relative;overflow:hidden;padding:clamp(70px,13vh,140px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-hblb-bg{position:absolute;inset:-10%;width:120%;height:120%;pointer-events:none;filter:blur(clamp(30px,5vw,60px));opacity:.85}
.apb-rx-hblb-wrap{position:relative;max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,72px);align-items:center}
.apb-rx-hblb-ey{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--apb-rx-radius-pill,999px);
  background:color-mix(in srgb,var(--apb-rx-surface,#fff) 70%,transparent);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:18px}
.apb-rx-hblb-ey i{width:7px;height:7px;border-radius:50%;background:var(--apb-rx-brand);
  animation:hblbPulse calc(2s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes hblbPulse{0%,100%{box-shadow:0 0 0 0 var(--apb-rx-glow-soft)}50%{box-shadow:0 0 0 7px transparent}}
.apb-rx-hblb h1{margin:0 0 16px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(36px,5.2vw,62px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.05);
  color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-hblb h1 em{font-style:normal;color:transparent;
  background:linear-gradient(95deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)) 60%,var(--apb-rx-brand3,var(--apb-rx-brand)));
  -webkit-background-clip:text;background-clip:text}
.apb-rx-hblb-lead{margin:0 0 28px;color:var(--apb-rx-muted,#6b7280);font-size:clamp(15px,1.6vw,18px);line-height:1.65;max-width:48ch}
.apb-rx-hblb-ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.apb-rx-hblb-note{font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-hblb-card{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.3);padding:26px;
  background:color-mix(in srgb,var(--apb-rx-surface,#fff) 72%,transparent);
  border:var(--apb-rx-border,1px) solid color-mix(in srgb,#fff 60%,var(--apb-rx-line,#e7e8ec));
  box-shadow:var(--apb-rx-shadow-3);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.apb-rx-hblb-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid color-mix(in srgb,var(--apb-rx-line,#e7e8ec) 60%,transparent)}
.apb-rx-hblb-row:last-of-type{border-bottom:0}
.apb-rx-hblb-ic{width:36px;height:36px;flex:none;border-radius:calc(var(--apb-rx-radius) * .7);display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-hblb-ic svg{width:18px;height:18px}
.apb-rx-hblb-row b{display:block;font-size:14px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hblb-row span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-hblb-chip{position:absolute;width:22px;height:22px;border-radius:var(--apb-rx-radius-pill,999px);
  display:flex;align-items:center;justify-content:center;background:var(--apb-rx-surface-2,#fff);
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2);
  animation:hblbFloat calc(5.5s / var(--apb-rx-dur,1)) ease-in-out infinite;animation-delay:var(--d,0s)}
.apb-rx-hblb-chip i{width:8px;height:8px;border-radius:50%;background:var(--apb-rx-brand)}
.apb-rx-hblb-chip--a{top:-11px;right:8%}
.apb-rx-hblb-chip--b{bottom:-11px;left:-6%;--d:1.4s}
@keyframes hblbFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media(max-width:860px){.apb-rx-hblb-wrap{grid-template-columns:1fr;gap:40px}.apb-rx-hblb-chip--b{left:2%}}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hblb-chip{animation:none}
  .apb-rx-hblb-ey i{animation:none}
}

/* ============================ horizon_scrub (scrolljack HORIZONTAL, --apb-p) ============================ */
.apb-rx-hhsc{padding:0;position:relative}
.apb-rx-hhsc-track{height:300vh;position:relative}
.apb-rx-hhsc-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--apb-rx-ink,#0b0d12);display:flex;flex-direction:column}
.apb-rx-hhsc-head{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;
  padding:clamp(28px,6vh,56px) clamp(20px,5vw,64px) 20px}
.apb-rx-hhsc-head h1{margin:0;color:#fff;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(30px,4.6vw,54px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.05);max-width:18ch;text-wrap:balance}
.apb-rx-hhsc-head h1 em{font-style:normal;color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-hhsc-sub{margin:8px 0 0;color:rgba(255,255,255,.72);font-size:clamp(13px,1.3vw,15px);max-width:44ch}
.apb-rx-hhsc-head .apb-rx-h2ctas{justify-content:flex-end}
/* the rail — translateX approximated: rail is sized wider than viewport via panel widths, tuned so the
   last panel lands on-screen at --apb-p:1 (exact CSS measurement of rail overflow is not possible). */
.apb-rx-hhsc-viewport{position:relative;flex:1;display:flex;align-items:center;overflow:hidden}
.apb-rx-hhsc-rail{display:flex;gap:clamp(14px,2vw,26px);padding:0 clamp(20px,5vw,64px);
  transform:translateX(calc(var(--apb-p, 1) * -68%));will-change:transform}
.apb-rx-hhsc-panel{position:relative;flex:none;width:clamp(240px,26vw,380px);aspect-ratio:3/4;border-radius:calc(var(--apb-rx-radius) * 1.2);
  overflow:hidden;background:color-mix(in srgb,var(--apb-rx-brand) 25%,var(--apb-rx-ink,#0b0d12));box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-hhsc-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.apb-rx-hhsc-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(185deg,transparent 40%,rgba(11,13,18,.78))}
.apb-rx-hhsc-panel figcaption{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;color:#fff}
.apb-rx-hhsc-panel figcaption i{display:block;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:color-mix(in srgb,var(--apb-rx-brand) 50%,#fff)}
.apb-rx-hhsc-prog{position:relative;z-index:2;margin:18px clamp(20px,5vw,64px) clamp(24px,5vh,44px);height:2px;background:rgba(255,255,255,.16);border-radius:2px}
.apb-rx-hhsc-prog i{position:absolute;left:0;top:0;bottom:0;width:calc(8% + var(--apb-p, 1) * 92%);border-radius:2px;
  background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hhsc-track{height:100vh}
  .apb-rx-hhsc-viewport{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .apb-rx-hhsc-rail{transform:none}
}
/* ==== assets/pages/component-heroes5.css ==== */
/* Award-style hero recipes (APB_Section_Components_Heroes2) — partition 5. Tokens only; every brand-tinted
   value derives from --apb-rx-brand; scrolljack heroes read --apb-p and default to their revealed end-state.
   All four heroes here are STATIC (no scrolljack, no cursor-follow JS) — motion is CSS-only auto-animation
   and reuses the shared .apb-rx-h2cta* button system (never redefined per-hero). */

/* ============================ spotlight_orbit ============================ */
.apb-rx-hspt{position:relative;overflow:hidden;padding:clamp(80px,15vh,150px) 24px;background:var(--apb-rx-ink,#0b0d12);color:#fff}
.apb-rx-hspt-tex{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(color-mix(in srgb,#fff 7%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,#fff 7%,transparent) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask:radial-gradient(clamp(220px,30vw,420px) at 52% 42%,#000 0%,rgba(0,0,0,.28) 55%,transparent 78%);
  mask:radial-gradient(clamp(220px,30vw,420px) at 52% 42%,#000 0%,rgba(0,0,0,.28) 55%,transparent 78%)}
.apb-rx-hspt-glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(clamp(260px,34vw,480px) at 52% 42%,var(--apb-rx-glow-soft),transparent 70%);
  animation:hsptBreathe calc(7s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes hsptBreathe{0%,100%{opacity:.75}50%{opacity:1}}
.apb-rx-hspt-wrap{position:relative;max-width:1060px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(36px,7vw,80px);align-items:center}
.apb-rx-hspt-ey{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff);margin-bottom:18px}
.apb-rx-hspt h1{margin:0 0 18px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(36px,5.4vw,66px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.03);text-wrap:balance}
.apb-rx-hspt h1 em{font-style:normal;color:transparent;
  background:linear-gradient(95deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));-webkit-background-clip:text;background-clip:text}
.apb-rx-hspt-lead{margin:0 0 28px;color:rgba(255,255,255,.72);font-size:clamp(15px,1.6vw,18px);line-height:1.65;max-width:46ch}
.apb-rx-hspt .apb-rx-h2ctas{margin-bottom:6px}
.apb-rx-hspt-proof{display:flex;gap:clamp(20px,3vw,36px);margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.apb-rx-hspt-proof b{display:block;font-size:21px;font-weight:800}
.apb-rx-hspt-proof span{font-size:12.5px;color:rgba(255,255,255,.6)}
.apb-rx-hspt-orb{position:relative;aspect-ratio:1;max-width:440px;margin:0 auto;width:100%}
.apb-rx-hspt-orb svg{display:block;width:100%;height:auto;overflow:visible}
.apb-rx-hspt-orb .ring{fill:none;stroke:rgba(255,255,255,.18);stroke-width:1}
.apb-rx-hspt-orb .ring--dash{stroke:color-mix(in srgb,var(--apb-rx-brand) 60%,transparent);stroke-dasharray:3 9;stroke-width:1.4}
.apb-rx-hspt-orb .spin{transform-origin:200px 200px;animation:hsptSpin calc(26s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-hspt-orb .spin--rev{animation-direction:reverse;animation-duration:calc(38s / var(--apb-rx-dur,1))}
@keyframes hsptSpin{to{transform:rotate(360deg)}}
.apb-rx-hspt-orb .sat{fill:var(--apb-rx-brand)}
.apb-rx-hspt-orb .sat--2{fill:var(--apb-rx-brand2,var(--apb-rx-brand))}
.apb-rx-hspt-core{position:absolute;inset:29%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;
  background:radial-gradient(circle at 32% 28%,color-mix(in srgb,var(--apb-rx-brand) 32%,#14161c),#14161c 70%);
  border:1px solid color-mix(in srgb,var(--apb-rx-brand) 45%,transparent);box-shadow:0 0 70px var(--apb-rx-glow-soft),inset 0 0 40px rgba(0,0,0,.5)}
.apb-rx-hspt-core b{font-size:clamp(18px,2.4vw,24px);font-weight:800}
.apb-rx-hspt-core span{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.62);max-width:14ch}
.apb-rx-hspt-tag{position:absolute;padding:8px 13px;border-radius:var(--apb-rx-radius-pill,999px);font-size:12px;font-weight:700;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.apb-rx-hspt-tag--a{top:6%;left:2%}
.apb-rx-hspt-tag--b{bottom:10%;right:0%}
@media(max-width:880px){.apb-rx-hspt-wrap{grid-template-columns:1fr}.apb-rx-hspt-orb{max-width:340px}}
@media (prefers-reduced-motion:reduce){.apb-rx-hspt-orb .spin{animation:none}.apb-rx-hspt-glow{animation:none}}

/* ============================ inline_collage ============================ */
.apb-rx-hinl{position:relative;overflow:hidden;padding:clamp(64px,11vh,120px) 24px clamp(56px,9vh,100px);
  background:repeating-linear-gradient(180deg,transparent 0 119px,color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 5%,transparent) 119px 120px),
    color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 3%,var(--apb-rx-surface,#fff))}
.apb-rx-hinl-wrap{max-width:1080px;margin:0 auto;position:relative}
.apb-rx-hinl h1{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:600;
  font-size:clamp(52px,10vw,132px);letter-spacing:-.045em;line-height:1.02;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hinl-l{display:flex;align-items:center;gap:.18em;flex-wrap:wrap}
.apb-rx-hinl-l--2{padding-left:clamp(30px,14vw,210px)}
.apb-rx-hinl-l--3{padding-left:clamp(0px,3vw,40px)}
.apb-rx-hinl-img{display:inline-block;width:clamp(120px,17vw,240px);height:.82em;border-radius:calc(var(--apb-rx-radius) * .5);
  overflow:hidden;vertical-align:-.08em;position:relative}
.apb-rx-hinl-img img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-hinl-img i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--apb-rx-brand);font-style:normal;font-weight:800;font-size:.5em;text-shadow:0 2px 14px rgba(0,0,0,.4)}
.apb-rx-hinl-ghost{color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 40%,transparent)}
.apb-rx-hinl-doodle{width:clamp(56px,7vw,96px);height:auto;margin-left:.1em;flex:none}
.apb-rx-hinl-doodle path,.apb-rx-hinl-doodle circle,.apb-rx-hinl-doodle rect{fill:none;stroke:var(--apb-rx-brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.apb-rx-hinl-stack{position:absolute;left:clamp(-10px,-1vw,0px);bottom:clamp(-24px,-3vh,-10px);width:clamp(150px,19vw,250px);z-index:1;transform:rotate(-5deg)}
.apb-rx-hinl-stack::before{content:"";position:absolute;inset:8px -10px -10px 10px;background:color-mix(in srgb,var(--apb-rx-brand) 80%,var(--apb-rx-ink,#0b0d12));transform:rotate(5deg)}
.apb-rx-hinl-stack::after{content:"";position:absolute;inset:4px -4px -4px 6px;background:var(--apb-rx-surface,#fff);transform:rotate(2.5deg);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-hinl-stack img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:5/4;object-fit:cover;border:8px solid var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-hinl-note{display:flex;align-items:flex-start;gap:8px;max-width:34ch;margin:26px 0 0 auto;
  font-size:13.5px;line-height:1.6;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 72%,transparent)}
.apb-rx-hinl-note b{color:var(--apb-rx-brand);font-weight:800;flex:none}
.apb-rx-hinl .apb-rx-h2ctas{justify-content:center;margin-top:clamp(30px,6vh,54px)}
.apb-rx-hinl-cue{position:absolute;right:-6px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;
  font-size:10.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 55%,transparent)}
.apb-rx-hinl-cue span{writing-mode:vertical-rl}
.apb-rx-hinl-cue svg{width:20px;height:20px;color:var(--apb-rx-brand);animation:hinlBob calc(1.8s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes hinlBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(max-width:820px){
  .apb-rx-hinl-stack{position:relative;left:0;bottom:0;margin:30px auto 0;transform:rotate(-4deg)}
  .apb-rx-hinl-cue{display:none}
  .apb-rx-hinl-note{margin:22px auto 0;max-width:46ch}
}
@media (prefers-reduced-motion:reduce){.apb-rx-hinl-cue svg{animation:none}}

/* ============================ scribble_dark ============================ */
.apb-rx-hscr{position:relative;overflow:hidden;padding:clamp(64px,11vh,120px) 24px;text-align:center;
  background:linear-gradient(color-mix(in srgb,#fff 4%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,#fff 4%,transparent) 1px,transparent 1px),
    radial-gradient(70vmax 50vmax at 50% -20%,color-mix(in srgb,var(--apb-rx-brand) 14%,transparent),transparent 60%),
    var(--apb-rx-ink,#0b0d12);
  background-size:72px 72px,72px 72px,auto,auto;color:#fff}
.apb-rx-hscr::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 70% at 50% 45%,transparent 55%,rgba(0,0,0,.55))}
.apb-rx-hscr-wrap{position:relative;z-index:1;max-width:920px;margin:0 auto}
.apb-rx-hscr-ey{font-size:12.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
  color:color-mix(in srgb,var(--apb-rx-brand) 60%,#fff);margin-bottom:22px}
.apb-rx-hscr h1{margin:0 auto 24px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(38px,6.2vw,74px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.08);
  max-width:19ch;text-wrap:balance}
.apb-rx-hscr h1 em{font-style:normal;color:color-mix(in srgb,var(--apb-rx-brand) 72%,#fff)}
.apb-rx-hscr-circ{position:relative;display:inline-block;padding:0 .12em}
.apb-rx-hscr-circ svg{position:absolute;inset:-.28em -.34em;width:calc(100% + .68em);height:calc(100% + .56em);overflow:visible;pointer-events:none}
.apb-rx-hscr-circ path{fill:none;stroke:color-mix(in srgb,var(--apb-rx-brand) 78%,#fff);stroke-width:3;stroke-linecap:round;
  stroke-dasharray:640;stroke-dashoffset:640;animation:hscrDraw calc(1.1s / var(--apb-rx-dur,1)) ease-out forwards;animation-delay:.5s}
@keyframes hscrDraw{to{stroke-dashoffset:0}}
.apb-rx-hscr-lead{margin:0 auto 30px;color:rgba(255,255,255,.7);font-size:clamp(15px,1.6vw,17.5px);line-height:1.65;max-width:56ch}
.apb-rx-hscr-feats{display:inline-flex;gap:4px;flex-wrap:wrap;justify-content:center;padding:7px;margin-bottom:clamp(30px,6vh,46px);
  border-radius:var(--apb-rx-radius-pill,999px);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.apb-rx-hscr-feat{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--apb-rx-radius-pill,999px);
  font-size:13px;font-weight:600;color:rgba(255,255,255,.82)}
.apb-rx-hscr-feat:hover{background:rgba(255,255,255,.07)}
.apb-rx-hscr-feat svg{width:15px;height:15px;color:color-mix(in srgb,var(--apb-rx-brand) 65%,#fff);flex:none}
.apb-rx-hscr .apb-rx-h2ctas{justify-content:center}
.apb-rx-hscr-urg{margin:16px 0 0;font-size:13.5px;color:rgba(255,255,255,.75)}
.apb-rx-hscr-trust{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:clamp(28px,5vh,40px)}
.apb-rx-hscr-avs{display:flex}
.apb-rx-hscr-avs img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--apb-rx-ink,#0b0d12);margin-right:-9px}
.apb-rx-hscr-stars{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.apb-rx-hscr-stars i{display:flex;gap:2px}
.apb-rx-hscr-stars svg{width:15px;height:15px;fill:color-mix(in srgb,var(--apb-rx-brand) 70%,#fff)}
.apb-rx-hscr-stars span{font-size:12.5px;color:rgba(255,255,255,.65)}
.apb-rx-hscr-press{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:26px;
  font-size:12px;font-weight:700;letter-spacing:.06em;color:rgba(255,255,255,.45)}
.apb-rx-hscr-press b{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.6)}
.apb-rx-hscr-press b i{width:18px;height:18px;border-radius:4px;background:rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;
  font-style:normal;font-size:10px;font-weight:800;color:#fff}
@media (prefers-reduced-motion:reduce){.apb-rx-hscr-circ path{animation:none;stroke-dashoffset:0}}

/* ============================ doodle_grid ============================ */
.apb-rx-hddl{position:relative;padding:clamp(64px,11vh,120px) 24px clamp(48px,8vh,84px);background:var(--apb-rx-surface,#fff)}
.apb-rx-hddl-wrap{max-width:1140px;margin:0 auto;text-align:center}
.apb-rx-hddl h1{margin:0 auto 20px;font-family:var(--apb-rx-font-display,inherit);font-weight:900;
  font-size:clamp(42px,7vw,86px);letter-spacing:var(--apb-rx-display-tracking,-.035em);line-height:var(--apb-rx-display-leading,1.02);
  color:var(--apb-rx-ink,#0b0d12);max-width:16ch;text-wrap:balance}
.apb-rx-hddl-lead{margin:0 auto 22px;color:var(--apb-rx-muted,#6b7280);font-size:clamp(16px,1.8vw,20px);line-height:1.6;max-width:56ch}
.apb-rx-hddl-lead b{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:700}
.apb-rx-hddl-author{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);
  text-decoration:underline;text-underline-offset:3px;margin-bottom:26px}
.apb-rx-hddl-author i{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-style:normal;font-size:12px;font-weight:800}
.apb-rx-hddl .apb-rx-h2ctas{justify-content:center;margin-bottom:clamp(36px,7vh,60px)}
.apb-rx-hddl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,24px);text-align:left}
.apb-rx-hddl-card{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9);
  background:var(--apb-rx-surface-2,#fff);overflow:hidden;transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t-fast,.16s),border-color var(--apb-rx-t-fast,.16s)}
.apb-rx-hddl-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2);border-color:var(--apb-rx-line-accent)}
.apb-rx-hddl-fig{aspect-ratio:1;display:flex;align-items:center;justify-content:center;padding:14%}
.apb-rx-hddl-img{padding:0}
.apb-rx-hddl-img img{width:100%;height:100%;object-fit:cover}
.apb-rx-hddl-fig svg{width:100%;height:100%;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-hddl-fig path,.apb-rx-hddl-fig circle,.apb-rx-hddl-fig rect,.apb-rx-hddl-fig ellipse{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.apb-rx-hddl-fig .acc{stroke:var(--apb-rx-brand)}
.apb-rx-hddl-card figcaption{padding:12px 16px 15px;font-size:14px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);
  border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-hddl-card:hover .apb-rx-hddl-fig svg{animation:hddlWiggle calc(.5s / var(--apb-rx-dur,1)) ease-in-out}
@keyframes hddlWiggle{0%,100%{transform:rotate(0)}30%{transform:rotate(-2.5deg)}65%{transform:rotate(2deg)}}
@media(max-width:880px){.apb-rx-hddl-grid{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){.apb-rx-hddl-card:hover .apb-rx-hddl-fig svg{animation:none}}
/* ==== assets/pages/component-heroes6.css ==== */
/* Award-style hero recipes (APB_Section_Components_Heroes2) — partition 6. Tokens only; every brand-tinted
   value derives from --apb-rx-brand; scrolljack heroes read --apb-p and default to their revealed end-state.
   Shared .apb-rx-h2cta* button component is reused (not redefined) for every CTA row here. */

/* ============================ tabbed_app ============================ */
.apb-rx-htab{position:relative;overflow:hidden;padding:clamp(60px,10vh,110px) 24px 0;
  background:linear-gradient(180deg,var(--apb-rx-soft,#f4f5f7),var(--apb-rx-surface,#fff) 70%)}
.apb-rx-htab-wrap{max-width:1060px;margin:0 auto;text-align:center}
.apb-rx-htab h1{margin:0 auto 26px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(40px,6.4vw,76px);letter-spacing:var(--apb-rx-display-tracking,-.03em);line-height:var(--apb-rx-display-leading,1.02);
  color:var(--apb-rx-ink,#0b0d12);max-width:18ch;text-wrap:balance}
.apb-rx-htab h1 em{font-style:normal;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-htab .apb-rx-h2ctas{justify-content:center}
.apb-rx-htab-tabs{display:inline-flex;gap:4px;margin:34px auto 0;padding:5px;border-radius:var(--apb-rx-radius-pill,999px);
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 6%,var(--apb-rx-surface,#fff));
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-htab-tab{padding:9px 20px;border-radius:var(--apb-rx-radius-pill,999px);cursor:pointer;
  font-size:14px;font-weight:600;color:var(--apb-rx-muted,#6b7280);transition:color var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s)}
.apb-rx-htab-tab:hover{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-htab-radio{position:absolute;opacity:0;pointer-events:none}
.apb-rx-htab-radio:focus-visible + .apb-rx-htab-tab,
.apb-rx-htab-radio:focus-visible ~ .apb-rx-htab-wrap .apb-rx-htab-tab{outline:2px solid var(--apb-rx-ring)}
.apb-rx-htab-win{max-width:1060px;margin:clamp(28px,5vh,48px) auto -2px;border-radius:calc(var(--apb-rx-radius) * 1.2) calc(var(--apb-rx-radius) * 1.2) 0 0;
  overflow:hidden;background:var(--apb-rx-surface-2,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-bottom:0;
  box-shadow:0 -8px 24px -12px var(--apb-rx-glow-soft),var(--apb-rx-shadow-3);text-align:left}
.apb-rx-htab-bar{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 3%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-bar i{width:11px;height:11px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 14%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-bar span{margin-left:8px;padding:5px 14px;border-radius:var(--apb-rx-radius-pill,999px);font-size:11.5px;color:var(--apb-rx-muted,#6b7280);
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 6%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-panel{display:none;min-height:clamp(300px,44vh,460px);grid-template-columns:170px 1fr;
  animation:htabIn calc(.35s / var(--apb-rx-dur,1)) ease}
@keyframes htabIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.apb-rx-htab-shot{grid-column:1/-1}
.apb-rx-htab-shot img{display:block;width:100%;height:auto}
.apb-rx-htab-radio:nth-of-type(1):checked ~ .apb-rx-htab-win .apb-rx-htab-panel:nth-of-type(1),
.apb-rx-htab-radio:nth-of-type(2):checked ~ .apb-rx-htab-win .apb-rx-htab-panel:nth-of-type(2),
.apb-rx-htab-radio:nth-of-type(3):checked ~ .apb-rx-htab-win .apb-rx-htab-panel:nth-of-type(3),
.apb-rx-htab-radio:nth-of-type(4):checked ~ .apb-rx-htab-win .apb-rx-htab-panel:nth-of-type(4){display:grid}
.apb-rx-htab-radio:nth-of-type(1):checked ~ .apb-rx-htab-wrap .apb-rx-htab-tabs .apb-rx-htab-tab:nth-of-type(1),
.apb-rx-htab-radio:nth-of-type(2):checked ~ .apb-rx-htab-wrap .apb-rx-htab-tabs .apb-rx-htab-tab:nth-of-type(2),
.apb-rx-htab-radio:nth-of-type(3):checked ~ .apb-rx-htab-wrap .apb-rx-htab-tabs .apb-rx-htab-tab:nth-of-type(3),
.apb-rx-htab-radio:nth-of-type(4):checked ~ .apb-rx-htab-wrap .apb-rx-htab-tabs .apb-rx-htab-tab:nth-of-type(4)
  {background:var(--apb-rx-surface-2,#fff);color:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-1)}
/* skeleton primitives shared by both placeholder layouts */
.apb-rx-htab-sk{border-radius:calc(var(--apb-rx-radius) * .5);height:11px;
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 8%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-sk--brand{background:color-mix(in srgb,var(--apb-rx-brand) 22%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-card{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .8);
  background:var(--apb-rx-surface-2,#fff);padding:14px;display:flex;flex-direction:column;gap:9px}
.apb-rx-htab-side{border-right:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);padding:16px 12px;display:flex;flex-direction:column;gap:10px;
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 2%,var(--apb-rx-surface-2,#fff))}
.apb-rx-htab-main{padding:18px;display:flex;flex-direction:column;gap:14px}
.apb-rx-htab-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.apb-rx-htab-chart{flex:1;display:flex;align-items:flex-end;gap:7px;padding:14px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * .8);min-height:130px}
.apb-rx-htab-chart i{flex:1;border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-surface-2,#fff));height:calc(var(--h) * 1%)}
.apb-rx-htab-chart i:nth-child(3n){background:var(--apb-rx-brand)}
.apb-rx-htab-doc{padding:26px clamp(24px,8vw,90px);display:flex;flex-direction:column;gap:12px}
@media(max-width:720px){
  .apb-rx-htab-panel{grid-template-columns:1fr}.apb-rx-htab-side{display:none}
  .apb-rx-htab-stats{grid-template-columns:1fr}
  .apb-rx-htab-tabs{flex-wrap:wrap;border-radius:calc(var(--apb-rx-radius) * 1.2)}
}
@media (prefers-reduced-motion:reduce){.apb-rx-htab-panel{animation:none}}

/* ============================ card_marquee family (shared .apb-rx-hcm-* + per-root canvas) ============================ */
.apb-rx-hcmq,.apb-rx-hcmd,.apb-rx-hcmh{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(80vmax 60vmax at -10% -20%,color-mix(in srgb,var(--apb-rx-brand) 30%,transparent),transparent 55%),
    color-mix(in srgb,var(--apb-rx-brand) 42%,var(--apb-rx-ink,#0b0d12))}
.apb-rx-hcmh{background:radial-gradient(80vmax 60vmax at 50% -30%,color-mix(in srgb,var(--apb-rx-brand) 30%,transparent),transparent 60%),
    color-mix(in srgb,var(--apb-rx-brand) 42%,var(--apb-rx-ink,#0b0d12));padding:clamp(56px,10vh,100px) 0 clamp(40px,7vh,72px)}
.apb-rx-hcm-wrap--split{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,64px);
  align-items:center;min-height:min(760px,92vh)}
.apb-rx-hcm-copy{position:relative;z-index:1;padding:clamp(48px,8vh,80px) 0 clamp(48px,8vh,80px) clamp(24px,4vw,56px)}
.apb-rx-hcm-copy--c{max-width:820px;margin:0 auto;text-align:center;padding:0 24px}
.apb-rx-hcm-ey{display:inline-flex;align-items:center;padding:8px 18px;border-radius:var(--apb-rx-radius-pill,999px);
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.06);
  font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);margin-bottom:24px}
.apb-rx-hcmq h1,.apb-rx-hcmd h1,.apb-rx-hcmh h1{margin:0 0 20px;font-family:var(--apb-rx-font-display,inherit);
  font-weight:var(--apb-rx-display-weight,800);font-size:clamp(38px,5.8vw,70px);letter-spacing:var(--apb-rx-display-tracking,-.02em);
  line-height:var(--apb-rx-display-leading,1.06);text-wrap:balance;max-width:15ch}
.apb-rx-hcmh h1{max-width:none}
.apb-rx-hcm-lead{margin:0 0 30px;color:rgba(255,255,255,.78);font-size:clamp(15px,1.6vw,18px);line-height:1.65;max-width:52ch}
.apb-rx-hcm-copy--c .apb-rx-hcm-lead{margin-left:auto;margin-right:auto}
.apb-rx-hcm-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:clamp(32px,6vh,52px)}
.apb-rx-hcm-copy--c .apb-rx-hcm-ctas{justify-content:center}
.apb-rx-hcm-feats{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,36px)}
.apb-rx-hcm-feat{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.apb-rx-hcm-feat svg{width:26px;height:26px;color:#fff;opacity:.9;margin-top:2px}
.apb-rx-hcm-feat b{display:block;font-size:16px;font-weight:700;margin-bottom:5px}
.apb-rx-hcm-feat span{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.66)}
/* vertical columns (card_marquee, card_marquee_diagonal) */
.apb-rx-hcm-media--v{position:relative;height:min(760px,92vh);display:flex;gap:clamp(14px,1.6vw,22px);padding:0 clamp(16px,3vw,40px) 0 0;
  mask:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent);-webkit-mask:linear-gradient(180deg,transparent,#000 9%,#000 91%,transparent)}
.apb-rx-hcmd .apb-rx-hcm-media--v{mask:linear-gradient(115deg,transparent 2%,#000 18%,#000 88%,transparent 99%);
  -webkit-mask:linear-gradient(115deg,transparent 2%,#000 18%,#000 88%,transparent 99%)}
.apb-rx-hcm-field{position:absolute;inset:-34% -18% -34% -10%;display:flex;gap:clamp(14px,1.5vw,20px);transform:rotate(-14deg)}
.apb-rx-hcm-col{flex:1;overflow:hidden}
.apb-rx-hcm-colin{display:flex;flex-direction:column;gap:clamp(14px,1.6vw,22px);animation:hcmUpDown calc(34s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-hcm-col--rev .apb-rx-hcm-colin{animation-name:hcmDownUp;animation-duration:calc(40s / var(--apb-rx-dur,1))}
.apb-rx-hcm-col--slow .apb-rx-hcm-colin{animation-duration:calc(52s / var(--apb-rx-dur,1))}
.apb-rx-hcm-col:hover .apb-rx-hcm-colin,.apb-rx-hcm-row:hover .apb-rx-hcm-rowin{animation-play-state:paused}
@keyframes hcmUpDown{to{transform:translateY(-50%)}}
@keyframes hcmDownUp{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.apb-rx-hcm-card{flex:none;border-radius:calc(var(--apb-rx-radius) * 1.4);overflow:hidden;background:rgba(255,255,255,.06);
  box-shadow:0 18px 44px -18px rgba(11,13,18,.45)}
.apb-rx-hcm-card--sk{background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.04))}
.apb-rx-hcm-card img{display:block;width:100%;aspect-ratio:var(--ar,3/4);object-fit:cover}
/* horizontal rows (card_marquee_horizontal) */
.apb-rx-hcm-media--h{display:flex;flex-direction:column;gap:clamp(14px,2vh,22px);
  mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.apb-rx-hcm-row{overflow:hidden}
.apb-rx-hcm-rowin{display:flex;gap:clamp(14px,1.6vw,22px);width:max-content;padding-right:clamp(14px,1.6vw,22px);
  animation:hcmLeftRight calc(44s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-hcm-row--rev .apb-rx-hcm-rowin{animation-name:hcmRightLeft;animation-duration:calc(52s / var(--apb-rx-dur,1))}
@keyframes hcmLeftRight{to{transform:translateX(-50%)}}
@keyframes hcmRightLeft{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.apb-rx-hcm-media--h .apb-rx-hcm-card{height:clamp(150px,24vh,220px);aspect-ratio:var(--ar,4/3)}
@media(max-width:900px){
  .apb-rx-hcm-wrap--split{grid-template-columns:1fr;min-height:0}
  .apb-rx-hcm-wrap--split .apb-rx-hcm-copy{padding:clamp(44px,7vh,64px) clamp(20px,4vw,32px) 8px}
  .apb-rx-hcm-media--v{height:52vh;padding:0 clamp(20px,4vw,32px) 32px}
  .apb-rx-hcm-feats{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .apb-rx-hcm-colin,.apb-rx-hcm-rowin{animation:none}
  .apb-rx-hcm-media--v,.apb-rx-hcm-media--h{mask:none;-webkit-mask:none}
  .apb-rx-hcm-row{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
/* ==== assets/pages/component-portfolio.css ==== */
/* PORTFOLIO family — shared chrome (head/lead/CTA/fallback) + batch-1 variants. Tokens only. */
.apb-rx-pf-head{margin-bottom:clamp(24px,4vh,40px)}
.apb-rx-pf-head--c{text-align:center}
.apb-rx-pf-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(30px,4.4vw,50px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:var(--apb-rx-display-leading,1.06);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pf-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.65;max-width:56ch}
.apb-rx-pf-head--c .apb-rx-pf-lead{margin-inline:auto}
.apb-rx-pf-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(22px,3.5vh,32px)}
.apb-rx-pf-ctarow--c{justify-content:center}
.apb-rx-pf-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);
  font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-pf-cta:hover{transform:translateY(-2px)}
.apb-rx-pf-cta--primary{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 12px 30px -10px var(--apb-rx-glow)}
.apb-rx-pf-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pf-cta--outline:hover{border-color:var(--apb-rx-line-accent)}
.apb-rx-pf-cta--dark.apb-rx-pf-cta--outline{color:#fff;border-color:rgba(255,255,255,.35)}
.apb-rx-pf-cta--dark.apb-rx-pf-cta--outline:hover{border-color:#fff}
/* fallback grid (variant with no renderer yet) */
.apb-rx-pf-fallback{padding:clamp(56px,10vh,110px) 24px}
.apb-rx-pf-fbgrid{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),1fr);gap:16px;max-width:1160px;margin:0 auto}
.apb-rx-pf-fbcard{display:block;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9);
  overflow:hidden;text-decoration:none;background:var(--apb-rx-surface,#fff);transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-pf-fbcard:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-pf-fbcard img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.apb-rx-pf-fbcard span{display:block;padding:12px 14px}
.apb-rx-pf-fbcard b{display:block;font-size:14.5px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pf-fbcard i{font-style:normal;font-size:12px;color:var(--apb-rx-muted,#6b7280)}
@media (prefers-reduced-motion:reduce){.apb-rx-pf-cta,.apb-rx-pf-fbcard{transition:none}}

/* ---------- 1. hover_list ---------- */
.apb-rx-pflist{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pflist-wrap{max-width:1040px;margin:0 auto}
.apb-rx-pflist-row{position:relative;display:flex;align-items:baseline;gap:18px;padding:clamp(18px,3vh,28px) 6px;
  border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);text-decoration:none;transition:padding-left var(--apb-rx-t,.28s)}
.apb-rx-pflist-row:last-child{border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pflist-row:hover{padding-left:18px}
.apb-rx-pflist-num{font-size:12px;font-weight:700;color:var(--apb-rx-muted,#6b7280);font-variant-numeric:tabular-nums;flex:none}
.apb-rx-pflist-name{font-family:var(--apb-rx-font-display,inherit);font-weight:700;font-size:clamp(22px,3.4vw,40px);
  letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12);transition:color var(--apb-rx-t-fast,.16s)}
.apb-rx-pflist-row:hover .apb-rx-pflist-name{color:var(--apb-rx-accent-text)}
.apb-rx-pflist-meta{margin-left:auto;display:flex;align-items:center;gap:16px;flex:none}
.apb-rx-pflist-tag{font-size:12px;color:var(--apb-rx-muted,#6b7280);white-space:nowrap}
.apb-rx-pflist-yr{font-size:12px;font-weight:600;color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-pflist-arw svg{width:18px;height:18px}
.apb-rx-pflist-arw{color:var(--apb-rx-accent-text);opacity:0;transform:translateX(-6px);transition:opacity var(--apb-rx-t-fast,.16s),transform var(--apb-rx-t-fast,.16s)}
.apb-rx-pflist-row:hover .apb-rx-pflist-arw,.apb-rx-pflist-row:focus-visible .apb-rx-pflist-arw{opacity:1;transform:none}
.apb-rx-pflist-prev{position:absolute;right:16%;top:50%;width:clamp(160px,20vw,260px);aspect-ratio:4/3;z-index:2;pointer-events:none;
  transform:translateY(-50%) rotate(-3deg) scale(.86);opacity:0;border-radius:calc(var(--apb-rx-radius) * .8);overflow:hidden;
  box-shadow:var(--apb-rx-shadow-3);transition:opacity var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s)}
.apb-rx-pflist-prev img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pflist-row:hover .apb-rx-pflist-prev,.apb-rx-pflist-row:focus-visible .apb-rx-pflist-prev{opacity:1;transform:translateY(-50%) rotate(-2deg) scale(1)}
@media(max-width:760px){.apb-rx-pflist-prev{display:none}.apb-rx-pflist-tag{display:none}}
@media (prefers-reduced-motion:reduce){.apb-rx-pflist-row,.apb-rx-pflist-prev,.apb-rx-pflist-arw{transition:none}}

/* ---------- 2. case_rows ---------- */
.apb-rx-pfrows{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfrows-wrap{max-width:1120px;margin:0 auto}
.apb-rx-pfrows-item{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,4vw,56px);align-items:center;
  padding:clamp(28px,5vh,44px) 0;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfrows-item:nth-child(even){grid-template-columns:.85fr 1.15fr}
.apb-rx-pfrows-item:nth-child(even) .apb-rx-pfrows-media{order:2}
.apb-rx-pfrows-media{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;aspect-ratio:16/11;
  box-shadow:var(--apb-rx-shadow-2);background:var(--apb-rx-soft)}
.apb-rx-pfrows-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfrows-item:hover .apb-rx-pfrows-media img{transform:scale(1.04)}
.apb-rx-pfrows-ph{display:block;width:100%;aspect-ratio:16/11;background:var(--apb-rx-soft)}
.apb-rx-pfrows-cat{position:absolute;top:14px;left:14px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;
  color:#fff;background:rgba(11,13,18,.55);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px}
.apb-rx-pfrows-copy h3{margin:0 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:750;
  font-size:clamp(22px,2.6vw,30px);letter-spacing:-.015em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfrows-copy p{margin:0 0 18px;color:var(--apb-rx-muted,#6b7280);font-size:14.5px;line-height:1.65}
.apb-rx-pfrows-stats{display:flex;gap:clamp(18px,3vw,36px);padding:14px 0;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);margin-bottom:18px}
.apb-rx-pfrows-stats b{display:block;font-size:22px;font-weight:800;color:var(--apb-rx-accent-text)}
.apb-rx-pfrows-stats span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfrows-cta{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;text-decoration:none;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfrows-cta svg{width:15px;height:15px;color:var(--apb-rx-accent-text);transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-pfrows-cta:hover svg{transform:translate(3px,-3px)}
@media(max-width:820px){.apb-rx-pfrows-item,.apb-rx-pfrows-item:nth-child(even){grid-template-columns:1fr}
  .apb-rx-pfrows-item:nth-child(even) .apb-rx-pfrows-media{order:0}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfrows-media img{transition:none}}

/* ---------- 3. masonry_filter (CSS-only radio filter; suffix-matched so uid prefix can vary per instance) ---------- */
.apb-rx-pfmas{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfmas-wrap{max-width:1160px;margin:0 auto;position:relative}
.apb-rx-pfmas-top{display:flex;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(24px,4vh,40px)}
.apb-rx-pfmas input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.apb-rx-pfmas-pills{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.apb-rx-pfmas-pill{padding:8px 16px;border-radius:var(--apb-rx-radius-pill,999px);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  font-size:13px;font-weight:600;color:var(--apb-rx-muted,#6b7280);cursor:pointer;transition:all var(--apb-rx-t-fast,.16s);white-space:nowrap}
.apb-rx-pfmas-pill:hover{border-color:var(--apb-rx-line-accent);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfmas input[id$="-all"]:focus-visible ~ .apb-rx-pfmas-top label[for$="-all"],
.apb-rx-pfmas input[id$="-c0"]:focus-visible ~ .apb-rx-pfmas-top label[for$="-c0"],
.apb-rx-pfmas input[id$="-c1"]:focus-visible ~ .apb-rx-pfmas-top label[for$="-c1"],
.apb-rx-pfmas input[id$="-c2"]:focus-visible ~ .apb-rx-pfmas-top label[for$="-c2"],
.apb-rx-pfmas input[id$="-c3"]:focus-visible ~ .apb-rx-pfmas-top label[for$="-c3"]{outline:2px solid var(--apb-rx-ring);outline-offset:2px}
.apb-rx-pfmas input[id$="-all"]:checked ~ .apb-rx-pfmas-top label[for$="-all"],
.apb-rx-pfmas input[id$="-c0"]:checked ~ .apb-rx-pfmas-top label[for$="-c0"],
.apb-rx-pfmas input[id$="-c1"]:checked ~ .apb-rx-pfmas-top label[for$="-c1"],
.apb-rx-pfmas input[id$="-c2"]:checked ~ .apb-rx-pfmas-top label[for$="-c2"],
.apb-rx-pfmas input[id$="-c3"]:checked ~ .apb-rx-pfmas-top label[for$="-c3"]{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-pfmas input[id$="-c0"]:checked ~ .apb-rx-pfmas-grid .apb-rx-pfmas-tile:not(.cat-1),
.apb-rx-pfmas input[id$="-c1"]:checked ~ .apb-rx-pfmas-grid .apb-rx-pfmas-tile:not(.cat-2),
.apb-rx-pfmas input[id$="-c2"]:checked ~ .apb-rx-pfmas-grid .apb-rx-pfmas-tile:not(.cat-3),
.apb-rx-pfmas input[id$="-c3"]:checked ~ .apb-rx-pfmas-grid .apb-rx-pfmas-tile:not(.cat-4){display:none}
.apb-rx-pfmas-grid{columns:3 300px;column-gap:16px}
.apb-rx-pfmas-tile{position:relative;display:block;break-inside:avoid;margin-bottom:16px;border-radius:calc(var(--apb-rx-radius) * .9);
  overflow:hidden;text-decoration:none;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-pfmas-tile img{width:100%;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfmas-tile:hover img{transform:scale(1.05)}
.apb-rx-pfmas-ol{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;
  background:linear-gradient(185deg,transparent 45%,rgba(11,13,18,.72));opacity:0;transition:opacity var(--apb-rx-t,.28s)}
.apb-rx-pfmas-tile:hover .apb-rx-pfmas-ol,.apb-rx-pfmas-tile:focus-visible .apb-rx-pfmas-ol{opacity:1}
@media (hover:none){.apb-rx-pfmas-ol{opacity:1}}
.apb-rx-pfmas-ol b{color:#fff;font-size:16px;font-weight:750;letter-spacing:-.01em}
.apb-rx-pfmas-ol span{color:rgba(255,255,255,.75);font-size:12px;margin-top:2px}
@media (prefers-reduced-motion:reduce){.apb-rx-pfmas-tile img{transition:none}.apb-rx-pfmas-ol{opacity:1;transition:none}}

/* ---------- 4. bento ---------- */
.apb-rx-pfbento{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfbento-wrap{max-width:1160px;margin:0 auto}
.apb-rx-pfbento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px;grid-auto-flow:dense}
.apb-rx-pfbento-tile{position:relative;border-radius:calc(var(--apb-rx-radius) * .9);overflow:hidden;display:block;text-decoration:none;
  box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-pfbento-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfbento-tile:hover img{transform:scale(1.05)}
.apb-rx-pfbento-tile:first-of-type{grid-column:span 2;grid-row:span 2}
.apb-rx-pfbento-cap{position:absolute;left:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;max-width:calc(100% - 24px);
  background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px;
  font-size:12.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);opacity:0;transform:translateY(6px);transition:opacity var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-pfbento-cap i{width:6px;height:6px;border-radius:50%;background:var(--apb-rx-brand);flex:none}
.apb-rx-pfbento-tile:hover .apb-rx-pfbento-cap,.apb-rx-pfbento-tile:focus-visible .apb-rx-pfbento-cap{opacity:1;transform:none}
@media (hover:none){.apb-rx-pfbento-cap{opacity:1;transform:none}}
.apb-rx-pfbento-feat{grid-column:span 2;grid-row:span 2;border-radius:calc(var(--apb-rx-radius) * .9);padding:clamp(20px,3vw,32px);
  display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;position:relative;overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 88%,#000),color-mix(in srgb,var(--apb-rx-brand) 55%,#000))}
.apb-rx-pfbento-feat::before{content:"";position:absolute;inset:0;opacity:.35;
  background-image:radial-gradient(color-mix(in srgb,#fff 20%,transparent) 1px,transparent 1.4px);background-size:22px 22px}
.apb-rx-pfbento-feat em{position:relative;font-style:normal;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.apb-rx-pfbento-feat b{position:relative;margin:8px 0 6px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:clamp(20px,2.4vw,28px);letter-spacing:-.015em;color:#fff;line-height:1.15}
.apb-rx-pfbento-feat span{position:relative;color:rgba(255,255,255,.8);font-size:13.5px;line-height:1.55;margin-bottom:14px}
.apb-rx-pfbento-feat .go{position:relative;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#fff}
.apb-rx-pfbento-feat .go svg{width:14px;height:14px;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-pfbento-feat:hover .go svg{transform:translate(3px,-3px)}
@media(max-width:860px){.apb-rx-pfbento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfbento-tile img{transition:none}.apb-rx-pfbento-cap{opacity:1;transform:none;transition:none}}

/* ---------- 5. split_sticky ---------- */
.apb-rx-pfstick{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfstick-wrap{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,5vw,72px);align-items:start}
.apb-rx-pfstick-left{position:sticky;top:clamp(70px,12vh,120px)}
.apb-rx-pfstick-ix{display:flex;flex-direction:column;gap:2px}
.apb-rx-pfstick-ix a{display:flex;align-items:baseline;gap:12px;padding:10px 12px;border-radius:calc(var(--apb-rx-radius) * .6);
  text-decoration:none;color:var(--apb-rx-muted,#6b7280);font-size:15px;font-weight:600;transition:background var(--apb-rx-t-fast,.16s),color var(--apb-rx-t-fast,.16s)}
.apb-rx-pfstick-ix a:hover{background:var(--apb-rx-soft);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfstick-ix i{font-style:normal;font-size:11px;font-weight:700;color:var(--apb-rx-fg-subtle,#a1a1aa);font-variant-numeric:tabular-nums}
.apb-rx-pfstick-ix span{margin-left:auto;font-size:12px;font-weight:500;color:var(--apb-rx-fg-subtle,#a1a1aa);white-space:nowrap}
.apb-rx-pfstick-right{display:flex;flex-direction:column;gap:clamp(20px,3vh,32px)}
.apb-rx-pfstick-card{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;box-shadow:var(--apb-rx-shadow-2);display:block;text-decoration:none}
.apb-rx-pfstick-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfstick-card:hover img{transform:scale(1.04)}
.apb-rx-pfstick-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:26px 18px 14px;
  background:linear-gradient(transparent,rgba(11,13,18,.7))}
.apb-rx-pfstick-bar b{color:#fff;font-size:16px;font-weight:750;letter-spacing:-.01em}
.apb-rx-pfstick-bar span{margin-left:auto;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.75);white-space:nowrap}
@media(max-width:820px){.apb-rx-pfstick-wrap{grid-template-columns:1fr}.apb-rx-pfstick-left{position:static}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfstick-card img{transition:none}}

/* ---------- 6. carousel_snap (dark) ---------- */
.apb-rx-pfcar{padding:clamp(56px,10vh,110px) 0;background:var(--apb-rx-ink,#0b0d12);overflow:hidden}
.apb-rx-pfcar .apb-rx-pf-head{max-width:1120px;margin:0 auto;padding:0 24px}
.apb-rx-pfcar .apb-rx-pf-head h2{color:#fff}
.apb-rx-pfcar-head{max-width:1120px;margin:0 auto clamp(24px,4vh,40px);padding:0 24px;display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
.apb-rx-pfcar-head .apb-rx-pf-head{margin-bottom:0}
.apb-rx-pfcar-hint{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap}
.apb-rx-pfcar-hint svg{width:16px;height:16px;animation:pfcarNudge calc(1.8s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes pfcarNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
.apb-rx-pfcar-rail{display:flex;gap:clamp(16px,2vw,26px);overflow-x:auto;padding:6px max(24px,calc((100vw - 1120px)/2)) 18px;
  scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.apb-rx-pfcar-rail::-webkit-scrollbar{display:none}
.apb-rx-pfcar-slide{flex:none;width:min(78vw,640px);scroll-snap-align:center;text-decoration:none}
.apb-rx-pfcar-media{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;aspect-ratio:16/10;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.apb-rx-pfcar-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfcar-slide:hover .apb-rx-pfcar-media img{transform:scale(1.04)}
.apb-rx-pfcar-num{position:absolute;top:14px;left:16px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:15px;color:#fff;background:rgba(11,13,18,.5);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 13px}
.apb-rx-pfcar-cap{display:flex;align-items:baseline;gap:12px;padding:14px 4px 0}
.apb-rx-pfcar-cap b{color:#fff;font-size:17px;font-weight:750;letter-spacing:-.01em}
.apb-rx-pfcar-cap span{color:rgba(255,255,255,.55);font-size:12.5px;white-space:nowrap}
.apb-rx-pfcar-cap i{margin-left:auto;font-style:normal;color:var(--apb-rx-accent-text);font-size:12px;font-weight:700}
@media (prefers-reduced-motion:reduce){.apb-rx-pfcar-hint svg{animation:none}.apb-rx-pfcar-media img{transition:none}}

/* ---------- 7. hover_grid ---------- */
.apb-rx-pfhov{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfhov-wrap{max-width:1160px;margin:0 auto}
.apb-rx-pfhov-row{display:flex;gap:12px;height:clamp(340px,52vh,520px)}
.apb-rx-pfhov-panel{position:relative;flex:1;border-radius:calc(var(--apb-rx-radius) * .9);overflow:hidden;text-decoration:none;
  transition:flex var(--apb-rx-t-slow,.55s) cubic-bezier(.4,0,.2,1);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-pfhov-row:hover .apb-rx-pfhov-panel{flex:.72}
.apb-rx-pfhov-panel:hover{flex:2.6}
.apb-rx-pfhov-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.apb-rx-pfhov-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(185deg,transparent 50%,rgba(11,13,18,.72))}
.apb-rx-pfhov-tag{position:absolute;top:14px;left:14px;z-index:1;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:rgba(11,13,18,.5);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 11px;white-space:nowrap}
.apb-rx-pfhov-cap{position:absolute;left:16px;right:16px;bottom:14px;z-index:1;color:#fff}
.apb-rx-pfhov-cap b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:750;font-size:clamp(15px,1.8vw,20px);
  letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-pfhov-cap span{display:block;font-size:12.5px;color:rgba(255,255,255,.75);margin-top:4px;max-width:34ch;
  max-height:0;opacity:0;overflow:hidden;transition:max-height var(--apb-rx-t-slow,.55s),opacity var(--apb-rx-t-slow,.55s)}
.apb-rx-pfhov-panel:hover .apb-rx-pfhov-cap span,.apb-rx-pfhov-panel:focus-visible .apb-rx-pfhov-cap span{max-height:60px;opacity:1}
@media (hover:none){.apb-rx-pfhov-cap span{max-height:60px;opacity:1}}
@media(max-width:820px){
  .apb-rx-pfhov-row{flex-direction:column;height:auto}
  .apb-rx-pfhov-panel{height:150px;flex:none}
  .apb-rx-pfhov-panel:hover{flex:none;height:260px}
  .apb-rx-pfhov-row:hover .apb-rx-pfhov-panel{flex:none}
  .apb-rx-pfhov-cap span{max-height:60px;opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .apb-rx-pfhov-panel,.apb-rx-pfhov-cap span{transition:none}
  .apb-rx-pfhov-row:hover .apb-rx-pfhov-panel{flex:1}
  .apb-rx-pfhov-panel:hover{flex:1}
  .apb-rx-pfhov-cap span{max-height:60px;opacity:1}
}

/* ---------- 8. spotlight_rail ---------- */
.apb-rx-pfspot{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfspot-wrap{max-width:1120px;margin:0 auto}
.apb-rx-pfspot-hero{position:relative;display:block;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;text-decoration:none;
  aspect-ratio:21/10;box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-pfspot-hero img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfspot-hero:hover img{transform:scale(1.03)}
.apb-rx-pfspot-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(11,13,18,.72) 0%,rgba(11,13,18,.25) 55%,transparent)}
.apb-rx-pfspot-copy{position:absolute;left:clamp(20px,4vw,44px);bottom:clamp(20px,4vh,40px);z-index:1;max-width:44ch}
.apb-rx-pfspot-copy em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 50%,#fff)}
.apb-rx-pfspot-copy b{display:block;margin:8px 0 8px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:clamp(24px,3.4vw,40px);letter-spacing:-.02em;color:#fff;line-height:1.08}
.apb-rx-pfspot-copy p{margin:0 0 16px;color:rgba(255,255,255,.8);font-size:14.5px;line-height:1.6}
.apb-rx-pfspot-go{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:var(--apb-rx-radius);background:#fff;color:var(--apb-rx-ink,#0b0d12);font-size:13.5px;font-weight:700}
.apb-rx-pfspot-go svg{width:14px;height:14px;color:var(--apb-rx-accent-text)}
.apb-rx-pfspot-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.apb-rx-pfspot-th{position:relative;display:block;border-radius:calc(var(--apb-rx-radius) * .8);overflow:hidden;text-decoration:none;
  aspect-ratio:4/3;box-shadow:var(--apb-rx-shadow-1);transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t-fast,.16s)}
.apb-rx-pfspot-th:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-pfspot-th img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pfspot-th span{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:700;color:#fff;
  background:rgba(11,13,18,.55);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 11px;
  max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){.apb-rx-pfspot-rail{grid-template-columns:repeat(2,1fr)}.apb-rx-pfspot-hero{aspect-ratio:4/3}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfspot-hero img,.apb-rx-pfspot-th{transition:none}}
/* ==== assets/pages/component-portfolio-2.css ==== */
/* PORTFOLIO family — batch 2 variants. Tokens only; reduced-motion fallbacks required. */

/* 1. Polaroid pile */
.apb-rx-pfpol{padding:clamp(56px,10vh,110px) 24px;overflow:hidden;
  background:radial-gradient(70vmax 50vmax at 85% -10%,var(--apb-rx-soft,#f4f5f7),transparent 60%),var(--apb-rx-surface,#fff)}
.apb-rx-pfpol-wrap{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,64px);align-items:center}
.apb-rx-pfpol-pile{position:relative;height:clamp(380px,52vh,520px)}
.apb-rx-pfpol-card{position:absolute;width:clamp(150px,17vw,230px);background:var(--apb-rx-surface,#fff);padding:10px 10px 14px;
  border-radius:calc(var(--apb-rx-radius) * .4);box-shadow:0 14px 34px -12px rgba(11,13,18,.35);text-decoration:none;
  transform:rotate(var(--rot,0deg));transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s);z-index:var(--z,1)}
.apb-rx-pfpol-card:hover{transform:rotate(0deg) translateY(-10px) scale(1.04);box-shadow:0 26px 54px -18px rgba(11,13,18,.45);z-index:9}
.apb-rx-pfpol-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-pfpol-card figcaption{padding-top:10px;text-align:center;font-size:13px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);letter-spacing:.01em}
.apb-rx-pfpol-card::before{content:"";position:absolute;top:-10px;left:50%;width:64px;height:22px;transform:translateX(-50%) rotate(calc(var(--rot,0deg) * -.5));
  background:color-mix(in srgb,var(--apb-rx-brand) 24%,rgba(255,255,255,.6));opacity:.9;clip-path:polygon(3% 15%,97% 0%,100% 85%,0% 100%)}
@media(max-width:860px){
  .apb-rx-pfpol-wrap{grid-template-columns:1fr}
  .apb-rx-pfpol-pile{height:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
  .apb-rx-pfpol-card{position:static;width:auto;--rot:0deg}
}
@media (prefers-reduced-motion:reduce){.apb-rx-pfpol-card{transition:none}}

/* 2. Minimal grid */
.apb-rx-pfmin{padding:clamp(64px,11vh,120px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfmin-wrap{max-width:1040px;margin:0 auto}
.apb-rx-pfmin-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;
  border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-ink,#0b0d12);padding-bottom:18px;margin-bottom:clamp(32px,6vh,56px)}
.apb-rx-pfmin-head h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4vw,44px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfmin-count{font-size:13px;color:var(--apb-rx-muted,#6b7280);font-variant-numeric:tabular-nums}
.apb-rx-pfmin-grid{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),1fr);gap:clamp(24px,4vw,48px) clamp(18px,3vw,32px)}
.apb-rx-pfmin-item{text-decoration:none;display:block}
.apb-rx-pfmin-media{overflow:hidden;aspect-ratio:4/5;background:var(--apb-rx-soft,#f4f5f7);display:block}
.apb-rx-pfmin-media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform var(--apb-rx-t-slow,.55s) cubic-bezier(.4,0,.2,1),opacity var(--apb-rx-t,.28s)}
.apb-rx-pfmin-item:hover img{transform:scale(1.04)}
.apb-rx-pfmin-cap{display:flex;align-items:baseline;gap:10px;padding-top:12px;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);margin-top:12px}
.apb-rx-pfmin-cap i{font-style:normal;font-size:11px;font-weight:700;color:var(--apb-rx-fg-subtle,#a1a1aa);font-variant-numeric:tabular-nums}
.apb-rx-pfmin-cap b{font-size:14.5px;font-weight:650;letter-spacing:-.005em;color:var(--apb-rx-ink,#0b0d12);transition:color var(--apb-rx-t-fast,.16s)}
.apb-rx-pfmin-item:hover .apb-rx-pfmin-cap b{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfmin-cap span{margin-left:auto;font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:760px){.apb-rx-pfmin-grid{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfmin-media img{transition:none}}

/* 3. Film strip */
.apb-rx-pffilm{padding:clamp(56px,10vh,110px) 0;background:var(--apb-rx-ink,#0b0d12);overflow:hidden}
.apb-rx-pffilm .apb-rx-pf-head{max-width:1120px;margin:0 auto clamp(26px,4vh,42px);padding:0 24px}
.apb-rx-pffilm .apb-rx-pf-head h2{color:#fff}
.apb-rx-pffilm .apb-rx-pf-head .apb-rx-eyebrow{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-pffilm-strip{position:relative;padding:26px 0;transform:rotate(-1.6deg) scale(1.02);
  background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 92%,#000);border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.apb-rx-pffilm-strip::before,.apb-rx-pffilm-strip::after{content:"";position:absolute;left:0;right:0;height:12px;
  -webkit-mask:repeating-linear-gradient(90deg,transparent 0 14px,#000 14px 26px,transparent 26px 40px);
  mask:repeating-linear-gradient(90deg,transparent 0 14px,#000 14px 26px,transparent 26px 40px);
  background:rgba(255,255,255,.14);border-radius:2px}
.apb-rx-pffilm-strip::before{top:7px}
.apb-rx-pffilm-strip::after{bottom:7px}
.apb-rx-pffilm-track{display:flex;gap:10px;width:max-content;padding-right:10px;
  animation:apbrxPffilmRoll calc(42s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-pffilm-strip:hover .apb-rx-pffilm-track{animation-play-state:paused}
@keyframes apbrxPffilmRoll{to{transform:translateX(-50%)}}
.apb-rx-pffilm-frame{position:relative;flex:none;width:clamp(200px,24vw,320px);aspect-ratio:3/2;overflow:hidden;text-decoration:none;
  border:2px solid rgba(255,255,255,.1)}
.apb-rx-pffilm-frame img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92);transition:filter var(--apb-rx-t,.28s),transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pffilm-frame:hover img{filter:saturate(1.1);transform:scale(1.04)}
.apb-rx-pffilm-frame span{position:absolute;left:10px;bottom:8px;font-size:11px;font-weight:700;letter-spacing:.06em;color:#fff;
  background:rgba(11,13,18,.6);padding:4px 10px;border-radius:var(--apb-rx-radius-pill,999px);opacity:0;transition:opacity var(--apb-rx-t-fast,.16s)}
.apb-rx-pffilm-frame:hover span,.apb-rx-pffilm-frame:focus-visible span{opacity:1}
@media (hover:none){.apb-rx-pffilm-frame span{opacity:1}}
.apb-rx-pffilm .apb-rx-pf-ctarow{max-width:1120px;margin:clamp(26px,4vh,40px) auto 0;padding:0 24px}
@media (prefers-reduced-motion:reduce){
  .apb-rx-pffilm-track{animation:none}
  .apb-rx-pffilm-strip{overflow-x:auto}
  .apb-rx-pffilm-frame span{opacity:1}
}

/* 4. Diptych */
.apb-rx-pfdip{padding:clamp(64px,11vh,120px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-pfdip-wrap{max-width:1080px;margin:0 auto}
.apb-rx-pfdip .apb-rx-pf-head{text-align:center;margin-bottom:clamp(40px,7vh,64px)}
.apb-rx-pfdip .apb-rx-pf-head h2{max-width:18ch;margin-inline:auto}
.apb-rx-pfdip-spread{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:18px}
.apb-rx-pfdip-spread--flip{grid-template-columns:.75fr 1.25fr}
.apb-rx-pfdip-img{display:block;overflow:hidden;border-radius:calc(var(--apb-rx-radius) * .6)}
.apb-rx-pfdip-img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:3/2;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfdip-img--tall img{aspect-ratio:3/3.05}
.apb-rx-pfdip-img--solo img{aspect-ratio:16/9}
.apb-rx-pfdip-img:hover img{transform:scale(1.03)}
.apb-rx-pfdip-cap{display:flex;align-items:baseline;gap:14px;padding:6px 4px clamp(36px,6vh,60px);flex-wrap:wrap}
.apb-rx-pfdip-cap i{font-style:normal;font-size:12px;font-weight:700;color:var(--apb-rx-fg-subtle,#a1a1aa);font-variant-numeric:tabular-nums}
.apb-rx-pfdip-cap b{font-family:var(--apb-rx-font-display,inherit);font-weight:750;font-size:clamp(18px,2.2vw,26px);
  letter-spacing:-.015em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfdip-cap a{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  text-decoration:none;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.apb-rx-pfdip-cap a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:720px){.apb-rx-pfdip-spread,.apb-rx-pfdip-spread--flip{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfdip-img img{transition:none}}

/* 5. Case cards */
.apb-rx-pfcards{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-pfcards-wrap{max-width:1160px;margin:0 auto}
.apb-rx-pfcards-grid{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),1fr);gap:18px}
.apb-rx-pfcards-card{display:flex;flex-direction:column;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  border-radius:var(--apb-rx-radius);overflow:hidden;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-pfcards-card:hover{transform:translateY(-5px);box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-pfcards-metric{padding:22px 20px 16px;display:block}
.apb-rx-pfcards-metric b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:clamp(34px,3.6vw,44px);letter-spacing:-.03em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));line-height:1}
.apb-rx-pfcards-metric span{display:block;margin-top:6px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfcards-media{overflow:hidden;display:block}
.apb-rx-pfcards-media img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfcards-card:hover .apb-rx-pfcards-media img{transform:scale(1.05)}
.apb-rx-pfcards-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.apb-rx-pfcards-body b{font-size:16.5px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfcards-body p{margin:0;font-size:13.5px;line-height:1.6;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfcards-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.apb-rx-pfcards-tag{font-size:11px;font-weight:600;color:var(--apb-rx-muted,#6b7280);background:var(--apb-rx-soft,#f4f5f7);
  border-radius:var(--apb-rx-radius-pill,999px);padding:4px 11px;white-space:nowrap}
@media(max-width:860px){.apb-rx-pfcards-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfcards-card,.apb-rx-pfcards-media img{transition:none}}

/* 6. Fullbleed snap */
.apb-rx-pfslides{padding:0;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfslides-scroller{height:min(88vh,860px);overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.apb-rx-pfslides-scroller::-webkit-scrollbar{display:none}
.apb-rx-pfslides-slide{position:relative;height:100%;scroll-snap-align:start;display:block;text-decoration:none;overflow:hidden}
.apb-rx-pfslides-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.apb-rx-pfslides-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.35),transparent 30%,transparent 60%,rgba(11,13,18,.72))}
.apb-rx-pfslides-kick{position:absolute;top:clamp(18px,4vh,34px);left:clamp(18px,4vw,44px);z-index:1;display:flex;align-items:center;gap:12px;color:#fff}
.apb-rx-pfslides-kick i{font-style:normal;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(28px,4vw,44px);letter-spacing:-.03em;
  color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.8)}
.apb-rx-pfslides-kick span{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.apb-rx-pfslides-bar{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;align-items:flex-end;gap:18px;
  padding:clamp(18px,4vh,34px) clamp(18px,4vw,44px)}
.apb-rx-pfslides-bar b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(22px,3.4vw,38px);
  letter-spacing:-.02em;color:#fff;line-height:1.1;display:block}
.apb-rx-pfslides-bar p{margin:2px 0 0;color:rgba(255,255,255,.75);font-size:13.5px;max-width:44ch;line-height:1.55}
.apb-rx-pfslides-bar .go{margin-left:auto;flex:none;display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;
  border-radius:50%;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 14px 34px -10px var(--apb-rx-glow);transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-pfslides-slide:hover .go{transform:scale(1.1) rotate(45deg)}
.apb-rx-pfslides-bar .go svg{width:20px;height:20px}
.apb-rx-pfslides-hint{position:sticky;bottom:14px;z-index:2;display:flex;justify-content:center;pointer-events:none}
.apb-rx-pfslides-hint span{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.8);background:rgba(11,13,18,.55);backdrop-filter:blur(8px);
  border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-pfslides-hint svg{width:13px;height:13px;animation:apbrxPfslNudge calc(1.7s / var(--apb-rx-dur,1)) ease-in-out infinite}
@keyframes apbrxPfslNudge{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@media(max-width:720px){.apb-rx-pfslides-bar{flex-direction:column;align-items:flex-start}.apb-rx-pfslides-bar .go{margin-left:0}}
@media (prefers-reduced-motion:reduce){.apb-rx-pfslides-hint svg{animation:none}.apb-rx-pfslides-slide:hover .go{transform:none}}

/* 7. Ticker index */
.apb-rx-pftick{padding:clamp(56px,10vh,110px) 0;background:var(--apb-rx-surface,#fff);overflow:hidden}
.apb-rx-pftick-head{max-width:1120px;margin:0 auto clamp(26px,4vh,44px);padding:0 24px;display:flex;align-items:baseline;gap:18px;flex-wrap:wrap}
.apb-rx-pftick-head .apb-rx-pf-head{margin:0;max-width:none;flex:1}
.apb-rx-pftick-note{margin-left:auto;font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pftick-row{border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);padding:clamp(14px,2.5vh,22px) 0;overflow:hidden;white-space:nowrap;
  -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.apb-rx-pftick-row:last-child{border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pftick-track{display:inline-flex;align-items:center;gap:clamp(24px,4vw,48px);padding-right:clamp(24px,4vw,48px);
  animation:apbrxPftickL calc(36s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-pftick-row--rev .apb-rx-pftick-track{animation-name:apbrxPftickR;animation-duration:calc(44s / var(--apb-rx-dur,1))}
.apb-rx-pftick-row:hover .apb-rx-pftick-track{animation-play-state:paused}
@keyframes apbrxPftickL{to{transform:translateX(-50%)}}
@keyframes apbrxPftickR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.apb-rx-pftick-item{display:inline-flex;align-items:center;gap:clamp(14px,2vw,24px);text-decoration:none}
.apb-rx-pftick-name{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(34px,6vw,72px);
  letter-spacing:-.03em;line-height:1;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 55%,transparent);
  transition:color var(--apb-rx-t,.28s)}
.apb-rx-pftick-item:hover .apb-rx-pftick-name{color:var(--apb-rx-accent-text,var(--apb-rx-brand));-webkit-text-stroke:1.5px transparent}
.apb-rx-pftick-th{width:clamp(64px,7vw,104px);aspect-ratio:4/3;border-radius:calc(var(--apb-rx-radius) * .6);overflow:hidden;flex:none;
  box-shadow:var(--apb-rx-shadow-1);transform:rotate(-2deg);display:block}
.apb-rx-pftick-th img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pftick-dot{width:10px;height:10px;border-radius:50%;background:var(--apb-rx-brand);flex:none;display:inline-block}
.apb-rx-pftick .apb-rx-pf-ctarow{max-width:1120px;margin:clamp(26px,4vh,40px) auto 0;padding:0 24px}
@media (prefers-reduced-motion:reduce){
  .apb-rx-pftick-track{animation:none}
  .apb-rx-pftick-row{overflow-x:auto;-webkit-mask:none;mask:none}
  .apb-rx-pftick-name{color:var(--apb-rx-ink,#0b0d12);-webkit-text-stroke:0}
}

/* 8. Offset collage */
.apb-rx-pfoff{padding:clamp(64px,11vh,120px) 24px;background:var(--apb-rx-surface,#fff);overflow:hidden}
.apb-rx-pfoff-wrap{max-width:1080px;margin:0 auto}
.apb-rx-pfoff .apb-rx-pf-head h2{max-width:20ch}
.apb-rx-pfoff-stage{display:grid;grid-template-columns:repeat(12,1fr);gap:0;align-items:start}
.apb-rx-pfoff-piece{position:relative;text-decoration:none;display:block}
.apb-rx-pfoff-piece img{width:100%;display:block;border-radius:calc(var(--apb-rx-radius) * .6);box-shadow:var(--apb-rx-shadow-2);
  aspect-ratio:var(--apb-pf2-ar,4/5);object-fit:cover;transition:transform var(--apb-rx-t,.28s)}
.apb-rx-pfoff-piece:hover img{transform:translateY(-6px)}
.apb-rx-pfoff-cap{display:flex;gap:9px;align-items:baseline;padding:10px 2px 0;font-size:12.5px}
.apb-rx-pfoff-cap i{font-style:normal;font-weight:700;color:var(--apb-rx-fg-subtle,#a1a1aa);font-variant-numeric:tabular-nums}
.apb-rx-pfoff-cap b{font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfoff-quote{grid-column:2/8;grid-row:2;margin-top:8%;z-index:4}
.apb-rx-pfoff-quote blockquote{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:700;
  font-size:clamp(20px,2.8vw,30px);letter-spacing:-.015em;line-height:1.3;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfoff-quote figcaption{margin-top:12px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:760px){
  .apb-rx-pfoff-stage{display:flex;flex-direction:column;gap:22px}
  .apb-rx-pfoff-piece,.apb-rx-pfoff-quote{margin-top:0}
}
@media (prefers-reduced-motion:reduce){.apb-rx-pfoff-piece img{transition:none}}
/* ==== assets/pages/component-portfolio-3.css ==== */
/* PORTFOLIO family — batch 3 variants. Tokens only; reduced-motion fallbacks required. */

/* ============================ tab_showcase ============================ */
.apb-rx-pftab{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-surface,#fff)}
.apb-rx-pftab-wrap{max-width:1120px;margin:0 auto}
.apb-rx-pftab-radio{position:absolute;opacity:0;pointer-events:none}
.apb-rx-pftab-tabs{display:inline-flex;gap:4px;padding:5px;border-radius:var(--apb-rx-radius-pill,999px);
  background:var(--apb-rx-soft,#f4f5f7);border:1px solid var(--apb-rx-line,#e7e8ec);margin:var(--apb-space-5,20px) 0}
.apb-rx-pftab-tab{padding:9px 20px;border-radius:var(--apb-rx-radius-pill,999px);font-size:13.5px;font-weight:650;
  color:var(--apb-rx-muted,#6b7280);cursor:pointer;transition:all var(--apb-rx-t-fast,.16s)}
.apb-rx-pftab-tab:hover{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pftab-radio:nth-of-type(1):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-tabs .apb-rx-pftab-tab:nth-of-type(1),
.apb-rx-pftab-radio:nth-of-type(2):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-tabs .apb-rx-pftab-tab:nth-of-type(2),
.apb-rx-pftab-radio:nth-of-type(3):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-tabs .apb-rx-pftab-tab:nth-of-type(3){
  background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-sm,var(--apb-rx-shadow-1))}
.apb-rx-pftab-radio:focus-visible ~ .apb-rx-pftab-wrap .apb-rx-pftab-tabs{outline:2px solid var(--apb-rx-ring);outline-offset:2px}
.apb-rx-pftab-panel{display:none;grid-template-columns:1.35fr .65fr;gap:clamp(18px,3vw,32px);align-items:stretch;
  animation:apbPftabIn calc(.35s / var(--apb-rx-dur,1)) ease}
.apb-rx-pftab-radio:nth-of-type(1):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-panels .apb-rx-pftab-panel:nth-of-type(1),
.apb-rx-pftab-radio:nth-of-type(2):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-panels .apb-rx-pftab-panel:nth-of-type(2),
.apb-rx-pftab-radio:nth-of-type(3):checked ~ .apb-rx-pftab-wrap .apb-rx-pftab-panels .apb-rx-pftab-panel:nth-of-type(3){display:grid}
@keyframes apbPftabIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.apb-rx-pftab-media{border-radius:var(--apb-rx-radius);overflow:hidden;box-shadow:var(--apb-rx-shadow-md,var(--apb-rx-shadow-2));display:block}
.apb-rx-pftab-media img,.apb-rx-pftab-ph{width:100%;height:100%;min-height:340px;object-fit:cover;display:block}
.apb-rx-pftab-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#f4f5f7),var(--apb-rx-line,#e7e8ec))}
.apb-rx-pftab-side{display:flex;flex-direction:column;gap:var(--apb-space-3,14px);padding:clamp(18px,2.5vw,26px);
  border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-pftab-side em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pftab-side b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(20px,2.4vw,26px);
  letter-spacing:-.015em;color:var(--apb-rx-ink,#0b0d12);line-height:1.15}
.apb-rx-pftab-side p{margin:0;font-size:13.5px;line-height:1.6;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pftab-facts{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--apb-rx-line,#e7e8ec);padding-top:var(--apb-space-3,14px);font-size:12.5px}
.apb-rx-pftab-facts div{display:flex;justify-content:space-between;gap:12px}
.apb-rx-pftab-facts span{color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pftab-facts strong{color:var(--apb-rx-ink,#0b0d12);font-weight:650}
.apb-rx-pftab-go{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;
  border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font-size:13.5px;font-weight:700;text-decoration:none;
  box-shadow:0 12px 30px -10px var(--apb-rx-glow)}
@media(max-width:820px){.apb-rx-pftab-panel{grid-template-columns:1fr}.apb-rx-pftab-media img,.apb-rx-pftab-ph{min-height:220px}}
@media(prefers-reduced-motion:reduce){.apb-rx-pftab-panel{animation:none}}

/* ============================ stack_deck ============================ */
.apb-rx-pfstack{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-pfstack-wrap{max-width:960px;margin:0 auto}
.apb-rx-pfstack-deck{display:flex;flex-direction:column}
.apb-rx-pfstack-card{position:sticky;top:calc(70px + (var(--idx, 0) * 22px));display:grid;grid-template-columns:1fr 1fr;
  min-height:min(430px,62vh);border-radius:var(--apb-rx-radius);overflow:hidden;background:var(--apb-rx-surface,#fff);
  border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:0 -12px 40px -18px rgba(11,13,18,.25);margin-bottom:var(--apb-space-6,26px)}
.apb-rx-pfstack-card img,.apb-rx-pfstack-ph{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pfstack-ph{background:linear-gradient(135deg,var(--apb-rx-line,#e7e8ec),var(--apb-rx-soft,#f4f5f7))}
.apb-rx-pfstack-body{padding:clamp(22px,3.5vw,40px);display:flex;flex-direction:column;gap:12px;justify-content:center;position:relative}
.apb-rx-pfstack-body em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfstack-body b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(22px,2.8vw,32px);
  letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12);line-height:1.12}
.apb-rx-pfstack-body p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.6}
.apb-rx-pfstack-meta{display:flex;gap:18px;font-size:12px;color:var(--apb-rx-fg-subtle,#a1a1aa);border-top:1px solid var(--apb-rx-line,#e7e8ec);padding-top:var(--apb-space-3,14px)}
.apb-rx-pfstack-go{display:inline-flex;align-items:center;gap:8px;margin-top:4px;font-size:13.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);text-decoration:none}
.apb-rx-pfstack-num{position:absolute;top:16px;right:18px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:14px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
@media(max-width:760px){.apb-rx-pfstack-card{grid-template-columns:1fr;position:relative;top:auto}.apb-rx-pfstack-card img,.apb-rx-pfstack-ph{max-height:200px}}
@media(prefers-reduced-motion:reduce){.apb-rx-pfstack-card{position:relative;top:auto}}

/* ============================ magazine_cover ============================ */
.apb-rx-pfmag{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-surface,#fff)}
.apb-rx-pfmag-wrap{max-width:1080px;margin:0 auto}
.apb-rx-pfmag-mast{display:flex;align-items:baseline;gap:18px;border-bottom:3px solid var(--apb-rx-ink,#0b0d12);padding-bottom:12px;margin-bottom:var(--apb-space-5,22px)}
.apb-rx-pfmag-mast b{font-family:var(--apb-rx-font-display,inherit);font-weight:900;font-size:clamp(28px,4vw,44px);letter-spacing:-.03em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfmag-mast span{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfmag-mast i{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfmag-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:22px}
.apb-rx-pfmag-cover{position:relative;border-radius:calc(var(--apb-rx-radius) * .5);overflow:hidden;display:block;text-decoration:none;min-height:460px}
.apb-rx-pfmag-cover img,.apb-rx-pfmag-ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-pfmag-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#f4f5f7),var(--apb-rx-line,#e7e8ec))}
.apb-rx-pfmag-cover:hover img,.apb-rx-pfmag-cover:focus-within img{transform:scale(1.02)}
.apb-rx-pfmag-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.25),transparent 35%,transparent 55%,rgba(11,13,18,.75))}
.apb-rx-pfmag-kick{position:absolute;top:16px;left:18px;z-index:1;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);padding:6px 13px}
.apb-rx-pfmag-lines{position:absolute;left:18px;right:18px;bottom:18px;z-index:1;color:#fff}
.apb-rx-pfmag-lines b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:900;font-size:clamp(28px,4.4vw,52px);letter-spacing:-.025em;line-height:1.02;max-width:16ch}
.apb-rx-pfmag-lines span{display:inline-block;margin-top:10px;font-size:13px;color:rgba(255,255,255,.85)}
.apb-rx-pfmag-index{display:flex;flex-direction:column}
.apb-rx-pfmag-ih{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);
  border-bottom:1px solid var(--apb-rx-ink,#0b0d12);padding-bottom:10px;margin-bottom:4px}
.apb-rx-pfmag-story{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:14px 0;border-bottom:1px dotted var(--apb-rx-line,#e7e8ec);text-decoration:none}
.apb-rx-pfmag-story img{width:64px;height:64px;object-fit:cover;border-radius:calc(var(--apb-rx-radius) * .4)}
.apb-rx-pfmag-story b{display:block;font-size:15px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12);transition:color var(--apb-rx-t-fast,.16s)}
.apb-rx-pfmag-story:hover b{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfmag-story span{font-size:12px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfmag-story i{font-style:normal;font-size:11px;font-weight:800;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:820px){.apb-rx-pfmag-grid{grid-template-columns:1fr}.apb-rx-pfmag-cover{min-height:340px}}
@media(prefers-reduced-motion:reduce){.apb-rx-pfmag-cover img{transition:none}}

/* ============================ live_tiles (dark) ============================ */
.apb-rx-pflive{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pflive-wrap{max-width:1160px;margin:0 auto}
.apb-rx-pflive .apb-rx-eyebrow{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-pflive .apb-rx-pf-head h2{color:#fff}
.apb-rx-pflive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:var(--apb-space-5,20px)}
.apb-rx-pflive-tile{position:relative;border-radius:var(--apb-rx-radius);overflow:hidden;text-decoration:none;aspect-ratio:4/3;background:#15161c}
.apb-rx-pflive-tile img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.02);filter:saturate(.85) brightness(.92)}
.apb-rx-pflive-tile:hover img,.apb-rx-pflive-tile:focus-within img{animation:apbPfliveKb calc(7s / var(--apb-rx-dur,1)) ease-in-out infinite alternate;filter:saturate(1.05) brightness(1)}
@keyframes apbPfliveKb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.14) translate(-2.5%,-2%)}}
.apb-rx-pflive-rec{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:7px;font-size:10.5px;font-weight:800;letter-spacing:.12em;
  color:#fff;background:rgba(11,13,18,.55);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px;opacity:0;transition:opacity var(--apb-rx-t-fast,.16s)}
.apb-rx-pflive-rec i{width:7px;height:7px;border-radius:50%;background:var(--apb-rx-brand);animation:apbPfliveBlink 1.2s steps(2) infinite}
@keyframes apbPfliveBlink{50%{opacity:.25}}
.apb-rx-pflive-tile:hover .apb-rx-pflive-rec,.apb-rx-pflive-tile:focus-within .apb-rx-pflive-rec{opacity:1}
.apb-rx-pflive-drawer{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;display:flex;align-items:center;gap:12px;
  background:linear-gradient(transparent,rgba(11,13,18,.85));transform:translateY(100%);transition:transform var(--apb-rx-t,.28s)}
.apb-rx-pflive-tile:hover .apb-rx-pflive-drawer,.apb-rx-pflive-tile:focus-within .apb-rx-pflive-drawer{transform:none}
.apb-rx-pflive-drawer b{color:#fff;font-size:15px;font-weight:750;letter-spacing:-.01em}
.apb-rx-pflive-drawer span{color:rgba(255,255,255,.7);font-size:12px}
.apb-rx-pflive-drawer svg{margin-left:auto;width:16px;height:16px;color:#fff;flex:none}
@media(max-width:820px){.apb-rx-pflive-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.apb-rx-pflive-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
  .apb-rx-pflive-tile:hover img{animation:none}
  .apb-rx-pflive-rec i{animation:none}
  .apb-rx-pflive-drawer{transform:none}
  .apb-rx-pflive-rec{opacity:1}
}

/* ============================ timeline ============================ */
.apb-rx-pftl{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-surface,#fff)}
.apb-rx-pftl-wrap{max-width:960px;margin:0 auto}
.apb-rx-pftl-line{position:relative;display:flex;flex-direction:column;gap:clamp(26px,4vh,40px);padding:10px 0 14px;margin-top:var(--apb-space-5,20px)}
.apb-rx-pftl-line::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);
  background:linear-gradient(180deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 20%,var(--apb-rx-line,#e7e8ec)))}
.apb-rx-pftl-line::after{content:"";position:absolute;left:50%;top:-2px;width:10px;height:10px;transform:translateX(-50%);border-radius:50%;background:var(--apb-rx-brand)}
.apb-rx-pftl-item{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center}
.apb-rx-pftl-year{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:13px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:4px solid var(--apb-rx-surface,#fff);border-radius:var(--apb-rx-radius-pill,999px);
  padding:6px 14px;box-shadow:var(--apb-rx-shadow-sm,var(--apb-rx-shadow-1))}
.apb-rx-pftl-card{position:relative;display:block;text-decoration:none;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  border-radius:var(--apb-rx-radius);box-shadow:var(--apb-rx-shadow-sm,var(--apb-rx-shadow-1));transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s);max-width:92%}
.apb-rx-pftl-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-lg,var(--apb-rx-shadow-3))}
.apb-rx-pftl-item:nth-child(odd) .apb-rx-pftl-card{grid-column:1;justify-self:end;margin-right:clamp(22px,4vw,44px)}
.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card{grid-column:2;justify-self:start;margin-left:clamp(22px,4vw,44px)}
.apb-rx-pftl-card::before{content:"";position:absolute;top:50%;width:clamp(22px,4vw,44px);height:2px;background:color-mix(in srgb,var(--apb-rx-brand) 45%,var(--apb-rx-line,#e7e8ec))}
.apb-rx-pftl-card::after{content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-3px;border-radius:50%;background:var(--apb-rx-brand)}
.apb-rx-pftl-item:nth-child(odd) .apb-rx-pftl-card::before{left:100%}
.apb-rx-pftl-item:nth-child(odd) .apb-rx-pftl-card::after{left:calc(100% - 3px)}
.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card::before{right:100%}
.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card::after{right:calc(100% - 3px)}
.apb-rx-pftl-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;border-radius:var(--apb-rx-radius) var(--apb-rx-radius) 0 0}
.apb-rx-pftl-body{display:block;padding:14px 16px 16px}
.apb-rx-pftl-body b{display:block;font-size:15.5px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pftl-body span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:720px){
  .apb-rx-pftl-line::before,.apb-rx-pftl-line::after{left:14px}
  .apb-rx-pftl-item{grid-template-columns:1fr;padding-left:44px}
  .apb-rx-pftl-item .apb-rx-pftl-card,.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card{grid-column:1;justify-self:stretch;max-width:none;margin:0}
  .apb-rx-pftl-year{left:14px;transform:translate(-50%,-50%)}
  .apb-rx-pftl-item .apb-rx-pftl-card::before,.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card::before{left:-30px;right:auto;width:30px}
  .apb-rx-pftl-item .apb-rx-pftl-card::after,.apb-rx-pftl-item:nth-child(even) .apb-rx-pftl-card::after{left:-6px;right:auto}
}
@media(prefers-reduced-motion:reduce){.apb-rx-pftl-card{transition:none}}

/* ============================ logo_reveal ============================ */
.apb-rx-pfwall{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-surface,#fff)}
.apb-rx-pfwall-wrap{max-width:1080px;margin:0 auto}
.apb-rx-pfwall-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:var(--apb-space-5,20px)}
.apb-rx-pfwall-cell{position:relative;aspect-ratio:16/10;border-radius:calc(var(--apb-rx-radius) * .8);overflow:hidden;text-decoration:none;
  border:1px solid var(--apb-rx-line,#e7e8ec);perspective:600px}
.apb-rx-pfwall-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--apb-rx-soft,#f4f5f7);
  transition:opacity var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s)}
.apb-rx-pfwall-face b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(15px,1.8vw,20px);letter-spacing:-.01em;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfwall-shot{position:absolute;inset:0;opacity:0;transform:scale(1.06);transition:opacity var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s)}
.apb-rx-pfwall-shot img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-pfwall-shot span{position:absolute;left:10px;bottom:9px;font-size:11px;font-weight:700;color:#fff;background:rgba(11,13,18,.55);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 10px}
.apb-rx-pfwall-cell--shot:hover .apb-rx-pfwall-face,.apb-rx-pfwall-cell--shot:focus-within .apb-rx-pfwall-face{opacity:0;transform:scale(.96)}
.apb-rx-pfwall-cell--shot:hover .apb-rx-pfwall-shot,.apb-rx-pfwall-cell--shot:focus-within .apb-rx-pfwall-shot{opacity:1;transform:scale(1)}
.apb-rx-pfwall-note{margin-top:clamp(22px,3.5vh,32px);text-align:center;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:820px){.apb-rx-pfwall-grid{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){.apb-rx-pfwall-face,.apb-rx-pfwall-shot{transition:none}}

/* ============================ broadsheet ============================ */
.apb-rx-pfnews{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 3%,var(--apb-rx-surface,#fff))}
.apb-rx-pfnews-paper{max-width:1040px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  box-shadow:var(--apb-rx-shadow-md,var(--apb-rx-shadow-2));padding:clamp(22px,4vw,44px)}
.apb-rx-pfnews-mast{text-align:center;border-bottom:3px double var(--apb-rx-ink,#0b0d12);padding-bottom:14px;margin-bottom:6px}
.apb-rx-pfnews-mast b{font-family:var(--apb-rx-font-display,inherit);font-weight:900;font-size:clamp(30px,5vw,54px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfnews-dateline{display:flex;justify-content:space-between;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--apb-rx-muted,#6b7280);border-bottom:1px solid var(--apb-rx-ink,#0b0d12);padding:8px 0;margin-bottom:20px}
.apb-rx-pfnews-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:0}
.apb-rx-pfnews-lead{padding-right:24px;border-right:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfnews-lead img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;margin-bottom:14px;filter:saturate(.85)}
.apb-rx-pfnews-lead h3{margin:0 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:850;font-size:clamp(22px,3vw,34px);letter-spacing:-.02em;line-height:1.12;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfnews-lead p{margin:0 0 12px;font-size:13.5px;line-height:1.7;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 78%,transparent);
  column-count:2;column-gap:22px;column-rule:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfnews-lead p::first-letter{float:left;font-family:var(--apb-rx-font-display,inherit);font-weight:900;font-size:44px;line-height:.85;
  padding:4px 8px 0 0;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfnews-more{display:inline-flex;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.apb-rx-pfnews-side{padding-left:24px;display:flex;flex-direction:column}
.apb-rx-pfnews-story{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec);text-decoration:none;display:block}
.apb-rx-pfnews-story img{width:100%;aspect-ratio:16/8;object-fit:cover;display:block;margin-bottom:9px;filter:saturate(.85)}
.apb-rx-pfnews-story b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:16px;letter-spacing:-.01em;line-height:1.2;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfnews-story:hover b{text-decoration:underline;text-underline-offset:3px}
.apb-rx-pfnews-story span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfnews-class{margin-top:auto}
.apb-rx-pfnews-class h4{margin:0 0 8px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-pfnews-class a{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--apb-rx-ink,#0b0d12);text-decoration:none;
  padding:5px 0;border-bottom:1px dotted var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfnews-class a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfnews-class i{font-style:normal;color:var(--apb-rx-fg-subtle,#a1a1aa)}
@media(max-width:760px){
  .apb-rx-pfnews-grid{grid-template-columns:1fr}
  .apb-rx-pfnews-lead{padding-right:0;border-right:0;border-bottom:1px solid var(--apb-rx-line,#e7e8ec);padding-bottom:18px;margin-bottom:18px}
  .apb-rx-pfnews-side{padding-left:0}
  .apb-rx-pfnews-lead p{column-count:1}
}

/* ============================ terminal (dark) ============================ */
.apb-rx-pfterm{padding:clamp(56px,10vh,110px) var(--apb-space-6,24px);background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-pfterm-wrap{max-width:880px;margin:0 auto}
.apb-rx-pfterm .apb-rx-eyebrow{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-pfterm .apb-rx-pf-head h2{color:#fff}
.apb-rx-pfterm-win{margin-top:var(--apb-space-5,20px);border-radius:var(--apb-rx-radius);overflow:hidden;background:#101116;
  border:1px solid color-mix(in srgb,var(--apb-rx-brand) 25%,#26262b);box-shadow:0 30px 70px -20px rgba(0,0,0,.6)}
.apb-rx-pfterm-bar{display:flex;align-items:center;gap:7px;padding:12px 14px;background:#17181e;border-bottom:1px solid #26262b}
.apb-rx-pfterm-bar i{width:11px;height:11px;border-radius:50%;background:#303038}
.apb-rx-pfterm-bar span{margin-left:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:#8b8b94}
.apb-rx-pfterm-body{padding:20px 22px 24px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;line-height:1.75;color:#c9cad3}
.apb-rx-pfterm-body .ps{color:color-mix(in srgb,var(--apb-rx-brand) 65%,#fff);font-weight:700}
.apb-rx-pfterm-body .cmd{color:#fff}
.apb-rx-pfterm-row{display:flex;gap:14px;padding:3px 0;text-decoration:none;color:#c9cad3;border-radius:6px}
.apb-rx-pfterm-row:hover{background:rgba(255,255,255,.05)}
.apb-rx-pfterm-row .perm{color:#5b5c66;flex:none}
.apb-rx-pfterm-row .name{color:color-mix(in srgb,var(--apb-rx-brand) 60%,#fff);font-weight:700;min-width:170px}
.apb-rx-pfterm-row .desc{color:#9a9ba5;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.apb-rx-pfterm-row .lang{margin-left:auto;flex:none;font-size:11px;padding:2px 9px;border-radius:999px;
  border:1px solid color-mix(in srgb,var(--apb-rx-brand) 40%,#26262b);color:color-mix(in srgb,var(--apb-rx-brand) 65%,#fff)}
.apb-rx-pfterm-log{margin:14px 0 0;padding-top:14px;border-top:1px dashed #26262b}
.apb-rx-pfterm-log div{display:flex;gap:12px}
.apb-rx-pfterm-log .sha{color:#d3a04e;flex:none}
.apb-rx-pfterm-log .msg{color:#9a9ba5}
.apb-rx-pfterm-prompt{display:flex;align-items:center;gap:8px;margin-top:16px}
.apb-rx-pfterm-cursor{display:inline-block;width:9px;height:18px;background:color-mix(in srgb,var(--apb-rx-brand) 70%,#fff);animation:apbPftermBlink 1.1s steps(2) infinite}
@keyframes apbPftermBlink{50%{opacity:0}}
.apb-rx-pfterm-foot{margin-top:clamp(22px,3.5vh,32px);text-align:center}
.apb-rx-pfterm-foot a{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:var(--apb-rx-radius);
  color:#fff;border:1px solid rgba(255,255,255,.3);font-size:14px;font-weight:700;text-decoration:none;font-family:var(--apb-rx-font,inherit)}
.apb-rx-pfterm-foot a:hover{border-color:#fff}
@media(max-width:640px){.apb-rx-pfterm-row .desc{display:none}}
@media(prefers-reduced-motion:reduce){.apb-rx-pfterm-cursor{animation:none}}
/* ==== assets/pages/component-portfolio-4.css ==== */
/* PORTFOLIO family — batch 4 variants. Tokens only; reduced-motion fallbacks required. */

/* ============================ before_after ============================
   Reuses the compare family's data-apb-behavior="compare-slider" marker + --apb-cis-p custom prop
   (see component-compare.css .apb-rx-cis-*) — same JS drives the divider, only class names differ. */
.apb-rx-pfba { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfba-wrap { max-width: 1020px; margin: 0 auto; }
.apb-rx-pfba-list { margin-top: clamp(24px,4vh,40px); }
.apb-rx-pfba-item { margin-bottom: clamp(30px,5vh,48px); }
.apb-rx-pfba-item:last-child { margin-bottom: 0; }
.apb-rx-pfba-frame { position: relative; border-radius: var(--apb-rx-radius); overflow: hidden; box-shadow: var(--apb-rx-shadow-2); aspect-ratio: 16/8; user-select: none; touch-action: none; }
.apb-rx-pfba-after, .apb-rx-pfba-before { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pfba-beforewrap { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--apb-cis-p, 50%)) 0 0); }
.apb-rx-pfba-tagB, .apb-rx-pfba-tagA { position: absolute; top: 12px; z-index: 1; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 60%, transparent); border-radius: var(--apb-rx-radius-pill,999px); padding: 5px 12px; pointer-events: none; }
.apb-rx-pfba-tagB { left: 12px; }
.apb-rx-pfba-tagA { right: 12px; background: var(--apb-rx-brand); }
.apb-rx-pfba-handle { position: absolute; top: 0; bottom: 0; left: var(--apb-cis-p, 50%); transform: translateX(-50%); width: 40px; display: flex; align-items: center; justify-content: center; cursor: ew-resize; }
.apb-rx-pfba-handle::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 2px; background: var(--apb-rx-surface); }
.apb-rx-pfba-handle svg { position: relative; width: 40px; height: 40px; padding: 11px; border-radius: 50%; background: var(--apb-rx-surface); color: var(--apb-rx-ink); box-shadow: var(--apb-rx-shadow-2); }
.apb-rx-pfba-cap { display: flex; align-items: baseline; gap: 14px; padding: 12px 4px 0; flex-wrap: wrap; }
.apb-rx-pfba-cap b { font-size: 16px; font-weight: 750; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-rx-pfba-cap span { font-size: 13px; color: var(--apb-rx-muted); }
.apb-rx-pfba-cap i { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 800; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); }

/* ============================ kanban ============================ */
.apb-rx-pfkan { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-soft); }
.apb-rx-pfkan-wrap { max-width: 1120px; margin: 0 auto; }
.apb-rx-pfkan-board { display: grid; grid-template-columns: repeat(var(--apb-rx-cols,3),1fr); gap: 16px; align-items: start; margin-top: clamp(24px,4vh,38px); }
.apb-rx-pfkan-col { background: color-mix(in srgb, var(--apb-rx-ink) 4%, var(--apb-rx-surface)); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .9); padding: 12px; }
.apb-rx-pfkan-colh { display: flex; align-items: center; gap: 8px; padding: 4px 6px 12px; font-size: 12.5px; font-weight: 750; color: var(--apb-rx-ink); }
.apb-rx-pfkan-colh i { width: 9px; height: 9px; border-radius: 50%; background: var(--dot,var(--apb-rx-brand)); flex: none; }
.apb-rx-pfkan-colh span { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--apb-rx-fg-subtle,var(--apb-rx-muted)); background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: var(--apb-rx-radius-pill,999px); padding: 2px 9px; }
.apb-rx-pfkan-card { display: block; background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; text-decoration: none; margin-bottom: 10px; transition: transform var(--apb-rx-t-fast,.16s), box-shadow var(--apb-rx-t-fast,.16s); }
.apb-rx-pfkan-card:last-child { margin-bottom: 0; }
.apb-rx-pfkan-card:hover { transform: translateY(-3px); box-shadow: var(--apb-rx-shadow-2); }
.apb-rx-pfkan-card img { width: 100%; aspect-ratio: 16/8; object-fit: cover; display: block; }
.apb-rx-pfkan-body { display: block; padding: 11px 13px 13px; }
.apb-rx-pfkan-body b { display: block; font-size: 14px; font-weight: 750; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-rx-pfkan-chips { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
.apb-rx-pfkan-chip { font-size: 10px; font-weight: 700; letter-spacing: .03em; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); background: var(--apb-rx-soft); border-radius: var(--apb-rx-radius-pill,999px); padding: 3px 9px; }
.apb-rx-pfkan-done .apb-rx-pfkan-chip { color: var(--apb-rx-muted); }
@media (max-width: 820px) { .apb-rx-pfkan-board { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfkan-card { transition: none; } }

/* ============================ year_wall ============================ */
.apb-rx-pfywall { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-ink); }
.apb-rx-pfywall-wrap { max-width: 1160px; margin: 0 auto; }
.apb-rx-pfywall-head { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.apb-rx-pfywall-head .apb-rx-pf-head { text-align: left; }
.apb-rx-pfywall h2 { color: #fff; }
.apb-rx-pfywall-count { margin-left: auto; font-size: 12.5px; color: color-mix(in srgb, #fff 55%, transparent); font-variant-numeric: tabular-nums; }
.apb-rx-pfywall-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: 7px; margin-top: clamp(22px,4vh,36px); }
.apb-rx-pfywall-cell { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: calc(var(--apb-rx-radius) * .35); display: block; text-decoration: none; }
.apb-rx-pfywall-cell img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8) brightness(.85); transition: filter var(--apb-rx-t,.28s), transform var(--apb-rx-t,.28s); }
.apb-rx-pfywall-cell:hover { z-index: 2; }
.apb-rx-pfywall-cell:hover img { filter: saturate(1.05) brightness(1); transform: scale(1.5); }
.apb-rx-pfywall-cell span { position: absolute; left: 5px; bottom: 5px; right: 5px; font-size: 9.5px; font-weight: 700; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 62%, transparent); border-radius: 5px; padding: 3px 7px; opacity: 0; transition: opacity var(--apb-rx-t-fast,.16s); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; }
.apb-rx-pfywall-cell:hover span, .apb-rx-pfywall-cell:focus-visible span { opacity: 1; }
@media (max-width: 820px) { .apb-rx-pfywall-grid { grid-template-columns: repeat(4,1fr); } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfywall-cell img { transition: none; } .apb-rx-pfywall-cell:hover img { transform: none; } .apb-rx-pfywall-cell span { opacity: 1; } }

/* ============================ accordion_slats ============================ */
.apb-rx-pfslat { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfslat-wrap { max-width: 1040px; margin: 0 auto; }
.apb-rx-pfslat-stack { display: flex; flex-direction: column; gap: 10px; margin-top: clamp(24px,4vh,40px); }
.apb-rx-pfslat-slat { position: relative; height: 84px; border-radius: calc(var(--apb-rx-radius) * .8); overflow: hidden; display: block; text-decoration: none; transition: height var(--apb-rx-t-slow,.55s) cubic-bezier(.4,0,.2,1); box-shadow: var(--apb-rx-shadow-1); }
.apb-rx-pfslat-slat:hover, .apb-rx-pfslat-slat:focus-within { height: 340px; }
.apb-rx-pfslat-slat img { position: absolute; inset: 0; width: 100%; height: 340px; object-fit: cover; }
.apb-rx-pfslat-slat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--apb-rx-ink) 68%, transparent), color-mix(in srgb, var(--apb-rx-ink) 15%, transparent) 55%, transparent); transition: opacity var(--apb-rx-t,.28s); }
.apb-rx-pfslat-bar { position: absolute; left: 20px; right: 20px; top: 0; height: 84px; display: flex; align-items: center; gap: 16px; z-index: 1; }
.apb-rx-pfslat-bar i { font-style: normal; font-size: 12px; font-weight: 800; color: color-mix(in srgb, #fff 65%, transparent); font-variant-numeric: tabular-nums; }
.apb-rx-pfslat-bar b { font-family: var(--apb-rx-font-display,inherit); font-weight: 800; font-size: clamp(17px,2.2vw,24px); letter-spacing: -.015em; color: #fff; }
.apb-rx-pfslat-bar span { margin-left: auto; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 70%, transparent); }
.apb-rx-pfslat-more { position: absolute; left: 20px; bottom: 18px; z-index: 1; max-width: 52ch; color: color-mix(in srgb, #fff 85%, transparent); font-size: 13.5px; line-height: 1.55; opacity: 0; transform: translateY(8px); transition: opacity var(--apb-rx-t,.28s) .12s, transform var(--apb-rx-t,.28s) .12s; }
.apb-rx-pfslat-slat:hover .apb-rx-pfslat-more, .apb-rx-pfslat-slat:focus-within .apb-rx-pfslat-more { opacity: 1; transform: none; }
.apb-rx-pfslat-more em { display: block; font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: color-mix(in srgb, var(--apb-rx-brand) 55%, #fff); margin-bottom: 5px; }
@media (hover: none) { .apb-rx-pfslat-slat { height: 220px; } .apb-rx-pfslat-more { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfslat-slat { transition: none; height: 220px; } .apb-rx-pfslat-more { opacity: 1; transform: none; transition: none; } }

/* ============================ receipt ============================
   SUBTOTAL/TAX/TOTAL lines are renderer-owned decorative defaults (not authorable data). */
.apb-rx-pfrec { padding: clamp(56px,10vh,110px) 24px; overflow: hidden; background: radial-gradient(70vmax 50vmax at 15% -10%, var(--apb-rx-soft), transparent 60%), var(--apb-rx-surface); }
.apb-rx-pfrec-wrap { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(30px,5vw,72px); align-items: center; }
.apb-rx-pfrec-paper { justify-self: center; width: min(360px,100%); background: color-mix(in srgb, var(--apb-rx-surface) 92%, #fdfdfb); padding: 26px 24px 20px; transform: rotate(1.6deg); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 12.5px; color: var(--apb-rx-ink); line-height: 1.7; box-shadow: var(--apb-rx-shadow-3); transition: transform var(--apb-rx-t,.28s); clip-path: polygon(0 0,100% 0,100% calc(100% - 8px),97% 100%,93% calc(100% - 8px),89% 100%,85% calc(100% - 8px),81% 100%,77% calc(100% - 8px),73% 100%,69% calc(100% - 8px),65% 100%,61% calc(100% - 8px),57% 100%,53% calc(100% - 8px),49% 100%,45% calc(100% - 8px),41% 100%,37% calc(100% - 8px),33% 100%,29% calc(100% - 8px),25% 100%,21% calc(100% - 8px),17% 100%,13% calc(100% - 8px),9% 100%,5% calc(100% - 8px),0 100%); }
.apb-rx-pfrec-paper:hover, .apb-rx-pfrec-paper:focus-within { transform: rotate(0deg); }
.apb-rx-pfrec-shop { text-align: center; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.apb-rx-pfrec-rule { border: none; border-top: 1px dashed var(--apb-rx-line); margin: 10px 0; }
.apb-rx-pfrec-line { display: flex; justify-content: space-between; gap: 12px; text-decoration: none; color: var(--apb-rx-ink); }
.apb-rx-pfrec-line:hover b { color: var(--apb-rx-accent-text,var(--apb-rx-brand)); }
.apb-rx-pfrec-line b { font-weight: 700; text-transform: uppercase; }
.apb-rx-pfrec-line span { color: var(--apb-rx-muted); }
.apb-rx-pfrec-total { display: flex; justify-content: space-between; font-weight: 800; font-size: 14px; margin-top: 2px; text-transform: uppercase; }
.apb-rx-pfrec-bar { margin: 14px auto 6px; height: 34px; max-width: 220px; background: repeating-linear-gradient(90deg, var(--apb-rx-ink) 0 2px, transparent 2px 5px, var(--apb-rx-ink) 5px 6px, transparent 6px 10px); }
.apb-rx-pfrec-thanks { text-align: center; font-size: 11px; color: var(--apb-rx-muted); }
@media (max-width: 820px) { .apb-rx-pfrec-wrap { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfrec-paper { transition: none; transform: none; } }

/* ============================ orbit ============================
   Preset s1..s5 satellite positions; counter-rotation keeps thumbs upright; hover pauses both spins. */
.apb-rx-pforb { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-ink); overflow: hidden; }
.apb-rx-pforb-wrap { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px,4vw,56px); align-items: center; }
.apb-rx-pforb h2, .apb-rx-pforb .apb-rx-pf-head h2 { color: #fff; }
.apb-rx-pforb-space { position: relative; aspect-ratio: 1; max-width: 520px; margin: 0 auto; width: 100%; }
.apb-rx-pforb-ring { position: absolute; inset: 0; border: 1px dashed color-mix(in srgb, var(--apb-rx-brand) 35%, transparent); border-radius: 50%; }
.apb-rx-pforb-ring--in { inset: 17%; }
.apb-rx-pforb-core { position: absolute; inset: 36%; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; background: radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--apb-rx-brand) 35%, var(--apb-rx-ink)), color-mix(in srgb, var(--apb-rx-ink) 92%, #000) 72%); border: 1px solid color-mix(in srgb, var(--apb-rx-brand) 45%, transparent); box-shadow: 0 0 60px var(--apb-rx-glow-soft); }
.apb-rx-pforb-core b { color: #fff; font-family: var(--apb-rx-font-display,inherit); font-weight: 800; font-size: clamp(16px,1.9vw,22px); letter-spacing: -.01em; }
.apb-rx-pforb-core span { color: color-mix(in srgb, #fff 60%, transparent); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; }
.apb-rx-pforb-spin { position: absolute; inset: 0; animation: pforbSpin calc(46s / var(--apb-rx-dur,1)) linear infinite; transform-origin: 50% 50%; }
.apb-rx-pforb-space:hover .apb-rx-pforb-spin, .apb-rx-pforb-space:focus-within .apb-rx-pforb-spin { animation-play-state: paused; }
@keyframes pforbSpin { to { transform: rotate(360deg); } }
.apb-rx-pforb-sat { position: absolute; width: clamp(72px,9vw,110px); aspect-ratio: 1; border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; text-decoration: none; box-shadow: var(--apb-rx-shadow-3); border: 2px solid color-mix(in srgb, #fff 12%, transparent); animation: pforbCounter calc(46s / var(--apb-rx-dur,1)) linear infinite reverse; transform-origin: 50% 50%; }
.apb-rx-pforb-space:hover .apb-rx-pforb-sat, .apb-rx-pforb-space:focus-within .apb-rx-pforb-sat { animation-play-state: paused; }
@keyframes pforbCounter { to { transform: rotate(360deg); } }
.apb-rx-pforb-sat:hover, .apb-rx-pforb-sat:focus-visible { z-index: 3; border-color: color-mix(in srgb, var(--apb-rx-brand) 70%, #fff); }
.apb-rx-pforb-sat img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pforb-sat span { position: absolute; left: 0; right: 0; bottom: 0; font-size: 9.5px; font-weight: 700; color: #fff; text-align: center; background: color-mix(in srgb, var(--apb-rx-ink) 62%, transparent); padding: 3px 6px; opacity: 0; transition: opacity var(--apb-rx-t-fast,.16s); }
.apb-rx-pforb-sat:hover span, .apb-rx-pforb-sat:focus-visible span { opacity: 1; }
.apb-rx-pforb-s1 { top: -6%; left: 50%; margin-left: calc(clamp(72px,9vw,110px) / -2); }
.apb-rx-pforb-s2 { top: 22%; right: -4%; }
.apb-rx-pforb-s3 { bottom: 2%; right: 8%; }
.apb-rx-pforb-s4 { bottom: 2%; left: 8%; }
.apb-rx-pforb-s5 { top: 22%; left: -4%; }
@media (max-width: 860px) { .apb-rx-pforb-wrap { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pforb-spin, .apb-rx-pforb-sat { animation: none; } .apb-rx-pforb-sat span { opacity: 1; } }

/* ============================ pin_map ============================
   Positions are inline (renderer-computed left/top from the preset catalog); this CSS only styles the
   decorative canvas + pin/card chrome. Legend is evidence-gated (only rendered when the `legend` slot has data). */
.apb-rx-pfmap { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfmap-wrap { max-width: 1120px; margin: 0 auto; }
.apb-rx-pfmap-canvas { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.1); overflow: hidden; aspect-ratio: 16/8; margin-top: clamp(24px,4vh,40px); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); background: radial-gradient(60vmax 40vmax at 20% 0%, color-mix(in srgb, var(--apb-rx-brand) 7%, transparent), transparent 55%), radial-gradient(color-mix(in srgb, var(--apb-rx-ink) 16%, transparent) 1.5px, transparent 2px), var(--apb-rx-soft); background-size: auto, 18px 18px, auto; }
.apb-rx-pfmap-land { position: absolute; border-radius: 48% 52% 55% 45%/55% 48% 52% 45%; background: color-mix(in srgb, var(--apb-rx-brand) 9%, var(--apb-rx-surface)); border: 1px solid color-mix(in srgb, var(--apb-rx-brand) 18%, transparent); }
.apb-rx-pfmap-l1 { width: 34%; height: 56%; left: 8%; top: 12%; }
.apb-rx-pfmap-l2 { width: 26%; height: 44%; right: 12%; top: 8%; border-radius: 55% 45% 48% 52%/45% 55% 45% 55%; }
.apb-rx-pfmap-l3 { width: 20%; height: 30%; right: 26%; bottom: 6%; border-radius: 45% 55% 52% 48%/52% 45% 55% 48%; }
.apb-rx-pfmap-pin { position: absolute; width: 18px; height: 18px; z-index: 2; }
.apb-rx-pfmap-pin i { position: absolute; inset: 0; border-radius: 50%; background: var(--apb-rx-brand); border: 3px solid var(--apb-rx-surface); box-shadow: 0 4px 12px -2px var(--apb-rx-glow); }
.apb-rx-pfmap-pin::before { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--apb-rx-brand) 45%, transparent); animation: pfmapPulse calc(2.2s / var(--apb-rx-dur,1)) ease-out infinite; }
@keyframes pfmapPulse { from { transform: scale(.5); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }
.apb-rx-pfmap-card { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(8px); width: 230px; z-index: 3; background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; box-shadow: var(--apb-rx-shadow-3); opacity: 0; pointer-events: none; transition: opacity var(--apb-rx-t,.28s), transform var(--apb-rx-t,.28s); text-decoration: none; display: block; }
.apb-rx-pfmap-pin:hover .apb-rx-pfmap-card, .apb-rx-pfmap-pin:focus-within .apb-rx-pfmap-card { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.apb-rx-pfmap-card img { width: 100%; aspect-ratio: 16/8; object-fit: cover; display: block; }
.apb-rx-pfmap-card b { display: block; padding: 10px 12px 2px; font-size: 13.5px; font-weight: 750; color: var(--apb-rx-ink); }
.apb-rx-pfmap-card span { display: block; padding: 0 12px 12px; font-size: 11.5px; color: var(--apb-rx-muted); }
.apb-rx-pfmap-legend { display: flex; justify-content: center; gap: 22px; margin-top: 18px; font-size: 12.5px; color: var(--apb-rx-muted); flex-wrap: wrap; }
.apb-rx-pfmap-legend b { color: var(--apb-rx-ink); }
@media (max-width: 720px) { .apb-rx-pfmap-canvas { aspect-ratio: 4/5; } .apb-rx-pfmap-card { width: 180px; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfmap-pin::before { animation: none; opacity: 0; } }

/* ============================ quote_pairs ============================ */
.apb-rx-pfqp { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfqp-wrap { max-width: 1040px; margin: 0 auto; }
.apb-rx-pfqp-pair { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(20px,3.5vw,44px); align-items: center; padding: clamp(24px,4vh,38px) 0; border-top: var(--apb-rx-border,1px) solid var(--apb-rx-line); }
.apb-rx-pfqp-pair--solo { grid-template-columns: 1fr; }
.apb-rx-pfqp-pair:first-child { border-top: none; }
.apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) { grid-template-columns: .9fr 1.1fr; }
.apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) .apb-rx-pfqp-media { order: 2; }
.apb-rx-pfqp-media { position: relative; display: block; border-radius: var(--apb-rx-radius); overflow: hidden; box-shadow: var(--apb-rx-shadow-2); text-decoration: none; }
.apb-rx-pfqp-media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; transition: transform var(--apb-rx-t-slow,.55s); }
.apb-rx-pfqp-media:hover img { transform: scale(1.03); }
.apb-rx-pfqp-media span { position: absolute; left: 12px; bottom: 12px; font-size: 11.5px; font-weight: 700; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 55%, transparent); backdrop-filter: blur(6px); border-radius: var(--apb-rx-radius-pill,999px); padding: 5px 12px; }
.apb-rx-pfqp-words { position: relative; padding-left: 22px; }
.apb-rx-pfqp-words::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; border-radius: 2px; background: var(--apb-rx-brand); }
.apb-rx-pfqp-words blockquote { margin: 0 0 14px; font-family: var(--apb-rx-font-display,inherit); font-weight: 700; font-size: clamp(17px,2.1vw,23px); letter-spacing: -.012em; line-height: 1.4; color: var(--apb-rx-ink); }
.apb-rx-pfqp-who { display: flex; align-items: center; gap: 11px; }
.apb-rx-pfqp-who img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex: none; }
.apb-rx-pfqp-who b { display: block; font-size: 13.5px; font-weight: 700; color: var(--apb-rx-ink); }
.apb-rx-pfqp-who span span { font-size: 12px; color: var(--apb-rx-muted); }
.apb-rx-pfqp-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); text-decoration: none; }
.apb-rx-pfqp-link:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 780px) {
  .apb-rx-pfqp-pair, .apb-rx-pfqp-pair--solo, .apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) { grid-template-columns: 1fr; }
  .apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) .apb-rx-pfqp-media { order: 0; }
}
@media (prefers-reduced-motion: reduce) { .apb-rx-pfqp-media img { transition: none; } }
/* ==== assets/pages/component-featvideo.css ==== */
/* Features-video family + extra testimonial variants. Tokens only; reduced-motion fallbacks required.
   CSS-only interaction: radio :checked (features_video) / hover+focus-within (testimonial extras).
   Checked-wiring is written generically for up to 6 items (letters a-f) via id/for SUFFIX matching, so
   it works for any instance uid and any item count <= 6 (unused letters simply never match). */

/* shared video/image leaf used by every features_video variant */
.apb-rx-fv-vid{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fv-vid video,.apb-rx-fv-vid img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-fv-vid--empty{background:linear-gradient(135deg,color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-ink,#0b0d12)),var(--apb-rx-ink,#0b0d12))}
.apb-rx-fv-icon{display:inline-flex}

/* ================================================================= accordion ================================================================= */
.apb-rx-fva{padding:clamp(48px,7vw,96px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-fva-wrap{max-width:980px;margin:0 auto}
.apb-rx-fva-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(24px,3.6vw,40px)}
.apb-rx-fva-head h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.4vw,44px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.06);
  color:var(--apb-rx-ink,#0b0d12);text-wrap:balance;max-width:560px}
.apb-rx-fva-head p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14.5px;line-height:1.6;max-width:300px}
.apb-rx-fva input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fva-row{display:block;border-top:1px solid var(--apb-rx-line,#e5e7eb);cursor:pointer}
.apb-rx-fva-row:last-of-type{border-bottom:1px solid var(--apb-rx-line,#e5e7eb)}
.apb-rx-fva-bar{display:flex;align-items:center;gap:18px;padding:20px 6px}
.apb-rx-fva-idx{font-size:13px;font-weight:800;color:var(--apb-rx-muted,#6b7280);letter-spacing:.06em;flex:0 0 34px}
.apb-rx-fva-bar strong{flex:1;font-size:clamp(17px,2.2vw,24px);font-weight:700;color:var(--apb-rx-ink,#0b0d12);transition:color calc(.3s / var(--apb-rx-dur,1)) ease}
.apb-rx-fva-row:hover .apb-rx-fva-bar strong{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fva-plus{flex:0 0 34px;height:34px;border-radius:999px;border:1.5px solid var(--apb-rx-line,#e5e7eb);
  display:flex;align-items:center;justify-content:center;color:var(--apb-rx-ink,#0b0d12);transition:all calc(.35s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fva-plus svg{width:14px;height:14px;transition:transform calc(.35s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fva-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows calc(.55s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fva-inner{overflow:hidden;min-height:0}
.apb-rx-fva-cols{display:grid;grid-template-columns:5fr 7fr;gap:clamp(18px,3vw,36px);padding:4px 6px 26px 58px;opacity:0;transform:translateY(8px);
  transition:opacity calc(.4s / var(--apb-rx-dur,1)) ease,transform calc(.5s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fva-cols p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.65}
.apb-rx-fva-vid{display:block;overflow:hidden;border-radius:var(--apb-rx-radius);aspect-ratio:16/9;box-shadow:var(--apb-rx-shadow-2,0 10px 30px -12px rgba(11,13,18,.2))}
@media(max-width:760px){.apb-rx-fva-head{flex-direction:column;align-items:flex-start}.apb-rx-fva-cols{grid-template-columns:1fr;padding-left:6px}}

/* ================================================================= filmstrip ================================================================= */
.apb-rx-fvf{padding:clamp(48px,7vw,96px) 24px;background:linear-gradient(180deg,var(--apb-rx-surface,#fff),color-mix(in srgb,var(--apb-rx-brand) 6%,var(--apb-rx-surface,#fff)))}
.apb-rx-fvf-wrap{max-width:1180px;margin:0 auto}
.apb-rx-fvf input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fvf-grid{display:grid;grid-template-columns:96px minmax(0,7fr) minmax(240px,4fr);gap:clamp(18px,2.6vw,32px);align-items:stretch}
.apb-rx-fvf-strip{display:flex;flex-direction:column;gap:12px;justify-content:center}
.apb-rx-fvf-thumb{position:relative;display:block;aspect-ratio:1;border-radius:calc(var(--apb-rx-radius)*.9);overflow:hidden;cursor:pointer;
  outline:2px solid transparent;outline-offset:2px;opacity:.55;filter:saturate(.6);transition:all calc(.35s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvf-thumb:hover{opacity:.85}
.apb-rx-fv-thumbvid,.apb-rx-fv-thumbvid video,.apb-rx-fv-thumbvid img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-fvf-thumb i{position:absolute;right:6px;bottom:6px;width:20px;height:20px;border-radius:999px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.9);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvf-thumb i svg{width:9px;height:9px}
.apb-rx-fvf-stage{position:relative;border-radius:calc(var(--apb-rx-radius)*1.25);overflow:hidden;min-height:clamp(300px,34vw,480px);
  background:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -25px rgba(11,13,18,.35))}
.apb-rx-fvf-pane{position:absolute;inset:0;opacity:0;pointer-events:none;transform:scale(1.02);
  transition:opacity calc(.5s / var(--apb-rx-dur,1)) ease,transform calc(.6s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvf-copy{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100%}
.apb-rx-fvf-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fvf-copy h2{margin:10px 0 18px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(26px,3.4vw,38px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.08);
  color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-fvf-slab{position:relative;min-height:120px}
.apb-rx-fvf-blurb{position:absolute;inset:0;opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity calc(.4s / var(--apb-rx-dur,1)) ease,transform calc(.5s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvf-blurb strong{display:block;font-size:17px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvf-blurb p{margin:8px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:14.5px;line-height:1.6}
.apb-rx-fvf-cta{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;margin-top:18px;padding:12px 22px;
  border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:#fff;font-weight:700;font-size:14px;text-decoration:none;
  box-shadow:0 14px 34px -12px var(--apb-rx-glow,rgba(11,13,18,.3));transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-fvf-cta:hover{transform:translateY(-2px)}
.apb-rx-fvf-cta svg{width:14px;height:14px}
@media(max-width:980px){.apb-rx-fvf-grid{grid-template-columns:1fr;gap:18px}.apb-rx-fvf-strip{flex-direction:row;justify-content:flex-start;order:2}
  .apb-rx-fvf-thumb{width:72px}.apb-rx-fvf-stage{order:1;min-height:52vw}.apb-rx-fvf-copy{order:3}.apb-rx-fvf-slab{min-height:150px}}

/* ================================================================= rail ================================================================= */
.apb-rx-fvr{padding:clamp(48px,7vw,96px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-fvr-wrap{max-width:1180px;margin:0 auto}
.apb-rx-fvr-title{margin:0 0 clamp(28px,4vw,48px);font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(30px,5vw,54px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.04);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvr input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fvr-grid{display:grid;grid-template-columns:minmax(280px,5fr) 7fr;gap:0;border-radius:calc(var(--apb-rx-radius)*1.2);overflow:hidden;
  border:1px solid var(--apb-rx-line,#e5e7eb);box-shadow:var(--apb-rx-shadow-2,0 10px 30px -12px rgba(11,13,18,.14));background:var(--apb-rx-surface,#fff)}
.apb-rx-fvr-rail{display:flex;flex-direction:column;padding:clamp(20px,3vw,36px)}
.apb-rx-fvr-kick{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-fvr-lede{margin:10px 0 auto;padding-bottom:18px;font-size:clamp(18px,2vw,23px);font-weight:700;color:var(--apb-rx-ink,#0b0d12);line-height:1.3}
.apb-rx-fvr-item{display:block;border-top:1px solid var(--apb-rx-line,#e5e7eb);padding:14px 12px;margin:0 -12px;cursor:pointer;
  border-radius:var(--apb-rx-radius);transition:background calc(.25s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvr-item:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-fvr-ihead{display:flex;align-items:center;gap:12px}
.apb-rx-fv-icon{flex:0 0 40px;height:40px;border-radius:calc(var(--apb-rx-radius)*.7);display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-surface,#fff));color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fv-icon svg,.apb-rx-fv-icon img{width:18px;height:18px}
.apb-rx-fvr-ihead strong{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvr-desc{overflow:hidden;max-height:0;opacity:0;transition:max-height calc(.45s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),opacity calc(.35s / var(--apb-rx-dur,1)) ease;
  margin:0;padding-left:52px;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.55}
.apb-rx-fvr-stage{position:relative;min-height:clamp(320px,36vw,520px);
  background:linear-gradient(135deg,color-mix(in srgb,var(--apb-rx-brand) 16%,var(--apb-rx-soft,#f4f5f7)),color-mix(in srgb,var(--apb-rx-accent,var(--apb-rx-brand)) 12%,var(--apb-rx-soft,#f4f5f7)))}
.apb-rx-fvr-pane{position:absolute;inset:clamp(18px,2.6vw,34px);opacity:0;transform:scale(.985);pointer-events:none;
  transition:opacity calc(.45s / var(--apb-rx-dur,1)) ease,transform calc(.45s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvr-pane .apb-rx-fv-vid{border-radius:var(--apb-rx-radius);box-shadow:0 24px 60px -20px rgba(11,13,18,.35);width:100%;height:100%}
@media(max-width:860px){.apb-rx-fvr-grid{grid-template-columns:1fr}.apb-rx-fvr-stage{order:-1;min-height:52vw}}

/* ================================================================= steps ================================================================= */
.apb-rx-fvs{padding:clamp(48px,7vw,96px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-fvs-wrap{max-width:1140px;margin:0 auto}
.apb-rx-fvs-head{max-width:620px;margin-bottom:clamp(28px,4vw,48px)}
.apb-rx-fvs-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fvs-head h2{margin:10px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.4vw,44px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.06);color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-fvs input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fvs-grid{display:grid;grid-template-columns:minmax(300px,5fr) 6fr;gap:clamp(24px,4vw,56px);align-items:start}
.apb-rx-fvs-steps{display:flex;flex-direction:column}
.apb-rx-fvs-step{position:relative;display:flex;gap:16px;padding:16px 14px;cursor:pointer;border-radius:var(--apb-rx-radius);transition:background calc(.25s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvs-step:hover{background:color-mix(in srgb,var(--apb-rx-surface,#fff) 70%,transparent)}
.apb-rx-fvs-num{flex:0 0 40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;
  border:1.5px solid var(--apb-rx-line,#e5e7eb);background:var(--apb-rx-surface,#fff);color:var(--apb-rx-muted,#6b7280);position:relative;z-index:1;transition:all calc(.3s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvs-step:not(:last-child)::before{content:"";position:absolute;left:33px;top:56px;bottom:-16px;width:2px;background:var(--apb-rx-line,#e5e7eb)}
.apb-rx-fvs-copy{min-width:0;padding-top:8px}
.apb-rx-fvs-copy strong{display:block;font-size:16.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvs-copy p{overflow:hidden;max-height:0;opacity:0;margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.55;
  transition:max-height calc(.45s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),opacity calc(.35s / var(--apb-rx-dur,1)) ease,margin calc(.35s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvs-play{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  opacity:0;transition:opacity calc(.35s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvs-play svg{width:13px;height:13px}
.apb-rx-fvs-panel{position:sticky;top:24px;border-radius:calc(var(--apb-rx-radius)*1.2);overflow:hidden;aspect-ratio:4/3;
  background:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -25px rgba(11,13,18,.35))}
.apb-rx-fvs-pane{position:absolute;inset:0;opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity calc(.45s / var(--apb-rx-dur,1)) ease,transform calc(.45s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvs-chip{position:absolute;left:14px;top:14px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;
  background:rgba(255,255,255,.92);color:var(--apb-rx-ink,#0b0d12);box-shadow:0 4px 14px rgba(0,0,0,.25)}
@media(max-width:860px){.apb-rx-fvs-grid{grid-template-columns:1fr}.apb-rx-fvs-panel{position:relative;top:0;order:-1;aspect-ratio:16/10}}

/* ================================================================= tabs (cinematic) ================================================================= */
.apb-rx-fvt{padding:clamp(48px,7vw,96px) 24px;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-fvt-wrap{max-width:1080px;margin:0 auto}
.apb-rx-fvt-head{text-align:center;max-width:680px;margin:0 auto clamp(26px,4vw,42px)}
.apb-rx-fvt-head h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.4vw,46px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.06);color:#fff;text-wrap:balance}
.apb-rx-fvt-head p{margin:12px 0 0;color:rgba(255,255,255,.62);font-size:clamp(14px,1.5vw,17px);line-height:1.6}
.apb-rx-fvt input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fvt-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:clamp(18px,2.6vw,28px)}
.apb-rx-fvt-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.72);font-size:14px;font-weight:600;transition:all calc(.3s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvt-tab:hover{border-color:rgba(255,255,255,.4);color:#fff}
.apb-rx-fvt-tab svg,.apb-rx-fvt-tab img{width:15px;height:15px}
.apb-rx-fvt-stage{position:relative;aspect-ratio:16/9;border-radius:calc(var(--apb-rx-radius)*1.3);overflow:hidden;
  box-shadow:0 0 0 1px rgba(255,255,255,.1),0 40px 90px -30px var(--apb-rx-glow,rgba(0,0,0,.6))}
.apb-rx-fvt-pane{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity calc(.5s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvt-pane .apb-rx-fv-vid{width:100%;height:100%}
.apb-rx-fvt-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  padding:56px 24px 20px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff}
.apb-rx-fvt-cap strong{display:block;font-size:17px;font-weight:700}
.apb-rx-fvt-cap span{display:block;font-size:13.5px;opacity:.75;margin-top:4px;max-width:520px;line-height:1.5}
.apb-rx-fvt-cap em{flex:0 0 auto;font-style:normal;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  padding:6px 12px;border-radius:999px;background:var(--apb-rx-brand);color:#fff}
.apb-rx-fvt-pane .apb-rx-fvt-cap strong,.apb-rx-fvt-pane .apb-rx-fvt-cap span{transform:translateY(10px);opacity:0;
  transition:all calc(.5s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}

/* ================================================================= theater (card grid) ================================================================= */
.apb-rx-fvg{padding:clamp(48px,7vw,96px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-fvg-wrap{max-width:1140px;margin:0 auto}
.apb-rx-fvg-head{text-align:center;max-width:640px;margin:0 auto clamp(28px,4vw,44px)}
.apb-rx-fvg-head h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.4vw,46px);letter-spacing:var(--apb-rx-display-tracking,-.025em);line-height:var(--apb-rx-display-leading,1.06);color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-fvg-head p{margin:12px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:clamp(14px,1.5vw,17px);line-height:1.6}
.apb-rx-fvg input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-fvg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.8vw,18px)}
.apb-rx-fvg-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:clamp(16px,2.2vw,24px);cursor:pointer;
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e5e7eb);border-radius:calc(var(--apb-rx-radius)*1.1);
  box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));
  transition:transform calc(.35s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),box-shadow calc(.35s / var(--apb-rx-dur,1)) ease,border-color calc(.3s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvg-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -16px var(--apb-rx-glow,rgba(11,13,18,.22))}
.apb-rx-fvg-card strong{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);line-height:1.3}
.apb-rx-fvg-card p{margin:0;font-size:13px;line-height:1.55;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-fvg-watch{margin-top:auto;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fvg-watch i{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--apb-rx-brand);color:#fff;
  transition:transform calc(.3s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvg-card:hover .apb-rx-fvg-watch i{transform:scale(1.12)}
.apb-rx-fvg-watch svg{width:10px;height:10px}
.apb-rx-fvg-card::after{content:"";position:absolute;left:50%;bottom:-9px;width:16px;height:16px;transform:translateX(-50%) rotate(45deg) scale(0);
  background:var(--apb-rx-ink,#0b0d12);border-radius:3px;transition:transform calc(.35s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvg-theater{margin-top:clamp(14px,2vw,20px);display:grid;grid-template-rows:0fr;transition:grid-template-rows calc(.6s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-fvg-tinner{overflow:hidden;min-height:0}
.apb-rx-fvg-stage{position:relative;aspect-ratio:21/9;border-radius:calc(var(--apb-rx-radius)*1.2);overflow:hidden;
  background:var(--apb-rx-ink,#0b0d12);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -25px rgba(11,13,18,.35))}
.apb-rx-fvg-pane{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity calc(.5s / var(--apb-rx-dur,1)) ease}
.apb-rx-fvg-pane .apb-rx-fv-vid{width:100%;height:100%}
.apb-rx-fvg-plabel{position:absolute;left:18px;bottom:16px;display:flex;align-items:center;gap:10px;color:#fff}
.apb-rx-fvg-plabel i{display:inline-flex;width:8px;height:8px;border-radius:999px;background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 30%,transparent)}
.apb-rx-fvg-plabel strong{font-size:14px;font-weight:700}
@media(max-width:960px){.apb-rx-fvg-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.apb-rx-fvg-grid{grid-template-columns:1fr}.apb-rx-fvg-stage{aspect-ratio:16/10}}

/* ================================================================= generic checked-wiring (a..f) ================================================================= */
/* One rule-set per family, matched by id/for SUFFIX so it is instance/uid-agnostic. */
.apb-rx-fva input[id$="-a"]:checked ~ .apb-rx-fva-list label[for$="-a"] .apb-rx-fva-body,
.apb-rx-fva input[id$="-b"]:checked ~ .apb-rx-fva-list label[for$="-b"] .apb-rx-fva-body,
.apb-rx-fva input[id$="-c"]:checked ~ .apb-rx-fva-list label[for$="-c"] .apb-rx-fva-body,
.apb-rx-fva input[id$="-d"]:checked ~ .apb-rx-fva-list label[for$="-d"] .apb-rx-fva-body,
.apb-rx-fva input[id$="-e"]:checked ~ .apb-rx-fva-list label[for$="-e"] .apb-rx-fva-body,
.apb-rx-fva input[id$="-f"]:checked ~ .apb-rx-fva-list label[for$="-f"] .apb-rx-fva-body{grid-template-rows:1fr}
.apb-rx-fva input:checked ~ .apb-rx-fva-list label .apb-rx-fva-cols{opacity:0}
.apb-rx-fva input[id$="-a"]:checked ~ .apb-rx-fva-list label[for$="-a"] .apb-rx-fva-cols,
.apb-rx-fva input[id$="-b"]:checked ~ .apb-rx-fva-list label[for$="-b"] .apb-rx-fva-cols,
.apb-rx-fva input[id$="-c"]:checked ~ .apb-rx-fva-list label[for$="-c"] .apb-rx-fva-cols,
.apb-rx-fva input[id$="-d"]:checked ~ .apb-rx-fva-list label[for$="-d"] .apb-rx-fva-cols,
.apb-rx-fva input[id$="-e"]:checked ~ .apb-rx-fva-list label[for$="-e"] .apb-rx-fva-cols,
.apb-rx-fva input[id$="-f"]:checked ~ .apb-rx-fva-list label[for$="-f"] .apb-rx-fva-cols{opacity:1;transform:none}
.apb-rx-fva input[id$="-a"]:checked ~ .apb-rx-fva-list label[for$="-a"] .apb-rx-fva-plus,
.apb-rx-fva input[id$="-b"]:checked ~ .apb-rx-fva-list label[for$="-b"] .apb-rx-fva-plus,
.apb-rx-fva input[id$="-c"]:checked ~ .apb-rx-fva-list label[for$="-c"] .apb-rx-fva-plus,
.apb-rx-fva input[id$="-d"]:checked ~ .apb-rx-fva-list label[for$="-d"] .apb-rx-fva-plus,
.apb-rx-fva input[id$="-e"]:checked ~ .apb-rx-fva-list label[for$="-e"] .apb-rx-fva-plus,
.apb-rx-fva input[id$="-f"]:checked ~ .apb-rx-fva-list label[for$="-f"] .apb-rx-fva-plus{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand);color:#fff}
.apb-rx-fva input:checked ~ .apb-rx-fva-list label .apb-rx-fva-plus svg{transform:none}
.apb-rx-fva input[id$="-a"]:checked ~ .apb-rx-fva-list label[for$="-a"] .apb-rx-fva-plus svg,
.apb-rx-fva input[id$="-b"]:checked ~ .apb-rx-fva-list label[for$="-b"] .apb-rx-fva-plus svg,
.apb-rx-fva input[id$="-c"]:checked ~ .apb-rx-fva-list label[for$="-c"] .apb-rx-fva-plus svg,
.apb-rx-fva input[id$="-d"]:checked ~ .apb-rx-fva-list label[for$="-d"] .apb-rx-fva-plus svg,
.apb-rx-fva input[id$="-e"]:checked ~ .apb-rx-fva-list label[for$="-e"] .apb-rx-fva-plus svg,
.apb-rx-fva input[id$="-f"]:checked ~ .apb-rx-fva-list label[for$="-f"] .apb-rx-fva-plus svg{transform:rotate(45deg)}

.apb-rx-fvf input[id$="-a"]:checked ~ .apb-rx-fvf-grid label[for$="-a"],
.apb-rx-fvf input[id$="-b"]:checked ~ .apb-rx-fvf-grid label[for$="-b"],
.apb-rx-fvf input[id$="-c"]:checked ~ .apb-rx-fvf-grid label[for$="-c"],
.apb-rx-fvf input[id$="-d"]:checked ~ .apb-rx-fvf-grid label[for$="-d"],
.apb-rx-fvf input[id$="-e"]:checked ~ .apb-rx-fvf-grid label[for$="-e"],
.apb-rx-fvf input[id$="-f"]:checked ~ .apb-rx-fvf-grid label[for$="-f"]{opacity:1;filter:none;outline-color:var(--apb-rx-brand)}
.apb-rx-fvf input[id$="-a"]:checked ~ .apb-rx-fvf-grid [data-k="a"],
.apb-rx-fvf input[id$="-b"]:checked ~ .apb-rx-fvf-grid [data-k="b"],
.apb-rx-fvf input[id$="-c"]:checked ~ .apb-rx-fvf-grid [data-k="c"],
.apb-rx-fvf input[id$="-d"]:checked ~ .apb-rx-fvf-grid [data-k="d"],
.apb-rx-fvf input[id$="-e"]:checked ~ .apb-rx-fvf-grid [data-k="e"],
.apb-rx-fvf input[id$="-f"]:checked ~ .apb-rx-fvf-grid [data-k="f"]{opacity:1;transform:none;pointer-events:auto}

.apb-rx-fvr input[id$="-a"]:checked ~ .apb-rx-fvr-grid label[for$="-a"],
.apb-rx-fvr input[id$="-b"]:checked ~ .apb-rx-fvr-grid label[for$="-b"],
.apb-rx-fvr input[id$="-c"]:checked ~ .apb-rx-fvr-grid label[for$="-c"],
.apb-rx-fvr input[id$="-d"]:checked ~ .apb-rx-fvr-grid label[for$="-d"],
.apb-rx-fvr input[id$="-e"]:checked ~ .apb-rx-fvr-grid label[for$="-e"],
.apb-rx-fvr input[id$="-f"]:checked ~ .apb-rx-fvr-grid label[for$="-f"]{background:var(--apb-rx-soft,#f4f5f7);box-shadow:inset 0 0 0 1.5px var(--apb-rx-brand)}
.apb-rx-fvr input:checked ~ .apb-rx-fvr-grid label .apb-rx-fvr-desc{max-height:0}
.apb-rx-fvr input[id$="-a"]:checked ~ .apb-rx-fvr-grid label[for$="-a"] .apb-rx-fvr-desc,
.apb-rx-fvr input[id$="-b"]:checked ~ .apb-rx-fvr-grid label[for$="-b"] .apb-rx-fvr-desc,
.apb-rx-fvr input[id$="-c"]:checked ~ .apb-rx-fvr-grid label[for$="-c"] .apb-rx-fvr-desc,
.apb-rx-fvr input[id$="-d"]:checked ~ .apb-rx-fvr-grid label[for$="-d"] .apb-rx-fvr-desc,
.apb-rx-fvr input[id$="-e"]:checked ~ .apb-rx-fvr-grid label[for$="-e"] .apb-rx-fvr-desc,
.apb-rx-fvr input[id$="-f"]:checked ~ .apb-rx-fvr-grid label[for$="-f"] .apb-rx-fvr-desc{max-height:90px;opacity:1;margin-top:8px}
.apb-rx-fvr input[id$="-a"]:checked ~ .apb-rx-fvr-grid [data-k="a"],
.apb-rx-fvr input[id$="-b"]:checked ~ .apb-rx-fvr-grid [data-k="b"],
.apb-rx-fvr input[id$="-c"]:checked ~ .apb-rx-fvr-grid [data-k="c"],
.apb-rx-fvr input[id$="-d"]:checked ~ .apb-rx-fvr-grid [data-k="d"],
.apb-rx-fvr input[id$="-e"]:checked ~ .apb-rx-fvr-grid [data-k="e"],
.apb-rx-fvr input[id$="-f"]:checked ~ .apb-rx-fvr-grid [data-k="f"]{opacity:1;transform:none;pointer-events:auto}

.apb-rx-fvs input[id$="-a"]:checked ~ .apb-rx-fvs-grid label[for$="-a"] .apb-rx-fvs-num,
.apb-rx-fvs input[id$="-b"]:checked ~ .apb-rx-fvs-grid label[for$="-b"] .apb-rx-fvs-num,
.apb-rx-fvs input[id$="-c"]:checked ~ .apb-rx-fvs-grid label[for$="-c"] .apb-rx-fvs-num,
.apb-rx-fvs input[id$="-d"]:checked ~ .apb-rx-fvs-grid label[for$="-d"] .apb-rx-fvs-num,
.apb-rx-fvs input[id$="-e"]:checked ~ .apb-rx-fvs-grid label[for$="-e"] .apb-rx-fvs-num,
.apb-rx-fvs input[id$="-f"]:checked ~ .apb-rx-fvs-grid label[for$="-f"] .apb-rx-fvs-num{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand);color:#fff;
  box-shadow:0 8px 20px -6px var(--apb-rx-glow,rgba(11,13,18,.3))}
.apb-rx-fvs input:checked ~ .apb-rx-fvs-grid label .apb-rx-fvs-copy p{max-height:0}
.apb-rx-fvs input[id$="-a"]:checked ~ .apb-rx-fvs-grid label[for$="-a"] .apb-rx-fvs-copy p,
.apb-rx-fvs input[id$="-b"]:checked ~ .apb-rx-fvs-grid label[for$="-b"] .apb-rx-fvs-copy p,
.apb-rx-fvs input[id$="-c"]:checked ~ .apb-rx-fvs-grid label[for$="-c"] .apb-rx-fvs-copy p,
.apb-rx-fvs input[id$="-d"]:checked ~ .apb-rx-fvs-grid label[for$="-d"] .apb-rx-fvs-copy p,
.apb-rx-fvs input[id$="-e"]:checked ~ .apb-rx-fvs-grid label[for$="-e"] .apb-rx-fvs-copy p,
.apb-rx-fvs input[id$="-f"]:checked ~ .apb-rx-fvs-grid label[for$="-f"] .apb-rx-fvs-copy p{max-height:80px;opacity:1;margin-top:6px}
.apb-rx-fvs input[id$="-a"]:checked ~ .apb-rx-fvs-grid label[for$="-a"] .apb-rx-fvs-play,
.apb-rx-fvs input[id$="-b"]:checked ~ .apb-rx-fvs-grid label[for$="-b"] .apb-rx-fvs-play,
.apb-rx-fvs input[id$="-c"]:checked ~ .apb-rx-fvs-grid label[for$="-c"] .apb-rx-fvs-play,
.apb-rx-fvs input[id$="-d"]:checked ~ .apb-rx-fvs-grid label[for$="-d"] .apb-rx-fvs-play,
.apb-rx-fvs input[id$="-e"]:checked ~ .apb-rx-fvs-grid label[for$="-e"] .apb-rx-fvs-play,
.apb-rx-fvs input[id$="-f"]:checked ~ .apb-rx-fvs-grid label[for$="-f"] .apb-rx-fvs-play{opacity:1}
.apb-rx-fvs input[id$="-a"]:checked ~ .apb-rx-fvs-grid [data-k="a"],
.apb-rx-fvs input[id$="-b"]:checked ~ .apb-rx-fvs-grid [data-k="b"],
.apb-rx-fvs input[id$="-c"]:checked ~ .apb-rx-fvs-grid [data-k="c"],
.apb-rx-fvs input[id$="-d"]:checked ~ .apb-rx-fvs-grid [data-k="d"],
.apb-rx-fvs input[id$="-e"]:checked ~ .apb-rx-fvs-grid [data-k="e"],
.apb-rx-fvs input[id$="-f"]:checked ~ .apb-rx-fvs-grid [data-k="f"]{opacity:1;transform:none;pointer-events:auto}

.apb-rx-fvt input[id$="-a"]:checked ~ .apb-rx-fvt-tabs label[for$="-a"],
.apb-rx-fvt input[id$="-b"]:checked ~ .apb-rx-fvt-tabs label[for$="-b"],
.apb-rx-fvt input[id$="-c"]:checked ~ .apb-rx-fvt-tabs label[for$="-c"],
.apb-rx-fvt input[id$="-d"]:checked ~ .apb-rx-fvt-tabs label[for$="-d"],
.apb-rx-fvt input[id$="-e"]:checked ~ .apb-rx-fvt-tabs label[for$="-e"],
.apb-rx-fvt input[id$="-f"]:checked ~ .apb-rx-fvt-tabs label[for$="-f"]{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand);color:#fff}
.apb-rx-fvt input[id$="-a"]:checked ~ .apb-rx-fvt-stage [data-k="a"],
.apb-rx-fvt input[id$="-b"]:checked ~ .apb-rx-fvt-stage [data-k="b"],
.apb-rx-fvt input[id$="-c"]:checked ~ .apb-rx-fvt-stage [data-k="c"],
.apb-rx-fvt input[id$="-d"]:checked ~ .apb-rx-fvt-stage [data-k="d"],
.apb-rx-fvt input[id$="-e"]:checked ~ .apb-rx-fvt-stage [data-k="e"],
.apb-rx-fvt input[id$="-f"]:checked ~ .apb-rx-fvt-stage [data-k="f"]{opacity:1;pointer-events:auto}
.apb-rx-fvt input:checked ~ .apb-rx-fvt-stage [data-k] .apb-rx-fvt-cap strong,
.apb-rx-fvt input:checked ~ .apb-rx-fvt-stage [data-k] .apb-rx-fvt-cap span{transform:none;opacity:1}

.apb-rx-fvg input[id$="-a"]:checked ~ .apb-rx-fvg-theater,
.apb-rx-fvg input[id$="-b"]:checked ~ .apb-rx-fvg-theater,
.apb-rx-fvg input[id$="-c"]:checked ~ .apb-rx-fvg-theater,
.apb-rx-fvg input[id$="-d"]:checked ~ .apb-rx-fvg-theater,
.apb-rx-fvg input[id$="-e"]:checked ~ .apb-rx-fvg-theater,
.apb-rx-fvg input[id$="-f"]:checked ~ .apb-rx-fvg-theater{grid-template-rows:1fr}
.apb-rx-fvg input[id$="-a"]:checked ~ .apb-rx-fvg-grid label[for$="-a"],
.apb-rx-fvg input[id$="-b"]:checked ~ .apb-rx-fvg-grid label[for$="-b"],
.apb-rx-fvg input[id$="-c"]:checked ~ .apb-rx-fvg-grid label[for$="-c"],
.apb-rx-fvg input[id$="-d"]:checked ~ .apb-rx-fvg-grid label[for$="-d"],
.apb-rx-fvg input[id$="-e"]:checked ~ .apb-rx-fvg-grid label[for$="-e"],
.apb-rx-fvg input[id$="-f"]:checked ~ .apb-rx-fvg-grid label[for$="-f"]{border-color:var(--apb-rx-brand);
  box-shadow:0 0 0 1px var(--apb-rx-brand),0 18px 40px -16px var(--apb-rx-glow,rgba(11,13,18,.22))}
.apb-rx-fvg input[id$="-a"]:checked ~ .apb-rx-fvg-grid label[for$="-a"]::after,
.apb-rx-fvg input[id$="-b"]:checked ~ .apb-rx-fvg-grid label[for$="-b"]::after,
.apb-rx-fvg input[id$="-c"]:checked ~ .apb-rx-fvg-grid label[for$="-c"]::after,
.apb-rx-fvg input[id$="-d"]:checked ~ .apb-rx-fvg-grid label[for$="-d"]::after,
.apb-rx-fvg input[id$="-e"]:checked ~ .apb-rx-fvg-grid label[for$="-e"]::after,
.apb-rx-fvg input[id$="-f"]:checked ~ .apb-rx-fvg-grid label[for$="-f"]::after{transform:translateX(-50%) rotate(45deg) scale(1)}
.apb-rx-fvg input[id$="-a"]:checked ~ .apb-rx-fvg-theater [data-k="a"],
.apb-rx-fvg input[id$="-b"]:checked ~ .apb-rx-fvg-theater [data-k="b"],
.apb-rx-fvg input[id$="-c"]:checked ~ .apb-rx-fvg-theater [data-k="c"],
.apb-rx-fvg input[id$="-d"]:checked ~ .apb-rx-fvg-theater [data-k="d"],
.apb-rx-fvg input[id$="-e"]:checked ~ .apb-rx-fvg-theater [data-k="e"],
.apb-rx-fvg input[id$="-f"]:checked ~ .apb-rx-fvg-theater [data-k="f"]{opacity:1;pointer-events:auto}

/* keyboard-focus parity — the radios are visually hidden, so mirror :focus-visible onto their labels */
.apb-rx-fva input[id$="-a"]:focus-visible ~ .apb-rx-fva-list label[for$="-a"],
.apb-rx-fva input[id$="-b"]:focus-visible ~ .apb-rx-fva-list label[for$="-b"],
.apb-rx-fva input[id$="-c"]:focus-visible ~ .apb-rx-fva-list label[for$="-c"],
.apb-rx-fva input[id$="-d"]:focus-visible ~ .apb-rx-fva-list label[for$="-d"],
.apb-rx-fva input[id$="-e"]:focus-visible ~ .apb-rx-fva-list label[for$="-e"],
.apb-rx-fva input[id$="-f"]:focus-visible ~ .apb-rx-fva-list label[for$="-f"],
.apb-rx-fvf input[id$="-a"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-a"],
.apb-rx-fvf input[id$="-b"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-b"],
.apb-rx-fvf input[id$="-c"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-c"],
.apb-rx-fvf input[id$="-d"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-d"],
.apb-rx-fvf input[id$="-e"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-e"],
.apb-rx-fvf input[id$="-f"]:focus-visible ~ .apb-rx-fvf-grid label[for$="-f"],
.apb-rx-fvr input[id$="-a"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-a"],
.apb-rx-fvr input[id$="-b"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-b"],
.apb-rx-fvr input[id$="-c"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-c"],
.apb-rx-fvr input[id$="-d"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-d"],
.apb-rx-fvr input[id$="-e"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-e"],
.apb-rx-fvr input[id$="-f"]:focus-visible ~ .apb-rx-fvr-grid label[for$="-f"],
.apb-rx-fvs input[id$="-a"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-a"],
.apb-rx-fvs input[id$="-b"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-b"],
.apb-rx-fvs input[id$="-c"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-c"],
.apb-rx-fvs input[id$="-d"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-d"],
.apb-rx-fvs input[id$="-e"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-e"],
.apb-rx-fvs input[id$="-f"]:focus-visible ~ .apb-rx-fvs-grid label[for$="-f"],
.apb-rx-fvt input[id$="-a"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-a"],
.apb-rx-fvt input[id$="-b"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-b"],
.apb-rx-fvt input[id$="-c"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-c"],
.apb-rx-fvt input[id$="-d"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-d"],
.apb-rx-fvt input[id$="-e"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-e"],
.apb-rx-fvt input[id$="-f"]:focus-visible ~ .apb-rx-fvt-tabs label[for$="-f"],
.apb-rx-fvg input[id$="-a"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-a"],
.apb-rx-fvg input[id$="-b"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-b"],
.apb-rx-fvg input[id$="-c"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-c"],
.apb-rx-fvg input[id$="-d"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-d"],
.apb-rx-fvg input[id$="-e"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-e"],
.apb-rx-fvg input[id$="-f"]:focus-visible ~ .apb-rx-fvg-grid label[for$="-f"]{outline:2px solid var(--apb-rx-brand);outline-offset:3px;border-radius:calc(var(--apb-rx-radius)*.5)}

@media (prefers-reduced-motion:reduce){
  .apb-rx-fva-body,.apb-rx-fva-cols,.apb-rx-fva-plus,.apb-rx-fva-plus svg,
  .apb-rx-fvf-pane,.apb-rx-fvf-blurb,.apb-rx-fvf-thumb,
  .apb-rx-fvr-pane,.apb-rx-fvr-desc,.apb-rx-fvr-item,
  .apb-rx-fvs-pane,.apb-rx-fvs-copy p,.apb-rx-fvs-num,.apb-rx-fvs-play,
  .apb-rx-fvt-pane,.apb-rx-fvt-tab,.apb-rx-fvt-cap strong,.apb-rx-fvt-cap span,
  .apb-rx-fvg-card,.apb-rx-fvg-theater,.apb-rx-fvg-pane,.apb-rx-fvg-card::after{transition:none}
}

/* ================================================================= testimonials: expanding_row ================================================================= */
/* nested inside .apb-rx-section (which already pads + caps width): a framed soft panel, not a full band */
.apb-rx-tmxr{padding:clamp(12px,1.8vw,20px);background:var(--apb-rx-soft,#f4f5f7);border-radius:calc(var(--apb-rx-radius)*1.4)}
.apb-rx-tmxr-row{display:flex;gap:clamp(10px,1.6vw,18px);align-items:stretch;min-height:clamp(360px,44vw,520px);max-width:1180px;margin:0 auto}
.apb-rx-tmxr-card{position:relative;flex:1 1 0;min-width:0;display:flex;overflow:hidden;border-radius:calc(var(--apb-rx-radius)*1.15);
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e5e7eb);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));
  transition:flex-grow calc(.55s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),box-shadow calc(.55s / var(--apb-rx-dur,1)) ease,background calc(.4s / var(--apb-rx-dur,1)) ease;
  cursor:pointer;padding:clamp(8px,1vw,12px)}
.apb-rx-tmxr-card:hover,.apb-rx-tmxr-card:focus-within{flex-grow:2.6;background:var(--apb-rx-brand);box-shadow:0 24px 60px -18px var(--apb-rx-glow,rgba(11,13,18,.28))}
.apb-rx-tmxr-photo{position:relative;flex:0 0 clamp(150px,17vw,230px);border-radius:calc(var(--apb-rx-radius)*.9);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-tmxr-photoimg{position:absolute;inset:0}
.apb-rx-tmxr-photoimg img{width:100%;height:100%;object-fit:cover;display:block;transition:transform calc(.55s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-tmxr-card:hover .apb-rx-tmxr-photoimg img,.apb-rx-tmxr-card:focus-within .apb-rx-tmxr-photoimg img{transform:scale(1.04)}
.apb-rx-tmxr-tag{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:44px 16px 16px;background:linear-gradient(transparent,rgba(11,13,18,.62));color:#fff;
  opacity:1;transition:opacity calc(.35s / var(--apb-rx-dur,1)) ease}
.apb-rx-tmxr-tag strong{display:block;font-size:14px;font-weight:700;line-height:1.3}
.apb-rx-tmxr-tag span{display:block;font-size:12px;opacity:.85;margin-top:2px}
.apb-rx-tmxr-card:hover .apb-rx-tmxr-tag,.apb-rx-tmxr-card:focus-within .apb-rx-tmxr-tag{opacity:0}
.apb-rx-tmxr-quote{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:space-between;
  padding:clamp(14px,2vw,26px) clamp(6px,1.4vw,18px) clamp(14px,2vw,26px) clamp(14px,2vw,24px);opacity:0;transform:translateX(14px);
  transition:opacity calc(.45s / var(--apb-rx-dur,1)) ease,transform calc(.55s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1)}
.apb-rx-tmxr-card:hover .apb-rx-tmxr-quote,.apb-rx-tmxr-card:focus-within .apb-rx-tmxr-quote{opacity:1;transform:translateX(0)}
.apb-rx-tmxr-quote blockquote{margin:0;color:#fff;font-size:clamp(15px,1.7vw,20px);line-height:1.55;font-weight:500;text-wrap:pretty}
.apb-rx-tmxr-quote .apb-rx-tby{margin-top:18px;color:#fff}
.apb-rx-tmxr-quote .apb-rx-tby strong{color:#fff}
.apb-rx-tmxr-quote .apb-rx-tby span{color:rgba(255,255,255,.75)}
@media (hover:none){
  .apb-rx-tmxr-row{flex-direction:column;min-height:0}
  .apb-rx-tmxr-card{flex-grow:1;background:var(--apb-rx-brand)}
  .apb-rx-tmxr-quote{opacity:1;transform:none}
  .apb-rx-tmxr-tag{opacity:0}
  .apb-rx-tmxr-photo{flex-basis:clamp(110px,32vw,160px);min-height:150px}
}
@media (prefers-reduced-motion:reduce){.apb-rx-tmxr-card,.apb-rx-tmxr-photoimg img,.apb-rx-tmxr-quote,.apb-rx-tmxr-tag{transition:none}}
@media(max-width:860px){
  .apb-rx-tmxr-row{flex-direction:column;min-height:0}
  .apb-rx-tmxr-card:hover,.apb-rx-tmxr-card:focus-within{flex-grow:1}
  .apb-rx-tmxr-photo{flex-basis:clamp(110px,32vw,160px);min-height:170px}
  .apb-rx-tmxr-card{background:var(--apb-rx-brand)}
  .apb-rx-tmxr-quote{opacity:1;transform:none}
  .apb-rx-tmxr-tag{opacity:0}
}

/* ================================================================= testimonials: stacked_pile ================================================================= */
.apb-rx-tmsp{position:relative;overflow:hidden;padding:clamp(10px,1.6vw,20px) 0}
.apb-rx-tmsp-pile{position:relative;display:flex;flex-direction:column;gap:clamp(12px,1.8vw,18px);max-width:880px;margin:0 auto}
.apb-rx-tmsp-card{display:flex;gap:clamp(14px,2.2vw,22px);align-items:flex-start;padding:clamp(14px,2vw,22px) clamp(16px,2.4vw,26px);
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e5e7eb);border-radius:calc(var(--apb-rx-radius)*1.1);
  box-shadow:0 18px 44px -20px rgba(11,13,18,.22);transform:rotate(var(--tilt,0deg)) translateY(var(--tuck,0px));transform-origin:50% 0;
  transition:transform calc(.55s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),box-shadow calc(.55s / var(--apb-rx-dur,1)) ease}
.apb-rx-tmsp-card:nth-child(1){--tilt:-2.4deg;z-index:3}
.apb-rx-tmsp-card:nth-child(2){--tilt:1.6deg;--tuck:-34px;z-index:2}
.apb-rx-tmsp-card:nth-child(3){--tilt:-1.2deg;--tuck:-68px;z-index:1}
.apb-rx-tmsp-pile:hover .apb-rx-tmsp-card,.apb-rx-tmsp-pile:focus-within .apb-rx-tmsp-card{--tilt:0deg;--tuck:0px}
.apb-rx-tmsp-card:hover{box-shadow:0 26px 60px -22px var(--apb-rx-glow,rgba(11,13,18,.3));z-index:4}
.apb-rx-tmsp-ava{flex:0 0 clamp(64px,8vw,88px);aspect-ratio:1;border-radius:calc(var(--apb-rx-radius)*.8);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-tmsp-avaimg{width:100%;height:100%}
.apb-rx-tmsp-avaimg img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-tmsp-body{min-width:0}
.apb-rx-tmsp-body blockquote{margin:0;color:var(--apb-rx-ink,#0b0d12);font-size:clamp(14px,1.6vw,17px);line-height:1.6;text-wrap:pretty}
.apb-rx-tmsp-body .apb-rx-tby{margin-top:10px}
@media (hover:none){.apb-rx-tmsp-card{--tilt:0deg;--tuck:0px}}
@media (prefers-reduced-motion:reduce){.apb-rx-tmsp-card{--tilt:0deg;--tuck:0px;transition:none}}
@media(max-width:640px){.apb-rx-tmsp-card{--tilt:0deg;--tuck:0px;flex-direction:column}.apb-rx-tmsp-ava{flex-basis:auto;width:64px}}
/* ==== assets/pages/component-local.css ==== */
/* LOCAL_BUSINESS family — shared chrome (head/lead/cta/fallback) + variant CSS. Tokens only. */
.apb-rx-lb-head{margin-bottom:clamp(20px,3.5vh,34px)}
.apb-rx-lb-head--c{text-align:center}
.apb-rx-lb-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.2vw,48px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:1.06;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-lb-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:60ch}
.apb-rx-lb-head--c .apb-rx-lb-lead{margin-inline:auto}
.apb-rx-lb-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.apb-rx-lb-ctarow--c{justify-content:center}
.apb-rx-lb-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-lb-cta:hover{transform:translateY(-2px)}
.apb-rx-lb-cta--primary{background:var(--apb-rx-brand);color:#fff;box-shadow:0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35))}
.apb-rx-lb-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-lb-fallback{padding:clamp(48px,8vh,90px) 24px;text-align:center}
@media (prefers-reduced-motion:reduce){.apb-rx-lb-cta{transition:none}}

/* ---------- 1. opening_hours ---------- */
.apb-rx-lbhrs{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-lbhrs-wrap{max-width:520px;margin:0 auto}
.apb-rx-lbhrs-card{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-lbhrs-top{display:flex;align-items:center;gap:14px;padding:20px 22px;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-lbhrs-ico{width:44px;height:44px;flex:0 0 auto;border-radius:calc(var(--apb-rx-radius) * .8);display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-lbhrs-ico svg{width:22px;height:22px}
.apb-rx-lbhrs-top b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:19px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-lbhrs-status{display:inline-flex;align-items:center;gap:7px;margin-top:3px;font-size:13px;font-weight:700;color:#16a34a}
.apb-rx-lbhrs-status i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 0 rgba(22,163,74,.5);animation:lbhrsPulse calc(2s / var(--apb-rx-dur,1)) ease-out infinite}
.apb-rx-lbhrs-status span{color:var(--apb-rx-muted,#6b7280);font-weight:500}
@keyframes lbhrsPulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}100%{box-shadow:0 0 0 8px transparent}}
.apb-rx-lbhrs-list{padding:8px 22px 14px}
.apb-rx-lbhrs-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#f1f2f5);font-size:14.5px}
.apb-rx-lbhrs-row:last-child{border-bottom:0}
.apb-rx-lbhrs-row span:first-child{color:var(--apb-rx-ink,#0b0d12);font-weight:600}
.apb-rx-lbhrs-row span:last-child{color:var(--apb-rx-muted,#6b7280);font-variant-numeric:tabular-nums}
.apb-rx-lbhrs-row--today{margin:0 -14px;padding-left:14px;padding-right:14px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius);border-bottom-color:transparent}
.apb-rx-lbhrs-row--today span:first-child{color:var(--apb-rx-accent-text);font-weight:800}
.apb-rx-lbhrs-row--today span:last-child{color:var(--apb-rx-ink,#0b0d12);font-weight:700}
.apb-rx-lbhrs-row--closed span:last-child{color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-lbhrs-today-tag{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--apb-rx-brand);
  border-radius:var(--apb-rx-radius-pill,999px);padding:3px 9px;margin-left:8px;vertical-align:middle;white-space:nowrap}
.apb-rx-lbhrs-note{display:flex;gap:10px;align-items:flex-start;padding:14px 22px;background:var(--apb-rx-soft);font-size:13px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
.apb-rx-lbhrs-note svg{flex:none;width:16px;height:16px;color:var(--apb-rx-accent-text);margin-top:1px}
@media (prefers-reduced-motion:reduce){.apb-rx-lbhrs-status i{animation:none}}

/* ---------- 2. food_menu ---------- */
.apb-rx-lbmenu{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft)}
.apb-rx-lbmenu-wrap{max-width:880px;margin:0 auto}
.apb-rx-lbmenu .apb-rx-lb-head{text-align:center}
.apb-rx-lbmenu-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.apb-rx-lbmenu-sec{margin-bottom:30px}
.apb-rx-lbmenu-sec > h3{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;
  font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-lbmenu-sec > h3::after{content:"";flex:1;height:1px;background:var(--apb-rx-line,#d9dbe0)}
.apb-rx-lbmenu-dish{margin-bottom:16px}
.apb-rx-lbmenu-line{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.apb-rx-lbmenu-name{font-size:16px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);white-space:nowrap}
.apb-rx-lbmenu-tag{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text);
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line-accent);border-radius:var(--apb-rx-radius-pill,999px);padding:2px 7px;vertical-align:middle;white-space:nowrap}
.apb-rx-lbmenu-dots{flex:1;border-bottom:1.5px dotted var(--apb-rx-line,#c9cbd2);transform:translateY(-4px);min-width:20px}
.apb-rx-lbmenu-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:16px;color:var(--apb-rx-ink,#0b0d12);white-space:nowrap;font-variant-numeric:tabular-nums}
.apb-rx-lbmenu-desc{margin:4px 0 0;font-size:13.5px;color:var(--apb-rx-muted,#6b7280);line-height:1.5;max-width:90%}
.apb-rx-lbmenu-foot{margin-top:14px;text-align:center;font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:680px){.apb-rx-lbmenu-cols{grid-template-columns:1fr;gap:0}}

/* ---------- 3. find_us (decorative CSS-only map) ---------- */
.apb-rx-lbfind{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-lbfind-wrap{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:calc(var(--apb-rx-radius) * 1.3);
  overflow:hidden;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-lbfind-map{position:relative;min-height:340px;
  background:
    radial-gradient(60% 80% at 30% 20%,color-mix(in srgb,var(--apb-rx-brand) 8%,transparent),transparent 60%),
    repeating-linear-gradient(0deg,var(--apb-rx-line,#eef0f2) 0 1px,transparent 1px 40px),
    repeating-linear-gradient(90deg,var(--apb-rx-line,#eef0f2) 0 1px,transparent 1px 40px),
    var(--apb-rx-soft)}
.apb-rx-lbfind-road{position:absolute;background:var(--apb-rx-surface,#fff);box-shadow:0 0 0 1px var(--apb-rx-line,#e2e4e9)}
.apb-rx-lbfind-road--h{left:0;right:0;height:14px;top:52%}
.apb-rx-lbfind-road--v{top:0;bottom:0;width:14px;left:38%}
.apb-rx-lbfind-road--d{left:8%;right:20%;top:24%;height:9px;transform:rotate(-18deg);transform-origin:left}
.apb-rx-lbfind-pin{position:absolute;left:38%;top:52%;transform:translate(-50%,-100%);z-index:2;color:var(--apb-rx-brand)}
.apb-rx-lbfind-pin svg{width:40px;height:40px;filter:drop-shadow(0 6px 10px rgba(11,13,18,.3))}
.apb-rx-lbfind-pin::after{content:"";position:absolute;left:50%;bottom:-4px;width:16px;height:5px;border-radius:50%;background:rgba(11,13,18,.18);transform:translateX(-50%)}
.apb-rx-lbfind-body{padding:clamp(26px,3.5vw,40px);display:flex;flex-direction:column}
.apb-rx-lbfind-line{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start;padding:11px 0;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-lbfind-line:first-of-type{border-top:0}
.apb-rx-lbfind-line i{width:38px;height:38px;border-radius:calc(var(--apb-rx-radius) * .7);display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-rx-lbfind-line svg{width:18px;height:18px}
.apb-rx-lbfind-line b{display:block;font-size:14px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-lbfind-line span,.apb-rx-lbfind-line a{font-size:13.5px;color:var(--apb-rx-muted,#6b7280);text-decoration:none;line-height:1.5}
.apb-rx-lbfind-line a:hover{color:var(--apb-rx-accent-text)}
.apb-rx-lbfind-open{color:#16a34a;font-weight:700}
.apb-rx-lbfind-btn{margin-top:auto;padding-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.apb-rx-lbfind-btn a{flex:1;min-width:130px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 18px;border-radius:var(--apb-rx-radius);
  font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-lbfind-btn a:hover{transform:translateY(-2px)}
.apb-rx-lbfind-btn a:first-child{background:var(--apb-rx-brand);color:#fff;box-shadow:0 12px 30px -12px var(--apb-rx-glow)}
.apb-rx-lbfind-btn a:last-child{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);color:var(--apb-rx-ink,#0b0d12)}
@media(max-width:760px){.apb-rx-lbfind-wrap{grid-template-columns:1fr}.apb-rx-lbfind-map{min-height:200px;order:-1}}
@media (prefers-reduced-motion:reduce){.apb-rx-lbfind-btn a{transition:none}}

/* ---------- 4. reservation ---------- */
.apb-rx-lbres{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft)}
.apb-rx-lbres-wrap{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:0;border-radius:calc(var(--apb-rx-radius) * 1.3);
  overflow:hidden;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-lbres-media{position:relative;min-height:220px}
.apb-rx-lbres-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.15),rgba(11,13,18,.6))}
.apb-rx-lbres-img{position:absolute;inset:0;width:100%;height:100%}
.apb-rx-lbres-img img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-lbres-img--ph{position:absolute;inset:0;background:var(--apb-rx-line,#e7e8ec)}
.apb-rx-lbres-badge{position:absolute;left:16px;bottom:16px;z-index:1;color:#fff;max-width:calc(100% - 32px)}
.apb-rx-lbres-badge b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:19px}
.apb-rx-lbres-badge span{font-size:12.5px;color:rgba(255,255,255,.82)}
.apb-rx-lbres-body{padding:clamp(24px,3.2vw,38px)}
.apb-rx-lbres-body > p{margin:0 0 20px;color:var(--apb-rx-muted,#6b7280);font-size:14px}
.apb-rx-lbres-field{margin-bottom:16px}
.apb-rx-lbres-field > label{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);margin-bottom:8px}
.apb-rx-lbres-chips{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-lbres-chip input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-lbres-chip label{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:10px 14px;font-size:14px;font-weight:700;
  color:var(--apb-rx-ink,#0b0d12);background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);border-radius:var(--apb-rx-radius);cursor:pointer;
  transition:all var(--apb-rx-t-fast,.16s);white-space:nowrap}
.apb-rx-lbres-chip label:hover{border-color:var(--apb-rx-line-accent)}
.apb-rx-lbres-chip input:checked + label{background:var(--apb-rx-brand);border-color:transparent;color:#fff}
.apb-rx-lbres-chip input:disabled + label{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.apb-rx-lbres-chip input:focus-visible + label{outline:2px solid var(--apb-rx-ring);outline-offset:2px}
.apb-rx-lbres-chip input:checked + label{background:var(--apb-rx-brand);border-color:transparent;color:#fff}
.apb-rx-lbres-chip input:disabled + label{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.apb-rx-lbres-submit{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:15px;border:0;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:#fff;
  font-size:15px;font-weight:700;text-align:center;box-shadow:0 14px 34px -12px var(--apb-rx-glow)}
@media(max-width:720px){.apb-rx-lbres-wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-lbres-chip label{transition:none}}

/* ---------- 5. services_menu ---------- */
.apb-rx-lbsvc{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-lbsvc-wrap{max-width:820px;margin:0 auto}
.apb-rx-lbsvc-group{margin-bottom:26px}
.apb-rx-lbsvc-group > h3{margin:0 0 6px;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-lbsvc-row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:16px 0;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-lbsvc-info b{display:block;font-size:16px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-lbsvc-info span{display:inline-flex;align-items:center;gap:6px;margin-top:4px;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);white-space:nowrap}
.apb-rx-lbsvc-info svg{width:14px;height:14px;flex:none}
.apb-rx-lbsvc-badge{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text);
  background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:3px 9px;margin-left:8px;vertical-align:middle;white-space:nowrap}
.apb-rx-lbsvc-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:18px;color:var(--apb-rx-ink,#0b0d12);white-space:nowrap;font-variant-numeric:tabular-nums}
.apb-rx-lbsvc-price small{display:block;font-family:var(--apb-rx-font,inherit);font-size:11px;font-weight:500;color:var(--apb-rx-fg-subtle,#a1a1aa);text-align:right}
.apb-rx-lbsvc-book{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--apb-rx-radius);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);
  color:var(--apb-rx-ink,#0b0d12);font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;transition:border-color var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s)}
.apb-rx-lbsvc-book:hover{border-color:var(--apb-rx-brand);background:var(--apb-rx-soft)}
@media(max-width:560px){
  .apb-rx-lbsvc-row{grid-template-columns:1fr auto;gap:8px 14px}
  .apb-rx-lbsvc-book{grid-column:2;grid-row:1 / span 2;align-self:center}
}
@media (prefers-reduced-motion:reduce){.apb-rx-lbsvc-book{transition:none}}
/* ==== assets/pages/component-course.css ==== */
/* COURSE family — shared chrome (head/lead/cta/fallback) + variant CSS. Tokens only. */
.apb-rx-cs-head{margin-bottom:clamp(20px,3.5vh,34px)}
.apb-rx-cs-head--c{text-align:center}
.apb-rx-cs-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.2vw,48px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:1.06;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cs-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:60ch}
.apb-rx-cs-head--c .apb-rx-cs-lead{margin-inline:auto}
.apb-rx-cs-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.apb-rx-cs-ctarow--c{justify-content:center}
.apb-rx-cs-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-cs-cta:hover{transform:translateY(-2px)}
.apb-rx-cs-cta--primary{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35))}
.apb-rx-cs-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-cs-fallback{padding:clamp(48px,8vh,90px) 24px;text-align:center}
@media (prefers-reduced-motion:reduce){.apb-rx-cs-cta{transition:none}}

/* ---------- 1. opening_hours ---------- */

/* ================= COURSE batch A (hero, curriculum, outcomes, instructor, enroll) ================= */

/* ---------- A1. hero ---------- */
.apb-rx-cshero{padding:clamp(48px,8vh,96px) 24px;background:
  radial-gradient(70vmax 50vmax at 85% -10%,color-mix(in srgb,var(--apb-rx-brand) 12%,transparent),transparent 60%),var(--apb-rx-surface,#fff)}
.apb-rx-cshero-wrap{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,64px);align-items:center}
.apb-rx-cshero-wrap--full{grid-template-columns:1fr;max-width:720px;text-align:center}
.apb-rx-cshero-wrap--full .apb-rx-cshero-proof,.apb-rx-cshero-wrap--full .apb-rx-cshero-cta{justify-content:center}
.apb-rx-cshero-badge{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-cshero h1{margin:16px 0 14px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(34px,5.4vw,58px);letter-spacing:-.03em;line-height:1.02;color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-cshero-lead{margin:0 0 20px;color:var(--apb-rx-muted,#6b7280);font-size:16.5px;line-height:1.6;max-width:48ch}
.apb-rx-cshero-wrap--full .apb-rx-cshero-lead{margin-inline:auto}
.apb-rx-cshero-proof{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:26px}
.apb-rx-cshero-stars{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cshero-stars b{color:#d97706;letter-spacing:1px;font-style:normal}
.apb-rx-cshero-stars span{color:var(--apb-rx-muted,#6b7280);font-weight:500}
.apb-rx-cshero-who{display:flex;align-items:center}
.apb-rx-cshero-who img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--apb-rx-surface,#fff);margin-left:-10px}
.apb-rx-cshero-who img:first-child{margin-left:0}
.apb-rx-cshero-who span{margin-left:10px;font-size:13.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-cshero-who b{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cshero-meta{margin-top:16px;font-size:13px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-cshero-card{border-radius:calc(var(--apb-rx-radius) * 1.3);overflow:hidden;background:var(--apb-rx-surface,#fff);
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-cshero-thumb{position:relative;aspect-ratio:16/10}
.apb-rx-cshero-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-cshero-facts{display:flex;justify-content:space-around;padding:16px;text-align:center;flex-wrap:wrap;gap:10px}
.apb-rx-cshero-facts b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:19px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cshero-facts span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:840px){.apb-rx-cshero-wrap{grid-template-columns:1fr}}

/* ---------- A2. curriculum ---------- */
.apb-rx-cscur{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-cscur-wrap{max-width:840px;margin:0 auto}
.apb-rx-cscur-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:clamp(24px,4vh,36px)}
.apb-rx-cscur-head .apb-rx-cs-head{margin-bottom:0}
.apb-rx-cscur-sum-meta{font-size:13.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-cscur-sum-meta b{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscur-mod{background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);
  margin-bottom:12px;overflow:hidden}
.apb-rx-cscur-mod[open]{box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-cscur-mh{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 20px}
.apb-rx-cscur-mh::-webkit-details-marker{display:none}
.apb-rx-cscur-mh:focus-visible{outline:2px solid var(--apb-rx-ring);outline-offset:-3px;border-radius:var(--apb-rx-radius)}
.apb-rx-cscur-mnum{flex:0 0 auto;width:36px;height:36px;border-radius:calc(var(--apb-rx-radius) * .7);display:flex;align-items:center;justify-content:center;
  font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:14px;background:var(--apb-rx-soft,#eef0ff);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cscur-mtitle{flex:1;min-width:0}
.apb-rx-cscur-mtitle b{display:block;font-size:16.5px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscur-mtitle span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-cscur-chev{flex:0 0 auto;width:22px;height:22px;color:var(--apb-rx-muted,#6b7280);transition:transform var(--apb-rx-t,.28s)}
.apb-rx-cscur-mod[open] .apb-rx-cscur-chev{transform:rotate(180deg)}
.apb-rx-cscur-lesson{display:flex;align-items:center;gap:14px;padding:12px 20px 12px 72px;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#f1f2f5)}
.apb-rx-cscur-lesson svg{flex:none;width:17px;height:17px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-cscur-lesson span{flex:1;font-size:14.5px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscur-free{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line-accent);border-radius:var(--apb-rx-radius-pill,999px);padding:2px 8px;flex:none}
.apb-rx-cscur-dur{font-size:12.5px;color:var(--apb-rx-muted,#6b7280);font-variant-numeric:tabular-nums;flex:none}
@media (prefers-reduced-motion:reduce){.apb-rx-cscur-chev{transition:none}}

/* ---------- A3. outcomes ---------- */
.apb-rx-csout{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-csout-wrap{max-width:1000px;margin:0 auto}
.apb-rx-csout-wrap .apb-rx-cs-head{max-width:620px}
.apb-rx-csout-grid{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,2),1fr);gap:14px 28px;padding:24px;border-radius:calc(var(--apb-rx-radius) * 1.2);
  background:var(--apb-rx-soft,#f4f5f7);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-csout-item{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start}
.apb-rx-csout-item i{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);flex:none}
.apb-rx-csout-item svg{width:15px;height:15px}
.apb-rx-csout-item span{font-size:15px;line-height:1.45;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 88%,transparent);padding-top:2px}
.apb-rx-csout-for{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.apb-rx-csout-chip{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 15px}
@media(max-width:640px){.apb-rx-csout-grid{grid-template-columns:1fr}}

/* ---------- A4. instructor ---------- */
.apb-rx-csins{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-csins-wrap{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,60px);align-items:center}
.apb-rx-csins-wrap--nomedia{grid-template-columns:1fr;max-width:720px}
.apb-rx-csins-mediawrap{position:relative}
.apb-rx-csins-media{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:calc(var(--apb-rx-radius) * 1.4);display:block;box-shadow:var(--apb-rx-shadow-2);overflow:hidden}
.apb-rx-csins-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-csins-tag{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#fff;
  background:rgba(11,13,18,.55);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-csins-tag svg{width:14px;height:14px;color:#facc15}
.apb-rx-csins-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-csins-name{margin:8px 0 2px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4vw,44px);letter-spacing:-.02em;line-height:1;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-csins-role{font-size:15px;font-weight:600;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-csins-bio{margin:18px 0;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 80%,transparent);font-size:15.5px;line-height:1.7;max-width:54ch}
.apb-rx-csins-quote{margin:0 0 22px;padding-left:16px;border-left:3px solid var(--apb-rx-brand);font-style:italic;font-size:15px;color:var(--apb-rx-ink,#0b0d12);line-height:1.55}
.apb-rx-csins-stats{display:flex;flex-wrap:wrap;gap:26px}
.apb-rx-csins-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-csins-stat span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:760px){.apb-rx-csins-wrap{grid-template-columns:1fr}.apb-rx-csins-mediawrap{max-width:320px}}

/* ---------- A5. enroll ---------- */
.apb-rx-csenr{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-csenr-wrap{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr .9fr;gap:clamp(24px,4vw,48px);align-items:center}
.apb-rx-csenr-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-csenr-lead{margin:0 0 20px;color:var(--apb-rx-muted,#6b7280);font-size:15.5px;line-height:1.6;max-width:44ch}
.apb-rx-csenr-incl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-csenr-incl li{display:flex;gap:11px;font-size:15px;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 84%,transparent)}
.apb-rx-csenr-incl svg{flex:none;width:19px;height:19px;color:var(--apb-rx-brand);margin-top:1px}
.apb-rx-csenr-card{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.3);overflow:hidden;box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-csenr-cardtop{padding:26px 26px 22px;background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-csenr-flag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(255,255,255,.18);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px;margin-bottom:14px}
.apb-rx-csenr-price{display:flex;align-items:baseline;gap:10px}
.apb-rx-csenr-price b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(38px,5vw,52px);letter-spacing:-.02em;line-height:1}
.apb-rx-csenr-price s{font-size:20px;opacity:.65}
.apb-rx-csenr-cardbody{padding:22px 26px 26px;background:var(--apb-rx-surface,#fff)}
.apb-rx-csenr-btn{display:block;text-align:center;padding:16px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);
  font-size:15.5px;font-weight:700;text-decoration:none;box-shadow:0 16px 40px -14px var(--apb-rx-glow,rgba(11,13,18,.45));transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-csenr-btn:hover{transform:translateY(-2px)}
.apb-rx-csenr-note{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-csenr-note svg{width:15px;height:15px;color:var(--apb-rx-check,#16a34a)}
.apb-rx-csenr-cohort{margin-top:16px;padding-top:16px;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2);display:flex;align-items:center;gap:10px;font-size:13px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-csenr-cohort svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:none}
.apb-rx-csenr-cohort b{font-weight:700}
@media(max-width:760px){.apb-rx-csenr-wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-csenr-btn{transition:none}}
/* ==== assets/pages/component-course-2.css ==== */
/* course family — batch 2 variants. Tokens only; reduced-motion fallbacks required. */

/* ---------------- reviews (apb-rx-csrev) ---------------- */
.apb-rx-csrev{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-csrev-wrap{max-width:1120px;margin:0 auto}
.apb-rx-csrev-top{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,4vw,56px);align-items:center;margin-bottom:clamp(28px,4.5vh,44px)}
.apb-rx-csrev-score{display:flex;align-items:center;gap:22px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * 1.2);padding:22px 26px;box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-csrev-big{text-align:center;flex:0 0 auto}
.apb-rx-csrev-big b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(40px,5vw,58px);letter-spacing:-.02em;line-height:1;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-csrev-big span{color:#d97706;font-size:15px;letter-spacing:1px}
.apb-rx-csrev-big small{display:block;margin-top:4px;font-size:12px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-csrev-bars{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.apb-rx-csrev-bar{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-csrev-bar i{flex:1;height:7px;border-radius:99px;background:var(--apb-rx-soft,#eef0ff);overflow:hidden}
.apb-rx-csrev-bar i::after{content:"";display:block;height:100%;width:var(--v,50%);border-radius:99px;background:var(--apb-rx-brand)}
.apb-rx-csrev-grid{columns:3;column-gap:16px}
.apb-rx-csrev-card{break-inside:avoid;margin-bottom:16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * 1.1);padding:20px}
.apb-rx-csrev-outcome{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.04em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px;margin-bottom:12px}
.apb-rx-csrev-stars{color:#d97706;font-size:13px;letter-spacing:1px;margin-bottom:8px}
.apb-rx-csrev-card p{margin:0 0 14px;font-size:14.5px;line-height:1.6;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 84%,transparent)}
.apb-rx-csrev-who{display:flex;align-items:center;gap:10px}
.apb-rx-csrev-who img,.apb-rx-csrev-who .apb-rx-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none}
.apb-rx-csrev-who .apb-rx-avatar{display:flex;align-items:center;justify-content:center;background:var(--apb-rx-soft,#eef0ff);color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:700;font-size:13px}
.apb-rx-csrev-who b{display:block;font-size:13.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-csrev-who span{font-size:12px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:900px){.apb-rx-csrev-top{grid-template-columns:1fr}.apb-rx-csrev-grid{columns:2}}
@media(max-width:560px){.apb-rx-csrev-grid{columns:1}.apb-rx-csrev-score{flex-direction:column;align-items:flex-start}}

/* ---------------- lesson preview (apb-rx-cslp) ---------------- */
.apb-rx-cslp{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cslp-wrap{max-width:1100px;margin:0 auto}
.apb-rx-cslp .apb-rx-cs-head{color:#fff;max-width:600px;margin:0 auto clamp(26px,4vh,40px)}
.apb-rx-cslp .apb-rx-eyebrow{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-cslp .apb-rx-cs-head h2{color:#fff}
.apb-rx-cslp .apb-rx-cs-lead{color:rgba(255,255,255,.6)}
.apb-rx-cslp-app{display:grid;grid-template-columns:1.7fr 1fr;gap:14px;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;
  background:#15161d;border:1px solid rgba(255,255,255,.1);box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.apb-rx-cslp-player{padding:14px}
.apb-rx-cslp-video{position:relative;border-radius:calc(var(--apb-rx-radius) * .9);overflow:hidden;aspect-ratio:16/9}
.apb-rx-cslp-video .apb-rx-cslp-media,.apb-rx-cslp-video img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.8)}
.apb-rx-cslp-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:66px;height:66px;border-radius:50%;
  background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 34px rgba(0,0,0,.5)}
.apb-rx-cslp-play svg{width:24px;height:24px;color:var(--apb-rx-brand);margin-left:3px}
.apb-rx-cslp-scrub{position:absolute;left:12px;right:12px;bottom:12px}
.apb-rx-cslp-track{position:relative;height:5px;border-radius:99px;background:rgba(255,255,255,.28)}
.apb-rx-cslp-track i{position:absolute;left:0;top:0;height:100%;width:34%;border-radius:99px;background:var(--apb-rx-brand)}
.apb-rx-cslp-track b{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.apb-rx-cslp-cap{padding:0 4px}
.apb-rx-cslp-cap b{display:block;color:#fff;font-size:16.5px;font-weight:700;margin-top:12px}
.apb-rx-cslp-cap span{font-size:12.5px;color:rgba(255,255,255,.55)}
.apb-rx-cslp-list{background:#101117;padding:16px;border-left:1px solid rgba(255,255,255,.08)}
.apb-rx-cslp-item{display:flex;align-items:center;gap:11px;padding:11px 10px;border-radius:var(--apb-rx-radius);text-decoration:none}
.apb-rx-cslp-item i{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);color:rgba(255,255,255,.6)}
.apb-rx-cslp-item i svg{width:13px;height:13px}
.apb-rx-cslp-item span{flex:1;font-size:13.5px;color:rgba(255,255,255,.75);line-height:1.3}
.apb-rx-cslp-item small{font-size:11.5px;color:rgba(255,255,255,.4);font-variant-numeric:tabular-nums}
.apb-rx-cslp-item--done i{background:color-mix(in srgb,var(--apb-rx-brand) 30%,transparent);color:#fff}
.apb-rx-cslp-item--now{background:color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-cslp-item--now i{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-cslp-item--now span{color:#fff;font-weight:650}
.apb-rx-cslp-item--lock span,.apb-rx-cslp-item--lock small{color:rgba(255,255,255,.35)}
.apb-rx-cslp .apb-rx-cs-ctarow{margin-top:20px}
@media(max-width:820px){.apb-rx-cslp-app{grid-template-columns:1fr}.apb-rx-cslp-list{border-left:0;border-top:1px solid rgba(255,255,255,.08)}}

/* ---------------- learning path (apb-rx-cspath) ---------------- */
.apb-rx-cspath{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-cspath-wrap{max-width:1080px;margin:0 auto}
.apb-rx-cspath .apb-rx-cs-head{margin:0 auto clamp(34px,6vh,54px)}
.apb-rx-cspath-track{position:relative;display:flex;flex-direction:column;gap:clamp(20px,3vh,30px)}
.apb-rx-cspath-track::before{content:"";position:absolute;left:27px;top:14px;bottom:14px;width:3px;
  background:linear-gradient(180deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 25%,var(--apb-rx-line,#e7e8ec)))}
.apb-rx-cspath-node{position:relative;display:grid;grid-template-columns:56px 1fr;gap:20px;align-items:start}
.apb-rx-cspath-dot{position:relative;z-index:1;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:18px;color:#fff;
  background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));box-shadow:0 10px 24px -8px var(--apb-rx-glow,rgba(11,13,18,.4))}
.apb-rx-cspath-node--last .apb-rx-cspath-dot{background:linear-gradient(160deg,#0b0d12,#2a2c36)}
.apb-rx-cspath-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);
  padding:20px 22px;box-shadow:var(--apb-rx-shadow-1);transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-cspath-card:hover{transform:translateX(3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-cspath-level{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cspath-card h3{margin:5px 0 6px;font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cspath-card p{margin:0 0 12px;font-size:14px;color:var(--apb-rx-muted,#6b7280);line-height:1.55}
.apb-rx-cspath-meta{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-cspath-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);
  background:var(--apb-rx-soft,#f4f5f7);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px}
.apb-rx-cspath .apb-rx-cs-ctarow{margin-top:clamp(28px,4vh,40px);justify-content:center}
@media(max-width:560px){.apb-rx-cspath-node{grid-template-columns:44px 1fr;gap:14px}.apb-rx-cspath-dot{width:44px;height:44px;font-size:15px}.apb-rx-cspath-track::before{left:21px}}
@media (prefers-reduced-motion:reduce){.apb-rx-cspath-card{transition:none}}

/* ---------------- live cohort (apb-rx-cscoh) ---------------- */
.apb-rx-cscoh{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-cscoh-wrap{max-width:1060px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,44px);align-items:start}
.apb-rx-cscoh .apb-rx-cs-lead{margin:0 0 20px}
.apb-rx-cscoh-start{border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-cscoh-starttop{padding:20px 22px;background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-cscoh-starttop span{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.apb-rx-cscoh-starttop b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:26px;letter-spacing:-.01em;margin-top:4px}
.apb-rx-cscoh-startbody{padding:18px 22px}
.apb-rx-cscoh-fact{display:flex;align-items:center;gap:11px;padding:9px 0;font-size:13.5px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscoh-seats{margin:10px 0 4px;height:8px;border-radius:99px;background:var(--apb-rx-soft,#eef0ff);overflow:hidden}
.apb-rx-cscoh-seats i{display:block;height:100%;width:78%;border-radius:99px;background:var(--apb-rx-brand)}
.apb-rx-cscoh-seatstxt{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-cscoh-btn{display:block;text-align:center;margin-top:14px;padding:14px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);
  font-size:14.5px;font-weight:700;text-decoration:none;box-shadow:0 14px 34px -12px var(--apb-rx-glow,rgba(11,13,18,.4));transition:opacity var(--apb-rx-t-fast,.16s)}
.apb-rx-cscoh-btn:hover{opacity:.92}
.apb-rx-cscoh-weeks{display:flex;flex-direction:column;gap:10px}
.apb-rx-cscoh-week{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;background:var(--apb-rx-surface,#fff);
  border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9);padding:14px 18px}
.apb-rx-cscoh-wk{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-cscoh-wk b{display:block;font-size:20px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));letter-spacing:-.01em}
.apb-rx-cscoh-week b{font-size:15px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscoh-week small{display:block;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);margin-top:2px}
.apb-rx-cscoh-live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#16a34a;white-space:nowrap}
.apb-rx-cscoh-live i{width:7px;height:7px;border-radius:50%;background:#16a34a}
@media(max-width:820px){.apb-rx-cscoh-wrap{grid-template-columns:1fr}}
@media(max-width:520px){.apb-rx-cscoh-week{grid-template-columns:52px 1fr}.apb-rx-cscoh-live{grid-column:2}}
@media (prefers-reduced-motion:reduce){.apb-rx-cscoh-btn{transition:none}}

/* ---------------- compare plans (apb-rx-cscmp) ---------------- */
.apb-rx-cscmp{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-cscmp-wrap{max-width:1000px;margin:0 auto}
.apb-rx-cscmp .apb-rx-cs-head{margin:0 auto clamp(28px,4.5vh,44px)}
.apb-rx-cscmp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.apb-rx-cscmp-plan{display:flex;flex-direction:column;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.2);
  padding:26px 22px;background:var(--apb-rx-surface,#fff)}
.apb-rx-cscmp-plan--feat{border:0;background:linear-gradient(165deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));color:var(--apb-rx-accent-contrast,#fff);
  box-shadow:0 28px 64px -22px var(--apb-rx-glow,rgba(11,13,18,.45));position:relative}
.apb-rx-cscmp-flag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--apb-rx-ink,#0b0d12);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 14px}
.apb-rx-cscmp-fmt{font-size:13px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-fmt{color:rgba(255,255,255,.85)}
.apb-rx-cscmp-best{font-size:13px;color:var(--apb-rx-muted,#6b7280);margin-top:4px;min-height:34px}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-best{color:rgba(255,255,255,.82)}
.apb-rx-cscmp-price{display:flex;align-items:baseline;gap:8px;margin:14px 0 18px}
.apb-rx-cscmp-price b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(30px,4vw,40px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-price b{color:#fff}
.apb-rx-cscmp-price span{font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-price span{color:rgba(255,255,255,.7)}
.apb-rx-cscmp-feats{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:11px;flex:1}
.apb-rx-cscmp-feats li{display:flex;gap:10px;font-size:13.5px;line-height:1.4;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 82%,transparent)}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-feats li{color:rgba(255,255,255,.92)}
.apb-rx-cscmp-feats svg{flex:none;width:17px;height:17px;color:var(--apb-rx-brand);margin-top:1px}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-feats svg{color:#fff}
.apb-rx-cscmp-feats li.off{color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-cscmp-feats li.off svg{color:var(--apb-rx-line,#d9dbe0)}
.apb-rx-cscmp-btn{display:block;text-align:center;padding:13px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;
  border:1px solid var(--apb-rx-line,#d9dbe0);color:var(--apb-rx-ink,#0b0d12);transition:border-color var(--apb-rx-t-fast,.16s)}
.apb-rx-cscmp-btn:hover{border-color:var(--apb-rx-brand)}
.apb-rx-cscmp-plan--feat .apb-rx-cscmp-btn{background:#fff;color:var(--apb-rx-brand);border-color:transparent}
@media(max-width:820px){.apb-rx-cscmp-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto}}
@media (prefers-reduced-motion:reduce){.apb-rx-cscmp-btn{transition:none}}
/* ==== assets/pages/component-careers.css ==== */
/* CAREERS family — shared chrome (head/lead/cta/fallback) + variant CSS. Tokens only. */
.apb-rx-cr-head{margin-bottom:clamp(20px,3.5vh,34px)}
.apb-rx-cr-head--c{text-align:center}
.apb-rx-cr-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.2vw,48px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:1.06;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-cr-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:60ch}
.apb-rx-cr-head--c .apb-rx-cr-lead{margin-inline:auto}
.apb-rx-cr-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.apb-rx-cr-ctarow--c{justify-content:center}
.apb-rx-cr-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-cr-cta:hover{transform:translateY(-2px)}
.apb-rx-cr-cta--primary{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35))}
.apb-rx-cr-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-cr-fallback{padding:clamp(48px,8vh,90px) 24px;text-align:center}
@media (prefers-reduced-motion:reduce){.apb-rx-cr-cta{transition:none}}

/* ---------- 1. opening_hours ---------- */

/* ---------- 6. hero ---------- */
.apb-rx-crhero{position:relative;min-height:clamp(420px,64vh,600px);display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.apb-rx-crhero-bg{position:absolute;inset:0}
.apb-rx-crhero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-crhero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.25),rgba(11,13,18,.82)),
  radial-gradient(90% 60% at 10% 100%,color-mix(in srgb,var(--apb-rx-brand) 40%,transparent),transparent 60%)}
.apb-rx-crhero:not(:has(.apb-rx-crhero-bg)){background:var(--apb-rx-ink,#0b0d12)}
.apb-rx-crhero-wrap{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:clamp(40px,7vw,80px) 24px;width:100%}
.apb-rx-crhero-ey{margin:0;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 45%,#fff)}
.apb-rx-crhero h1{margin:14px 0 12px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(34px,6vw,68px);letter-spacing:-.03em;line-height:1;max-width:15ch;text-wrap:balance}
.apb-rx-crhero-lead{margin:0 0 24px;font-size:clamp(15px,1.9vw,19px);color:rgba(255,255,255,.82);max-width:52ch;line-height:1.55}
.apb-rx-crhero-row{display:flex;flex-wrap:wrap;align-items:center;gap:26px}
.apb-rx-crhero-row .apb-rx-cr-ctarow{margin-top:0}
.apb-rx-crhero-row .apb-rx-cr-cta--outline{color:#fff;border-color:rgba(255,255,255,.4)}
.apb-rx-crhero-stats{display:flex;flex-wrap:wrap;gap:24px}
.apb-rx-crhero-stat{display:inline-flex;flex-direction:column}
.apb-rx-crhero-stat b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(19px,2.3vw,26px);letter-spacing:-.01em}
.apb-rx-crhero-stat span{font-size:12px;color:rgba(255,255,255,.7)}

/* ---------- 7. openings ---------- */
.apb-rx-crjob{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-crjob-wrap{max-width:860px;margin:0 auto}
.apb-rx-crjob input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-crjob-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:22px}
.apb-rx-crjob-filter{cursor:pointer;font-size:13px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);background:var(--apb-rx-surface,#fff);
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 16px;transition:all var(--apb-rx-t-fast,.16s)}
.apb-rx-crjob-filter:hover{border-color:var(--apb-rx-line-accent)}
.apb-rx-crjob-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:18px 20px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * .9);margin-bottom:10px;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s),border-color var(--apb-rx-t,.28s)}
.apb-rx-crjob-row:hover{transform:translateX(3px);box-shadow:var(--apb-rx-shadow-2);border-color:transparent}
.apb-rx-crjob-row:focus-visible{outline:2px solid var(--apb-rx-ring);outline-offset:2px}
.apb-rx-crjob-row b{display:block;font-size:16.5px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-crjob-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:7px}
.apb-rx-crjob-meta span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);white-space:nowrap}
.apb-rx-crjob-dept{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text);
  background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:3px 9px}
.apb-rx-crjob-apply{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--apb-rx-accent-text);white-space:nowrap}
.apb-rx-crjob-apply svg{width:15px;height:15px;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-crjob-row:hover .apb-rx-crjob-apply svg{transform:translateX(3px)}
/* CSS-only filter: 'all' + up to 4 dept classes (d-1..d-4). Radio ids are "<uid>-all"/"<uid>-d-N"
   (uid unique per section instance) — scope by :has() on the wrapper so multiple instances never collide. */
.apb-rx-crjob-wrap:has(input[id$="-all"]:checked) label[for$="-all"],
.apb-rx-crjob-wrap:has(input[id$="-d-1"]:checked) label[for$="-d-1"],
.apb-rx-crjob-wrap:has(input[id$="-d-2"]:checked) label[for$="-d-2"],
.apb-rx-crjob-wrap:has(input[id$="-d-3"]:checked) label[for$="-d-3"],
.apb-rx-crjob-wrap:has(input[id$="-d-4"]:checked) label[for$="-d-4"]{background:var(--apb-rx-brand);border-color:transparent;color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-crjob-wrap:has(input[id$="-d-1"]:checked) .apb-rx-crjob-row:not(.d-1),
.apb-rx-crjob-wrap:has(input[id$="-d-2"]:checked) .apb-rx-crjob-row:not(.d-2),
.apb-rx-crjob-wrap:has(input[id$="-d-3"]:checked) .apb-rx-crjob-row:not(.d-3),
.apb-rx-crjob-wrap:has(input[id$="-d-4"]:checked) .apb-rx-crjob-row:not(.d-4){display:none}
.apb-rx-crjob-foot{text-align:center;margin-top:18px;font-size:13.5px;color:var(--apb-rx-muted,#6b7280)}
@media (prefers-reduced-motion:reduce){.apb-rx-crjob-row,.apb-rx-crjob-filter,.apb-rx-crjob-apply svg{transition:none}}

/* ---------- 8. benefits ---------- */
.apb-rx-crben{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft)}
.apb-rx-crben-wrap{max-width:1080px;margin:0 auto}
.apb-rx-crben-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apb-rx-crben-card{padding:24px;border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-crben-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-crben-ico{width:46px;height:46px;border-radius:calc(var(--apb-rx-radius) * .85);display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft);color:var(--apb-rx-accent-text);margin-bottom:14px}
.apb-rx-crben-ico svg{width:23px;height:23px}
.apb-rx-crben-card b{display:block;font-size:16.5px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12);margin-bottom:5px}
.apb-rx-crben-card p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.55}
@media(max-width:860px){.apb-rx-crben-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.apb-rx-crben-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-crben-card{transition:none}}

/* ---------- 9. life ---------- */
.apb-rx-crlife{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-crlife-wrap{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(28px,4vw,52px);align-items:center}
.apb-rx-crlife-collage{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:130px;gap:12px}
.apb-rx-crlife-cell{border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden}
.apb-rx-crlife-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-crlife-cell:hover img{transform:scale(1.05)}
.apb-rx-crlife-cell--tall{grid-row:span 2}
.apb-rx-crlife-ey{margin:0;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text)}
.apb-rx-crlife h2{margin:8px 0 14px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(27px,3.8vw,44px);letter-spacing:-.02em;line-height:1.05;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-crlife-lead{margin:0 0 22px;color:var(--apb-rx-muted,#6b7280);font-size:15.5px;line-height:1.65;max-width:46ch}
.apb-rx-crlife-vals{display:flex;flex-direction:column;gap:16px}
.apb-rx-crlife-val{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}
.apb-rx-crlife-val svg{width:22px;height:22px;color:var(--apb-rx-accent-text);margin-top:1px}
.apb-rx-crlife-val b{display:block;font-size:15.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-crlife-val span{font-size:14px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
@media(max-width:820px){.apb-rx-crlife-wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-crlife-cell img{transition:none}}

/* ---------- 10. process ---------- */
.apb-rx-crproc{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft)}
.apb-rx-crproc-wrap{max-width:960px;margin:0 auto}
.apb-rx-crproc-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.apb-rx-crproc-step{position:relative;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);padding:24px 20px}
.apb-rx-crproc-ico{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);margin-bottom:16px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:15px}
.apb-rx-crproc-step b{display:block;font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-crproc-step p{margin:6px 0 0;font-size:13.5px;color:var(--apb-rx-muted,#6b7280);line-height:1.55}
.apb-rx-crproc-when{display:inline-block;margin-top:12px;font-size:11.5px;font-weight:700;color:var(--apb-rx-accent-text)}
.apb-rx-crproc-foot{margin-top:24px;text-align:center;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:860px){.apb-rx-crproc-steps{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.apb-rx-crproc-steps{grid-template-columns:1fr}}
/* ==== assets/pages/component-careers-2.css ==== */
/* careers family — batch 2 variants. Tokens only; reduced-motion fallbacks required. */

/* careers_team_voices */
.apb-rx-crvoice{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-crvoice-wrap{max-width:1120px;margin:0 auto}
    .apb-rx-crvoice-head{max-width:600px;margin-bottom:clamp(28px,4.5vh,44px)}
    .apb-rx-crvoice-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crvoice h2{margin:8px 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crvoice-head p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px}
    .apb-rx-crvoice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
    .apb-rx-crvoice-card{display:flex;flex-direction:column;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.15);
      overflow:hidden;background:var(--apb-rx-surface,#fff);transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
    .apb-rx-crvoice-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-crvoice-photo{position:relative;aspect-ratio:5/4}
    .apb-rx-crvoice-photo img{width:100%;height:100%;object-fit:cover;display:block}
    .apb-rx-crvoice-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(11,13,18,.7))}
    .apb-rx-crvoice-who{position:absolute;left:16px;bottom:14px;z-index:1;color:#fff}
    .apb-rx-crvoice-who b{display:block;font-size:15.5px;font-weight:750;letter-spacing:-.01em}
    .apb-rx-crvoice-who span{font-size:12.5px;color:rgba(255,255,255,.8)}
    .apb-rx-crvoice-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
    .apb-rx-crvoice-mark{width:26px;height:26px;color:var(--apb-rx-line-accent,#c8caf5);margin-bottom:8px}
    .apb-rx-crvoice-body p{margin:0;font-size:14.5px;line-height:1.6;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 84%,transparent);flex:1}
    .apb-rx-crvoice-tenure{margin-top:14px;font-size:12px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
      display:inline-flex;align-items:center;gap:7px}
    .apb-rx-crvoice-tenure svg{width:14px;height:14px}
    @media(max-width:880px){.apb-rx-crvoice-grid{grid-template-columns:1fr 1fr}}
    @media(max-width:560px){.apb-rx-crvoice-grid{grid-template-columns:1fr}}
    @media (prefers-reduced-motion:reduce){.apb-rx-crvoice-card{transition:none}}

/* careers_values */
.apb-rx-crval{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-ink,#0b0d12);color:#fff}
    .apb-rx-crval-wrap{max-width:1080px;margin:0 auto}
    .apb-rx-crval-head{max-width:640px;margin-bottom:clamp(30px,5vh,48px)}
    .apb-rx-crval-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
    .apb-rx-crval h2{margin:8px 0 12px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,52px);letter-spacing:-.02em;line-height:1.03}
    .apb-rx-crval-head p{margin:0;color:rgba(255,255,255,.6);font-size:15.5px;line-height:1.6}
    .apb-rx-crval-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.1);
      border:1px solid rgba(255,255,255,.1);border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden}
    .apb-rx-crval-item{background:var(--apb-rx-ink,#0b0d12);padding:28px;position:relative;transition:background var(--apb-rx-t,.28s)}
    .apb-rx-crval-item:hover{background:#15161d}
    .apb-rx-crval-num{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:14px;color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff);letter-spacing:.05em}
    .apb-rx-crval-item h3{margin:12px 0 8px;font-family:var(--apb-rx-font-display,inherit);font-weight:750;font-size:clamp(19px,2.3vw,24px);letter-spacing:-.01em;color:#fff}
    .apb-rx-crval-item p{margin:0;font-size:14.5px;line-height:1.65;color:rgba(255,255,255,.66)}
    .apb-rx-crval-item::before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:3px;background:var(--apb-rx-brand);transform:scaleY(0);transform-origin:top;
      transition:transform var(--apb-rx-t,.28s)}
    .apb-rx-crval-item:hover::before{transform:scaleY(1)}
    @media(max-width:720px){.apb-rx-crval-grid{grid-template-columns:1fr}}
    @media (prefers-reduced-motion:reduce){.apb-rx-crval-item,.apb-rx-crval-item::before{transition:none}}

/* careers_role_detail */
.apb-rx-crrole{padding:clamp(48px,8vh,96px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-crrole-wrap{max-width:1040px;margin:0 auto}
    .apb-rx-crrole-back{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--apb-rx-muted,#6b7280);text-decoration:none;margin-bottom:18px}
    .apb-rx-crrole-back svg{width:15px;height:15px}
    .apb-rx-crrole-head{padding-bottom:22px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec);margin-bottom:26px}
    .apb-rx-crrole-dept{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
      background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px;display:inline-block}
    .apb-rx-crrole-head h1{margin:12px 0 12px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.6vw,48px);letter-spacing:-.025em;line-height:1.02;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crrole-meta{display:flex;flex-wrap:wrap;gap:10px 22px}
    .apb-rx-crrole-meta span{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-crrole-meta b{color:var(--apb-rx-ink,#0b0d12);font-weight:700}
    .apb-rx-crrole-meta svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crrole-body{display:grid;grid-template-columns:1fr 300px;gap:clamp(28px,4vw,52px);align-items:start}
    .apb-rx-crrole-intro{font-size:16px;line-height:1.7;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 82%,transparent);margin:0 0 26px}
    .apb-rx-crrole-sec{margin-bottom:26px}
    .apb-rx-crrole-sec h2{margin:0 0 12px;font-size:18px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crrole-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
    .apb-rx-crrole-list li{display:flex;gap:11px;font-size:14.5px;line-height:1.55;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 84%,transparent)}
    .apb-rx-crrole-list svg{flex:none;width:18px;height:18px;color:var(--apb-rx-brand);margin-top:1px}
    .apb-rx-crrole-list--dot li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--apb-rx-line-accent,#c8caf5);margin-top:8px}
    .apb-rx-crrole-apply{position:sticky;top:24px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.2);padding:22px;box-shadow:var(--apb-rx-shadow-1)}
    .apb-rx-crrole-apply b{display:block;font-size:16px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crrole-apply p{margin:4px 0 16px;font-size:13px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
    .apb-rx-crrole-btn{display:block;text-align:center;padding:14px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);
      font-size:14.5px;font-weight:700;text-decoration:none;box-shadow:0 14px 34px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
    .apb-rx-crrole-share{display:flex;justify-content:center;gap:8px;margin-top:14px}
    .apb-rx-crrole-share a{width:34px;height:34px;border-radius:50%;border:1px solid var(--apb-rx-line,#e7e8ec);display:flex;align-items:center;justify-content:center;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-crrole-share svg{width:15px;height:15px}
    @media(max-width:820px){.apb-rx-crrole-body{grid-template-columns:1fr}.apb-rx-crrole-apply{position:static;order:-1}}

/* careers_growth */
.apb-rx-crgrow{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
    .apb-rx-crgrow-wrap{max-width:1080px;margin:0 auto}
    .apb-rx-crgrow-head{max-width:600px;margin-bottom:clamp(28px,4.5vh,44px)}
    .apb-rx-crgrow-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crgrow h2{margin:8px 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crgrow-head p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px}
    .apb-rx-crgrow-ladder{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:start;margin-bottom:26px}
    .apb-rx-crgrow-step{position:relative;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
      border-radius:calc(var(--apb-rx-radius) * 1);padding:18px 16px;transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
    .apb-rx-crgrow-step:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-crgrow-step:nth-child(1){margin-top:64px}
    .apb-rx-crgrow-step:nth-child(2){margin-top:48px}
    .apb-rx-crgrow-step:nth-child(3){margin-top:32px}
    .apb-rx-crgrow-step:nth-child(4){margin-top:16px}
    .apb-rx-crgrow-step:nth-child(5){background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));border-color:transparent;color:var(--apb-rx-accent-contrast,#fff);
      box-shadow:0 20px 44px -16px var(--apb-rx-glow,rgba(11,13,18,.4))}
    .apb-rx-crgrow-lvl{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crgrow-step:nth-child(5) .apb-rx-crgrow-lvl{color:rgba(255,255,255,.85)}
    .apb-rx-crgrow-step b{display:block;margin:6px 0 6px;font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crgrow-step:nth-child(5) b{color:#fff}
    .apb-rx-crgrow-step p{margin:0;font-size:12.5px;line-height:1.5;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-crgrow-step:nth-child(5) p{color:rgba(255,255,255,.85)}
    .apb-rx-crgrow-commit{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
    .apb-rx-crgrow-c{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start;background:var(--apb-rx-surface,#fff);
      border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1);padding:18px}
    .apb-rx-crgrow-c i{width:42px;height:42px;border-radius:calc(var(--apb-rx-radius) * .8);display:flex;align-items:center;justify-content:center;
      background:var(--apb-rx-soft,#eef0ff);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crgrow-c svg{width:21px;height:21px}
    .apb-rx-crgrow-c b{display:block;font-size:14.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crgrow-c span{font-size:13px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
    @media(max-width:820px){
      .apb-rx-crgrow-ladder{grid-template-columns:1fr}
      .apb-rx-crgrow-step,.apb-rx-crgrow-step:nth-child(n){margin-top:0}
      .apb-rx-crgrow-commit{grid-template-columns:1fr}
    }
    @media (prefers-reduced-motion:reduce){.apb-rx-crgrow-step{transition:none}}

/* careers_locations */
.apb-rx-crloc{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-crloc-wrap{max-width:1120px;margin:0 auto}
    .apb-rx-crloc-banner{position:relative;overflow:hidden;border-radius:calc(var(--apb-rx-radius) * 1.4);padding:clamp(28px,4vw,48px);margin-bottom:18px;color:#fff;
      background:linear-gradient(130deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand))}
    .apb-rx-crloc-banner::after{content:"";position:absolute;inset:0;pointer-events:none;
      background:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1.4px);background-size:22px 22px;opacity:.5;
      -webkit-mask:radial-gradient(80% 120% at 100% 0%,#000,transparent);mask:radial-gradient(80% 120% at 100% 0%,#000,transparent)}
    .apb-rx-crloc-banner .in{position:relative;max-width:640px}
    .apb-rx-crloc-ey{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82)}
    .apb-rx-crloc-banner h2{margin:10px 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(28px,4vw,44px);letter-spacing:-.02em;line-height:1.04}
    .apb-rx-crloc-banner p{margin:0 0 18px;font-size:15.5px;color:rgba(255,255,255,.85);line-height:1.6}
    .apb-rx-crloc-tags{display:flex;flex-wrap:wrap;gap:10px}
    .apb-rx-crloc-tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#fff;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 15px}
    .apb-rx-crloc-tag svg{width:15px;height:15px}
    .apb-rx-crloc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
    .apb-rx-crloc-card{padding:22px;border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
      transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
    .apb-rx-crloc-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-crloc-city{display:flex;align-items:center;gap:9px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crloc-city svg{width:18px;height:18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-crloc-country{font-size:13px;color:var(--apb-rx-muted,#6b7280);margin:2px 0 14px}
    .apb-rx-crloc-facts{display:flex;flex-direction:column;gap:8px}
    .apb-rx-crloc-fact{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-crloc-fact svg{width:15px;height:15px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
    .apb-rx-crloc-fact b{font-weight:700}
    .apb-rx-crloc-hub{display:inline-block;margin-top:14px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
      color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 10px}
    @media(max-width:900px){.apb-rx-crloc-grid{grid-template-columns:1fr 1fr}}
    @media(max-width:520px){.apb-rx-crloc-grid{grid-template-columns:1fr}}
    @media (prefers-reduced-motion:reduce){.apb-rx-crloc-card{transition:none}}
/* ==== assets/pages/component-realestate.css ==== */
/* REALESTATE family — shared chrome (head/lead/cta/fallback) + variant CSS. Tokens only. */
.apb-rx-re-head{margin-bottom:clamp(20px,3.5vh,34px)}
.apb-rx-re-head--c{text-align:center}
.apb-rx-re-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.2vw,48px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:1.06;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-re-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:60ch}
.apb-rx-re-head--c .apb-rx-re-lead{margin-inline:auto}
.apb-rx-re-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.apb-rx-re-ctarow--c{justify-content:center}
.apb-rx-re-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-re-cta:hover{transform:translateY(-2px)}
.apb-rx-re-cta--primary{background:var(--apb-rx-brand);color:#fff;box-shadow:0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35))}
.apb-rx-re-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-re-fallback{padding:clamp(48px,8vh,90px) 24px;text-align:center}
@media (prefers-reduced-motion:reduce){.apb-rx-re-cta{transition:none}}

/* ---------- 1. opening_hours ---------- */

/* ---------- A1. search_hero ---------- */
.apb-rx-rehero{position:relative;min-height:clamp(440px,68vh,620px);display:flex;align-items:center;overflow:hidden;color:#fff}
.apb-rx-rehero-bg{position:absolute;inset:0}
.apb-rx-rehero-bg img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-rehero-bg.apb-rx-media--solid{background:linear-gradient(160deg,var(--apb-rx-ink,#0b0d12),var(--apb-rx-brand))}
.apb-rx-rehero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.5),rgba(11,13,18,.35) 45%,rgba(11,13,18,.7))}
.apb-rx-rehero-wrap{position:relative;z-index:1;max-width:1000px;margin:0 auto;padding:clamp(40px,7vw,80px) 24px;width:100%;text-align:center}
.apb-rx-rehero-ey{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 45%,#fff)}
.apb-rx-rehero h1{margin:14px 0 12px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(34px,5.6vw,64px);letter-spacing:-.03em;line-height:1.03;text-wrap:balance}
.apb-rx-rehero-lead{margin:0 auto 26px;font-size:clamp(16px,2vw,19px);color:rgba(255,255,255,.85);max-width:44ch}
.apb-rx-rehero-search{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1fr auto;gap:0;max-width:900px;margin:0 auto;text-align:left;
  background:var(--apb-rx-surface,#fff);border-radius:calc(var(--apb-rx-radius) * 1.2);padding:8px;box-shadow:0 30px 70px -20px rgba(11,13,18,.5)}
.apb-rx-rehero-field{padding:10px 16px;border-right:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-rehero-field label{display:block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);margin-bottom:3px}
.apb-rx-rehero-field b{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);display:flex;align-items:center;gap:6px}
.apb-rx-rehero-field svg{width:14px;height:14px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
.apb-rx-rehero-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-left:8px;padding:0 24px;border-radius:var(--apb-rx-radius);
  background:var(--apb-rx-brand);color:#fff;font-size:15px;font-weight:700;text-decoration:none}
.apb-rx-rehero-go svg{width:18px;height:18px}
.apb-rx-rehero-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin-top:26px}
.apb-rx-rehero-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(20px,2.4vw,28px)}
.apb-rx-rehero-stat span{font-size:12.5px;color:rgba(255,255,255,.72)}
@media(max-width:780px){
  .apb-rx-rehero-search{grid-template-columns:1fr 1fr}
  .apb-rx-rehero-field{border-right:0;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
  .apb-rx-rehero-go{grid-column:1 / -1;margin:8px 0 0;padding:14px}
}

/* ---------- A2. listings ---------- */
.apb-rx-relist{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-relist-wrap{max-width:1160px;margin:0 auto}
.apb-rx-relist-grid{display:grid;grid-template-columns:repeat(var(--apb-rx-cols,3),1fr);gap:20px}
.apb-rx-relist-card{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;background:var(--apb-rx-surface,#fff);
  text-decoration:none;display:block;transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-relist-card:hover{transform:translateY(-5px);box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-relist-media{position:relative;aspect-ratio:16/11}
.apb-rx-relist-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-relist-ph{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-line,#e7e8ec))}
.apb-rx-relist-tag{position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px}
.apb-rx-relist-tag--new{background:#16a34a}
.apb-rx-relist-save{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.92);color:var(--apb-rx-ink,#0b0d12);transition:color var(--apb-rx-t-fast,.16s),transform var(--apb-rx-t-fast,.16s)}
.apb-rx-relist-save svg{width:17px;height:17px}
.apb-rx-relist-card:hover .apb-rx-relist-save{color:color-mix(in srgb,var(--apb-rx-brand) 65%,#e11d64)}
.apb-rx-relist-body{padding:16px 18px 18px}
.apb-rx-relist-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:22px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-relist-name{margin:6px 0 3px;font-size:15.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-relist-addr{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-relist-addr svg{width:14px;height:14px;flex:none}
.apb-rx-relist-specs{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:14px;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-relist-spec{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-relist-spec svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:900px){.apb-rx-relist-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.apb-rx-relist-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-relist-card,.apb-rx-relist-save{transition:none}}

/* ---------- A3. featured ---------- */
.apb-rx-refeat{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-refeat-wrap{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:0;border-radius:calc(var(--apb-rx-radius) * 1.4);
  overflow:hidden;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-refeat-gallery{display:grid;grid-template-columns:2fr 1fr;grid-auto-rows:1fr;gap:6px;min-height:400px}
.apb-rx-refeat-gallery img,.apb-rx-refeat-ph{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-refeat-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-line,#e7e8ec))}
.apb-rx-refeat-main{grid-row:span 2;position:relative}
.apb-rx-refeat-flag{position:absolute;top:14px;left:14px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#fff;background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 13px}
.apb-rx-refeat-body{padding:clamp(24px,3vw,36px);display:flex;flex-direction:column}
.apb-rx-refeat-ey{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-refeat-price{margin:8px 0 2px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-refeat-name{font-size:16px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-refeat-addr{display:flex;align-items:center;gap:7px;margin-top:3px;font-size:13.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-refeat-addr svg{width:15px;height:15px;flex:none}
.apb-rx-refeat-specs{display:flex;gap:20px;margin:18px 0;padding:16px 0;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2);border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-refeat-spec{text-align:center}
.apb-rx-refeat-spec b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-refeat-spec span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-refeat-list{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.apb-rx-refeat-list li{display:flex;gap:8px;font-size:13.5px;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 82%,transparent)}
.apb-rx-refeat-list svg{flex:none;width:16px;height:16px;color:var(--apb-rx-brand)}
.apb-rx-refeat-agent{display:flex;align-items:center;gap:11px;margin-top:auto;padding-top:16px}
.apb-rx-refeat-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;flex:none}
.apb-rx-refeat-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-refeat-agent b{display:block;font-size:14px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-refeat-agent span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-refeat-btn{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--apb-rx-radius);
  background:var(--apb-rx-brand);color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;box-shadow:0 12px 30px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
@media(max-width:840px){.apb-rx-refeat-wrap{grid-template-columns:1fr}.apb-rx-refeat-gallery{min-height:260px}}
@media(max-width:480px){.apb-rx-refeat-list{grid-template-columns:1fr}.apb-rx-refeat-agent{flex-wrap:wrap}.apb-rx-refeat-btn{margin-left:0}}

/* ---------- A4. agent ---------- */
.apb-rx-reagent{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-reagent-wrap{max-width:960px;margin:0 auto;display:grid;grid-template-columns:.75fr 1.25fr;gap:0;border-radius:calc(var(--apb-rx-radius) * 1.3);
  overflow:hidden;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-reagent-media{position:relative;min-height:100%}
.apb-rx-reagent-media img,.apb-rx-reagent-media-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.apb-rx-reagent-media-img.apb-rx-media--solid,.apb-rx-reagent-media .apb-rx-avatar{background:linear-gradient(150deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-brand))}
.apb-rx-reagent-media .apb-rx-avatar{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:800;color:#fff}
.apb-rx-reagent-body{padding:clamp(24px,3.2vw,40px)}
.apb-rx-reagent-ey{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-reagent-name{margin:8px 0 2px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(24px,3.2vw,36px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-reagent-role{font-size:14.5px;font-weight:600;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-reagent-bio{margin:14px 0;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 80%,transparent);font-size:14.5px;line-height:1.65}
.apb-rx-reagent-stats{display:flex;gap:24px;padding:16px 0;margin-bottom:16px;border-top:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2);border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#eef0f2)}
.apb-rx-reagent-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:22px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-reagent-stat span{font-size:12px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-reagent-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.apb-rx-reagent-tag{font-size:12px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft,#eef0ff);
  border-radius:var(--apb-rx-radius-pill,999px);padding:6px 13px}
.apb-rx-reagent-actions{display:flex;flex-wrap:wrap;gap:10px}
.apb-rx-reagent-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none}
.apb-rx-reagent-btn--p{background:var(--apb-rx-brand);color:#fff;box-shadow:0 12px 30px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
.apb-rx-reagent-btn--g{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-reagent-btn svg{width:16px;height:16px}
@media(max-width:720px){.apb-rx-reagent-wrap{grid-template-columns:1fr}.apb-rx-reagent-media{min-height:260px}}

/* ---------- A5. neighborhood ---------- */
.apb-rx-rehood{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-rehood-wrap{max-width:1080px;margin:0 auto}
.apb-rx-rehood-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.apb-rx-rehood-map{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;min-height:300px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  background:
    radial-gradient(50% 60% at 40% 40%,color-mix(in srgb,var(--apb-rx-brand) 8%,transparent),transparent 60%),
    repeating-linear-gradient(0deg,var(--apb-rx-line,#e5e7ec) 0 1px,transparent 1px 34px),
    repeating-linear-gradient(90deg,var(--apb-rx-line,#e5e7ec) 0 1px,transparent 1px 34px),
    var(--apb-rx-surface,#fff)}
.apb-rx-rehood-road{position:absolute;background:var(--apb-rx-surface,#fff);box-shadow:0 0 0 1px var(--apb-rx-line,#e2e4e9)}
.apb-rx-rehood-road--h{left:0;right:0;height:12px;top:46%}
.apb-rx-rehood-road--v{top:0;bottom:0;width:12px;left:42%}
.apb-rx-rehood-pin{position:absolute;left:42%;top:46%;transform:translate(-50%,-100%);z-index:2;color:var(--apb-rx-brand)}
.apb-rx-rehood-pin svg{width:32px;height:32px;filter:drop-shadow(0 5px 8px rgba(11,13,18,.3))}
.apb-rx-rehood-dot{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:3px solid var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rehood-dot--1{left:22%;top:28%}.apb-rx-rehood-dot--2{left:64%;top:34%}.apb-rx-rehood-dot--3{left:58%;top:70%}.apb-rx-rehood-dot--4{left:26%;top:66%}
.apb-rx-rehood-panel{display:flex;flex-direction:column;gap:16px}
.apb-rx-rehood-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.apb-rx-rehood-score{padding:18px 14px;text-align:center;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius)}
.apb-rx-rehood-score b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:26px;letter-spacing:-.01em;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rehood-score span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-rehood-amen{background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);padding:6px 18px;flex:1}
.apb-rx-rehood-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:var(--apb-rx-border,1px) solid var(--apb-rx-line,#f1f2f5)}
.apb-rx-rehood-row:last-child{border-bottom:0}
.apb-rx-rehood-row i{width:34px;height:34px;flex:none;border-radius:calc(var(--apb-rx-radius) * .7);display:flex;align-items:center;justify-content:center;
  background:var(--apb-rx-soft,#eef0ff);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rehood-row svg{width:17px;height:17px}
.apb-rx-rehood-row b{flex:1;font-size:14px;font-weight:650;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-rehood-row span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280);font-variant-numeric:tabular-nums}
@media(max-width:780px){.apb-rx-rehood-grid{grid-template-columns:1fr}.apb-rx-rehood-map{min-height:220px}}

/* ---------- A6. map_split ---------- */
.apb-rx-remap{padding:clamp(40px,7vh,80px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-remap-wrap{max-width:1200px;margin:0 auto}
.apb-rx-remap-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.apb-rx-remap-bar h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(22px,3vw,32px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-remap-chips{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-remap-chip{font-size:12.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#d9dbe0);
  border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-remap-chip--on{background:var(--apb-rx-brand);border-color:transparent;color:#fff}
.apb-rx-remap-split{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;height:560px}
.apb-rx-remap-map{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  background:
    radial-gradient(60% 70% at 35% 30%,color-mix(in srgb,var(--apb-rx-brand) 7%,transparent),transparent 60%),
    repeating-linear-gradient(0deg,var(--apb-rx-line,#eceef1) 0 1px,transparent 1px 42px),
    repeating-linear-gradient(90deg,var(--apb-rx-line,#eceef1) 0 1px,transparent 1px 42px),
    var(--apb-rx-soft,#f4f5f7)}
.apb-rx-remap-road{position:absolute;background:var(--apb-rx-surface,#fff);box-shadow:0 0 0 1px var(--apb-rx-line,#e2e4e9)}
.apb-rx-remap-road--1{left:0;right:0;top:44%;height:16px}
.apb-rx-remap-road--2{top:0;bottom:0;left:36%;width:16px}
.apb-rx-remap-price{position:absolute;transform:translate(-50%,-50%);z-index:1;font-size:12.5px;font-weight:800;color:#fff;
  background:var(--apb-rx-ink,#0b0d12);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 12px;box-shadow:0 6px 16px -4px rgba(11,13,18,.4);white-space:nowrap;
  transition:transform var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s)}
.apb-rx-remap-price:hover{background:var(--apb-rx-brand);transform:translate(-50%,-50%) scale(1.08);z-index:2}
.apb-rx-remap-price--active{background:var(--apb-rx-brand)}
.apb-rx-remap-list{overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding-right:6px}
.apb-rx-remap-card{display:grid;grid-template-columns:130px 1fr;gap:14px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);
  overflow:hidden;text-decoration:none;background:var(--apb-rx-surface,#fff);transition:box-shadow var(--apb-rx-t,.28s),border-color var(--apb-rx-t,.28s)}
.apb-rx-remap-card:hover{box-shadow:var(--apb-rx-shadow-2);border-color:transparent}
.apb-rx-remap-card img,.apb-rx-remap-ph{width:130px;height:100%;min-height:118px;object-fit:cover;display:block}
.apb-rx-remap-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-line,#e7e8ec))}
.apb-rx-remap-cbody{padding:12px 12px 12px 0}
.apb-rx-remap-cbody b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:18px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-remap-cbody em{display:block;font-style:normal;font-size:13.5px;font-weight:650;color:var(--apb-rx-ink,#0b0d12);margin-top:3px}
.apb-rx-remap-cbody span{display:block;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);margin-top:2px}
.apb-rx-remap-specs{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:12px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-remap-specs span{display:inline-flex;align-items:center;gap:5px}
.apb-rx-remap-specs svg{width:14px;height:14px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:820px){.apb-rx-remap-split{grid-template-columns:1fr;height:auto}.apb-rx-remap-map{height:280px}.apb-rx-remap-list{max-height:none}}
@media (prefers-reduced-motion:reduce){.apb-rx-remap-price,.apb-rx-remap-card{transition:none}}

/* ---------- A7. list_rows ---------- */
.apb-rx-rerow{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-rerow-wrap{max-width:960px;margin:0 auto}
.apb-rx-rerow-list{display:flex;flex-direction:column;gap:14px}
.apb-rx-rerow-item{display:grid;grid-template-columns:240px 1fr;gap:0;background:var(--apb-rx-surface,#fff);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;text-decoration:none;display:grid;transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-rerow-item:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-rerow-media{position:relative}
.apb-rx-rerow-media img,.apb-rx-rerow-ph{width:100%;height:100%;min-height:180px;object-fit:cover;display:block}
.apb-rx-rerow-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-line,#e7e8ec))}
.apb-rx-rerow-tag{position:absolute;top:12px;left:12px;font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;
  background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px}
.apb-rx-rerow-tag--new{background:#16a34a}
.apb-rx-rerow-body{padding:18px 20px;display:flex;flex-direction:column}
.apb-rx-rerow-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:24px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-rerow-name{margin:4px 0 2px;font-size:16px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-rerow-addr{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-rerow-addr svg{width:14px;height:14px;flex:none}
.apb-rx-rerow-specs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.apb-rx-rerow-spec{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--apb-rx-ink,#0b0d12);
  background:var(--apb-rx-soft,#f4f5f7);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 12px}
.apb-rx-rerow-spec svg{width:14px;height:14px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rerow-foot{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:14px}
.apb-rx-rerow-foot img,.apb-rx-rerow-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none}
.apb-rx-rerow-avatar{display:block;background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-brand))}
.apb-rx-rerow-foot span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-rerow-foot b{color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-rerow-foot em{margin-left:auto;font-style:normal;font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:640px){.apb-rx-rerow-item{grid-template-columns:1fr}.apb-rx-rerow-media img,.apb-rx-rerow-media .apb-rx-rerow-ph{min-height:170px}}
@media (prefers-reduced-motion:reduce){.apb-rx-rerow-item{transition:none}}

/* ---------- A8. gallery ---------- */
.apb-rx-regal{padding:clamp(40px,7vh,80px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-regal-wrap{max-width:1120px;margin:0 auto}
.apb-rx-regal-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:16px}
.apb-rx-regal-top h2{margin:0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(24px,3.4vw,38px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-regal-addr{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--apb-rx-muted,#6b7280);margin-top:5px}
.apb-rx-regal-addr svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-regal-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-regal-stage{display:grid;grid-template-columns:2.2fr 1fr;gap:8px;grid-auto-rows:1fr}
.apb-rx-regal-hero{position:relative;grid-row:span 2;border-radius:calc(var(--apb-rx-radius) * 1.1) 0 0 calc(var(--apb-rx-radius) * 1.1);overflow:hidden;min-height:400px}
.apb-rx-regal-hero img,.apb-rx-regal-ph{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-regal-sm{position:relative;overflow:hidden;min-height:196px}
.apb-rx-regal-sm img,.apb-rx-regal-sm .apb-rx-regal-ph{transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-regal-sm:hover img{transform:scale(1.05)}
.apb-rx-regal-ph{background:linear-gradient(135deg,var(--apb-rx-soft,#eef0ff),var(--apb-rx-line,#e7e8ec));display:block}
.apb-rx-regal-all{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);
  background:rgba(255,255,255,.94);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 15px;box-shadow:0 6px 16px -4px rgba(11,13,18,.3)}
.apb-rx-regal-all svg{width:15px;height:15px}
.apb-rx-regal-badge{position:absolute;top:12px;left:12px;z-index:1;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;
  background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 13px}
.apb-rx-regal-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin-top:16px;padding:16px 22px;
  border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-regal-spec{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-regal-spec b{font-weight:750}
.apb-rx-regal-btn{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:var(--apb-rx-radius);
  background:var(--apb-rx-brand);color:#fff;font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 12px 30px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
@media(max-width:760px){.apb-rx-regal-stage{grid-template-columns:1fr}.apb-rx-regal-hero{grid-row:auto;border-radius:calc(var(--apb-rx-radius) * 1.1) calc(var(--apb-rx-radius) * 1.1) 0 0;min-height:260px}
  .apb-rx-regal-sm{display:none}.apb-rx-regal-btn{margin-left:0;width:100%;justify-content:center}}
@media (prefers-reduced-motion:reduce){.apb-rx-regal-sm img,.apb-rx-regal-sm .apb-rx-regal-ph{transition:none}}
/* ==== assets/pages/component-realestate-2.css ==== */
/* realestate family — batch 2 variants (mortgage_calc, open_houses, market_stats, valuation,
   neighborhoods, specs, compare). Tokens only; reduced-motion fallbacks required. */

/* mortgage_calc */
.apb-rx-remort{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-remort-wrap{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1.1fr .9fr;gap:0;border-radius:calc(var(--apb-rx-radius) * 1.3);
  overflow:hidden;border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-remort-form{padding:clamp(24px,3.2vw,38px)}
.apb-rx-remort-ey{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-remort-form h2{margin:8px 0 16px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(24px,3.2vw,34px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-remort-lead{margin:0 0 16px;font-size:14px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
.apb-rx-remort-field{margin-bottom:20px}
.apb-rx-remort-flabel{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.apb-rx-remort-flabel span{font-size:13px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-remort-flabel b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-remort-range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;outline:none;pointer-events:none;
  background:linear-gradient(90deg,var(--apb-rx-brand) 0 var(--fill,50%),var(--apb-rx-soft,#eef0ff) var(--fill,50%) 100%)}
.apb-rx-remort-range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--apb-rx-brand);
  box-shadow:0 3px 8px rgba(11,13,18,.25)}
.apb-rx-remort-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--apb-rx-brand)}
.apb-rx-remort-seg{display:flex;gap:6px}
.apb-rx-remort-seg input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-remort-seg label{flex:1;text-align:center;padding:9px;font-size:13px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#d9dbe0);border-radius:var(--apb-rx-radius);transition:all var(--apb-rx-t-fast,.16s)}
.apb-rx-remort-seg input:checked + label{background:var(--apb-rx-brand);border-color:transparent;color:#fff}
.apb-rx-remort-result{padding:clamp(24px,3.2vw,38px);background:linear-gradient(165deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));color:#fff;
  display:flex;flex-direction:column}
.apb-rx-remort-result span{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.apb-rx-remort-big{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(40px,5.5vw,60px);letter-spacing:-.02em;line-height:1;margin:8px 0 4px}
.apb-rx-remort-big small{font-size:16px;font-weight:600;opacity:.8}
.apb-rx-remort-break{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:11px}
.apb-rx-remort-line{display:flex;justify-content:space-between;font-size:13.5px}
.apb-rx-remort-line span{color:rgba(255,255,255,.8);text-transform:none;letter-spacing:0;font-weight:500}
.apb-rx-remort-line b{font-weight:700;font-variant-numeric:tabular-nums}
.apb-rx-remort-btn{margin-top:auto;padding-top:20px}
.apb-rx-remort-btn a,.apb-rx-remort-btn button{display:block;width:100%;text-align:center;padding:14px;border-radius:var(--apb-rx-radius);background:#fff;color:var(--apb-rx-brand);
  font-size:14.5px;font-weight:700;text-decoration:none;border:0;font-family:inherit;cursor:pointer}
.apb-rx-remort-note{margin-top:12px;font-size:11px;color:rgba(255,255,255,.6);text-align:center}
.apb-rx-remort-wrap--solo{grid-template-columns:1fr;max-width:560px}
@media(max-width:720px){.apb-rx-remort-wrap{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-remort-seg label{transition:none}}

/* open_houses */
.apb-rx-reopen{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-reopen-wrap{max-width:820px;margin:0 auto}
.apb-rx-reopen-item{display:grid;grid-template-columns:66px 1fr auto;gap:18px;align-items:center;background:var(--apb-rx-surface,#fff);
  border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);padding:16px 20px;margin-bottom:12px;
  transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-reopen-item:hover{transform:translateX(3px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-reopen-date{text-align:center;border-radius:calc(var(--apb-rx-radius) * .8);overflow:hidden;border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-reopen-date b{display:block;background:var(--apb-rx-brand);color:#fff;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px}
.apb-rx-reopen-date span{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:24px;color:var(--apb-rx-ink,#0b0d12);padding:5px 0}
.apb-rx-reopen-info b{font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-reopen-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:6px}
.apb-rx-reopen-meta span{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-reopen-meta svg{width:14px;height:14px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-reopen-time{font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-reopen-rsvp{display:inline-flex;align-items:center;gap:7px;padding:11px 18px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:#fff;
  font-size:13.5px;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:0 10px 26px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
.apb-rx-reopen-full{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-muted,#6b7280);box-shadow:none}
.apb-rx-reopen-foot{text-align:center;margin-top:16px;font-size:13.5px;color:var(--apb-rx-muted,#6b7280)}
@media(max-width:560px){.apb-rx-reopen-item{grid-template-columns:56px 1fr}.apb-rx-reopen-rsvp{grid-column:2;justify-self:start}}
@media (prefers-reduced-motion:reduce){.apb-rx-reopen-item{transition:none}}

/* market_stats */
.apb-rx-remkt{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-remkt-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:14px;align-items:start}
.apb-rx-remkt-stat{padding:22px;border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-soft,#f4f5f7);border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-remkt-stat span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-remkt-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(26px,3.2vw,34px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12);margin:6px 0 8px}
.apb-rx-remkt-trend{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700}
.apb-rx-remkt-up{color:#16a34a}
.apb-rx-remkt-down{color:#dc2626}
.apb-rx-remkt-chart{padding:22px;border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-remkt-chart span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-remkt-bars{display:flex;align-items:flex-end;gap:8px;height:90px;margin-top:14px}
.apb-rx-remkt-bars i{flex:1;border-radius:6px 6px 0 0;background:color-mix(in srgb,var(--apb-rx-brand) 22%,var(--apb-rx-soft,#eef0ff));transition:background var(--apb-rx-t,.28s)}
.apb-rx-remkt-bars i:last-child{background:var(--apb-rx-brand)}
.apb-rx-remkt-xaxis{display:flex;gap:8px;margin-top:8px}
.apb-rx-remkt-xaxis span{flex:1;text-align:center;font-size:10.5px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
@media(max-width:820px){.apb-rx-remkt-grid{grid-template-columns:1fr 1fr}.apb-rx-remkt-chart{grid-column:1 / -1}}
@media(max-width:480px){.apb-rx-remkt-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-remkt-bars i{transition:none}}

/* valuation */
.apb-rx-reval{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-ink,#0b0d12);color:#fff;position:relative;overflow:hidden}
.apb-rx-reval::before{content:"";position:absolute;inset:0;
  background:radial-gradient(70% 90% at 15% 10%,color-mix(in srgb,var(--apb-rx-brand) 40%,transparent),transparent 55%),
  radial-gradient(60% 80% at 100% 100%,color-mix(in srgb,var(--apb-rx-brand) 24%,transparent),transparent 55%)}
.apb-rx-reval-wrap{position:relative;max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4vw,52px);align-items:center}
.apb-rx-reval-form{display:flex;gap:10px;flex-wrap:wrap;max-width:480px}
.apb-rx-reval-input{flex:1;min-width:200px;display:flex;align-items:center;gap:10px;background:#fff;border-radius:var(--apb-rx-radius);padding:0 16px}
.apb-rx-reval-input svg{width:18px;height:18px;color:var(--apb-rx-fg-subtle,#a1a1aa);flex:none}
.apb-rx-reval-input input{flex:1;border:0;outline:none;padding:15px 0;font-size:15px;color:var(--apb-rx-ink,#0b0d12);background:transparent}
.apb-rx-reval-btn{padding:15px 26px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:#fff;font-size:15px;font-weight:700;white-space:nowrap;
  box-shadow:0 16px 40px -12px var(--apb-rx-glow,rgba(11,13,18,.5));display:inline-flex;align-items:center}
.apb-rx-reval-note{margin-top:14px;font-size:12.5px;color:rgba(255,255,255,.55)}
.apb-rx-reval-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:calc(var(--apb-rx-radius) * 1.3);
  padding:26px;backdrop-filter:blur(8px)}
.apb-rx-reval-caddr{display:flex;align-items:center;gap:9px;font-size:13.5px;color:rgba(255,255,255,.75)}
.apb-rx-reval-caddr svg{width:16px;height:16px;color:color-mix(in srgb,var(--apb-rx-brand) 45%,#fff);flex:none}
.apb-rx-reval-est{margin:14px 0 2px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.apb-rx-reval-range{display:flex;align-items:baseline;gap:10px}
.apb-rx-reval-range b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(30px,4vw,42px);letter-spacing:-.02em}
.apb-rx-reval-range span{font-size:15px;color:rgba(255,255,255,.6)}
.apb-rx-reval-meter{margin:16px 0 6px;height:8px;border-radius:99px;background:rgba(255,255,255,.14);position:relative}
.apb-rx-reval-meter i{position:absolute;left:18%;right:22%;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--apb-rx-brand) 60%,#fff),var(--apb-rx-brand))}
.apb-rx-reval-meter b{position:absolute;left:52%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.apb-rx-reval-mlab{display:flex;justify-content:space-between;font-size:11.5px;color:rgba(255,255,255,.5)}
.apb-rx-reval-conf{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;gap:9px;font-size:13px;color:rgba(255,255,255,.8)}
.apb-rx-reval-conf svg{width:16px;height:16px;color:var(--apb-rx-check,#16a34a);flex:none}
@media(max-width:780px){.apb-rx-reval-wrap{grid-template-columns:1fr}}

/* neighborhoods */
.apb-rx-rehoods{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-rehoods-wrap{max-width:1160px;margin:0 auto}
.apb-rx-rehoods-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.apb-rx-rehoods-card{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;text-decoration:none;background:var(--apb-rx-ink,#0b0d12);display:block}
.apb-rx-rehoods-card--big{grid-column:span 2;grid-row:span 2}
.apb-rx-rehoods-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow,.55s)}
.apb-rx-rehoods-card:hover img{transform:scale(1.06)}
.apb-rx-rehoods-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(11,13,18,.82))}
.apb-rx-rehoods-body{position:relative;z-index:1;margin-top:auto;display:block;padding:18px;color:#fff;min-height:74px}
.apb-rx-rehoods-card{display:flex;flex-direction:column;justify-content:flex-end}
.apb-rx-rehoods-body b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(18px,2vw,24px);letter-spacing:-.01em;display:block}
.apb-rx-rehoods-body span{display:block;font-size:13px;color:rgba(255,255,255,.8);margin-top:3px}
.apb-rx-rehoods-body em{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-style:normal;font-size:12px;font-weight:700;color:#fff;
  background:rgba(255,255,255,.16);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 12px}
@media(max-width:900px){.apb-rx-rehoods-grid{grid-template-columns:1fr 1fr;grid-auto-rows:200px}.apb-rx-rehoods-card--big{grid-column:span 2;grid-row:span 1}}
@media(max-width:520px){.apb-rx-rehoods-grid{grid-template-columns:1fr}.apb-rx-rehoods-card--big{grid-column:span 1}}
@media (prefers-reduced-motion:reduce){.apb-rx-rehoods-card img{transition:none}}

/* specs */
.apb-rx-respec{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-respec-wrap{max-width:1040px;margin:0 auto}
.apb-rx-respec-facts{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.apb-rx-respec-fact{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);padding:18px 14px;text-align:center}
.apb-rx-respec-fact .apb-rx-leaficon{display:inline-flex;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-respec-fact .apb-rx-leaficon svg{width:22px;height:22px}
.apb-rx-respec-fact b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12);margin-top:8px}
.apb-rx-respec-fact span{font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-respec-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:14px}
.apb-rx-respec-amen{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);padding:24px}
.apb-rx-respec-amen h3{margin:0 0 14px;font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-respec-list{display:grid;grid-template-columns:1fr 1fr;gap:11px 20px}
.apb-rx-respec-list span{display:flex;gap:9px;font-size:14px;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 84%,transparent)}
.apb-rx-respec-list svg{flex:none;width:17px;height:17px;color:var(--apb-rx-brand);margin-top:1px}
.apb-rx-respec-energy{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1);padding:24px;text-align:center}
.apb-rx-respec-energy h3{margin:0 0 16px;font-size:16px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-respec-grade{width:96px;height:96px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:44px;color:#fff;background:conic-gradient(var(--gc,#16a34a) var(--g,80%),var(--apb-rx-soft,#eef0ff) 0);position:relative}
.apb-rx-respec-grade::after{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--gc,#16a34a)}
.apb-rx-respec-grade b{position:relative;z-index:1}
.apb-rx-respec-energy p{margin:16px 0 0;font-size:13px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
.apb-rx-respec-energy p b{color:var(--apb-rx-ink,#0b0d12)}
@media(max-width:820px){.apb-rx-respec-facts{grid-template-columns:repeat(3,1fr)}.apb-rx-respec-cols{grid-template-columns:1fr}}
@media(max-width:480px){.apb-rx-respec-facts{grid-template-columns:1fr 1fr}.apb-rx-respec-list{grid-template-columns:1fr}}

/* compare */
.apb-rx-recmp{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-recmp-wrap{max-width:1040px;margin:0 auto}
.apb-rx-recmp-scroll{overflow-x:auto}
.apb-rx-recmp-table{width:100%;min-width:620px;border-collapse:separate;border-spacing:0}
.apb-rx-recmp-table th,.apb-rx-recmp-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--apb-rx-line,#eef0f2);vertical-align:middle}
.apb-rx-recmp-table thead th{border-bottom:0;padding-bottom:0}
.apb-rx-recmp-rowlabel{font-size:12.5px;font-weight:700;color:var(--apb-rx-muted,#6b7280);width:150px}
.apb-rx-recmp-col{position:relative}
.apb-rx-recmp-col--best{background:color-mix(in srgb,var(--apb-rx-brand) 5%,var(--apb-rx-surface,#fff))}
.apb-rx-recmp-photo{border-radius:var(--apb-rx-radius);overflow:hidden;aspect-ratio:16/11;margin-bottom:10px;position:relative;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-recmp-photo img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-recmp-name{font-size:15px;font-weight:750;color:var(--apb-rx-ink,#0b0d12);line-height:1.25}
.apb-rx-recmp-loc{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-recmp-tag{position:absolute;top:8px;left:8px;z-index:1;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;
  background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 10px}
.apb-rx-recmp-price{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-recmp-val{font-size:14.5px;color:var(--apb-rx-ink,#0b0d12);font-weight:600}
.apb-rx-recmp-yes{color:var(--apb-rx-check,#16a34a)}
.apb-rx-recmp-no{color:var(--apb-rx-line,#c9cbd2)}
.apb-rx-recmp-table svg{width:18px;height:18px}
.apb-rx-recmp-btn{display:inline-block;width:100%;box-sizing:border-box;text-align:center;padding:11px;border-radius:var(--apb-rx-radius);
  font-size:13.5px;font-weight:700;text-decoration:none;border:1px solid var(--apb-rx-line,#d9dbe0);color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-recmp-col--best .apb-rx-recmp-btn{background:var(--apb-rx-brand);border-color:transparent;color:#fff}
/* ==== assets/pages/component-event.css ==== */
/* EVENT family — shared chrome (head/lead/cta/fallback) + variant CSS. Tokens only. */
.apb-rx-ev-head{margin-bottom:clamp(20px,3.5vh,34px)}
.apb-rx-ev-head--c{text-align:center}
.apb-rx-ev-head h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(28px,4.2vw,48px);letter-spacing:var(--apb-rx-display-tracking,-.02em);line-height:1.06;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-ev-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:60ch}
.apb-rx-ev-head--c .apb-rx-ev-lead{margin-inline:auto}
.apb-rx-ev-ctarow{display:flex;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.apb-rx-ev-ctarow--c{justify-content:center}
.apb-rx-ev-cta{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-ev-cta:hover{transform:translateY(-2px)}
.apb-rx-ev-cta--primary{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35))}
.apb-rx-ev-cta--outline{color:var(--apb-rx-ink,#0b0d12);border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-ev-fallback{padding:clamp(48px,8vh,90px) 24px;text-align:center}
@media (prefers-reduced-motion:reduce){.apb-rx-ev-cta{transition:none}}

/* ---------- 1. opening_hours ---------- */

/* event_hero_countdown */
.apb-rx-evhero{position:relative;min-height:clamp(520px,80vh,760px);display:flex;align-items:center;overflow:hidden;color:#fff}
    .apb-rx-evhero-bg{position:absolute;inset:0}
    .apb-rx-evhero-bg img{width:100%;height:100%;object-fit:cover;display:block}
    .apb-rx-evhero-bg::after{content:"";position:absolute;inset:0;
      background:linear-gradient(180deg,rgba(11,13,18,.55),rgba(11,13,18,.35) 40%,rgba(11,13,18,.82)),
      radial-gradient(120% 80% at 15% 20%,color-mix(in srgb,var(--apb-rx-brand) 45%,transparent),transparent 60%)}
    .apb-rx-evhero-wrap{position:relative;z-index:1;max-width:960px;margin:0 auto;padding:clamp(40px,7vw,90px) 24px;width:100%}
    .apb-rx-evhero-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
      background:rgba(255,255,255,.12);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 15px}
    .apb-rx-evhero-badge i{width:7px;height:7px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 35%,transparent);animation:evheroPulse 2s ease-out infinite}
    @keyframes evheroPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--apb-rx-brand) 45%,transparent)}100%{box-shadow:0 0 0 10px transparent}}
    .apb-rx-evhero h1{margin:18px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(38px,7vw,80px);letter-spacing:-.03em;line-height:.98;text-wrap:balance;max-width:16ch}
    .apb-rx-evhero-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:20px;font-size:15px;font-weight:600}
    .apb-rx-evhero-meta span{display:inline-flex;align-items:center;gap:9px;color:rgba(255,255,255,.9)}
    .apb-rx-evhero-meta svg{width:17px;height:17px;color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
    .apb-rx-evhero-count{display:flex;gap:10px;margin-top:28px}
    .apb-rx-evhero-unit{min-width:74px;padding:12px 10px;text-align:center;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,.18);border-radius:calc(var(--apb-rx-radius) * .9)}
    .apb-rx-evhero-unit b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(26px,4vw,40px);line-height:1;font-variant-numeric:tabular-nums}
    .apb-rx-evhero-unit span{display:block;margin-top:6px;font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7)}
    .apb-rx-evhero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
    .apb-rx-evhero-btn{display:inline-flex;align-items:center;gap:9px;padding:15px 28px;border-radius:var(--apb-rx-radius);font-size:15px;font-weight:700;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
    .apb-rx-evhero-btn:hover{transform:translateY(-2px)}
    .apb-rx-evhero-btn--primary{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 16px 40px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
    .apb-rx-evhero-btn--ghost{color:#fff;border:1px solid rgba(255,255,255,.35)}
    .apb-rx-evhero-btn--ghost:hover{border-color:#fff}
    @media (prefers-reduced-motion:reduce){.apb-rx-evhero-badge i,.apb-rx-evhero-btn{animation:none;transition:none}}

/* event_agenda_timeline */
.apb-rx-evag{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-evag-wrap{max-width:860px;margin:0 auto}
    .apb-rx-evag-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evag h2{margin:8px 0 4px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evag-day{color:var(--apb-rx-muted,#6b7280);font-size:14.5px;margin:0 0 clamp(26px,4vh,40px)}
    .apb-rx-evag-list{position:relative;display:flex;flex-direction:column}
    .apb-rx-evag-list::before{content:"";position:absolute;left:88px;top:8px;bottom:8px;width:2px;background:var(--apb-rx-line,#e7e8ec)}
    .apb-rx-evag-row{position:relative;display:grid;grid-template-columns:78px 1fr;gap:26px;padding:12px 0}
    .apb-rx-evag-time{text-align:right;padding-top:16px;font-size:13.5px;font-weight:800;color:var(--apb-rx-ink,#0b0d12);font-variant-numeric:tabular-nums}
    .apb-rx-evag-time span{display:block;font-size:11px;font-weight:600;color:var(--apb-rx-fg-subtle,#a1a1aa)}
    .apb-rx-evag-dot{position:absolute;left:82px;top:22px;width:14px;height:14px;border-radius:50%;background:var(--apb-rx-surface,#fff);
      border:3px solid var(--apb-rx-brand);z-index:1}
    .apb-rx-evag-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9);
      padding:16px 18px;box-shadow:var(--apb-rx-shadow-1);transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s),border-color var(--apb-rx-t,.28s)}
    .apb-rx-evag-card:hover{transform:translateX(3px);box-shadow:var(--apb-rx-shadow-2);border-color:var(--apb-rx-line-accent)}
    .apb-rx-evag-tag{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
      color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:4px 11px}
    .apb-rx-evag-card--break{background:var(--apb-rx-soft,#f4f5f7);border-style:dashed;box-shadow:none}
    .apb-rx-evag-card h3{margin:10px 0 0;font-size:17px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evag-card--break h3{margin:0;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-evag-who{display:flex;align-items:center;gap:10px;margin-top:12px}
    .apb-rx-evag-who img{width:30px;height:30px;border-radius:50%;object-fit:cover}
    .apb-rx-evag-who b{font-size:13px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evag-who span{font-size:12px;color:var(--apb-rx-muted,#6b7280)}
    @media(max-width:620px){
      .apb-rx-evag-list::before,.apb-rx-evag-dot{display:none}
      .apb-rx-evag-row{grid-template-columns:1fr;gap:6px}
      .apb-rx-evag-time{text-align:left;padding-top:0}
      .apb-rx-evag-time span{display:inline;margin-left:6px}
    }
    @media (prefers-reduced-motion:reduce){.apb-rx-evag-card{transition:none}}

/* event_speakers_grid */
.apb-rx-evspk{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
    .apb-rx-evspk-wrap{max-width:1160px;margin:0 auto}
    .apb-rx-evspk-head{text-align:center;max-width:640px;margin:0 auto clamp(30px,5vh,48px)}
    .apb-rx-evspk-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evspk h2{margin:8px 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evspk-head p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6}
    .apb-rx-evspk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
    .apb-rx-evspk-card{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;background:var(--apb-rx-ink,#0b0d12);
      aspect-ratio:3/4;text-decoration:none;box-shadow:var(--apb-rx-shadow-1)}
    .apb-rx-evspk-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow,.55s),filter var(--apb-rx-t,.28s)}
    .apb-rx-evspk-card:hover img{transform:scale(1.06);filter:brightness(.72)}
    .apb-rx-evspk-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(11,13,18,.85))}
    .apb-rx-evspk-body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:16px 16px 18px;color:#fff}
    .apb-rx-evspk-body b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:17px;letter-spacing:-.01em}
    .apb-rx-evspk-body span{display:block;font-size:12.5px;color:rgba(255,255,255,.78);margin-top:2px}
    .apb-rx-evspk-talk{margin-top:12px;max-height:0;opacity:0;overflow:hidden;
      transition:max-height var(--apb-rx-t,.28s),opacity var(--apb-rx-t,.28s)}
    .apb-rx-evspk-card:hover .apb-rx-evspk-talk,.apb-rx-evspk-card:focus-within .apb-rx-evspk-talk{max-height:120px;opacity:1}
    .apb-rx-evspk-talk em{display:block;font-style:normal;font-size:13px;color:rgba(255,255,255,.92);line-height:1.4}
    .apb-rx-evspk-social{display:flex;gap:8px;margin-top:10px}
    .apb-rx-evspk-social i{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;
      background:rgba(255,255,255,.14);color:#fff}
    .apb-rx-evspk-social svg{width:14px;height:14px}
    .apb-rx-evspk-badge{position:absolute;top:12px;left:12px;z-index:1;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
      color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px}
    @media(max-width:900px){.apb-rx-evspk-grid{grid-template-columns:repeat(2,1fr)}}
    @media(max-width:480px){.apb-rx-evspk-grid{grid-template-columns:1fr}}
    @media (prefers-reduced-motion:reduce){
      .apb-rx-evspk-card img{transition:none}
      .apb-rx-evspk-talk{max-height:120px;opacity:1;transition:none}
    }

/* event_ticket_tiers */
.apb-rx-evtix{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-evtix-wrap{max-width:1060px;margin:0 auto}
    .apb-rx-evtix-head{text-align:center;max-width:600px;margin:0 auto clamp(30px,5vh,48px)}
    .apb-rx-evtix-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evtix h2{margin:8px 0 10px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evtix-head p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px}
    .apb-rx-evtix-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
    .apb-rx-evtix-card{display:flex;flex-direction:column;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.2);
      padding:26px 24px;background:var(--apb-rx-surface,#fff);transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
    .apb-rx-evtix-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-evtix-card--feat{border:0;background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand));color:var(--apb-rx-accent-contrast,#fff);
      box-shadow:0 30px 70px -24px var(--apb-rx-glow,rgba(11,13,18,.45));transform:translateY(-8px)}
    .apb-rx-evtix-card--feat:hover{transform:translateY(-12px)}
    .apb-rx-evtix-flag{align-self:flex-start;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
      background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px;margin-bottom:14px}
    .apb-rx-evtix-name{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-evtix-card--feat .apb-rx-evtix-name{color:rgba(255,255,255,.8)}
    .apb-rx-evtix-price{display:flex;align-items:baseline;gap:6px;margin:12px 0 4px}
    .apb-rx-evtix-price b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(34px,4.6vw,46px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evtix-card--feat .apb-rx-evtix-price b{color:#fff}
    .apb-rx-evtix-price s{color:var(--apb-rx-fg-subtle,#a1a1aa);font-size:16px;font-weight:600}
    .apb-rx-evtix-card--feat .apb-rx-evtix-price s{color:rgba(255,255,255,.6)}
    .apb-rx-evtix-seats{font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evtix-card--feat .apb-rx-evtix-seats{color:#fff}
    .apb-rx-evtix-list{list-style:none;margin:18px 0;padding:0;display:flex;flex-direction:column;gap:11px;flex:1}
    .apb-rx-evtix-list li{display:flex;gap:10px;font-size:14px;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 82%,transparent);line-height:1.4}
    .apb-rx-evtix-card--feat .apb-rx-evtix-list li{color:rgba(255,255,255,.92)}
    .apb-rx-evtix-list svg{flex:none;width:18px;height:18px;color:var(--apb-rx-brand);margin-top:1px}
    .apb-rx-evtix-card--feat .apb-rx-evtix-list svg{color:#fff}
    .apb-rx-evtix-btn{display:block;text-align:center;padding:14px;border-radius:var(--apb-rx-radius);font-size:14.5px;font-weight:700;text-decoration:none;
      border:1px solid var(--apb-rx-line,#e7e8ec);color:var(--apb-rx-ink,#0b0d12);transition:border-color var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s)}
    .apb-rx-evtix-btn:hover{border-color:var(--apb-rx-brand)}
    .apb-rx-evtix-btn--solid{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);border-color:transparent}
    .apb-rx-evtix-card--feat .apb-rx-evtix-btn{background:#fff;color:var(--apb-rx-brand);border-color:transparent}
    @media(max-width:820px){.apb-rx-evtix-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto}.apb-rx-evtix-card--feat,.apb-rx-evtix-card:hover{transform:none}}
    @media (prefers-reduced-motion:reduce){.apb-rx-evtix-card,.apb-rx-evtix-btn{transition:none}}

/* event_schedule_tabs */
.apb-rx-evsch{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
    .apb-rx-evsch-wrap{max-width:900px;margin:0 auto}
    .apb-rx-evsch-head{text-align:center;margin-bottom:clamp(22px,3.5vh,32px)}
    .apb-rx-evsch-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evsch h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evsch input{position:absolute;opacity:0;pointer-events:none}
    .apb-rx-evsch-tabs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:22px}
    .apb-rx-evsch-tab{cursor:pointer;display:flex;flex-direction:column;align-items:center;min-width:96px;padding:12px 20px;border-radius:var(--apb-rx-radius);
      background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);transition:all var(--apb-rx-t-fast,.16s)}
    .apb-rx-evsch-tab b{font-size:15px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evsch-tab span{font-size:12px;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-evsch-tab:hover{border-color:var(--apb-rx-line-accent)}
    .apb-rx-evsch-panel{display:none;flex-direction:column;gap:10px}
    .apb-rx-evsch-sess{display:grid;grid-template-columns:82px 1fr auto;gap:16px;align-items:center;padding:15px 18px;
      background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9)}
    .apb-rx-evsch-time{font-size:13px;font-weight:800;color:var(--apb-rx-ink,#0b0d12);font-variant-numeric:tabular-nums}
    .apb-rx-evsch-sess b{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evsch-sess small{display:block;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);margin-top:2px}
    .apb-rx-evsch-chip{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
      background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px;white-space:nowrap}
    /* structural checked wiring: radio k drives tab k + panel k (instance-agnostic, matches the
       renderer's sibling order: radios first, then .apb-rx-evsch-tabs, then .apb-rx-evsch-panels) */
    .apb-rx-evsch-radio:nth-of-type(1):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(1),
    .apb-rx-evsch-radio:nth-of-type(2):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(2),
    .apb-rx-evsch-radio:nth-of-type(3):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(3),
    .apb-rx-evsch-radio:nth-of-type(4):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(4),
    .apb-rx-evsch-radio:nth-of-type(5):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(5),
    .apb-rx-evsch-radio:nth-of-type(6):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(6){background:var(--apb-rx-brand);border-color:transparent}
    .apb-rx-evsch-radio:nth-of-type(1):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(1) b,
    .apb-rx-evsch-radio:nth-of-type(1):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(1) span,
    .apb-rx-evsch-radio:nth-of-type(2):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(2) b,
    .apb-rx-evsch-radio:nth-of-type(2):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(2) span,
    .apb-rx-evsch-radio:nth-of-type(3):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(3) b,
    .apb-rx-evsch-radio:nth-of-type(3):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(3) span,
    .apb-rx-evsch-radio:nth-of-type(4):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(4) b,
    .apb-rx-evsch-radio:nth-of-type(4):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(4) span,
    .apb-rx-evsch-radio:nth-of-type(5):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(5) b,
    .apb-rx-evsch-radio:nth-of-type(5):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(5) span,
    .apb-rx-evsch-radio:nth-of-type(6):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(6) b,
    .apb-rx-evsch-radio:nth-of-type(6):checked ~ .apb-rx-evsch-tabs .apb-rx-evsch-tab:nth-of-type(6) span{color:#fff}
    .apb-rx-evsch-radio:nth-of-type(1):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(1),
    .apb-rx-evsch-radio:nth-of-type(2):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(2),
    .apb-rx-evsch-radio:nth-of-type(3):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(3),
    .apb-rx-evsch-radio:nth-of-type(4):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(4),
    .apb-rx-evsch-radio:nth-of-type(5):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(5),
    .apb-rx-evsch-radio:nth-of-type(6):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(6){display:flex;animation:evschIn .35s ease}
    @keyframes evschIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
    @media(max-width:620px){.apb-rx-evsch-sess{grid-template-columns:1fr;gap:6px}.apb-rx-evsch-chip{justify-self:start}}
    @media (prefers-reduced-motion:reduce){.apb-rx-evsch-tab{transition:none}
    .apb-rx-evsch-radio:nth-of-type(1):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(1),
    .apb-rx-evsch-radio:nth-of-type(2):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(2),
    .apb-rx-evsch-radio:nth-of-type(3):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(3),
    .apb-rx-evsch-radio:nth-of-type(4):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(4),
    .apb-rx-evsch-radio:nth-of-type(5):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(5),
    .apb-rx-evsch-radio:nth-of-type(6):checked ~ .apb-rx-evsch-panels .apb-rx-evsch-panel:nth-of-type(6){animation:none}}

/* event_venue_travel */
.apb-rx-evven{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
    .apb-rx-evven-wrap{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,52px);align-items:center}
    .apb-rx-evven-media{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.3);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-evven-media img{width:100%;height:100%;object-fit:cover;display:block}
    .apb-rx-evven-media::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,transparent 40%,rgba(11,13,18,.5))}
    .apb-rx-evven-pin{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);z-index:1;width:22px;height:22px}
    .apb-rx-evven-pin i{position:absolute;inset:0;border-radius:50%;background:var(--apb-rx-brand);border:3px solid #fff;box-shadow:0 6px 16px rgba(11,13,18,.4)}
    .apb-rx-evven-pin::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:2px solid color-mix(in srgb,var(--apb-rx-brand) 50%,transparent);animation:evvenPulse 2.2s ease-out infinite}
    @keyframes evvenPulse{from{transform:scale(.5);opacity:1}to{transform:scale(1.6);opacity:0}}
    .apb-rx-evven-place{position:absolute;left:16px;bottom:16px;z-index:1;color:#fff}
    .apb-rx-evven-place b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px;letter-spacing:-.01em}
    .apb-rx-evven-place span{font-size:13px;color:rgba(255,255,255,.82)}
    .apb-rx-evven-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evven h2{margin:8px 0 8px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(28px,4vw,44px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evven-lead{margin:0 0 22px;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6}
    .apb-rx-evven-facts{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
    .apb-rx-evven-fact{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
    .apb-rx-evven-fact i{width:44px;height:44px;border-radius:calc(var(--apb-rx-radius) * .8);display:flex;align-items:center;justify-content:center;
      background:var(--apb-rx-soft,#eef0ff);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evven-fact svg{width:20px;height:20px}
    .apb-rx-evven-fact b{display:block;font-size:14.5px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evven-fact span{font-size:13.5px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
    .apb-rx-evven-btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:var(--apb-rx-radius);
      background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font-size:14px;font-weight:700;text-decoration:none;box-shadow:0 14px 34px -12px var(--apb-rx-glow,rgba(11,13,18,.4))}
    @media(max-width:820px){.apb-rx-evven-wrap{grid-template-columns:1fr}}
    @media (prefers-reduced-motion:reduce){.apb-rx-evven-pin::before{animation:none;opacity:0}}

/* event_sponsors_tiers */
.apb-rx-evspon{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
    .apb-rx-evspon-wrap{max-width:1040px;margin:0 auto;text-align:center}
    .apb-rx-evspon-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    .apb-rx-evspon h2{margin:8px 0 clamp(30px,5vh,48px);font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,50px);letter-spacing:-.02em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evspon-tier{margin-bottom:clamp(24px,4vh,38px)}
    .apb-rx-evspon-label{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
      color:var(--apb-rx-muted,#6b7280);margin-bottom:16px}
    .apb-rx-evspon-label::before,.apb-rx-evspon-label::after{content:"";width:36px;height:1px;background:var(--apb-rx-line,#d9dbe0)}
    .apb-rx-evspon-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
    .apb-rx-evspon-logo{display:flex;align-items:center;justify-content:center;background:var(--apb-rx-surface,#fff);
      border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * .9);transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t,.28s)}
    .apb-rx-evspon-logo:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2)}
    .apb-rx-evspon-logo b{font-family:var(--apb-rx-font-display,inherit);font-weight:800;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
    .apb-rx-evspon-logo small{display:block;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-fg-subtle,#a1a1aa)}
    /* headline tier — large */
    .apb-rx-evspon-tier--head .apb-rx-evspon-logo{flex:1 1 260px;max-width:320px;height:120px;flex-direction:column;gap:4px}
    .apb-rx-evspon-tier--head .apb-rx-evspon-logo b{font-size:clamp(22px,3vw,30px)}
    /* gold tier — medium */
    .apb-rx-evspon-tier--gold .apb-rx-evspon-logo{flex:1 1 170px;max-width:210px;height:88px}
    .apb-rx-evspon-tier--gold .apb-rx-evspon-logo b{font-size:20px}
    /* community — small */
    .apb-rx-evspon-tier--comm .apb-rx-evspon-logo{flex:0 1 140px;height:64px}
    .apb-rx-evspon-tier--comm .apb-rx-evspon-logo b{font-size:15px;color:var(--apb-rx-muted,#6b7280)}
    .apb-rx-evspon-cta{margin-top:clamp(20px,3.5vh,30px)}
    .apb-rx-evspon-cta a{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;border-radius:var(--apb-rx-radius);
      border:1px solid var(--apb-rx-line,#d9dbe0);background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink,#0b0d12);font-size:14px;font-weight:700;text-decoration:none;
      transition:border-color var(--apb-rx-t-fast,.16s)}
    .apb-rx-evspon-cta a:hover{border-color:var(--apb-rx-brand)}
    .apb-rx-evspon-cta svg{width:15px;height:15px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
    @media (prefers-reduced-motion:reduce){.apb-rx-evspon-logo{transition:none}}

/* event_countdown_banner */
.apb-rx-evcd{padding:clamp(28px,5vh,48px) 24px}
    .apb-rx-evcd-wrap{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(18px,3vw,32px);
      padding:clamp(20px,3vw,32px) clamp(22px,3.5vw,40px);border-radius:calc(var(--apb-rx-radius) * 1.4);overflow:hidden;position:relative;color:#fff;
      background:linear-gradient(120deg,color-mix(in srgb,var(--apb-rx-brand) 92%,#000),var(--apb-rx-brand) 55%,color-mix(in srgb,var(--apb-rx-brand) 70%,#fff));
      box-shadow:0 26px 60px -22px var(--apb-rx-glow,rgba(11,13,18,.45))}
    .apb-rx-evcd-wrap::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 90% 10%,rgba(255,255,255,.18),transparent 60%);pointer-events:none}
    .apb-rx-evcd-lead{position:relative;flex:1 1 240px}
    .apb-rx-evcd-kick{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82)}
    .apb-rx-evcd-lead b{display:block;margin-top:5px;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(21px,2.6vw,30px);letter-spacing:-.01em;line-height:1.1}
    .apb-rx-evcd-lead span{font-size:13.5px;color:rgba(255,255,255,.82)}
    .apb-rx-evcd-count{position:relative;display:flex;gap:8px}
    .apb-rx-evcd-unit{min-width:58px;text-align:center;padding:9px 8px;background:rgba(255,255,255,.14);backdrop-filter:blur(6px);
      border:1px solid rgba(255,255,255,.2);border-radius:calc(var(--apb-rx-radius) * .7)}
    .apb-rx-evcd-unit b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
    .apb-rx-evcd-unit span{display:block;margin-top:4px;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.72)}
    .apb-rx-evcd-btn{position:relative;display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:var(--apb-rx-radius);
      background:#fff;color:var(--apb-rx-brand);font-size:14.5px;font-weight:800;text-decoration:none;white-space:nowrap;transition:transform var(--apb-rx-t-fast,.16s)}
    .apb-rx-evcd-btn:hover{transform:translateY(-2px)}
    @media(max-width:680px){.apb-rx-evcd-wrap{flex-direction:column;align-items:flex-start}.apb-rx-evcd-btn{width:100%;justify-content:center}}
    @media (prefers-reduced-motion:reduce){.apb-rx-evcd-btn{transition:none}}

/* event_recap_stats */
.apb-rx-evrec{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-ink,#0b0d12);color:#fff}
    .apb-rx-evrec-wrap{max-width:1120px;margin:0 auto}
    .apb-rx-evrec-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:clamp(24px,4vh,38px)}
    .apb-rx-evrec-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
    .apb-rx-evrec h2{margin:8px 0 0;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
      font-size:clamp(30px,4.4vw,52px);letter-spacing:-.02em;max-width:16ch}
    .apb-rx-evrec-head p{margin:0;color:rgba(255,255,255,.65);font-size:14.5px;max-width:34ch}
    .apb-rx-evrec-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
    .apb-rx-evrec-stat{padding:22px 20px;border-radius:calc(var(--apb-rx-radius) * 1.1);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
    .apb-rx-evrec-stat b{display:block;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:clamp(30px,4vw,44px);letter-spacing:-.02em;line-height:1;
      color:color-mix(in srgb,var(--apb-rx-brand) 40%,#fff)}
    .apb-rx-evrec-stat span{display:block;margin-top:8px;font-size:12.5px;color:rgba(255,255,255,.7)}
    .apb-rx-evrec-strip{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:150px;gap:12px}
    .apb-rx-evrec-cell{position:relative;border-radius:calc(var(--apb-rx-radius) * 1);overflow:hidden}
    .apb-rx-evrec-cell:first-child{grid-row:span 2}
    .apb-rx-evrec-cell img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9);transition:transform var(--apb-rx-t-slow,.55s)}
    .apb-rx-evrec-cell:hover img{transform:scale(1.05)}
    .apb-rx-evrec-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:22px}
    .apb-rx-evrec-cta a{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:var(--apb-rx-radius);
      background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font-size:14.5px;font-weight:700;text-decoration:none;box-shadow:0 16px 40px -14px var(--apb-rx-glow,rgba(11,13,18,.5))}
    .apb-rx-evrec-cta span{color:rgba(255,255,255,.6);font-size:13.5px}
    @media(max-width:820px){.apb-rx-evrec-stats{grid-template-columns:repeat(2,1fr)}.apb-rx-evrec-strip{grid-template-columns:1fr 1fr}.apb-rx-evrec-cell:first-child{grid-row:span 1;grid-column:span 2}}
    @media (prefers-reduced-motion:reduce){.apb-rx-evrec-cell img{transition:none}}
/* ==== assets/pages/component-event-2.css ==== */
/* event family — batch 2 variants. Tokens only; reduced-motion fallbacks required. */

/* festival lineup */
.apb-rx-evfest{position:relative;padding:clamp(60px,11vh,120px) 24px;overflow:hidden;color:#fff;text-align:center;
  background:radial-gradient(90% 70% at 50% -10%,color-mix(in srgb,var(--apb-rx-brand) 55%,#0b0d12),transparent 60%),
    radial-gradient(70% 60% at 85% 110%,color-mix(in srgb,var(--apb-rx-brand) 40%,#0b0d12),transparent 55%),
    var(--apb-rx-ink,#0b0d12)}
.apb-rx-evfest-grain{position:absolute;inset:0;opacity:.5;pointer-events:none;background:radial-gradient(rgba(255,255,255,.08) .5px,transparent .5px);background-size:4px 4px}
.apb-rx-evfest-wrap{position:relative;max-width:1080px;margin:0 auto}
.apb-rx-evfest-kick{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.25);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 18px;margin-bottom:8px}
.apb-rx-evfest-title{margin:14px 0 clamp(22px,4vh,38px);font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(40px,8vw,92px);letter-spacing:-.04em;line-height:.92}
.apb-rx-evfest-tier{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 20px;margin-bottom:16px;line-height:1.05}
.apb-rx-evfest-name{font-family:var(--apb-rx-font-display,inherit);font-weight:800;letter-spacing:-.02em;text-transform:uppercase;
  color:#fff;text-decoration:none;transition:color var(--apb-rx-t-fast,.16s),transform var(--apb-rx-t-fast,.16s);display:inline-block}
.apb-rx-evfest-name:hover{color:color-mix(in srgb,var(--apb-rx-brand) 45%,#fff);transform:translateY(-2px)}
.apb-rx-evfest-dot{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff);font-weight:800}
.apb-rx-evfest-tier--1 .apb-rx-evfest-name{font-size:clamp(26px,5vw,58px)}
.apb-rx-evfest-tier--2 .apb-rx-evfest-name{font-size:clamp(18px,3vw,34px);color:rgba(255,255,255,.9)}
.apb-rx-evfest-tier--3 .apb-rx-evfest-name{font-size:clamp(14px,2vw,22px);color:rgba(255,255,255,.72);font-weight:700}
.apb-rx-evfest-foot{margin-top:clamp(26px,4vh,42px);display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;justify-content:center}
.apb-rx-evfest-date{font-size:15px;font-weight:700;letter-spacing:.04em;color:#fff}
.apb-rx-evfest-date span{color:rgba(255,255,255,.6);font-weight:500}
.apb-rx-evfest-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:var(--apb-rx-radius-pill,999px);
  background:#fff;color:var(--apb-rx-ink,#0b0d12);font-size:14.5px;font-weight:800;text-decoration:none;transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-evfest-btn:hover{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.apb-rx-evfest-name,.apb-rx-evfest-btn{transition:none}}

/* register split */
.apb-rx-evreg{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-evreg-wrap{max-width:1020px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(20px,3vw,40px);align-items:start}
.apb-rx-evreg-form{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.2);
  padding:clamp(24px,3.5vw,40px);box-shadow:var(--apb-rx-shadow-1)}
.apb-rx-evreg-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.apb-rx-evreg-field{margin-bottom:15px;display:block}
.apb-rx-evreg-field label{display:block;font-size:12.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12);margin-bottom:6px}
.apb-rx-evreg-input{display:block;width:100%;box-sizing:border-box;padding:12px 14px;font-size:14.5px;min-height:1.4em;color:var(--apb-rx-fg-subtle,#a1a1aa);
  background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#d9dbe0);border-radius:var(--apb-rx-radius)}
.apb-rx-evreg-submit{display:block;width:100%;margin-top:8px;padding:15px;text-align:center;border-radius:var(--apb-rx-radius);background:var(--apb-rx-brand);color:#fff;
  font-size:15px;font-weight:700;box-shadow:0 14px 34px -12px var(--apb-rx-glow,rgba(11,13,18,.4));transition:transform var(--apb-rx-t-fast,.16s)}
.apb-rx-evreg-submit:hover{transform:translateY(-2px)}
.apb-rx-evreg-fine{margin:12px 0 0;font-size:12px;color:var(--apb-rx-fg-subtle,#a1a1aa);text-align:center}
.apb-rx-evreg-card{position:sticky;top:24px;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;background:var(--apb-rx-ink,#0b0d12);color:#fff;box-shadow:var(--apb-rx-shadow-3)}
.apb-rx-evreg-cardimg{position:relative;min-height:70px}
.apb-rx-evreg-img{width:100%;height:130px;display:block}
.apb-rx-evreg-img img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-evreg-cardimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,13,18,.1),rgba(11,13,18,.85))}
.apb-rx-evreg-cardimg b{position:absolute;left:18px;bottom:14px;z-index:1;font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:20px}
.apb-rx-evreg-cardbody{padding:20px}
.apb-rx-evreg-cardbody .apb-rx-evreg-line{display:flex;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:13.5px}
.apb-rx-evreg-cardbody .apb-rx-evreg-line:last-child{border-bottom:0}
.apb-rx-evreg-line .apb-rx-leaficon{flex:none;width:18px;height:18px;color:color-mix(in srgb,var(--apb-rx-brand) 50%,#fff)}
.apb-rx-evreg-line span{color:rgba(255,255,255,.85)}
@media(max-width:820px){.apb-rx-evreg-wrap{grid-template-columns:1fr}.apb-rx-evreg-card{position:static}}
@media (prefers-reduced-motion:reduce){.apb-rx-evreg-submit{transition:none}}

/* program matrix */
.apb-rx-evmx{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-evmx-wrap{max-width:1120px;margin:0 auto}
.apb-rx-evmx-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:clamp(22px,3.5vh,32px)}
.apb-rx-evmx-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-evmx-legend span{display:inline-flex;align-items:center;gap:7px}
.apb-rx-evmx-legend i{width:11px;height:11px;border-radius:3px}
.apb-rx-evmx-scroll{overflow-x:auto;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) * 1.1)}
.apb-rx-evmx-grid{display:grid;grid-auto-rows:minmax(82px,auto);min-width:640px}
.apb-rx-evmx-cell{padding:10px;border-bottom:1px solid var(--apb-rx-line,#eef0f2);border-right:1px solid var(--apb-rx-line,#eef0f2)}
.apb-rx-evmx-corner,.apb-rx-evmx-room{background:var(--apb-rx-soft,#f4f5f7);font-size:12.5px;font-weight:800;color:var(--apb-rx-ink,#0b0d12);text-align:center;
  grid-row:1;position:sticky;top:0;display:flex;align-items:center;justify-content:center}
.apb-rx-evmx-time{font-size:11.5px;font-weight:800;color:var(--apb-rx-muted,#6b7280);text-align:right;font-variant-numeric:tabular-nums;
  display:flex;align-items:center;justify-content:flex-end}
.apb-rx-evmx-slot{min-height:70px;padding:6px}
.apb-rx-evmx-block{height:100%;box-sizing:border-box;padding:10px 12px;border-radius:calc(var(--apb-rx-radius) * .7);text-decoration:none;display:block;
  border-left:3px solid var(--trk,var(--apb-rx-brand));background:color-mix(in srgb,var(--trk,var(--apb-rx-brand)) 9%,var(--apb-rx-surface,#fff));
  transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t-fast,.16s)}
.apb-rx-evmx-block:hover{transform:translateY(-2px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-evmx-block b{display:block;font-size:13.5px;font-weight:750;color:var(--apb-rx-ink,#0b0d12);line-height:1.25}
.apb-rx-evmx-block span{display:block;margin-top:4px;font-size:11.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-evmx-plenary .apb-rx-evmx-block{background:color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-surface,#fff));border-left-color:var(--apb-rx-brand)}
.apb-rx-evmx-hint{margin:12px 2px 0;font-size:12px;color:var(--apb-rx-fg-subtle,#a1a1aa)}
@media (prefers-reduced-motion:reduce){.apb-rx-evmx-block{transition:none}}

/* tracks grid */
.apb-rx-evtrk{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-evtrk-wrap{max-width:1120px;margin:0 auto}
.apb-rx-evtrk-head{max-width:620px;margin-bottom:clamp(28px,4.5vh,44px)}
.apb-rx-evtrk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-evtrk-card{position:relative;display:flex;flex-direction:column;padding:24px;border-radius:calc(var(--apb-rx-radius) * 1.15);
  border:1px solid var(--apb-rx-line,#e7e8ec);background:var(--apb-rx-surface,#fff);text-decoration:none;overflow:hidden;
  transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s),border-color var(--apb-rx-t,.28s)}
.apb-rx-evtrk-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--trk,var(--apb-rx-brand));transform:scaleX(0);transform-origin:left;
  transition:transform var(--apb-rx-t,.28s)}
.apb-rx-evtrk-card:hover{transform:translateY(-5px);box-shadow:var(--apb-rx-shadow-2);border-color:transparent}
.apb-rx-evtrk-card:hover::before{transform:scaleX(1)}
.apb-rx-evtrk-ico{width:48px;height:48px;border-radius:calc(var(--apb-rx-radius) * .85);display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--trk,var(--apb-rx-brand)) 12%,var(--apb-rx-surface,#fff));color:var(--trk,var(--apb-rx-brand))}
.apb-rx-evtrk-ico svg{width:24px;height:24px}
.apb-rx-evtrk-card h3{margin:16px 0 6px;font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evtrk-card p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.55;flex:1}
.apb-rx-evtrk-foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--apb-rx-line,#eef0f2)}
.apb-rx-evtrk-count{font-size:12.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evtrk-count span{color:var(--apb-rx-fg-subtle,#a1a1aa);font-weight:500}
@media(max-width:880px){.apb-rx-evtrk-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.apb-rx-evtrk-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-evtrk-card,.apb-rx-evtrk-card::before{transition:none}}

/* topics accordion */
.apb-rx-evtop{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-evtop-wrap{max-width:820px;margin:0 auto}
.apb-rx-evtop-head{text-align:center;max-width:600px;margin:0 auto clamp(26px,4vh,40px)}
.apb-rx-evtop-item{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);
  margin-bottom:12px;overflow:hidden;transition:box-shadow var(--apb-rx-t,.28s)}
.apb-rx-evtop-item[open]{box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-evtop-sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px 22px}
.apb-rx-evtop-sum::-webkit-details-marker{display:none}
.apb-rx-evtop-sum:focus-visible{outline:2px solid var(--apb-rx-brand);outline-offset:-3px;border-radius:var(--apb-rx-radius)}
.apb-rx-evtop-num{font-family:var(--apb-rx-font-display,inherit);font-weight:800;font-size:15px;color:var(--apb-rx-fg-subtle,#a1a1aa);flex:0 0 auto}
.apb-rx-evtop-sum b{flex:1;font-size:clamp(17px,2.2vw,22px);font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evtop-tag{font-size:11.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:var(--apb-rx-soft,#eef0ff);
  border-radius:var(--apb-rx-radius-pill,999px);padding:5px 12px;white-space:nowrap}
.apb-rx-evtop-chev{flex:0 0 auto;width:26px;height:26px;color:var(--apb-rx-muted,#6b7280);transition:transform var(--apb-rx-t,.28s)}
.apb-rx-evtop-item[open] .apb-rx-evtop-chev{transform:rotate(180deg)}
.apb-rx-evtop-body{padding:0 22px 6px 54px}
.apb-rx-evtop-sess{display:flex;align-items:center;gap:14px;padding:13px 0;border-top:1px solid var(--apb-rx-line,#eef0f2)}
.apb-rx-evtop-sess img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.apb-rx-evtop-sess b{display:block;font-size:14.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evtop-sess span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-evtop-sess time{margin-left:auto;font-size:12px;font-weight:700;color:var(--apb-rx-fg-subtle,#a1a1aa);font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.apb-rx-evtop-item,.apb-rx-evtop-chev{transition:none}}

/* speaker spotlight */
.apb-rx-evspot{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-surface,#fff)}
.apb-rx-evspot-wrap{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,64px);align-items:center}
.apb-rx-evspot-media{position:relative}
.apb-rx-evspot-img{width:100%;aspect-ratio:4/5;display:block;border-radius:calc(var(--apb-rx-radius) * 1.4);box-shadow:var(--apb-rx-shadow-3);overflow:hidden}
.apb-rx-evspot-img img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-evspot-kbadge{position:absolute;top:16px;left:16px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;background:rgba(11,13,18,.55);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-evspot-ey{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-evspot-name{margin:10px 0 2px;font-family:var(--apb-rx-font-display,inherit);font-weight:var(--apb-rx-display-weight,800);
  font-size:clamp(32px,4.6vw,52px);letter-spacing:-.025em;line-height:1;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evspot-role{font-size:15px;font-weight:600;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-evspot-talk{margin:20px 0;padding:16px 18px;border-left:3px solid var(--apb-rx-brand);background:var(--apb-rx-soft,#eef0ff);
  border-radius:0 var(--apb-rx-radius) var(--apb-rx-radius) 0}
.apb-rx-evspot-talk span{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-evspot-talk b{display:block;margin-top:5px;font-family:var(--apb-rx-font-display,inherit);font-weight:700;font-size:clamp(18px,2.2vw,24px);
  letter-spacing:-.01em;color:var(--apb-rx-ink,#0b0d12);line-height:1.25}
.apb-rx-evspot-bio{margin:0 0 22px;color:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 78%,transparent);font-size:15.5px;line-height:1.7;max-width:52ch}
.apb-rx-evspot-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.apb-rx-evspot-when{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evspot-social{display:flex;gap:8px;margin-left:auto}
.apb-rx-evspot-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--apb-rx-line,#e7e8ec);color:var(--apb-rx-ink,#0b0d12);transition:border-color var(--apb-rx-t-fast,.16s),color var(--apb-rx-t-fast,.16s)}
.apb-rx-evspot-social a:hover{border-color:var(--apb-rx-brand);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-evspot-social svg{width:16px;height:16px}
@media(max-width:780px){.apb-rx-evspot-wrap{grid-template-columns:1fr;gap:28px}.apb-rx-evspot-media{max-width:360px}}
@media (prefers-reduced-motion:reduce){.apb-rx-evspot-social a{transition:none}}

/* speaker marquee */
.apb-rx-evmar{padding:clamp(56px,10vh,110px) 0;background:var(--apb-rx-ink,#0b0d12);overflow:hidden}
.apb-rx-evmar-head{max-width:720px;margin:0 auto clamp(28px,4.5vh,44px);padding:0 24px;text-align:center;color:#fff}
.apb-rx-evmar-rows{display:flex;flex-direction:column;gap:16px;position:relative}
.apb-rx-evmar-rows::before,.apb-rx-evmar-rows::after{content:"";position:absolute;top:0;bottom:0;width:12%;z-index:2;pointer-events:none}
.apb-rx-evmar-rows::before{left:0;background:linear-gradient(90deg,var(--apb-rx-ink,#0b0d12),transparent)}
.apb-rx-evmar-rows::after{right:0;background:linear-gradient(270deg,var(--apb-rx-ink,#0b0d12),transparent)}
.apb-rx-evmar-track{display:flex;gap:16px;width:max-content;animation:apbEvmarScroll calc(46s / var(--apb-rx-dur,1)) linear infinite}
.apb-rx-evmar-track--rev{animation-direction:reverse;animation-duration:calc(54s / var(--apb-rx-dur,1))}
.apb-rx-evmar-rows:hover .apb-rx-evmar-track{animation-play-state:paused}
@keyframes apbEvmarScroll{to{transform:translateX(-50%)}}
.apb-rx-evmar-card{position:relative;width:190px;flex:0 0 auto;border-radius:calc(var(--apb-rx-radius) * 1.1);overflow:hidden;aspect-ratio:4/5;text-decoration:none}
.apb-rx-evmar-card img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.35) brightness(.85);transition:filter var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s)}
.apb-rx-evmar-card:hover img{filter:none;transform:scale(1.05)}
.apb-rx-evmar-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(11,13,18,.85))}
.apb-rx-evmar-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:14px;color:#fff;transform:translateY(6px);opacity:.85;transition:transform var(--apb-rx-t,.28s),opacity var(--apb-rx-t,.28s)}
.apb-rx-evmar-card:hover .apb-rx-evmar-cap{transform:none;opacity:1}
.apb-rx-evmar-cap b{display:block;font-size:15px;font-weight:750;letter-spacing:-.01em}
.apb-rx-evmar-cap span{font-size:12px;color:rgba(255,255,255,.75)}
.apb-rx-evmar-foot{text-align:center;margin-top:clamp(28px,4.5vh,44px);padding:0 24px}
.apb-rx-evmar-foot a{display:inline-flex;align-items:center;gap:9px;padding:14px 28px;border-radius:var(--apb-rx-radius);
  background:var(--apb-rx-brand);color:#fff;font-size:14.5px;font-weight:700;text-decoration:none;box-shadow:0 16px 40px -14px var(--apb-rx-glow,rgba(11,13,18,.5))}
@media (prefers-reduced-motion:reduce){
  .apb-rx-evmar-track{animation:none}
  .apb-rx-evmar-rows{overflow-x:auto}
  .apb-rx-evmar-cap{transform:none;opacity:1}
}

/* speaker teasers */
.apb-rx-evsq{padding:clamp(56px,10vh,110px) 24px;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-evsq-wrap{max-width:1120px;margin:0 auto}
.apb-rx-evsq-head{max-width:600px;margin-bottom:clamp(28px,4.5vh,44px)}
.apb-rx-evsq-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-evsq-card{display:flex;flex-direction:column;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);
  border-radius:calc(var(--apb-rx-radius) * 1.15);padding:26px 24px;text-decoration:none;
  transition:transform var(--apb-rx-t,.28s),box-shadow var(--apb-rx-t,.28s)}
.apb-rx-evsq-card:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-2)}
.apb-rx-evsq-mark{width:34px;height:34px;color:var(--apb-rx-line-accent,#c8caf5)}
.apb-rx-evsq-teaser{margin:12px 0 20px;font-family:var(--apb-rx-font-display,inherit);font-weight:750;
  font-size:clamp(19px,2.2vw,24px);letter-spacing:-.015em;line-height:1.3;color:var(--apb-rx-ink,#0b0d12);flex:1;text-wrap:pretty}
.apb-rx-evsq-who{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--apb-rx-line,#eef0f2)}
.apb-rx-evsq-who img{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.apb-rx-evsq-who b{display:block;font-size:14.5px;font-weight:750;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-evsq-who span{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-evsq-when{margin-left:auto;text-align:right;font-size:11px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));
  background:var(--apb-rx-soft,#eef0ff);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 10px;white-space:nowrap}
@media(max-width:880px){.apb-rx-evsq-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.apb-rx-evsq-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.apb-rx-evsq-card{transition:none}}
/* ==== assets/pages/component-sectionsx.css ==== */
/* how_it_works / metrics / integrations / video_section. Tokens only, no !important (bar reduced-motion).
 * Reuses the hero lightbox (.apb-rx-hero-play/.apb-rx-herolight) from component-heroes.css. */

.apb-rx-sx-head{text-align:center;max-width:680px;margin:0 auto clamp(28px,4vw,44px)}
.apb-rx-sx-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-sx-head .apb-rx-lead{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:16px}
.apb-rx-hiw,.apb-rx-metrics,.apb-rx-integ,.apb-rx-vsec--grid{max-width:1140px;margin-inline:auto}

/* ---- how_it_works ---- */
.apb-rx-hiw-n{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;background:var(--apb-rx-brand);color:#fff}
.apb-rx-hiw h3{margin:0 0 6px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-hiw p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6}
/* alternating / zigzag */
.apb-rx-hiw-rows{display:flex;flex-direction:column;gap:clamp(24px,4vw,48px)}
.apb-rx-hiw-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}
.apb-rx-hiw--alt .apb-rx-hiw-row:nth-child(even)>:first-child,.apb-rx-hiw--zig .apb-rx-hiw-row:nth-child(even)>:first-child{order:2}
.apb-rx-hiw--alt .apb-rx-hiw-row:nth-child(even)>:last-child,.apb-rx-hiw--zig .apb-rx-hiw-row:nth-child(even)>:last-child{order:1}
.apb-rx-hiw-body{display:flex;gap:16px;align-items:flex-start}
.apb-rx-hiw-media{border-radius:var(--apb-rx-radius,16px);overflow:hidden;border:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-hiw-media img{width:100%;display:block}
.apb-rx-hiw-row:not(:has(.apb-rx-hiw-media)){grid-template-columns:1fr;max-width:640px;margin-inline:auto}
/* horizontal stepper */
.apb-rx-hiw-track{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:20px;position:relative}
.apb-rx-hiw-track::before{content:"";position:absolute;top:18px;left:8%;right:8%;height:2px;background:var(--apb-rx-line,#e7e8ec)}
.apb-rx-hiw-cell{position:relative;text-align:center}
.apb-rx-hiw-cell .apb-rx-hiw-n{margin:0 auto 14px}
@media(max-width:760px){.apb-rx-hiw-track{grid-auto-flow:row;grid-auto-columns:auto}.apb-rx-hiw-track::before{display:none}}
/* icon grid */
.apb-rx-hiw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,20px)}
.apb-rx-hiw-card{padding:clamp(20px,3vw,28px);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);transition:transform var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-hiw-card:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2,0 12px 30px -16px rgba(11,13,18,.16))}
.apb-rx-hiw-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:14px}
.apb-rx-hiw-ic svg{width:22px;height:22px}
.apb-rx-hiw-ic img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.apb-rx-hiw-step{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:6px}
/* timeline */
.apb-rx-hiw-timeline{list-style:none;margin:0 auto;padding:0;max-width:640px;display:flex;flex-direction:column;gap:8px}
.apb-rx-hiw-timeline li{display:flex;gap:18px;padding-bottom:22px;position:relative}
.apb-rx-hiw-timeline li:not(:last-child)::before{content:"";position:absolute;left:17px;top:38px;bottom:0;width:2px;background:var(--apb-rx-line,#e7e8ec)}
.apb-rx-hiw-dot{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:15px;background:var(--apb-rx-brand);color:#fff;z-index:1}
/* big number */
.apb-rx-hiw-bigrows{display:flex;flex-direction:column;gap:clamp(20px,3vw,32px);max-width:760px;margin-inline:auto}
.apb-rx-hiw-bigrow{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,32px);align-items:center;padding:clamp(18px,2.5vw,28px) 0;border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-hiw-big{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(40px,6vw,64px);font-weight:800;line-height:1;color:var(--apb-rx-line-accent,#d7dae0)}
/* tabs */
.apb-rx-hiw-tabwrap>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-hiw-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:24px}
.apb-rx-hiw-tabs label{cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line,#e7e8ec);font-size:14px;font-weight:600;color:var(--apb-rx-muted,#6b7280);transition:all var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-hiw-tabs label b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--apb-rx-soft,#f4f5f7);font-size:12px}
.apb-rx-hiw-tp{display:none;max-width:720px;margin-inline:auto;text-align:center}
.apb-rx-hiw-tp .apb-rx-hiw-media{margin-top:18px}
.apb-rx-hiw-tabwrap>input:nth-of-type(1):checked~.apb-rx-hiw-tp:nth-of-type(1),
.apb-rx-hiw-tabwrap>input:nth-of-type(2):checked~.apb-rx-hiw-tp:nth-of-type(2),
.apb-rx-hiw-tabwrap>input:nth-of-type(3):checked~.apb-rx-hiw-tp:nth-of-type(3),
.apb-rx-hiw-tabwrap>input:nth-of-type(4):checked~.apb-rx-hiw-tp:nth-of-type(4),
.apb-rx-hiw-tabwrap>input:nth-of-type(5):checked~.apb-rx-hiw-tp:nth-of-type(5),
.apb-rx-hiw-tabwrap>input:nth-of-type(6):checked~.apb-rx-hiw-tp:nth-of-type(6){display:block}
.apb-rx-hiw-tabwrap>input:nth-of-type(1):checked~.apb-rx-hiw-tabs label:nth-child(1),
.apb-rx-hiw-tabwrap>input:nth-of-type(2):checked~.apb-rx-hiw-tabs label:nth-child(2),
.apb-rx-hiw-tabwrap>input:nth-of-type(3):checked~.apb-rx-hiw-tabs label:nth-child(3),
.apb-rx-hiw-tabwrap>input:nth-of-type(4):checked~.apb-rx-hiw-tabs label:nth-child(4),
.apb-rx-hiw-tabwrap>input:nth-of-type(5):checked~.apb-rx-hiw-tabs label:nth-child(5),
.apb-rx-hiw-tabwrap>input:nth-of-type(6):checked~.apb-rx-hiw-tabs label:nth-child(6){background:var(--apb-rx-brand);color:#fff;border-color:var(--apb-rx-brand)}
.apb-rx-hiw-tabwrap>input:checked~.apb-rx-hiw-tabs label:has(+*) b{background:rgba(255,255,255,.25)}
/* contrast */
.apb-rx-hiw-contrast{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,24px);max-width:820px;margin-inline:auto}
.apb-rx-hiw-ccol{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);padding:clamp(20px,3vw,28px);background:var(--apb-rx-surface,#fff)}
.apb-rx-hiw-ccol.is-win{border-color:var(--apb-rx-brand);box-shadow:0 0 0 1px var(--apb-rx-brand)}
.apb-rx-hiw-ccol h3{margin:0 0 14px}
.apb-rx-hiw-ccol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.apb-rx-hiw-ccol li{padding-left:26px;position:relative;font-size:15px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-hiw-ccol li::before{content:"×";position:absolute;left:0;color:var(--apb-rx-muted,#9aa1ad);font-weight:700}
.apb-rx-hiw-ccol.is-win li{color:var(--apb-rx-ink)}
.apb-rx-hiw-ccol.is-win li::before{content:"✓";color:var(--apb-rx-check,#16a34a)}
@media(max-width:640px){.apb-rx-hiw-contrast{grid-template-columns:1fr}.apb-rx-hiw-row{grid-template-columns:1fr}.apb-rx-hiw--alt .apb-rx-hiw-row:nth-child(even)>*,.apb-rx-hiw--zig .apb-rx-hiw-row:nth-child(even)>*{order:initial}}

/* ---- metrics ---- */
.apb-rx-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(20px,3vw,40px);text-align:center}
.apb-rx-metrics-cell b{display:flex;align-items:baseline;justify-content:center;gap:8px;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(30px,4vw,46px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-metrics-cell span{display:block;margin-top:8px;font-size:14px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-metrics-delta{font-size:14px;font-weight:600;color:#16a34a}
.apb-rx-metrics-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 auto 12px}
.apb-rx-metrics-ic svg{width:20px;height:20px}
.apb-rx-metrics-ic img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.apb-rx-metrics--cards .apb-rx-metrics-cell{padding:clamp(20px,3vw,28px);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff)}
.apb-rx-metrics--strip .apb-rx-metrics-grid{grid-auto-flow:column;grid-auto-columns:1fr;gap:0}
.apb-rx-metrics--strip .apb-rx-metrics-cell{padding:0 clamp(16px,3vw,32px)}
.apb-rx-metrics--strip .apb-rx-metrics-cell+.apb-rx-metrics-cell{border-left:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-metrics--grad{background:linear-gradient(120deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 60%,#000));border-radius:calc(var(--apb-rx-radius,16px)*1.2);padding:clamp(32px,5vw,56px) 24px;color:#fff}
.apb-rx-metrics--grad .apb-rx-sx-head h2,.apb-rx-metrics--grad .apb-rx-metrics-cell b{color:#fff}
.apb-rx-metrics--grad .apb-rx-metrics-cell span,.apb-rx-metrics--grad .apb-rx-sx-head .apb-rx-lead{color:rgba(255,255,255,.8)}
.apb-rx-metrics-splitgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,56px);align-items:center}
.apb-rx-metrics--split .apb-rx-sx-head{text-align:left;margin:0}
.apb-rx-metrics-progs{max-width:640px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}
.apb-rx-metrics-progtop{display:flex;justify-content:space-between;font-size:15px;margin-bottom:8px}
.apb-rx-metrics-progtop b{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-metrics-progbar{height:10px;border-radius:6px;background:var(--apb-rx-soft,#f4f5f7);overflow:hidden}
.apb-rx-metrics-progbar i{display:block;height:100%;border-radius:6px;background:var(--apb-rx-brand);transition:width var(--apb-rx-t-slow) var(--apb-rx-ease)}
@media(max-width:760px){.apb-rx-metrics-splitgrid{grid-template-columns:1fr}.apb-rx-metrics--strip .apb-rx-metrics-grid{grid-auto-flow:row}.apb-rx-metrics--strip .apb-rx-metrics-cell+.apb-rx-metrics-cell{border-left:0}}

/* ---- integrations ---- */
.apb-rx-integ .apb-rx-btn{display:inline-flex;margin:clamp(24px,3vw,36px) auto 0}
.apb-rx-integ-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}
.apb-rx-integ-tile{display:grid;place-items:center;aspect-ratio:3/2;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);text-decoration:none;color:var(--apb-rx-muted,#6b7280);font-weight:600;padding:14px;transition:transform var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-integ-tile:hover{transform:translateY(-3px);border-color:var(--apb-rx-line-accent,var(--apb-rx-brand))}
.apb-rx-integ-tile img{max-width:70%;max-height:44px;object-fit:contain}
.apb-rx-integ--marq{max-width:none;overflow:hidden}
.apb-rx-integ-marq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.apb-rx-integ-marqtrack{display:flex;gap:12px;width:max-content;animation:apb-integ-marq 32s linear infinite}
.apb-rx-integ-marqtrack .apb-rx-integ-tile{width:150px;flex:0 0 auto}
@keyframes apb-integ-marq{to{transform:translateX(-50%)}}
.apb-rx-integ-hub{position:relative;height:clamp(300px,42vw,420px);display:grid;place-items:center}
.apb-rx-integ-core{width:84px;height:84px;border-radius:22px;background:var(--apb-rx-brand);box-shadow:0 0 0 10px color-mix(in srgb,var(--apb-rx-brand) 14%,transparent)}
.apb-rx-integ-hub .apb-rx-integ-tile{position:absolute;width:64px;aspect-ratio:1;border-radius:16px}
.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(2){top:0;left:20%}.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(3){top:6%;right:16%}
.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(4){top:40%;left:2%}.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(5){top:40%;right:2%}
.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(6){bottom:6%;left:16%}.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(7){bottom:0;right:20%}
.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(8){top:22%;left:36%}.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(9){bottom:22%;right:36%}
.apb-rx-integ-hub .apb-rx-integ-tile:nth-child(n+10){display:none}
.apb-rx-integ-fcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:20px}
.apb-rx-integ-fcard{padding:clamp(18px,2.5vw,24px);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff)}
.apb-rx-integ-flogo img{height:32px;object-fit:contain;margin-bottom:12px}
.apb-rx-integ-fcard h3{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-integ-fcard p{margin:0;font-size:14px;color:var(--apb-rx-muted,#6b7280);line-height:1.5}
.apb-rx-integ-catwrap>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-integ-cattabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px}
.apb-rx-integ-cattabs label{cursor:pointer;padding:8px 16px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line,#e7e8ec);font-size:14px;font-weight:600;color:var(--apb-rx-muted,#6b7280);transition:all var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-integ-panel{display:none}
.apb-rx-integ-catwrap>input:nth-of-type(1):checked~.apb-rx-integ-panel:nth-of-type(1),
.apb-rx-integ-catwrap>input:nth-of-type(2):checked~.apb-rx-integ-panel:nth-of-type(2),
.apb-rx-integ-catwrap>input:nth-of-type(3):checked~.apb-rx-integ-panel:nth-of-type(3),
.apb-rx-integ-catwrap>input:nth-of-type(4):checked~.apb-rx-integ-panel:nth-of-type(4),
.apb-rx-integ-catwrap>input:nth-of-type(5):checked~.apb-rx-integ-panel:nth-of-type(5),
.apb-rx-integ-catwrap>input:nth-of-type(6):checked~.apb-rx-integ-panel:nth-of-type(6){display:block}
.apb-rx-integ-catwrap>input:nth-of-type(1):checked~.apb-rx-integ-cattabs label:nth-child(1),
.apb-rx-integ-catwrap>input:nth-of-type(2):checked~.apb-rx-integ-cattabs label:nth-child(2),
.apb-rx-integ-catwrap>input:nth-of-type(3):checked~.apb-rx-integ-cattabs label:nth-child(3),
.apb-rx-integ-catwrap>input:nth-of-type(4):checked~.apb-rx-integ-cattabs label:nth-child(4),
.apb-rx-integ-catwrap>input:nth-of-type(5):checked~.apb-rx-integ-cattabs label:nth-child(5),
.apb-rx-integ-catwrap>input:nth-of-type(6):checked~.apb-rx-integ-cattabs label:nth-child(6){background:var(--apb-rx-brand);color:#fff;border-color:var(--apb-rx-brand)}

/* ---- video_section ---- */
.apb-rx-vsec-poster{position:relative;border-radius:var(--apb-rx-radius,16px);overflow:hidden;cursor:pointer}
.apb-rx-vsec-poster img{width:100%;display:block}
.apb-rx-vsec--hero{position:relative;min-height:clamp(360px,52vh,560px);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0}
.apb-rx-vsec--hero .apb-rx-vsec-poster{position:absolute;inset:0;border-radius:0}
.apb-rx-vsec--hero .apb-rx-vsec-poster img{height:100%;object-fit:cover}
.apb-rx-vsec-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.7),rgba(8,10,15,.35))}
.apb-rx-vsec-herocopy{position:relative;text-align:center;max-width:720px;padding:24px;z-index:1}
.apb-rx-vsec-herocopy .apb-rx-sx-head h2,.apb-rx-vsec-bgcopy .apb-rx-sx-head h2{color:#fff}
.apb-rx-vsec-herocopy .apb-rx-lead,.apb-rx-vsec-bgcopy .apb-rx-lead{color:rgba(255,255,255,.85)}
.apb-rx-vsec--hero .apb-rx-hero-play{position:relative;inset:auto;margin:0 auto 20px}
.apb-rx-vsec-split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,56px);align-items:center;max-width:1140px;margin-inline:auto;padding:clamp(32px,5vw,64px) 24px}
.apb-rx-vsec-copy .apb-rx-sx-head{text-align:left;margin:0 0 16px}
.apb-rx-vsec-who{font-weight:700;color:var(--apb-rx-ink);margin-bottom:16px}
.apb-rx-vsec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(14px,2vw,20px)}
.apb-rx-vsec-thumb{position:relative;aspect-ratio:16/9;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-vsec-thumb img{width:100%;height:100%;object-fit:cover}
.apb-rx-vsec-thumb .apb-rx-hero-play{width:52px;height:52px}
.apb-rx-vsec-thumb .apb-rx-hero-play svg{width:22px;height:22px}
.apb-rx-vsec-dur{position:absolute;right:8px;bottom:8px;background:rgba(8,10,15,.8);color:#fff;font-size:12px;font-weight:600;padding:2px 7px;border-radius:6px}
.apb-rx-vsec-card h3{margin:12px 0 0;font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-vsec--bg{position:relative;min-height:clamp(360px,52vh,560px);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0}
.apb-rx-vsec-bgmedia{position:absolute;inset:0}
.apb-rx-vsec-bgmedia img,.apb-rx-vsec-bgmedia video{width:100%;height:100%;object-fit:cover}
.apb-rx-vsec-bgcopy{position:relative;text-align:center;max-width:720px;padding:24px;z-index:1}
@media(max-width:760px){.apb-rx-vsec-split{grid-template-columns:1fr}.apb-rx-vsec-split .apb-rx-vsec-poster{order:-1}}

@media(prefers-reduced-motion:reduce){
  .apb-rx-integ-marqtrack{animation:none}
  .apb-rx-vsec-bgmedia video{display:none}
  .apb-rx-hiw-card:hover,.apb-rx-integ-tile:hover{transform:none}
}
/* ==== assets/pages/component-features2.css ==== */
/* feature_spotlight / feature_bento / feature_checklist. Tokens only, no !important (bar reduced-motion).
 * Rendered by trait-apb-component-render-features2.php. */

.apb-rx-f2-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.6vw,42px);font-weight:800;letter-spacing:-.025em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-f2-head .apb-rx-lead{margin:10px 0 0;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:16px}
.apb-rx-f2-head--c{text-align:center;max-width:600px;margin:0 auto clamp(24px,3.5vw,40px)}

/* feature_spotlight */
.apb-rx-fsp{max-width:1100px;margin-inline:auto}
.apb-rx-fsp-head{max-width:640px;margin-bottom:clamp(24px,3.5vw,40px)}
.apb-rx-fsp-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.6vw,42px);font-weight:800;letter-spacing:-.025em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-fsp-main{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(28px,4vw,56px);align-items:center}
.apb-rx-fsp-media{position:relative;border-radius:calc(var(--apb-rx-radius) * 1.2);overflow:hidden;border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-2,0 30px 60px -30px rgba(11,13,18,.28))}
.apb-rx-fsp-media img{width:100%;display:block}
.apb-rx-fsp-badge{position:absolute;left:14px;top:14px;font-size:12px;font-weight:600;padding:5px 11px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-fsp-copy h3{margin:0 0 10px;font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-fsp-lead{margin:0 0 22px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:16px;line-height:1.6}
.apb-rx-fsp-list{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:16px}
.apb-rx-fsp-list li{display:flex;gap:13px;align-items:flex-start}
.apb-rx-fsp-ck{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-fsp-ck svg{width:15px;height:15px}
.apb-rx-fsp-list b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-fsp-list div>span{display:block;margin-top:2px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px}

/* feature_bento */
.apb-rx-fbn{max-width:1080px;margin-inline:auto}
.apb-rx-fbn-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(12px,1.6vw,18px)}
.apb-rx-fbn-tile{position:relative;padding:clamp(20px,2.6vw,28px);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface);transition:transform var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fbn-tile:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2,0 16px 36px -20px rgba(11,13,18,.2))}
.apb-rx-fbn-tile--lg{grid-column:span 1;grid-row:span 2}
.apb-rx-fbn-tile--wide{grid-column:span 2}
.apb-rx-fbn-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:16px}
.apb-rx-fbn-ic svg{width:22px;height:22px}
.apb-rx-fbn-ic img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.apb-rx-fbn-tile h3{margin:0 0 8px;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-fbn-tile p{margin:0;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px;line-height:1.55}
.apb-rx-fbn-tile--lg h3{font-size:22px}
.apb-rx-fbn-tile--brand{background:linear-gradient(155deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 60%,#000));border-color:transparent}
.apb-rx-fbn-tile--brand h3{color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-fbn-tile--brand p{color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 82%,transparent)}
.apb-rx-fbn-tile--brand .apb-rx-fbn-ic{background:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 16%,transparent);color:var(--apb-rx-accent-contrast,#fff)}

/* feature_checklist */
.apb-rx-flc{max-width:840px;margin-inline:auto}
.apb-rx-flc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 32px}
.apb-rx-flc-list li{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:500;color:var(--apb-rx-ink);padding:6px 0;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-flc-ck{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-brand) 16%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-flc-ck svg{width:14px;height:14px}

@media(max-width:760px){.apb-rx-fsp-main{grid-template-columns:1fr}}
@media(max-width:720px){.apb-rx-fbn-grid{grid-template-columns:1fr 1fr}.apb-rx-fbn-tile--lg{grid-row:span 1}}
@media(max-width:560px){.apb-rx-flc-list{grid-template-columns:1fr}}
@media(max-width:460px){.apb-rx-fbn-grid{grid-template-columns:1fr}.apb-rx-fbn-tile--wide,.apb-rx-fbn-tile--lg{grid-column:span 1}}
@media(prefers-reduced-motion:reduce){.apb-rx-fbn-tile:hover{transform:none}}
/* ==== assets/pages/component-extras2.css ==== */
/* logos_marquee / faq_popular_chips / cookie_consent. Tokens only, no !important
 * (bar reduced-motion). Rendered by trait-apb-component-render-extras2.php. */

/* logos_marquee */
.apb-rx-lmq{max-width:1080px;margin-inline:auto;text-align:center}
.apb-rx-lmq-label{margin:0 0 22px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-lmq-viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.apb-rx-lmq-track{display:flex;gap:clamp(40px,6vw,80px);width:max-content;align-items:center;animation:apb-lmq 34s linear infinite}
.apb-rx-lmq-viewport:hover .apb-rx-lmq-track{animation-play-state:paused}
.apb-rx-lmq-logo{flex:0 0 auto;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(20px,2.4vw,28px);font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-muted,var(--apb-rx-dim));opacity:.75;transition:opacity var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-lmq-logo:hover{opacity:1;color:var(--apb-rx-ink)}
.apb-rx-lmq-logo--img{display:inline-flex;align-items:center}
.apb-rx-lmq-logo--img img{height:clamp(26px,3vw,38px);width:auto;object-fit:contain}
@keyframes apb-lmq{to{transform:translateX(-50%)}}

/* faq_popular_chips */
.apb-rx-fqc{max-width:760px;margin-inline:auto}
.apb-rx-fqc-head{text-align:center;margin-bottom:clamp(22px,3vw,32px)}
.apb-rx-fqc-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,38px);font-weight:800;letter-spacing:-.02em;margin:0 0 18px;color:var(--apb-rx-ink)}
.apb-rx-fqc-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.apb-rx-fqc-chip{display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line);background:var(--apb-rx-surface);font-size:14px;font-weight:600;color:var(--apb-rx-ink);text-decoration:none;transition:border-color var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fqc-chip:hover{border-color:var(--apb-rx-brand);color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:translateY(-2px)}
.apb-rx-fqc-list{display:flex;flex-direction:column;gap:10px}
.apb-rx-fqc-item{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);overflow:hidden;transition:border-color var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fqc-item:target{border-color:var(--apb-rx-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 14%,transparent)}
.apb-rx-fqc-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;font-size:16px;font-weight:600;color:var(--apb-rx-ink);cursor:pointer;list-style:none}
.apb-rx-fqc-item summary::-webkit-details-marker{display:none}
.apb-rx-fqc-caret{flex:0 0 auto;width:11px;height:11px;border-right:2px solid var(--apb-rx-muted,var(--apb-rx-dim));border-bottom:2px solid var(--apb-rx-muted,var(--apb-rx-dim));transform:rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fqc-item[open] .apb-rx-fqc-caret{transform:rotate(-135deg)}
.apb-rx-fqc-body{padding:0 20px 18px}
.apb-rx-fqc-body p{margin:0;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:15px;line-height:1.65}

/* cookie_consent */
.apb-rx-cck{position:sticky;bottom:16px;z-index:30;padding-top:0;padding-bottom:0}
.apb-rx-cck-toggle{position:absolute;opacity:0;pointer-events:none}
.apb-rx-cck-bar{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px 20px;border-radius:calc(var(--apb-rx-radius) * .9);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-2,0 18px 44px -22px rgba(11,13,18,.28));transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease),opacity var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-cck-toggle:checked ~ .apb-rx-cck-bar{transform:translateY(160%);opacity:0;pointer-events:none}
.apb-rx-cck-msg{display:flex;gap:14px;align-items:flex-start;min-width:240px;flex:1 1 320px}
.apb-rx-cck-ic{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cck-ic svg{width:22px;height:22px}
.apb-rx-cck-msg b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin-bottom:3px}
.apb-rx-cck-msg p{margin:0;font-size:13px;line-height:1.55;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-cck-msg a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:600;text-decoration:none}
.apb-rx-cck-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.apb-rx-cck-btn{display:inline-flex;align-items:center;padding:9px 16px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
.apb-rx-cck-btn--ghost{border:1px solid var(--apb-rx-line);color:var(--apb-rx-ink);background:var(--apb-rx-surface);transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-cck-btn--ghost:hover{background:var(--apb-rx-soft)}
.apb-rx-cck-btn--accept{padding:10px 20px}

@media(max-width:560px){.apb-rx-cck-act{width:100%}.apb-rx-cck-btn{flex:1;justify-content:center}}

/* testimonials:logos_quotes variant (styled here to avoid growing the oversized component-sections.css) */
.apb-rx-tlq{max-width:900px;margin-inline:auto;display:flex;flex-direction:column}
.apb-rx-tlq-row{display:grid;grid-template-columns:200px 1fr;gap:clamp(20px,4vw,52px);align-items:center;padding:clamp(22px,3vw,34px) 0}
.apb-rx-tlq-row+.apb-rx-tlq-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-tlq-row:nth-child(even)>:first-child{order:2}
.apb-rx-tlq-row:nth-child(even)>:last-child{order:1}
.apb-rx-tlq-logo{display:flex;align-items:center;justify-content:center}
.apb-rx-tlq-logo img{max-width:100%;max-height:48px;object-fit:contain;opacity:.85}
.apb-rx-tlq-logo--text{font-family:var(--apb-rx-font-display,inherit);font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-tlq-q{margin:0}
.apb-rx-tlq-q blockquote{margin:0 0 12px;font-size:clamp(17px,2vw,21px);line-height:1.5;color:var(--apb-rx-ink);font-weight:500}
@media(max-width:640px){.apb-rx-tlq-row{grid-template-columns:1fr;gap:14px;text-align:center}.apb-rx-tlq-row:nth-child(even)>*{order:initial}.apb-rx-tlq-logo{justify-content:flex-start}}

@media(prefers-reduced-motion:reduce){
  .apb-rx-lmq-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}
  .apb-rx-lmq-logo[aria-hidden="true"]{display:none}
  .apb-rx-fqc-chip:hover{transform:none}
  .apb-rx-cck-toggle:checked ~ .apb-rx-cck-bar{transition:none}
}
/* ==== assets/pages/component-states.css ==== */
/**
 * Utility & system-state recipes: 404 / error / empty / offline / maintenance / coming-soon /
 * under-construction / waitlist / success-receipt / loading-skeleton.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-states.php. No literals for brand/glow/tint.
 */

/* ---------- shared state buttons ---------- */
.apb-rx-stbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;padding:12px 22px;border-radius:var(--apb-rx-radius-pill,999px);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-stbtn svg{flex:0 0 auto}
.apb-rx-stbtn--primary{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-stbtn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px var(--apb-rx-glow)}
.apb-rx-stbtn--ghost{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-stbtn--ghost:hover{background:var(--apb-rx-soft)}
@media(prefers-reduced-motion:reduce){.apb-rx-stbtn{transition:none}}

/* ---------- 404 ---------- */
.apb-rx-st{position:relative;overflow:hidden;text-align:center;padding:clamp(64px,10vw,120px) 24px;isolation:isolate}
.apb-rx-st-inner{max-width:560px;margin:0 auto;position:relative;z-index:2}
.apb-rx-st-orbit{position:absolute;inset:0;z-index:0;pointer-events:none;display:grid;place-items:center}
.apb-rx-st-orbit::before,.apb-rx-st-orbit::after{content:"";position:absolute;border-radius:50%;border:1px solid var(--apb-rx-line);opacity:.6}
.apb-rx-st-orbit::before{width:min(520px,86vw);height:min(520px,86vw)}
.apb-rx-st-orbit::after{width:min(340px,58vw);height:min(340px,58vw)}
.apb-rx-st-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 4px 14px -2px var(--apb-rx-glow);top:calc(50% - min(260px,43vw));left:50%;transform:translateX(-50%)}
.apb-rx-st-num{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-weight:800;letter-spacing:-.04em;line-height:.9;font-size:clamp(96px,20vw,190px);color:var(--apb-rx-ink);margin:0}
.apb-rx-st :is(h1,h2){font-size:clamp(22px,3.4vw,30px);font-weight:750;letter-spacing:-.02em;margin:18px 0 10px;color:var(--apb-rx-ink)}
.apb-rx-st p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 26px;max-width:44ch}
.apb-rx-st-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------- error ---------- */
.apb-rx-est{text-align:center;padding:clamp(56px,9vw,104px) 24px}
.apb-rx-est-inner{max-width:520px;margin:0 auto}
.apb-rx-est-mark{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;margin:0 auto 26px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);box-shadow:0 10px 30px -14px var(--apb-rx-glow)}
.apb-rx-est-mark svg{width:38px;height:38px}
.apb-rx-est h2{font-size:clamp(22px,3.2vw,28px);font-weight:750;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-est p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 14px;max-width:46ch}
.apb-rx-est-code{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:8px;padding:4px 10px;margin-bottom:24px}
.apb-rx-est-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ---------- empty ---------- */
.apb-rx-emp{text-align:center;padding:clamp(52px,8vw,92px) 24px}
.apb-rx-emp-inner{max-width:480px;margin:0 auto}
.apb-rx-emp-art{width:132px;height:100px;margin:0 auto 24px;position:relative}
.apb-rx-emp-art .box{position:absolute;inset:0;border-radius:18px;border:2px dashed var(--apb-rx-line);background:var(--apb-rx-soft)}
.apb-rx-emp-art .card{position:absolute;left:18px;right:18px;height:16px;border-radius:6px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-emp-art .c1{top:24px}.apb-rx-emp-art .c2{top:48px;left:26px;right:26px;opacity:.7}
.apb-rx-emp-art .plus{position:absolute;right:-8px;bottom:-8px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 8px 18px -6px var(--apb-rx-glow)}
.apb-rx-emp h2{font-size:clamp(20px,3vw,26px);font-weight:750;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-emp p{font-size:15.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 24px;max-width:40ch}
.apb-rx-emp-hint{margin-top:16px;font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-emp-hint a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;font-weight:600}

/* ---------- offline ---------- */
.apb-rx-off{text-align:center;padding:clamp(56px,9vw,100px) 24px}
.apb-rx-off-inner{max-width:480px;margin:0 auto}
.apb-rx-off-mark{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;margin:0 auto 26px;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-off-mark svg{width:40px;height:40px}
.apb-rx-off h2{font-size:clamp(21px,3vw,27px);font-weight:750;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-off p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 24px;max-width:42ch}
.apb-rx-off .apb-rx-stbtn--ghost svg{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

/* ---------- maintenance ---------- */
.apb-rx-mnt{text-align:center;padding:clamp(56px,9vw,104px) 24px;position:relative;overflow:hidden}
.apb-rx-mnt-inner{max-width:520px;margin:0 auto;position:relative;z-index:2}
.apb-rx-mnt-mark{width:88px;height:88px;border-radius:28px;display:grid;place-items:center;margin:0 auto 26px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);box-shadow:0 12px 34px -16px var(--apb-rx-glow)}
.apb-rx-mnt-mark svg{width:42px;height:42px;animation:apb-rx-mnt-spin 8s linear infinite}
@keyframes apb-rx-mnt-spin{to{transform:rotate(360deg)}}
.apb-rx-mnt h2{font-size:clamp(22px,3.2vw,29px);font-weight:750;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-mnt p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 22px;max-width:46ch}
.apb-rx-mnt-win{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px;margin-bottom:26px}
.apb-rx-mnt-win svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(prefers-reduced-motion:reduce){.apb-rx-mnt-mark svg{animation:none}}

/* ---------- coming soon ---------- */
.apb-rx-cs{position:relative;overflow:hidden;text-align:center;padding:clamp(72px,12vw,140px) 24px;isolation:isolate}
.apb-rx-cs-orb{position:absolute;z-index:0;pointer-events:none;filter:blur(60px);opacity:.5;border-radius:50%}
.apb-rx-cs-orb.a{width:340px;height:340px;background:var(--apb-rx-brand);top:-120px;left:-80px}
.apb-rx-cs-orb.b{width:300px;height:300px;background:var(--apb-rx-brand2,var(--apb-rx-brand));bottom:-120px;right:-70px}
.apb-rx-cs-inner{max-width:560px;margin:0 auto;position:relative;z-index:2}
.apb-rx-cs-chip{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 15px;margin-bottom:24px}
.apb-rx-cs-chip .pulse{width:7px;height:7px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-cs h2{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(34px,6vw,60px);font-weight:800;letter-spacing:-.035em;line-height:1.02;margin:0 0 16px;color:var(--apb-rx-ink)}
.apb-rx-cs p{font-size:17px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 30px;max-width:44ch}
.apb-rx-cs-form{display:flex;gap:8px;max-width:420px;margin:0 auto 16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 6px 6px 8px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-cs-form input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--apb-rx-ink);padding:0 12px}
.apb-rx-cs-form input::placeholder{color:var(--apb-rx-muted)}
.apb-rx-cs-form button{flex:0 0 auto;border:0;cursor:pointer;font-weight:650;font-size:14.5px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:11px 20px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cs-form button:hover{transform:translateY(-1px)}
.apb-rx-cs-form button[disabled]{opacity:.7;cursor:default}
.apb-rx-cs-form button[disabled]:hover{transform:none}
.apb-rx-cs-note{font-size:13px;color:var(--apb-rx-muted)}
@media(prefers-reduced-motion:reduce){.apb-rx-cs-form button{transition:none}}

/* ---------- under construction ---------- */
.apb-rx-uc{text-align:center;padding:clamp(56px,9vw,104px) 24px}
.apb-rx-uc-inner{max-width:500px;margin:0 auto}
.apb-rx-uc-mark{width:88px;height:88px;border-radius:26px;display:grid;place-items:center;margin:0 auto 26px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);box-shadow:0 12px 32px -16px var(--apb-rx-glow)}
.apb-rx-uc-mark svg{width:42px;height:42px}
.apb-rx-uc h2{font-size:clamp(22px,3.2vw,29px);font-weight:750;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-uc p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 26px;max-width:44ch}
.apb-rx-uc-prog{max-width:340px;margin:0 auto 12px}
.apb-rx-uc-track{height:8px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-uc-fill{height:100%;border-radius:999px;background:var(--apb-rx-brand)}
.apb-rx-uc-plabel{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);margin-top:8px}
.apb-rx-uc .apb-rx-stbtn{margin-top:22px}

/* ---------- waitlist ---------- */
.apb-rx-wl{text-align:center;padding:clamp(52px,8vw,96px) 24px}
.apb-rx-wl-inner{max-width:500px;margin:0 auto}
.apb-rx-wl-mark{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 22px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 14px 34px -12px var(--apb-rx-glow)}
.apb-rx-wl-mark svg{width:36px;height:36px}
.apb-rx-wl h2{font-size:clamp(22px,3.2vw,28px);font-weight:750;letter-spacing:-.02em;margin:0 0 8px;color:var(--apb-rx-ink)}
.apb-rx-wl p{font-size:15.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 24px;max-width:44ch}
.apb-rx-wl-pos{display:flex;align-items:center;justify-content:center;gap:18px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px 24px;max-width:360px;margin:0 auto 22px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-wl-num{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--apb-rx-ink)}
.apb-rx-wl-num small{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted);margin-top:6px}
.apb-rx-wl-div{width:1px;align-self:stretch;background:var(--apb-rx-line)}
.apb-rx-wl-meta{text-align:left;font-size:13px;color:var(--apb-rx-muted);line-height:1.5;min-width:0;overflow-wrap:anywhere}
.apb-rx-wl-meta b{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-wl-share{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
@media(max-width:440px){.apb-rx-wl-pos{flex-direction:column;gap:14px}.apb-rx-wl-div{width:auto;height:1px;align-self:stretch}.apb-rx-wl-meta{text-align:center}}

/* ---------- success receipt ---------- */
.apb-rx-rcpt{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-rcpt-inner{max-width:460px;margin:0 auto;text-align:center}
.apb-rx-rcpt-mark{width:80px;height:80px;border-radius:50%;display:grid;place-items:center;margin:0 auto 22px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 14px 36px -12px var(--apb-rx-glow)}
.apb-rx-rcpt-mark svg{width:38px;height:38px}
.apb-rx-rcpt-mark svg path{stroke-dasharray:26;stroke-dashoffset:26;animation:apb-rx-rcpt-draw .6s var(--apb-rx-ease,cubic-bezier(.22,1,.36,1)) .15s forwards}
@keyframes apb-rx-rcpt-draw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.apb-rx-rcpt-mark svg path{animation:none;stroke-dashoffset:0}}
.apb-rx-rcpt h2{font-size:clamp(22px,3.2vw,28px);font-weight:750;letter-spacing:-.02em;margin:0 0 8px;color:var(--apb-rx-ink)}
.apb-rx-rcpt-sub{font-size:15px;color:var(--apb-rx-muted);margin:0 0 26px}
.apb-rx-rcpt-card{text-align:left;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px 22px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-rcpt-row{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:14.5px;padding:9px 0;color:var(--apb-rx-ink)}
.apb-rx-rcpt-row span{min-width:0;overflow-wrap:anywhere}
.apb-rx-rcpt-row span:first-child{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-rcpt-row span:last-child{text-align:right}
.apb-rx-rcpt-row+.apb-rx-rcpt-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-rcpt-total{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding-top:14px;border-top:2px solid var(--apb-rx-line);font-weight:750;font-size:16px;color:var(--apb-rx-ink)}
.apb-rx-rcpt-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}

/* ---------- loading skeleton ---------- */
.apb-rx-sk{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-sk-inner{max-width:920px;margin:0 auto}
.apb-rx-sk-head{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.apb-rx-sk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.apb-rx-sk-card{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:16px;background:var(--apb-rx-surface,#fff)}
.apb-rx-sk-b{position:relative;overflow:hidden;background:var(--apb-rx-soft);border-radius:8px}
.apb-rx-sk-b::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:color-mix(in srgb,var(--apb-rx-ink) 5%,transparent);animation:apb-rx-sk-sweep 1.4s var(--apb-rx-ease,cubic-bezier(.22,1,.36,1)) infinite}
@keyframes apb-rx-sk-sweep{to{transform:translateX(100%)}}
.apb-rx-sk-avatar{width:44px;height:44px;border-radius:50%;flex:0 0 auto}
.apb-rx-sk-thumb{height:130px;border-radius:12px;margin-bottom:14px;display:block}
.apb-rx-sk-line{height:12px;border-radius:6px;margin:9px 0;display:block}
.apb-rx-sk-line.w40{width:40%}.apb-rx-sk-line.w60{width:60%}.apb-rx-sk-line.w75{width:75%}.apb-rx-sk-line.w90{width:90%}
.apb-rx-sk-pill{height:26px;width:88px;border-radius:999px;margin-top:14px;display:block}
@media(max-width:720px){.apb-rx-sk-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-sk-b::after{animation:none}}
/* ==== assets/pages/component-editorial.css ==== */
/**
 * Editorial / docs-style recipes: pull_quote / callout_set / definition_list / footnotes_references /
 * content_comparison. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Pure static/CSS,
 * no @keyframes needed. Rendered by trait-apb-component-render-editorial.php. No literals for brand/tint.
 */

/* ---------- pull quote ---------- */
.apb-rx-pq{padding:clamp(40px,7vw,80px) 24px}
.apb-rx-pq-inner{max-width:680px;margin:0 auto}
.apb-rx-pq-lead{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-pq-block{position:relative;padding:6px 0 6px 28px;border-left:3px solid var(--apb-rx-brand);margin:6px 0}
.apb-rx-pq-mark{position:absolute;left:20px;top:-14px;font-family:Georgia,serif;font-size:48px;line-height:1;color:color-mix(in srgb,var(--apb-rx-brand) 30%,transparent);pointer-events:none}
.apb-rx-pq-q{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(22px,3.4vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.35;color:var(--apb-rx-ink);margin:0 0 14px;position:relative}
.apb-rx-pq-by{font-size:14px;color:var(--apb-rx-muted);margin:0}
.apb-rx-pq-by b{color:var(--apb-rx-ink);font-weight:650}

/* ---------- callout / admonition set ---------- */
.apb-rx-co{padding:clamp(36px,6vw,64px) 24px}
.apb-rx-co-inner{max-width:660px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.apb-rx-co-box{display:flex;gap:14px;padding:16px 18px;border-radius:var(--apb-rx-radius,12px);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-co-ic{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--apb-rx-muted);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-co-body{min-width:0}
.apb-rx-co-title{font-size:14px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 3px}
.apb-rx-co-text{font-size:14px;line-height:1.6;color:var(--apb-rx-muted);margin:0;overflow-wrap:anywhere}
.apb-rx-co-text code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:5px;padding:1px 5px;color:var(--apb-rx-ink)}
.apb-rx-co-box.tip{background:color-mix(in srgb,var(--apb-rx-brand) 7%,var(--apb-rx-surface,#fff));border-color:color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-co-box.tip .apb-rx-co-ic{color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:color-mix(in srgb,var(--apb-rx-brand) 26%,transparent)}
.apb-rx-co-box.warning .apb-rx-co-ic{color:var(--apb-rx-ink)}

/* ---------- definition list ---------- */
.apb-rx-df{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-df-inner{max-width:660px;margin:0 auto}
.apb-rx-df-inner h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 20px}
.apb-rx-df-list{margin:0;display:flex;flex-direction:column}
.apb-rx-df-row{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:16px 0;border-top:1px solid var(--apb-rx-line)}
.apb-rx-df-row:first-child{border-top:0}
.apb-rx-df-term{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink);display:flex;align-items:baseline;gap:8px}
.apb-rx-df-term::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--apb-rx-brand);flex:0 0 auto;transform:translateY(-2px)}
.apb-rx-df-def{font-size:14.5px;line-height:1.65;color:var(--apb-rx-muted);margin:0;overflow-wrap:anywhere}
.apb-rx-df-def code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;background:var(--apb-rx-soft);border-radius:5px;padding:1px 5px;color:var(--apb-rx-ink)}
@media(max-width:560px){.apb-rx-df-row{grid-template-columns:1fr;gap:5px}}

/* ---------- footnotes / references ---------- */
.apb-rx-fnt{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-fnt-inner{max-width:660px;margin:0 auto}
.apb-rx-fnt-inner h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 14px}
.apb-rx-fnt-prose p{font-size:16px;line-height:1.75;color:var(--apb-rx-muted);margin:0 0 14px;overflow-wrap:anywhere}
.apb-rx-fnt-ref{font-size:11px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;vertical-align:super;line-height:0;padding:0 1px;border-radius:3px}
.apb-rx-fnt-ref:hover{background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent)}
.apb-rx-fnt-notes{margin-top:28px;padding-top:20px;border-top:1px solid var(--apb-rx-line);list-style:none;padding-left:0;counter-reset:fn}
.apb-rx-fnt-notes li{position:relative;padding-left:30px;font-size:13.5px;line-height:1.6;color:var(--apb-rx-muted);margin-bottom:12px;overflow-wrap:anywhere}
.apb-rx-fnt-notes li::before{counter-increment:fn;content:counter(fn);position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-fnt-notes li a{color:var(--apb-rx-ink);text-decoration:underline;text-underline-offset:2px}

/* ---------- content comparison (do / don't) ---------- */
.apb-rx-dd{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-dd-inner{max-width:760px;margin:0 auto}
.apb-rx-dd-head{text-align:center;max-width:520px;margin:0 auto 26px}
.apb-rx-dd-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-dd-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-dd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.apb-rx-dd-col{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-dd-ch{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;margin:0 0 14px}
.apb-rx-dd-col.do .apb-rx-dd-ch{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-dd-col.dont .apb-rx-dd-ch{color:var(--apb-rx-muted)}
.apb-rx-dd-ch .b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.apb-rx-dd-col.do .apb-rx-dd-ch .b{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
.apb-rx-dd-col.dont .apb-rx-dd-ch .b{color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-dd-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-dd-list li{font-size:14px;line-height:1.55;color:var(--apb-rx-ink);padding-left:22px;position:relative;overflow-wrap:anywhere}
.apb-rx-dd-list li::before{content:"";position:absolute;left:0;top:8px;width:7px;height:7px;border-radius:50%}
.apb-rx-dd-col.do .apb-rx-dd-list li::before{background:var(--apb-rx-brand)}
.apb-rx-dd-col.dont .apb-rx-dd-list li{color:var(--apb-rx-muted)}
.apb-rx-dd-col.dont .apb-rx-dd-list li::before{background:color-mix(in srgb,var(--apb-rx-ink) 24%,transparent)}
@media(max-width:600px){.apb-rx-dd-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-trust.css ==== */
/**
 * Trust & legal recipes: privacy_center / terms_summary / certifications_wall / sla_commitment /
 * accessibility_statement / money_back_variety / data_residency.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Static (no JS), no keyframes.
 * Rendered by trait-apb-component-render-trust.php.
 */

/* ---------- privacy center ---------- */
.apb-rx-pc{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-pc-inner{max-width:820px;margin:0 auto}
.apb-rx-pc-head{max-width:560px;margin:0 0 26px}
.apb-rx-pc-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-pc-head p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-pc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apb-rx-pc-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;text-decoration:none;display:block;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pc-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-line))}
.apb-rx-pc-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-pc-t{font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 5px}
.apb-rx-pc-d{font-size:13px;line-height:1.55;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-pc-go{font-size:13.5px;font-weight:650;color:var(--apb-rx-accent-text,var(--apb-rx-brand));display:inline-flex;align-items:center;gap:5px}
@media(max-width:640px){.apb-rx-pc-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-pc-card{transition:none}}

/* ---------- terms summary ---------- */
.apb-rx-ts{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ts-inner{max-width:720px;margin:0 auto}
.apb-rx-ts-head{margin:0 0 24px}
.apb-rx-ts-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-ts-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-ts-row{display:grid;grid-template-columns:26px 1fr;gap:14px;padding:18px 0;border-top:1px solid var(--apb-rx-line)}
.apb-rx-ts-row:first-of-type{border-top:0}
.apb-rx-ts-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-ts-plain{font-size:15.5px;font-weight:650;color:var(--apb-rx-ink);margin:0 0 5px}
.apb-rx-ts-legal{font-size:13px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-ts-legal b{font-weight:600;color:color-mix(in srgb,var(--apb-rx-ink) 60%,transparent)}

/* ---------- certifications wall ---------- */
.apb-rx-cw{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-cw-inner{max-width:820px;margin:0 auto}
.apb-rx-cw-head{text-align:center;max-width:520px;margin:0 auto 28px}
.apb-rx-cw-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-cw-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-cw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.apb-rx-cw-badge{position:relative;text-align:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px 16px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-cw-shield{width:48px;height:48px;margin:0 auto 12px;border-radius:14px;display:grid;place-items:center;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-cw-nm{font-size:14px;font-weight:750;color:var(--apb-rx-ink)}
.apb-rx-cw-desc{font-size:11.5px;color:var(--apb-rx-muted);margin-top:3px;line-height:1.4}
.apb-rx-cw-ok{position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
@media(max-width:640px){.apb-rx-cw-grid{grid-template-columns:1fr 1fr}}

/* ---------- SLA commitment ---------- */
.apb-rx-sla{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-sla-inner{max-width:760px;margin:0 auto}
.apb-rx-sla-hero{text-align:center;margin-bottom:28px}
.apb-rx-sla-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-sla-big{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(48px,9vw,72px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-sla-sub{font-size:15px;color:var(--apb-rx-muted);margin:10px 0 0}
.apb-rx-sla-table{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-sla-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px}
.apb-rx-sla-row+.apb-rx-sla-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-sla-row .l{font-size:14.5px;color:var(--apb-rx-ink)}
.apb-rx-sla-row .l small{display:block;font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-sla-row .v{font-size:15px;font-weight:750;color:var(--apb-rx-ink);white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---------- accessibility statement ---------- */
.apb-rx-a11{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-a11-inner{max-width:680px;margin:0 auto}
.apb-rx-a11-badge{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px;margin-bottom:18px}
.apb-rx-a11 h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-a11-lead{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 24px}
.apb-rx-a11-list{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.apb-rx-a11-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:13px 15px}
.apb-rx-a11-list .t{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
.apb-rx-a11-foot{font-size:14px;line-height:1.6;color:var(--apb-rx-muted);padding-top:20px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-a11-foot a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:600;text-decoration:none}
@media(max-width:520px){.apb-rx-a11-list{grid-template-columns:1fr}}

/* ---------- money back guarantee ---------- */
.apb-rx-mb{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-mb-inner{max-width:720px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,40px);align-items:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);padding:clamp(26px,4vw,40px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-mb-seal{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));border:2px dashed color-mix(in srgb,var(--apb-rx-brand) 40%,transparent);background:color-mix(in srgb,var(--apb-rx-brand) 7%,var(--apb-rx-surface,#fff))}
.apb-rx-mb-seal .n{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1}
.apb-rx-mb-seal .d{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
.apb-rx-mb h3{font-size:clamp(20px,3vw,26px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-mb-lead{font-size:15px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 16px}
.apb-rx-mb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.apb-rx-mb-list li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-mb-list .t{width:20px;height:20px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
@media(max-width:560px){.apb-rx-mb-inner{grid-template-columns:1fr;text-align:center;justify-items:center}.apb-rx-mb-list li{text-align:left}}

/* ---------- data residency ---------- */
.apb-rx-dr{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-dr-inner{max-width:820px;margin:0 auto}
.apb-rx-dr-head{max-width:560px;margin:0 0 26px}
.apb-rx-dr-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-dr-head p{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-dr-regions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.apb-rx-dr-pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:650;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px}
.apb-rx-dr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apb-rx-dr-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-dr-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;margin-bottom:12px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-dr-t{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 5px}
.apb-rx-dr-d{font-size:13px;line-height:1.55;color:var(--apb-rx-muted);margin:0}
@media(max-width:640px){.apb-rx-dr-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-socialproof.css ==== */
/**
 * Social-proof recipes: review_platform_badges / review_summary_bars / case_study_metrics /
 * wall_of_love / press_logo_ticker.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallback inline.
 * Rendered by trait-apb-component-render-socialproof.php. No literals for brand/glow/tint.
 */

/* ---------- review platform badges ---------- */
.apb-rx-rpb{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-rpb-inner{max-width:820px;margin:0 auto;text-align:center}
.apb-rx-rpb-lead{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-rpb-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.apb-rx-rpb-card{flex:1 1 180px;max-width:220px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px 18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-rpb-plat{font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--apb-rx-muted);margin:0 0 12px;display:flex;align-items:center;justify-content:center;gap:7px}
.apb-rx-rpb-plat svg{color:var(--apb-rx-ink);flex:0 0 auto}
.apb-rx-rpb-score{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:32px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);line-height:1}
.apb-rx-rpb-stars{display:inline-flex;gap:1px;margin:8px 0 6px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rpb-n{font-size:12px;color:var(--apb-rx-muted)}

/* ---------- review summary bars ---------- */
.apb-rx-rsb{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-rsb-inner{max-width:720px;margin:0 auto;display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(24px,4vw,48px);align-items:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:clamp(24px,3vw,34px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-rsb-score{text-align:center;border-right:1px solid var(--apb-rx-line);padding-right:clamp(20px,3vw,40px)}
.apb-rx-rsb-num{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:56px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--apb-rx-ink)}
.apb-rx-rsb-stars{display:inline-flex;gap:2px;margin:10px 0 6px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-rsb-count{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-rsb-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.apb-rx-rsb-row:last-child{margin-bottom:0}
.apb-rx-rsb-star{font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);width:34px;display:inline-flex;align-items:center;gap:3px}
.apb-rx-rsb-track{flex:1;height:9px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-rsb-fill{height:100%;border-radius:999px;background:var(--apb-rx-brand)}
.apb-rx-rsb-pct{font-size:12px;color:var(--apb-rx-muted);width:36px;text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:560px){.apb-rx-rsb-inner{grid-template-columns:1fr}.apb-rx-rsb-score{border-right:0;border-bottom:1px solid var(--apb-rx-line);padding-right:0;padding-bottom:20px}}

/* ---------- case study metrics ---------- */
.apb-rx-csm{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-csm-inner{max-width:840px;margin:0 auto}
.apb-rx-csm-head{max-width:560px;margin:0 0 30px}
.apb-rx-csm-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 12px}
.apb-rx-csm-quote{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(20px,3vw,27px);font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--apb-rx-ink);margin:0 0 14px}
.apb-rx-csm-by{font-size:14px;color:var(--apb-rx-muted)}
.apb-rx-csm-by b{color:var(--apb-rx-ink);font-weight:650}
.apb-rx-csm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--apb-rx-line);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-csm-cell{background:var(--apb-rx-surface,#fff);padding:26px 22px}
.apb-rx-csm-v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(30px,5vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--apb-rx-ink)}
.apb-rx-csm-cell.accent .apb-rx-csm-v{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-csm-l{font-size:13.5px;color:var(--apb-rx-muted);margin-top:10px;line-height:1.5}
@media(max-width:640px){.apb-rx-csm-grid{grid-template-columns:1fr}}

/* ---------- wall of love ---------- */
.apb-rx-wol{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-wol-inner{max-width:900px;margin:0 auto}
.apb-rx-wol-head{text-align:center;max-width:520px;margin:0 auto 30px}
.apb-rx-wol-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-wol-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-wol-grid{columns:3;column-gap:16px}
.apb-rx-wol-card{break-inside:avoid;margin-bottom:16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-wol-q{font-size:14.5px;line-height:1.6;color:var(--apb-rx-ink);margin:0 0 14px}
.apb-rx-wol-q .mark{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-family:Georgia,serif;font-size:20px;font-weight:700;margin-right:2px;line-height:0}
.apb-rx-wol-by{display:flex;align-items:center;gap:10px}
.apb-rx-wol-av{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--apb-rx-soft);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--apb-rx-muted)}
.apb-rx-wol-name{font-size:13px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-wol-role{font-size:12px;color:var(--apb-rx-muted)}
@media(max-width:760px){.apb-rx-wol-grid{columns:2}}
@media(max-width:480px){.apb-rx-wol-grid{columns:1}}

/* ---------- press logo ticker ---------- */
.apb-rx-prs{padding:clamp(32px,5vw,56px) 0}
.apb-rx-prs-lead{text-align:center;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-prs-mask{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.apb-rx-prs-track{display:flex;gap:clamp(36px,6vw,72px);width:max-content;animation:apb-rx-prs-scroll 32s linear infinite}
.apb-rx-prs-mask:hover .apb-rx-prs-track{animation-play-state:paused}
@keyframes apb-rx-prs-scroll{to{transform:translateX(-50%)}}
.apb-rx-prs-item{display:inline-flex;align-items:center;gap:10px;color:color-mix(in srgb,var(--apb-rx-ink) 46%,transparent);white-space:nowrap;font-weight:800;letter-spacing:-.02em;font-size:19px}
.apb-rx-prs-item svg{opacity:.7;flex:0 0 auto}
.apb-rx-prs-item--img img{height:22px;width:auto;filter:grayscale(1);opacity:.7}
@media(prefers-reduced-motion:reduce){.apb-rx-prs-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto;transform:none;row-gap:20px}.apb-rx-prs-mask:hover .apb-rx-prs-track{animation-play-state:paused}}
/* ==== assets/pages/component-community.css ==== */
/**
 * Community & social-proof recipes: community_stats / achievements_badges / chat_platform_invite /
 * meetup_list / ambassador_program.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-community.php. No literals for brand/glow/tint.
 */

/* ---------- shared community buttons ---------- */
.apb-rx-cmbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cmbtn svg{flex:0 0 auto}
.apb-rx-cmbtn--primary{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:13px 26px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-cmbtn--primary:hover{transform:translateY(-2px)}
.apb-rx-cmbtn--all{font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cmbtn--rsvp{flex:0 0 auto;font-size:13.5px;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px}
.apb-rx-cmbtn--rsvp:hover{background:var(--apb-rx-soft)}
@media(prefers-reduced-motion:reduce){.apb-rx-cmbtn{transition:none}}

/* ---------- community stats ---------- */
.apb-rx-cs2{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-cs2-inner{max-width:820px;margin:0 auto;text-align:center}
.apb-rx-cs2-live{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-cs2-live .dot{width:8px;height:8px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-cs2-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--apb-rx-line);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);overflow:hidden}
.apb-rx-cs2-cell{background:var(--apb-rx-surface,#fff);padding:30px 18px}
.apb-rx-cs2-v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(30px,5vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-cs2-l{font-size:13px;color:var(--apb-rx-muted);margin-top:8px}
@media(max-width:640px){.apb-rx-cs2-grid{grid-template-columns:1fr 1fr}}

/* ---------- achievements / badges ---------- */
.apb-rx-ab{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ab-inner{max-width:760px;margin:0 auto}
.apb-rx-ab-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-ab-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-ab-prog{font-size:13.5px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-ab-prog b{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ab-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.apb-rx-ab-badge{text-align:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:18px 10px}
.apb-rx-ab-medal{width:52px;height:52px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center}
.apb-rx-ab-badge.earned .apb-rx-ab-medal{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-ab-badge.locked .apb-rx-ab-medal{color:color-mix(in srgb,var(--apb-rx-ink) 28%,transparent);background:var(--apb-rx-soft);border:1px dashed var(--apb-rx-line)}
.apb-rx-ab-nm{font-size:12px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-ab-badge.locked .apb-rx-ab-nm{color:var(--apb-rx-muted)}
@media(max-width:640px){.apb-rx-ab-grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- chat platform invite ---------- */
.apb-rx-cpi{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-cpi-inner{max-width:600px;margin:0 auto;text-align:center;background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand) 6%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);padding:clamp(30px,4vw,44px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-cpi-ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-cpi h3{font-size:clamp(21px,3vw,27px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-cpi p{font-size:15.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-cpi-face{display:flex;align-items:center;justify-content:center;margin-bottom:22px}
.apb-rx-cpi-face img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--apb-rx-surface,#fff);margin-left:-8px;background:var(--apb-rx-soft)}
.apb-rx-cpi-face img:first-child{margin-left:0}
.apb-rx-cpi-face .more{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:2px solid var(--apb-rx-surface,#fff);margin-left:-8px}
.apb-rx-cpi-count{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin-bottom:20px}
.apb-rx-cpi-count .dot{width:7px;height:7px;border-radius:50%;background:var(--apb-rx-brand)}

/* ---------- meetup list ---------- */
.apb-rx-mu{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-mu-inner{max-width:720px;margin:0 auto}
.apb-rx-mu-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.apb-rx-mu-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-mu-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-mu-list{display:flex;flex-direction:column;gap:12px}
.apb-rx-mu-row{display:flex;align-items:center;gap:18px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:16px 18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-mu-date{flex:0 0 auto;width:56px;text-align:center;border-radius:var(--apb-rx-radius,10px);overflow:hidden;border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-mu-date .m{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);padding:3px 0}
.apb-rx-mu-date .d{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:22px;font-weight:800;color:var(--apb-rx-ink);padding:5px 0;background:var(--apb-rx-surface,#fff)}
.apb-rx-mu-body{flex:1;min-width:0}
.apb-rx-mu-city{font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-mu-meta{font-size:13px;color:var(--apb-rx-muted);margin-top:3px;display:flex;flex-wrap:wrap;gap:12px}
.apb-rx-mu-meta span{display:inline-flex;align-items:center;gap:5px}
@media(max-width:560px){.apb-rx-mu-row{flex-wrap:wrap}.apb-rx-cmbtn--rsvp{width:100%;text-align:center;justify-content:center}}

/* ---------- ambassador program ---------- */
.apb-rx-amb{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-amb-inner{max-width:820px;margin:0 auto;text-align:center}
.apb-rx-amb-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 12px}
.apb-rx-amb h3{font-size:clamp(24px,3.8vw,34px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 10px}
.apb-rx-amb-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 30px;max-width:48ch}
.apb-rx-amb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:30px;text-align:left}
.apb-rx-amb-perk{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-amb-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:12px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-amb-t{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-amb-d{font-size:13px;line-height:1.55;color:var(--apb-rx-muted);margin:0}
.apb-rx-amb-note{font-size:13px;color:var(--apb-rx-muted);margin-top:14px}
@media(max-width:640px){.apb-rx-amb-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-wayfind.css ==== */
/**
 * Wayfinding & content-navigation recipes: nav_scrollspy / tab_bar_sticky / pagination /
 * filter_chips_bar / sidebar_nav. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme.
 * Rendered by trait-apb-component-render-wayfind.php. No literals for brand/glow/tint.
 */

/* ---------- on-this-page scrollspy rail ---------- */
.apb-rx-spy{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-spy-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:start}
.apb-rx-spy-rail{position:sticky;top:24px}
.apb-rx-spy-h{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 14px}
.apb-rx-spy-list{list-style:none;margin:0;padding:0;border-left:2px solid var(--apb-rx-line);display:flex;flex-direction:column}
.apb-rx-spy-list a{display:block;padding:8px 0 8px 16px;margin-left:-2px;border-left:2px solid transparent;font-size:14px;font-weight:550;color:var(--apb-rx-muted);text-decoration:none;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-spy-list a:hover{color:var(--apb-rx-ink)}
.apb-rx-spy-list a.on{color:var(--apb-rx-ink);font-weight:700;border-left-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-spy-body h3{font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0 0 10px}
.apb-rx-spy-body h3:not(:first-child){margin-top:34px}
.apb-rx-spy-body p{font-size:15px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 12px}
@media(max-width:640px){.apb-rx-spy-inner{grid-template-columns:1fr}.apb-rx-spy-rail{position:static}}
@media(prefers-reduced-motion:reduce){.apb-rx-spy-list a{transition:none}}

/* ---------- sticky content tabs (CSS-only radio hack) ---------- */
.apb-rx-stab{padding:clamp(32px,5vw,56px) 0}
.apb-rx-stab-wrap>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-stab-bar{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--apb-rx-surface,#fff) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-stab-row{max-width:900px;margin:0 auto;padding:0 24px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.apb-rx-stab-row::-webkit-scrollbar{display:none}
.apb-rx-stab-tab{position:relative;display:inline-block;white-space:nowrap;padding:16px 14px;font-size:14.5px;font-weight:600;color:var(--apb-rx-muted);text-decoration:none;cursor:pointer;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-stab-tab::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;border-radius:2px;background:var(--apb-rx-brand);transform:scaleX(0);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-stab-tab:hover{color:var(--apb-rx-ink)}
.apb-rx-stab-body{max-width:900px;margin:0 auto;padding:36px 24px 8px}
.apb-rx-stab-panel{display:none}
.apb-rx-stab-panel h3{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-stab-panel p{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 12px;max-width:60ch}
.apb-rx-stab-wrap>input:nth-of-type(1):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(1),
.apb-rx-stab-wrap>input:nth-of-type(2):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(2),
.apb-rx-stab-wrap>input:nth-of-type(3):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(3),
.apb-rx-stab-wrap>input:nth-of-type(4):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(4),
.apb-rx-stab-wrap>input:nth-of-type(5):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(5),
.apb-rx-stab-wrap>input:nth-of-type(6):checked~.apb-rx-stab-body .apb-rx-stab-panel:nth-of-type(6){display:block}
.apb-rx-stab-wrap>input:nth-of-type(1):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(1),
.apb-rx-stab-wrap>input:nth-of-type(2):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(2),
.apb-rx-stab-wrap>input:nth-of-type(3):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(3),
.apb-rx-stab-wrap>input:nth-of-type(4):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(4),
.apb-rx-stab-wrap>input:nth-of-type(5):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(5),
.apb-rx-stab-wrap>input:nth-of-type(6):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(6){color:var(--apb-rx-ink)}
.apb-rx-stab-wrap>input:nth-of-type(1):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(1)::after,
.apb-rx-stab-wrap>input:nth-of-type(2):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(2)::after,
.apb-rx-stab-wrap>input:nth-of-type(3):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(3)::after,
.apb-rx-stab-wrap>input:nth-of-type(4):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(4)::after,
.apb-rx-stab-wrap>input:nth-of-type(5):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(5)::after,
.apb-rx-stab-wrap>input:nth-of-type(6):checked~.apb-rx-stab-bar .apb-rx-stab-tab:nth-child(6)::after{transform:scaleX(1)}
/* no-JS / CSS-not-yet-applied fail-open: with no radio checked at all, show the first panel */
.apb-rx-stab-panel:first-child{display:block}
.apb-rx-stab-wrap>input:checked~.apb-rx-stab-body .apb-rx-stab-panel:first-child{display:none}
.apb-rx-stab-wrap>input:nth-of-type(1):checked~.apb-rx-stab-body .apb-rx-stab-panel:first-child{display:block}
@media(prefers-reduced-motion:reduce){.apb-rx-stab-tab,.apb-rx-stab-tab::after{transition:none}}

/* ---------- pagination ---------- */
.apb-rx-pg{padding:clamp(36px,6vw,64px) 24px}
.apb-rx-pg-inner{max-width:720px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.apb-rx-pg-sum{font-size:14px;color:var(--apb-rx-muted);margin:0}
.apb-rx-pg-sum b{color:var(--apb-rx-ink);font-weight:650}
.apb-rx-pg-ctrls{display:flex;align-items:center;gap:6px}
.apb-rx-pg-btn{min-width:40px;height:40px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);text-decoration:none;transition:background var(--apb-rx-t,.28s) var(--apb-rx-ease),border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pg-btn:hover{background:var(--apb-rx-soft)}
.apb-rx-pg-btn.on{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pg-btn[aria-disabled="true"]{opacity:.4;pointer-events:none}
.apb-rx-pg-ell{padding:0 4px;color:var(--apb-rx-muted);font-weight:600}
@media(max-width:520px){.apb-rx-pg-inner{justify-content:center}.apb-rx-pg-num{display:none}}
@media(prefers-reduced-motion:reduce){.apb-rx-pg-btn{transition:none}}

/* ---------- active filters bar ---------- */
.apb-rx-fcb{padding:clamp(32px,5vw,56px) 24px}
.apb-rx-fcb-inner{max-width:860px;margin:0 auto}
.apb-rx-fcb-top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.apb-rx-fcb-count{font-size:15px;color:var(--apb-rx-ink);font-weight:650;margin:0}
.apb-rx-fcb-count span{color:var(--apb-rx-muted);font-weight:500}
.apb-rx-fcb-clear{font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;background:none;border:0;color:var(--apb-rx-muted);text-decoration:underline;text-underline-offset:3px}
.apb-rx-fcb-clear:hover{color:var(--apb-rx-ink)}
.apb-rx-fcb-clear[disabled]{cursor:default}
.apb-rx-fcb-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.apb-rx-fcb-label{font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin-right:2px}
.apb-rx-fcb-chip{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--apb-rx-accent-text);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line-accent,var(--apb-rx-line));border-radius:var(--apb-rx-radius-pill,999px);padding:6px 8px 6px 14px;white-space:nowrap}
.apb-rx-fcb-x{display:inline-flex;cursor:default;border:0;background:none;color:currentColor;opacity:.65;padding:2px;border-radius:50%}
.apb-rx-fcb-add{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:13.5px;font-weight:600;cursor:default;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px dashed var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 14px}

/* ---------- docs sidebar ---------- */
.apb-rx-sbn{padding:clamp(24px,4vw,40px) 24px}
.apb-rx-sbn-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start}
.apb-rx-sbn-side{position:sticky;top:20px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:12px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-sbn-grp{margin-bottom:6px}
.apb-rx-sbn-glabel{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted);padding:10px 12px 6px;margin:0}
.apb-rx-sbn-link{display:block;padding:8px 12px;border-radius:var(--apb-rx-radius,9px);font-size:14px;font-weight:550;color:var(--apb-rx-muted);text-decoration:none;transition:background var(--apb-rx-t,.28s) var(--apb-rx-ease),color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-sbn-link:hover{background:var(--apb-rx-soft);color:var(--apb-rx-ink)}
.apb-rx-sbn-link.on{background:var(--apb-rx-soft);color:var(--apb-rx-ink);font-weight:650}
.apb-rx-sbn-body h3{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-sbn-body p{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 12px;max-width:56ch}
@media(max-width:640px){.apb-rx-sbn-inner{grid-template-columns:1fr}.apb-rx-sbn-side{position:static}}
@media(prefers-reduced-motion:reduce){.apb-rx-sbn-link{transition:none}}
/* ==== assets/pages/component-wayfind2.css ==== */
/**
 * Wayfinding & utility-chrome recipes: jump_menu / back_to_top_fab / language_region_switcher /
 * command_palette / floating_action_menu.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-wayfind2.php. No literals for brand/glow/tint.
 */

/* ---------- jump_menu ---------- */
.apb-rx-jm{padding:clamp(40px,7vw,80px) 24px;display:flex;justify-content:center}
.apb-rx-jm-wrap{position:relative;width:300px;max-width:100%}
.apb-rx-jm-pill{width:100%;display:flex;align-items:center;gap:10px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:11px 16px;font:inherit;font-size:14.5px;font-weight:600;color:var(--apb-rx-ink);text-decoration:none;box-shadow:var(--apb-rx-shadow-2,0 10px 26px -12px rgba(11,13,18,.24))}
.apb-rx-jm-pill .lead{color:var(--apb-rx-muted);font-weight:500}
.apb-rx-jm-pill .chev{margin-left:auto;color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-jm-menu{margin-top:8px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);box-shadow:var(--apb-rx-shadow-3,0 22px 50px -18px rgba(11,13,18,.34));padding:6px;max-height:260px;overflow:auto}
.apb-rx-jm-opt{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:550;color:var(--apb-rx-ink);text-decoration:none}
.apb-rx-jm-opt:hover{background:var(--apb-rx-soft)}
.apb-rx-jm-opt .n{width:22px;flex:0 0 auto;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:var(--apb-rx-muted);text-align:center}
.apb-rx-jm-opt .tick{margin-left:auto;color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:0 0 auto}
.apb-rx-jm-opt.on{color:var(--apb-rx-ink);font-weight:700;background:var(--apb-rx-soft)}
.apb-rx-jm-opt.on .n{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

/* ---------- back_to_top_fab (fail-open static: plain anchor, decorative ring) ---------- */
.apb-rx-fab{position:relative;min-height:200px;padding:clamp(32px,5vw,56px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-fab-copy{max-width:420px}
.apb-rx-fab-copy h3{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-fab-copy p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-fab-btn{position:absolute;right:24px;bottom:24px;width:52px;height:52px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-3,0 12px 30px -10px rgba(11,13,18,.34));display:grid;place-items:center;color:var(--apb-rx-ink);text-decoration:none;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-fab-btn svg.ring{position:absolute;inset:-1px;transform:rotate(-90deg)}
.apb-rx-fab-btn svg.ring circle.track{stroke:var(--apb-rx-line)}
.apb-rx-fab-btn svg.ring circle.arc{stroke:var(--apb-rx-brand);stroke-linecap:round;stroke-dasharray:157;stroke-dashoffset:55}
.apb-rx-fab-btn .arw{position:relative;z-index:1}
.apb-rx-fab-btn:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-fab-btn{transition:none}.apb-rx-fab-btn:hover{transform:none}}

/* ---------- language_region_switcher (native <details>) ---------- */
.apb-rx-lrs{padding:clamp(40px,7vw,80px) 24px;display:flex;justify-content:center}
.apb-rx-lrs-wrap{position:relative;width:280px;max-width:100%}
.apb-rx-lrs-wrap details{width:100%}
.apb-rx-lrs-btn{width:100%;display:flex;align-items:center;gap:10px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:12px 14px;font:inherit;font-size:14.5px;font-weight:600;color:var(--apb-rx-ink);cursor:pointer;list-style:none}
.apb-rx-lrs-btn::-webkit-details-marker{display:none}
.apb-rx-lrs-btn .globe{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-lrs-btn .cur{margin-left:auto;color:var(--apb-rx-muted);font-weight:500}
.apb-rx-lrs-btn .chev{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-lrs-wrap details[open] .apb-rx-lrs-btn .chev{transform:rotate(180deg)}
.apb-rx-lrs-menu{margin-top:8px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);box-shadow:var(--apb-rx-shadow-3,0 20px 46px -18px rgba(11,13,18,.34));padding:6px;overflow:hidden}
.apb-rx-lrs-opt{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:550;color:var(--apb-rx-ink);text-decoration:none}
.apb-rx-lrs-opt:hover{background:var(--apb-rx-soft)}
.apb-rx-lrs-opt .reg{color:var(--apb-rx-muted);font-weight:500}
.apb-rx-lrs-opt .money{margin-left:auto;color:var(--apb-rx-muted);font-size:13px}
.apb-rx-lrs-opt .tick{margin-left:auto;color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:0 0 auto}
.apb-rx-lrs-opt.on .money{margin-left:0}

/* ---------- command_palette (fail-open static: always-open panel, no JS) ---------- */
.apb-rx-cmd{padding:clamp(40px,7vw,88px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px)}
.apb-rx-cmd-hint{text-align:center;font-size:13px;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-cmd-panel{max-width:520px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -24px rgba(11,13,18,.4));overflow:hidden}
.apb-rx-cmd-search{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-cmd-search svg{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-cmd-ph{flex:1;font-size:16px;color:var(--apb-rx-muted)}
.apb-rx-cmd-esc{font-size:11px;font-weight:600;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border-radius:6px;padding:3px 7px}
.apb-rx-cmd-group{padding:8px}
.apb-rx-cmd-glabel{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted);padding:8px 12px 4px;margin:0}
.apb-rx-cmd-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:var(--apb-rx-ink);font-size:14.5px;font-weight:550}
.apb-rx-cmd-row .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-cmd-row .meta{margin-left:auto;font-size:12px;color:var(--apb-rx-muted)}
.apb-rx-cmd-row.on{background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff))}
.apb-rx-cmd-row.on .ic{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}

/* ---------- floating_action_menu (checkbox-driven CSS-only disclosure) ---------- */
.apb-rx-fam{position:relative;min-height:200px;padding:clamp(32px,5vw,56px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-fam-copy{max-width:420px}
.apb-rx-fam-copy h3{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-fam-copy p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-fam-check{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.apb-rx-fam-dock{position:absolute;right:24px;bottom:24px;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.apb-rx-fam-item{display:inline-flex;align-items:center;gap:10px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 8px 8px 16px;box-shadow:var(--apb-rx-shadow-2,0 8px 22px -10px rgba(11,13,18,.28));font-size:13.5px;font-weight:600;color:var(--apb-rx-ink);text-decoration:none;opacity:0;transform:translateY(10px) scale(.94);pointer-events:none;transition:opacity var(--apb-rx-t,.22s) var(--apb-rx-ease),transform var(--apb-rx-t,.22s) var(--apb-rx-ease)}
.apb-rx-fam-item .ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--apb-rx-soft);color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-fam-check:checked ~ .apb-rx-fam-dock .apb-rx-fam-item{opacity:1;transform:none;pointer-events:auto}
.apb-rx-fam-trigger{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;cursor:pointer;border:0;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 12px 30px -8px var(--apb-rx-glow)}
.apb-rx-fam-trigger svg{transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-fam-check:checked ~ .apb-rx-fam-dock .apb-rx-fam-trigger svg{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){.apb-rx-fam-item{transition:none}.apb-rx-fam-trigger svg{transition:none}}
/* ==== assets/pages/component-charts.css ==== */
/**
 * Data-visualization chart recipes: data_line / data_funnel / data_timeline_chart / progress_dashboard /
 * total_cost_ownership. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. All geometry
 * (path d, stroke-dashoffset, bar widths) is computed by trait-apb-component-render-charts.php — this
 * file is layout/paint only. No transform/opacity keyframes here, so no reduced-motion override is needed.
 */

/* ---------- data_line ---------- */
.apb-rx-dl{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-dl-inner{max-width:760px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(22px,3vw,30px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-dl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.apb-rx-dl-title{font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin:0}
.apb-rx-dl-big{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:2px 0 0;font-variant-numeric:tabular-nums}
.apb-rx-dl-delta{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border-radius:999px;padding:4px 9px}
.apb-rx-dl-delta--down{color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-dl-legend{display:flex;gap:16px;font-size:12.5px;color:var(--apb-rx-muted);margin-top:6px}
.apb-rx-dl-legend .k{display:inline-flex;align-items:center;gap:6px}
.apb-rx-dl-legend .dot{width:9px;height:9px;border-radius:2px}
.apb-rx-dl-legend .dot.a{background:var(--apb-rx-brand)}
.apb-rx-dl-legend .dot.b{background:color-mix(in srgb,var(--apb-rx-ink) 26%,transparent)}
.apb-rx-dl-chart{margin-top:16px}
.apb-rx-dl-chart svg{width:100%;height:auto;display:block}
.apb-rx-dl-x{display:flex;justify-content:space-between;font-size:11.5px;color:var(--apb-rx-muted);margin-top:8px}

/* ---------- data_funnel ---------- */
.apb-rx-fn{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-fn-inner{max-width:640px;margin:0 auto}
.apb-rx-fn-head{margin-bottom:22px}
.apb-rx-fn-head h3{font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-fn-head p{font-size:14px;color:var(--apb-rx-muted);margin:0}
.apb-rx-fn-stage{margin-bottom:12px}
.apb-rx-fn-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.apb-rx-fn-name{font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-fn-val{font-size:13px;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-fn-val b{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-fn-bar{height:38px;border-radius:var(--apb-rx-radius,10px);display:flex;align-items:center;padding-left:14px;color:var(--apb-rx-accent-contrast,#fff);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;min-width:56px}
.apb-rx-fn-drop{font-size:11.5px;color:var(--apb-rx-muted);text-align:right;margin-top:4px}

/* ---------- data_timeline_chart ---------- */
.apb-rx-gt{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-gt-inner{max-width:820px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(22px,3vw,28px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));overflow-x:auto}
.apb-rx-gt-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.apb-rx-gt-head h3{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0}
.apb-rx-gt-legend{display:flex;gap:14px;font-size:12px;color:var(--apb-rx-muted);flex-wrap:wrap}
.apb-rx-gt-legend .k{display:inline-flex;align-items:center;gap:6px}
.apb-rx-gt-legend .sw{width:11px;height:11px;border-radius:3px}
.apb-rx-gt-axis{display:grid;font-size:11.5px;color:var(--apb-rx-muted);font-weight:600;padding-bottom:8px;border-bottom:1px solid var(--apb-rx-line);min-width:480px}
.apb-rx-gt-axis span:not(:first-child){text-align:center}
.apb-rx-gt-row{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--apb-rx-line);min-width:480px}
.apb-rx-gt-row:last-child{border-bottom:0}
.apb-rx-gt-task{font-size:13.5px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-gt-lane{position:relative;height:22px}
.apb-rx-gt-bar{position:absolute;top:2px;height:18px;border-radius:999px;display:flex;align-items:center;padding:0 10px;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden}
.apb-rx-gt-bar.done{background:color-mix(in srgb,var(--apb-rx-ink) 12%,transparent);color:var(--apb-rx-muted)}
.apb-rx-gt-bar.now{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-gt-bar.plan{background:var(--apb-rx-soft);border:1px dashed var(--apb-rx-line);color:var(--apb-rx-muted)}

/* ---------- progress_dashboard ---------- */
.apb-rx-pd{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-pd-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.apb-rx-pd-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:20px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-pd-ring{width:96px;height:96px;margin:0 auto 12px;position:relative}
.apb-rx-pd-ring svg{transform:rotate(-90deg)}
.apb-rx-pd-ring .track{stroke:var(--apb-rx-soft)}
.apb-rx-pd-ring .arc{stroke:var(--apb-rx-brand);stroke-linecap:round}
.apb-rx-pd-ring .v{position:absolute;inset:0;display:grid;place-content:center;font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:22px;font-weight:800;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-pd-lbl{text-align:center;font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin:0}
.apb-rx-pd-wide{grid-column:span 2}
.apb-rx-pd-metric{margin-bottom:14px}
.apb-rx-pd-metric:last-child{margin-bottom:0}
.apb-rx-pd-mrow{display:flex;justify-content:space-between;font-size:13px;margin-bottom:7px}
.apb-rx-pd-mrow .mn{color:var(--apb-rx-ink);font-weight:600}
.apb-rx-pd-mrow .mv{color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-pd-track{height:8px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-pd-fill{height:100%;border-radius:999px;background:var(--apb-rx-brand)}
@media(max-width:720px){.apb-rx-pd-inner{grid-template-columns:1fr 1fr}.apb-rx-pd-wide{grid-column:span 2}}

/* ---------- total_cost_ownership ---------- */
.apb-rx-tco{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-tco-inner{max-width:720px;margin:0 auto}
.apb-rx-tco-head{text-align:center;max-width:520px;margin:0 auto 28px}
.apb-rx-tco-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-tco-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-tco-bars{display:flex;flex-direction:column;gap:16px;margin-bottom:22px}
.apb-rx-tco-bar .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.apb-rx-tco-bar .nm{font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-tco-bar .nm small{font-weight:500;color:var(--apb-rx-muted)}
.apb-rx-tco-bar .amt{font-size:15px;font-weight:750;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.apb-rx-tco-bar .track{height:34px;border-radius:var(--apb-rx-radius,10px);background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-tco-bar .fill{height:100%;border-radius:var(--apb-rx-radius,10px)}
.apb-rx-tco-bar.them .fill{background:color-mix(in srgb,var(--apb-rx-ink) 22%,transparent)}
.apb-rx-tco-bar.us .fill{background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
.apb-rx-tco-bar.us .amt{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-tco-note{text-align:center;background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent);border-radius:var(--apb-rx-radius,14px);padding:16px;font-size:15px;color:var(--apb-rx-ink);margin:0}
.apb-rx-tco-note .apb-rx-em{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:800;font-style:normal}
/* ==== assets/pages/component-mediakit.css ==== */
/**
 * Media-kit recipes: video_playlist / audio_player / lightbox_gallery / split_video_compare /
 * music_release. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. CSS-only
 * interactivity: lightbox uses :target overlays; music_release now-playing uses a radio + general-
 * sibling reveal (same technique as the shared feature-tabs recipe). Reduced-motion fallbacks inline.
 * Rendered by APB_Component_Render_Mediakit_Service. No literals for brand/glow/tint.
 */

/* ---------- video playlist ---------- */
.apb-rx-vp{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-vp-inner{max-width:980px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.85fr);gap:20px;align-items:start}
.apb-rx-vp-stage{border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-vp-media{position:relative;aspect-ratio:16/9;background:var(--apb-rx-soft);display:block;width:100%}
.apb-rx-vp-media img,.apb-rx-vp-media video{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-vp-media--empty{min-height:160px}
.apb-rx-vp-cap{padding:14px 16px}
.apb-rx-vp-cap h4{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 2px}
.apb-rx-vp-cap p{font-size:13px;color:var(--apb-rx-muted);margin:0}
.apb-rx-vp-list{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-vp-lhead{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-muted);padding:14px 16px 8px;margin:0}
.apb-rx-vp-items{max-height:390px;overflow:auto;overscroll-behavior:contain}
.apb-rx-vp-row{display:flex;width:100%;align-items:center;gap:12px;padding:10px 16px;border:0;color:inherit;background:transparent;font:inherit;text-align:start;cursor:pointer;transition:background-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-vp-row:hover:not(:disabled){background:var(--apb-rx-soft)}
.apb-rx-vp-row:focus-visible{position:relative;z-index:1;outline:2px solid var(--apb-rx-brand);outline-offset:-3px}
.apb-rx-vp-row:disabled{cursor:not-allowed;opacity:.56}
.apb-rx-vp-row.is-active{background:color-mix(in srgb,var(--apb-rx-brand) 7%,var(--apb-rx-surface,#fff))}
.apb-rx-vp-thumb{position:relative;flex:0 0 auto;width:64px;height:40px;border-radius:8px;overflow:hidden;background:var(--apb-rx-soft)}
.apb-rx-vp-thumb img,.apb-rx-vp-thumb video{width:100%;height:100%;object-fit:cover}
.apb-rx-vp-row.is-active .apb-rx-vp-thumb::after{content:"";position:absolute;inset:0;border:2px solid var(--apb-rx-brand);border-radius:8px}
.apb-rx-vp-info{flex:1;min-width:0}
.apb-rx-vp-tt{display:block;font-size:13.5px;font-weight:600;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-vp-row.is-active .apb-rx-vp-tt{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-vp-dur{display:block;font-size:12px;color:var(--apb-rx-muted)}
.apb-rx-vp-nav{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border-block-start:1px solid var(--apb-rx-line)}
.apb-rx-vp-nav button{border:0;border-radius:8px;padding:7px 9px;color:var(--apb-rx-muted);background:transparent;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.apb-rx-vp-nav button:hover:not(:disabled){color:var(--apb-rx-ink);background:var(--apb-rx-soft)}
.apb-rx-vp-nav button:focus-visible{outline:2px solid var(--apb-rx-brand);outline-offset:1px}
.apb-rx-vp-nav button:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:800px){.apb-rx-vp-inner{grid-template-columns:1fr}}

/* ---------- audio / podcast player ---------- */
.apb-rx-au{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-au-inner{max-width:600px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:clamp(20px,3vw,26px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-au-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.apb-rx-au-art{flex:0 0 auto;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--apb-rx-soft)}
.apb-rx-au-art img{width:100%;height:100%;object-fit:cover}
.apb-rx-au-meta{min-width:0}
.apb-rx-au-t{font-size:15px;font-weight:700;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-au-sub{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-au-wave{display:flex;align-items:center;gap:2px;height:44px;margin-bottom:8px}
.apb-rx-au-bar{flex:1;border-radius:2px;background:var(--apb-rx-line)}
.apb-rx-au-bar.played{background:var(--apb-rx-brand)}
.apb-rx-au-time{display:flex;justify-content:space-between;font-size:12px;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums;margin-bottom:6px}
.apb-rx-au-native{width:100%;margin-top:8px}

/* ---------- lightbox gallery (CSS-only :target overlay) ---------- */
.apb-rx-lb{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-lb-inner{max-width:840px;margin:0 auto}
.apb-rx-lb-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.apb-rx-lb-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-lb-count{font-size:14px;color:var(--apb-rx-muted)}
.apb-rx-lb-grid{columns:3;column-gap:12px}
.apb-rx-lb-cell{position:relative;display:block;break-inside:avoid;margin-bottom:12px;border-radius:var(--apb-rx-radius,12px);overflow:hidden;cursor:zoom-in;background:var(--apb-rx-soft)}
.apb-rx-lb-cell img{width:100%;display:block;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-lb-cell:hover img,.apb-rx-lb-cell:focus-visible img{transform:scale(1.04)}
.apb-rx-lb-zoom{position:absolute;right:10px;bottom:10px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);opacity:0;transform:scale(.7);transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-lb-cell:hover .apb-rx-lb-zoom,.apb-rx-lb-cell:focus-visible .apb-rx-lb-zoom{opacity:1;transform:none}
.apb-rx-lb-ov{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:rgba(8,10,15,.86);padding:24px}
.apb-rx-lb-ov:target{display:flex}
.apb-rx-lb-ov img{max-width:min(92vw,1100px);max-height:90vh;object-fit:contain;border-radius:var(--apb-rx-radius,12px)}
.apb-rx-lb-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28)}
.apb-rx-lb-close:hover{background:rgba(255,255,255,.24)}
@media(hover:none){.apb-rx-lb-zoom{opacity:1;transform:none}}
@media(max-width:640px){.apb-rx-lb-grid{columns:2}}

/* ---------- before / after video ---------- */
.apb-rx-svc{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-svc-inner{max-width:820px;margin:0 auto}
.apb-rx-svc-head{text-align:center;max-width:500px;margin:0 auto 22px}
.apb-rx-svc-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-svc-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-svc-pair{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:center;position:relative}
.apb-rx-svc-tagwrap{position:relative}
.apb-rx-svc-clip{position:relative;aspect-ratio:4/3;border-radius:var(--apb-rx-radius,14px);overflow:hidden;border:1px solid var(--apb-rx-line);background:var(--apb-rx-soft);display:block;width:100%}
.apb-rx-svc-clip img,.apb-rx-svc-clip video{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-svc-tag{position:absolute;top:10px;left:10px;z-index:1;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:rgba(8,10,15,.55);border-radius:999px;padding:4px 10px}
.apb-rx-svc-mid{position:relative;z-index:2;width:56px;height:56px;margin:0 -14px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 10px 24px -8px var(--apb-rx-glow),0 0 0 6px var(--apb-rx-surface,#fff)}
.apb-rx-svc-sync{text-align:center;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);display:inline-flex;align-items:center;gap:7px;width:100%;justify-content:center}
.apb-rx-svc-sync svg{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:560px){.apb-rx-svc-pair{grid-template-columns:1fr;gap:12px}.apb-rx-svc-mid{margin:-30px auto}}

/* ---------- music release (CSS-only now-playing switch) ---------- */
.apb-rx-mr{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-mr-inner{max-width:760px;margin:0 auto;display:grid;grid-template-columns:0.9fr 1.1fr;gap:clamp(22px,3vw,36px);align-items:start}
.apb-rx-mr-radio{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.apb-rx-mr-art{border-radius:var(--apb-rx-radius,16px);overflow:hidden;border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.12))}
.apb-rx-mr-art img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.apb-rx-mr-meta{margin-top:14px}
.apb-rx-mr-title{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-mr-artist{font-size:14px;color:var(--apb-rx-muted);margin:2px 0 0}
.apb-rx-mr-list{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-mr-row{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;transition:background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mr-row+.apb-rx-mr-row,.apb-rx-mr-audio+.apb-rx-mr-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-mr-row:hover{background:var(--apb-rx-soft)}
.apb-rx-mr-n{width:20px;text-align:center;font-size:13px;font-weight:600;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-mr-tt{flex:1;min-width:0;font-size:14.5px;font-weight:600;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-mr-dur{font-size:12.5px;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-mr-eq{display:none;gap:2px;align-items:flex-end;height:14px;width:20px}
.apb-rx-mr-eq span{width:3px;background:var(--apb-rx-brand);border-radius:2px;animation:apb-rx-mr-eq 1s var(--apb-rx-ease) infinite alternate}
.apb-rx-mr-eq span:nth-child(2){animation-delay:.2s}.apb-rx-mr-eq span:nth-child(3){animation-delay:.4s}
@keyframes apb-rx-mr-eq{from{height:4px}to{height:14px}}
@media(prefers-reduced-motion:reduce){.apb-rx-mr-eq span{animation:none;height:9px}}
.apb-rx-mr-audio{display:none;width:100%;padding:0 16px 12px;box-sizing:border-box}
@media(max-width:600px){.apb-rx-mr-inner{grid-template-columns:1fr}}

/* reveal the checked track's row highlight + equalizer + audio player (general-sibling; max_items 12 so 0-11) */
.apb-rx-mrr-0:checked~.apb-rx-mr-list .apb-rx-mrl-0,.apb-rx-mrr-1:checked~.apb-rx-mr-list .apb-rx-mrl-1,.apb-rx-mrr-2:checked~.apb-rx-mr-list .apb-rx-mrl-2,.apb-rx-mrr-3:checked~.apb-rx-mr-list .apb-rx-mrl-3,.apb-rx-mrr-4:checked~.apb-rx-mr-list .apb-rx-mrl-4,.apb-rx-mrr-5:checked~.apb-rx-mr-list .apb-rx-mrl-5,.apb-rx-mrr-6:checked~.apb-rx-mr-list .apb-rx-mrl-6,.apb-rx-mrr-7:checked~.apb-rx-mr-list .apb-rx-mrl-7,.apb-rx-mrr-8:checked~.apb-rx-mr-list .apb-rx-mrl-8,.apb-rx-mrr-9:checked~.apb-rx-mr-list .apb-rx-mrl-9,.apb-rx-mrr-10:checked~.apb-rx-mr-list .apb-rx-mrl-10,.apb-rx-mrr-11:checked~.apb-rx-mr-list .apb-rx-mrl-11{background:color-mix(in srgb,var(--apb-rx-brand) 7%,var(--apb-rx-surface,#fff))}
.apb-rx-mrr-0:checked~.apb-rx-mr-list .apb-rx-mrl-0 .apb-rx-mr-tt,.apb-rx-mrr-1:checked~.apb-rx-mr-list .apb-rx-mrl-1 .apb-rx-mr-tt,.apb-rx-mrr-2:checked~.apb-rx-mr-list .apb-rx-mrl-2 .apb-rx-mr-tt,.apb-rx-mrr-3:checked~.apb-rx-mr-list .apb-rx-mrl-3 .apb-rx-mr-tt,.apb-rx-mrr-4:checked~.apb-rx-mr-list .apb-rx-mrl-4 .apb-rx-mr-tt,.apb-rx-mrr-5:checked~.apb-rx-mr-list .apb-rx-mrl-5 .apb-rx-mr-tt,.apb-rx-mrr-6:checked~.apb-rx-mr-list .apb-rx-mrl-6 .apb-rx-mr-tt,.apb-rx-mrr-7:checked~.apb-rx-mr-list .apb-rx-mrl-7 .apb-rx-mr-tt,.apb-rx-mrr-8:checked~.apb-rx-mr-list .apb-rx-mrl-8 .apb-rx-mr-tt,.apb-rx-mrr-9:checked~.apb-rx-mr-list .apb-rx-mrl-9 .apb-rx-mr-tt,.apb-rx-mrr-10:checked~.apb-rx-mr-list .apb-rx-mrl-10 .apb-rx-mr-tt,.apb-rx-mrr-11:checked~.apb-rx-mr-list .apb-rx-mrl-11 .apb-rx-mr-tt{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-mrr-0:checked~.apb-rx-mr-list .apb-rx-mrl-0 .apb-rx-mr-n,.apb-rx-mrr-1:checked~.apb-rx-mr-list .apb-rx-mrl-1 .apb-rx-mr-n,.apb-rx-mrr-2:checked~.apb-rx-mr-list .apb-rx-mrl-2 .apb-rx-mr-n,.apb-rx-mrr-3:checked~.apb-rx-mr-list .apb-rx-mrl-3 .apb-rx-mr-n,.apb-rx-mrr-4:checked~.apb-rx-mr-list .apb-rx-mrl-4 .apb-rx-mr-n,.apb-rx-mrr-5:checked~.apb-rx-mr-list .apb-rx-mrl-5 .apb-rx-mr-n,.apb-rx-mrr-6:checked~.apb-rx-mr-list .apb-rx-mrl-6 .apb-rx-mr-n,.apb-rx-mrr-7:checked~.apb-rx-mr-list .apb-rx-mrl-7 .apb-rx-mr-n,.apb-rx-mrr-8:checked~.apb-rx-mr-list .apb-rx-mrl-8 .apb-rx-mr-n,.apb-rx-mrr-9:checked~.apb-rx-mr-list .apb-rx-mrl-9 .apb-rx-mr-n,.apb-rx-mrr-10:checked~.apb-rx-mr-list .apb-rx-mrl-10 .apb-rx-mr-n,.apb-rx-mrr-11:checked~.apb-rx-mr-list .apb-rx-mrl-11 .apb-rx-mr-n{display:none}
.apb-rx-mrr-0:checked~.apb-rx-mr-list .apb-rx-mrl-0 .apb-rx-mr-eq,.apb-rx-mrr-1:checked~.apb-rx-mr-list .apb-rx-mrl-1 .apb-rx-mr-eq,.apb-rx-mrr-2:checked~.apb-rx-mr-list .apb-rx-mrl-2 .apb-rx-mr-eq,.apb-rx-mrr-3:checked~.apb-rx-mr-list .apb-rx-mrl-3 .apb-rx-mr-eq,.apb-rx-mrr-4:checked~.apb-rx-mr-list .apb-rx-mrl-4 .apb-rx-mr-eq,.apb-rx-mrr-5:checked~.apb-rx-mr-list .apb-rx-mrl-5 .apb-rx-mr-eq,.apb-rx-mrr-6:checked~.apb-rx-mr-list .apb-rx-mrl-6 .apb-rx-mr-eq,.apb-rx-mrr-7:checked~.apb-rx-mr-list .apb-rx-mrl-7 .apb-rx-mr-eq,.apb-rx-mrr-8:checked~.apb-rx-mr-list .apb-rx-mrl-8 .apb-rx-mr-eq,.apb-rx-mrr-9:checked~.apb-rx-mr-list .apb-rx-mrl-9 .apb-rx-mr-eq,.apb-rx-mrr-10:checked~.apb-rx-mr-list .apb-rx-mrl-10 .apb-rx-mr-eq,.apb-rx-mrr-11:checked~.apb-rx-mr-list .apb-rx-mrl-11 .apb-rx-mr-eq{display:inline-flex}
.apb-rx-mrr-0:checked~.apb-rx-mr-list .apb-rx-mra-0,.apb-rx-mrr-1:checked~.apb-rx-mr-list .apb-rx-mra-1,.apb-rx-mrr-2:checked~.apb-rx-mr-list .apb-rx-mra-2,.apb-rx-mrr-3:checked~.apb-rx-mr-list .apb-rx-mra-3,.apb-rx-mrr-4:checked~.apb-rx-mr-list .apb-rx-mra-4,.apb-rx-mrr-5:checked~.apb-rx-mr-list .apb-rx-mra-5,.apb-rx-mrr-6:checked~.apb-rx-mr-list .apb-rx-mra-6,.apb-rx-mrr-7:checked~.apb-rx-mr-list .apb-rx-mra-7,.apb-rx-mrr-8:checked~.apb-rx-mr-list .apb-rx-mra-8,.apb-rx-mrr-9:checked~.apb-rx-mr-list .apb-rx-mra-9,.apb-rx-mrr-10:checked~.apb-rx-mr-list .apb-rx-mra-10,.apb-rx-mrr-11:checked~.apb-rx-mr-list .apb-rx-mra-11{display:block}
/* ==== assets/pages/component-video-player.css ==== */
/**
 * Shared active-playback player. Native video controls are the no-JS fallback; the behavior module
 * reveals this control layer only after successful hydration.
 */
.apb-rx-player{position:relative;width:100%;margin:0;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-ink,#111);border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.12))}
.apb-rx-player [hidden]{display:none!important}
.apb-rx-player:focus{outline:none}
.apb-rx-player:focus-visible{outline:3px solid color-mix(in srgb,var(--apb-rx-brand) 68%,white);outline-offset:3px}
.apb-rx-player-stage{position:relative;aspect-ratio:16/9;display:grid;place-items:center;background:var(--apb-rx-ink,#111);overflow:hidden}
.apb-rx-player-media,.apb-rx-player-poster{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;background:var(--apb-rx-ink,#111)}
.apb-rx-player[data-player-ready="true"] .apb-rx-player-media{cursor:pointer}
.apb-rx-player-big-play{position:relative;z-index:3;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:50%;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.12));cursor:pointer;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),opacity var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-player-big-play:hover{transform:scale(1.06)}
.apb-rx-player-big-play:focus-visible,.apb-rx-player-btn:focus-visible,.apb-rx-player-error button:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.apb-rx-player-big-play svg{width:26px;height:26px;margin-inline-start:3px}
.apb-rx-player-controls{position:absolute;z-index:4;inset-inline:0;inset-block-end:0;padding:10px 12px 8px;background:color-mix(in srgb,var(--apb-rx-ink,#111) 84%,transparent);opacity:1;transform:none;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-player[data-controls-visible="false"] .apb-rx-player-controls{opacity:0;transform:translateY(6px);pointer-events:none}
.apb-rx-player-seek{display:block;width:100%;margin-block-end:3px}
.apb-rx-player input[type="range"]{--apb-player-progress:0%;--apb-player-buffered:0%;display:block;width:100%;height:12px;margin:0;accent-color:var(--apb-rx-brand);cursor:pointer;background:transparent}
.apb-rx-player input[type="range"]::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:color-mix(in srgb,currentColor 28%,transparent)}
.apb-rx-player input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-block-start:-5px;border:0;border-radius:50%;background:currentColor}
.apb-rx-player input[type="range"]::-moz-range-track{height:4px;border-radius:999px;background:color-mix(in srgb,currentColor 22%,transparent)}
.apb-rx-player input[type="range"]::-moz-range-progress{height:4px;border-radius:999px;background:var(--apb-rx-brand)}
.apb-rx-player input[type="range"]::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:currentColor}
.apb-rx-player-control-row{display:flex;align-items:center;gap:4px;min-width:0}
.apb-rx-player-btn{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:0;border-radius:8px;color:inherit;background:transparent;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.apb-rx-player-btn:hover{background:color-mix(in srgb,currentColor 14%,transparent)}
.apb-rx-player-btn svg{width:18px;height:18px}
.apb-rx-player-btn.is-muted{opacity:.62}
.apb-rx-player-time{font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}
.apb-rx-player-spacer{flex:1}
.apb-rx-player-volume{width:64px}
.apb-rx-player-volume input[type="range"]{height:12px}
.apb-rx-player-speed{width:38px}
.apb-rx-player-cc[aria-pressed="true"]{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-player-status,.apb-rx-player-error{position:absolute;z-index:5;inset:50% auto auto 50%;transform:translate(-50%,-50%);padding:9px 12px;border-radius:10px;background:color-mix(in srgb,var(--apb-rx-ink,#111) 88%,transparent);font-size:13px;font-weight:650;text-align:center}
.apb-rx-player-status::before{content:"";display:inline-block;width:12px;height:12px;margin-inline-end:8px;border:2px solid color-mix(in srgb,currentColor 36%,transparent);border-block-start-color:currentColor;border-radius:50%;vertical-align:-2px;animation:apb-rx-player-spin .8s linear infinite}
.apb-rx-player-error{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:min(240px,78%)}
.apb-rx-player-error button{border:0;border-radius:8px;padding:7px 11px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.apb-rx-player.is-fullscreen{border-radius:0}
.apb-rx-player.is-fullscreen .apb-rx-player-stage{width:100%;height:100%;aspect-ratio:auto}
.apb-rx-player.is-fullscreen .apb-rx-player-media{object-fit:contain}
.apb-rx-player.is-fullscreen .apb-rx-player-controls{padding:0 14px}
.apb-rx-player.is-fullscreen .apb-rx-player-seek{height:24px;margin-block-end:0}
.apb-rx-player.is-fullscreen .apb-rx-player-seek input[type="range"]{height:24px}
.apb-rx-player.is-fullscreen .apb-rx-player-volume input[type="range"]{height:24px}
.apb-rx-player.is-fullscreen .apb-rx-player-control-row{gap:3px}
.apb-rx-player.is-fullscreen .apb-rx-player-btn{width:28px;height:28px}
.apb-rx-player.is-fullscreen .apb-rx-player-btn svg{width:17px;height:17px}
.apb-rx-player.is-fullscreen[data-controls-visible="false"],.apb-rx-player.is-fullscreen[data-controls-visible="false"] .apb-rx-player-media{cursor:none}
.apb-rx-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes apb-rx-player-spin{to{transform:rotate(360deg)}}
@media(max-width:620px){
  .apb-rx-player-controls{padding:8px 9px 6px}
  .apb-rx-player-volume{display:none}
  .apb-rx-player-control-row{gap:2px}
  .apb-rx-player-btn{width:32px;height:32px}
  .apb-rx-player-time{font-size:11px}
}
@media(max-width:410px){
  .apb-rx-player-control-row [data-player-pip]{display:none}
  .apb-rx-player-speed{width:36px}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-player-controls,.apb-rx-player-big-play{transition:none}
  .apb-rx-player[data-controls-visible="false"] .apb-rx-player-controls{transform:none}
  .apb-rx-player-status::before{animation-duration:1.6s}
}
/* ==== assets/pages/component-video-premium.css ==== */
/**
 * Premium states for video_playlist. Brand derives entirely from the public --apb-rx-* token bridge.
 */
.apb-premium-summary{max-width:980px;margin:0 auto 18px}
.apb-premium-summary-inner{display:flex;align-items:center;gap:18px;padding:14px 16px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface);box-shadow:var(--apb-rx-shadow-1)}
.apb-premium-summary-copy{flex:1;min-width:0}
.apb-premium-summary-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-block-end:7px}
.apb-premium-summary-label{font-size:13px;font-weight:750;color:var(--apb-rx-ink)}
.apb-premium-summary-count{font-size:12px;color:var(--apb-rx-muted);white-space:nowrap}
.apb-premium-progress{height:5px;border-radius:999px;overflow:hidden;background:var(--apb-rx-soft)}
.apb-premium-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--apb-rx-brand);transition:width var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-premium-continue{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-radius:10px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text);font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.apb-premium-continue:hover{filter:brightness(.98)}
.apb-premium-continue:focus-visible{outline:2px solid var(--apb-rx-brand);outline-offset:2px}

.apb-rx-player-stage>.apb-premium-gate{position:absolute;z-index:7;inset:0;display:grid;place-items:center;padding:22px;background:color-mix(in srgb,var(--apb-rx-ink,#111) 82%,transparent);color:var(--apb-rx-accent-contrast,#fff);text-align:center}
.apb-rx-player-stage>.apb-premium-gate[hidden]{display:none}
.apb-rx-player[data-premium-state="locked"] .apb-rx-player-stage{min-height:340px;aspect-ratio:auto}
.apb-rx-player[data-premium-state="locked"] .apb-rx-player-media{visibility:hidden}
.apb-premium-gate-card{width:min(420px,100%);padding:24px;border:1px solid color-mix(in srgb,currentColor 16%,transparent);border-radius:18px;background:color-mix(in srgb,var(--apb-rx-ink,#111) 92%,transparent);box-shadow:var(--apb-rx-shadow-2)}
.apb-premium-lock-icon{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 12px;border-radius:50%;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-premium-lock-icon svg{width:19px;height:19px}
.apb-premium-gate-kicker{margin:0 0 5px;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 72%,transparent)}
.apb-premium-gate-card h2{margin:0;font-size:clamp(20px,3vw,26px);line-height:1.12;letter-spacing:-.025em}
.apb-premium-gate-copy{max-width:340px;margin:9px auto 0;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 72%,transparent);font-size:13.5px;line-height:1.5}
.apb-premium-gate-actions{display:flex;justify-content:center;gap:8px;margin-block-start:18px}
.apb-premium-gate-actions button{min-height:40px;padding:0 15px;border-radius:10px;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.apb-premium-upgrade{border:0;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-premium-preview{border:1px solid color-mix(in srgb,currentColor 25%,transparent);background:transparent;color:inherit}
.apb-premium-upgrade:hover,.apb-premium-preview:hover{filter:brightness(1.08)}
.apb-premium-gate-actions button:focus-visible,.apb-premium-login:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.apb-premium-login{display:inline-block;min-height:30px;margin-block-start:8px;padding:6px 4px;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 78%,transparent);font:inherit;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.apb-premium-trailer-badge{position:absolute;z-index:6;inset-block-start:12px;inset-inline-start:12px;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--apb-rx-ink,#111) 88%,transparent);color:var(--apb-rx-accent-contrast,#fff);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}

.apb-rx-vp-row{position:relative}
.apb-rx-vp-row[data-access="locked"]{padding-inline-end:46px}
.apb-premium-row-meta{display:flex;align-items:center;gap:6px;margin-block-start:3px}
.apb-premium-row-label{font-size:10.5px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;color:var(--apb-rx-muted)}
.apb-premium-row-lock{position:absolute;inset-inline-end:14px;inset-block-start:50%;display:grid;place-items:center;width:24px;height:24px;transform:translateY(-50%);border-radius:50%;background:var(--apb-rx-soft);color:var(--apb-rx-muted)}
.apb-premium-row-lock svg{width:13px;height:13px}
.apb-rx-vp-row[data-access="locked"].is-active .apb-premium-row-lock{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-vp-row[data-video-complete] .apb-rx-vp-thumb::before{content:"✓";position:absolute;z-index:2;inset-block-start:4px;inset-inline-end:4px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font-size:11px;font-weight:900}

.apb-premium-companion{max-width:980px;margin:18px auto 0}
.apb-premium-companion-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(250px,.85fr);gap:14px}
.apb-premium-companion-inner[hidden],.apb-premium-companion-locked[hidden]{display:none}
.apb-premium-companion-locked{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface);box-shadow:var(--apb-rx-shadow-1)}
.apb-premium-companion-lock{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text)}
.apb-premium-companion-lock svg{width:17px;height:17px}
.apb-premium-companion-copy{flex:1;min-width:0}
.apb-premium-companion-copy h3{margin:0 0 3px;color:var(--apb-rx-ink);font-size:14px}
.apb-premium-companion-copy p{margin:0;color:var(--apb-rx-muted);font-size:12.5px;line-height:1.45}
.apb-premium-companion-unlock{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-radius:10px;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.apb-premium-panel{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface);box-shadow:var(--apb-rx-shadow-1)}
.apb-premium-panel[hidden]{display:none}
.apb-premium-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 16px;border-block-end:1px solid var(--apb-rx-line)}
.apb-premium-panel-head h3{margin:0;font-size:14px;color:var(--apb-rx-ink)}
.apb-premium-chapters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}
.apb-premium-chapter{min-width:0;padding:10px;border:0;border-radius:10px;background:var(--apb-rx-soft);color:var(--apb-rx-ink);text-align:start;font:inherit;cursor:pointer}
.apb-premium-chapter:hover{background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-soft))}
.apb-premium-chapter:focus-visible{outline:2px solid var(--apb-rx-brand);outline-offset:1px}
.apb-premium-chapter time{display:block;margin-block-end:3px;color:var(--apb-rx-accent-text);font-size:11px;font-weight:800}
.apb-premium-chapter span{display:block;overflow:hidden;color:var(--apb-rx-ink);font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.apb-premium-transcript{padding:14px 16px}
.apb-premium-transcript p{margin:0;color:var(--apb-rx-muted);font-size:13px;line-height:1.58;white-space:pre-line}
.apb-premium-transcript a{display:inline-block;margin-block-start:10px;color:var(--apb-rx-accent-text);font-size:12px;font-weight:750}

.apb-premium-dialog{width:min(480px,calc(100% - 32px));padding:0;border:0;border-radius:18px;background:var(--apb-rx-surface);color:var(--apb-rx-ink);box-shadow:var(--apb-rx-shadow-2)}
.apb-premium-dialog::backdrop{background:color-mix(in srgb,var(--apb-rx-ink,#111) 66%,transparent)}
.apb-premium-dialog-card{position:relative;padding:26px}
.apb-premium-dialog-close{position:absolute;inset-block-start:14px;inset-inline-end:14px;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:9px;background:var(--apb-rx-soft);color:var(--apb-rx-muted);font:inherit;font-size:20px;cursor:pointer}
.apb-premium-dialog-kicker{margin:0 0 7px;color:var(--apb-rx-accent-text);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.apb-premium-dialog h2{max-width:360px;margin:0;font-size:25px;letter-spacing:-.025em}
.apb-premium-dialog-copy{margin:9px 0 18px;color:var(--apb-rx-muted);font-size:14px;line-height:1.55}
.apb-premium-plan{padding:16px;border:1px solid var(--apb-rx-line);border-radius:12px;background:var(--apb-rx-soft)}
.apb-premium-plan-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.apb-premium-plan-name{font-size:14px;font-weight:800}
.apb-premium-plan-price{font-size:18px;font-weight:800}
.apb-premium-plan-price small{font-size:12px;font-weight:600;color:var(--apb-rx-muted)}
.apb-premium-plan ul{display:grid;gap:7px;margin:12px 0 0;padding:0;list-style:none;color:var(--apb-rx-muted);font-size:13px}
.apb-premium-plan li::before{content:"✓";margin-inline-end:7px;color:var(--apb-rx-accent-text);font-weight:900}
.apb-premium-checkout{display:grid;place-items:center;width:100%;min-height:44px;margin-block-start:14px;border:0;border-radius:10px;background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);font:inherit;font-size:14px;font-weight:800;text-decoration:none;cursor:pointer}
.apb-premium-dialog-note{margin:10px 0 0;color:var(--apb-rx-muted);font-size:11.5px;text-align:center}

@media(max-width:760px){
  .apb-premium-summary-inner{align-items:stretch;flex-direction:column}
  .apb-premium-continue{width:100%}
  .apb-premium-companion-inner{grid-template-columns:1fr}
  .apb-premium-companion-locked{align-items:stretch;flex-wrap:wrap}
  .apb-premium-companion-copy{min-width:calc(100% - 54px)}
  .apb-premium-companion-unlock{width:100%}
}
@media(max-width:560px){
  .apb-rx-player[data-premium-state="locked"] .apb-rx-player-stage{min-height:350px;aspect-ratio:auto}
  .apb-rx-player-stage>.apb-premium-gate{padding:12px}
  .apb-premium-gate-card{padding:18px 14px}
  .apb-premium-gate-actions{align-items:stretch;flex-direction:column}
  .apb-premium-gate-actions button{width:100%}
  .apb-premium-gate-copy{font-size:12.5px}
  .apb-premium-chapters{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .apb-premium-progress span{transition:none}
}
/* ==== assets/pages/component-tools.css ==== */
/**
 * Calculator/estimator tool recipes: savings_calculator / roi_calculator / mortgage_calculator /
 * carbon_calculator / quote_estimator. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme.
 * Reduced-motion fallbacks inline. Rendered by trait-apb-component-render-tools.php.
 */

/* ---------- shared range input look ---------- */
.apb-rx-sav-range,.apb-rx-roit-input,.apb-rx-mortt-range,.apb-rx-carbt-range,.apb-rx-qet-range{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:var(--apb-rx-soft);outline:none}
.apb-rx-sav-range::-webkit-slider-thumb,.apb-rx-mortt-range::-webkit-slider-thumb,.apb-rx-carbt-range::-webkit-slider-thumb,.apb-rx-qet-range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-brand);box-shadow:0 4px 12px -2px var(--apb-rx-glow);cursor:pointer}
.apb-rx-sav-range::-moz-range-thumb,.apb-rx-mortt-range::-moz-range-thumb,.apb-rx-carbt-range::-moz-range-thumb,.apb-rx-qet-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-brand);cursor:pointer}
.apb-rx-sav-range:disabled,.apb-rx-carbt-range:disabled,.apb-rx-qet-range:disabled{opacity:.85;cursor:default}

/* ---------- savings_calculator ---------- */
.apb-rx-sav{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-sav-inner{max-width:840px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,48px);align-items:center}
.apb-rx-sav h2{font-size:clamp(24px,3.6vw,34px);font-weight:780;letter-spacing:-.025em;line-height:1.1;margin:0 0 12px;color:var(--apb-rx-ink)}
.apb-rx-sav-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 24px}
.apb-rx-sav-field{margin-bottom:22px}
.apb-rx-sav-field label{display:flex;justify-content:space-between;font-size:14px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:10px}
.apb-rx-sav-field label b{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-sav-card{background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(24px,3vw,34px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-sav-card p{margin:0;font-size:13.5px;font-weight:600;color:var(--apb-rx-muted);letter-spacing:.02em}
.apb-rx-sav-big{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(40px,7vw,58px);font-weight:800;letter-spacing:-.035em;line-height:1;margin:8px 0 4px;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-sav-per{font-size:13px;color:var(--apb-rx-muted);margin:0 0 20px}
.apb-rx-sav-bars{display:flex;flex-direction:column;gap:12px}
.apb-rx-sav-bar{font-size:12.5px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-sav-bar .t{display:flex;justify-content:space-between;margin-bottom:6px}
.apb-rx-sav-bar .track{height:9px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-sav-bar .fill{height:100%;border-radius:999px}
.apb-rx-sav-bar.them .fill{width:100%;background:color-mix(in srgb,var(--apb-rx-ink) 26%,transparent)}
.apb-rx-sav-bar.us .fill{background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
@media(max-width:720px){.apb-rx-sav-inner{grid-template-columns:1fr}}

/* ---------- roi_calculator ---------- */
.apb-rx-roit{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-roit-head{text-align:center;max-width:560px;margin:0 auto 34px}
.apb-rx-roit-head .eb{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 10px}
.apb-rx-roit-head h2{font-size:clamp(24px,3.6vw,34px);font-weight:780;letter-spacing:-.025em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-roit-head p{font-size:16px;color:var(--apb-rx-muted);margin:0;line-height:1.6}
.apb-rx-roit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,32px);align-items:stretch;max-width:900px;margin:0 auto}
.apb-rx-roit-form{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(22px,3vw,30px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-roit-fld{margin-bottom:18px}
.apb-rx-roit-fld:last-child{margin-bottom:0}
.apb-rx-roit-fld label{display:block;font-size:13px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:7px}
.apb-rx-roit-input{width:100%;font:inherit;font-size:15px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:11px 14px;outline:none;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-roit-input:focus{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-roit-out{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(155deg,color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-ink)),var(--apb-rx-ink));color:#fff;border-radius:var(--apb-rx-radius,16px);padding:clamp(24px,3vw,34px);box-shadow:0 20px 50px -20px var(--apb-rx-glow)}
.apb-rx-roit-out .lbl{font-size:13px;font-weight:600;color:rgba(255,255,255,.72);letter-spacing:.02em;margin:0}
.apb-rx-roit-out .big{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(38px,7vw,54px);font-weight:800;letter-spacing:-.035em;line-height:1;margin:8px 0 16px;font-variant-numeric:tabular-nums}
.apb-rx-roit-break{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;color:rgba(255,255,255,.85)}
.apb-rx-roit-break li{display:flex;justify-content:space-between}
.apb-rx-roit-break li.net{border-top:1px solid rgba(255,255,255,.2);padding-top:8px;font-weight:700;color:#fff}
.apb-rx-roit .apb-rx-btn{align-self:flex-start}
@media(max-width:720px){.apb-rx-roit-grid{grid-template-columns:1fr}}

/* ---------- mortgage_calculator ---------- */
.apb-rx-mortt{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-mortt-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr 0.9fr;gap:clamp(22px,3vw,40px);align-items:center}
.apb-rx-mortt h2{font-size:clamp(23px,3.4vw,31px);font-weight:780;letter-spacing:-.025em;margin:0 0 8px;color:var(--apb-rx-ink)}
.apb-rx-mortt-lead{font-size:15px;color:var(--apb-rx-muted);margin:0 0 22px;line-height:1.6}
.apb-rx-mortt-fld{margin-bottom:18px}
.apb-rx-mortt-fld label{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:9px}
.apb-rx-mortt-fld label b{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-mortt-out{text-align:center;background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(24px,3vw,32px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-mortt-out .lbl{font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin:0}
.apb-rx-mortt-out .big{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(40px,7vw,54px);font-weight:800;letter-spacing:-.035em;line-height:1;margin:8px 0 4px;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-mortt-out .per{font-size:13px;color:var(--apb-rx-muted);margin:0 0 18px}
.apb-rx-mortt-brk{text-align:left;display:flex;flex-direction:column;gap:8px;font-size:13px}
.apb-rx-mortt-brk .r{display:flex;justify-content:space-between;color:var(--apb-rx-ink)}
.apb-rx-mortt-brk .r span:first-child{color:var(--apb-rx-muted)}
@media(max-width:720px){.apb-rx-mortt-inner{grid-template-columns:1fr}}

/* ---------- carbon_calculator ---------- */
.apb-rx-carbt{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-carbt-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:1fr 0.9fr;gap:clamp(22px,3vw,40px);align-items:center}
.apb-rx-carbt h2{font-size:clamp(23px,3.4vw,31px);font-weight:780;letter-spacing:-.025em;margin:0 0 8px;color:var(--apb-rx-ink)}
.apb-rx-carbt-lead{font-size:15px;color:var(--apb-rx-muted);margin:0 0 22px;line-height:1.6}
.apb-rx-carbt-fld{margin-bottom:18px}
.apb-rx-carbt-fld label{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:9px}
.apb-rx-carbt-fld label b{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-carbt-out{text-align:center;background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(26px,3vw,34px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-carbt-ring{width:130px;height:130px;margin:0 auto 14px;position:relative}
.apb-rx-carbt-ring svg{transform:rotate(-90deg)}
.apb-rx-carbt-ring .val{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.apb-rx-carbt-ring .num{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:30px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);line-height:1;font-variant-numeric:tabular-nums}
.apb-rx-carbt-ring .unit{font-size:11px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-carbt-out .cap{font-size:13px;color:var(--apb-rx-muted);margin:0 0 16px}
.apb-rx-carbt-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:14.5px;padding:11px 20px;border-radius:var(--apb-rx-radius-pill,999px);color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));box-shadow:0 8px 20px -8px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-carbt-btn:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-carbt-btn{transition:none}}
@media(max-width:720px){.apb-rx-carbt-inner{grid-template-columns:1fr}}

/* ---------- quote_estimator ---------- */
.apb-rx-qet{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-qet-inner{max-width:820px;margin:0 auto}
.apb-rx-qet-head{text-align:center;max-width:520px;margin:0 auto 30px}
.apb-rx-qet-head h2{font-size:clamp(24px,3.6vw,33px);font-weight:780;letter-spacing:-.025em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-qet-head p{font-size:16px;color:var(--apb-rx-muted);margin:0;line-height:1.6}
.apb-rx-qet-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:clamp(22px,3vw,32px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-qet-fld{margin-bottom:22px}
.apb-rx-qet-fld .fh{font-size:14px;font-weight:650;color:var(--apb-rx-ink);margin-bottom:11px}
.apb-rx-qet-chips{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-qet-chip{font:inherit;font-size:14px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1.5px solid transparent;border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px;cursor:pointer}
.apb-rx-qet-chip.on{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-qet-result{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:6px;padding-top:22px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-qet-result .rl{font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin:0}
.apb-rx-qet-result .rp{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(28px,5vw,38px);font-weight:800;letter-spacing:-.03em;color:var(--apb-rx-ink);margin:2px 0 0;font-variant-numeric:tabular-nums}
.apb-rx-qet-cta{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;padding:13px 22px;border-radius:var(--apb-rx-radius-pill,999px);color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));box-shadow:0 8px 20px -8px var(--apb-rx-glow);white-space:nowrap;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-qet-cta:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-qet-cta{transition:none}}
/* ==== assets/pages/component-tools2.css ==== */
/**
 * Configurator/selector recipes: product_configurator / bundle_builder / sizing_tool / plan_recommender /
 * comparison_selector / metric_comparison_toggle. apb-rx-* tokens only; brand derives from
 * --apb-rx-brand + scheme. comparison_selector + metric_comparison_toggle are CSS-only radio-driven
 * (flat input+label-then-content DOM, same convention as the shipped feature_tabs `.apb-rx-ti-N` rule);
 * no JS. Rendered by trait-apb-component-render-tools2.php / -tools2b.php.
 */

/* ---------- shared button ---------- */
.apb-rx-t2btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;padding:12px 22px;border:0;cursor:pointer;border-radius:var(--apb-rx-radius-pill,999px);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-t2btn--primary{color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-t2btn--primary:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-t2btn{transition:none}}

/* ---------- product configurator ---------- */
.apb-rx-cfg{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-cfg-inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,48px);align-items:center}
.apb-rx-cfg-media{aspect-ratio:1;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-cfg-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-cfg h2{font-size:clamp(23px,3.4vw,31px);font-weight:780;letter-spacing:-.025em;margin:0 0 6px;color:var(--apb-rx-ink)}
.apb-rx-cfg-lead{font-size:15px;color:var(--apb-rx-muted);margin:0 0 24px;line-height:1.6}
.apb-rx-cfg-opt{margin-bottom:20px}
.apb-rx-cfg-opt .ol{font-size:13px;font-weight:700;color:var(--apb-rx-ink);margin-bottom:9px;letter-spacing:.01em}
.apb-rx-cfg-chips{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-cfg-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-cfg-chip{display:inline-flex;align-items:center;font-size:14px;font-weight:600;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cfg-chip span{color:var(--apb-rx-muted);margin-left:4px}
.apb-rx-cfg-input:checked+.apb-rx-cfg-chip{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cfg-input:focus-visible+.apb-rx-cfg-chip{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-cfg-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding-top:22px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-cfg-price{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:32px;font-weight:800;letter-spacing:-.03em;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-cfg-price small{display:block;font-size:12px;font-weight:600;color:var(--apb-rx-muted);letter-spacing:.02em}
@media(max-width:720px){.apb-rx-cfg-inner{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-cfg-chip{transition:none}}

/* ---------- bundle builder ---------- */
.apb-rx-bnd{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-bnd-inner{max-width:900px;margin:0 auto;display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(22px,3vw,36px);align-items:start}
.apb-rx-bnd h2{font-size:clamp(23px,3.4vw,31px);font-weight:780;letter-spacing:-.025em;margin:0 0 6px;color:var(--apb-rx-ink)}
.apb-rx-bnd-lead{font-size:15px;color:var(--apb-rx-muted);margin:0 0 22px;line-height:1.6}
.apb-rx-bnd-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.apb-rx-bnd-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-bnd-item{display:block;cursor:pointer;text-align:left;background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:14px;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease);position:relative}
.apb-rx-bnd-item .thumb{width:100%;aspect-ratio:16/10;border-radius:10px;object-fit:cover;display:block;margin-bottom:10px;background:var(--apb-rx-soft)}
.apb-rx-bnd-item .nm{display:block;font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-bnd-item .pr{display:block;font-size:13px;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-bnd-item .tick{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--apb-rx-brand);opacity:0;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-bnd-input:checked+.apb-rx-bnd-item{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bnd-input:checked+.apb-rx-bnd-item .tick{opacity:1}
.apb-rx-bnd-input:focus-visible+.apb-rx-bnd-item{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-bnd-sum{position:sticky;top:20px;background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-bnd-sum .sh{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 14px}
.apb-rx-bnd-line{display:flex;justify-content:space-between;font-size:14px;color:var(--apb-rx-ink);padding:6px 0}
.apb-rx-bnd-line.save{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:650}
.apb-rx-bnd-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:14px;border-top:2px solid var(--apb-rx-line);font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-bnd-total b{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:26px;letter-spacing:-.02em}
.apb-rx-bnd .apb-rx-t2btn{display:block;width:100%;text-align:center;margin-top:16px}
@media(max-width:720px){.apb-rx-bnd-inner{grid-template-columns:1fr}.apb-rx-bnd-sum{position:static}}
@media(prefers-reduced-motion:reduce){.apb-rx-bnd-item{transition:none}.apb-rx-bnd-item .tick{transition:none}}

/* ---------- size finder ---------- */
.apb-rx-sz{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-sz-inner{max-width:640px;margin:0 auto;text-align:center}
.apb-rx-sz h2{font-size:clamp(24px,3.6vw,32px);font-weight:780;letter-spacing:-.025em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-sz-lead{font-size:16px;color:var(--apb-rx-muted);margin:0 0 28px;line-height:1.6}
.apb-rx-sz-fields{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:28px}
.apb-rx-sz-fld{text-align:left}
.apb-rx-sz-fld label{display:block;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);margin-bottom:6px}
.apb-rx-sz-input{width:130px;font:inherit;font-size:15px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:11px 14px}
.apb-rx-sz-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}
.apb-rx-sz-cell{padding:16px 6px;border-radius:var(--apb-rx-radius,14px);border:1.5px solid var(--apb-rx-line);background:var(--apb-rx-surface,#fff)}
.apb-rx-sz-cell .s{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:20px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-sz-cell .r{font-size:11px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-sz-cell.rec{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff))}
.apb-rx-sz-cell.rec .s{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-sz-note{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border-radius:var(--apb-rx-radius-pill,999px);padding:8px 16px}
@media(max-width:520px){.apb-rx-sz-scale{grid-template-columns:repeat(3,1fr)}}

/* ---------- plan recommender ---------- */
.apb-rx-rec{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-rec-inner{max-width:860px;margin:0 auto}
.apb-rx-rec-head{text-align:center;max-width:520px;margin:0 auto 30px}
.apb-rx-rec-head h2{font-size:clamp(24px,3.6vw,33px);font-weight:780;letter-spacing:-.025em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-rec-head p{font-size:16px;color:var(--apb-rx-muted);margin:0;line-height:1.6}
.apb-rx-rec-qs{display:flex;flex-direction:column;gap:16px;max-width:560px;margin:0 auto 32px}
.apb-rx-rec-q{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:18px 20px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-rec-q .qh{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink);margin-bottom:12px}
.apb-rx-rec-opts{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-rec-opt{display:inline-flex;font-size:14px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1.5px solid transparent;border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px}
.apb-rx-rec-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apb-rx-rec-plan{position:relative;background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px 20px;text-align:center}
.apb-rx-rec-plan .pn{font-size:15px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-rec-plan .pp{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--apb-rx-ink);margin:0}
.apb-rx-rec-plan .pp small{font-size:13px;font-weight:600;color:var(--apb-rx-muted);margin-left:2px}
.apb-rx-rec-plan .pd{font-size:12.5px;color:var(--apb-rx-muted);margin:8px 0 0;line-height:1.5}
.apb-rx-rec-plan.rec{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));box-shadow:0 18px 40px -18px var(--apb-rx-glow)}
.apb-rx-rec-plan .tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));border-radius:999px;padding:4px 12px}
@media(max-width:640px){.apb-rx-rec-plans{grid-template-columns:1fr}}

/* ---------- comparison selector (CSS-only radio-driven) ---------- */
.apb-rx-cmpsel{padding:clamp(48px,8vw,88px) 24px}
.apb-rx-cmpsel-inner{max-width:900px;margin:0 auto}
.apb-rx-cmpsel-head{text-align:center;max-width:520px;margin:0 auto 26px}
.apb-rx-cmpsel-head h2{font-size:clamp(24px,3.6vw,33px);font-weight:780;letter-spacing:-.025em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-cmpsel-head p{font-size:16px;color:var(--apb-rx-muted);margin:0;line-height:1.6}
.apb-rx-cmpsel-widget{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.apb-rx-cmpsel-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-cmpsel-chip{font-size:14px;font-weight:600;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cmpsel-input:checked+.apb-rx-cmpsel-chip{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cmpsel-input:focus-visible+.apb-rx-cmpsel-chip{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-cmpsel-table{flex:1 1 100%;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-cmpsel-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center}
.apb-rx-cmpsel-row+.apb-rx-cmpsel-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-cmpsel-row>div{padding:14px 18px;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-cmpsel-row .lab{font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-cmpsel-row.h{background:var(--apb-rx-soft);font-weight:750;font-size:15px}
.apb-rx-cmpsel-c-1,.apb-rx-cmpsel-c-2,.apb-rx-cmpsel-c-3,.apb-rx-cmpsel-c-4{display:none}
.apb-rx-cmpsel-i-1:checked~.apb-rx-cmpsel-table .apb-rx-cmpsel-c-1{display:inline}
.apb-rx-cmpsel-i-2:checked~.apb-rx-cmpsel-table .apb-rx-cmpsel-c-2{display:inline}
.apb-rx-cmpsel-i-3:checked~.apb-rx-cmpsel-table .apb-rx-cmpsel-c-3{display:inline}
.apb-rx-cmpsel-i-4:checked~.apb-rx-cmpsel-table .apb-rx-cmpsel-c-4{display:inline}
@media(max-width:640px){.apb-rx-cmpsel-row{grid-template-columns:1fr 1fr}.apb-rx-cmpsel-row .lab{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.apb-rx-cmpsel-chip{transition:none}}

/* ---------- metric comparison toggle (CSS-only radio-driven) ---------- */
.apb-rx-mct{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-mct-inner{max-width:860px;margin:0 auto}
.apb-rx-mct-top{margin-bottom:18px}
.apb-rx-mct-top h3{font-size:19px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0}
.apb-rx-mct-widget{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.apb-rx-mct-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-mct-seg{font-size:13px;font-weight:600;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 15px;cursor:pointer;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mct-input:checked+.apb-rx-mct-seg{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-mct-input:focus-visible+.apb-rx-mct-seg{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-mct-grid{flex:1 1 100%;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.apb-rx-mct-tile{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:18px 18px 16px}
.apb-rx-mct-tl{font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);margin:0 0 8px}
.apb-rx-mct-v{display:none}
.apb-rx-mct-tv{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0;font-variant-numeric:tabular-nums}
.apb-rx-mct-delta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border-radius:999px;padding:3px 8px;margin-top:10px}
.apb-rx-mct-delta.up{color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff))}
.apb-rx-mct-delta.down{color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-mct-vs{font-size:11.5px;color:var(--apb-rx-muted);margin-top:8px}
.apb-rx-mct-i-1:checked~.apb-rx-mct-grid .apb-rx-mct-v-1{display:block}
.apb-rx-mct-i-2:checked~.apb-rx-mct-grid .apb-rx-mct-v-2{display:block}
.apb-rx-mct-i-3:checked~.apb-rx-mct-grid .apb-rx-mct-v-3{display:block}
@media(max-width:720px){.apb-rx-mct-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-mct-seg{transition:none}}
/* ==== assets/pages/component-pricing2.css ==== */
/**
 * Pricing-2 recipes: pricing_matrix / usage_pricing_visual / plan_comparison_toggle /
 * enterprise_contact_tier / addons_marketplace / price_anchoring / free_vs_paid.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-pricing2.php. No literals for brand/glow/tint.
 */

/* ---------- pricing_matrix ---------- */
.apb-rx-pm{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-pm-inner{max-width:820px;margin:0 auto}
.apb-rx-pm-h{text-align:center;font-size:clamp(22px,3.2vw,28px);font-weight:750;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 22px}
.apb-rx-pm-wrap{overflow-x:auto}
.apb-rx-pm-table{width:100%;min-width:600px;border-collapse:collapse;font-size:14px}
.apb-rx-pm-table thead th{position:sticky;top:0;z-index:3;background:var(--apb-rx-surface,#fff);padding:16px 14px 18px;text-align:center;vertical-align:top;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-pm-table thead th:first-child{text-align:left;z-index:4}
.apb-rx-pm-plan{font-size:15px;font-weight:750;color:var(--apb-rx-ink);letter-spacing:-.01em}
.apb-rx-pm-price{font-size:12.5px;color:var(--apb-rx-muted);margin:2px 0 12px;font-variant-numeric:tabular-nums}
.apb-rx-pm-buy{display:inline-block;font:inherit;font-size:13px;font-weight:650;text-decoration:none;cursor:pointer;border-radius:var(--apb-rx-radius-pill,999px);padding:9px 18px;white-space:nowrap;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pm-buy:hover{transform:translateY(-1px)}
.apb-rx-pm-buy.ghost{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-pm-buy.solid{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:1px solid var(--apb-rx-brand);box-shadow:0 8px 18px -8px var(--apb-rx-glow)}
.apb-rx-pm-rec-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:6px;white-space:nowrap}
.apb-rx-pm-table td{padding:13px 14px;text-align:center;border-bottom:1px solid var(--apb-rx-line);color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-pm-table td:first-child{text-align:left;color:var(--apb-rx-ink);font-weight:500}
.apb-rx-pm-rec{background:color-mix(in srgb,var(--apb-rx-brand) 5%,var(--apb-rx-surface,#fff))}
.apb-rx-pm-table thead th.apb-rx-pm-rec{background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff))}
.apb-rx-pm-yes{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;color:var(--apb-rx-check,#16a34a);background:color-mix(in srgb,var(--apb-rx-check,#16a34a) 12%,transparent)}
.apb-rx-pm-rec .apb-rx-pm-yes{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
.apb-rx-pm-no{color:color-mix(in srgb,var(--apb-rx-ink) 22%,transparent)}
.apb-rx-pm-feat{display:inline-flex;align-items:center;gap:7px}
.apb-rx-pm-info{position:relative;display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;color:var(--apb-rx-muted);cursor:help;flex:0 0 auto}
.apb-rx-pm-info:hover,.apb-rx-pm-info:focus-visible{color:var(--apb-rx-accent-text,var(--apb-rx-brand));outline:none}
.apb-rx-pm-tip{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%) translateY(4px);width:230px;background:var(--apb-rx-ink);color:#fff;font-size:12.5px;font-weight:400;line-height:1.5;text-align:left;border-radius:var(--apb-rx-radius,10px);padding:11px 13px;box-shadow:0 16px 36px -14px rgba(11,13,18,.5);opacity:0;visibility:hidden;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease);z-index:5;pointer-events:none}
.apb-rx-pm-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--apb-rx-ink)}
.apb-rx-pm-info:hover .apb-rx-pm-tip,.apb-rx-pm-info:focus-visible .apb-rx-pm-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
@media(prefers-reduced-motion:reduce){.apb-rx-pm-buy,.apb-rx-pm-tip{transition:none}}

/* ---------- usage_pricing_visual (static; disabled decorative range, no working slider) ---------- */
.apb-rx-up{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-up-inner{max-width:680px;margin:0 auto;text-align:center}
.apb-rx-up h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-up-lead{font-size:16px;color:var(--apb-rx-muted);margin:0 0 30px}
.apb-rx-up-val{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(44px,8vw,62px);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-up-val small{font-size:16px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-up-usage{font-size:14px;color:var(--apb-rx-muted);margin:8px 0 26px}
.apb-rx-up-usage b{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:700}
.apb-rx-up-range{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:999px;background:var(--apb-rx-soft);outline:none;margin-bottom:18px;opacity:.6}
.apb-rx-up-range::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-brand);cursor:default}
.apb-rx-up-range::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-brand);cursor:default}
.apb-rx-up-tiers{display:flex;gap:8px}
.apb-rx-up-tier{flex:1;min-width:0;text-align:center;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:12px 8px}
.apb-rx-up-tier.on{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff))}
.apb-rx-up-tier .tn{font-size:13px;font-weight:700;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-up-tier.on .tn{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-up-tier .tr{font-size:11.5px;color:var(--apb-rx-muted);margin-top:2px}

/* ---------- plan_comparison_toggle (CSS-only :checked billing switch) ---------- */
.apb-rx-pct{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-pct-inner{max-width:840px;margin:0 auto}
.apb-rx-pct-head{text-align:center;margin:0 auto 24px}
.apb-rx-pct-head h3{font-size:clamp(24px,3.6vw,33px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 16px}
.apb-rx-pct-toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:4px;min-width:260px}
.apb-rx-pct-toggle input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-pct-toggle label{position:relative;z-index:2;text-align:center;cursor:pointer;font-size:14px;font-weight:600;color:var(--apb-rx-muted);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 16px;white-space:nowrap;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pct-thumb{position:absolute;inset:4px 50% 4px 4px;background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);box-shadow:0 4px 12px -4px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease);z-index:1}
.apb-rx-pct-toggle input:first-of-type:checked ~ label:first-of-type{color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-pct-toggle input:last-of-type:checked ~ .apb-rx-pct-thumb{transform:translateX(100%)}
.apb-rx-pct-toggle input:last-of-type:checked ~ label:last-of-type{color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-pct-save{font-size:12px;font-weight:700}
.apb-rx-pct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.apb-rx-pct-card{position:relative;background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:26px 22px;display:flex;flex-direction:column;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pct-card.pop{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));box-shadow:0 20px 44px -20px var(--apb-rx-glow)}
.apb-rx-pct-card:hover{transform:translateY(-3px)}
.apb-rx-pct-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:4px 12px;white-space:nowrap}
.apb-rx-pct-nm{font-size:15px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-pct-price{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:38px;font-weight:800;letter-spacing:-.03em;color:var(--apb-rx-ink);line-height:1;font-variant-numeric:tabular-nums}
.apb-rx-pct-price .amt-y{display:none}
.apb-rx-pct:has(.apb-rx-pct-toggle input:last-of-type:checked) .amt-m{display:none}
.apb-rx-pct:has(.apb-rx-pct-toggle input:last-of-type:checked) .amt-y{display:inline}
.apb-rx-pct-per{font-size:12.5px;color:var(--apb-rx-muted);margin:6px 0 16px}
.apb-rx-pct-feats{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}
.apb-rx-pct-feats li{display:flex;gap:9px;font-size:13.5px;color:var(--apb-rx-ink)}
.apb-rx-pct-feats svg{color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:0 0 auto;margin-top:2px}
.apb-rx-pct-btn{display:block;width:100%;text-align:center;text-decoration:none;font:inherit;font-size:14px;font-weight:650;cursor:pointer;border-radius:var(--apb-rx-radius-pill,999px);padding:11px;margin-top:auto}
.apb-rx-pct-card.pop .apb-rx-pct-btn{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-pct-card:not(.pop) .apb-rx-pct-btn{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
@media(max-width:680px){.apb-rx-pct-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-pct-thumb,.apb-rx-pct-toggle label,.apb-rx-pct-card{transition:none}}

/* ---------- enterprise_contact_tier ---------- */
.apb-rx-ent{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ent-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:1.2fr 0.8fr;gap:clamp(24px,4vw,44px);align-items:center;background:linear-gradient(155deg,color-mix(in srgb,var(--apb-rx-brand) 16%,var(--apb-rx-ink)),var(--apb-rx-ink));border-radius:var(--apb-rx-radius,20px);padding:clamp(28px,4vw,44px);color:#fff;box-shadow:0 30px 64px -26px var(--apb-rx-glow)}
.apb-rx-ent-kicker{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-brand) 60%,#fff);margin:0 0 10px}
.apb-rx-ent h3{font-size:clamp(24px,3.6vw,32px);font-weight:800;letter-spacing:-.025em;line-height:1.1;margin:0 0 12px}
.apb-rx-ent-lead{font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.75);margin:0 0 20px}
.apb-rx-ent-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.apb-rx-ent-list li{display:flex;align-items:center;gap:9px;font-size:13.5px;color:rgba(255,255,255,.9)}
.apb-rx-ent-list svg{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff);flex:0 0 auto}
.apb-rx-ent-cta{text-align:center}
.apb-rx-ent-cta .price{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0 0 4px}
.apb-rx-ent-cta .sub{font-size:13px;color:rgba(255,255,255,.6);margin:0 0 18px}
.apb-rx-ent-btn{display:block;width:100%;text-align:center;text-decoration:none;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:14px;box-shadow:0 10px 24px -8px var(--apb-rx-glow)}
.apb-rx-ent-alt{display:block;width:100%;text-align:center;margin-top:10px;font:inherit;font-size:13px;font-weight:600;color:rgba(255,255,255,.7);background:none;border:0;cursor:pointer;text-decoration:none}
@media(max-width:640px){.apb-rx-ent-inner{grid-template-columns:1fr}.apb-rx-ent-list{grid-template-columns:1fr}}

/* ---------- addons_marketplace ---------- */
.apb-rx-adm{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-adm-inner{max-width:680px;margin:0 auto}
.apb-rx-adm-head{margin:0 0 20px}
.apb-rx-adm-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-adm-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-adm-list{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-adm-row{display:flex;align-items:center;gap:14px;padding:16px 18px}
.apb-rx-adm-row+.apb-rx-adm-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-adm-info{flex:1;min-width:0}
.apb-rx-adm-t{display:block;font-size:14.5px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-adm-d{display:block;font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-adm-price{font-size:13.5px;font-weight:650;color:var(--apb-rx-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.apb-rx-adm-tog{flex:0 0 auto;position:relative;width:44px;height:26px;display:block}
.apb-rx-adm-tog input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.apb-rx-adm-tog span{position:absolute;inset:0;border-radius:999px;background:var(--apb-rx-line);transition:background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-adm-tog span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(11,13,18,.3);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-adm-tog input:checked ~ span{background:var(--apb-rx-brand)}
.apb-rx-adm-tog input:checked ~ span::after{transform:translateX(18px)}
.apb-rx-adm-tog input:focus-visible ~ span{outline:2px solid var(--apb-rx-ring,var(--apb-rx-brand));outline-offset:2px}
.apb-rx-adm-total{display:flex;align-items:baseline;justify-content:space-between;margin-top:16px;padding:16px 18px;background:color-mix(in srgb,var(--apb-rx-brand) 6%,var(--apb-rx-surface,#fff));border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px)}
.apb-rx-adm-total .l{font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-adm-total .v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-variant-numeric:tabular-nums}
.apb-rx-adm-total .v small{font-size:13px;color:var(--apb-rx-muted);font-weight:600}
@media(prefers-reduced-motion:reduce){.apb-rx-adm-tog span,.apb-rx-adm-tog span::after{transition:none}}

/* ---------- price_anchoring ---------- */
.apb-rx-pa{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-pa-inner{max-width:520px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);padding:clamp(26px,4vw,36px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-pa-h{text-align:center;font-size:20px;font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 18px}
.apb-rx-pa-stack{list-style:none;margin:0 0 18px;padding:0}
.apb-rx-pa-stack li{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14.5px;padding:10px 0;color:var(--apb-rx-ink)}
.apb-rx-pa-stack li+li{border-top:1px solid var(--apb-rx-line)}
.apb-rx-pa-stack .lbl{display:flex;align-items:center;gap:9px;min-width:0}
.apb-rx-pa-stack .lbl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apb-rx-pa-stack svg{color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:0 0 auto}
.apb-rx-pa-stack .val{color:var(--apb-rx-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.apb-rx-pa-sep{display:flex;align-items:center;justify-content:space-between;padding:14px 0 4px;font-size:14px;color:var(--apb-rx-muted)}
.apb-rx-pa-sep .was{text-decoration:line-through;font-variant-numeric:tabular-nums}
.apb-rx-pa-today{display:flex;align-items:baseline;justify-content:space-between;padding-top:12px;border-top:2px solid var(--apb-rx-line)}
.apb-rx-pa-today .l{font-size:16px;font-weight:750;color:var(--apb-rx-ink)}
.apb-rx-pa-today .v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:40px;font-weight:800;letter-spacing:-.03em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));line-height:1;font-variant-numeric:tabular-nums}
.apb-rx-pa-btn{display:block;width:100%;text-align:center;text-decoration:none;margin-top:20px;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:14px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-pa-fine{text-align:center;font-size:12px;color:var(--apb-rx-muted);margin:10px 0 0}

/* ---------- free_vs_paid ---------- */
.apb-rx-fvp{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-fvp-inner{max-width:760px;margin:0 auto}
.apb-rx-fvp-head{text-align:center;max-width:520px;margin:0 auto 28px}
.apb-rx-fvp-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-fvp-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-fvp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.apb-rx-fvp-card{border-radius:var(--apb-rx-radius,18px);padding:28px 24px;display:flex;flex-direction:column}
.apb-rx-fvp-card.free{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-fvp-card.paid{background:linear-gradient(155deg,color-mix(in srgb,var(--apb-rx-brand) 20%,var(--apb-rx-ink)),var(--apb-rx-ink));color:#fff;box-shadow:0 24px 54px -22px var(--apb-rx-glow)}
.apb-rx-fvp-kicker{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-fvp-card.free .apb-rx-fvp-kicker{color:var(--apb-rx-muted)}
.apb-rx-fvp-card.paid .apb-rx-fvp-kicker{color:color-mix(in srgb,var(--apb-rx-brand) 60%,#fff)}
.apb-rx-fvp-nm{font-size:20px;font-weight:800;letter-spacing:-.02em;margin:0 0 16px}
.apb-rx-fvp-card.free .apb-rx-fvp-nm{color:var(--apb-rx-ink)}
.apb-rx-fvp-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-direction:column;gap:11px;flex:1}
.apb-rx-fvp-list li{display:flex;gap:10px;font-size:14px}
.apb-rx-fvp-card.free .apb-rx-fvp-list li{color:var(--apb-rx-ink)}
.apb-rx-fvp-card.paid .apb-rx-fvp-list li{color:rgba(255,255,255,.88)}
.apb-rx-fvp-list svg{flex:0 0 auto;margin-top:2px}
.apb-rx-fvp-card.free .apb-rx-fvp-list svg{color:var(--apb-rx-muted)}
.apb-rx-fvp-card.paid .apb-rx-fvp-list svg{color:color-mix(in srgb,var(--apb-rx-brand) 55%,#fff)}
.apb-rx-fvp-btn{display:block;width:100%;text-align:center;text-decoration:none;font:inherit;font-size:14.5px;font-weight:650;cursor:pointer;border-radius:var(--apb-rx-radius-pill,999px);padding:12px;margin-top:auto}
.apb-rx-fvp-card.free .apb-rx-fvp-btn{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-fvp-card.paid .apb-rx-fvp-btn{color:var(--apb-rx-ink);background:#fff;border:0}
@media(max-width:600px){.apb-rx-fvp-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-ecom.css ==== */
/**
 * Ecommerce merchandising recipes: variant_selector / stock_urgency / category_tiles / deal_grid /
 * flash_sale. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Rendered by
 * trait-apb-component-render-ecom.php. variant_selector's swatch/price swap is pure CSS
 * (:checked + :nth-of-type sibling reveal, no JS). No literals for brand/glow/tint.
 */

/* ---------- shared ecom CTA button ---------- */
.apb-rx-ecbtn,.apb-rx-vs-add,.apb-rx-su-add{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:14px 20px;box-shadow:0 8px 20px -8px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ecbtn:hover,.apb-rx-vs-add:hover,.apb-rx-su-add:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-ecbtn,.apb-rx-vs-add,.apb-rx-su-add{transition:none}}

/* ---------- 1. variant_selector ---------- */
.apb-rx-vs{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-vs-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,44px);align-items:center}
.apb-rx-vs-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.apb-rx-vs-media{position:relative;aspect-ratio:1;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-vs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
.apb-rx-vs-copy h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-vs-price{display:none;font-size:20px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 22px;font-variant-numeric:tabular-nums}
.apb-rx-vs-price s{color:var(--apb-rx-muted);font-weight:500;font-size:16px;margin-left:8px}
.apb-rx-vs-swatches{display:flex;gap:10px;margin-bottom:18px}
.apb-rx-vs-sw{display:block;width:34px;height:34px;border-radius:50%;cursor:pointer;border:2px solid var(--apb-rx-line);background-clip:content-box;padding:2px;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-vs-sizes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.apb-rx-vs-size{display:inline-flex;align-items:center;justify-content:center;min-width:44px;font-size:14px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:9px 12px}
.apb-rx-vs-size--off{opacity:.4;text-decoration:line-through}
.apb-rx-vs-add{width:100%;margin-top:8px}
@media(prefers-reduced-motion:reduce){.apb-rx-vs-sw{transition:none}}
@media(max-width:640px){.apb-rx-vs-inner{grid-template-columns:1fr}}
/* first variant shown by default; :checked+:nth-of-type reveal swaps image/price/active-swatch — no JS */
.apb-rx-vs-media .apb-rx-vs-p-0{display:block}
.apb-rx-vs-copy p.apb-rx-vs-p-0{display:block}
.apb-rx-vs-copy label.apb-rx-vs-p-0{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-media img.apb-rx-vs-p-0{display:block}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-0){display:none}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-media img.apb-rx-vs-p-1{display:block}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-1){display:none}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-media img.apb-rx-vs-p-2{display:block}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-2){display:none}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-media img.apb-rx-vs-p-3{display:block}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-3){display:none}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-media img.apb-rx-vs-p-4{display:block}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-4){display:none}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-media img.apb-rx-vs-p-5{display:block}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-media img:not(.apb-rx-vs-p-5){display:none}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-copy p.apb-rx-vs-p-0{display:block}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-0){display:none}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-copy p.apb-rx-vs-p-1{display:block}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-1){display:none}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-copy p.apb-rx-vs-p-2{display:block}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-2){display:none}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-copy p.apb-rx-vs-p-3{display:block}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-3){display:none}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-copy p.apb-rx-vs-p-4{display:block}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-4){display:none}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-copy p.apb-rx-vs-p-5{display:block}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-copy p.apb-rx-vs-price:not(.apb-rx-vs-p-5){display:none}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-copy label.apb-rx-vs-p-0{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(1):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-0){border-color:var(--apb-rx-line);transform:none}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-copy label.apb-rx-vs-p-1{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(2):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-1){border-color:var(--apb-rx-line);transform:none}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-copy label.apb-rx-vs-p-2{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(3):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-2){border-color:var(--apb-rx-line);transform:none}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-copy label.apb-rx-vs-p-3{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(4):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-3){border-color:var(--apb-rx-line);transform:none}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-copy label.apb-rx-vs-p-4{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(5):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-4){border-color:var(--apb-rx-line);transform:none}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-copy label.apb-rx-vs-p-5{border-color:var(--apb-rx-accent-text,var(--apb-rx-brand));transform:scale(1.05)}
.apb-rx-vs-radio:nth-of-type(6):checked~.apb-rx-vs-copy label.apb-rx-vs-sw:not(.apb-rx-vs-p-5){border-color:var(--apb-rx-line);transform:none}

/* ---------- 2. stock_urgency ---------- */
.apb-rx-su{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-su-inner{max-width:760px;margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,40px);align-items:center}
.apb-rx-su-media{aspect-ratio:1;border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-su-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-su-name{font-size:clamp(20px,3vw,26px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-su-price{font-size:19px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 18px;font-variant-numeric:tabular-nums}
.apb-rx-su-low{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius-pill,999px);padding:6px 13px;margin-bottom:14px}
.apb-rx-su-stock{margin-bottom:16px}
.apb-rx-su-sl{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);margin-bottom:7px}
.apb-rx-su-track{height:8px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-su-fill{height:100%;border-radius:999px;background:var(--apb-rx-brand)}
.apb-rx-su-note{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--apb-rx-muted);margin:0 0 20px}
.apb-rx-su-note svg{flex:0 0 auto;color:var(--apb-rx-muted)}
.apb-rx-su-add{width:100%}
@media(max-width:600px){.apb-rx-su-inner{grid-template-columns:1fr}}

/* ---------- 3. category_tiles ---------- */
.apb-rx-cat{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-cat-inner{max-width:900px;margin:0 auto}
.apb-rx-cat-head{margin:0 0 24px}
.apb-rx-cat-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-cat-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-cat-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:180px;gap:14px}
.apb-rx-cat-tile{position:relative;border-radius:var(--apb-rx-radius,16px);overflow:hidden;text-decoration:none;background:var(--apb-rx-soft)}
.apb-rx-cat-tile.big{grid-row:span 2}
.apb-rx-cat-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-cat-tile:hover img,.apb-rx-cat-tile:focus-visible img{transform:scale(1.04)}
.apb-rx-cat-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.62),transparent 55%)}
.apb-rx-cat-cap{position:absolute;left:16px;bottom:14px;z-index:1;color:#fff}
.apb-rx-cat-cap .t{font-size:16px;font-weight:750;letter-spacing:-.01em}
.apb-rx-cat-cap .n{font-size:12.5px;color:rgba(255,255,255,.8);margin-top:2px}
.apb-rx-cat-go{position:absolute;right:14px;bottom:14px;z-index:1;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);opacity:0;transform:translateX(-4px);transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease),transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cat-tile:hover .apb-rx-cat-go,.apb-rx-cat-tile:focus-visible .apb-rx-cat-go{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.apb-rx-cat-tile img,.apb-rx-cat-go{transition:none}}
@media(hover:none){.apb-rx-cat-go{opacity:1;transform:none}}
@media(max-width:640px){.apb-rx-cat-grid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.apb-rx-cat-tile.big{grid-row:span 1;grid-column:span 2}}

/* ---------- 4. deal_grid ---------- */
.apb-rx-dg{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-dg-inner{max-width:920px;margin:0 auto}
.apb-rx-dg-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.apb-rx-dg-top h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-dg-view{font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-dg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.apb-rx-dg-card{display:block;color:inherit;text-decoration:none;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-dg-card:hover{transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2,0 12px 30px -14px rgba(11,13,18,.24))}
.apb-rx-dg-media{position:relative;aspect-ratio:1;background:var(--apb-rx-soft)}
.apb-rx-dg-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-dg-badge{position:absolute;top:10px;left:10px;font-size:11px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:4px 9px}
.apb-rx-dg-body{padding:12px 14px 14px}
.apb-rx-dg-nm{font-size:13.5px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-dg-pr{margin-top:5px;display:flex;align-items:baseline;gap:7px;font-variant-numeric:tabular-nums}
.apb-rx-dg-pr .now{font-size:15px;font-weight:750;color:var(--apb-rx-ink)}
.apb-rx-dg-pr .was{font-size:12.5px;color:var(--apb-rx-muted);text-decoration:line-through}
.apb-rx-dg-save{margin-top:4px;font-size:12px;font-weight:600;color:var(--apb-rx-muted)}
@media(prefers-reduced-motion:reduce){.apb-rx-dg-card{transition:none}}
@media(max-width:720px){.apb-rx-dg-grid{grid-template-columns:1fr 1fr}}

/* ---------- 5. flash_sale ---------- */
.apb-rx-fs{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-fs-inner{max-width:900px;margin:0 auto}
.apb-rx-fs-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-fs-title{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-fs-title small{display:block;font-size:14px;font-weight:600;color:var(--apb-rx-muted);letter-spacing:0;margin-top:2px}
.apb-rx-fs-timer{display:flex;gap:8px;align-items:center}
.apb-rx-fs-unit{text-align:center;min-width:52px;background:var(--apb-rx-ink);color:#fff;border-radius:var(--apb-rx-radius,10px);padding:9px 8px}
.apb-rx-fs-unit .n{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:22px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.apb-rx-fs-unit .l{font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:4px}
.apb-rx-fs-colon{color:var(--apb-rx-muted);font-weight:800}
.apb-rx-fs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.apb-rx-fs-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-fs-media{position:relative;aspect-ratio:1;background:var(--apb-rx-soft)}
.apb-rx-fs-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-fs-off{position:absolute;top:10px;left:10px;font-size:11px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:4px 9px}
.apb-rx-fs-body{padding:12px 14px}
.apb-rx-fs-nm{font-size:13.5px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-fs-pr{margin-top:4px;font-size:14px;font-weight:700;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-fs-pr s{color:var(--apb-rx-muted);font-weight:500;font-size:12.5px;margin-left:6px}
@media(max-width:680px){.apb-rx-fs-grid{grid-template-columns:1fr 1fr}}
/* ==== assets/pages/component-convert.css ==== */
/**
 * Conversion-overlay recipes: exit_intent_modal / slide_in_offer / sticky_bottom_bar /
 * urgency_banner_variety / social_share_bar.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Every card is FAIL-OPEN/NON-BLOCKING: rendered inline in normal flow (never position:fixed to the
 * viewport). exit_intent_modal / slide_in_offer use the shipped checkbox-toggle CSS-only dismiss idiom
 * (unchecked = visible, :checked ~ content = hidden) — same shape as apb-rx-cck cookie_consent.
 * Rendered by trait-apb-component-render-convert.php. No literals for brand/glow/tint.
 */

/* ---------- shared overlay buttons ---------- */
.apb-rx-cvbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font:inherit;font-weight:650;font-size:14.5px;cursor:pointer;border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:12px 22px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cvbtn--primary{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-cvbtn--primary:hover{transform:translateY(-2px)}
.apb-rx-cvbtn--ghost{color:var(--apb-rx-ink);background:none;padding:12px 8px}
.apb-rx-cvbtn--flat{color:var(--apb-rx-ink);background:#fff;padding:7px 15px;font-size:13px;font-weight:700;white-space:nowrap}
@media(prefers-reduced-motion:reduce){.apb-rx-cvbtn{transition:none}}

/* ---------- exit_intent_modal ---------- */
.apb-rx-eim{padding:clamp(30px,5vw,56px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);display:flex;justify-content:center}
.apb-rx-eim-toggle{position:absolute;opacity:0;pointer-events:none}
.apb-rx-eim-card{position:relative;width:min(440px,100%);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);padding:clamp(28px,4vw,38px);text-align:center;box-shadow:var(--apb-rx-shadow-2,0 30px 70px -24px rgba(11,13,18,.4));transition:transform var(--apb-rx-t-slow,.4s) var(--apb-rx-ease),opacity var(--apb-rx-t-slow,.4s) var(--apb-rx-ease)}
.apb-rx-eim-toggle:checked ~ .apb-rx-eim-card{transform:scale(.94);opacity:0;pointer-events:none;position:absolute}
.apb-rx-eim-close{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-eim-ic{width:60px;height:60px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-eim-card h3{font-size:23px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-eim-card p{font-size:15px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 12px;max-width:34ch}
.apb-rx-eim-code{display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,Menlo,monospace;font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px dashed var(--apb-rx-line);border-radius:10px;padding:10px 16px;margin-bottom:20px}
.apb-rx-eim-card .apb-rx-cvbtn--primary{display:block;width:100%}
.apb-rx-eim-no{display:block;width:100%;margin-top:10px;font-size:13px;font-weight:600;color:var(--apb-rx-muted);cursor:pointer}
@media(prefers-reduced-motion:reduce){.apb-rx-eim-card{transition:none}}

/* ---------- slide_in_offer ---------- */
.apb-rx-sio{position:relative;min-height:280px;padding:clamp(32px,5vw,56px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-sio-toggle{position:absolute;opacity:0;pointer-events:none}
.apb-rx-sio-copy{max-width:420px}
.apb-rx-sio-copy h3{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-sio-copy p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-sio-card{position:absolute;right:20px;bottom:20px;width:min(300px,80%);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);box-shadow:var(--apb-rx-shadow-2,0 22px 50px -18px rgba(11,13,18,.32));overflow:hidden;transition:transform var(--apb-rx-t-slow,.4s) var(--apb-rx-ease),opacity var(--apb-rx-t-slow,.4s) var(--apb-rx-ease)}
.apb-rx-sio-toggle:checked ~ .apb-rx-sio-card{transform:translateY(24px);opacity:0;pointer-events:none;position:absolute}
/* P8: when a REAL form is embedded, give the card room (wider, its body scrolls) — the compact thumb+CTA card is unchanged. */
.apb-rx-sio-card:has(.apb-rx-sio-formhost){width:min(400px,92%);max-height:min(80vh,560px);overflow-y:auto}
.apb-rx-sio-card:has(.apb-rx-sio-formhost) .apb-rx-sio-formhost{padding:16px 18px}
.apb-rx-sio-thumb{height:96px;background:linear-gradient(135deg,color-mix(in srgb,var(--apb-rx-brand) 18%,var(--apb-rx-ink)),var(--apb-rx-ink));position:relative}
.apb-rx-sio-thumb::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 20% 0%,color-mix(in srgb,var(--apb-rx-brand) 40%,transparent),transparent 60%)}
.apb-rx-sio-close{position:absolute;top:8px;right:8px;z-index:1;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;background:rgba(8,10,15,.4)}
.apb-rx-sio-body{padding:16px}
.apb-rx-sio-body h4{font-size:15px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-sio-body p{font-size:13px;line-height:1.5;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-sio-body .apb-rx-cvbtn--primary{display:block;width:100%;font-size:14px;padding:11px}
@media(prefers-reduced-motion:reduce){.apb-rx-sio-card{transition:none}}

/* ---------- sticky_bottom_bar ---------- */
.apb-rx-sbb{position:relative;min-height:260px;padding:clamp(32px,5vw,52px) 24px 96px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-sbb-copy{max-width:440px}
.apb-rx-sbb-copy h3{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-sbb-copy p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-sbb-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px;padding:14px 22px;background:color-mix(in srgb,var(--apb-rx-surface,#fff) 88%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--apb-rx-line)}
.apb-rx-sbb-info{flex:1;min-width:0}
.apb-rx-sbb-t{font-size:14.5px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-sbb-s{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-sbb-s b{color:var(--apb-rx-ink);font-weight:650}
.apb-rx-sbb .apb-rx-cvbtn--primary{box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
@media(max-width:520px){.apb-rx-sbb .apb-rx-cvbtn--ghost{display:none}}

/* ---------- urgency_banner_variety ---------- */
.apb-rx-ubv{padding:0}
.apb-rx-ubv-bar{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:12px 20px;background:var(--apb-rx-ink);color:#fff}
.apb-rx-ubv-msg{font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:9px;color:#fff}
.apb-rx-ubv-msg svg{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ubv-msg b{color:#fff}
.apb-rx-ubv-timer{display:inline-flex;align-items:center;gap:5px}
.apb-rx-ubv-cell{min-width:30px;text-align:center;font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:14px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:6px;padding:3px 5px;font-variant-numeric:tabular-nums}
.apb-rx-ubv-cell i{font-style:normal;margin-left:3px;opacity:.75;font-size:10px}
.apb-rx-ubv-stock{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:15px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:3px 11px}
.apb-rx-ubv--flash .apb-rx-ubv-bar{background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
.apb-rx-ubv--flash .apb-rx-ubv-msg svg{color:#fff}

/* ---------- social_share_bar ---------- */
.apb-rx-ssb{position:relative;padding:clamp(32px,5vw,52px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-ssb-inner{max-width:520px;margin-left:64px}
.apb-rx-ssb-inner h3{font-size:20px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-ssb-inner p{font-size:15px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-ssb-rail{position:absolute;left:20px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:10px}
.apb-rx-ssb-btn{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ssb-btn:hover{transform:translateY(-2px);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ssb-btn .n{position:absolute;top:-6px;right:-6px;font-size:10px;font-weight:700;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:999px;padding:1px 5px}
.apb-rx-ssb-btn.saved{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:560px){.apb-rx-ssb-rail{position:static;transform:none;flex-direction:row;margin-bottom:20px}.apb-rx-ssb-inner{margin-left:0}}
@media(prefers-reduced-motion:reduce){.apb-rx-ssb-btn{transition:none}}
/* ==== assets/pages/component-convert2.css ==== */
/**
 * Lead-capture recipes: gated_content / lead_magnet / webinar_registration / demo_request.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Rendered by
 * trait-apb-component-render-convert2.php. Each form host renders either a real embedded APB form
 * (.apb-rx-formhost, styled generically) or a decorative non-submitting field set (the `-decorative`
 * sibling class) — both share the same input/button chrome so the swap is visually seamless.
 */

/* ---------- gated content ---------- */
.apb-rx-gc{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-gc-inner{max-width:680px;margin:0 auto;position:relative;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-gc-peek{padding:28px 28px 0}
.apb-rx-gc-peek h3{font-size:22px;font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 14px}
.apb-rx-gc-peek p{font-size:15.5px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-gc-blur{position:relative;min-height:120px;overflow:hidden}
.apb-rx-gc-blur>p{font-size:15.5px;line-height:1.7;color:var(--apb-rx-muted);margin:0 28px 12px;filter:blur(4px);user-select:none}
.apb-rx-gc-gate{position:relative;padding:40px 28px 28px;background:linear-gradient(transparent,var(--apb-rx-surface,#fff) 44%);text-align:center;margin-top:-52px}
.apb-rx-gc-lock{width:40px;height:40px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-gc-gate h4{font-size:16px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-gc-gate>p{font-size:13.5px;color:var(--apb-rx-muted);margin:0 0 16px}
.apb-rx-gc-form,.apb-rx-gc-form-decorative{display:flex;gap:8px;max-width:400px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.apb-rx-gc-form input,.apb-rx-gc-form-decorative input{flex:1;min-width:180px;font:inherit;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:11px 14px;outline:none}
.apb-rx-gc-form button,.apb-rx-gc-form-decorative button{flex:0 0 auto;font:inherit;font-size:14px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius,10px);padding:11px 18px}
.apb-rx-gc-form-decorative input[disabled],.apb-rx-gc-form-decorative button[disabled]{opacity:.7;cursor:default}

/* ---------- lead magnet ---------- */
.apb-rx-lm{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-lm-inner{max-width:760px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,4vw,40px);align-items:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);padding:clamp(26px,4vw,38px);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-lm-cover{flex:0 0 auto;width:132px;aspect-ratio:3/4;border-radius:var(--apb-rx-radius,12px);background:linear-gradient(150deg,color-mix(in srgb,var(--apb-rx-brand) 22%,var(--apb-rx-ink)),var(--apb-rx-ink));display:flex;flex-direction:column;justify-content:flex-end;padding:16px;color:var(--apb-rx-accent-contrast,#fff);box-shadow:0 18px 40px -18px var(--apb-rx-glow);position:relative;overflow:hidden}
.apb-rx-lm-cover .glow{position:absolute;inset:0;background:radial-gradient(70% 60% at 30% 10%,color-mix(in srgb,var(--apb-rx-brand) 45%,transparent),transparent 60%)}
.apb-rx-lm-cover .kind{position:relative;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.apb-rx-lm-cover .ct{position:relative;font-size:15px;font-weight:800;letter-spacing:-.01em;line-height:1.2;margin-top:6px}
.apb-rx-lm-eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 8px}
.apb-rx-lm h3{font-size:clamp(20px,3vw,26px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-lm-lead{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 18px}
.apb-rx-lm-form,.apb-rx-lm-form-decorative{display:flex;gap:8px;max-width:400px;flex-wrap:wrap}
.apb-rx-lm-form input,.apb-rx-lm-form-decorative input{flex:1;min-width:180px;font:inherit;font-size:14.5px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:11px 14px;outline:none}
.apb-rx-lm-form button,.apb-rx-lm-form-decorative button{flex:0 0 auto;font:inherit;font-size:14.5px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius,10px);padding:11px 18px}
.apb-rx-lm-form-decorative input[disabled],.apb-rx-lm-form-decorative button[disabled]{opacity:.7;cursor:default}
.apb-rx-lm-note{font-size:12px;color:var(--apb-rx-muted);margin:10px 0 0}
@media(max-width:600px){.apb-rx-lm-inner{grid-template-columns:1fr;justify-items:center;text-align:center}.apb-rx-lm-form,.apb-rx-lm-form-decorative{width:100%}}

/* ---------- webinar registration ---------- */
.apb-rx-wb{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-wb-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1.2fr 0.8fr;gap:clamp(24px,4vw,40px);align-items:start}
.apb-rx-wb-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 12px}
.apb-rx-wb h3{font-size:clamp(24px,3.6vw,32px);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--apb-rx-ink);margin:0 0 10px}
.apb-rx-wb-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-wb-speakers{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.apb-rx-wb-speakers img,.apb-rx-wb-avfallback{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--apb-rx-surface,#fff);margin-left:-10px;background:var(--apb-rx-soft)}
.apb-rx-wb-speakers img:first-child,.apb-rx-wb-speakers .apb-rx-wb-avfallback:first-child{margin-left:0}
.apb-rx-wb-avfallback{display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-wb-speakers .who{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-wb-speakers .who b{display:block;color:var(--apb-rx-ink);font-weight:650;font-size:13.5px}
.apb-rx-wb-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.apb-rx-wb-agenda li{display:flex;gap:12px;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-wb-agenda .t{width:18px;height:18px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);margin-top:1px}
.apb-rx-wb-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:24px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-wb-when{font-size:13px;color:var(--apb-rx-muted);margin:0 0 4px}
.apb-rx-wb-when b,.apb-rx-wb-when em{color:var(--apb-rx-ink);font-weight:650;font-style:normal}
.apb-rx-wb-count{display:flex;gap:6px;margin:14px 0 18px}
.apb-rx-wb-unit{flex:1;text-align:center;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,10px);padding:8px 4px}
.apb-rx-wb-unit .n{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:20px;font-weight:800;color:var(--apb-rx-accent-text,var(--apb-rx-brand));line-height:1;font-variant-numeric:tabular-nums}
.apb-rx-wb-unit .l{font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-muted);margin-top:4px}
.apb-rx-wb-form,.apb-rx-wb-form-decorative{display:flex;flex-direction:column}
.apb-rx-wb-form input,.apb-rx-wb-form-decorative input{width:100%;font:inherit;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:11px 14px;margin-bottom:9px;outline:none;box-sizing:border-box}
.apb-rx-wb-form button,.apb-rx-wb-form-decorative button{width:100%;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px;margin-top:4px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-wb-form-decorative input[disabled],.apb-rx-wb-form-decorative button[disabled]{opacity:.7;cursor:default}
.apb-rx-wb-free{text-align:center;font-size:12px;color:var(--apb-rx-muted);margin-top:10px}
@media(max-width:680px){.apb-rx-wb-inner{grid-template-columns:1fr}}

/* ---------- demo request ---------- */
.apb-rx-dm{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-dm-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,44px);align-items:center}
.apb-rx-dm h3{font-size:clamp(24px,3.6vw,32px);font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-dm-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-dm-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-dm-list li{display:flex;gap:11px;align-items:center;font-size:14.5px;color:var(--apb-rx-ink)}
.apb-rx-dm-list .t{width:22px;height:22px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-dm-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:26px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-dm-card h4{font-size:16px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 16px}
.apb-rx-dm-form,.apb-rx-dm-form-decorative{display:flex;flex-direction:column}
.apb-rx-dm-form input,.apb-rx-dm-form select,.apb-rx-dm-form-decorative input,.apb-rx-dm-form-decorative select{width:100%;font:inherit;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:11px 14px;margin-bottom:11px;outline:none;box-sizing:border-box}
.apb-rx-dm-form button,.apb-rx-dm-form-decorative button{width:100%;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px;margin-top:6px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-dm-form-decorative input[disabled],.apb-rx-dm-form-decorative select[disabled],.apb-rx-dm-form-decorative button[disabled]{opacity:.7;cursor:default}
@media(max-width:680px){.apb-rx-dm-inner{grid-template-columns:1fr}}
/* ==== assets/pages/component-contentx.css ==== */
/**
 * Editorial content-interaction recipes: code_block_copy / content_tabs / expandable_content /
 * reading_progress_toc / inline_newsletter. apb-rx-* tokens only; brand derives from --apb-rx-brand +
 * scheme. Tabs are CSS-only via radio :checked (radios emitted before their sibling tab/panel
 * containers, matching the shipped evsch/portfolio convention). expandable_content uses native
 * <details>/<summary>. Rendered by trait-apb-component-render-contentx.php. No literals for brand/glow.
 */

/* ---------- code block with copy ---------- */
.apb-rx-cb{padding:clamp(36px,6vw,64px) 24px}
.apb-rx-cb-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-cb-inner{max-width:680px;margin:0 auto;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-cb-bar{display:flex;align-items:center;gap:2px;padding:8px 8px 0;background:var(--apb-rx-soft);border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-cb-tab{font:inherit;font-size:13px;font-weight:600;cursor:pointer;color:var(--apb-rx-muted);background:none;border:0;border-bottom:2px solid transparent;padding:9px 14px;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cb-tab:hover{color:var(--apb-rx-ink)}
.apb-rx-cb-copy{margin-left:auto;margin-bottom:6px;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:8px;padding:6px 11px;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-cb-copy:hover{color:var(--apb-rx-ink)}
.apb-rx-cb-pre,.apb-rx-cb-panel{margin:0;padding:18px 20px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;line-height:1.7;color:var(--apb-rx-ink);white-space:pre}
.apb-rx-cb-panel{display:none}
.apb-rx-cb-radio:nth-of-type(1):checked ~ .apb-rx-cb-inner .apb-rx-cb-tab:nth-of-type(1),
.apb-rx-cb-radio:nth-of-type(2):checked ~ .apb-rx-cb-inner .apb-rx-cb-tab:nth-of-type(2),
.apb-rx-cb-radio:nth-of-type(3):checked ~ .apb-rx-cb-inner .apb-rx-cb-tab:nth-of-type(3),
.apb-rx-cb-radio:nth-of-type(4):checked ~ .apb-rx-cb-inner .apb-rx-cb-tab:nth-of-type(4){color:var(--apb-rx-ink);border-bottom-color:var(--apb-rx-brand)}
.apb-rx-cb-radio:nth-of-type(1):checked ~ .apb-rx-cb-inner .apb-rx-cb-panels .apb-rx-cb-panel:nth-of-type(1),
.apb-rx-cb-radio:nth-of-type(2):checked ~ .apb-rx-cb-inner .apb-rx-cb-panels .apb-rx-cb-panel:nth-of-type(2),
.apb-rx-cb-radio:nth-of-type(3):checked ~ .apb-rx-cb-inner .apb-rx-cb-panels .apb-rx-cb-panel:nth-of-type(3),
.apb-rx-cb-radio:nth-of-type(4):checked ~ .apb-rx-cb-inner .apb-rx-cb-panels .apb-rx-cb-panel:nth-of-type(4){display:block}
@media(prefers-reduced-motion:reduce){.apb-rx-cb-tab,.apb-rx-cb-copy{transition:none}}

/* ---------- tabbed content (equal-width segmented control) ---------- */
.apb-rx-ct{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-ct-radio{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.apb-rx-ct-inner{max-width:680px;margin:0 auto;text-align:center}
.apb-rx-ct-head{margin:0 auto 22px}
.apb-rx-ct-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-ct-tabs{display:grid;grid-template-columns:repeat(var(--apb-rx-ct-cols,3),1fr);gap:4px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:4px;margin:0 auto 22px;max-width:560px}
.apb-rx-ct-tab{font:inherit;font-size:14px;font-weight:600;cursor:pointer;color:var(--apb-rx-muted);background:none;border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:9px 14px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ct-panels{position:relative;text-align:left}
.apb-rx-ct-panel{display:none;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:26px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ct-panel h4{font-size:16px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-ct-panel p{font-size:15px;line-height:1.7;color:var(--apb-rx-muted);margin:0}
.apb-rx-ct-radio:nth-of-type(1):checked ~ .apb-rx-ct-inner .apb-rx-ct-tabs .apb-rx-ct-tab:nth-of-type(1),
.apb-rx-ct-radio:nth-of-type(2):checked ~ .apb-rx-ct-inner .apb-rx-ct-tabs .apb-rx-ct-tab:nth-of-type(2),
.apb-rx-ct-radio:nth-of-type(3):checked ~ .apb-rx-ct-inner .apb-rx-ct-tabs .apb-rx-ct-tab:nth-of-type(3),
.apb-rx-ct-radio:nth-of-type(4):checked ~ .apb-rx-ct-inner .apb-rx-ct-tabs .apb-rx-ct-tab:nth-of-type(4),
.apb-rx-ct-radio:nth-of-type(5):checked ~ .apb-rx-ct-inner .apb-rx-ct-tabs .apb-rx-ct-tab:nth-of-type(5){color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 4px 12px -4px var(--apb-rx-glow)}
.apb-rx-ct-radio:nth-of-type(1):checked ~ .apb-rx-ct-inner .apb-rx-ct-panels .apb-rx-ct-panel:nth-of-type(1),
.apb-rx-ct-radio:nth-of-type(2):checked ~ .apb-rx-ct-inner .apb-rx-ct-panels .apb-rx-ct-panel:nth-of-type(2),
.apb-rx-ct-radio:nth-of-type(3):checked ~ .apb-rx-ct-inner .apb-rx-ct-panels .apb-rx-ct-panel:nth-of-type(3),
.apb-rx-ct-radio:nth-of-type(4):checked ~ .apb-rx-ct-inner .apb-rx-ct-panels .apb-rx-ct-panel:nth-of-type(4),
.apb-rx-ct-radio:nth-of-type(5):checked ~ .apb-rx-ct-inner .apb-rx-ct-panels .apb-rx-ct-panel:nth-of-type(5){display:block}
@media(prefers-reduced-motion:reduce){.apb-rx-ct-tab{transition:none}}

/* ---------- expandable "read more" (native details/summary) ---------- */
.apb-rx-ex{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-ex-inner{max-width:660px;margin:0 auto}
.apb-rx-ex-inner h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 14px}
.apb-rx-ex-inner p{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 14px}
.apb-rx-ex-details{margin-top:2px}
.apb-rx-ex-body{padding-top:2px}
.apb-rx-ex-toggle{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:14.5px;font-weight:650;color:var(--apb-rx-accent-text,var(--apb-rx-brand));user-select:none}
.apb-rx-ex-toggle::-webkit-details-marker{display:none}
.apb-rx-ex-toggle svg{transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ex-lbl-open{display:none}
.apb-rx-ex-details[open] .apb-rx-ex-lbl-closed{display:none}
.apb-rx-ex-details[open] .apb-rx-ex-lbl-open{display:inline}
.apb-rx-ex-details[open] .apb-rx-ex-toggle svg{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.apb-rx-ex-toggle svg{transition:none}}

/* ---------- reading progress + TOC ---------- */
.apb-rx-rp{padding:clamp(36px,6vw,64px) 24px}
.apb-rx-rp-inner{max-width:820px;margin:0 auto;display:grid;grid-template-columns:230px 1fr;gap:44px;align-items:start}
.apb-rx-rp-side{position:sticky;top:24px}
.apb-rx-rp-bar{position:relative;height:5px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden;margin-bottom:16px}
.apb-rx-rp-bar span{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
.apb-rx-rp-meta{font-size:12px;font-weight:600;color:var(--apb-rx-muted);margin:0 0 14px}
.apb-rx-rp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.apb-rx-rp-item{display:block;padding:7px 0;font-size:13.5px;font-weight:550;color:var(--apb-rx-muted);text-decoration:none;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-rp-item:hover{color:var(--apb-rx-ink)}
.apb-rx-rp-item.on{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-rp-item.on::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--apb-rx-brand);margin-right:8px;vertical-align:middle}
.apb-rx-rp-body h3{font-size:22px;font-weight:750;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-rp-body p{font-size:16px;line-height:1.7;color:var(--apb-rx-muted);margin:0 0 14px}
@media(max-width:640px){.apb-rx-rp-inner{grid-template-columns:1fr}.apb-rx-rp-side{position:static}}

/* ---------- inline newsletter ---------- */
.apb-rx-in{padding:clamp(28px,4vw,44px) 24px}
.apb-rx-in-inner{max-width:600px;margin:0 auto;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:clamp(22px,3vw,30px);display:flex;gap:20px;align-items:center}
.apb-rx-in-ic{flex:0 0 auto;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-in-body{flex:1;min-width:0}
.apb-rx-in-body h4{font-size:16px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 3px}
.apb-rx-in-body p{font-size:13.5px;color:var(--apb-rx-muted);margin:0 0 12px}
.apb-rx-in-note{font-size:12px;color:var(--apb-rx-muted);margin:8px 0 0}
.apb-rx-in-form,.apb-rx-cs-form{display:flex;gap:8px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 5px 5px 8px}
.apb-rx-in-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:14px;color:var(--apb-rx-ink);padding:0 10px}
.apb-rx-in-form input::placeholder{color:var(--apb-rx-muted)}
.apb-rx-in-form button{flex:0 0 auto;border:0;cursor:pointer;font-weight:650;font-size:13.5px;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:9px 16px}
.apb-rx-in-form button[disabled]{opacity:.7;cursor:default}
.apb-rx-in-formhost{flex:1;min-width:0}
@media(max-width:520px){.apb-rx-in-inner{flex-direction:column;text-align:center}.apb-rx-in-form{text-align:left}}
/* ==== assets/pages/component-aidev.css ==== */
/**
 * AI/developer-docs recipes: prompt_showcase / model_comparison / integration_marketplace /
 * sdk_quickstart / webhook_events_table. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme.
 * Rendered by trait-apb-component-render-aidev.php. sdk_quickstart tabs are CSS-only (:checked radios);
 * prompt_showcase copy + integration_marketplace search/filter render fail-open static (JS wired later).
 */

/* ---------- prompt showcase ---------- */
.apb-rx-ps{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ps-inner{max-width:840px;margin:0 auto}
.apb-rx-ps-head{text-align:center;max-width:520px;margin:0 auto 24px}
.apb-rx-ps-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-ps-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-ps-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.apb-rx-ps-card{display:flex;flex-direction:column;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ps-cat{align-self:flex-start;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent);border-radius:999px;padding:4px 10px;margin-bottom:12px}
.apb-rx-ps-text{flex:1;font-size:14px;line-height:1.6;color:var(--apb-rx-ink);margin:0 0 14px;font-family:ui-monospace,Menlo,monospace;overflow-wrap:anywhere}
.apb-rx-ps-copy{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:8px;padding:7px 12px;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ps-copy:hover{color:var(--apb-rx-ink)}
.apb-rx-ps-copy.done{color:var(--apb-rx-brand);border-color:color-mix(in srgb,var(--apb-rx-brand) 40%,var(--apb-rx-line))}
@media(max-width:600px){.apb-rx-ps-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-ps-copy{transition:none}}

/* ---------- model comparison ---------- */
.apb-rx-mdc{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-mdc-inner{max-width:760px;margin:0 auto}
.apb-rx-mdc-head{text-align:center;max-width:500px;margin:0 auto 24px}
.apb-rx-mdc-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-mdc-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-mdc-table{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:auto;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-mdc-t{width:100%;border-collapse:collapse;font-size:14px}
.apb-rx-mdc-t th,.apb-rx-mdc-t td{padding:14px 16px;text-align:right;white-space:nowrap}
.apb-rx-mdc-t th:first-child,.apb-rx-mdc-t td:first-child{text-align:left;font-weight:600;color:var(--apb-rx-ink);white-space:normal}
.apb-rx-mdc-t thead th{background:var(--apb-rx-soft);font-size:14px;font-weight:750;color:var(--apb-rx-ink);border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-mdc-t thead th small{display:block;font-size:11.5px;font-weight:600;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-mdc-t tbody td{border-top:1px solid var(--apb-rx-line);color:var(--apb-rx-muted);font-variant-numeric:tabular-nums}
.apb-rx-mdc-t .rec{background:color-mix(in srgb,var(--apb-rx-brand) 6%,var(--apb-rx-surface,#fff))}
.apb-rx-mdc-t thead .rec{background:color-mix(in srgb,var(--apb-rx-brand) 12%,var(--apb-rx-surface,#fff));color:var(--apb-rx-brand)}
.apb-rx-mdc-t tbody .rec{color:var(--apb-rx-ink)}
.apb-rx-mdc-yes{color:var(--apb-rx-brand)}
.apb-rx-mdc-no{color:color-mix(in srgb,var(--apb-rx-ink) 24%,transparent)}

/* ---------- integration marketplace ---------- */
.apb-rx-im{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-im-inner{max-width:860px;margin:0 auto}
.apb-rx-im-head{text-align:center;max-width:520px;margin:0 auto 22px}
.apb-rx-im-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-im-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-im-search{display:flex;align-items:center;gap:10px;max-width:420px;margin:0 auto 16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:11px 18px}
.apb-rx-im-search svg{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-im-search input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-im-cats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:22px}
.apb-rx-im-cat{font:inherit;font-size:13px;font-weight:600;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 15px}
.apb-rx-im-cat.on{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-im-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apb-rx-im-card{display:flex;gap:12px;align-items:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:16px;text-decoration:none;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-im-card:hover{border-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-line))}
.apb-rx-im-logo{width:40px;height:40px;border-radius:11px;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);overflow:hidden}
.apb-rx-im-logo img{width:100%;height:100%;object-fit:cover}
.apb-rx-im-logo--txt{font-weight:750;font-size:15px;color:var(--apb-rx-brand)}
.apb-rx-im-nm{font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-im-tag{font-size:12px;color:var(--apb-rx-muted);text-transform:capitalize}
.apb-rx-im-empty{display:none;text-align:center;color:var(--apb-rx-muted);font-size:14px;padding:20px}
@media(max-width:680px){.apb-rx-im-grid{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.apb-rx-im-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-im-card{transition:none}}

/* ---------- sdk quickstart (CSS-only :checked tabs) ---------- */
.apb-rx-sq{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-sq-inner{max-width:680px;margin:0 auto}
.apb-rx-sq-head{margin:0 0 22px}
.apb-rx-sq-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-sq-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-sq-radio{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.apb-rx-sq-tabs{display:inline-flex;gap:4px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:4px;margin-bottom:20px;flex-wrap:wrap}
.apb-rx-sq-tab{display:inline-block;font-size:13px;font-weight:600;cursor:pointer;color:var(--apb-rx-muted);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 16px;transition:color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-sq-radio:checked+.apb-rx-sq-tab{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-sq-radio:focus-visible+.apb-rx-sq-tab{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-sq-step{display:grid;grid-template-columns:32px 1fr;gap:14px;margin-bottom:16px}
.apb-rx-sq-n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent)}
.apb-rx-sq-sh{font-size:14.5px;font-weight:650;color:var(--apb-rx-ink);margin:5px 0 8px}
.apb-rx-sq-code{background:var(--apb-rx-ink);border-radius:var(--apb-rx-radius,10px);padding:14px 16px;overflow-x:auto;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:1.6;color:#e6e9ef;margin:0}
.apb-rx-sq-panel{display:none}
/* Radios are flat siblings of .apb-rx-sq-step (both direct children of .apb-rx-sq-inner); panel N shows
   only while radio N is :checked (CSS-only, no JS). */
.apb-rx-sq-radio--0:checked~.apb-rx-sq-step .apb-rx-sq-panel--0{display:block}
.apb-rx-sq-radio--1:checked~.apb-rx-sq-step .apb-rx-sq-panel--1{display:block}
.apb-rx-sq-radio--2:checked~.apb-rx-sq-step .apb-rx-sq-panel--2{display:block}
.apb-rx-sq-radio--3:checked~.apb-rx-sq-step .apb-rx-sq-panel--3{display:block}
@media(prefers-reduced-motion:reduce){.apb-rx-sq-tab{transition:none}}

/* ---------- webhook events table ---------- */
.apb-rx-we{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-we-inner{max-width:760px;margin:0 auto}
.apb-rx-we-head{margin:0 0 20px}
.apb-rx-we-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-we-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-we-table{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-we-row{display:grid;grid-template-columns:220px 1fr auto;gap:16px;align-items:center;padding:14px 18px}
.apb-rx-we-row+.apb-rx-we-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-we-row.head{background:var(--apb-rx-soft);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--apb-rx-muted)}
.apb-rx-we-ev{font-family:ui-monospace,Menlo,monospace;font-size:13px;font-weight:600;color:var(--apb-rx-brand);white-space:nowrap}
.apb-rx-we-desc{font-size:13.5px;color:var(--apb-rx-muted);line-height:1.5}
.apb-rx-we-method{font-size:11px;font-weight:700;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:6px;padding:3px 8px;white-space:nowrap}
@media(max-width:600px){.apb-rx-we-row{grid-template-columns:1fr;gap:5px}.apb-rx-we-row.head{display:none}}
/* ==== assets/pages/component-onboard.css ==== */
/**
 * Onboarding & product-education recipes: product_tour / welcome_modal / feature_announcement /
 * setup_stepper / whats_new / tooltip_tour / image_hotspots.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-onboard.php + trait-apb-component-render-onboard2.php.
 * No literals for brand/glow/tint. Pin positions are STATIC (author x/y); reveal is CSS-only
 * (:hover/:focus). Welcome-modal dismiss is a CSS-only checkbox hack (fail-open).
 */

/* ---------- shared onboarding buttons ---------- */
.apb-rx-obbtn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:14.5px;padding:11px 20px;border-radius:var(--apb-rx-radius-pill,999px);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-obbtn--primary{color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-obbtn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 28px -10px var(--apb-rx-glow)}
.apb-rx-obbtn--ghost{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-obbtn--ghost:hover{background:var(--apb-rx-soft)}
@media(prefers-reduced-motion:reduce){.apb-rx-obbtn{transition:none}}

/* ---------- product tour (hotspots on a mock UI) ---------- */
.apb-rx-pt{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-pt-inner{max-width:820px;margin:0 auto}
.apb-rx-pt-head{text-align:center;max-width:500px;margin:0 auto 20px}
.apb-rx-pt-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-pt-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-pt-frame{position:relative;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-pt-top{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--apb-rx-line);background:var(--apb-rx-soft)}
.apb-rx-pt-top .d{width:9px;height:9px;border-radius:50%;background:var(--apb-rx-line)}
.apb-rx-pt-top .bar{flex:1;height:10px;border-radius:999px;background:var(--apb-rx-line);max-width:180px;margin-left:8px}
.apb-rx-pt-ui{display:grid;grid-template-columns:150px 1fr;min-height:220px}
.apb-rx-pt-side{border-right:1px solid var(--apb-rx-line);padding:16px;display:flex;flex-direction:column;gap:10px}
.apb-rx-pt-srow{height:12px;border-radius:6px;background:var(--apb-rx-soft)}
.apb-rx-pt-srow.w70{width:70%}.apb-rx-pt-srow.w50{width:50%}.apb-rx-pt-srow.w85{width:85%}
.apb-rx-pt-main{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}
.apb-rx-pt-tile{height:74px;border-radius:12px;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-pt-pin{position:absolute;transform:translate(-50%,-50%);cursor:pointer}
.apb-rx-pt-pin .num{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:12px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 22%,transparent),0 6px 14px -4px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-pt-pin:hover .num,.apb-rx-pt-pin:focus .num{transform:scale(1.12)}
.apb-rx-pt-pin .card{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(4px);width:max-content;max-width:220px;background:var(--apb-rx-ink);color:#fff;border-radius:var(--apb-rx-radius,10px);padding:10px 13px;font-size:13px;line-height:1.5;box-shadow:0 16px 34px -14px rgba(11,13,18,.5);opacity:0;pointer-events:none;transition:opacity var(--apb-rx-t,.22s) var(--apb-rx-ease),transform var(--apb-rx-t,.22s) var(--apb-rx-ease);z-index:4}
.apb-rx-pt-pin .card b{display:block;font-weight:700;margin-bottom:2px}
.apb-rx-pt-pin .card span{display:block;color:rgba(255,255,255,.78)}
.apb-rx-pt-pin:hover .card,.apb-rx-pt-pin:focus .card,.apb-rx-pt-pin:focus-within .card{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto}
@media(prefers-reduced-motion:reduce){.apb-rx-pt-pin .num,.apb-rx-pt-pin .card{transition:none}}

/* ---------- welcome modal (CSS-only checkbox dismiss; fail-open) ---------- */
.apb-rx-wm{position:relative;padding:clamp(30px,5vw,56px) 24px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius,16px);display:flex;justify-content:center}
.apb-rx-wm-dismiss{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.apb-rx-wm-dismiss:checked ~ .apb-rx-wm-card{display:none}
.apb-rx-wm-card{width:min(460px,100%);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,20px);box-shadow:0 30px 70px -24px rgba(11,13,18,.4);overflow:hidden}
.apb-rx-wm-banner{height:96px;background:linear-gradient(135deg,color-mix(in srgb,var(--apb-rx-brand) 22%,var(--apb-rx-ink)),var(--apb-rx-ink));position:relative;display:grid;place-items:center}
.apb-rx-wm-banner .wave{position:absolute;inset:0;background:radial-gradient(60% 120% at 20% 0%,color-mix(in srgb,var(--apb-rx-brand) 40%,transparent),transparent 60%)}
.apb-rx-wm-logo{position:relative;width:52px;height:52px;border-radius:16px;background:var(--apb-rx-brand);box-shadow:0 10px 24px -8px rgba(0,0,0,.5)}
.apb-rx-wm-body{padding:26px}
.apb-rx-wm-body h3{font-size:21px;font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px;text-align:center}
.apb-rx-wm-body p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 20px;text-align:center;max-width:36ch}
.apb-rx-wm-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.apb-rx-wm-opt{display:flex;flex-direction:column;text-align:left;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:14px}
.apb-rx-wm-opt .t{font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-wm-opt .d{font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-wm-body .apb-rx-obbtn{display:block;width:100%;text-align:center;padding:13px}
.apb-rx-wm-skip{display:block;width:100%;text-align:center;margin-top:10px;font-size:13px;font-weight:600;color:var(--apb-rx-muted);cursor:pointer}
.apb-rx-wm-skip:hover{color:var(--apb-rx-ink)}

/* ---------- feature announcement ---------- */
.apb-rx-fa{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-fa-inner{max-width:640px;margin:0 auto;position:relative;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:clamp(24px,3vw,32px);display:flex;gap:20px;align-items:center;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06))}
.apb-rx-fa-beacon{position:absolute;top:-6px;right:-6px;width:14px;height:14px}
.apb-rx-fa-beacon .core{position:absolute;inset:3px;border-radius:50%;background:var(--apb-rx-brand)}
.apb-rx-fa-beacon .ring{position:absolute;inset:0;border-radius:50%;background:var(--apb-rx-brand);opacity:.4;animation:apb-rx-fa-pulse 2s var(--apb-rx-ease,cubic-bezier(.22,1,.36,1)) infinite}
@keyframes apb-rx-fa-pulse{0%{transform:scale(.6);opacity:.5}100%{transform:scale(2.2);opacity:0}}
.apb-rx-fa-visual{flex:0 0 auto;width:88px;height:88px;border-radius:16px;background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-fa-body{flex:1;min-width:0}
.apb-rx-fa-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border-radius:999px;padding:3px 10px;margin-bottom:8px}
.apb-rx-fa-body h4{font-size:18px;font-weight:770;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-fa-body p{font-size:14px;line-height:1.55;color:var(--apb-rx-muted);margin:0 0 14px}
.apb-rx-fa-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){.apb-rx-fa-beacon .ring{animation:none}}
@media(max-width:520px){.apb-rx-fa-inner{flex-direction:column;text-align:center}.apb-rx-fa-actions{justify-content:center}}

/* ---------- setup stepper ---------- */
.apb-rx-ss{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-ss-inner{max-width:720px;margin:0 auto}
.apb-rx-ss-steps{display:flex;align-items:flex-start;margin-bottom:28px}
.apb-rx-ss-step{flex:1;text-align:center;position:relative}
.apb-rx-ss-step::before{content:"";position:absolute;top:17px;left:-50%;width:100%;height:2px;background:var(--apb-rx-line)}
.apb-rx-ss-step:first-child::before{display:none}
.apb-rx-ss-step.done::before,.apb-rx-ss-step.current::before{background:var(--apb-rx-brand)}
.apb-rx-ss-dot{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;margin:0 auto 10px;display:grid;place-items:center;font-size:14px;font-weight:700;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-line);color:var(--apb-rx-muted)}
.apb-rx-ss-step.done .apb-rx-ss-dot{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-ss-step.current .apb-rx-ss-dot{color:var(--apb-rx-brand);border-color:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 16%,transparent)}
.apb-rx-ss-lbl{font-size:13px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-ss-step:not(.done):not(.current) .apb-rx-ss-lbl{color:var(--apb-rx-muted)}
.apb-rx-ss-panel{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:26px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));text-align:center}
.apb-rx-ss-panel h4{font-size:18px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-ss-panel p{font-size:15px;color:var(--apb-rx-muted);margin:0 auto 20px;max-width:44ch;line-height:1.6}
.apb-rx-ss-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:560px){.apb-rx-ss-lbl{font-size:11px}}

/* ---------- what's new ---------- */
.apb-rx-wn{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-wn-inner{max-width:720px;margin:0 auto}
.apb-rx-wn-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-wn-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-wn-all{font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none}
.apb-rx-wn-list{display:flex;flex-direction:column;gap:14px}
.apb-rx-wn-card{display:flex;gap:16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:18px 20px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-wn-thumb{flex:0 0 auto;width:52px;height:52px;border-radius:12px;background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-wn-body{flex:1;min-width:0}
.apb-rx-wn-top{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}
.apb-rx-wn-t{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-wn-tag{font-size:10.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:2px 8px;white-space:nowrap}
.apb-rx-wn-date{margin-left:auto;font-size:12px;color:var(--apb-rx-muted);white-space:nowrap}
.apb-rx-wn-d{font-size:14px;line-height:1.55;color:var(--apb-rx-muted);margin:0}

/* ---------- coachmark tour (static numbered callouts) ---------- */
.apb-rx-tt{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-tt-inner{max-width:640px;margin:0 auto}
.apb-rx-tt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.apb-rx-tt-step{display:flex;gap:16px;align-items:flex-start;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:16px 18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-tt-num{flex:0 0 auto;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 18%,transparent)}
.apb-rx-tt-content{min-width:0}
.apb-rx-tt-target{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border-radius:6px;padding:3px 9px;margin-bottom:6px}
.apb-rx-tt-content .t{font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 4px}
.apb-rx-tt-content .d{font-size:13.5px;line-height:1.55;color:var(--apb-rx-muted);margin:0}

/* ---------- annotated image hotspots (static author x/y pins) ---------- */
.apb-rx-ih{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-ih-inner{max-width:720px;margin:0 auto}
.apb-rx-ih-head{text-align:center;max-width:500px;margin:0 auto 20px}
.apb-rx-ih-head h3{font-size:clamp(21px,3vw,27px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-ih-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-ih-stage{position:relative;border-radius:var(--apb-rx-radius,18px);overflow:hidden;border:1px solid var(--apb-rx-line);aspect-ratio:16/10}
.apb-rx-ih-stage img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-ih-pin{position:absolute;transform:translate(-50%,-50%)}
.apb-rx-ih-pin .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-ih-pin:hover .dot,.apb-rx-ih-pin:focus .dot,.apb-rx-ih-pin:focus-visible .dot{transform:scale(1.12)}
@media(prefers-reduced-motion:reduce){.apb-rx-ih-pin .dot{transition:none}}
.apb-rx-ih-pin .lab{position:absolute;left:34px;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:12.5px;font-weight:650;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:8px;padding:5px 11px;box-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.12))}
.apb-rx-ih-pin.right .lab{left:auto;right:34px}
@media(max-width:520px){.apb-rx-ih-pin .lab{font-size:11px;padding:4px 8px}}
/* ==== assets/pages/component-modals.css ==== */
/**
 * Modal / overlay recipes: modal_dialog / modal_drawer / modal_form / modal_lightbox / modal_sheet.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Every overlay is CSS-only `:target` —
 * closed by default (opacity 0, pointer-events none, zero paint — never traps the page), opened by an
 * in-flow trigger link, closed by a real anchor back to the empty fragment. Reduced-motion fallbacks
 * inline. Rendered by trait-apb-component-render-modals.php.
 */

/* ---------- shared trigger button ---------- */
.apb-rx-mdg-trigger,.apb-rx-mdr-trigger,.apb-rx-mf-trigger,.apb-rx-mds-trigger{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:650;font-size:15px;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));border-radius:var(--apb-rx-radius-pill,999px);padding:12px 24px;box-shadow:0 8px 20px -8px var(--apb-rx-glow);transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mdg-trigger:hover,.apb-rx-mdr-trigger:hover,.apb-rx-mf-trigger:hover,.apb-rx-mds-trigger:hover{transform:translateY(-2px)}
@media(prefers-reduced-motion:reduce){.apb-rx-mdg-trigger,.apb-rx-mdr-trigger,.apb-rx-mf-trigger,.apb-rx-mds-trigger{transition:none}}

/* ---------- shared overlay + scrim base (closed by default, never traps the page) ---------- */
.apb-rx-mdg-overlay,.apb-rx-mdr-overlay,.apb-rx-mf-overlay,.apb-rx-mds-overlay{position:fixed;inset:0;z-index:9000;opacity:0;pointer-events:none;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mdg-overlay:target,.apb-rx-mdr-overlay:target,.apb-rx-mf-overlay:target,.apb-rx-mds-overlay:target{opacity:1;pointer-events:auto}
.apb-rx-mdg-scrim,.apb-rx-mdr-scrim,.apb-rx-mf-scrim,.apb-rx-mds-scrim{position:absolute;inset:0;display:block;background:rgba(9,11,16,.5);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:pointer}
@media(prefers-reduced-motion:reduce){.apb-rx-mdg-overlay,.apb-rx-mdr-overlay,.apb-rx-mf-overlay,.apb-rx-mds-overlay{transition:none}}

/* ---------- modal_dialog ---------- */
.apb-rx-mdg-dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.94);width:min(400px,calc(100% - 40px));background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:26px;text-align:center;box-shadow:0 40px 90px -30px rgba(9,11,16,.6);transition:transform var(--apb-rx-t,.28s) cubic-bezier(.34,1.56,.64,1)}
.apb-rx-mdg-overlay:target .apb-rx-mdg-dialog{transform:translate(-50%,-50%) scale(1)}
.apb-rx-mdg-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-mdg-close:hover{color:var(--apb-rx-ink)}
.apb-rx-mdg-ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin:0 auto 16px;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 11%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-mdg--danger .apb-rx-mdg-ic{background:color-mix(in srgb,var(--apb-rx-brand) 18%,var(--apb-rx-surface,#fff));border-color:color-mix(in srgb,var(--apb-rx-brand) 32%,transparent)}
.apb-rx-mdg--success .apb-rx-mdg-ic{background:color-mix(in srgb,var(--apb-rx-brand) 18%,var(--apb-rx-surface,#fff));border-color:color-mix(in srgb,var(--apb-rx-brand) 32%,transparent)}
.apb-rx-mdg-dialog h3{font-size:19px;font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-mdg-dialog p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 22px;max-width:32ch}
.apb-rx-mdg-actions{display:flex;gap:10px}
.apb-rx-mdg-btn{flex:1;text-decoration:none;display:block;font-size:14.5px;font-weight:650;cursor:pointer;border-radius:var(--apb-rx-radius-pill,999px);padding:12px}
.apb-rx-mdg-btn.ghost{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line)}
.apb-rx-mdg-btn.ghost:hover{background:var(--apb-rx-soft)}
.apb-rx-mdg-btn.primary{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:1px solid var(--apb-rx-brand);box-shadow:0 8px 20px -8px var(--apb-rx-glow)}

/* ---------- modal_drawer ---------- */
.apb-rx-mdr-panel{position:absolute;top:0;right:0;bottom:0;width:min(380px,86%);display:flex;flex-direction:column;background:var(--apb-rx-surface,#fff);border-left:1px solid var(--apb-rx-line);box-shadow:-30px 0 70px -30px rgba(9,11,16,.5);transform:translateX(104%);transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-mdr-overlay:target .apb-rx-mdr-panel{transform:translateX(0)}
.apb-rx-mdr-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-mdr-head h3{font-size:16px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0}
.apb-rx-mdr-close{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-mdr-close:hover{color:var(--apb-rx-ink)}
.apb-rx-mdr-body{flex:1;overflow-y:auto;padding:20px}
.apb-rx-mdr-empty{font-size:14px;color:var(--apb-rx-muted);margin:0}
.apb-rx-mdr-item{display:flex;gap:12px;align-items:center;padding:12px 0}
.apb-rx-mdr-item+.apb-rx-mdr-item{border-top:1px solid var(--apb-rx-line)}
.apb-rx-mdr-item img,.apb-rx-mdr-imgph{width:46px;height:46px;border-radius:10px;object-fit:cover;flex:0 0 auto;background:var(--apb-rx-soft);display:block}
.apb-rx-mdr-item .nm{font-size:13.5px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-mdr-item .meta{font-size:12.5px;color:var(--apb-rx-muted)}
.apb-rx-mdr-item .pr{margin-left:auto;font-size:13.5px;font-weight:700;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-mdr-foot{padding:16px 20px;border-top:1px solid var(--apb-rx-line);background:var(--apb-rx-surface,#fff)}
.apb-rx-mdr-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.apb-rx-mdr-total .l{font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-mdr-total .v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:20px;font-weight:800;color:var(--apb-rx-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.apb-rx-mdr-cta{display:block;width:100%;text-align:center;text-decoration:none;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
@media(prefers-reduced-motion:reduce){.apb-rx-mdr-panel{transition:none}}

/* ---------- modal_form ---------- */
.apb-rx-mf-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.94);width:min(420px,calc(100% - 40px));max-height:calc(100% - 40px);display:flex;flex-direction:column;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);box-shadow:0 40px 90px -30px rgba(9,11,16,.6);overflow:hidden;transition:transform var(--apb-rx-t,.28s) cubic-bezier(.34,1.56,.64,1)}
.apb-rx-mf-overlay:target .apb-rx-mf-card{transform:translate(-50%,-50%) scale(1)}
.apb-rx-mf-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--apb-rx-line);background:var(--apb-rx-surface,#fff)}
.apb-rx-mf-head h3{font-size:17px;font-weight:770;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0}
.apb-rx-mf-close{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft)}
.apb-rx-mf-close:hover{color:var(--apb-rx-ink)}
.apb-rx-mf-body{flex:1;overflow-y:auto;padding:22px}
.apb-rx-mf-lead{font-size:13.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 16px}
.apb-rx-mf-field{margin-bottom:12px}
.apb-rx-mf-field label{display:block;font-size:12.5px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:6px}
.apb-rx-mf-field input{width:100%;font:inherit;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:11px 13px}
.apb-rx-mf-submit{display:block;width:100%;text-align:center;font:inherit;font-size:15px;font-weight:650;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px;margin-top:6px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-mf-submit[disabled]{opacity:.75;cursor:default}
.apb-rx-mf-alt{text-align:center;font-size:12.5px;color:var(--apb-rx-muted);margin:14px 0 0}
.apb-rx-mf-altlink{color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;font-weight:600}
.apb-rx-mf-formhost{margin-top:6px}
@media(prefers-reduced-motion:reduce){.apb-rx-mf-card{transition:none}}

/* ---------- modal_lightbox (trigger = a thumbnail grid; each thumb targets its own overlay) ---------- */
.apb-rx-mlb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.apb-rx-mlb-thumb{display:block;border-radius:var(--apb-rx-radius,10px);overflow:hidden;aspect-ratio:1;background:var(--apb-rx-soft)}
.apb-rx-mlb-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mlb-thumb:hover img{transform:scale(1.05)}
.apb-rx-mlb-overlay{position:fixed;inset:0;z-index:9000;background:#0b0d12;opacity:0;pointer-events:none;transition:opacity var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mlb-overlay:target{opacity:1;pointer-events:auto}
.apb-rx-mlb-stage{position:absolute;inset:0;display:grid;place-items:center;padding:52px 64px}
.apb-rx-mlb-img{max-width:100%;max-height:100%;border-radius:var(--apb-rx-radius,10px);object-fit:contain;box-shadow:0 30px 70px -20px rgba(0,0,0,.6)}
.apb-rx-mlb-close{position:absolute;top:16px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;background:rgba(255,255,255,.12)}
.apb-rx-mlb-close:hover{background:rgba(255,255,255,.22)}
.apb-rx-mlb-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#fff;background:rgba(255,255,255,.12)}
.apb-rx-mlb-nav:hover{background:rgba(255,255,255,.22)}
.apb-rx-mlb-nav.prev{left:14px}.apb-rx-mlb-nav.next{right:14px}
.apb-rx-mlb-bar{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:linear-gradient(transparent,rgba(8,10,15,.72))}
.apb-rx-mlb-cap{min-width:0}
.apb-rx-mlb-cap .t{font-size:14.5px;font-weight:650;color:#fff}
.apb-rx-mlb-cap .s{font-size:12.5px;color:rgba(255,255,255,.6)}
.apb-rx-mlb-dots{display:flex;gap:6px;flex:0 0 auto}
.apb-rx-mlb-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.3);display:block}
.apb-rx-mlb-dots span.on{background:var(--apb-rx-brand);width:18px;border-radius:4px}
@media(prefers-reduced-motion:reduce){.apb-rx-mlb-thumb img,.apb-rx-mlb-overlay{transition:none}}

/* ---------- modal_sheet ---------- */
.apb-rx-mds-sheet{position:absolute;left:0;right:0;bottom:0;background:var(--apb-rx-surface,#fff);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -24px 60px -24px rgba(9,11,16,.45);padding:10px 20px 22px;transform:translateY(102%);transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-mds-overlay:target .apb-rx-mds-sheet{transform:translateY(0)}
.apb-rx-mds-grab{display:block;width:40px;height:5px;border-radius:999px;background:var(--apb-rx-line);margin:0 auto 16px}
.apb-rx-mds-sheet h3{font-size:17px;font-weight:750;letter-spacing:-.01em;color:var(--apb-rx-ink);margin:0 0 3px;text-align:center}
.apb-rx-mds-sub{font-size:13px;color:var(--apb-rx-muted);margin:0 0 16px;text-align:center}
.apb-rx-mds-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.apb-rx-mds-act{display:flex;align-items:center;gap:14px;font-size:15px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:14px 16px}
.apb-rx-mds-act.danger{color:var(--apb-rx-brand)}
.apb-rx-mds-ic{width:34px;height:34px;border-radius:9px;flex:0 0 auto;display:grid;place-items:center;color:var(--apb-rx-ink);background:var(--apb-rx-soft)}
.apb-rx-mds-act.danger .apb-rx-mds-ic{color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 10%,transparent)}
.apb-rx-mds-cancel{display:block;width:100%;text-align:center;text-decoration:none;font-size:14.5px;font-weight:650;cursor:pointer;color:var(--apb-rx-muted);background:var(--apb-rx-soft);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px}
@media(max-width:520px){.apb-rx-mdr-panel{width:100%}}
@media(prefers-reduced-motion:reduce){.apb-rx-mds-sheet{transition:none}}
/* ==== assets/pages/component-socialx.css ==== */
/**
 * Social/data-proof recipes: data_map / data_table_sortable / ugc_gallery / influencer_grid /
 * video_testimonial_wall. apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme.
 * Rendered by trait-apb-component-render-socialx.php. No literals for brand/glow/tint.
 * data_map pins are static on the public page (no drag JS); data_table_sortable is a static,
 * pre-sorted table (no client sort JS in this build).
 */

/* ---------- data map ---------- */
.apb-rx-map{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-map-inner{max-width:860px;margin:0 auto}
.apb-rx-map-head{text-align:center;max-width:480px;margin:0 auto 22px}
.apb-rx-map-head h3{font-size:clamp(20px,3vw,26px);font-weight:770;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-map-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-map-canvas{position:relative;aspect-ratio:2/1;border-radius:var(--apb-rx-radius,16px);border:1px solid var(--apb-rx-line);background:var(--apb-rx-surface,#fff);overflow:hidden}
.apb-rx-map-dots{position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--apb-rx-ink) 16%,transparent) 1.4px,transparent 1.5px);background-size:16px 16px;-webkit-mask-image:radial-gradient(120% 90% at 50% 55%,#000 55%,transparent 78%);mask-image:radial-gradient(120% 90% at 50% 55%,#000 55%,transparent 78%);opacity:.7}
.apb-rx-map-pin{position:absolute;transform:translate(-50%,-50%)}
.apb-rx-map-pin .dot{width:12px;height:12px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-map-pin .lab{position:absolute;left:18px;top:-6px;white-space:nowrap;font-size:11.5px;font-weight:700;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:999px;padding:3px 9px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-map-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}
.apb-rx-map-stat{text-align:center}
.apb-rx-map-stat .v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:24px;font-weight:800;color:var(--apb-rx-ink);letter-spacing:-.02em}
.apb-rx-map-stat .l{font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
@media(max-width:640px){.apb-rx-map-stats{grid-template-columns:1fr 1fr}.apb-rx-map-pin .lab{display:none}}

/* ---------- sortable data table ---------- */
.apb-rx-dt{padding:clamp(36px,6vw,64px) 24px}
.apb-rx-dt-inner{max-width:780px;margin:0 auto;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));overflow-x:auto}
.apb-rx-dt-table{width:100%;border-collapse:collapse;font-size:14px}
.apb-rx-dt-table th{text-align:left;padding:14px 18px;background:var(--apb-rx-soft);font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--apb-rx-muted);text-transform:uppercase;white-space:nowrap}
.apb-rx-dt-table th.num{text-align:right}
.apb-rx-dt-table th .arw{display:inline-flex;margin-left:5px;vertical-align:-2px;opacity:0}
.apb-rx-dt-table th[aria-sort] .arw{opacity:1;color:var(--apb-rx-brand)}
.apb-rx-dt-table th[aria-sort="ascending"] .arw{transform:rotate(180deg)}
.apb-rx-dt-table th[aria-sort]{color:var(--apb-rx-ink)}
.apb-rx-dt-table td{padding:13px 18px;border-top:1px solid var(--apb-rx-line);color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-dt-table td.num{text-align:right}
.apb-rx-dt-name{display:flex;align-items:center;gap:10px;font-weight:600}
.apb-rx-dt-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.apb-rx-dt-dot.up{background:var(--apb-rx-brand)}
.apb-rx-dt-dot.flat{background:color-mix(in srgb,var(--apb-rx-ink) 22%,transparent)}

/* ---------- UGC gallery ---------- */
.apb-rx-ugc{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ugc-inner{max-width:900px;margin:0 auto}
.apb-rx-ugc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-ugc-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-ugc-head p{font-size:15px;color:var(--apb-rx-muted);margin:0}
.apb-rx-ugc-tag{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 14px;white-space:nowrap}
.apb-rx-ugc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.apb-rx-ugc-cell{position:relative;aspect-ratio:1;border-radius:var(--apb-rx-radius,14px);overflow:hidden;background:var(--apb-rx-soft)}
.apb-rx-ugc-cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-ugc-cell:hover img{transform:scale(1.05)}
.apb-rx-ugc-handle{position:absolute;left:10px;bottom:10px;font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.5);z-index:1}
.apb-rx-ugc-cell::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.5),transparent 45%);opacity:.9}
@media(prefers-reduced-motion:reduce){.apb-rx-ugc-cell img{transition:none}.apb-rx-ugc-cell:hover img{transform:none}}
@media(max-width:640px){.apb-rx-ugc-grid{grid-template-columns:1fr 1fr}}

/* ---------- influencer grid ---------- */
.apb-rx-inf{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-inf-inner{max-width:900px;margin:0 auto}
.apb-rx-inf-head{text-align:center;max-width:520px;margin:0 auto 28px}
.apb-rx-inf-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-inf-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-inf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-inf-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;text-align:center;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-inf-av{width:68px;height:68px;border-radius:50%;object-fit:cover;margin:0 auto 12px;display:block;background:var(--apb-rx-soft)}
.apb-rx-avatar{display:grid;place-items:center;font-weight:700;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
.apb-rx-inf-name{font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-inf-handle{font-size:13px;color:var(--apb-rx-muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-inf-stats{display:flex;justify-content:center;gap:20px;margin:14px 0 16px}
.apb-rx-inf-stat .v{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:18px;font-weight:800;color:var(--apb-rx-ink);letter-spacing:-.01em}
.apb-rx-inf-stat .l{font-size:11px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-inf-follow{display:inline-flex;align-items:center;gap:7px;width:100%;justify-content:center;font:inherit;font-size:14px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:10px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease);margin-top:auto}
.apb-rx-inf-follow:hover{transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.apb-rx-inf-follow{transition:none}.apb-rx-inf-follow:hover{transform:none}}
@media(max-width:680px){.apb-rx-inf-grid{grid-template-columns:1fr}}

/* ---------- video testimonial wall ---------- */
.apb-rx-vtw{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-vtw-inner{max-width:900px;margin:0 auto}
.apb-rx-vtw-head{text-align:center;max-width:520px;margin:0 auto 28px}
.apb-rx-vtw-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-vtw-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-vtw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-vtw-card{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-vtw-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--apb-rx-soft)}
.apb-rx-vtw-media img,.apb-rx-vtw-media video{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-vtw-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.35),transparent 50%);pointer-events:none}
.apb-rx-vtw-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:var(--apb-rx-accent-contrast,#fff);background:linear-gradient(135deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)));box-shadow:0 10px 26px -8px var(--apb-rx-glow);z-index:1;pointer-events:none;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-vtw-media:hover .apb-rx-vtw-play{transform:translate(-50%,-50%) scale(1.08)}
.apb-rx-vtw-dur{position:absolute;right:10px;bottom:10px;font-size:11px;font-weight:600;color:#fff;background:rgba(8,10,15,.6);border-radius:6px;padding:2px 7px;z-index:1}
.apb-rx-vtw-cap{padding:14px 16px}
.apb-rx-vtw-name{font-size:14px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-vtw-role{font-size:12.5px;color:var(--apb-rx-muted);margin-top:1px}
@media(prefers-reduced-motion:reduce){.apb-rx-vtw-play{transition:none}.apb-rx-vtw-media:hover .apb-rx-vtw-play{transform:translate(-50%,-50%)}}
@media(max-width:680px){.apb-rx-vtw-grid{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.apb-rx-vtw-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-industry1.css ==== */
/**
 * Industry vertical recipes batch 1: automotive inventory / salon services menu / fintech rate hero /
 * fitness class schedule / healthcare services / hotel rooms + static dates.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-industry1.php. No literals for brand/glow/tint.
 */

/* ---------- automotive_inventory ---------- */
.apb-rx-at{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-at-inner{max-width:900px;margin:0 auto}
.apb-rx-at-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-at-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0}
.apb-rx-at-all{font-size:14px;font-weight:600;color:var(--apb-rx-brand);text-decoration:none}
.apb-rx-at-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-at-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-at-media{position:relative;aspect-ratio:16/10;background:var(--apb-rx-soft)}
.apb-rx-at-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-at-tag{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;color:var(--apb-rx-ink);background:color-mix(in srgb,var(--apb-rx-surface,#fff) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;padding:4px 10px}
.apb-rx-at-body{padding:16px}
.apb-rx-at-nm{font-size:15.5px;font-weight:750;color:var(--apb-rx-ink)}
.apb-rx-at-specs{display:flex;gap:14px;margin:8px 0 12px;font-size:12px;color:var(--apb-rx-muted);flex-wrap:wrap}
.apb-rx-at-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.apb-rx-at-price{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:19px;font-weight:800;color:var(--apb-rx-brand);letter-spacing:-.02em}
.apb-rx-at-drive{font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 14px;text-decoration:none}
@media(max-width:720px){.apb-rx-at-grid{grid-template-columns:1fr}}

/* ---------- salon_services ---------- */
.apb-rx-bs{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-bs-inner{max-width:680px;margin:0 auto}
.apb-rx-bs-head{text-align:center;margin:0 0 26px}
.apb-rx-bs-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-brand);margin:0 0 10px}
.apb-rx-bs-head h3{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(26px,4vw,36px);font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0}
.apb-rx-bs-cat{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-muted);margin:28px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-bs-row{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-bs-info{flex:1;min-width:0}
.apb-rx-bs-nm{font-size:15px;font-weight:650;color:var(--apb-rx-ink)}
.apb-rx-bs-meta{font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-bs-price{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:16px;font-weight:800;color:var(--apb-rx-ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.apb-rx-bs-book{flex:0 0 auto;font:inherit;font-size:13px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:8px 16px;text-decoration:none}
@media(max-width:520px){.apb-rx-bs-book{padding:8px 12px}}

/* ---------- fintech_rate_hero ---------- */
.apb-rx-fin{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-fin-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr 0.85fr;gap:clamp(24px,4vw,44px);align-items:center}
.apb-rx-fin-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-brand);margin:0 0 12px}
.apb-rx-fin h3{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.03em;line-height:1.05;color:var(--apb-rx-ink);margin:0 0 12px}
.apb-rx-fin h3 .apb-rx-em{font-style:normal;color:var(--apb-rx-brand)}
.apb-rx-fin-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 0 22px}
.apb-rx-fin-trust{display:flex;flex-wrap:wrap;gap:14px}
.apb-rx-fin-trust span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-fin-trust svg{color:var(--apb-rx-brand);flex:0 0 auto}
.apb-rx-fin-card{background:linear-gradient(155deg,color-mix(in srgb,var(--apb-rx-brand) 16%,var(--apb-rx-ink)),var(--apb-rx-ink));color:#fff;border-radius:var(--apb-rx-radius,20px);padding:28px;text-align:center;box-shadow:0 26px 56px -24px var(--apb-rx-glow)}
.apb-rx-fin-apylabel{font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0}
.apb-rx-fin-apy{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(44px,8vw,60px);font-weight:800;letter-spacing:-.035em;line-height:1;margin:8px 0 4px}
.apb-rx-fin-apy small{font-size:20px}
.apb-rx-fin-sub{font-size:13px;color:rgba(255,255,255,.7);margin:0 0 20px}
.apb-rx-fin-btn{display:inline-flex;align-items:center;gap:9px;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-ink);background:#fff;border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px 24px;text-decoration:none}
@media(max-width:680px){.apb-rx-fin-inner{grid-template-columns:1fr}}

/* ---------- fitness_class_schedule ---------- */
.apb-rx-ft2{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ft2-inner{max-width:720px;margin:0 auto}
.apb-rx-ft2-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.apb-rx-ft2-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0}
.apb-rx-ft2-days{display:inline-flex;gap:4px;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:4px}
.apb-rx-ft2-day{font-size:13px;font-weight:600;color:var(--apb-rx-muted);border-radius:var(--apb-rx-radius-pill,999px);padding:7px 13px}
.apb-rx-ft2-day.on{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
.apb-rx-ft2-list{display:flex;flex-direction:column;gap:10px}
.apb-rx-ft2-row{display:flex;align-items:center;gap:16px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:14px 18px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ft2-time{flex:0 0 auto;width:74px;font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:15px;font-weight:800;color:var(--apb-rx-ink);font-variant-numeric:tabular-nums}
.apb-rx-ft2-info{flex:1;min-width:0}
.apb-rx-ft2-cls{font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-ft2-meta{font-size:12.5px;color:var(--apb-rx-muted);margin-top:2px}
.apb-rx-ft2-spots{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-ft2-spots.low{color:var(--apb-rx-brand)}
.apb-rx-ft2-book{flex:0 0 auto;font:inherit;font-size:13.5px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:9px 18px;text-decoration:none}
.apb-rx-ft2-book.full{color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);cursor:default}
@media(max-width:560px){.apb-rx-ft2-row{flex-wrap:wrap}.apb-rx-ft2-book{width:100%;text-align:center}}

/* ---------- healthcare_services ---------- */
.apb-rx-hc{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-hc-inner{max-width:860px;margin:0 auto}
.apb-rx-hc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.apb-rx-hc-head .eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-brand);margin:0 0 10px}
.apb-rx-hc-head h3{font-size:clamp(24px,3.6vw,32px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0;max-width:16ch}
.apb-rx-hc-book{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;font:inherit;font-size:15px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:13px 24px;box-shadow:0 8px 20px -8px var(--apb-rx-glow);text-decoration:none}
.apb-rx-hc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.apb-rx-hc-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:22px;transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease),border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-hc-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--apb-rx-brand) 28%,var(--apb-rx-line))}
.apb-rx-hc-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 9%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 20%,transparent)}
.apb-rx-hc-t{font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin:0 0 5px}
.apb-rx-hc-d{font-size:13px;line-height:1.5;color:var(--apb-rx-muted);margin:0}
@media(max-width:720px){.apb-rx-hc-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-hc-card{transition:none}}

/* ---------- hotel_rooms_dates (static date bar — no calendar popover; see NEEDS JS MARKER report) ---------- */
.apb-rx-ht{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ht-inner{max-width:900px;margin:0 auto}
.apb-rx-ht-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);padding:16px;margin-bottom:24px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ht-fld{flex:1;min-width:130px}
.apb-rx-ht-fld label{display:block;font-size:11.5px;font-weight:600;color:var(--apb-rx-muted);margin-bottom:5px}
.apb-rx-ht-static{display:block;width:100%;font-size:14px;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:10px 12px}
.apb-rx-ht-dates{width:100%;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,10px);padding:10px 12px}
.apb-rx-ht-dates svg{color:var(--apb-rx-muted);flex:0 0 auto}
.apb-rx-ht-dates .nights{margin-left:auto;font-size:12px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-ht-search{flex:0 0 auto;align-self:end;font:inherit;font-size:14.5px;font-weight:650;cursor:pointer;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius,10px);padding:11px 22px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-ht-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.apb-rx-ht-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,16px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ht-media{aspect-ratio:4/3;background:var(--apb-rx-soft)}
.apb-rx-ht-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-ht-cbody{padding:16px}
.apb-rx-ht-nm{font-size:15.5px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-ht-feat{font-size:12.5px;color:var(--apb-rx-muted);margin:4px 0 12px}
.apb-rx-ht-foot{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.apb-rx-ht-rate{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:20px;font-weight:800;color:var(--apb-rx-brand);letter-spacing:-.02em}
.apb-rx-ht-rate small{font-size:12px;font-weight:500;color:var(--apb-rx-muted)}
.apb-rx-ht-book{font:inherit;font-size:13px;font-weight:650;cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 16px;text-decoration:none}
@media(max-width:720px){.apb-rx-ht-grid{grid-template-columns:1fr}}
/* ==== assets/pages/component-industry2.css ==== */
/**
 * Industry-pack recipes, batch 2: legal_pack / marketplace_pack / nonprofit_donation /
 * saas_status_pack / travel_pack / wedding_pack.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-industry2.php. No literals for brand/glow/tint.
 */

/* ---------- legal_pack ---------- */
.apb-rx-lg{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-lg-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1.3fr 0.7fr;gap:clamp(24px,4vw,40px);align-items:start}
.apb-rx-lg-eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-brand);margin:0 0 10px}
.apb-rx-lg h3{font-size:clamp(23px,3.4vw,31px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 18px}
.apb-rx-lg-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.apb-rx-lg-item{display:flex;align-items:center;gap:11px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);padding:14px;font-size:14px;font-weight:600;color:var(--apb-rx-ink);transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-lg-item:hover{border-color:color-mix(in srgb,var(--apb-rx-brand) 30%,var(--apb-rx-line))}
.apb-rx-lg-ic,.apb-rx-lg-item .ic{width:20px;height:20px;color:var(--apb-rx-brand);flex:0 0 auto}
.apb-rx-lg-panel{background:linear-gradient(155deg,color-mix(in srgb,var(--apb-rx-brand) 14%,var(--apb-rx-ink)),var(--apb-rx-ink));color:#fff;border-radius:var(--apb-rx-radius,18px);padding:26px;box-shadow:0 24px 54px -24px var(--apb-rx-glow)}
.apb-rx-lg-panel h4{font-size:18px;font-weight:750;margin:0 0 8px}
.apb-rx-lg-panel p{font-size:13.5px;line-height:1.6;color:rgba(255,255,255,.75);margin:0 0 18px}
.apb-rx-lg-btn{display:block;width:100%;text-align:center;text-decoration:none;font-size:14.5px;font-weight:650;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:13px;box-shadow:0 10px 24px -8px var(--apb-rx-glow)}
.apb-rx-lg-ph{display:block;text-align:center;margin-top:12px;font-size:13px;color:rgba(255,255,255,.7);text-decoration:none}
@media(max-width:680px){.apb-rx-lg-inner{grid-template-columns:1fr}.apb-rx-lg-list{grid-template-columns:1fr 1fr}}

/* ---------- marketplace_pack ---------- */
.apb-rx-mk{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-mk-inner{max-width:900px;margin:0 auto}
.apb-rx-mk-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.apb-rx-mk-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0}
.apb-rx-mk-sell{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-size:14px;font-weight:650;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:11px 20px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-mk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.apb-rx-mk-card{display:block;text-decoration:none;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-mk-card:hover{transform:translateY(-3px)}
.apb-rx-mk-media{aspect-ratio:1;background:var(--apb-rx-soft)}
.apb-rx-mk-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-mk-body{padding:12px 13px}
.apb-rx-mk-nm{font-size:13.5px;font-weight:600;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-mk-seller{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--apb-rx-muted);margin:4px 0 8px}
.apb-rx-mk-seller svg{color:var(--apb-rx-brand)}
.apb-rx-mk-price{font-size:15px;font-weight:750;color:var(--apb-rx-brand);font-variant-numeric:tabular-nums}
@media(max-width:720px){.apb-rx-mk-grid{grid-template-columns:1fr 1fr}}

/* ---------- nonprofit_donation ---------- */
.apb-rx-np{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-np-inner{max-width:640px;margin:0 auto;text-align:center}
.apb-rx-np h3{font-size:clamp(24px,3.8vw,34px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 10px}
.apb-rx-np-lead{font-size:16px;line-height:1.6;color:var(--apb-rx-muted);margin:0 auto 26px;max-width:44ch}
.apb-rx-np-seg{display:inline-flex;background:var(--apb-rx-soft);border-radius:var(--apb-rx-radius-pill,999px);padding:4px;margin-bottom:20px}
.apb-rx-np-fradio{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.apb-rx-np-flabel{display:inline-block;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--apb-rx-muted);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 18px}
.apb-rx-np-fradio:checked+.apb-rx-np-flabel{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand)}
.apb-rx-np-fradio:focus-visible+.apb-rx-np-flabel{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-np-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.apb-rx-np-radio{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.apb-rx-np-tier{display:block;cursor:pointer;background:var(--apb-rx-surface,#fff);border:1.5px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:18px 12px;text-align:center;transition:border-color var(--apb-rx-t,.28s) var(--apb-rx-ease),background var(--apb-rx-t,.28s) var(--apb-rx-ease)}
.apb-rx-np-radio:checked+.apb-rx-np-tier{border-color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff))}
.apb-rx-np-radio:focus-visible+.apb-rx-np-tier{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-np-amt{display:block;font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink)}
.apb-rx-np-radio:checked+.apb-rx-np-tier .apb-rx-np-amt{color:var(--apb-rx-brand)}
.apb-rx-np-imp{display:block;font-size:11.5px;color:var(--apb-rx-muted);margin-top:5px;line-height:1.4}
.apb-rx-np-give,.apb-rx-np-formhost{display:inline-flex;align-items:center;gap:8px;width:100%;justify-content:center}
.apb-rx-np-give{font-size:15px;font-weight:650;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border:0;border-radius:var(--apb-rx-radius-pill,999px);padding:15px;margin-top:8px;box-shadow:0 8px 20px -8px var(--apb-rx-glow)}
.apb-rx-np-give[disabled]{cursor:default;opacity:.92}
.apb-rx-np-formhost{margin-top:12px;text-align:left}

/* ---------- saas_status_pack ---------- */
.apb-rx-st2{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-st2-inner{max-width:680px;margin:0 auto}
.apb-rx-st2-banner{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:var(--apb-rx-radius,14px);padding:16px 18px;margin-bottom:20px}
.apb-rx-st2-banner .dot{width:12px;height:12px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 20%,transparent);flex:0 0 auto}
.apb-rx-st2-banner .t{font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-st2-banner .s{font-size:12.5px;color:var(--apb-rx-muted);margin-left:auto}
.apb-rx-st2-list{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-st2-row{display:flex;align-items:center;gap:14px;padding:14px 18px}
.apb-rx-st2-row+.apb-rx-st2-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-st2-nm{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-st2-spark{display:flex;gap:2px;align-items:flex-end;height:18px;flex:0 0 auto}
.apb-rx-st2-spark span{width:4px;height:70%;border-radius:1px;background:color-mix(in srgb,var(--apb-rx-brand) 55%,transparent)}
.apb-rx-st2-spark span:nth-child(2n){height:100%}
.apb-rx-st2-row--degraded .apb-rx-st2-spark span,.apb-rx-st2-row--down .apb-rx-st2-spark span{background:color-mix(in srgb,var(--apb-rx-muted) 60%,transparent)}
.apb-rx-st2-up{font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.apb-rx-st2-ok{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--apb-rx-brand)}
.apb-rx-st2-ok--degraded,.apb-rx-st2-ok--down{color:var(--apb-rx-muted)}

/* ---------- travel_pack ---------- */
.apb-rx-tv{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-tv-inner{max-width:900px;margin:0 auto}
.apb-rx-tv-head{text-align:center;max-width:520px;margin:0 auto 26px}
.apb-rx-tv-head h3{font-size:clamp(24px,3.6vw,32px);font-weight:800;letter-spacing:-.025em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-tv-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-tv-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:190px;gap:14px}
.apb-rx-tv-card{position:relative;display:block;border-radius:var(--apb-rx-radius,16px);overflow:hidden;text-decoration:none;background:var(--apb-rx-soft)}
.apb-rx-tv-card.big{grid-row:span 2}
.apb-rx-tv-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--apb-rx-t-slow,.55s) var(--apb-rx-ease)}
.apb-rx-tv-card:hover img{transform:scale(1.05)}
.apb-rx-tv-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.6),transparent 55%)}
.apb-rx-tv-cap{position:absolute;left:16px;bottom:14px;z-index:1;color:#fff}
.apb-rx-tv-cap .place{font-size:17px;font-weight:750;letter-spacing:-.01em}
.apb-rx-tv-cap .nights{font-size:12.5px;color:rgba(255,255,255,.82);margin-top:1px}
.apb-rx-tv-price{position:absolute;right:12px;top:12px;z-index:1;font-size:12px;font-weight:700;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:999px;padding:5px 11px}
@media(max-width:680px){.apb-rx-tv-grid{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.apb-rx-tv-card.big{grid-column:span 2;grid-row:span 1}}
@media(prefers-reduced-motion:reduce){.apb-rx-tv-card img{transition:none}}

/* ---------- wedding_pack ---------- */
.apb-rx-wd{padding:clamp(48px,8vw,96px) 24px;text-align:center;position:relative;overflow:hidden}
.apb-rx-wd-inner{max-width:560px;margin:0 auto;position:relative;z-index:2}
.apb-rx-wd-mono{font-size:12.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--apb-rx-muted);margin:0 0 18px}
.apb-rx-wd-names{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(34px,6.5vw,58px);font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-wd-names .apb-rx-em{color:var(--apb-rx-brand);font-style:italic;font-weight:600}
.apb-rx-wd-date{font-size:15px;color:var(--apb-rx-muted);margin:0 0 30px}
.apb-rx-wd-count{display:flex;gap:12px;justify-content:center;margin-bottom:30px}
.apb-rx-wd-u{min-width:66px}
.apb-rx-wd-u .n{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(28px,5vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-brand);font-variant-numeric:tabular-nums}
.apb-rx-wd-u .l{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted);margin-top:8px}
.apb-rx-wd-rsvp{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-size:15px;font-weight:650;color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:14px 30px;box-shadow:0 10px 24px -8px var(--apb-rx-glow)}
.apb-rx-wd-orn{position:absolute;left:50%;top:0;transform:translateX(-50%);width:1px;height:40px;background:linear-gradient(var(--apb-rx-line),transparent)}
/* ==== assets/pages/component-media2.css ==== */
/**
 * Media/diagram recipes: animated_diagram / interactive_infographic / product_360.
 * apb-rx-* tokens only; brand derives from --apb-rx-brand + scheme. Reduced-motion fallbacks inline.
 * Rendered by trait-apb-component-render-media2.php. No literals for brand/glow/tint.
 */

/* ---------- animated diagram ---------- */
.apb-rx-fd{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-fd-inner{max-width:820px;margin:0 auto}
.apb-rx-fd-head{text-align:center;max-width:520px;margin:0 auto 30px}
.apb-rx-fd-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-fd-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-fd-canvas{position:relative;width:100%;height:clamp(260px,42vw,420px)}
.apb-rx-fd-svg{position:absolute;inset:0;width:100%;height:100%}
.apb-rx-fd-line{fill:none;stroke:var(--apb-rx-line);stroke-width:.6;vector-effect:non-scaling-stroke}
.apb-rx-fd-line.live{stroke:var(--apb-rx-brand);stroke-dasharray:2.4 2.4;animation:apb-rx-fd-flow 1.1s linear infinite}
@keyframes apb-rx-fd-flow{to{stroke-dashoffset:-9.6}}
@media(prefers-reduced-motion:reduce){.apb-rx-fd-line.live{animation:none;stroke-dasharray:none}}
.apb-rx-fd-node{position:absolute;transform:translate(-50%,-50%);width:150px;text-align:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);padding:14px 12px;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-fd-node.accent{border-color:var(--apb-rx-brand);box-shadow:0 12px 30px -16px var(--apb-rx-glow)}
.apb-rx-fd-node .apb-rx-leaficon{width:40px;height:40px;border-radius:11px;margin:0 auto 10px;display:grid;place-items:center;color:var(--apb-rx-ink);background:var(--apb-rx-soft);border:1px solid var(--apb-rx-line)}
.apb-rx-fd-node.accent .apb-rx-leaficon{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-fd-nt{font-size:13.5px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-fd-nd{font-size:11.5px;color:var(--apb-rx-muted);margin-top:2px}
@media(max-width:680px){.apb-rx-fd-node{width:120px;padding:10px 8px}.apb-rx-fd-canvas{height:clamp(340px,90vw,520px)}}

/* ---------- interactive infographic ---------- */
.apb-rx-ig{padding:clamp(44px,7vw,80px) 24px}
.apb-rx-ig-inner{max-width:820px;margin:0 auto}
.apb-rx-ig-head{text-align:center;max-width:520px;margin:0 auto 26px}
.apb-rx-ig-head h3{font-size:clamp(22px,3.4vw,30px);font-weight:780;letter-spacing:-.02em;color:var(--apb-rx-ink);margin:0 0 8px}
.apb-rx-ig-head p{font-size:16px;color:var(--apb-rx-muted);margin:0}
.apb-rx-ig-track{position:relative;display:flex;justify-content:space-between;margin:0 auto 30px;max-width:560px;--apb-rx-igfill:0%}
.apb-rx-ig-track::before{content:"";position:absolute;top:15px;left:8%;right:8%;height:2px;background:var(--apb-rx-line)}
.apb-rx-ig-track::after{content:"";position:absolute;top:15px;left:8%;width:var(--apb-rx-igfill,0%);max-width:84%;height:2px;background:var(--apb-rx-brand);transition:width var(--apb-rx-t,.4s) var(--apb-rx-ease)}
@media(prefers-reduced-motion:reduce){.apb-rx-ig-track::after{transition:none}}
.apb-rx-ig-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px}
.apb-rx-ig-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-line);color:var(--apb-rx-muted)}
.apb-rx-ig-node.done .apb-rx-ig-dot{color:var(--apb-rx-accent-contrast,#fff);background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-ig-node.on .apb-rx-ig-dot{color:var(--apb-rx-brand);border-color:var(--apb-rx-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 16%,transparent)}
.apb-rx-ig-nl{font-size:12px;font-weight:600;color:var(--apb-rx-muted)}
.apb-rx-ig-node.on .apb-rx-ig-nl{color:var(--apb-rx-ink)}
.apb-rx-ig-card{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,18px);padding:clamp(22px,3vw,32px);box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ig-stat{font-family:var(--apb-rx-font-display,var(--apb-rx-font));font-size:clamp(44px,8vw,68px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--apb-rx-brand);font-variant-numeric:tabular-nums;white-space:nowrap}
.apb-rx-ig-txt h4{font-size:17px;font-weight:750;color:var(--apb-rx-ink);margin:0 0 6px}
.apb-rx-ig-txt p{font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted);margin:0}
.apb-rx-ig-bar{margin-top:18px;height:8px;border-radius:999px;background:var(--apb-rx-soft);overflow:hidden}
.apb-rx-ig-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--apb-rx-brand),var(--apb-rx-brand2,var(--apb-rx-brand)))}
@media(max-width:560px){.apb-rx-ig-card{grid-template-columns:1fr;text-align:center}}

/* ---------- product 360 (static fail-open; drag-to-spin is JS-only, not shipped here) ---------- */
.apb-rx-360{padding:clamp(40px,6vw,72px) 24px}
.apb-rx-360-inner{max-width:520px;margin:0 auto;text-align:center}
.apb-rx-360-stage{position:relative;aspect-ratio:1;border-radius:var(--apb-rx-radius,18px);overflow:hidden;background:radial-gradient(120% 120% at 50% 20%,var(--apb-rx-surface,#fff),var(--apb-rx-soft));border:1px solid var(--apb-rx-line);display:grid;place-items:center}
.apb-rx-360-stage img{width:78%;height:78%;object-fit:contain;-webkit-user-drag:none;user-select:none}
.apb-rx-360-badge{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--apb-rx-brand);background:color-mix(in srgb,var(--apb-rx-brand) 10%,var(--apb-rx-surface,#fff));border:1px solid color-mix(in srgb,var(--apb-rx-brand) 22%,transparent);border-radius:999px;padding:5px 11px}
.apb-rx-360-hint{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted);background:color-mix(in srgb,var(--apb-rx-surface,#fff) 84%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--apb-rx-line);border-radius:999px;padding:6px 14px}
.apb-rx-360-scrub{display:flex;align-items:center;gap:12px;margin-top:18px}
.apb-rx-360-track{flex:1;height:5px;border-radius:999px;background:var(--apb-rx-soft);position:relative;display:inline-block}
.apb-rx-360-knob{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:var(--apb-rx-surface,#fff);border:2px solid var(--apb-rx-brand);box-shadow:0 3px 8px -2px var(--apb-rx-glow)}
.apb-rx-360-frame{font-size:12px;font-weight:600;color:var(--apb-rx-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
/* ==== assets/pages/component-interactive2.css ==== */
/* pricing_slider / pricing_calculator / faq_search. Tokens only, no !important (bar reduced-motion).
 * Rendered by trait-apb-component-render-interactive2.php; behavior in apb-component-ui.js. */

/* pricing_slider */
.apb-rx-psl{max-width:680px;margin-inline:auto}
.apb-rx-psl-head{text-align:center;margin-bottom:clamp(24px,3.5vw,36px)}
.apb-rx-psl-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-psl-head .apb-rx-lead{margin:10px 0 0;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:16px}
.apb-rx-psl-card{padding:clamp(24px,4vw,40px);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.2);background:var(--apb-rx-surface);box-shadow:var(--apb-rx-shadow-2,0 24px 50px -30px rgba(11,13,18,.2))}
.apb-rx-psl-readout{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.apb-rx-psl-seats{font-size:15px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-psl-seats b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(28px,4vw,40px);font-weight:800;color:var(--apb-rx-ink);line-height:1}
.apb-rx-psl-price{display:flex;align-items:baseline;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-psl-cur{font-size:20px;font-weight:700;align-self:flex-start;margin-top:6px}
.apb-rx-psl-price b{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(36px,6vw,56px);font-weight:800;letter-spacing:-.02em;line-height:1}
.apb-rx-psl-per{font-size:16px;font-weight:600;color:var(--apb-rx-muted,var(--apb-rx-dim));margin-left:3px}
.apb-rx-psl-range{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:6px;background:linear-gradient(90deg,var(--apb-rx-brand) 0%,var(--apb-rx-brand) var(--psl-fill,12%),var(--apb-rx-soft) var(--psl-fill,12%),var(--apb-rx-soft) 100%);outline:none;cursor:pointer}
.apb-rx-psl-range::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--apb-rx-surface);border:3px solid var(--apb-rx-brand);box-shadow:0 2px 8px rgba(11,13,18,.2);cursor:pointer;transition:transform var(--apb-rx-t-fast) var(--apb-rx-ease)}
.apb-rx-psl-range::-webkit-slider-thumb:hover{transform:scale(1.12)}
.apb-rx-psl-range::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--apb-rx-surface);border:3px solid var(--apb-rx-brand);cursor:pointer}
.apb-rx-psl-range:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 30%,transparent)}
.apb-rx-psl-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-psl-rate{margin:0;font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-psl-rate b{color:var(--apb-rx-ink)}
.apb-rx-psl-btn{padding:12px 24px}

/* pricing_calculator */
.apb-rx-pcalc{max-width:1000px;margin-inline:auto}
.apb-rx-pcalc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px);align-items:stretch}
.apb-rx-pcalc-copy h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3.2vw,38px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-pcalc-copy .apb-rx-lead{margin:10px 0 24px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:16px}
.apb-rx-pcalc-fields{display:flex;flex-direction:column;gap:16px}
.apb-rx-pcalc-field{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-pcalc-field input{padding:11px 14px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);font-size:16px;font-weight:600;color:var(--apb-rx-ink);transition:border-color var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pcalc-field input:focus{outline:none;border-color:var(--apb-rx-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 16%,transparent)}
.apb-rx-pcalc-result{display:flex;flex-direction:column;padding:clamp(24px,3.5vw,36px);border-radius:calc(var(--apb-rx-radius) * 1.2);background:linear-gradient(160deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 60%,#000));color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-pcalc-result-label{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 75%,transparent)}
.apb-rx-pcalc-big{display:flex;align-items:baseline;gap:2px;margin:6px 0 20px}
.apb-rx-pcalc-big span{font-size:24px;font-weight:700;align-self:flex-start;margin-top:8px}
.apb-rx-pcalc-big b{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(40px,7vw,64px);font-weight:800;letter-spacing:-.02em;line-height:1}
.apb-rx-pcalc-break{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:11px}
.apb-rx-pcalc-break li{display:flex;justify-content:space-between;font-size:14px;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 82%,transparent);padding-bottom:11px;border-bottom:1px solid color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 16%,transparent)}
.apb-rx-pcalc-break b{color:var(--apb-rx-accent-contrast,#fff);font-weight:700}
.apb-rx-pcalc-net{font-weight:700}
.apb-rx-pcalc-btn{margin-top:auto;background:var(--apb-rx-surface);color:var(--apb-rx-accent-text,var(--apb-rx-brand));padding:12px 24px;text-align:center}
.apb-rx-pcalc-fine{margin:12px 0 0;font-size:12px;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 60%,transparent)}

/* faq_search */
.apb-rx-fqs{max-width:900px;margin-inline:auto}
.apb-rx-fqs-head{text-align:center;margin-bottom:clamp(22px,3vw,32px)}
.apb-rx-fqs-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0 0 18px;color:var(--apb-rx-ink)}
.apb-rx-fqs-search{display:flex;align-items:center;gap:10px;max-width:440px;margin:0 auto;padding:12px 16px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-surface);transition:border-color var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fqs-search:focus-within{border-color:var(--apb-rx-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 14%,transparent)}
.apb-rx-fqs-search svg{width:18px;height:18px;color:var(--apb-rx-muted,var(--apb-rx-dim));flex:0 0 auto}
.apb-rx-fqs-search input{flex:1;border:none;outline:none;background:none;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-fqs-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.apb-rx-fqs-item{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);padding:2px 18px}
.apb-rx-fqs-item[hidden]{display:none}
.apb-rx-fqs-item summary{padding:15px 0;font-size:15px;font-weight:600;color:var(--apb-rx-ink);cursor:pointer;list-style:none;position:relative;padding-right:24px}
.apb-rx-fqs-item summary::-webkit-details-marker{display:none}
.apb-rx-fqs-item summary::after{content:"";position:absolute;right:2px;top:50%;width:9px;height:9px;border-right:2px solid var(--apb-rx-muted,var(--apb-rx-dim));border-bottom:2px solid var(--apb-rx-muted,var(--apb-rx-dim));transform:translateY(-70%) rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-fqs-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.apb-rx-fqs-item p{margin:0 0 15px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px;line-height:1.6}
.apb-rx-fqs-empty{text-align:center;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:15px;margin:24px 0 0}

@media(max-width:760px){.apb-rx-pcalc-grid{grid-template-columns:1fr}}
@media(max-width:600px){.apb-rx-fqs-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.apb-rx-psl-range::-webkit-slider-thumb{transition:none}}
/* ==== assets/pages/component-leadform2.css ==== */
/* Extra lead_form combos: split_video / split_logos / split_faq / countdown / guarantee.
 * Reuses the base .apb-rx-leadform 2-col grid + .apb-rx-lf-aside from the lead_form layout; this file
 * styles only the aside panel contents. Tokens only, no !important (bar reduced-motion). */

/* split_video */
.apb-rx-lfvideo{position:relative;border-radius:var(--apb-rx-radius,16px);overflow:hidden;border:1px solid var(--apb-rx-line);margin-top:16px}
.apb-rx-lfvideo img{width:100%;display:block}

/* split_logos */
.apb-rx-lflogos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:center;margin-top:18px}
.apb-rx-lflogos img{width:100%;max-height:38px;object-fit:contain;opacity:.8;transition:opacity var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-lflogos img:hover{opacity:1}

/* split_faq */
.apb-rx-lffaq{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.apb-rx-lffaq-item{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);background:var(--apb-rx-surface);padding:2px 16px}
.apb-rx-lffaq-item summary{padding:13px 0;font-size:15px;font-weight:600;color:var(--apb-rx-ink);cursor:pointer;list-style:none;position:relative;padding-right:22px}
.apb-rx-lffaq-item summary::-webkit-details-marker{display:none}
.apb-rx-lffaq-item summary::after{content:"";position:absolute;right:2px;top:50%;width:8px;height:8px;border-right:2px solid var(--apb-rx-muted,var(--apb-rx-dim));border-bottom:2px solid var(--apb-rx-muted,var(--apb-rx-dim));transform:translateY(-70%) rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-lffaq-item[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.apb-rx-lffaq-item p{margin:0 0 13px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px;line-height:1.6}

/* countdown */
.apb-rx-lfcd-label{margin:18px 0 10px;font-size:14px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-lfcd{display:flex;gap:10px}
.apb-rx-lfcd-cell{flex:1;text-align:center;padding:14px 8px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,12px);background:var(--apb-rx-surface)}
.apb-rx-lfcd-cell b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,4vw,34px);font-weight:800;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-lfcd-cell span{display:block;margin-top:5px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-lfcd-cell b.apb-rx-pop{animation:apb-lfcd-pop var(--apb-rx-t-fast,.18s) var(--apb-rx-ease)}
@keyframes apb-lfcd-pop{0%{transform:scale(1)}50%{transform:scale(1.14)}100%{transform:scale(1)}}

/* guarantee */
.apb-rx-leadform--guarantee .apb-rx-lfg-inner{max-width:560px;margin-inline:auto;text-align:center}
.apb-rx-lfg-callout{display:flex;gap:14px;align-items:flex-start;text-align:left;margin-top:22px;padding:18px 20px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius,14px);background:var(--apb-rx-soft)}
.apb-rx-lfg-seal{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-lfg-seal svg{width:24px;height:24px}
.apb-rx-lfg-callout p{margin:0;font-size:14px;line-height:1.6;color:var(--apb-rx-ink);font-weight:600}
.apb-rx-lfg-points{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.apb-rx-lfg-points li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-lfg-points svg{width:14px;height:14px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

@media(max-width:640px){.apb-rx-lflogos{grid-template-columns:repeat(2,1fr)}.apb-rx-lfcd{flex-wrap:wrap}.apb-rx-lfcd-cell{min-width:64px}}
@media(prefers-reduced-motion:reduce){.apb-rx-lfcd-cell b.apb-rx-pop{animation:none}}
/* ==== assets/pages/component-content2.css ==== */
/* breadcrumbs / shipping_bar / changelog / roadmap_board / status_board / glossary.
 * Tokens only, no !important. Rendered by trait-apb-component-render-content2.php. */

.apb-rx-c2-head{text-align:center;max-width:600px;margin:0 auto clamp(24px,3.5vw,40px)}
.apb-rx-c2-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}

/* breadcrumbs */
.apb-rx-bcrumb-sec{padding-top:16px;padding-bottom:16px}
.apb-rx-bcrumb{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px}
.apb-rx-bcrumb a{color:var(--apb-rx-muted,var(--apb-rx-dim));text-decoration:none;transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bcrumb a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bcrumb-sep{color:var(--apb-rx-line-accent,var(--apb-rx-muted,#c4c8ce))}
.apb-rx-bcrumb-cur{color:var(--apb-rx-ink);font-weight:600}

/* shipping_bar */
.apb-rx-shipbar-row{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(14px,2vw,24px)}
.apb-rx-shipbar-cell{display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-shipbar-ic{flex:0 0 auto;display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-shipbar-ic svg{width:22px;height:22px}
.apb-rx-shipbar-cell b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-shipbar-cell span{font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* changelog */
.apb-rx-chlog-list{list-style:none;margin:0 auto;padding:0;max-width:760px}
.apb-rx-chlog-row{display:grid;grid-template-columns:160px 1fr;gap:clamp(16px,3vw,36px);padding:clamp(20px,3vw,30px) 0;border-top:1px solid var(--apb-rx-line)}
.apb-rx-chlog-row:first-child{border-top:0}
.apb-rx-chlog-meta b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:18px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-chlog-meta span{font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-chlog-tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:var(--apb-rx-radius-pill,999px);margin-bottom:8px;background:var(--apb-rx-soft);color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-chlog-tag--new{background:color-mix(in srgb,var(--apb-rx-brand) 16%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-chlog-tag--fixed{background:color-mix(in srgb,#16a34a 16%,transparent);color:#15803d}
.apb-rx-chlog-tag--improved{background:color-mix(in srgb,#d97706 18%,transparent);color:#b45309}
.apb-rx-chlog-body h3{margin:0 0 8px;font-size:17px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-chlog-body ul{margin:0;padding-left:18px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px;line-height:1.7}

/* roadmap_board */
.apb-rx-rmap-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(12px,2vw,18px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-rmap-col{background:var(--apb-rx-soft);border-radius:calc(var(--apb-rx-radius) * 1.1);padding:16px}
.apb-rx-rmap-colhead{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--apb-rx-ink);margin-bottom:14px;text-transform:uppercase;letter-spacing:.04em}
.apb-rx-rmap-dot{width:9px;height:9px;border-radius:50%;background:var(--apb-rx-muted,#9aa1ad)}
.apb-rx-rmap-col--planned .apb-rx-rmap-dot{background:#9aa1ad}
.apb-rx-rmap-col--progress .apb-rx-rmap-dot{background:#d97706}
.apb-rx-rmap-col--shipped .apb-rx-rmap-dot{background:#16a34a}
.apb-rx-rmap-cards{display:flex;flex-direction:column;gap:10px}
.apb-rx-rmap-card{background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);padding:12px 14px;font-size:14px;color:var(--apb-rx-ink);line-height:1.45}

/* status_board */
.apb-rx-status-banner{max-width:760px;margin:0 auto 18px;display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--apb-rx-radius);font-weight:700;font-size:15px}
.apb-rx-status-dot{width:10px;height:10px;border-radius:50%;background:currentColor}
.apb-rx-status-banner--operational{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.apb-rx-status-banner--degraded{background:color-mix(in srgb,#d97706 16%,transparent);color:#b45309}
.apb-rx-status-banner--down{background:color-mix(in srgb,#dc2626 14%,transparent);color:#b91c1c}
.apb-rx-status-banner--maintenance{background:var(--apb-rx-soft);color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-status-list{list-style:none;margin:0 auto;padding:0;max-width:760px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);overflow:hidden}
.apb-rx-status-row{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--apb-rx-surface)}
.apb-rx-status-row+.apb-rx-status-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-status-name{font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-status-note{font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-status-pill{margin-left:auto;font-size:12px;font-weight:700;padding:4px 11px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-status-pill--operational{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.apb-rx-status-pill--degraded{background:color-mix(in srgb,#d97706 16%,transparent);color:#b45309}
.apb-rx-status-pill--down{background:color-mix(in srgb,#dc2626 14%,transparent);color:#b91c1c}
.apb-rx-status-pill--maintenance{background:var(--apb-rx-soft);color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* glossary */
.apb-rx-gloss-body{max-width:760px;margin-inline:auto}
.apb-rx-gloss-group{display:grid;grid-template-columns:52px 1fr;gap:16px;padding:clamp(16px,2.5vw,24px) 0;border-top:1px solid var(--apb-rx-line)}
.apb-rx-gloss-group:first-child{border-top:0}
.apb-rx-gloss-letter{font-family:var(--apb-rx-font-display,inherit);font-size:28px;font-weight:800;color:var(--apb-rx-line-accent,var(--apb-rx-brand));line-height:1}
.apb-rx-gloss-group dl{margin:0}
.apb-rx-gloss-group dt{font-size:16px;font-weight:700;color:var(--apb-rx-ink);margin-top:12px}
.apb-rx-gloss-group dt:first-child{margin-top:0}
.apb-rx-gloss-group dd{margin:4px 0 0;font-size:14px;line-height:1.6;color:var(--apb-rx-muted,var(--apb-rx-dim))}

@media(max-width:600px){
  .apb-rx-chlog-row{grid-template-columns:1fr;gap:8px}
  .apb-rx-gloss-group{grid-template-columns:40px 1fr;gap:10px}
  .apb-rx-status-row{flex-wrap:wrap}
}
/* ==== assets/pages/component-content3.css ==== */
/* store_locator / job_listings / resource_downloads / size_guide / contact_methods / award_row.
 * Tokens only, no !important. Rendered by trait-apb-component-render-content3.php. Reuses .apb-rx-c2-head. */

/* store_locator */
.apb-rx-loc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(14px,2vw,20px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-loc-card{padding:clamp(18px,2.5vw,24px);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-loc-card h3{margin:0 0 8px;font-size:17px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-loc-addr{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-loc-line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim));margin-top:6px}
.apb-rx-loc-line svg{width:15px;height:15px;flex:0 0 auto;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-loc-map{display:inline-block;margin-top:14px;font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none}
.apb-rx-loc-map:hover{text-decoration:underline}

/* job_listings */
.apb-rx-job-list{max-width:820px;margin-inline:auto;display:flex;flex-direction:column;gap:10px}
.apb-rx-job-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);text-decoration:none;transition:transform var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-job-row:hover{transform:translateY(-2px);border-color:var(--apb-rx-line-accent,var(--apb-rx-brand))}
.apb-rx-job-row--static{cursor:default}
.apb-rx-job-main h3{margin:0 0 8px;font-size:17px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-job-tags{display:flex;flex-wrap:wrap;gap:8px}
.apb-rx-job-tag{font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-soft);color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-job-apply{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-job-apply svg{transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-job-row:hover .apb-rx-job-apply svg{transform:translateX(3px)}

/* resource_downloads */
.apb-rx-dl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(14px,2vw,18px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-dl-card{display:flex;gap:14px;padding:clamp(18px,2.5vw,22px);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-dl-type{flex:0 0 auto;display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-size:12px;font-weight:800;letter-spacing:.02em}
.apb-rx-dl-body{min-width:0;flex:1}
.apb-rx-dl-body h3{margin:0 0 5px;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-dl-body p{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-dl-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.apb-rx-dl-size{font-size:12.5px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-dl-btn{font-size:14px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none}
.apb-rx-dl-btn:hover{text-decoration:underline}
.apb-rx-dl-btn--static{color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* size_guide */
.apb-rx-sizeg-wrap{max-width:760px;margin-inline:auto;overflow-x:auto;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius)}
.apb-rx-sizeg-table{width:100%;border-collapse:collapse;font-size:14px;min-width:400px}
.apb-rx-sizeg-table th,.apb-rx-sizeg-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-sizeg-table thead th{background:var(--apb-rx-soft);font-weight:700;color:var(--apb-rx-ink);font-size:13px;letter-spacing:.02em}
.apb-rx-sizeg-table tbody tr:last-child th,.apb-rx-sizeg-table tbody tr:last-child td{border-bottom:0}
.apb-rx-sizeg-table tbody th{font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-sizeg-table tbody td{color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-sizeg-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--apb-rx-soft) 45%,transparent)}
.apb-rx-sizeg-note{max-width:760px;margin:12px auto 0;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim));text-align:center}

/* contact_methods */
.apb-rx-cmeth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:clamp(12px,2vw,18px);max-width:920px;margin-inline:auto}
.apb-rx-cmeth-card{text-align:center;padding:clamp(22px,3vw,30px) 18px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-cmeth-ic{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:14px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-cmeth-ic svg{width:24px;height:24px}
.apb-rx-cmeth-card b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink);margin-bottom:5px}
.apb-rx-cmeth-card a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;font-size:14px}
.apb-rx-cmeth-card a:hover{text-decoration:underline}
.apb-rx-cmeth-card span{font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* award_row */
.apb-rx-award-row{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,5vw,56px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-award-cell{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:180px}
.apb-rx-award-img{max-height:72px;width:auto;object-fit:contain;margin-bottom:12px}
.apb-rx-award-medal{display:grid;place-items:center;width:60px;height:60px;margin-bottom:12px;border-radius:50%;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-award-medal svg{width:32px;height:32px}
.apb-rx-award-cell b{font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-award-cell span{margin-top:4px;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}

@media(max-width:600px){
  .apb-rx-job-row{flex-wrap:wrap}
  .apb-rx-cmeth-grid{grid-template-columns:1fr 1fr}
}
/* ==== assets/pages/component-content4.css ==== */
/* integration_detail / press_quotes / podcast_list / webinar_card / api_reference / event_speakers.
 * Tokens only, no !important. Rendered by trait-apb-component-render-content4.php. Reuses .apb-rx-c2-head. */

/* integration_detail */
.apb-rx-intd-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,56px);align-items:center;max-width:1040px;margin-inline:auto}
.apb-rx-intd-copy h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3.2vw,38px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-intd-copy .apb-rx-lead{margin:12px 0 20px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:16px}
.apb-rx-intd-feats{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-intd-feats li{display:flex;align-items:center;gap:11px;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-intd-ck{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-brand) 16%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-intd-ck svg{width:13px;height:13px}
.apb-rx-intd-visual{display:grid;place-items:center;min-height:200px;border-radius:calc(var(--apb-rx-radius) * 1.3);background:var(--apb-rx-soft);padding:32px}
.apb-rx-intd-connector{display:flex;align-items:center;gap:0}
.apb-rx-intd-node{display:grid;place-items:center;width:76px;height:76px;border-radius:22px;background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line);box-shadow:var(--apb-rx-shadow-2,0 12px 30px -18px rgba(11,13,18,.2))}
.apb-rx-intd-node--you{background:var(--apb-rx-brand)}
.apb-rx-intd-node img{max-width:60%;max-height:60%;object-fit:contain}
.apb-rx-intd-link{width:clamp(28px,6vw,56px);height:2px;background:repeating-linear-gradient(90deg,var(--apb-rx-line-accent,var(--apb-rx-brand)) 0 6px,transparent 6px 12px)}

/* press_quotes */
.apb-rx-press-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(14px,2vw,20px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-press-card{margin:0;padding:clamp(20px,2.6vw,28px);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-press-logo{max-height:28px;width:auto;object-fit:contain;margin-bottom:16px;opacity:.85}
.apb-rx-press-src{font-family:var(--apb-rx-font-display,inherit);font-size:17px;font-weight:800;color:var(--apb-rx-muted,var(--apb-rx-dim));margin-bottom:14px}
.apb-rx-press-card blockquote{margin:0 0 12px;font-size:16px;line-height:1.55;color:var(--apb-rx-ink)}
.apb-rx-press-card cite{font-style:normal;font-size:13px;font-weight:600;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-press-card cite a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none}
.apb-rx-press-card cite a:hover{text-decoration:underline}

/* podcast_list */
.apb-rx-pod-list{max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:10px}
.apb-rx-pod-row{display:flex;align-items:center;gap:16px;padding:16px 20px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);text-decoration:none;transition:border-color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pod-row:hover{transform:translateY(-2px);border-color:var(--apb-rx-line-accent,var(--apb-rx-brand))}
.apb-rx-pod-play{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pod-play svg{width:18px;height:18px;margin-left:2px}
.apb-rx-pod-meta{display:flex;gap:12px;margin-bottom:4px}
.apb-rx-pod-num{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pod-dur{font-size:12px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-pod-body h3{margin:0;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-pod-body p{margin:5px 0 0;font-size:13.5px;line-height:1.5;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* webinar_card */
.apb-rx-webinar-card{max-width:820px;margin-inline:auto;border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.3);background:var(--apb-rx-surface);overflow:hidden}
.apb-rx-webinar-card--media{display:grid;grid-template-columns:1fr 1.1fr}
.apb-rx-webinar-media{background:var(--apb-rx-soft)}
.apb-rx-webinar-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-webinar-body{padding:clamp(24px,3.5vw,38px)}
.apb-rx-webinar-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 11px;border-radius:var(--apb-rx-radius-pill,999px);background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:14px}
.apb-rx-webinar-body h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(21px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-webinar-desc{margin:10px 0 18px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:15px;line-height:1.6}
.apb-rx-webinar-when{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:12px}
.apb-rx-webinar-when svg{width:18px;height:18px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-webinar-speaker{margin-bottom:20px}
.apb-rx-webinar-speaker b{font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-webinar-speaker span{display:block;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* api_reference */
.apb-rx-api-list{max-width:760px;margin-inline:auto;list-style:none;padding:0;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);overflow:hidden}
.apb-rx-api-row{display:flex;align-items:center;gap:14px;padding:13px 18px;background:var(--apb-rx-surface);flex-wrap:wrap}
.apb-rx-api-row+.apb-rx-api-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-api-method{flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.03em;padding:4px 9px;border-radius:6px;min-width:54px;text-align:center;color:#fff;background:var(--apb-rx-muted,#6b7280)}
.apb-rx-api-method--get{background:#16a34a}
.apb-rx-api-method--post{background:#2563eb}
.apb-rx-api-method--put,.apb-rx-api-method--patch{background:#d97706}
.apb-rx-api-method--delete{background:#dc2626}
.apb-rx-api-path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;color:var(--apb-rx-ink);font-weight:600}
.apb-rx-api-desc{color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:13.5px;margin-left:auto}

/* event_speakers */
.apb-rx-spk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(14px,2vw,24px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-spk-card{text-align:center}
.apb-rx-spk-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:calc(var(--apb-rx-radius) * 1.2);margin-bottom:14px;background:var(--apb-rx-soft)}
.apb-rx-spk-photo--ph{display:grid;place-items:center;font-family:var(--apb-rx-font-display,inherit);font-size:40px;font-weight:800;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-spk-card b{font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-spk-role{display:block;margin-top:3px;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-spk-topic{display:block;margin-top:8px;font-size:13px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

@media(max-width:760px){.apb-rx-intd-grid{grid-template-columns:1fr}.apb-rx-webinar-card--media{grid-template-columns:1fr}}
@media(max-width:600px){.apb-rx-api-desc{margin-left:0;flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.apb-rx-pod-row:hover{transform:none}}
/* ==== assets/pages/component-content5.css ==== */
/* security_compliance / sustainability / pricing_addons / feature_stats / career_benefits.
 * Tokens only, no !important. Rendered by trait-apb-component-render-content5.php. Reuses .apb-rx-c2-head. */

.apb-rx-c2-head--l{text-align:left;margin-left:0;margin-right:auto}

/* shared icon chip */
.apb-rx-seccomp-ic,.apb-rx-susty-ic,.apb-rx-fstat-ic,.apb-rx-perks-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--apb-rx-soft);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:16px}
.apb-rx-seccomp-ic svg,.apb-rx-susty-ic svg,.apb-rx-fstat-ic svg,.apb-rx-perks-ic svg{width:24px;height:24px}

/* security_compliance */
.apb-rx-seccomp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,20px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-seccomp-card{padding:clamp(20px,2.6vw,26px);border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface)}
.apb-rx-seccomp-img{height:44px;width:auto;object-fit:contain;margin-bottom:16px}
.apb-rx-seccomp-card b{display:block;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-seccomp-card p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* sustainability */
.apb-rx-susty-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,20px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-susty-card{padding:clamp(20px,2.6vw,28px);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface)}
.apb-rx-susty-stat{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:6px}
.apb-rx-susty-card b{display:block;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-susty-card p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* pricing_addons */
.apb-rx-addon-list{max-width:720px;margin-inline:auto;list-style:none;padding:0;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);overflow:hidden}
.apb-rx-addon-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--apb-rx-surface)}
.apb-rx-addon-row+.apb-rx-addon-row{border-top:1px solid var(--apb-rx-line)}
.apb-rx-addon-main b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-addon-desc{font-size:13.5px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-addon-price{flex:0 0 auto;text-align:right}
.apb-rx-addon-price b{font-size:16px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-addon-unit{display:block;font-size:12px;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* feature_stats */
.apb-rx-fstat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,24px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-fstat-card{padding:clamp(22px,3vw,30px);border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-surface)}
.apb-rx-fstat-num{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:8px}
.apb-rx-fstat-card b{display:block;font-size:17px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-fstat-card p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--apb-rx-muted,var(--apb-rx-dim))}

/* career_benefits */
.apb-rx-perks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(14px,2vw,20px);max-width:var(--apb-pg-maxw,1120px);margin-inline:auto}
.apb-rx-perks-card{padding:clamp(20px,2.6vw,26px);border-radius:calc(var(--apb-rx-radius) * 1.1);background:var(--apb-rx-soft)}
.apb-rx-perks-card b{display:block;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-perks-card p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--apb-rx-muted,var(--apb-rx-dim))}
/* ==== assets/pages/component-content6.css ==== */
/* onboarding_checklist / countdown_banner / faq_categories / feature_timeline.
 * Tokens only, no !important (bar reduced-motion). Rendered by trait-apb-component-render-content6.php. */

/* onboarding_checklist */
.apb-rx-onb-list{max-width:640px;margin-inline:auto;display:flex;flex-direction:column;gap:10px}
.apb-rx-onb-cb{position:absolute;opacity:0;pointer-events:none}
.apb-rx-onb-item label{display:flex;align-items:flex-start;gap:14px;padding:16px 18px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);cursor:pointer;transition:border-color var(--apb-rx-t) var(--apb-rx-ease),background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-onb-item label:hover{border-color:var(--apb-rx-line-accent,var(--apb-rx-brand))}
.apb-rx-onb-box{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:2px solid var(--apb-rx-line-accent,#c4c8ce);color:#fff;transition:background var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-onb-box svg{width:15px;height:15px;opacity:0;transition:opacity var(--apb-rx-t-fast) var(--apb-rx-ease)}
.apb-rx-onb-cb:checked + label .apb-rx-onb-box{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-onb-cb:checked + label .apb-rx-onb-box svg{opacity:1}
.apb-rx-onb-cb:focus-visible + label{outline:2px solid var(--apb-rx-brand);outline-offset:2px}
.apb-rx-onb-copy b{display:block;font-size:15px;font-weight:700;color:var(--apb-rx-ink);transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-onb-text{display:block;margin-top:3px;font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-onb-cb:checked + label .apb-rx-onb-copy b{color:var(--apb-rx-muted,var(--apb-rx-dim));text-decoration:line-through}

/* countdown_banner */
.apb-rx-cdb-band{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(18px,3vw,32px);padding:clamp(24px,3.5vw,40px);border-radius:calc(var(--apb-rx-radius) * 1.3);background:linear-gradient(130deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 60%,#000));color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-cdb-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 11px;border-radius:var(--apb-rx-radius-pill,999px);background:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 20%,transparent);margin-bottom:10px}
.apb-rx-cdb-copy h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(20px,2.6vw,30px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-cdb-sub{margin:8px 0 0;font-size:15px;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 85%,transparent)}
.apb-rx-cdb-timer{display:flex;gap:10px}
.apb-rx-cdb-cell{text-align:center;min-width:62px;padding:12px 8px;border-radius:var(--apb-rx-radius);background:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 15%,transparent)}
.apb-rx-cdb-cell b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3.5vw,32px);font-weight:800;line-height:1;color:var(--apb-rx-accent-contrast,#fff)}
.apb-rx-cdb-cell span{display:block;margin-top:5px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--apb-rx-accent-contrast,#fff) 80%,transparent)}
.apb-rx-cdb-cell b.apb-rx-pop{animation:apb-cdb-pop var(--apb-rx-t-fast,.18s) var(--apb-rx-ease)}
@keyframes apb-cdb-pop{0%{transform:scale(1)}50%{transform:scale(1.14)}100%{transform:scale(1)}}
.apb-rx-cdb-btn{background:var(--apb-rx-surface);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

/* faq_categories */
.apb-rx-faqc-wrap{max-width:960px;margin-inline:auto;display:grid;grid-template-columns:220px 1fr;gap:clamp(20px,3vw,40px)}
.apb-rx-faqc-wrap>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-faqc-tabs{display:flex;flex-direction:column;gap:4px}
.apb-rx-faqc-tabs label{padding:11px 16px;border-radius:var(--apb-rx-radius);font-size:14px;font-weight:600;color:var(--apb-rx-muted,var(--apb-rx-dim));cursor:pointer;transition:background var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-faqc-tabs label:hover{background:var(--apb-rx-soft)}
.apb-rx-faqc-panel{display:none;flex-direction:column;gap:10px}
.apb-rx-faqc-item{border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);padding:2px 18px}
.apb-rx-faqc-item summary{padding:15px 0;font-size:15px;font-weight:600;color:var(--apb-rx-ink);cursor:pointer;list-style:none}
.apb-rx-faqc-item summary::-webkit-details-marker{display:none}
.apb-rx-faqc-item p{margin:0 0 15px;color:var(--apb-rx-muted,var(--apb-rx-dim));font-size:14px;line-height:1.6}
.apb-rx-faqc-wrap>input:nth-of-type(1):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(1),
.apb-rx-faqc-wrap>input:nth-of-type(2):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(2),
.apb-rx-faqc-wrap>input:nth-of-type(3):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(3),
.apb-rx-faqc-wrap>input:nth-of-type(4):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(4),
.apb-rx-faqc-wrap>input:nth-of-type(5):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(5),
.apb-rx-faqc-wrap>input:nth-of-type(6):checked~.apb-rx-faqc-panels>.apb-rx-faqc-panel:nth-of-type(6){display:flex}
.apb-rx-faqc-wrap>input:nth-of-type(1):checked~.apb-rx-faqc-tabs label:nth-child(1),
.apb-rx-faqc-wrap>input:nth-of-type(2):checked~.apb-rx-faqc-tabs label:nth-child(2),
.apb-rx-faqc-wrap>input:nth-of-type(3):checked~.apb-rx-faqc-tabs label:nth-child(3),
.apb-rx-faqc-wrap>input:nth-of-type(4):checked~.apb-rx-faqc-tabs label:nth-child(4),
.apb-rx-faqc-wrap>input:nth-of-type(5):checked~.apb-rx-faqc-tabs label:nth-child(5),
.apb-rx-faqc-wrap>input:nth-of-type(6):checked~.apb-rx-faqc-tabs label:nth-child(6){background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff)}

/* feature_timeline */
.apb-rx-ftl-track{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:20px;max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;position:relative}
.apb-rx-ftl-track::before{content:"";position:absolute;top:46px;left:8%;right:8%;height:2px;background:var(--apb-rx-line)}
.apb-rx-ftl-node{position:relative;text-align:center;padding-top:64px}
.apb-rx-ftl-marker{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ftl-dot{position:absolute;top:38px;left:50%;transform:translateX(-50%);width:18px;height:18px;border-radius:50%;background:var(--apb-rx-brand);box-shadow:0 0 0 5px color-mix(in srgb,var(--apb-rx-brand) 16%,transparent)}
.apb-rx-ftl-node h3{margin:0 0 6px;font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-ftl-node p{margin:0;font-size:14px;line-height:1.5;color:var(--apb-rx-muted,var(--apb-rx-dim))}

@media(max-width:760px){
  .apb-rx-faqc-wrap{grid-template-columns:1fr}
  .apb-rx-faqc-tabs{flex-direction:row;flex-wrap:wrap}
  .apb-rx-ftl-track{grid-auto-flow:row;grid-auto-columns:auto}
  .apb-rx-ftl-track::before{display:none}
  .apb-rx-ftl-node{padding-top:0;padding-left:40px;text-align:left}
  .apb-rx-ftl-marker{position:static;transform:none;display:block;margin-bottom:4px}
  .apb-rx-ftl-dot{top:4px;left:8px;transform:none}
}
@media(prefers-reduced-motion:reduce){.apb-rx-cdb-cell b.apb-rx-pop{animation:none}}
/* ==== assets/pages/component-subscription.css ==== */
/* current_plan_card / billing_summary / trial_banner / seat_manager.
 * Tokens only, no !important (bar reduced-motion). Rendered by trait-apb-component-render-subscription.php;
 * seat stepper + trial countdown behavior in apb-component-ui.js. Status colours are semantic-only. */

/* current_plan_card */
.apb-rx-plan{max-width:520px;margin-inline:auto}
.apb-rx-plan>.apb-rx-eyebrow{text-align:center;margin-bottom:14px}
.apb-rx-plan-card{border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.2);background:var(--apb-rx-surface);padding:clamp(22px,3vw,30px);box-shadow:var(--apb-rx-shadow-2,0 20px 44px -26px rgba(11,13,18,.18))}
.apb-rx-plan-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.apb-rx-plan-label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-plan-name b{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3.4vw,32px);font-weight:800;letter-spacing:-.02em;color:var(--apb-rx-ink)}
.apb-rx-plan-status{flex:0 0 auto;font-size:12px;font-weight:700;padding:4px 11px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-plan-status--active{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.apb-rx-plan-status--trialing{background:color-mix(in srgb,var(--apb-rx-brand) 16%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-plan-status--past_due{background:color-mix(in srgb,#dc2626 14%,transparent);color:#b91c1c}
.apb-rx-plan-status--canceled,.apb-rx-plan-status--paused{background:var(--apb-rx-soft);color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-plan-price{display:flex;align-items:baseline;gap:6px;margin-top:14px}
.apb-rx-plan-price b{font-family:var(--apb-rx-font-display,inherit);font-size:28px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-plan-price span{font-size:15px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-plan-renew{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-plan-renew svg{width:16px;height:16px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-plan-usage{margin-top:8px;font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-plan-feats{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--apb-rx-line);display:flex;flex-direction:column;gap:9px}
.apb-rx-plan-feats li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-plan-feats svg{width:15px;height:15px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-plan-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.apb-rx-plan-btn{flex:1;text-align:center;white-space:nowrap}

/* billing_summary */
.apb-rx-bsum{max-width:460px;margin-inline:auto}
.apb-rx-bsum-card{border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.2);background:var(--apb-rx-surface);padding:clamp(22px,3vw,30px)}
.apb-rx-bsum-title{font-family:var(--apb-rx-font-display,inherit);font-size:19px;font-weight:800;letter-spacing:-.01em;margin:0 0 16px;color:var(--apb-rx-ink)}
.apb-rx-bsum-plan{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--apb-rx-line)}
.apb-rx-bsum-plan b{font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-bsum-plan span{font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-bsum-trial{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;font-weight:600;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bsum-trial svg{width:16px;height:16px}
.apb-rx-bsum-lines{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.apb-rx-bsum-line{display:flex;justify-content:space-between;font-size:14px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-bsum-line span:last-child{color:var(--apb-rx-ink);font-weight:600}
.apb-rx-bsum-line--disc span:last-child{color:#15803d}
.apb-rx-bsum-total{display:flex;align-items:baseline;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-bsum-total span{font-size:15px;font-weight:600;color:var(--apb-rx-ink)}
.apb-rx-bsum-total b{font-family:var(--apb-rx-font-display,inherit);font-size:26px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-bsum-note{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-bsum-btn{width:100%;text-align:center;margin-top:18px;padding:13px 24px}
.apb-rx-bsum-secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:14px;font-size:12.5px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-bsum-secure svg{width:14px;height:14px}

/* trial_banner */
.apb-rx-trial-band{max-width:var(--apb-pg-maxw,1120px);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(16px,3vw,28px);padding:clamp(20px,3vw,32px);border-radius:calc(var(--apb-rx-radius) * 1.2);border:1px solid var(--apb-rx-line);background:var(--apb-rx-soft)}
.apb-rx-trial-badge{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 11px;border-radius:var(--apb-rx-radius-pill,999px);background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:10px}
.apb-rx-trial-copy h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(20px,2.6vw,28px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-trial-note{margin:8px 0 0;font-size:15px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-trial-timer{display:flex;gap:8px}
.apb-rx-trial-cell{text-align:center;min-width:58px;padding:10px 8px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);border:1px solid var(--apb-rx-line)}
.apb-rx-trial-cell b{display:block;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(22px,3vw,28px);font-weight:800;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-trial-cell span{display:block;margin-top:4px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-trial-cell b.apb-rx-pop{animation:apb-trial-pop var(--apb-rx-t-fast,.18s) var(--apb-rx-ease)}
@keyframes apb-trial-pop{0%{transform:scale(1)}50%{transform:scale(1.12)}100%{transform:scale(1)}}
.apb-rx-trial-btn{white-space:nowrap}

/* seat_manager */
.apb-rx-seats{max-width:520px;margin-inline:auto}
.apb-rx-seats-card{border:1px solid var(--apb-rx-line);border-radius:calc(var(--apb-rx-radius) * 1.2);background:var(--apb-rx-surface);padding:clamp(22px,3vw,30px)}
.apb-rx-seats-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.apb-rx-seats-label{font-size:16px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-seats-label span{display:block;margin-top:3px;font-size:13px;font-weight:500;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-seats-stepper{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--apb-rx-line);border-radius:var(--apb-rx-radius-pill,999px);padding:4px}
.apb-rx-seats-btn-step{width:36px;height:36px;border:none;border-radius:50%;background:var(--apb-rx-soft);color:var(--apb-rx-ink);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background var(--apb-rx-t) var(--apb-rx-ease),opacity var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-seats-btn-step:hover{background:color-mix(in srgb,var(--apb-rx-brand) 14%,transparent);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-seats-btn-step:disabled{opacity:.4;cursor:not-allowed}
.apb-rx-seats-count{min-width:44px;text-align:center;font-family:var(--apb-rx-font-display,inherit);font-size:20px;font-weight:800;color:var(--apb-rx-ink)}
.apb-rx-seats-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px solid var(--apb-rx-line)}
.apb-rx-seats-total{display:flex;align-items:baseline}
.apb-rx-seats-cur{font-size:18px;font-weight:700;color:var(--apb-rx-accent-text,var(--apb-rx-brand));align-self:flex-start;margin-top:4px}
.apb-rx-seats-total b{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(28px,4vw,38px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-seats-cycle{font-size:15px;font-weight:600;color:var(--apb-rx-muted,var(--apb-rx-dim));margin-left:4px}
.apb-rx-seats-note{margin:14px 0 0;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim))}
.apb-rx-seats-status{display:block;margin:10px 0 0;font-size:13px;color:var(--apb-rx-muted,var(--apb-rx-dim));min-height:1em}

@media(max-width:560px){.apb-rx-trial-band{flex-direction:column;align-items:flex-start}.apb-rx-seats-foot{justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.apb-rx-trial-cell b.apb-rx-pop{animation:none}}
/* ==== assets/pages/component-blog.css ==== */
/* Blog / editorial recipes — post archive (grid/list/magazine/masonry/minimal) + post header + body.
 * Tokens only, no !important, apb-rx-* namespace. Motion via --apb-rx-t/-fast/-slow + --apb-rx-ease. */

/* ---- shared archive bits ---- */
.apb-rx-barch{max-width:1140px;margin-inline:auto}
.apb-rx-barch-head{margin-bottom:clamp(22px,3vw,32px)}
.apb-rx-barch-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-barch-head p{margin:6px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15px}
.apb-rx-bac-cat{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bac-meta{color:var(--apb-rx-muted,#6b7280);font-size:12.5px}

/* ---- grid ---- */
.apb-rx-barch--grid{position:relative}
.apb-rx-barch--grid>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-barch-top{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;margin-bottom:clamp(22px,3vw,32px)}
.apb-rx-barch-filters{display:flex;gap:8px;flex-wrap:wrap}
.apb-rx-barch-filters label{cursor:pointer;padding:8px 15px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line,#e7e8ec);font-size:13px;font-weight:600;color:var(--apb-rx-muted,#6b7280);background:var(--apb-rx-surface,#fff);transition:background var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-barch-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px)}
.apb-rx-bac{display:flex;flex-direction:column;height:100%;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);text-decoration:none;color:inherit;transition:transform var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bac:hover{transform:translateY(-4px);box-shadow:var(--apb-rx-shadow-3,0 18px 40px -18px rgba(11,13,18,.22))}
.apb-rx-bac-thumb{aspect-ratio:16/10;overflow:hidden}
.apb-rx-bac-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-bac:hover .apb-rx-bac-thumb img{transform:scale(1.05)}
.apb-rx-bac-body{padding:clamp(16px,2vw,20px);display:flex;flex-direction:column;gap:9px;flex:1}
.apb-rx-bac-body h3{margin:0;font-size:clamp(16px,1.6vw,19px);font-weight:700;line-height:1.3;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-bac-body p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.6}
.apb-rx-bac-body .apb-rx-bac-meta{margin-top:auto;padding-top:6px}
.apb-rx-bac-cell{display:flex}
@media(max-width:900px){.apb-rx-barch-cards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.apb-rx-barch-cards{grid-template-columns:1fr}}
/* structural category filter (All = input 1; category k = input k+1 = cells .apb-rx-bac--c{k}) */
.apb-rx-barch--grid>input:nth-of-type(2):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c1),
.apb-rx-barch--grid>input:nth-of-type(3):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c2),
.apb-rx-barch--grid>input:nth-of-type(4):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c3),
.apb-rx-barch--grid>input:nth-of-type(5):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c4),
.apb-rx-barch--grid>input:nth-of-type(6):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c5),
.apb-rx-barch--grid>input:nth-of-type(7):checked~.apb-rx-barch-cards .apb-rx-bac-cell:not(.apb-rx-bac--c6){display:none}
.apb-rx-barch--grid>input:nth-of-type(1):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(1),
.apb-rx-barch--grid>input:nth-of-type(2):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(2),
.apb-rx-barch--grid>input:nth-of-type(3):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(3),
.apb-rx-barch--grid>input:nth-of-type(4):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(4),
.apb-rx-barch--grid>input:nth-of-type(5):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(5),
.apb-rx-barch--grid>input:nth-of-type(6):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(6),
.apb-rx-barch--grid>input:nth-of-type(7):checked~.apb-rx-barch-top .apb-rx-barch-filters label:nth-child(7){background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);border-color:var(--apb-rx-brand)}

/* ---- list ---- */
.apb-rx-barch--list{max-width:900px}
.apb-rx-bal-row{display:grid;grid-template-columns:1fr 160px;gap:clamp(18px,3vw,40px);align-items:center;padding:clamp(20px,3vw,30px) 0;border-top:1px solid var(--apb-rx-line,#e7e8ec);text-decoration:none;color:inherit}
.apb-rx-bal-row:last-child{border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-bal-copy{transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bal-row:hover .apb-rx-bal-copy{transform:translateX(8px)}
.apb-rx-bal-copy h3{margin:8px 0;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(19px,2.4vw,26px);font-weight:800;line-height:1.2;letter-spacing:-.02em;color:var(--apb-rx-ink);transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bal-row:hover .apb-rx-bal-copy h3{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bal-copy p{margin:0 0 10px;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6;max-width:56ch}
.apb-rx-bal-thumb{aspect-ratio:4/3;border-radius:var(--apb-rx-radius,16px);overflow:hidden}
.apb-rx-bal-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-bal-row:hover .apb-rx-bal-thumb img{transform:scale(1.06)}
@media(max-width:640px){.apb-rx-bal-row{grid-template-columns:1fr}.apb-rx-bal-thumb{order:-1}}

/* ---- magazine ---- */
.apb-rx-barch--mag{max-width:1200px}
.apb-rx-bam-wrap{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,4vw,48px)}
.apb-rx-bam-wrap--solo{grid-template-columns:1fr;max-width:760px;margin-inline:auto}
.apb-rx-bam-lead{display:block;text-decoration:none;color:inherit}
.apb-rx-bam-lead-ph{aspect-ratio:16/10;border-radius:var(--apb-rx-radius,16px);overflow:hidden;margin-bottom:18px}
.apb-rx-bam-lead-ph img{width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-bam-lead:hover .apb-rx-bam-lead-ph img{transform:scale(1.04)}
.apb-rx-bam-lead h3{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(24px,3vw,34px);font-weight:800;line-height:1.15;letter-spacing:-.02em;margin:10px 0 12px;color:var(--apb-rx-ink);transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bam-lead:hover h3{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bam-lead p{margin:0 0 14px;color:var(--apb-rx-muted,#6b7280);font-size:16px;line-height:1.65;max-width:52ch}
.apb-rx-bam-row{display:grid;grid-template-columns:88px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--apb-rx-line,#e7e8ec);text-decoration:none;color:inherit}
.apb-rx-bam-row:first-child{border-top:0;padding-top:0}
.apb-rx-bam-rimg{aspect-ratio:1;border-radius:calc(var(--apb-rx-radius,16px)*.6);overflow:hidden}
.apb-rx-bam-rimg img{width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-bam-row:hover .apb-rx-bam-rimg img{transform:scale(1.06)}
.apb-rx-bam-row h4{margin:0 0 6px;font-size:15px;font-weight:700;line-height:1.35;letter-spacing:-.01em;color:var(--apb-rx-ink);transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bam-row:hover h4{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
@media(max-width:820px){.apb-rx-bam-wrap{grid-template-columns:1fr}}

/* ---- masonry ---- */
.apb-rx-barch--masonry{max-width:1180px}
.apb-rx-bam2-cols{columns:3;column-gap:clamp(14px,2vw,20px)}
.apb-rx-bam2-card{break-inside:avoid;margin:0 0 clamp(14px,2vw,20px);position:relative;border-radius:var(--apb-rx-radius,16px);overflow:hidden;display:block;text-decoration:none;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-bam2-card img{width:100%;display:block;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-bam2-card:hover img{transform:scale(1.06)}
.apb-rx-bam2-ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(16px,2vw,20px);background:linear-gradient(to top,rgba(8,10,15,.82) 0%,rgba(8,10,15,.25) 45%,transparent 75%);opacity:0;transition:opacity var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bam2-card:hover .apb-rx-bam2-ov,.apb-rx-bam2-card:focus-visible .apb-rx-bam2-ov{opacity:1}
.apb-rx-bam2-cat{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;opacity:.85;margin-bottom:6px}
.apb-rx-bam2-ov h3{margin:0 0 6px;font-size:clamp(15px,1.6vw,18px);font-weight:700;line-height:1.3;color:#fff}
.apb-rx-bam2-m{font-size:12px;color:#fff;opacity:.8}
@media(max-width:900px){.apb-rx-bam2-cols{columns:2}}
@media(max-width:560px){.apb-rx-bam2-cols{columns:1}}
@media(hover:none){.apb-rx-bam2-ov{opacity:1;background:linear-gradient(to top,rgba(8,10,15,.85),transparent 70%)}}

/* ---- minimal ---- */
.apb-rx-barch--minimal{max-width:760px}
.apb-rx-bam3-row{display:block;text-decoration:none;color:inherit;padding:16px 0;border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-bam3-line{display:flex;align-items:baseline;gap:16px}
.apb-rx-bam3-date{flex:0 0 96px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-bam3-line h3{margin:0;font-size:clamp(17px,2vw,21px);font-weight:600;letter-spacing:-.01em;color:var(--apb-rx-ink);flex:1;transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bam3-cat{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-bam3-arrow{opacity:0;transform:translateX(-6px);transition:opacity var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease);color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-size:18px}
.apb-rx-bam3-ex{max-height:0;opacity:0;overflow:hidden;color:var(--apb-rx-muted,#6b7280);font-size:14.5px;line-height:1.6;padding-left:112px;transition:max-height var(--apb-rx-t-slow) var(--apb-rx-ease),opacity var(--apb-rx-t) var(--apb-rx-ease),margin var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-bam3-row:hover h3,.apb-rx-bam3-row:focus-visible h3{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-bam3-row:hover .apb-rx-bam3-arrow,.apb-rx-bam3-row:focus-visible .apb-rx-bam3-arrow{opacity:1;transform:translateX(0)}
.apb-rx-bam3-row:hover .apb-rx-bam3-ex,.apb-rx-bam3-row:focus-visible .apb-rx-bam3-ex{max-height:88px;opacity:1;margin-top:8px}
@media(max-width:520px){.apb-rx-bam3-ex{padding-left:0}.apb-rx-bam3-date{flex-basis:70px}}

/* ---- post header ---- */
.apb-rx-phd--classic,.apb-rx-phd--editorial{padding:0}
.apb-rx-phd--classic .apb-rx-phd-inner,.apb-rx-phd--editorial .apb-rx-phd-inner{max-width:760px;margin:0 auto;padding:clamp(36px,6vw,72px) 24px 0;text-align:center}
.apb-rx-phd--editorial .apb-rx-phd-inner{padding-bottom:clamp(20px,3vw,32px)}
.apb-rx-phd-eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:18px}
.apb-rx-phd h1{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(30px,5vw,52px);font-weight:800;line-height:1.07;letter-spacing:-.03em;margin:0 0 18px;color:var(--apb-rx-ink);text-wrap:balance}
.apb-rx-phd-dek{font-size:clamp(17px,2vw,20px);line-height:1.55;color:var(--apb-rx-muted,#6b7280);margin:0 auto 26px;max-width:60ch}
.apb-rx-phd-meta{display:inline-flex;align-items:center;gap:12px}
.apb-rx-phd-av{width:44px;height:44px;border-radius:50%;object-fit:cover}
.apb-rx-phd-who{text-align:left;font-size:14px;line-height:1.35}
.apb-rx-phd-who b{display:block;color:var(--apb-rx-ink);font-weight:700}
.apb-rx-phd-who span{color:var(--apb-rx-muted,#6b7280)}
.apb-rx-phd-cover{max-width:1080px;margin:clamp(28px,4vw,44px) auto 0;padding:0 24px}
.apb-rx-phd-cover img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-phd--editorial .apb-rx-phd-rule{max-width:760px;margin:clamp(24px,3vw,36px) auto;height:1px;background:var(--apb-rx-line,#e7e8ec)}
.apb-rx-phd--editorial .apb-rx-phd-meta{justify-content:center}
.apb-rx-phd--split{display:grid;grid-template-columns:1fr 1fr;min-height:clamp(420px,60vh,600px);padding:0}
.apb-rx-phd--split .apb-rx-phd-txt{display:flex;flex-direction:column;justify-content:center;padding:clamp(32px,5vw,72px);max-width:640px;margin-left:auto}
.apb-rx-phd--split .apb-rx-phd-eyebrow{align-self:flex-start}
.apb-rx-phd--split .apb-rx-phd-dek{margin:0 0 28px;max-width:48ch}
.apb-rx-phd--split .apb-rx-phd-meta{align-self:flex-start}
.apb-rx-phd-pic{position:relative;overflow:hidden}
.apb-rx-phd-pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-phd--split:hover .apb-rx-phd-pic img{transform:scale(1.04)}
@media(max-width:820px){.apb-rx-phd--split{grid-template-columns:1fr}.apb-rx-phd-pic{order:-1;min-height:280px}.apb-rx-phd--split .apb-rx-phd-txt{margin:0;max-width:none}}
.apb-rx-phd--overlay{position:relative;min-height:clamp(440px,72vh,660px);display:flex;align-items:flex-end;overflow:hidden;padding:0}
.apb-rx-phd-bg{position:absolute;inset:0}
.apb-rx-phd-bg img{width:100%;height:100%;object-fit:cover}
.apb-rx-phd-scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,10,15,.9) 0%,rgba(8,10,15,.5) 40%,rgba(8,10,15,.15) 72%,rgba(8,10,15,.35) 100%)}
.apb-rx-phd--overlay .apb-rx-phd-inner{position:relative;max-width:900px;margin:0 auto;width:100%;padding:clamp(32px,6vw,72px) 24px}
.apb-rx-phd--overlay .apb-rx-phd-eyebrow{background:var(--apb-rx-brand);color:var(--apb-rx-accent-contrast,#fff);padding:6px 13px;border-radius:var(--apb-rx-radius-pill,999px)}
.apb-rx-phd--overlay h1{color:#fff;max-width:20ch}
.apb-rx-phd--overlay .apb-rx-phd-dek{color:#fff;opacity:.9;margin-left:0}
.apb-rx-phd--overlay .apb-rx-phd-who b{color:#fff}
.apb-rx-phd--overlay .apb-rx-phd-who span{color:#fff;opacity:.82}

/* ---- post body (reading column) ---- */
.apb-rx-pbody{max-width:720px;margin:0 auto}
.apb-rx-pbody--share{max-width:1000px;display:grid;grid-template-columns:56px minmax(0,720px);gap:clamp(16px,3vw,40px);justify-content:center}
.apb-rx-pbody-rail{position:sticky;top:32px;height:fit-content;display:flex;flex-direction:column;gap:10px}
.apb-rx-pbody-lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);writing-mode:vertical-rl;margin-bottom:6px}
.apb-rx-pbody-rail a{width:40px;height:40px;border-radius:50%;border:1px solid var(--apb-rx-line,#e7e8ec);display:grid;place-items:center;color:var(--apb-rx-muted,#6b7280);background:var(--apb-rx-surface,#fff);transition:color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pbody-rail a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:var(--apb-rx-brand);transform:translateY(-2px)}
.apb-rx-pbody-rail svg{width:17px;height:17px}
.apb-rx-pbody-prose{color:var(--apb-rx-ink);font-size:clamp(16px,1.4vw,18px);line-height:1.75}
.apb-rx-pbody-prose>p{margin:0 0 24px}
.apb-rx-pbody-prose>p:first-of-type::first-letter{float:left;font-family:var(--apb-rx-font-display,inherit);font-size:3.4em;font-weight:800;line-height:.82;padding:6px 12px 0 0;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pbody-prose h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(22px,2.6vw,28px);font-weight:800;letter-spacing:-.02em;margin:40px 0 14px;color:var(--apb-rx-ink)}
.apb-rx-pbody-prose blockquote{position:relative;margin:44px 0;padding:20px 0 0;text-align:center;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(21px,2.6vw,28px);font-weight:700;line-height:1.32;letter-spacing:-.015em;color:var(--apb-rx-ink);text-wrap:balance}
.apb-rx-pbody-prose blockquote::before{content:"\201C";display:block;font-family:Georgia,serif;font-size:64px;line-height:0;height:36px;color:var(--apb-rx-brand);opacity:.9}
.apb-rx-pbody-prose figure{margin:36px 0}
.apb-rx-pbody-prose figure img{width:100%;border-radius:var(--apb-rx-radius,16px)}
.apb-rx-pbody-prose figcaption{margin-top:10px;font-size:13px;color:var(--apb-rx-muted,#6b7280);text-align:center}
.apb-rx-pbody-prose a{color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:underline;text-underline-offset:3px}
@media(max-width:680px){.apb-rx-pbody--share{grid-template-columns:1fr}.apb-rx-pbody-rail{position:static;flex-direction:row;order:2;margin-top:24px}.apb-rx-pbody-lbl{writing-mode:horizontal-tb;margin:0 4px 0 0;align-self:center}}

@media(prefers-reduced-motion:reduce){
  .apb-rx-bac,.apb-rx-bac-thumb img,.apb-rx-bal-copy,.apb-rx-bal-thumb img,.apb-rx-bam-lead-ph img,.apb-rx-bam-rimg img,.apb-rx-bam2-card img,.apb-rx-bam3-arrow,.apb-rx-bam3-ex,.apb-rx-phd-pic img,.apb-rx-pbody-rail a{transition:none}
  .apb-rx-bac:hover,.apb-rx-bac:hover .apb-rx-bac-thumb img,.apb-rx-bal-row:hover .apb-rx-bal-copy,.apb-rx-phd--split:hover .apb-rx-phd-pic img{transform:none}
}

/* ---- post_toc (sidebar rail + floating collapsible) ---- */
.apb-rx-ptoc--sidebar{max-width:260px}
.apb-rx-ptoc-lbl{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);margin:0 0 14px}
.apb-rx-ptoc--sidebar nav{position:relative;padding-left:16px}
.apb-rx-ptoc-track{position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:var(--apb-rx-line,#e7e8ec);overflow:hidden}
.apb-rx-ptoc-track i{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:0 0;transform:scaleY(.28);background:var(--apb-rx-brand)}
@supports (animation-timeline:scroll()){.apb-rx-ptoc-track i{transform:scaleY(0);animation:apb-ptoc-fill linear;animation-timeline:scroll(root)}}
@keyframes apb-ptoc-fill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.apb-rx-ptoc--sidebar nav a{display:block;padding:7px 0;font-size:14px;line-height:1.4;color:var(--apb-rx-muted,#6b7280);text-decoration:none;transition:color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-ptoc--sidebar nav a.sub{padding-left:14px;font-size:13px}
.apb-rx-ptoc--sidebar nav a:hover{color:var(--apb-rx-ink);transform:translateX(3px)}
.apb-rx-ptoc--sidebar nav a.on{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:600}
.apb-rx-ptoc--floating{max-width:680px;margin-inline:auto}
.apb-rx-ptoc--floating details{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);overflow:hidden;box-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06))}
.apb-rx-ptoc--floating summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:16px 18px;font-weight:700;font-size:15px;color:var(--apb-rx-ink)}
.apb-rx-ptoc--floating summary::-webkit-details-marker{display:none}
.apb-rx-ptoc-ic{width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ptoc-ic svg{width:18px;height:18px}
.apb-rx-ptoc-count{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-ptoc-chev{width:9px;height:9px;border-right:2px solid var(--apb-rx-muted,#6b7280);border-bottom:2px solid var(--apb-rx-muted,#6b7280);transform:rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease);flex:0 0 auto}
.apb-rx-ptoc--floating details[open] .apb-rx-ptoc-chev{transform:rotate(-135deg);border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-ptoc--floating ol{list-style:none;margin:0;padding:4px 18px 14px;counter-reset:ptoc}
.apb-rx-ptoc--floating li{counter-increment:ptoc}
.apb-rx-ptoc--floating li a{display:flex;align-items:baseline;gap:12px;padding:9px 8px;border-radius:calc(var(--apb-rx-radius,16px)*.55);font-size:14.5px;color:var(--apb-rx-muted,#6b7280);text-decoration:none;transition:background var(--apb-rx-t) var(--apb-rx-ease),color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-ptoc--floating li a::before{content:counter(ptoc,decimal-leading-zero);font-variant-numeric:tabular-nums;font-weight:700;font-size:12.5px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));flex:0 0 auto}
.apb-rx-ptoc--floating li a:hover{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-ink)}

/* ---- callout (takeaways + note/tip/warning) ---- */
.apb-rx-callout{max-width:720px;margin-inline:auto}
.apb-rx-callout--takeaways{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-soft,#f4f5f7);padding:clamp(20px,3vw,28px)}
.apb-rx-callout-h{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:14px}
.apb-rx-callout-h svg{width:17px;height:17px}
.apb-rx-callout--takeaways ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.apb-rx-callout--takeaways li{display:flex;gap:12px;font-size:15.5px;line-height:1.55;color:var(--apb-rx-ink)}
.apb-rx-callout--takeaways li svg{width:19px;height:19px;flex:0 0 auto;margin-top:1px;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-callout--note,.apb-rx-callout--tip,.apb-rx-callout--warning{display:flex;gap:14px;padding:16px 18px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);transition:box-shadow var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-callout--note:hover,.apb-rx-callout--tip:hover,.apb-rx-callout--warning:hover{transform:translateY(-2px);box-shadow:var(--apb-rx-shadow-2,0 8px 24px -12px rgba(11,13,18,.16))}
.apb-rx-callout-chip{width:34px;height:34px;flex:0 0 auto;border-radius:10px;display:grid;place-items:center}
.apb-rx-callout-chip svg{width:18px;height:18px}
.apb-rx-callout b{display:block;font-size:14.5px;color:var(--apb-rx-ink);margin-bottom:3px}
.apb-rx-callout p{margin:0;font-size:14.5px;line-height:1.6;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-callout--note .apb-rx-callout-chip{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-callout--tip .apb-rx-callout-chip{background:color-mix(in srgb,#16a34a 14%,transparent);color:#15803d}
.apb-rx-callout--warning .apb-rx-callout-chip{background:color-mix(in srgb,#d97706 15%,transparent);color:#b45309}

/* ---- post_footer ---- */
.apb-rx-pfoot{max-width:760px;margin-inline:auto}
.apb-rx-pfoot-tagrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:24px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfoot-tag{font-size:13px;font-weight:600;color:var(--apb-rx-muted,#6b7280);padding:6px 13px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-soft,#f4f5f7);text-decoration:none;transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pfoot-tag:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-pfoot-share{margin-left:auto;display:flex;gap:8px}
.apb-rx-pfoot-share a{width:38px;height:38px;border-radius:50%;border:1px solid var(--apb-rx-line,#e7e8ec);display:grid;place-items:center;color:var(--apb-rx-muted,#6b7280);transition:color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pfoot-share a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:var(--apb-rx-brand);transform:translateY(-2px)}
.apb-rx-pfoot-share svg{width:16px;height:16px}
.apb-rx-pfoot-bio{display:flex;gap:18px;align-items:flex-start;padding:28px 0;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-pfoot-bio img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.apb-rx-pfoot-k{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 4px}
.apb-rx-pfoot-bio h4{margin:0 0 4px;font-size:18px;font-weight:800;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-pfoot-role{font-size:13px;color:var(--apb-rx-muted,#6b7280);margin-bottom:6px}
.apb-rx-pfoot-bio p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14.5px;line-height:1.6}
.apb-rx-pfoot-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.apb-rx-pfoot-nav a{display:block;padding:18px 20px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);text-decoration:none;color:inherit;background:var(--apb-rx-surface,#fff);transition:border-color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-pfoot-nav a:hover{border-color:var(--apb-rx-brand);transform:translateY(-3px);box-shadow:var(--apb-rx-shadow-2,0 8px 24px -12px rgba(11,13,18,.18))}
.apb-rx-pfoot-dir{font-size:12px;font-weight:600;color:var(--apb-rx-muted,#6b7280);margin-bottom:6px}
.apb-rx-pfoot-next{text-align:right}
.apb-rx-pfoot-nav h5{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:var(--apb-rx-ink)}
@media(max-width:560px){.apb-rx-pfoot-tagrow{flex-direction:column;align-items:flex-start}.apb-rx-pfoot-share{margin-left:0}.apb-rx-pfoot-nav{grid-template-columns:1fr}.apb-rx-pfoot-next{text-align:left}}

/* ---- series_nav ---- */
.apb-rx-series{max-width:720px;margin-inline:auto;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);overflow:hidden}
.apb-rx-series-top{padding:clamp(18px,2.5vw,24px) clamp(18px,2.5vw,24px) 0}
.apb-rx-series-k{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin:0 0 6px}
.apb-rx-series-top h3{margin:0 0 4px;font-family:var(--apb-rx-font-display,inherit);font-size:clamp(18px,2.2vw,22px);font-weight:800;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-series-prog{font-size:13px;color:var(--apb-rx-muted,#6b7280);margin:0}
.apb-rx-series-steps{list-style:none;margin:16px 0 0;padding:0 clamp(18px,2.5vw,24px)}
.apb-rx-series-steps li{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-series-steps li:first-child{border-top:0}
.apb-rx-series-num{width:26px;height:26px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:var(--apb-rx-muted,#6b7280);border:1px solid var(--apb-rx-line,#e7e8ec);background:var(--apb-rx-surface,#fff)}
.apb-rx-series-num svg{width:14px;height:14px}
.apb-rx-series-steps a{color:var(--apb-rx-ink);text-decoration:none;font-size:15px;font-weight:500;flex:1;transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-series-steps a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-series-done .apb-rx-series-num{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:transparent}
.apb-rx-series-current{background:var(--apb-rx-soft,#f4f5f7);margin:0 calc(-1 * clamp(18px,2.5vw,24px));padding-inline:clamp(18px,2.5vw,24px)}
.apb-rx-series-current .apb-rx-series-num{background:var(--apb-rx-brand);color:#fff;border-color:transparent}
.apb-rx-series-current a{font-weight:700}
.apb-rx-series-tag{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-series-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--apb-rx-line,#e7e8ec);margin-top:16px}
.apb-rx-series-nav a{padding:16px clamp(18px,2.5vw,24px);text-decoration:none;color:inherit;transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-series-nav a:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-series-nav a+a{border-left:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-series-nav .apb-rx-pfoot-dir{margin-bottom:4px}
.apb-rx-series-nav h4{margin:0;font-size:14px;font-weight:700;line-height:1.3;color:var(--apb-rx-ink)}
.apb-rx-series-nav .apb-rx-pfoot-next{text-align:right}
@media(max-width:520px){.apb-rx-series-nav{grid-template-columns:1fr}.apb-rx-series-nav a+a{border-left:0;border-top:1px solid var(--apb-rx-line,#e7e8ec)}.apb-rx-series-nav .apb-rx-pfoot-next{text-align:left}}

/* ---- progress_bar ---- */
.apb-rx-rprog{padding:0;position:relative}
.apb-rx-rprog-bar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:14px;padding:12px clamp(18px,4vw,40px);background:color-mix(in srgb,var(--apb-rx-surface,#fff) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-rprog-fill{position:absolute;left:0;bottom:-1px;height:2px;background:var(--apb-rx-brand);width:100%;transform-origin:0 50%;transform:scaleX(.3)}
@supports (animation-timeline:scroll()){.apb-rx-rprog-fill{transform:scaleX(0);animation:apb-rprog-fill linear;animation-timeline:scroll(root)}}
@keyframes apb-rprog-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.apb-rx-rprog-t{flex:1;min-width:0;font-size:14px;font-weight:700;color:var(--apb-rx-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-rprog-t small{display:block;font-weight:500;font-size:12px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-rprog-acts{display:flex;gap:6px;flex:0 0 auto}
.apb-rx-rprog-acts a{width:36px;height:36px;border-radius:50%;border:1px solid var(--apb-rx-line,#e7e8ec);display:grid;place-items:center;color:var(--apb-rx-muted,#6b7280);transition:color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-rprog-acts a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:var(--apb-rx-brand);transform:translateY(-2px)}
.apb-rx-rprog-acts svg{width:16px;height:16px}

@media(prefers-reduced-motion:reduce){
  .apb-rx-ptoc--sidebar nav a,.apb-rx-ptoc-chev,.apb-rx-callout--note,.apb-rx-callout--tip,.apb-rx-callout--warning,.apb-rx-pfoot-share a,.apb-rx-pfoot-nav a,.apb-rx-rprog-acts a{transition:none}
  .apb-rx-ptoc-track i,.apb-rx-rprog-fill{animation:none}
}
/* ==== assets/pages/component-mobilemenu.css ==== */
/* Mobile menu chrome — burger bar + CSS-only toggle opening a menu surface (7 variants).
 * Tokens only, no !important (except the reduced-motion kill-switch). apb-rx-mm-* namespace. */

.apb-rx-mm{position:relative;font-family:var(--apb-rx-font,inherit);overflow:hidden}
.apb-rx-mm-t{position:absolute;width:0;height:0;opacity:0;pointer-events:none}
.apb-rx-mm-bar{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,4vw,32px)}
.apb-rx-mm-brand{font-weight:800;font-size:19px;letter-spacing:-.02em;color:var(--apb-rx-ink)}
.apb-rx-mm-burger{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid var(--apb-rx-line,#e7e8ec);cursor:pointer;color:var(--apb-rx-ink);background:var(--apb-rx-surface,#fff);transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-burger:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-mm-scrim{position:absolute;inset:0;background:rgba(8,10,18,.42);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity var(--apb-rx-t-slow) var(--apb-rx-ease),visibility var(--apb-rx-t-slow);cursor:pointer;z-index:2}
.apb-rx-mm-t:checked~.apb-rx-mm-scrim{opacity:1;visibility:visible}
.apb-rx-mm-panel{position:absolute;z-index:3;background:var(--apb-rx-surface,#fff);display:flex;flex-direction:column;gap:6px;padding:22px clamp(18px,4vw,24px)}
.apb-rx-mm-phead{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.apb-rx-mm-nav{display:flex;flex-direction:column;gap:4px}
.apb-rx-mm-row{display:flex;align-items:center;justify-content:space-between;padding:15px 14px;border-radius:var(--apb-rx-radius,16px);text-decoration:none;font-size:17px;font-weight:600;color:var(--apb-rx-ink);transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-row:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-mm-row.on{background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-mm-chev{color:var(--apb-rx-muted,#6b7280);display:inline-flex}
.apb-rx-mm-cta{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px;border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-brand);color:#fff;text-decoration:none;font-weight:700;font-size:16px;margin-top:auto}
.apb-rx-mm-panel .apb-rx-mm-burger{border:none}

/* ---- drawer (right slide-in) ---- */
.apb-rx-mm--drawer .apb-rx-mm-panel{top:0;right:0;bottom:0;width:min(84%,360px);box-shadow:-24px 0 60px rgba(11,13,18,.28);transform:translateX(104%);transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-mm--drawer .apb-rx-mm-t:checked~.apb-rx-mm-panel{transform:none}

/* ---- sheet (bottom slide-up) ---- */
.apb-rx-mm--sheet .apb-rx-mm-panel{left:0;right:0;bottom:0;border-radius:var(--apb-rx-radius,16px) var(--apb-rx-radius,16px) 0 0;box-shadow:0 -24px 60px rgba(11,13,18,.24);transform:translateY(100%);transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-mm--sheet .apb-rx-mm-t:checked~.apb-rx-mm-panel{transform:none}

/* ---- fullscreen ---- */
.apb-rx-mm--full .apb-rx-mm-panel{inset:0;justify-content:center;gap:8px;opacity:0;visibility:hidden;transform:scale(1.03);transition:opacity var(--apb-rx-t-slow) var(--apb-rx-ease),transform var(--apb-rx-t-slow) var(--apb-rx-ease),visibility var(--apb-rx-t-slow)}
.apb-rx-mm--full .apb-rx-mm-t:checked~.apb-rx-mm-panel{opacity:1;visibility:visible;transform:none}
.apb-rx-mm--full .apb-rx-mm-row{font-size:clamp(22px,6vw,30px);font-weight:800;letter-spacing:-.02em}
.apb-rx-mm--full .apb-rx-mm-phead{position:absolute;top:16px;left:clamp(18px,4vw,24px);right:clamp(18px,4vw,24px);margin:0}

/* ---- command palette ---- */
.apb-rx-mm--command .apb-rx-mm-panel{left:50%;top:12%;transform:translateX(-50%) scale(.96);width:min(92%,460px);border-radius:calc(var(--apb-rx-radius,16px)*1.1);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:0 40px 90px rgba(11,13,18,.3);opacity:0;visibility:hidden;transition:opacity var(--apb-rx-t) var(--apb-rx-ease),transform var(--apb-rx-t) var(--apb-rx-ease),visibility var(--apb-rx-t)}
.apb-rx-mm--command .apb-rx-mm-t:checked~.apb-rx-mm-panel{opacity:1;visibility:visible;transform:translateX(-50%) scale(1)}
.apb-rx-mm-search{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,12px);color:var(--apb-rx-muted,#6b7280);margin-bottom:10px}
.apb-rx-mm-search input{border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:var(--apb-rx-ink);width:100%}
.apb-rx-mm-clist{display:flex;flex-direction:column;gap:2px}
.apb-rx-mm-crow{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--apb-rx-radius,12px);text-decoration:none;color:var(--apb-rx-ink);transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-crow:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-mm-cdot{width:8px;height:8px;border-radius:50%;background:var(--apb-rx-brand);flex:0 0 auto}
.apb-rx-mm-clabel{font-weight:600;font-size:15px}
.apb-rx-mm-cdesc,.apb-rx-mm-tdesc{display:block;font-size:12.5px;color:var(--apb-rx-muted,#6b7280);font-weight:400}

/* ---- accordion (right drawer w/ expandable sections) ---- */
.apb-rx-mm--accordion .apb-rx-mm-panel{top:0;left:0;bottom:0;width:min(84%,340px);box-shadow:24px 0 60px rgba(11,13,18,.24);transform:translateX(-104%);transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-mm--accordion .apb-rx-mm-t:checked~.apb-rx-mm-panel{transform:none}
.apb-rx-mm-acc{border-radius:var(--apb-rx-radius,12px);overflow:hidden}
.apb-rx-mm-acc summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:15px 14px;font-size:17px;font-weight:600;color:var(--apb-rx-ink);border-radius:var(--apb-rx-radius,12px);transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-acc summary::-webkit-details-marker{display:none}
.apb-rx-mm-acc summary:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-mm-accchev{width:9px;height:9px;border-right:2px solid var(--apb-rx-muted,#6b7280);border-bottom:2px solid var(--apb-rx-muted,#6b7280);transform:rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-acc[open] .apb-rx-mm-accchev{transform:rotate(-135deg);border-color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-mm-accsub{display:flex;flex-direction:column;padding:2px 14px 10px 20px}
.apb-rx-mm-accsub a{padding:9px 0;font-size:15px;color:var(--apb-rx-muted,#6b7280);text-decoration:none;transition:color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-mm-accsub a:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand))}

/* ---- visual / carousel (image tiles) ---- */
.apb-rx-mm--visual .apb-rx-mm-panel,.apb-rx-mm--carousel .apb-rx-mm-panel{inset:0;opacity:0;visibility:hidden;transform:scale(1.03);transition:opacity var(--apb-rx-t-slow) var(--apb-rx-ease),transform var(--apb-rx-t-slow) var(--apb-rx-ease),visibility var(--apb-rx-t-slow)}
.apb-rx-mm--visual .apb-rx-mm-t:checked~.apb-rx-mm-panel,.apb-rx-mm--carousel .apb-rx-mm-t:checked~.apb-rx-mm-panel{opacity:1;visibility:visible;transform:none}
.apb-rx-mm-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:auto}
.apb-rx-mm--carousel .apb-rx-mm-tiles{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.apb-rx-mm--carousel .apb-rx-mm-tile{flex:0 0 68%;scroll-snap-align:start}
.apb-rx-mm-tile{position:relative;aspect-ratio:1;border-radius:var(--apb-rx-radius,16px);overflow:hidden;text-decoration:none;display:block}
.apb-rx-mm--carousel .apb-rx-mm-tile{aspect-ratio:3/4}
.apb-rx-mm-tile img{width:100%;height:100%;object-fit:cover;transition:transform var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-mm-tile:hover img{transform:scale(1.05)}
.apb-rx-mm-tov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;background:linear-gradient(to top,rgba(8,10,15,.78),transparent 65%)}
.apb-rx-mm-tlabel{color:#fff;font-weight:700;font-size:16px}

@media(prefers-reduced-motion:reduce){
  .apb-rx-mm *{transition:none !important}
}
/* ==== assets/pages/component-static-chrome.css ==== */
/* Static chrome: dropdown navigation, utility header, directory, access gate. */
.apb-rx-dropdown{position:relative}
.apb-rx-dropdown>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none}
.apb-rx-dropdown>summary::-webkit-details-marker{display:none}
.apb-rx-dropdown>summary svg{width:14px;transition:transform .18s ease}
.apb-rx-dropdown[open]>summary svg{transform:rotate(180deg)}
.apb-rx-dropdown-panel{position:absolute;inset-block-start:calc(100% + 12px);inset-inline-start:0;z-index:30;display:grid;min-width:230px;padding:8px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface);box-shadow:var(--apb-rx-shadow-2,0 14px 34px -12px rgba(11,13,18,.22))}
.apb-rx-dropdown-link,.apb-rx-dropdown-all{padding:10px 12px;border-radius:calc(var(--apb-rx-radius) - 4px);color:var(--apb-rx-ink,#0b0d12);text-decoration:none}
.apb-rx-dropdown-link:hover,.apb-rx-dropdown-link:focus-visible{background:var(--apb-rx-soft)}
.apb-rx-dropdown-all{font-weight:700;border-block-end:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-utility{background:var(--apb-rx-ink,#0b0d12);color:var(--apb-rx-surface,#fff);font-size:13px}
.apb-rx-utility-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;width:min(1180px,calc(100% - 32px));min-height:38px;margin-inline:auto}
.apb-rx-utility-inner>div,.apb-rx-utility nav{display:flex;align-items:center;gap:16px}
.apb-rx-utility a{color:inherit;text-decoration:none}
.apb-rx-utility-message{color:color-mix(in srgb,currentColor 72%,transparent)}
.apb-rx-utility-cta{padding:5px 10px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-brand);color:var(--apb-rx-on-brand,#fff)}
.apb-rx-directory>header{max-width:760px;margin-block-end:42px}
.apb-rx-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.apb-rx-directory-group{padding:24px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-soft)}
.apb-rx-directory-group h2{margin:0 0 8px;font-size:20px}
.apb-rx-directory-group p{margin:0 0 18px;color:var(--apb-rx-muted)}
.apb-rx-directory-group ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.apb-rx-directory-group a{display:grid;gap:3px;padding:9px 0;color:var(--apb-rx-ink,#0b0d12);text-decoration:none}
.apb-rx-directory-group a span{font-size:13px;color:var(--apb-rx-muted)}
.apb-rx-directory--cards .apb-rx-directory-group{border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);background:var(--apb-rx-surface,#fff)}
.apb-rx-directory--alphabetical .apb-rx-directory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.apb-rx-gate-backdrop{position:fixed;inset:0;z-index:var(--apb-rx-z-overlay,2000);display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 72%,transparent)}
.apb-rx-access-gate[data-gate-state="accepted"] .apb-rx-gate-backdrop{display:none}
.apb-rx-gate-card{box-sizing:border-box;width:min(520px,100%);max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;padding:32px;border-radius:var(--apb-rx-radius);background:var(--apb-rx-surface,#fff);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -20px rgba(11,13,18,.3));color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-gate-card h2{margin-block:6px 12px;font-size:clamp(26px,5vw,40px)}
.apb-rx-gate-card>p{color:var(--apb-rx-muted);line-height:1.65}
.apb-rx-gate-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-block:20px}
.apb-rx-gate-choice{padding:12px;border:var(--apb-rx-border,1px) solid var(--apb-rx-line,#e7e8ec);border-radius:calc(var(--apb-rx-radius) - 4px);background:var(--apb-rx-surface,#fff);color:inherit;font:inherit;text-align:start;cursor:pointer}
.apb-rx-gate-choice[aria-pressed="true"]{border-color:var(--apb-rx-brand);background:var(--apb-rx-soft)}
.apb-rx-gate-actions{display:flex;align-items:center;gap:10px;margin-block-start:24px}
.apb-rx-gate-legal{display:inline-block;margin-block-start:18px;color:var(--apb-rx-muted)}
@media (max-width:860px){
 .apb-rx-utility-inner{align-items:flex-start;flex-direction:column;gap:6px;padding-block:8px}
 .apb-rx-utility nav{flex-wrap:wrap}
 .apb-rx-directory-grid,.apb-rx-directory--alphabetical .apb-rx-directory-grid{grid-template-columns:1fr}
 .apb-rx-dropdown-panel{position:static;margin-block-start:8px;box-shadow:none}
}
/* ==== assets/pages/component-search.css ==== */
/* Search-page recipes — search_bar / search_results / search_filters / search_empty / search_tabs.
 * Tokens only, no !important (bar the reduced-motion kill-switch). apb-rx-* namespace. Reuses .apb-rx-btn. */

/* ---- search_bar ---- */
.apb-rx-srch-inner{max-width:720px;margin-inline:auto}
.apb-rx-srch--hero .apb-rx-srch-inner{text-align:center}
.apb-rx-srch-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.6vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-srch-head p{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:16px}
.apb-rx-srch--hero .apb-rx-srch-head{margin-bottom:22px}
.apb-rx-srch-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:14px}
.apb-rx-srch--bar .apb-rx-srch-chips{justify-content:flex-start;margin:12px 0 0}
.apb-rx-srch-chip{font-size:13px;font-weight:600;color:var(--apb-rx-muted,#6b7280);padding:6px 13px;border-radius:var(--apb-rx-radius-pill,999px);border:1px solid var(--apb-rx-line,#e7e8ec);text-decoration:none;transition:color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-srch-chip:hover{color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-color:var(--apb-rx-brand)}
.apb-rx-srch-form{display:flex;align-items:center;gap:8px;background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius-pill,999px);padding:8px 8px 8px 18px;box-shadow:var(--apb-rx-shadow-2,0 8px 24px -14px rgba(11,13,18,.18));transition:border-color var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-srch-form:focus-within{border-color:var(--apb-rx-brand);box-shadow:0 0 0 4px var(--apb-rx-ring,rgba(79,70,229,.2))}
.apb-rx-srch-ic{display:inline-flex;color:var(--apb-rx-muted,#6b7280);flex:0 0 auto}
.apb-rx-srch-ic svg{width:20px;height:20px}
.apb-rx-srch-form input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:16px;color:var(--apb-rx-ink)}
.apb-rx-srch-form .apb-rx-btn{flex:0 0 auto;white-space:nowrap}
.apb-rx-srch-popular{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-srch--hero .apb-rx-srch-popular{justify-content:center}
.apb-rx-srch-popular>span{font-weight:600}
.apb-rx-srch-pop{font-size:13px;color:var(--apb-rx-accent-text,var(--apb-rx-brand));text-decoration:none;padding:3px 10px;border-radius:var(--apb-rx-radius-pill,999px);background:var(--apb-rx-soft,#f4f5f7);transition:filter var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-srch-pop:hover{filter:brightness(.97)}

/* ---- search_results ---- */
.apb-rx-sres{max-width:1100px;margin-inline:auto}
.apb-rx-sres-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-sres-count{font-size:15px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-sres-count strong{color:var(--apb-rx-ink);font-weight:700}
.apb-rx-sres-term{color:var(--apb-rx-accent-text,var(--apb-rx-brand));font-weight:600}
.apb-rx-sres-sort{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-sres-sort select{font:inherit;font-size:14px;color:var(--apb-rx-ink);background-color:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,10px);padding:7px 10px;cursor:pointer}
.apb-rx-sres-type{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand))}
.apb-rx-sres-card{text-decoration:none;color:inherit;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff);transition:transform var(--apb-rx-t) var(--apb-rx-ease),box-shadow var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-sres-card:hover{transform:translateY(-2px);border-color:var(--apb-rx-line-accent,var(--apb-rx-brand));box-shadow:var(--apb-rx-shadow-2,0 8px 24px -14px rgba(11,13,18,.16))}
.apb-rx-sres-thumb img{width:100%;height:100%;object-fit:cover}
.apb-rx-sres-body{display:flex;flex-direction:column;gap:6px}
.apb-rx-sres-body h3{margin:0;font-size:clamp(16px,1.5vw,18px);font-weight:700;letter-spacing:-.01em;color:var(--apb-rx-ink);line-height:1.3}
.apb-rx-sres-body p{margin:0;color:var(--apb-rx-muted,#6b7280);font-size:14px;line-height:1.6}
.apb-rx-sres-meta{color:var(--apb-rx-muted,#6b7280);font-size:12.5px}
/* list */
.apb-rx-sres--list .apb-rx-sres-items{display:flex;flex-direction:column;gap:12px}
.apb-rx-sres--list .apb-rx-sres-card{display:grid;grid-template-columns:120px 1fr;gap:16px}
.apb-rx-sres--list .apb-rx-sres-thumb{aspect-ratio:1}
.apb-rx-sres--list .apb-rx-sres-body{padding:14px 16px 14px 0}
.apb-rx-sres--list .apb-rx-sres-card:not(:has(.apb-rx-sres-thumb)) .apb-rx-sres-body{padding-left:18px}
.apb-rx-sres--list .apb-rx-sres-card{grid-template-columns:120px 1fr}
/* grid */
.apb-rx-sres--grid .apb-rx-sres-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:clamp(14px,2vw,20px)}
.apb-rx-sres--grid .apb-rx-sres-thumb{aspect-ratio:16/10}
.apb-rx-sres--grid .apb-rx-sres-body{padding:16px}
@media(max-width:560px){.apb-rx-sres--list .apb-rx-sres-card{grid-template-columns:88px 1fr}}

/* ---- search_filters ---- */
.apb-rx-sfilt{max-width:280px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);padding:6px 18px 18px}
.apb-rx-sfilt-h{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);padding:16px 0 8px}
.apb-rx-sfilt-group{border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-sfilt-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:14px 0;font-size:14px;font-weight:700;color:var(--apb-rx-ink)}
.apb-rx-sfilt-group summary::-webkit-details-marker{display:none}
.apb-rx-sfilt-chev{width:8px;height:8px;border-right:2px solid var(--apb-rx-muted,#6b7280);border-bottom:2px solid var(--apb-rx-muted,#6b7280);transform:rotate(45deg);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-sfilt-group[open] .apb-rx-sfilt-chev{transform:rotate(-135deg)}
.apb-rx-sfilt-opts{display:flex;flex-direction:column;gap:2px;padding-bottom:10px}
.apb-rx-sfilt-opt{display:flex;align-items:center;gap:10px;padding:7px 0;cursor:pointer;font-size:14px;color:var(--apb-rx-ink)}
.apb-rx-sfilt-opt input{position:absolute;opacity:0;width:0;height:0}
.apb-rx-sfilt-box{flex:0 0 auto;width:18px;height:18px;border:1.5px solid var(--apb-rx-line,#e7e8ec);border-radius:5px;display:grid;place-items:center;transition:background var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-sfilt-box::after{content:"";width:10px;height:10px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/contain no-repeat;transform:scale(0);transition:transform var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-sfilt-opt input:checked~.apb-rx-sfilt-box{background:var(--apb-rx-brand);border-color:var(--apb-rx-brand)}
.apb-rx-sfilt-opt input:checked~.apb-rx-sfilt-box::after{transform:scale(1)}
.apb-rx-sfilt-opt input:focus-visible~.apb-rx-sfilt-box{box-shadow:0 0 0 3px var(--apb-rx-ring,rgba(79,70,229,.25))}
.apb-rx-sfilt-lbl{flex:1}
.apb-rx-sfilt-cnt{color:var(--apb-rx-muted,#6b7280);font-size:12.5px}
.apb-rx-sfilt-price{display:flex;align-items:center;gap:8px;padding-bottom:12px}
.apb-rx-sfilt-price input{width:100%;min-width:0;font:inherit;font-size:14px;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,10px);padding:8px 10px;color:var(--apb-rx-ink);background-color:var(--apb-rx-surface,#fff)}
.apb-rx-sfilt-price span{color:var(--apb-rx-muted,#6b7280);font-size:13px}
.apb-rx-sfilt-apply{width:100%;justify-content:center;margin-top:14px}

/* ---- search_empty ---- */
.apb-rx-sempty-inner{max-width:520px;margin-inline:auto;text-align:center;padding:clamp(24px,4vw,48px) 0}
.apb-rx-sempty-ic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-bottom:20px}
.apb-rx-sempty-ic svg{width:28px;height:28px}
.apb-rx-sempty h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(22px,2.8vw,30px);font-weight:800;letter-spacing:-.02em;margin:0 0 10px;color:var(--apb-rx-ink)}
.apb-rx-sempty p{margin:0 0 20px;color:var(--apb-rx-muted,#6b7280);font-size:15px;line-height:1.6}
.apb-rx-sempty-sug{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-bottom:24px;font-size:13px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-sempty-sug>span{font-weight:600}
.apb-rx-btn--ghost{background:transparent;color:var(--apb-rx-ink);border:1px solid var(--apb-rx-line,#e7e8ec);box-shadow:none}
.apb-rx-btn--ghost:hover{background:var(--apb-rx-soft,#f4f5f7)}

/* ---- search_tabs (structural :checked, id-independent) ---- */
.apb-rx-stabs{position:relative;max-width:820px;margin-inline:auto}
.apb-rx-stabs>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-stabs-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--apb-rx-line,#e7e8ec);margin-bottom:16px}
.apb-rx-stabs-tabs label{cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:11px 14px;font-size:14px;font-weight:600;color:var(--apb-rx-muted,#6b7280);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--apb-rx-t) var(--apb-rx-ease),border-color var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-stabs-tabs label span{font-size:11px;font-weight:700;color:var(--apb-rx-muted,#6b7280);background:var(--apb-rx-soft,#f4f5f7);border-radius:20px;padding:1px 7px}
.apb-rx-stabs-panel{display:none;flex-direction:column;gap:8px}
.apb-rx-stabs>input:nth-of-type(1):checked~.apb-rx-stabs-panel:nth-of-type(2),
.apb-rx-stabs>input:nth-of-type(2):checked~.apb-rx-stabs-panel:nth-of-type(3),
.apb-rx-stabs>input:nth-of-type(3):checked~.apb-rx-stabs-panel:nth-of-type(4),
.apb-rx-stabs>input:nth-of-type(4):checked~.apb-rx-stabs-panel:nth-of-type(5),
.apb-rx-stabs>input:nth-of-type(5):checked~.apb-rx-stabs-panel:nth-of-type(6){display:flex}
.apb-rx-stabs>input:nth-of-type(1):checked~.apb-rx-stabs-tabs label:nth-child(1),
.apb-rx-stabs>input:nth-of-type(2):checked~.apb-rx-stabs-tabs label:nth-child(2),
.apb-rx-stabs>input:nth-of-type(3):checked~.apb-rx-stabs-tabs label:nth-child(3),
.apb-rx-stabs>input:nth-of-type(4):checked~.apb-rx-stabs-tabs label:nth-child(4),
.apb-rx-stabs>input:nth-of-type(5):checked~.apb-rx-stabs-tabs label:nth-child(5){color:var(--apb-rx-accent-text,var(--apb-rx-brand));border-bottom-color:var(--apb-rx-brand)}
.apb-rx-stabs-row{display:flex;align-items:center;gap:14px;padding:12px 12px;border-radius:var(--apb-rx-radius,12px);text-decoration:none;color:inherit;transition:background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-stabs-row:hover{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-stabs-thumb{flex:0 0 auto;width:52px;height:52px;border-radius:var(--apb-rx-radius,10px);overflow:hidden}
.apb-rx-stabs-thumb img{width:100%;height:100%;object-fit:cover}
.apb-rx-stabs-t{font-size:15px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:3px}
.apb-rx-stabs-type{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand));margin-right:8px}
.apb-rx-stabs-meta{font-size:12.5px;color:var(--apb-rx-muted,#6b7280)}

@media(prefers-reduced-motion:reduce){
  .apb-rx-srch-form,.apb-rx-srch-chip,.apb-rx-sres-card,.apb-rx-sfilt-box,.apb-rx-sfilt-box::after,.apb-rx-stabs-tabs label,.apb-rx-stabs-row{transition:none}
  .apb-rx-sres-card:hover{transform:none}
}
/* ==== assets/pages/component-versus.css ==== */
/* Versus (A vs B) — split / table / cards / bars / toggle. Tokens only, no !important (bar reduced-motion).
 * Shared model: two sides + rows {label,a,b}; yes=check, no=cross, number=meter. Reuses .apb-rx-btn. */

.apb-rx-vs{max-width:960px;margin-inline:auto}
.apb-rx-vs-head{text-align:center;margin-bottom:clamp(24px,3vw,36px)}
.apb-rx-vs-head h2{font-family:var(--apb-rx-font-display,inherit);font-size:clamp(26px,3.4vw,40px);font-weight:800;letter-spacing:-.02em;margin:0;color:var(--apb-rx-ink)}
.apb-rx-vs-head p{margin:10px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:16px}
.apb-rx-vs-badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:var(--apb-rx-brand);border-radius:var(--apb-rx-radius-pill,999px);padding:3px 10px}
.apb-rx-vs-badge-vs{align-self:center;flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--apb-rx-ink);color:#fff;font-weight:800;font-size:13px;letter-spacing:.04em;box-shadow:0 8px 24px -10px rgba(11,13,18,.4);z-index:1}
.apb-rx-vs-yes{display:inline-grid;place-items:center;color:var(--apb-rx-check,#16a34a)}
.apb-rx-vs-yes svg{width:18px;height:18px}
.apb-rx-vs-no{display:inline-grid;place-items:center;color:var(--apb-rx-muted,#9aa1ad)}
.apb-rx-vs-no svg{width:15px;height:15px}
.apb-rx-vs-txt{font-weight:600;color:var(--apb-rx-ink);font-size:14px}

/* ---- table ---- */
.apb-rx-vs-table{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);overflow:hidden;background:var(--apb-rx-surface,#fff)}
.apb-rx-vs-trow{display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center;border-top:1px solid var(--apb-rx-line,#e7e8ec)}
.apb-rx-vs-thead{border-top:0}
.apb-rx-vs-th{padding:16px 14px;text-align:center;font-weight:800;color:var(--apb-rx-ink);font-size:15px;display:flex;flex-direction:column;gap:2px;align-items:center}
.apb-rx-vs-th small{font-weight:500;color:var(--apb-rx-muted,#6b7280);font-size:12.5px}
.apb-rx-vs-attr{padding:14px 18px;font-size:14px;color:var(--apb-rx-ink);font-weight:500}
.apb-rx-vs-td{padding:14px;display:grid;place-items:center}
.apb-rx-vs-col--win{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-vs-th.apb-rx-vs-col--win{position:relative}

/* ---- split ---- */
.apb-rx-vs-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,28px);position:relative;align-items:start}
.apb-rx-vs-split .apb-rx-vs-badge-vs{position:absolute;left:50%;top:36px;transform:translate(-50%,-50%)}
.apb-rx-vs-panel{border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);padding:clamp(18px,3vw,26px)}
.apb-rx-vs-panel--win{border-color:var(--apb-rx-brand);box-shadow:0 0 0 1px var(--apb-rx-brand),var(--apb-rx-shadow-2,0 12px 30px -16px rgba(11,13,18,.2))}
.apb-rx-vs-ptop{margin-bottom:16px}
.apb-rx-vs-ptop h3{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-vs-ptop p{margin:4px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:14px}
.apb-rx-vs-ptop .apb-rx-vs-badge{margin-top:10px}
.apb-rx-vs-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.apb-rx-vs-li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--apb-rx-ink)}
.apb-rx-vs-li.is-no{color:var(--apb-rx-muted,#6b7280)}
.apb-rx-vs-mk{flex:0 0 auto;display:inline-grid;place-items:center}

/* ---- cards ---- */
.apb-rx-vs-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,3vw,28px);position:relative;align-items:stretch}
.apb-rx-vs-cards .apb-rx-vs-badge-vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.apb-rx-vs-card{display:flex;flex-direction:column;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);padding:clamp(20px,3vw,28px);position:relative}
.apb-rx-vs-card--win{border-color:var(--apb-rx-brand);box-shadow:0 0 0 1px var(--apb-rx-brand),var(--apb-rx-shadow-3,0 18px 40px -18px rgba(11,13,18,.22))}
.apb-rx-vs-card>.apb-rx-vs-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%)}
.apb-rx-vs-ctop h3{margin:0;font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--apb-rx-ink)}
.apb-rx-vs-note{margin-top:4px;color:var(--apb-rx-muted,#6b7280);font-size:14px}
.apb-rx-vs-card ul,.apb-rx-vs-tpanel ul{list-style:none;margin:16px 0 20px;padding:0;display:flex;flex-direction:column;gap:11px;flex:1}
.apb-rx-vs-card li,.apb-rx-vs-tpanel li{display:flex;align-items:center;gap:10px;font-size:14.5px;color:var(--apb-rx-ink)}
.apb-rx-vs-card li.is-no,.apb-rx-vs-tpanel li.is-no{color:var(--apb-rx-muted,#9aa1ad)}
.apb-rx-vs-cta{width:100%;justify-content:center;margin-top:auto}

/* ---- bars ---- */
.apb-rx-vs-legend{display:flex;justify-content:center;gap:20px;margin-bottom:18px;font-size:13px;font-weight:600}
.apb-rx-vs-lg{display:inline-flex;align-items:center;gap:7px;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-vs-lg::before{content:"";width:12px;height:12px;border-radius:4px}
.apb-rx-vs-lg--a::before{background:var(--apb-rx-brand)}
.apb-rx-vs-lg--b::before{background:var(--apb-rx-line-accent,#c9cdd6)}
.apb-rx-vs-bars-body{display:flex;flex-direction:column;gap:16px}
.apb-rx-vs-barlabel{font-size:14px;font-weight:600;color:var(--apb-rx-ink);margin-bottom:7px}
.apb-rx-vs-bar{display:flex;height:34px;border-radius:var(--apb-rx-radius,10px);overflow:hidden;background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-vs-bara,.apb-rx-vs-barb{display:flex;align-items:center;padding:0 12px;color:#fff;font-size:13px;min-width:0}
.apb-rx-vs-bara{background:var(--apb-rx-brand);transition:width var(--apb-rx-t-slow) var(--apb-rx-ease)}
.apb-rx-vs-bara b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apb-rx-vs-barb{flex:1;justify-content:flex-end;background:var(--apb-rx-line-accent,#c9cdd6);color:var(--apb-rx-ink)}
.apb-rx-vs-barb b{font-weight:700}

/* ---- toggle (CSS A/B switch) ---- */
.apb-rx-vs-toggle-wrap{position:relative;max-width:560px;margin-inline:auto}
.apb-rx-vs-toggle-wrap>input{position:absolute;opacity:0;pointer-events:none}
.apb-rx-vs-switch{display:inline-flex;margin:0 auto 22px;background:var(--apb-rx-soft,#f4f5f7);border-radius:var(--apb-rx-radius-pill,999px);padding:4px;position:relative;left:50%;transform:translateX(-50%)}
.apb-rx-vs-switch label{cursor:pointer;padding:9px 22px;border-radius:var(--apb-rx-radius-pill,999px);font-size:14px;font-weight:700;color:var(--apb-rx-muted,#6b7280);transition:color var(--apb-rx-t) var(--apb-rx-ease),background var(--apb-rx-t) var(--apb-rx-ease)}
.apb-rx-vs-tpanel{display:none;border:1px solid var(--apb-rx-line,#e7e8ec);border-radius:var(--apb-rx-radius,16px);background:var(--apb-rx-surface,#fff);padding:clamp(20px,3vw,28px)}
.apb-rx-vs-toggle-wrap>input:nth-of-type(1):checked~.apb-rx-vs-tpanel:nth-of-type(2),
.apb-rx-vs-toggle-wrap>input:nth-of-type(2):checked~.apb-rx-vs-tpanel:nth-of-type(3){display:flex;flex-direction:column}
.apb-rx-vs-toggle-wrap>input:nth-of-type(1):checked~.apb-rx-vs-switch label:nth-child(1),
.apb-rx-vs-toggle-wrap>input:nth-of-type(2):checked~.apb-rx-vs-switch label:nth-child(2){background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink);box-shadow:var(--apb-rx-shadow-1,0 1px 3px rgba(11,13,18,.12))}

@media(max-width:640px){
  .apb-rx-vs-split,.apb-rx-vs-cards{grid-template-columns:1fr}
  .apb-rx-vs-split .apb-rx-vs-badge-vs,.apb-rx-vs-cards .apb-rx-vs-badge-vs{position:static;transform:none;margin:0 auto}
  .apb-rx-vs-trow{grid-template-columns:1.3fr 1fr 1fr}
}
@media(prefers-reduced-motion:reduce){.apb-rx-vs-bara,.apb-rx-vs-switch label,.apb-rx-vs-cta{transition:none}}
/* ==== assets/pages/component-products.css ==== */
/*
 * component-products.css — single-product section components (editorial / specs_split / lifestyle_overlay
 * / bundle_picker / trust_stack / hotspot / stat_hero / minimal_luxe / compare / story_rows).
 * apb-rx-* namespace, design tokens only (no literals for brand-tinted values), no !important.
 * Rendered by trait-apb-component-render-products*.php. Fail-open + reduced-motion friendly (no JS).
 */

/* shared ------------------------------------------------------------------------------------- */
.apb-rx-ped h2, .apb-rx-pss-detail h2, .apb-rx-plo-card h2, .apb-rx-pbp-pick h2, .apb-rx-pts-wrap h2,
.apb-rx-phs-copy h2, .apb-rx-psh-copy h2, .apb-rx-pml-wrap h2, .apb-rx-pcmp-wrap h2, .apb-rx-psr-hero h2 {
  font-family: var(--apb-rx-font-display, inherit); font-weight: 800; letter-spacing: -.02em; line-height: 1.05; margin: 0;
}
.apb-rx-ped-ey, .apb-rx-pss-ey, .apb-rx-plo-ey, .apb-rx-pbp-ey, .apb-rx-pts-ey, .apb-rx-phs-ey,
.apb-rx-psh-ey, .apb-rx-pcmp-ey, .apb-rx-psr-ey {
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--apb-rx-dim);
}
.apb-rx-plo-ey, .apb-rx-pss-ey, .apb-rx-pts-ey, .apb-rx-pcmp-ey { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* 1 — editorial ------------------------------------------------------------------------------ */
.apb-rx-ped-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px, 4vw, 64px); align-items: center; }
.apb-rx-ped-media { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-rx-ped-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-ped-badge { position: absolute; top: 16px; left: 16px; background: var(--apb-rx-surface); color: var(--apb-rx-ink); font-size: 12px; font-weight: 700; padding: 7px 12px; border-radius: 999px; }
.apb-rx-ped-copy h2 { font-size: clamp(34px, 5vw, 56px); margin-top: 12px; }
.apb-rx-ped-lead { margin: 20px 0 0; font-size: 16px; line-height: 1.65; color: var(--apb-rx-dim); max-width: 44ch; }
.apb-rx-ped-price { display: flex; align-items: baseline; gap: 12px; margin: 28px 0 0; }
.apb-rx-ped-price b { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 30px; }
.apb-rx-ped-price s { font-size: 16px; color: var(--apb-rx-dim); }
.apb-rx-ped-save { font-size: 13px; font-weight: 600; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-ped-cta { display: flex; gap: 12px; margin: 28px 0 0; flex-wrap: wrap; }
.apb-rx-ped-trust { display: flex; gap: 24px; margin: 28px 0 0; font-size: 13px; color: var(--apb-rx-dim); flex-wrap: wrap; }

/* 2 — specs split ---------------------------------------------------------------------------- */
.apb-rx-pss-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 48px); align-items: start; }
.apb-rx-pss-gallery { position: sticky; top: 24px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.3); padding: 20px; }
.apb-rx-pss-main { border-radius: var(--apb-rx-radius); overflow: hidden; aspect-ratio: 1/1; background: var(--apb-rx-soft); }
.apb-rx-pss-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pss-thumbs { display: flex; gap: 10px; margin-top: 14px; }
.apb-rx-pss-thumbs span { flex: 1; aspect-ratio: 1; border-radius: calc(var(--apb-rx-radius) * .7); background-size: cover; background-position: center; background-color: var(--apb-rx-soft); }
.apb-rx-pss-detail h2 { font-size: clamp(28px, 4vw, 40px); margin-top: 8px; }
.apb-rx-pss-rating { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-pss-rating, .apb-rx-pss-rating small { color: var(--apb-rx-dim); }
.apb-rx-pss-lead { margin: 16px 0 0; font-size: 15px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-rx-pss-specs { margin: 24px 0 0; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); overflow: hidden; background: var(--apb-rx-surface); }
.apb-rx-pss-row { display: flex; justify-content: space-between; padding: 13px 16px; font-size: 14px; border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-pss-row:last-child { border-bottom: 0; }
.apb-rx-pss-row span { color: var(--apb-rx-dim); }
.apb-rx-pss-buy { margin: 24px 0 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 16px 18px; }
.apb-rx-pss-buy b { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }
.apb-rx-pss-note { font-size: 12px; color: var(--apb-rx-dim); }

/* 3 — lifestyle overlay ---------------------------------------------------------------------- */
.apb-rx-plo-frame { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.6); overflow: hidden; min-height: 520px; display: flex; align-items: center; background: var(--apb-rx-soft); }
.apb-rx-plo-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.apb-rx-plo-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, var(--apb-rx-scrim, rgba(0,0,0,.45)), transparent); }
.apb-rx-plo-card { position: relative; margin: clamp(20px, 4vw, 56px); max-width: 400px; background: color-mix(in srgb, var(--apb-rx-surface) 82%, transparent); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid color-mix(in srgb, var(--apb-rx-line) 60%, transparent); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 28px; }
.apb-rx-plo-card h2 { font-size: clamp(26px, 3.4vw, 36px); margin-top: 8px; }
.apb-rx-plo-lead { margin: 12px 0 0; font-size: 15px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-rx-plo-sws { display: flex; gap: 10px; margin: 20px 0 0; align-items: center; }
.apb-rx-plo-sws small { font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-plo-sw { width: 24px; height: 24px; border-radius: 50%; }
.apb-rx-plo-sw.on { box-shadow: 0 0 0 2px var(--apb-rx-brand); }
.apb-rx-plo-buy { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 24px 0 0; }
.apb-rx-plo-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; color: var(--apb-rx-ink); }

/* 4 — bundle picker -------------------------------------------------------------------------- */
.apb-rx-pbp-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.apb-rx-pbp-media { border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-rx-pbp-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pbp-pick h2 { font-size: clamp(28px, 4vw, 42px); margin-top: 8px; }
.apb-rx-pbp-lead { margin: 12px 0 0; font-size: 15px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-rx-pbp-tiers { display: flex; flex-direction: column; gap: 12px; margin: 24px 0 0; }
.apb-rx-pbp-tier { display: flex; align-items: center; gap: 14px; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 16px 18px; cursor: pointer; transition: border-color var(--apb-rx-t-fast, .2s), background var(--apb-rx-t-fast, .2s); }
.apb-rx-pbp-tier:has(input:checked) { border: 2px solid var(--apb-rx-brand); background: var(--apb-rx-soft); }
.apb-rx-pbp-tier input { accent-color: var(--apb-rx-brand); width: 18px; height: 18px; flex: none; }
.apb-rx-pbp-tinfo { flex: 1; }
.apb-rx-pbp-tlabel { font-weight: 700; font-size: 15px; display: flex; align-items: center; gap: 6px; }
.apb-rx-pbp-pop { font-size: 11px; font-weight: 700; color: var(--apb-rx-accent-contrast, #fff); background: var(--apb-rx-brand); padding: 3px 8px; border-radius: 999px; }
.apb-rx-pbp-note { font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-pbp-tright { text-align: right; }
.apb-rx-pbp-price { font-weight: 700; }
.apb-rx-pbp-save { font-size: 12px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-pbp-cta { display: block; text-align: center; margin-top: 20px; }
.apb-rx-pbp-cnote { text-align: center; font-size: 13px; color: var(--apb-rx-dim); margin-top: 12px; }

/* 5 — trust stack ---------------------------------------------------------------------------- */
.apb-rx-pts-wrap { max-width: 760px; margin: 0 auto; text-align: center; }
.apb-rx-pts-media { border-radius: calc(var(--apb-rx-radius) * 1.5); overflow: hidden; aspect-ratio: 16/10; background: var(--apb-rx-soft); max-width: 560px; margin: 0 auto; }
.apb-rx-pts-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pts-wrap .apb-rx-pts-ey { margin-top: 24px; }
.apb-rx-pts-wrap h2 { font-size: clamp(30px, 5vw, 48px); margin-top: 8px; }
.apb-rx-pts-lead { margin: 14px auto 0; font-size: 16px; line-height: 1.6; color: var(--apb-rx-dim); max-width: 52ch; }
.apb-rx-pts-rating { display: inline-flex; align-items: center; gap: 10px; margin: 18px 0 0; font-size: 14px; color: var(--apb-rx-dim); }
.apb-rx-pts-rating span { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-size: 16px; }
.apb-rx-pts-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 28px 0 0; }
.apb-rx-pts-badge { display: flex; align-items: center; gap: 8px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: 999px; padding: 9px 16px; font-size: 13px; font-weight: 600; }
.apb-rx-pts-badge svg { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-pts-buy { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; margin: 32px auto 0; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); padding: 16px 24px; max-width: 480px; }
.apb-rx-pts-buy b { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }
.apb-rx-pts-note { font-size: 12px; color: var(--apb-rx-dim); }

/* 6 — hotspots ------------------------------------------------------------------------------- */
.apb-rx-phs-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.apb-rx-phs-media { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 4/3; background: var(--apb-rx-soft); }
.apb-rx-phs-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-phs-pin { position: absolute; transform: translate(-50%, -50%); width: 30px; height: 30px; border-radius: 50%; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; box-shadow: 0 0 0 6px color-mix(in srgb, var(--apb-rx-brand) 30%, transparent); }
.apb-rx-phs-copy h2 { font-size: clamp(26px, 4vw, 38px); margin-top: 8px; }
.apb-rx-phs-legend { display: flex; flex-direction: column; gap: 16px; margin: 22px 0 0; }
.apb-rx-phs-litem { display: flex; gap: 14px; }
.apb-rx-phs-lnum { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; }
.apb-rx-phs-ltitle { font-weight: 700; font-size: 15px; }
.apb-rx-phs-ltext { font-size: 14px; color: var(--apb-rx-dim); line-height: 1.5; }
.apb-rx-phs-buy { display: flex; align-items: center; gap: 16px; margin: 26px 0 0; }
.apb-rx-phs-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }

/* 7 — stat hero ------------------------------------------------------------------------------ */
.apb-rx-psh { background: linear-gradient(180deg, var(--apb-rx-soft), transparent); }
.apb-rx-psh-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.apb-rx-psh-copy h2 { font-size: clamp(30px, 5vw, 50px); margin-top: 10px; }
.apb-rx-psh-lead { margin: 16px 0 0; font-size: 16px; line-height: 1.6; color: var(--apb-rx-dim); max-width: 46ch; }
.apb-rx-psh-buy { display: flex; align-items: center; gap: 16px; margin: 26px 0 0; }
.apb-rx-psh-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 28px; }
.apb-rx-psh-stats { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 16px; margin: 34px 0 0; border-top: 1px solid var(--apb-rx-line); padding-top: 24px; }
.apb-rx-psh-stat b { display: block; font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(22px, 3vw, 30px); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-psh-stat span { font-size: 13px; color: var(--apb-rx-dim); margin-top: 2px; display: block; }
.apb-rx-psh-media { border-radius: calc(var(--apb-rx-radius) * 1.5); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-rx-psh-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 8 — minimal luxe --------------------------------------------------------------------------- */
.apb-rx-pml-wrap { max-width: 520px; margin: 0 auto; text-align: center; }
.apb-rx-pml-ey { font-size: 12px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--apb-rx-dim); }
.apb-rx-pml-media { border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; aspect-ratio: 1/1; background: var(--apb-rx-soft); margin: 28px 0; }
.apb-rx-pml-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pml-wrap h2 { font-family: var(--apb-rx-font-display, inherit); font-weight: 500; font-size: clamp(28px, 5vw, 40px); letter-spacing: .01em; line-height: 1.1; margin: 0; }
.apb-rx-pml-lead { margin: 14px auto 0; font-size: 15px; line-height: 1.75; color: var(--apb-rx-dim); max-width: 38ch; }
.apb-rx-pml-rule { width: 32px; height: 1px; background: var(--apb-rx-line); margin: 28px auto; }
.apb-rx-pml-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 500; font-size: 22px; letter-spacing: .02em; }
.apb-rx-pml-price small { font-size: 14px; color: var(--apb-rx-dim); }
.apb-rx-pml-cta { display: inline-block; margin: 24px 0 0; border: 1px solid var(--apb-rx-ink); color: var(--apb-rx-ink); text-decoration: none; font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; padding: 15px 44px; border-radius: 999px; transition: background var(--apb-rx-t-fast, .2s), color var(--apb-rx-t-fast, .2s); }
.apb-rx-pml-cta:hover { background: var(--apb-rx-ink); color: var(--apb-rx-surface); }

/* 9 — compare -------------------------------------------------------------------------------- */
.apb-rx-pcmp-wrap { max-width: 760px; margin: 0 auto; text-align: center; }
.apb-rx-pcmp-wrap h2 { font-size: clamp(28px, 4.5vw, 42px); margin-top: 8px; }
.apb-rx-pcmp-lead { margin: 12px auto 0; font-size: 15px; color: var(--apb-rx-dim); max-width: 48ch; }
.apb-rx-pcmp-table { margin: 32px 0 0; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); overflow: hidden; background: var(--apb-rx-surface); text-align: left; }
.apb-rx-pcmp-head, .apb-rx-pcmp-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr; }
.apb-rx-pcmp-head { background: var(--apb-rx-soft); font-size: 13px; font-weight: 700; }
.apb-rx-pcmp-head > div, .apb-rx-pcmp-row > div { padding: 14px 16px; font-size: 14px; }
.apb-rx-pcmp-row { border-top: 1px solid var(--apb-rx-line); }
.apb-rx-pcmp-lab { color: var(--apb-rx-dim); }
.apb-rx-pcmp-mine { text-align: center; font-weight: 700; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-pcmp-theirs { text-align: center; color: var(--apb-rx-dim); }
.apb-rx-pcmp-dash { color: var(--apb-rx-dim); }
.apb-rx-pcmp-buy { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 28px 0 0; }
.apb-rx-pcmp-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }

/* 10 — story rows ---------------------------------------------------------------------------- */
.apb-rx-psr-wrap { max-width: 1000px; margin: 0 auto; }
.apb-rx-psr-hero { text-align: center; max-width: 620px; margin: 0 auto; }
.apb-rx-psr-hero h2 { font-size: clamp(30px, 5vw, 48px); margin-top: 10px; }
.apb-rx-psr-lead { margin: 14px auto 0; font-size: 16px; line-height: 1.6; color: var(--apb-rx-dim); max-width: 44ch; }
.apb-rx-psr-hero-media { border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 16/9; background: var(--apb-rx-soft); margin: 28px 0 0; }
.apb-rx-psr-hero-media img, .apb-rx-psr-rmedia img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-psr-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 4vw, 48px); align-items: center; margin: clamp(24px, 4vw, 48px) 0 0; }
.apb-rx-psr-row--rev .apb-rx-psr-rmedia { order: 2; }
.apb-rx-psr-rmedia { border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; aspect-ratio: 4/3; background: var(--apb-rx-soft); }
.apb-rx-psr-idx { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--apb-rx-dim); }
.apb-rx-psr-rbody h3 { font-family: var(--apb-rx-font-display, inherit); font-weight: 700; font-size: 22px; letter-spacing: -.01em; margin: 8px 0 0; }
.apb-rx-psr-rbody p { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-rx-psr-buy { display: flex; align-items: center; justify-content: center; gap: 16px; margin: clamp(32px, 5vw, 56px) 0 0; border-top: 1px solid var(--apb-rx-line); padding-top: 32px; }
.apb-rx-psr-price { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }

/* add-to-cart button states (self-sufficient when the storefront CSS isn't loaded on a generated page) */
.apb-store-atc-btn.is-loading { opacity: .65; pointer-events: none; }
.apb-store-atc-btn.is-added { opacity: 1; }

/* responsive --------------------------------------------------------------------------------- */
@media (max-width: 820px) {
  .apb-rx-ped-grid, .apb-rx-pss-grid, .apb-rx-pbp-grid, .apb-rx-phs-grid, .apb-rx-psh-grid, .apb-rx-psr-row { grid-template-columns: 1fr; }
  .apb-rx-pss-gallery { position: static; }
  .apb-rx-psr-row--rev .apb-rx-psr-rmedia { order: 0; }
}
/* ==== assets/pages/component-related.css ==== */
/*
 * component-related.css — related-products section components (carousel / bought_together /
 * complete_look / compact_list / grid_minimal). apb-rx-* namespace, tokens only (no brand-tinted
 * literals), no !important. Rendered by trait-apb-component-render-related.php. Fail-open, no JS.
 */

/* shared -------------------------------------------------------------------------------------- */
.apb-rx-relc-h, .apb-rx-relb-h, .apb-rx-rell-h, .apb-rx-relr-h, .apb-rx-relg-h {
  font-family: var(--apb-rx-font-display, inherit); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; margin: 0;
}
.apb-rx-relc-ey, .apb-rx-relb-ey, .apb-rx-rell-ey {
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand));
}
.apb-rx-rel-add {
  flex: none; display: inline-flex; align-items: center; justify-content: center; text-decoration: none;
  border: 1px solid var(--apb-rx-line); background: var(--apb-rx-surface); color: var(--apb-rx-ink);
  border-radius: calc(var(--apb-rx-radius) * .6); width: 34px; height: 34px; font-size: 18px; line-height: 1; cursor: pointer;
  transition: border-color var(--apb-rx-t-fast, .2s), color var(--apb-rx-t-fast, .2s);
}
.apb-rx-rel-add:hover { border-color: var(--apb-rx-brand); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-rel-more, .apb-rx-rell-more { text-decoration: none; font-size: 14px; font-weight: 600; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); white-space: nowrap; }

/* 1 — carousel ------------------------------------------------------------------------------- */
.apb-rx-relc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.apb-rx-relc-h { font-size: clamp(24px, 3.5vw, 34px); margin-top: 8px; }
.apb-rx-relc-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; margin-top: 24px; padding-bottom: 4px; scrollbar-width: none; }
.apb-rx-relc-track::-webkit-scrollbar { display: none; }
.apb-rx-relc-card { flex: 0 0 240px; scroll-snap-align: start; }
.apb-rx-relc-media { position: relative; border-radius: var(--apb-rx-radius); overflow: hidden; aspect-ratio: 1/1; background: var(--apb-rx-soft); }
.apb-rx-relc-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-relc-badge { position: absolute; top: 10px; left: 10px; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 999px; }
.apb-rx-relc-cat { font-size: 12px; color: var(--apb-rx-dim); margin-top: 12px; }
.apb-rx-relc-name { font-weight: 600; font-size: 15px; margin-top: 2px; }
.apb-rx-relc-stars { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); letter-spacing: 1px; font-size: 13px; margin-top: 4px; }
.apb-rx-relc-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 8px; gap: 10px; }
.apb-rx-relc-price { font-weight: 700; }
.apb-rx-relc-price s { color: var(--apb-rx-dim); font-weight: 400; margin-right: 6px; }

/* 2 — bought together ------------------------------------------------------------------------ */
.apb-rx-relb-wrap { max-width: 960px; margin: 0 auto; }
.apb-rx-relb-h { font-size: clamp(24px, 3.5vw, 34px); margin-top: 8px; }
.apb-rx-relb-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px; margin: 28px 0 0; }
.apb-rx-relb-item { flex: 1; min-width: 140px; text-align: center; }
.apb-rx-relb-media { border-radius: var(--apb-rx-radius); overflow: hidden; aspect-ratio: 1/1; background: var(--apb-rx-soft); }
.apb-rx-relb-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-relb-name { font-weight: 600; font-size: 14px; margin-top: 10px; }
.apb-rx-relb-price { font-size: 14px; color: var(--apb-rx-dim); }
.apb-rx-relb-plus { align-self: center; font-size: 24px; font-weight: 300; color: var(--apb-rx-dim); }
.apb-rx-relb-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin: 28px 0 0; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 18px 22px; }
.apb-rx-relb-tnote { font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-relb-total { display: flex; align-items: baseline; gap: 10px; margin-top: 2px; }
.apb-rx-relb-total b { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 26px; }
.apb-rx-relb-total s { font-size: 15px; color: var(--apb-rx-dim); }
.apb-rx-relb-save { font-size: 13px; font-weight: 600; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* 3 — complete the look ---------------------------------------------------------------------- */
.apb-rx-rell-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 48px); align-items: stretch; }
.apb-rx-rell-hero { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; min-height: 420px; background: var(--apb-rx-soft); }
.apb-rx-rell-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.apb-rx-rell-hbadge { position: absolute; left: 20px; bottom: 20px; background: var(--apb-rx-surface); color: var(--apb-rx-ink); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 8px 14px; border-radius: 999px; }
.apb-rx-rell-h { font-size: clamp(24px, 3.4vw, 34px); margin: 8px 0 16px; }
.apb-rx-rell-rows { display: flex; flex-direction: column; gap: 12px; }
.apb-rx-rell-row { display: flex; align-items: center; gap: 14px; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 12px; }
.apb-rx-rell-thumb { flex: none; width: 64px; height: 64px; border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; background: var(--apb-rx-soft); }
.apb-rx-rell-thumb img { width: 100%; height: 100%; object-fit: cover; }
.apb-rx-rell-info { flex: 1; min-width: 0; }
.apb-rx-rell-name { font-weight: 600; font-size: 15px; }
.apb-rx-rell-meta { font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-rell-right { text-align: right; }
.apb-rx-rell-price { font-weight: 700; }
.apb-rx-rell-add { display: inline-block; margin-top: 6px; text-decoration: none; border: 1px solid var(--apb-rx-line); background: var(--apb-rx-surface); color: var(--apb-rx-ink); border-radius: 999px; font-size: 12px; font-weight: 600; padding: 5px 12px; cursor: pointer; }
.apb-rx-rell-add:hover { border-color: var(--apb-rx-brand); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-rell-more { display: inline-block; margin-top: 18px; }

/* 4 — compact list --------------------------------------------------------------------------- */
.apb-rx-relr-wrap { max-width: 460px; margin: 0 auto; }
.apb-rx-relr-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.apb-rx-relr-h { font-size: 20px; letter-spacing: -.01em; }
.apb-rx-relr-rows { display: flex; flex-direction: column; }
.apb-rx-relr-row { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-relr-row:last-child { border-bottom: 0; }
.apb-rx-relr-thumb { flex: none; width: 56px; height: 56px; border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; background: var(--apb-rx-soft); }
.apb-rx-relr-thumb img { width: 100%; height: 100%; object-fit: cover; }
.apb-rx-relr-info { flex: 1; min-width: 0; }
.apb-rx-relr-name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.apb-rx-relr-stars { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-size: 12px; letter-spacing: 1px; }
.apb-rx-relr-price { font-weight: 700; font-size: 14px; white-space: nowrap; }
.apb-rx-relr .apb-rx-rel-add { width: 32px; height: 32px; font-size: 16px; }

/* 5 — minimal grid --------------------------------------------------------------------------- */
.apb-rx-relg-h { font-size: clamp(24px, 3.5vw, 34px); text-align: center; margin: 0 0 24px; }
.apb-rx-relg-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 4), 1fr); gap: 20px; }
.apb-rx-relg-card { text-align: center; }
.apb-rx-relg-media { position: relative; border-radius: var(--apb-rx-radius); overflow: hidden; aspect-ratio: 3/4; background: var(--apb-rx-soft); }
.apb-rx-relg-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-relg-qa { position: absolute; left: 12px; right: 12px; bottom: 12px; opacity: 0; transform: translateY(8px); transition: opacity var(--apb-rx-t, .25s), transform var(--apb-rx-t, .25s); }
.apb-rx-relg-qa a { display: block; text-align: center; text-decoration: none; background: var(--apb-rx-surface); color: var(--apb-rx-ink); font-weight: 600; font-size: 13px; padding: 11px; border-radius: calc(var(--apb-rx-radius) * .7); box-shadow: var(--apb-rx-shadow-1, 0 6px 20px rgba(0,0,0,.12)); }
.apb-rx-relg-card:hover .apb-rx-relg-qa, .apb-rx-relg-card:focus-within .apb-rx-relg-qa { opacity: 1; transform: translateY(0); }
.apb-rx-relg-name { font-weight: 600; font-size: 14px; margin-top: 12px; }
.apb-rx-relg-price { font-size: 14px; color: var(--apb-rx-dim); margin-top: 2px; }

/* responsive --------------------------------------------------------------------------------- */
@media (max-width: 820px) {
  .apb-rx-rell-grid { grid-template-columns: 1fr; }
  .apb-rx-relg-grid { grid-template-columns: repeat(2, 1fr); }
  .apb-rx-relg-qa { opacity: 1; transform: none; }
}
/* ==== assets/pages/component-reviews.css ==== */
/*
 * component-reviews.css — live product-reviews section components (summary / grid / spotlight / marquee).
 * apb-rx-* namespace, tokens only (no brand-tinted literals), no !important. Rendered by
 * trait-apb-component-render-reviews.php. Fail-open, no JS.
 */

/* shared -------------------------------------------------------------------------------------- */
.apb-rx-rvs-h, .apb-rx-rvg-h, .apb-rx-rvm-h {
  font-family: var(--apb-rx-font-display, inherit); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; margin: 0;
}
.apb-rx-rvg-ey, .apb-rx-rvm-ey, .apb-rx-rvsp-ey {
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand));
}
.apb-rx-rv-stars, .apb-rx-rvs-stars, .apb-rx-rvsp-stars { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); letter-spacing: 1px; }
.apb-rx-rv-head { display: flex; align-items: center; gap: 10px; }
.apb-rx-rv-ini { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.apb-rx-rv-who { flex: 1; min-width: 0; }
.apb-rx-rv-name { font-weight: 600; font-size: 14px; }
.apb-rx-rv-date { font-size: 12px; color: var(--apb-rx-dim); }
.apb-rx-rv-vf { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-rv-stars { font-size: 14px; margin: 10px 0 0; }
.apb-rx-rv-title { font-weight: 700; font-size: 15px; margin: 8px 0 0; }
.apb-rx-rv-body { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: var(--apb-rx-dim); }

/* 1 — summary -------------------------------------------------------------------------------- */
.apb-rx-rvs-h { font-size: clamp(22px, 3.2vw, 30px); text-align: center; margin-bottom: 24px; }
.apb-rx-rvs-grid { display: grid; grid-template-columns: minmax(180px, .8fr) 1.2fr; gap: clamp(24px, 5vw, 56px); align-items: center; max-width: 820px; margin: 0 auto; }
.apb-rx-rvs-score { text-align: center; }
.apb-rx-rvs-avg { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(48px, 8vw, 72px); line-height: 1; letter-spacing: -.03em; }
.apb-rx-rvs-stars { font-size: 20px; display: block; margin-top: 8px; }
.apb-rx-rvs-total { font-size: 14px; color: var(--apb-rx-dim); margin-top: 8px; }
.apb-rx-rvs-score .apb-rx-btn { margin-top: 16px; }
.apb-rx-rvs-bars { display: flex; flex-direction: column; gap: 10px; }
.apb-rx-rvs-bar { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.apb-rx-rvs-blabel { flex: none; width: 14px; color: var(--apb-rx-dim); text-align: right; }
.apb-rx-rvs-track { flex: 1; height: 8px; border-radius: 999px; background: var(--apb-rx-soft); overflow: hidden; }
.apb-rx-rvs-fill { display: block; height: 100%; border-radius: 999px; background: var(--apb-rx-brand); }
.apb-rx-rvs-bcount { flex: none; width: 40px; color: var(--apb-rx-dim); }

/* 2 — card grid ------------------------------------------------------------------------------ */
.apb-rx-rvg-head { text-align: center; margin-bottom: 24px; }
.apb-rx-rvg-h { font-size: clamp(24px, 3.5vw, 34px); margin-top: 8px; }
.apb-rx-rvg-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 16px; }
.apb-rx-rvg-card { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 20px; }

/* 3 — spotlight ------------------------------------------------------------------------------ */
.apb-rx-rvsp-wrap { max-width: 720px; margin: 0 auto; text-align: center; }
.apb-rx-rvsp-stars { font-size: 20px; display: block; margin: 10px 0 0; }
.apb-rx-rvsp-title { font-weight: 700; font-size: 18px; margin: 12px 0 0; }
.apb-rx-rvsp-quote { font-family: var(--apb-rx-font-display, inherit); font-weight: 500; font-size: clamp(20px, 3vw, 28px); line-height: 1.4; letter-spacing: -.01em; margin: 16px 0 0; }
.apb-rx-rvsp-attr { display: inline-flex; align-items: center; gap: 12px; margin: 24px 0 0; text-align: left; }
.apb-rx-rvsp-attr b { font-size: 15px; display: block; }
.apb-rx-rvsp-meta { font-size: 13px; color: var(--apb-rx-dim); }

/* 4 — marquee wall --------------------------------------------------------------------------- */
.apb-rx-rvm-head { text-align: center; margin-bottom: 24px; }
.apb-rx-rvm-h { font-size: clamp(24px, 3.5vw, 34px); margin-top: 8px; }
.apb-rx-rvm-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; scrollbar-width: none; }
.apb-rx-rvm-track::-webkit-scrollbar { display: none; }
.apb-rx-rvm-card { flex: 0 0 320px; scroll-snap-align: start; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 20px; }

/* responsive --------------------------------------------------------------------------------- */
@media (max-width: 820px) {
  .apb-rx-rvs-grid { grid-template-columns: 1fr; }
  .apb-rx-rvg-grid { grid-template-columns: 1fr; }
}
/* ==== assets/pages/component-cart.css ==== */
/*
 * component-cart.css — cart/conversion components (single-product sticky buy bar). apb-rx-* namespace,
 * tokens only (no brand-tinted literals), no !important. Rendered by trait-apb-component-render-cart.php.
 * The add-to-cart button styling + states live in component-products.css (.apb-store-atc-btn).
 */
.apb-rx-buybar-wrap { position: sticky; bottom: 0; z-index: 20; padding: 0; }
.apb-rx-buybar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  max-width: 1000px; margin: 0 auto; padding: 12px clamp(16px, 4vw, 24px);
  background: var(--apb-rx-surface); border-top: 1px solid var(--apb-rx-line);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, .08);
}
.apb-rx-buybar-media { flex: none; width: 52px; height: 52px; border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; background: var(--apb-rx-soft); }
.apb-rx-buybar-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-buybar-info { flex: 1; min-width: 120px; }
.apb-rx-buybar-name { font-weight: 700; font-size: 15px; letter-spacing: -.01em; }
.apb-rx-buybar-sub { display: flex; align-items: baseline; gap: 8px; font-size: 13px; color: var(--apb-rx-dim); margin-top: 2px; }
.apb-rx-buybar-price { font-weight: 700; color: var(--apb-rx-ink); }
.apb-rx-buybar-price s { color: var(--apb-rx-dim); font-weight: 400; margin-right: 6px; }
.apb-rx-buybar-act { flex: none; }
.apb-rx-buybar-cta { padding-left: clamp(20px, 4vw, 34px); padding-right: clamp(20px, 4vw, 34px); }

@media (max-width: 560px) {
  .apb-rx-buybar-act { flex: 1 1 100%; }
  .apb-rx-buybar-cta { display: block; text-align: center; }
}
/* ==== assets/pages/component-cart-live.css ==== */
/*
 * component-cart-live.css — brand-themes the SHIPPED storefront cart markup so the live cart components
 * (cart_embed / cart_mini / cart_drawer_button / free_ship_bar) look on-brand on generated pages, where
 * the full storefront CSS isn't loaded. apb-rx-* tokens only, no !important. Styles the shipped classes
 * (.apb-store-*) the storefront cart JS renders, plus our own apb-rx-* wrappers. Loaded in <head> (no FOUC).
 */

/* shared storefront primitives (scoped enough to not fight the real storefront CSS on storefront pages) */
.apb-rx-section .apb-store-btn, .apb-rx-cartmini .apb-store-btn {
  display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer;
  font: inherit; font-weight: 700; font-size: 14px; padding: 12px 22px; border: 1px solid var(--apb-rx-line);
  border-radius: calc(var(--apb-rx-radius) * .8); background: var(--apb-rx-surface); color: var(--apb-rx-ink);
}
.apb-rx-section .apb-store-btn-primary, .apb-rx-cartmini .apb-store-btn-primary {
  background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); border-color: transparent;
}
.apb-store-cart-loading, .apb-store-mini-cart-loading { color: var(--apb-rx-dim); font-size: 14px; padding: 16px 0; text-align: center; }

/* cart_embed — the shipped cart-root render --------------------------------------------------- */
.apb-rx-cart-embed { max-width: 720px; margin: 0 auto; }
.apb-rx-cart-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(24px, 3.5vw, 32px); letter-spacing: -.02em; margin: 0 0 20px; }
.apb-rx-cart-embed .apb-store-cart { display: flex; flex-direction: column; gap: 14px; }
.apb-rx-cart-embed .apb-store-cart-item { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-cart-embed .apb-store-cart-item img { width: 68px; height: 68px; object-fit: cover; border-radius: calc(var(--apb-rx-radius) * .7); background: var(--apb-rx-soft); }
.apb-rx-cart-embed .apb-store-cart-item-name { font-weight: 600; font-size: 15px; }
.apb-rx-cart-embed .apb-store-cart-item-meta { font-size: 13px; color: var(--apb-rx-dim); }
.apb-rx-cart-embed .apb-store-qty { display: inline-flex; align-items: center; border: 1px solid var(--apb-rx-line); border-radius: 999px; }
.apb-rx-cart-embed .apb-store-qty button { border: 0; background: transparent; width: 30px; height: 30px; cursor: pointer; color: var(--apb-rx-ink); font: inherit; }
.apb-rx-cart-embed .apb-store-summary { margin-top: 18px; }
.apb-rx-cart-embed .apb-store-summary-row { display: flex; justify-content: space-between; font-size: 14px; color: var(--apb-rx-dim); padding: 6px 0; }
.apb-rx-cart-embed .apb-store-summary-row strong, .apb-rx-cart-embed .apb-store-summary-row span { color: var(--apb-rx-ink); }
.apb-rx-cart-embed .apb-store-summary-total { display: flex; justify-content: space-between; font-weight: 800; font-size: 18px; padding-top: 12px; margin-top: 6px; border-top: 1px solid var(--apb-rx-line); }
.apb-rx-cart-embed .apb-store-ship-progress { margin: 12px 0; }
.apb-rx-cart-embed .apb-store-ship-progress progress { width: 100%; height: 8px; }
.apb-rx-cart-embed .apb-store-empty { text-align: center; color: var(--apb-rx-dim); padding: 40px 0; }
.apb-rx-cart-embed input[type="text"], .apb-rx-cart-embed input[type="email"] {
  border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); padding: 10px 12px; font: inherit; font-size: 13px; background: var(--apb-rx-surface); color: var(--apb-rx-ink);
}

/* cart_mini — details popover ----------------------------------------------------------------- */
.apb-rx-cartmini-wrap { display: flex; justify-content: flex-end; }
.apb-rx-cartmini { position: relative; }
.apb-rx-cartmini-trigger { position: relative; list-style: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); background: var(--apb-rx-surface); color: var(--apb-rx-ink); cursor: pointer; }
.apb-rx-cartmini-trigger::-webkit-details-marker { display: none; }
.apb-rx-cartmini-badge { position: absolute; top: -6px; right: -6px; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-size: 11px; font-weight: 700; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; display: flex; align-items: center; justify-content: center; }
.apb-rx-cartmini-pop { position: absolute; top: 52px; right: 0; width: 320px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); box-shadow: var(--apb-rx-shadow-1, 0 16px 44px rgba(0,0,0,.16)); z-index: 30; padding: 6px 16px 16px; }
.apb-rx-cartmini .apb-store-section-title { font-weight: 700; font-size: 14px; padding: 12px 0 6px; margin: 0; }
.apb-rx-cartmini .apb-store-mini-cart-item { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--apb-rx-line); font-size: 13px; }
.apb-rx-cartmini .apb-store-mini-cart-item-name { font-weight: 600; }
.apb-rx-cartmini .apb-store-mini-cart-item-meta { color: var(--apb-rx-dim); }
.apb-rx-cartmini .apb-store-mini-cart-empty { color: var(--apb-rx-dim); font-size: 13px; padding: 14px 0; text-align: center; }
.apb-rx-cartmini .apb-store-mini-cart-foot { padding-top: 12px; }
.apb-rx-cartmini .apb-store-mini-cart-total { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 12px; }
.apb-rx-cartmini .apb-store-mini-cart-foot .apb-store-btn { display: block; text-align: center; }

/* cart_drawer_button -------------------------------------------------------------------------- */
.apb-rx-cartbtn { display: flex; justify-content: flex-end; }
.apb-rx-cartbtn .apb-store-cart-link { position: relative; display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: var(--apb-rx-ink); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); padding: 10px 14px; background: var(--apb-rx-surface); }
.apb-rx-cartbtn .apb-store-cart-link svg { width: 20px; height: 20px; }
.apb-rx-cartbtn .apb-store-cart-count-badge { background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-size: 11px; font-weight: 700; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }

/* free_ship_bar ------------------------------------------------------------------------------- */
.apb-rx-freeship-wrap { max-width: 620px; margin: 0 auto; }
.apb-rx-freeship { display: flex; align-items: center; gap: 12px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 14px 18px; }
.apb-rx-freeship-ico { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--apb-rx-soft); display: flex; align-items: center; justify-content: center; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-freeship-body { flex: 1; min-width: 0; }
.apb-rx-freeship-msg { font-size: 14px; font-weight: 600; }
.apb-rx-freeship-track { height: 8px; border-radius: 999px; background: var(--apb-rx-soft); overflow: hidden; margin-top: 8px; }
.apb-rx-freeship-fill { display: block; width: 0; height: 100%; border-radius: 999px; background: var(--apb-rx-brand); transition: width var(--apb-rx-t, .3s) ease; }

/* the shipped slide-out drawer is appended to <body> — theme it too so the drawer button opens a
   brand-styled panel on generated pages */
.apb-store-cart-drawer { background: var(--apb-rx-surface); color: var(--apb-rx-ink); }
.apb-store-cart-drawer-item { border-bottom: 1px solid var(--apb-rx-line); }
.apb-store-cart-drawer .apb-store-btn-primary { background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }

@media (max-width: 560px) {
  .apb-rx-cartmini-pop { width: min(320px, 86vw); }
}
/* ==== assets/pages/component-compare.css ==== */
/*
 * component-compare.css — comparison components (matrix / vs / cards / before-after / checklist).
 * apb-rx-* namespace, tokens only, no !important. Rendered by trait-apb-component-render-compare.php.
 */
.apb-rx-cmp-head { text-align: center; max-width: 560px; margin: 0 auto 32px; }
.apb-rx-cmx-ey, .apb-rx-cvs-ey, .apb-rx-ccd-eyt, .apb-rx-cba-ey, .apb-rx-cck-ey {
  font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand));
}
.apb-rx-cmx-h, .apb-rx-cvs-h, .apb-rx-ccd-h, .apb-rx-cba-h, .apb-rx-cck-h {
  font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(26px, 4.2vw, 40px); letter-spacing: -.02em; line-height: 1.06; margin: 8px 0 0;
}
.apb-rx-cmp-dash { color: var(--apb-rx-dim); }
/* optional competitor/brand logos (matrix column, vs header, option card) */
.apb-rx-cmx-logo { display: block; height: 26px; width: auto; max-width: 90px; margin: 0 auto 8px; object-fit: contain; }
.apb-rx-cvs-logo { height: 20px; width: auto; max-width: 70px; object-fit: contain; vertical-align: middle; margin-right: 8px; }
.apb-rx-ccd-img { display: block; height: 40px; width: auto; max-width: 120px; object-fit: contain; margin-bottom: 14px; }

/* 1 — matrix --------------------------------------------------------------------------------- */
.apb-rx-cmx { text-align: center; }
.apb-rx-cmx-table { max-width: 920px; margin: 0 auto; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); overflow-x: auto; text-align: left; }
/* a 3-4 column matrix stays readable on phones by scrolling horizontally instead of squishing */
.apb-rx-cmx-hrow, .apb-rx-cmx-row { min-width: 560px; }
.apb-rx-cmx-hrow, .apb-rx-cmx-row { display: grid; align-items: center; }
.apb-rx-cmx-hrow { border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-cmx-row { border-bottom: 1px solid var(--apb-rx-line); font-size: 14px; }
.apb-rx-cmx-row:last-child { border-bottom: 0; }
.apb-rx-cmx-col { padding: 16px; text-align: center; }
.apb-rx-cmx-col.on { background: var(--apb-rx-soft); }
.apb-rx-cmx-cname { font-weight: 800; font-size: 14px; }
.apb-rx-cmx-col.on .apb-rx-cmx-cname { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-cmx-note { font-size: 11px; color: var(--apb-rx-dim); margin-top: 2px; }
.apb-rx-cmx-lab { padding: 15px 16px; color: var(--apb-rx-dim); }
.apb-rx-cmx-cell { padding: 15px 16px; text-align: center; }
.apb-rx-cmx-cell.on { background: var(--apb-rx-soft); font-weight: 600; }
.apb-rx-cmx-cell svg { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); vertical-align: middle; }

/* 2 — head to head --------------------------------------------------------------------------- */
.apb-rx-cvs { text-align: center; }
.apb-rx-cvs-table { max-width: 680px; margin: 0 auto; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; background: var(--apb-rx-surface); text-align: left; }
.apb-rx-cvs-hrow, .apb-rx-cvs-row { display: grid; grid-template-columns: 1.4fr 1fr 1fr; }
.apb-rx-cvs-hrow { background: var(--apb-rx-soft); font-size: 13px; font-weight: 700; }
.apb-rx-cvs-hrow > div, .apb-rx-cvs-row > div { padding: 15px 16px; font-size: 14px; }
.apb-rx-cvs-row { border-top: 1px solid var(--apb-rx-line); }
.apb-rx-cvs-lab { color: var(--apb-rx-dim); }
.apb-rx-cvs-mine { text-align: center; font-weight: 600; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-cvs-theirs { text-align: center; color: var(--apb-rx-dim); }
.apb-rx-cvs-mine svg { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); vertical-align: middle; }
.apb-rx-cvs-cta { margin-top: 26px; }

/* 3 — option cards --------------------------------------------------------------------------- */
.apb-rx-ccd-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; }
.apb-rx-ccd-card { position: relative; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 28px; background: var(--apb-rx-surface); }
.apb-rx-ccd-card.on { border: 2px solid var(--apb-rx-brand); }
.apb-rx-ccd-badge { position: absolute; top: -11px; left: 28px; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-size: 11px; font-weight: 700; letter-spacing: .04em; padding: 4px 12px; border-radius: 999px; }
.apb-rx-ccd-ey { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-ccd-title { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 22px; letter-spacing: -.01em; margin: 8px 0 0; }
.apb-rx-ccd-text { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-rx-ccd-feats { display: flex; flex-direction: column; gap: 10px; margin: 20px 0 0; font-size: 14px; }
.apb-rx-ccd-feat { display: flex; gap: 9px; align-items: flex-start; }
.apb-rx-ccd-feat svg { flex: none; margin-top: 2px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-ccd-cta { display: block; text-align: center; margin-top: 24px; }

/* 4 — before / after ------------------------------------------------------------------------- */
.apb-rx-cba-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; align-items: center; max-width: 900px; margin: 0 auto; }
.apb-rx-cba-col { border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 26px; background: var(--apb-rx-surface); }
.apb-rx-cba-after { border: 2px solid var(--apb-rx-brand); }
.apb-rx-cba-lbl { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--apb-rx-dim); }
.apb-rx-cba-after .apb-rx-cba-lbl { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-cba-list { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 14px; line-height: 1.5; }
.apb-rx-cba-neg { color: var(--apb-rx-dim); }
.apb-rx-cba-list li { position: relative; padding-left: 26px; }
.apb-rx-cba-list li::before { position: absolute; left: 0; top: 0; }
.apb-rx-cba-neg li::before { content: "\00d7"; color: var(--apb-rx-dim); font-weight: 700; }
.apb-rx-cba-pos li::before { content: "\2713"; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-weight: 700; }
.apb-rx-cba-arrow { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }

/* 5 — checklist ------------------------------------------------------------------------------ */
.apb-rx-cck-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 860px; margin: 0 auto; }
.apb-rx-cck-card { border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 26px; background: var(--apb-rx-surface); }
.apb-rx-cck-ours { background: var(--apb-rx-soft); }
.apb-rx-cck-lbl { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; margin-bottom: 16px; }
.apb-rx-cck-other .apb-rx-cck-lbl { color: var(--apb-rx-dim); }
.apb-rx-cck-mk { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.apb-rx-cck-mk-yes { background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }
.apb-rx-cck-mk-no { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); color: var(--apb-rx-dim); }
.apb-rx-cck-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 14px; line-height: 1.5; }
.apb-rx-cck-other .apb-rx-cck-list { color: var(--apb-rx-dim); }

/* 6 — pros & cons ---------------------------------------------------------------------------- */
.apb-rx-cpc-img { display: block; width: 56px; height: 56px; border-radius: calc(var(--apb-rx-radius) * .8); object-fit: cover; margin: 14px auto 0; box-shadow: 0 2px 10px rgba(0,0,0,.1); }
.apb-rx-cpc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 820px; margin: 0 auto; }
.apb-rx-cpc-card { border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 26px; background: var(--apb-rx-surface); }
.apb-rx-cpc-lbl { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; margin-bottom: 16px; }
.apb-rx-cpc-cons { color: var(--apb-rx-dim); }
.apb-rx-cpc-mk { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none; }
.apb-rx-cpc-mk-yes { background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-cpc-mk-no { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); color: var(--apb-rx-dim); }
.apb-rx-cpc-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; font-size: 14px; line-height: 1.5; }
.apb-rx-cpc-list li { position: relative; padding-left: 26px; }
.apb-rx-cpc-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-weight: 700; }
.apb-rx-cpc-muted { color: var(--apb-rx-dim); }
.apb-rx-cpc-muted li::before { content: "\2013"; color: var(--apb-rx-dim); }

/* 7 — scorecard ------------------------------------------------------------------------------ */
.apb-rx-csc-wrap { max-width: 720px; margin: 0 auto; }
.apb-rx-csc-legend { display: flex; justify-content: flex-end; gap: 24px; font-size: 13px; font-weight: 700; margin-bottom: 16px; }
.apb-rx-csc-lg { display: flex; align-items: center; gap: 8px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-csc-lg-theirs { color: var(--apb-rx-dim); }
.apb-rx-csc-logo { height: 22px; width: auto; max-width: 60px; object-fit: contain; }
.apb-rx-csc-sw { width: 12px; height: 12px; border-radius: calc(var(--apb-rx-radius, 16px) * .2); background: var(--apb-rx-brand); }
.apb-rx-csc-sw-o { background: var(--apb-rx-line); }
.apb-rx-csc-rows { display: flex; flex-direction: column; gap: 20px; }
.apb-rx-csc-top { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 8px; }
.apb-rx-csc-lab { font-weight: 600; }
.apb-rx-csc-score { color: var(--apb-rx-dim); }
.apb-rx-csc-bars { display: flex; flex-direction: column; gap: 6px; }
.apb-rx-csc-track { height: 10px; border-radius: 999px; background: var(--apb-rx-soft); overflow: hidden; }
.apb-rx-csc-fill { display: block; height: 100%; border-radius: 999px; }
.apb-rx-csc-mine { background: var(--apb-rx-brand); }
.apb-rx-csc-theirs { background: var(--apb-rx-line); }

/* 8 — quadrant ------------------------------------------------------------------------------- */
.apb-rx-cqd-wrap { max-width: 560px; margin: 0 auto; display: flex; gap: 12px; }
.apb-rx-cqd-yl { display: flex; align-items: center; justify-content: center; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apb-rx-dim); }
.apb-rx-cqd-plotwrap { flex: 1; }
.apb-rx-cqd-plot { position: relative; aspect-ratio: 1; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); background: var(--apb-rx-surface); }
.apb-rx-cqd-vline { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--apb-rx-line); }
.apb-rx-cqd-hline { position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--apb-rx-line); }
.apb-rx-cqd-win { position: absolute; left: 50%; top: 0; right: 0; height: 50%; background: var(--apb-rx-soft); border-top-right-radius: calc(var(--apb-rx-radius) * 1.1); }
.apb-rx-cqd-mark { position: absolute; transform: translate(-50%, -50%); display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.apb-rx-cqd-dot { width: 11px; height: 11px; border-radius: 50%; background: var(--apb-rx-dim); }
.apb-rx-cqd-dot.on { width: 16px; height: 16px; background: var(--apb-rx-brand); box-shadow: 0 0 0 5px var(--apb-rx-soft); }
.apb-rx-cqd-logo { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; filter: grayscale(1); opacity: .75; }
.apb-rx-cqd-logo.on { width: 34px; height: 34px; filter: none; opacity: 1; box-shadow: 0 0 0 4px var(--apb-rx-soft), 0 2px 8px rgba(0,0,0,.14); }
.apb-rx-cqd-name { font-size: 12px; color: var(--apb-rx-dim); }
.apb-rx-cqd-name.on { font-weight: 700; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-cqd-xl { text-align: center; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apb-rx-dim); margin-top: 10px; }

/* 9 — spectrum ------------------------------------------------------------------------------- */
.apb-rx-csp-wrap { max-width: 680px; margin: 0 auto; }
.apb-rx-csp-axes { display: flex; flex-direction: column; gap: 26px; }
.apb-rx-csp-ends { display: flex; justify-content: space-between; font-size: 13px; font-weight: 600; color: var(--apb-rx-dim); margin-bottom: 12px; }
.apb-rx-csp-track { position: relative; height: 4px; border-radius: 999px; background: var(--apb-rx-line); }
.apb-rx-csp-mark { position: absolute; top: 50%; transform: translate(-50%, -50%); border-radius: 50%; }
.apb-rx-csp-mine { width: 18px; height: 18px; background: var(--apb-rx-brand); box-shadow: 0 0 0 4px var(--apb-rx-soft); z-index: 2; }
.apb-rx-csp-other { width: 14px; height: 14px; background: var(--apb-rx-surface); border: 2px solid var(--apb-rx-dim); }
.apb-rx-csp-legend { display: flex; justify-content: center; gap: 24px; font-size: 13px; font-weight: 700; margin-top: 28px; }
.apb-rx-csp-lg { display: flex; align-items: center; gap: 8px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-csp-lg-o { color: var(--apb-rx-dim); }
.apb-rx-csp-logo { height: 22px; width: auto; max-width: 60px; object-fit: contain; }
.apb-rx-csp-sw { width: 14px; height: 14px; border-radius: 50%; background: var(--apb-rx-brand); }
.apb-rx-csp-sw-o { background: var(--apb-rx-surface); border: 2px solid var(--apb-rx-dim); }

/* 10 — image slider -------------------------------------------------------------------------- */
.apb-rx-cis-frame { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.3); overflow: hidden; aspect-ratio: 16/10; background: var(--apb-rx-soft); user-select: none; max-width: 820px; margin: 0 auto; touch-action: none; }
.apb-rx-cis-after, .apb-rx-cis-before { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
/* Clip the full-size "before" layer with clip-path (NOT a width-clipped wrapper) so both images stay the
   exact frame size at every viewport — a fixed-width inner image would misalign below the max width. */
.apb-rx-cis-beforewrap { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--apb-cis-p, 50%)) 0 0); }
.apb-rx-cis-lbl { position: absolute; bottom: 14px; font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px; }
.apb-rx-cis-lbl-b { left: 14px; background: color-mix(in srgb, var(--apb-rx-surface) 85%, transparent); color: var(--apb-rx-ink); }
.apb-rx-cis-lbl-a { right: 14px; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }
.apb-rx-cis-handle { position: absolute; top: 0; bottom: 0; left: var(--apb-cis-p, 50%); transform: translateX(-50%); width: 40px; display: flex; align-items: center; justify-content: center; cursor: ew-resize; }
.apb-rx-cis-handle::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 2px; background: var(--apb-rx-surface); }
.apb-rx-cis-handle svg { position: relative; width: 40px; height: 40px; padding: 11px; border-radius: 50%; background: var(--apb-rx-surface); color: var(--apb-rx-ink); box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.apb-rx-cis-cap { text-align: center; font-size: 13px; color: var(--apb-rx-dim); margin: 14px 0 0; }

@media (max-width: 720px) {
  .apb-rx-ccd-grid, .apb-rx-cck-grid, .apb-rx-cpc-grid { grid-template-columns: 1fr; }
  .apb-rx-cba-grid { grid-template-columns: 1fr; }
  .apb-rx-cba-arrow { transform: rotate(90deg); margin: 0 auto; }
}
/* ==== assets/pages/component-about.css ==== */
/*
 * component-about.css — story/about components (mission / timeline / values / founder / story split).
 * apb-rx-* namespace, tokens only, no !important. Rendered by trait-apb-component-render-about.php.
 */
.apb-rx-amis-ey, .apb-rx-atl-ey, .apb-rx-aval-ey, .apb-rx-afl-ey, .apb-rx-ast-ey {
  font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand));
}

/* 1 — mission -------------------------------------------------------------------------------- */
.apb-rx-amis-wrap { max-width: 820px; margin: 0 auto; text-align: center; }
.apb-rx-amis-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(28px, 5vw, 48px); letter-spacing: -.02em; line-height: 1.12; margin: 16px 0 0; }
.apb-rx-amis-lead { margin: 22px auto 0; font-size: 17px; line-height: 1.7; color: var(--apb-rx-dim); max-width: 58ch; }
.apb-rx-amis-stats { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; margin: 44px 0 0; border-top: 1px solid var(--apb-rx-line); padding-top: 32px; }
.apb-rx-amis-stat b { display: block; font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(26px, 4vw, 36px); letter-spacing: -.01em; }
.apb-rx-amis-stat span { display: block; font-size: 13px; color: var(--apb-rx-dim); margin-top: 4px; }

/* 2 — timeline ------------------------------------------------------------------------------- */
.apb-rx-atl-wrap { max-width: 720px; margin: 0 auto; }
.apb-rx-atl-head { text-align: center; max-width: 520px; margin: 0 auto 40px; }
.apb-rx-atl-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(28px, 4.5vw, 42px); letter-spacing: -.02em; line-height: 1.05; margin: 8px 0 0; }
.apb-rx-atl-rail { position: relative; padding-left: 36px; }
.apb-rx-atl-rail::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 2px; background: var(--apb-rx-line); }
.apb-rx-atl-item { position: relative; padding-bottom: 28px; }
.apb-rx-atl-item:last-child { padding-bottom: 0; }
.apb-rx-atl-dot { position: absolute; left: -30px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: var(--apb-rx-brand); box-shadow: 0 0 0 4px var(--apb-rx-soft); }
.apb-rx-atl-year { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 15px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-atl-title { font-weight: 700; font-size: 16px; margin-top: 2px; }
.apb-rx-atl-text { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: var(--apb-rx-dim); }

/* 3 — values --------------------------------------------------------------------------------- */
.apb-rx-aval-head { text-align: center; max-width: 560px; margin: 0 auto 40px; }
.apb-rx-aval-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(28px, 4.5vw, 42px); letter-spacing: -.02em; line-height: 1.05; margin: 8px 0 0; }
.apb-rx-aval-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; }
.apb-rx-aval-card { border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); padding: 26px; background: var(--apb-rx-surface); }
.apb-rx-aval-icon { display: inline-flex; width: 44px; height: 44px; border-radius: calc(var(--apb-rx-radius) * .8); background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); align-items: center; justify-content: center; }
.apb-rx-aval-title { font-weight: 800; font-size: 17px; letter-spacing: -.01em; margin: 16px 0 0; }
.apb-rx-aval-text { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: var(--apb-rx-dim); }

/* 4 — founder -------------------------------------------------------------------------------- */
.apb-rx-afl-grid { max-width: 900px; margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(24px, 4vw, 48px); align-items: center; }
.apb-rx-afl-media { border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-rx-afl-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-afl-quote { font-family: var(--apb-rx-font-display, inherit); font-weight: 500; font-size: clamp(19px, 2.6vw, 26px); line-height: 1.4; letter-spacing: -.01em; margin: 16px 0 0; }
.apb-rx-afl-lead { margin: 18px 0 0; font-size: 15px; line-height: 1.7; color: var(--apb-rx-dim); }
.apb-rx-afl-attr { display: flex; align-items: center; gap: 14px; margin: 24px 0 0; }
.apb-rx-afl-sig { font-family: var(--apb-rx-font-display, inherit); font-size: 26px; font-style: italic; }
.apb-rx-afl-rule { width: 1px; height: 28px; background: var(--apb-rx-line); }
.apb-rx-afl-who { font-size: 13px; color: var(--apb-rx-dim); line-height: 1.4; }

/* 5 — story split ---------------------------------------------------------------------------- */
.apb-rx-ast-grid { max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.apb-rx-ast-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(28px, 4vw, 40px); letter-spacing: -.02em; line-height: 1.08; margin: 12px 0 0; }
.apb-rx-ast-paras { margin: 18px 0 0; }
.apb-rx-ast-paras p { margin: 0 0 14px; font-size: 16px; line-height: 1.7; color: var(--apb-rx-dim); }
.apb-rx-ast-paras p:last-child { margin-bottom: 0; }
.apb-rx-ast-quote { margin: 24px 0 0; font-family: var(--apb-rx-font-display, inherit); font-weight: 600; font-size: 18px; line-height: 1.45; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-rx-ast-media { border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-rx-ast-media img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 820px) {
  .apb-rx-amis-stats, .apb-rx-afl-grid, .apb-rx-ast-grid { grid-template-columns: 1fr; }
}
/* ==== assets/pages/component-team.css ==== */
/*
 * component-team.css — team family part 1: the SHARED member layer (photo/initials, reveal overlay with
 * adjustable desc styles, socials) + cards/rows/circles/masonry/staggers/mosaic/bento/feature-split.
 * apb-rx / apb-tm namespaces, tokens only, no !important. Interaction states are class/attr-driven
 * (data-team-reveal, data-team-desc) — never inline styles. Rendered by trait-apb-component-render-team*.php.
 */

/* ---- shared: head ---- */
.apb-tm-head { text-align: center; max-width: 560px; margin: 0 auto 40px; }
.apb-tm-ey { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-tm-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(28px, 4.5vw, 42px); letter-spacing: -.02em; line-height: 1.05; margin: 8px 0 0; }
.apb-tm-lead { margin: 12px auto 0; font-size: 15px; line-height: 1.6; color: var(--apb-rx-dim); }
.apb-tm-narrow { max-width: 720px; margin: 0 auto; }
.apb-tm-narrow .apb-tm-head { text-align: left; margin: 0 0 28px; }

/* ---- shared: photo + initials fallback ---- */
.apb-tm-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-tm-ini { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 28px; }
.apb-tm-name { font-weight: 700; font-size: 15px; margin-top: 12px; }
.apb-tm-role { font-size: 13px; color: var(--apb-rx-dim); }
.apb-tm-role-in { color: var(--apb-rx-dim); font-weight: 400; }

/* ---- shared: the reveal overlay (bio + socials) ---- */
.apb-tm-ph, .apb-tm-tile, .apb-tm-circav, .apb-tfg-ph, .apb-tm-fsminiph, .apb-tm-waveph { position: relative; overflow: hidden; }
.apb-tm-ov { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 14px; opacity: 0; transition: opacity var(--apb-rx-t, .28s); }
/* reveal modes (wrapper attr) */
[data-team-reveal="hover"] .apb-tm-card:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-card:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tm-tile:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-tile:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tm-circ:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-circ:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tfg-m:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tfg-m:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tm-fsmini:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-fsmini:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tm-wavec:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-wavec:focus-within .apb-tm-ov,
[data-team-reveal="hover"] .apb-tm-slc:hover .apb-tm-ov, [data-team-reveal="hover"] .apb-tm-slc:focus-within .apb-tm-ov,
[data-team-reveal="always"] .apb-tm-ov { opacity: 1; }
[data-team-reveal="none"] .apb-tm-ov { display: none; }
@media (hover: none) { [data-team-reveal="hover"] .apb-tm-ov { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .apb-tm-ov { transition: none; } }
/* desc styles (wrapper attr) */
[data-team-desc="scrim"] .apb-tm-ov { background: linear-gradient(to top, var(--apb-rx-scrim, rgba(0,0,0,.82)), transparent 70%); color: #fff; }
[data-team-desc="brand"] .apb-tm-ov { background: linear-gradient(to top, var(--apb-rx-brand), transparent 72%); color: var(--apb-rx-accent-contrast, #fff); }
[data-team-desc="solid"] .apb-tm-ov { inset: auto 10px 10px 10px; border-radius: calc(var(--apb-rx-radius) * .7); background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); padding: 12px 14px; }
[data-team-desc="frosted"] .apb-tm-ov { inset: auto 10px 10px 10px; border-radius: calc(var(--apb-rx-radius) * .7); background: color-mix(in srgb, var(--apb-rx-surface) 80%, transparent); color: var(--apb-rx-ink); padding: 12px 14px; backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
[data-team-desc="frosted"] .apb-tm-ov-bio { color: var(--apb-rx-dim); }
.apb-tm-ov-name { font-weight: 800; font-size: 15px; }
.apb-tm-ov-role { font-size: 12px; opacity: .85; }
.apb-tm-ov-bio { margin: 6px 0 0; font-size: 13px; line-height: 1.5; }
.apb-tm-soc { display: flex; gap: 10px; margin-top: 10px; color: var(--apb-rx-dim); }
.apb-tm-soc a { color: inherit; display: inline-flex; }
.apb-tm-soc--light { color: currentColor; }
[data-team-desc="frosted"] .apb-tm-soc--light { color: var(--apb-rx-dim); }

/* ---- always-on name/role label (overlay tiles) ---- */
.apb-tm-lbl { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px; background: linear-gradient(to top, rgba(0,0,0,.66), transparent); color: #fff; pointer-events: none; }
.apb-tm-lbl-name { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 16px; }
.apb-tm-lbl-role { font-size: 12px; opacity: .85; }
.apb-tm-tile .apb-tm-ov { z-index: 1; }

/* ---- 1 cards ---- */
.apb-tm-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 4), 1fr); gap: 20px; }
.apb-tm-card { text-align: center; }
.apb-tm-ph { border-radius: calc(var(--apb-rx-radius) * 1.2); aspect-ratio: 1; background: var(--apb-rx-soft); }
.apb-tm-ph--45 { aspect-ratio: 4/5; }

/* ---- 2 rows ---- */
.apb-tm-rowlist { display: flex; flex-direction: column; }
.apb-tm-row { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--apb-rx-line); }
.apb-tm-row:last-child { border-bottom: 0; }
.apb-tm-rowav { flex: none; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--apb-rx-soft); }
.apb-tm-rowinfo { flex: 1; min-width: 0; }
.apb-tm-rowinfo .apb-tm-name { margin-top: 0; }
.apb-tm-rowbio { font-size: 13px; color: var(--apb-rx-dim); margin-top: 2px; }
.apb-tm-row .apb-tm-soc { margin-top: 0; flex: none; }

/* ---- 3 circles ---- */
.apb-tm-circgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 24px 16px; max-width: 900px; margin: 0 auto; }
.apb-tm-circ { text-align: center; }
.apb-tm-circav { width: 80px; height: 80px; border-radius: 50%; background: var(--apb-rx-soft); margin: 0 auto; }
.apb-tm-circ .apb-tm-name { font-size: 13px; margin-top: 9px; }
.apb-tm-circ .apb-tm-role { font-size: 11px; }
.apb-tm-circ .apb-tm-ov { padding: 8px; font-size: 10px; }
.apb-tm-circ-more { display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 15px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* ---- 4 masonry ---- */
.apb-tm-mascols { column-count: 3; column-gap: 16px; max-width: 1000px; margin: 0 auto; }
.apb-tm-mascard { break-inside: avoid; margin-bottom: 16px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); overflow: hidden; }
.apb-tm-masph { aspect-ratio: 1; background: var(--apb-rx-soft); }
.apb-tm-masph.tall { aspect-ratio: 3/4; }
.apb-tm-masbody { padding: 14px; }
.apb-tm-masbody .apb-tm-name { margin-top: 0; }
.apb-tm-masbio { margin: 8px 0 0; font-size: 13px; line-height: 1.55; color: var(--apb-rx-dim); }

/* ---- 5 staggered ---- */
.apb-tm-stggrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 4), 1fr); gap: 20px; align-items: start; }
.apb-tm-stgc.down { margin-top: 40px; }

/* ---- responsive ---- */
@media (max-width: 820px) {
  .apb-tm-grid, .apb-tm-stggrid { grid-template-columns: repeat(2, 1fr); }
  .apb-tm-stgc.down { margin-top: 0; }
  .apb-tm-mascols { column-count: 2; }
}
@media (max-width: 480px) { .apb-tm-mascols { column-count: 1; } }
/* ==== assets/pages/component-team-2.css ==== */
/*
 * component-team-2.css — team family part 2: wave/labeled staggers, mosaic, bento, feature split,
 * sliders, marquee, filter grid (:has radios), hover tiles, leadership, flip cards, spotlight switcher,
 * org chart, polaroid. Tokens only, no !important. CSS-only interactivity, fail-open without :has().
 */

/* ---- 6 stagger wave ---- */
.apb-tm-wavegrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 5), 1fr); gap: 16px; align-items: start; max-width: 1000px; margin: 0 auto; }
.apb-tm-wavec { margin: 0; }
.apb-tm-wavec.o1 { margin-top: 20px; } .apb-tm-wavec.o2 { margin-top: 40px; } .apb-tm-wavec.o3 { margin-top: 56px; }
.apb-tm-waveph { border-radius: calc(var(--apb-rx-radius) * 1.3); aspect-ratio: 3/5; background: var(--apb-rx-soft); }

/* ---- 7 stagger labeled ---- */
.apb-tm-slabgrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 5), 1fr); gap: 18px; align-items: start; max-width: 980px; margin: 0 auto; }
.apb-tm-slabc.o1 { margin-top: 20px; } .apb-tm-slabc.o2 { margin-top: 40px; }

/* ---- 8 mosaic ---- */
.apb-tm-mosgrid { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 180px; gap: 14px; max-width: 1000px; margin: 0 auto; }
.apb-tm-mostile { border-radius: calc(var(--apb-rx-radius) * 1.2); background: var(--apb-rx-soft); }
.apb-tm-mostile.feat { grid-row: span 2; }
.apb-tm-mostile.wide { grid-column: span 2; }

/* ---- 9 bento ---- */
.apb-tm-bengrid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 150px; gap: 14px; max-width: 1000px; margin: 0 auto; }
.apb-tm-bentile { border-radius: calc(var(--apb-rx-radius) * 1.2); background: var(--apb-rx-soft); position: relative; overflow: hidden; }
.apb-tm-bentile.feat { grid-column: span 2; grid-row: span 2; }
.apb-tm-bentile.wide { grid-column: span 2; }
.apb-tm-benstat { display: flex; align-items: center; justify-content: center; text-align: center; }
.apb-tm-benval { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 22px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* ---- 10 feature split ---- */
.apb-tm-fsgrid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(20px, 4vw, 40px); align-items: stretch; }
.apb-tm-fsfeat { border-radius: calc(var(--apb-rx-radius) * 1.3); background: var(--apb-rx-soft); min-height: 340px; }
.apb-tm-fsminis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-content: start; }
.apb-tm-fsmini { text-align: center; }
.apb-tm-fsminiph { border-radius: var(--apb-rx-radius); aspect-ratio: 1; background: var(--apb-rx-soft); }
.apb-tm-fsmini .apb-tm-name { font-size: 13px; margin-top: 8px; }

/* ---- 11/12 sliders ---- */
.apb-tm-slmask { -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.apb-tm-sltrack, .apb-tm-sstrack { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 8px 24px; }
.apb-tm-sltrack::-webkit-scrollbar, .apb-tm-sstrack::-webkit-scrollbar { display: none; }
.apb-tm-slc { flex: 0 0 280px; scroll-snap-align: center; position: relative; border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-tm-slc.gray .apb-tm-img { filter: grayscale(1); }
.apb-tm-slcard { position: absolute; left: 14px; right: 14px; bottom: 14px; background: var(--apb-rx-surface); border-radius: calc(var(--apb-rx-radius) * .7); padding: 12px 14px; box-shadow: 0 6px 20px rgba(0,0,0,.14); }
.apb-tm-slname { font-weight: 700; font-size: 15px; }
.apb-tm-slrole { font-size: 13px; color: var(--apb-rx-dim); }
.apb-tm-sstrack { align-items: center; padding: 24px; }
.apb-tm-ssc { flex: 0 0 240px; scroll-snap-align: center; position: relative; opacity: .7; transition: opacity var(--apb-rx-t, .3s), transform var(--apb-rx-t, .3s); cursor: pointer; }
.apb-tm-sscph { border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; aspect-ratio: 1; background: var(--apb-rx-soft); }
.apb-tm-ssc .apb-tm-img { filter: grayscale(1); transition: filter var(--apb-rx-t, .3s); }
.apb-tm-ssc.on, .apb-tm-ssc:hover, .apb-tm-ssc:focus-within { opacity: 1; transform: scale(1.04); }
.apb-tm-ssc.on .apb-tm-img, .apb-tm-ssc:hover .apb-tm-img, .apb-tm-ssc:focus-within .apb-tm-img { filter: none; }
.apb-tm-ssc.on .apb-tm-sscph, .apb-tm-ssc:hover .apb-tm-sscph, .apb-tm-ssc:focus-within .apb-tm-sscph { box-shadow: 0 18px 40px rgba(0,0,0,.18); }
@media (prefers-reduced-motion: reduce) { .apb-tm-ssc { transition: none; } }

/* ---- 13 marquee ---- */
.apb-tm-mq { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); overflow: hidden; }
@keyframes apb-tm-mqscroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.apb-tm-mqtrack { display: flex; gap: 20px; width: max-content; animation: apb-tm-mqscroll 32s linear infinite; }
.apb-tm-mq:hover .apb-tm-mqtrack { animation-play-state: paused; }
.apb-tm-mqset { display: flex; gap: 20px; }
.apb-tm-mqc { text-align: center; width: 104px; }
.apb-tm-mqav { width: 88px; height: 88px; border-radius: 50%; overflow: hidden; background: var(--apb-rx-soft); margin: 0 auto; }
.apb-tm-mqc .apb-tm-name { font-size: 13px; margin-top: 8px; }
.apb-tm-mqc .apb-tm-role { font-size: 11px; }
@media (prefers-reduced-motion: reduce) {
  .apb-tm-mqtrack { animation: none; width: auto; flex-wrap: wrap; justify-content: center; }
  .apb-tm-mqset[aria-hidden] { display: none; }
  .apb-tm-mq { -webkit-mask-image: none; mask-image: none; }
}

/* ---- 14 filter grid (radios hidden inside pill labels; :has() drives filtering, fail-open) ---- */
.apb-tfg-grid { display: grid; grid-template-columns: .55fr 1.45fr; gap: clamp(24px, 4vw, 56px); align-items: start; max-width: 1120px; margin: 0 auto; }
.apb-rx-tfg .apb-tm-head { text-align: left; margin: 0; }
.apb-tfg-side { position: sticky; top: 24px; }
.apb-tfg-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.apb-tfg-pill { cursor: pointer; font-size: 13px; font-weight: 600; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--apb-rx-line); color: var(--apb-rx-ink); transition: background var(--apb-rx-t-fast, .15s), color var(--apb-rx-t-fast, .15s), border-color var(--apb-rx-t-fast, .15s); }
.apb-tfg-pill input { position: absolute; opacity: 0; pointer-events: none; }
.apb-tfg-pill:has(input:checked) { background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); border-color: transparent; }
.apb-tfg-pill:has(input:focus-visible) { outline: 2px solid var(--apb-rx-brand); outline-offset: 2px; }
.apb-tfg-list { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 18px; }
.apb-tfg-ph { border-radius: calc(var(--apb-rx-radius) * 1.1); aspect-ratio: 4/3; background: var(--apb-rx-soft); }
.apb-tfg-m .apb-tm-name { margin-top: 10px; }
/* pill k (2..6) checked -> only .d(k-1) cards show */
.apb-rx-tfg:has(.apb-tfg-pill:nth-child(2) input:checked) .apb-tfg-m:not(.d1),
.apb-rx-tfg:has(.apb-tfg-pill:nth-child(3) input:checked) .apb-tfg-m:not(.d2),
.apb-rx-tfg:has(.apb-tfg-pill:nth-child(4) input:checked) .apb-tfg-m:not(.d3),
.apb-rx-tfg:has(.apb-tfg-pill:nth-child(5) input:checked) .apb-tfg-m:not(.d4),
.apb-rx-tfg:has(.apb-tfg-pill:nth-child(6) input:checked) .apb-tfg-m:not(.d5) { display: none; }

/* ---- 15 hover tiles ---- */
.apb-tm-hvgrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 18px; }
.apb-tm-hvtile { border-radius: calc(var(--apb-rx-radius) * 1.2); aspect-ratio: 4/5; background: var(--apb-rx-soft); }
.apb-tm-hvtile .apb-tm-ov { padding-bottom: 64px; } /* keep the bio clear of the always-on label */

/* ---- 16 leadership ---- */
.apb-tm-ldgrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 24px; }
.apb-tm-ldcard { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.3); overflow: hidden; }
.apb-tm-ldph { aspect-ratio: 5/4; background: var(--apb-rx-soft); }
.apb-tm-ldbody { padding: 20px; }
.apb-tm-ldname { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 18px; }
.apb-tm-ldrole { font-size: 13px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-weight: 600; margin-top: 2px; }
.apb-tm-ldbio { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--apb-rx-dim); }

/* ---- 17 flip cards ---- */
.apb-tm-flgrid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; }
.apb-tm-flc { perspective: 1000px; aspect-ratio: 3/4; cursor: pointer; }
.apb-tm-flin { position: relative; width: 100%; height: 100%; transition: transform var(--apb-rx-t-slow, .6s); transform-style: preserve-3d; }
.apb-tm-flc:hover .apb-tm-flin, .apb-tm-flc:focus-within .apb-tm-flin, .apb-tm-flc:focus .apb-tm-flin { transform: rotateY(180deg); }
.apb-tm-flfront, .apb-tm-flback { position: absolute; inset: 0; backface-visibility: hidden; border-radius: calc(var(--apb-rx-radius) * 1.2); overflow: hidden; }
.apb-tm-flfront { background: var(--apb-rx-soft); }
.apb-tm-flback { transform: rotateY(180deg); background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); padding: 24px; display: flex; flex-direction: column; justify-content: center; }
.apb-tm-flname { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: 17px; }
.apb-tm-flbio { margin: 10px 0 0; font-size: 13.5px; line-height: 1.55; opacity: .92; }
.apb-tm-flfact { margin-top: 14px; font-size: 12px; opacity: .8; }
@media (prefers-reduced-motion: reduce) { .apb-tm-flin { transition: none; } }

/* ---- 18 spotlight switcher (:has radios; fail-open = first panel) ---- */
.apb-tsw-wrap { max-width: 900px; margin: 0 auto; }
.apb-tsw-p { display: none; grid-template-columns: .85fr 1.15fr; gap: clamp(20px, 4vw, 44px); align-items: center; min-height: 300px; }
.apb-tsw-p:first-child { display: grid; }
.apb-tsw-ph { border-radius: calc(var(--apb-rx-radius) * 1.3); overflow: hidden; aspect-ratio: 1; background: var(--apb-rx-soft); }
.apb-tm-swbio { margin: 14px 0 0; font-size: 15px; line-height: 1.65; color: var(--apb-rx-dim); }
.apb-tsw-rail { display: flex; gap: 12px; justify-content: center; margin-top: 28px; }
.apb-tsw-th { cursor: pointer; }
.apb-tsw-th input { position: absolute; opacity: 0; pointer-events: none; }
.apb-tsw-thav { display: block; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--apb-rx-soft); outline: 3px solid transparent; outline-offset: 2px; }
.apb-tsw-th:has(input:checked) .apb-tsw-thav { outline-color: var(--apb-rx-brand); }
.apb-tsw-th:has(input:focus-visible) .apb-tsw-thav { outline-color: var(--apb-rx-brand); outline-style: dashed; }
/* any checked thumb hides all panels, then thumb k re-shows panel k (fail-open: first panel w/o :has) */
.apb-rx-tsw:has(.apb-tsw-th input:checked) .apb-tsw-p { display: none; }
.apb-rx-tsw:has(.apb-tsw-th:nth-child(1) input:checked) .apb-tsw-p:nth-child(1),
.apb-rx-tsw:has(.apb-tsw-th:nth-child(2) input:checked) .apb-tsw-p:nth-child(2),
.apb-rx-tsw:has(.apb-tsw-th:nth-child(3) input:checked) .apb-tsw-p:nth-child(3),
.apb-rx-tsw:has(.apb-tsw-th:nth-child(4) input:checked) .apb-tsw-p:nth-child(4),
.apb-rx-tsw:has(.apb-tsw-th:nth-child(5) input:checked) .apb-tsw-p:nth-child(5) { display: grid; }

/* ---- 19 org chart ---- */
.apb-toc-tree { display: flex; flex-direction: column; align-items: center; }
.apb-toc-node { display: flex; align-items: center; gap: 12px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 10px 14px; }
.apb-toc-root { border: 2px solid var(--apb-rx-brand); padding: 12px 18px; }
.apb-toc-av { flex: none; width: 40px; height: 40px; border-radius: 50%; overflow: hidden; background: var(--apb-rx-soft); display: block; }
.apb-toc-info { text-align: left; }
.apb-toc-name { font-weight: 700; font-size: 14px; }
.apb-toc-role { font-size: 12px; color: var(--apb-rx-dim); }
.apb-toc-root .apb-toc-role { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-toc-vline { width: 2px; height: 26px; background: var(--apb-rx-line); }
.apb-toc-row { display: flex; justify-content: center; gap: clamp(14px, 4vw, 56px); flex-wrap: wrap; position: relative; padding-top: 0; }
.apb-toc-branch { display: flex; flex-direction: column; align-items: center; }
.apb-toc-branch .apb-toc-vline { height: 22px; }

/* ---- 20 polaroid ---- */
.apb-tm-plrow { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(16px, 3vw, 36px); }
.apb-tm-plc { background: var(--apb-rx-surface); padding: 12px 12px 0; border-radius: 4px; box-shadow: 0 10px 26px rgba(0,0,0,.14); width: 190px; text-align: center; }
.apb-tm-plc.r0 { transform: rotate(-4deg); } .apb-tm-plc.r1 { transform: rotate(3deg); margin-top: 24px; }
.apb-tm-plc.r2 { transform: rotate(-2deg); } .apb-tm-plc.r3 { transform: rotate(5deg); margin-top: 18px; }
.apb-tm-plph { aspect-ratio: 1; background: var(--apb-rx-soft); border-radius: 2px; overflow: hidden; }
.apb-tm-plname { font-family: var(--apb-rx-font-display, inherit); font-style: italic; font-size: 19px; padding-top: 12px; }
.apb-tm-plcap { font-size: 12px; color: var(--apb-rx-dim); padding: 2px 4px 16px; }

/* ---- responsive ---- */
@media (max-width: 820px) {
  .apb-tm-wavegrid, .apb-tm-slabgrid { grid-template-columns: repeat(2, 1fr); }
  .apb-tm-wavec, .apb-tm-slabc { margin-top: 0; }
  .apb-tm-bengrid { grid-template-columns: repeat(2, 1fr); }
  .apb-tm-mosgrid { grid-template-columns: repeat(2, 1fr); }
  .apb-tm-fsgrid, .apb-tsw-p { grid-template-columns: 1fr; }
  .apb-tfg-grid { grid-template-columns: 1fr; }
  .apb-tfg-side { position: static; }
  .apb-tfg-list { grid-template-columns: repeat(2, 1fr); }
  .apb-tm-hvgrid, .apb-tm-ldgrid, .apb-tm-flgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) { .apb-tm-hvgrid, .apb-tm-ldgrid, .apb-tm-flgrid { grid-template-columns: 1fr; } }
/* ==== assets/pages/component-cta.css ==== */
/*
 * component-cta.css — CTA family (spotlight band / split image / newsletter signup / boxed card /
 * proof-stats). apb-rx / apb-ct namespaces, tokens only, no !important.
 * Rendered by trait-apb-component-render-cta.php.
 */
.apb-ct-ey { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-ct-ey--onbrand { color: currentColor; opacity: .8; }
.apb-ct-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(26px, 4.5vw, 44px); letter-spacing: -.02em; line-height: 1.06; margin: 12px 0 0; }
.apb-ct-lead { margin: 14px auto 0; font-size: 16px; line-height: 1.6; color: var(--apb-rx-dim); max-width: 48ch; }
.apb-ct-lead--onbrand { color: currentColor; opacity: .9; }
.apb-ct-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; align-items: center; }
.apb-ct-btn { display: inline-block; text-decoration: none; font-weight: 700; font-size: 15px; padding: 14px 30px; border-radius: var(--apb-rx-radius); }
.apb-ct-btn--brand { background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }
.apb-ct-btn--inverse { background: var(--apb-rx-surface); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-ct-btn--outline-onbrand { border: 1px solid color-mix(in srgb, currentColor 55%, transparent); color: currentColor; font-weight: 600; }
.apb-ct-btn--lg { padding: 16px 40px; font-size: 16px; }
.apb-ct-textlink { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; color: var(--apb-rx-ink); font-weight: 600; font-size: 15px; padding: 14px 8px; }
.apb-ct-note { font-size: 13px; color: var(--apb-rx-dim); margin-top: 14px; }
.apb-ct-note--check { display: flex; align-items: center; justify-content: center; gap: 8px; }
.apb-ct-note--check svg { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* 1 — spotlight band */
.apb-ct-band { max-width: 1100px; margin: 0 auto; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); border-radius: calc(var(--apb-rx-radius) * 1.6); padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px); text-align: center; }
.apb-ct-h--onbrand { color: currentColor; }
.apb-ct-band .apb-ct-row { justify-content: center; }

/* 2 — split image */
.apb-ct-splitcard { max-width: 1060px; margin: 0 auto; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.4); overflow: hidden; display: grid; grid-template-columns: 1.05fr .95fr; align-items: stretch; }
.apb-ct-splitbody { padding: clamp(28px, 4vw, 52px); display: flex; flex-direction: column; justify-content: center; }
.apb-ct-splitbody .apb-ct-lead { margin-left: 0; }
.apb-ct-splitmedia { background: var(--apb-rx-soft); min-height: 280px; }
.apb-ct-splitmedia img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* 3 — newsletter signup */
.apb-ct-nlwrap { max-width: 560px; margin: 0 auto; text-align: center; }
.apb-ct-ico { display: inline-flex; width: 48px; height: 48px; border-radius: calc(var(--apb-rx-radius) * .9); background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); align-items: center; justify-content: center; margin-bottom: 6px; }
.apb-ct-inline { display: flex; gap: 8px; margin: 24px auto 0; max-width: 440px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 6px; }
.apb-ct-inline input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--apb-rx-ink); font: inherit; font-size: 15px; padding: 11px 14px; outline: none; }
.apb-ct-inline button { border: 0; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font: inherit; font-weight: 700; font-size: 15px; padding: 11px 24px; border-radius: calc(var(--apb-rx-radius) * .8); cursor: pointer; }
.apb-ct-formhost { margin-top: 24px; text-align: left; }

/* 4 — boxed card */
.apb-ct-box { max-width: 720px; margin: 0 auto; border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.4); background: var(--apb-rx-surface); padding: clamp(32px, 5vw, 56px); text-align: center; box-shadow: var(--apb-rx-shadow-1, 0 12px 40px rgba(0,0,0,.06)); }
.apb-ct-box .apb-ct-btn { margin-top: 26px; }

/* 5 — proof stats */
.apb-ct-statwrap { max-width: 760px; margin: 0 auto; text-align: center; }
.apb-ct-statwrap .apb-ct-h { margin-top: 0; }
.apb-ct-statwrap .apb-ct-btn { margin-top: 26px; }
.apb-ct-stats { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; margin-top: 40px; border-top: 1px solid var(--apb-rx-line); padding-top: 32px; }
.apb-ct-stat b { display: block; font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(24px, 4vw, 34px); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-ct-stat span { display: block; font-size: 13px; color: var(--apb-rx-dim); margin-top: 4px; }

@media (max-width: 720px) { .apb-ct-splitcard { grid-template-columns: 1fr; } }

/* 6 — dual path */
.apb-ct-dp { max-width: 960px; margin: 0 auto; }
.apb-ct-dp-head { text-align: center; max-width: 600px; margin: 0 auto clamp(24px, 3.5vw, 40px); }
.apb-ct-dp-head .apb-ct-h { margin-top: 8px; }
.apb-ct-dp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(14px, 2vw, 20px); }
.apb-ct-dp-card { display: flex; flex-direction: column; align-items: flex-start; text-decoration: none; padding: clamp(24px, 3.5vw, 36px); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.15); background: var(--apb-rx-surface); transition: transform var(--apb-rx-t) var(--apb-rx-ease), box-shadow var(--apb-rx-t) var(--apb-rx-ease), border-color var(--apb-rx-t) var(--apb-rx-ease); }
.apb-ct-dp-card:hover { transform: translateY(-4px); box-shadow: var(--apb-rx-shadow-2, 0 20px 44px -22px rgba(11,13,18,.22)); border-color: var(--apb-rx-line-accent, var(--apb-rx-brand)); }
.apb-ct-dp-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); margin-bottom: 18px; }
.apb-ct-dp-ic svg { width: 26px; height: 26px; }
.apb-ct-dp-card h3 { margin: 0 0 8px; font-size: 20px; font-weight: 700; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-ct-dp-card p { margin: 0 0 22px; color: var(--apb-rx-dim); font-size: 15px; line-height: 1.6; }
.apb-ct-dp-cta { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-ct-dp-cta svg { transition: transform var(--apb-rx-t) var(--apb-rx-ease); }
.apb-ct-dp-card:hover .apb-ct-dp-cta svg { transform: translateX(4px); }
.apb-ct-dp-card--brand { background: linear-gradient(150deg, var(--apb-rx-brand), color-mix(in srgb, var(--apb-rx-brand) 62%, #000)); border-color: transparent; }
.apb-ct-dp-card--brand h3 { color: var(--apb-rx-accent-contrast, #fff); }
.apb-ct-dp-card--brand p { color: color-mix(in srgb, var(--apb-rx-accent-contrast, #fff) 82%, transparent); }
.apb-ct-dp-card--brand .apb-ct-dp-ic { background: color-mix(in srgb, var(--apb-rx-accent-contrast, #fff) 16%, transparent); color: var(--apb-rx-accent-contrast, #fff); }
.apb-ct-dp-card--brand .apb-ct-dp-cta { color: var(--apb-rx-accent-contrast, #fff); }

/* 7 — app badges */
.apb-ct-app { max-width: 720px; margin: 0 auto; text-align: center; }
.apb-ct-app-badges { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: clamp(22px, 3vw, 30px) 0 18px; }
.apb-ct-app-badge { display: inline-flex; align-items: center; gap: 11px; padding: 11px 18px; border-radius: 14px; background: var(--apb-rx-ink); color: var(--apb-rx-surface); text-decoration: none; transition: transform var(--apb-rx-t) var(--apb-rx-ease), opacity var(--apb-rx-t) var(--apb-rx-ease); }
.apb-ct-app-badge:hover { transform: translateY(-2px); opacity: .92; }
.apb-ct-app-glyph { flex: 0 0 auto; }
.apb-ct-app-txt { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.apb-ct-app-txt small { font-size: 10px; letter-spacing: .04em; opacity: .8; text-transform: uppercase; }
.apb-ct-app-txt b { font-size: 17px; font-weight: 600; }
.apb-ct-app-rate { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--apb-rx-dim); }
.apb-ct-app-stars { display: inline-flex; gap: 2px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }

/* 8 — pattern band */
.apb-ct-pt { position: relative; overflow: hidden; max-width: 1040px; margin: 0 auto; border-radius: calc(var(--apb-rx-radius) * 1.4); padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px); text-align: center; background: var(--apb-rx-soft); border: 1px solid var(--apb-rx-line); }
.apb-ct-pt-dots { position: absolute; inset: 0; background-image: radial-gradient(var(--apb-rx-line) 1.3px, transparent 1.4px); background-size: 22px 22px; opacity: .6; -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 78%); mask-image: radial-gradient(ellipse at center, #000 30%, transparent 78%); }
.apb-ct-pt-glow { position: absolute; left: 50%; top: -40%; width: min(560px, 90%); height: 80%; transform: translateX(-50%); background: radial-gradient(ellipse at center, color-mix(in srgb, var(--apb-rx-brand) 26%, transparent), transparent 70%); pointer-events: none; }
.apb-ct-pt-inner { position: relative; }
.apb-ct-pt-inner .apb-ct-row { justify-content: center; }

/* 9 — sticky bar */
.apb-rx-ctsk { position: sticky; bottom: 16px; z-index: 20; padding-top: 0; padding-bottom: 0; }
.apb-ct-sk-toggle { position: absolute; opacity: 0; pointer-events: none; }
.apb-ct-sk-bar { max-width: 1080px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 16px 14px 20px; border-radius: calc(var(--apb-rx-radius) * .9); background: var(--apb-rx-ink); color: var(--apb-rx-surface); box-shadow: var(--apb-rx-shadow-2, 0 18px 40px -20px rgba(11,13,18,.5)); transition: transform var(--apb-rx-t-slow) var(--apb-rx-ease), opacity var(--apb-rx-t-slow) var(--apb-rx-ease); }
.apb-ct-sk-toggle:checked ~ .apb-ct-sk-bar { transform: translateY(140%); opacity: 0; pointer-events: none; }
.apb-ct-sk-msg { display: flex; align-items: center; gap: 12px; min-width: 0; }
.apb-ct-sk-pill { flex: 0 0 auto; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 4px 9px; border-radius: var(--apb-rx-radius-pill, 999px); background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); }
.apb-ct-sk-txt { font-size: 15px; color: color-mix(in srgb, var(--apb-rx-surface) 90%, transparent); }
.apb-ct-sk-act { display: flex; align-items: center; gap: 6px; }
.apb-ct-sk-btn { padding: 9px 18px; font-size: 14px; white-space: nowrap; }
.apb-ct-sk-x { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: color-mix(in srgb, var(--apb-rx-surface) 70%, transparent); cursor: pointer; transition: background var(--apb-rx-t) var(--apb-rx-ease), color var(--apb-rx-t) var(--apb-rx-ease); }
.apb-ct-sk-x:hover { background: color-mix(in srgb, var(--apb-rx-surface) 12%, transparent); color: var(--apb-rx-surface); }

@media (max-width: 640px) { .apb-ct-dp-grid { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .apb-ct-sk-bar { justify-content: center; text-align: center; } }
@media (prefers-reduced-motion: reduce) {
  .apb-ct-dp-card:hover, .apb-ct-app-badge:hover { transform: none; }
  .apb-ct-dp-card:hover .apb-ct-dp-cta svg { transform: none; }
  .apb-ct-sk-toggle:checked ~ .apb-ct-sk-bar { transition: none; }
}
/* ==== assets/pages/component-cookie.css ==== */
/*
 * component-cookie.css — consent banner family (corner card / preferences modal / pill / brand banner /
 * expanding card). apb-rx-ck* namespace, tokens only, no !important. Wrappers are sticky-bottom chrome
 * (modal is fixed full-viewport while undecided). The cookie-consent behavior adds .apb-rx-ck-done to
 * dismiss; [hidden] (decision already stored) removes them entirely.
 */

/* ---- shared chrome ---- */
/* [hidden] must actually hide: the modal/expand roots declare display:grid/flex, which outranks the UA
   [hidden] rule — without this, a decided visitor gets the consent overlay again on EVERY page view. */
[data-apb-consent-banner][hidden] { display: none; }
.apb-rx-ckc, .apb-rx-ckp, .apb-rx-ckb { position: sticky; bottom: 16px; z-index: 30; padding-top: 0; padding-bottom: 0; }
.apb-rx-ckc.apb-rx-ck-done, .apb-rx-ckp.apb-rx-ck-done, .apb-rx-ckb.apb-rx-ck-done,
.apb-rx-ckm.apb-rx-ck-done, .apb-rx-ckx.apb-rx-ck-done { opacity: 0; transform: translateY(14px); pointer-events: none; transition: opacity var(--apb-rx-t, .28s) var(--apb-rx-ease), transform var(--apb-rx-t, .28s) var(--apb-rx-ease); }
.apb-rx-ck-ic { display: grid; place-items: center; width: 42px; height: 42px; border-radius: calc(var(--apb-rx-radius) * .75); background: var(--apb-rx-soft); color: var(--apb-rx-accent-text, var(--apb-rx-brand)); margin-bottom: 12px; }
.apb-rx-ck-ic svg { width: 24px; height: 24px; }
.apb-rx-ck-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px; border-radius: var(--apb-rx-radius); font-size: 14px; font-weight: 600; cursor: pointer; border: 1px solid var(--apb-rx-line); color: var(--apb-rx-ink); background: var(--apb-rx-surface); transition: background var(--apb-rx-t, .28s); }
.apb-rx-ck-btn:hover { background: var(--apb-rx-soft); }
.apb-rx-ck-btn--accept { background: var(--apb-rx-brand); border-color: transparent; color: var(--apb-rx-accent-contrast, #fff); }
.apb-rx-ck-btn--accept:hover { background: var(--apb-rx-brand); }

/* ---- shared category switch rows ---- */
.apb-rx-ck-rows { display: flex; flex-direction: column; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); overflow: hidden; margin: 0 0 16px; }
.apb-rx-ck-rows--flat { border: 0; border-radius: 0; margin: 0; }
.apb-rx-ck-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 16px; border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-ck-rows--flat .apb-rx-ck-row { padding: 9px 0; }
.apb-rx-ck-row:last-child { border-bottom: 0; }
.apb-rx-ck-cat b { font-size: 14px; font-weight: 700; display: block; }
.apb-rx-ck-cat small { font-size: 12px; color: var(--apb-rx-dim); line-height: 1.4; display: block; }
.apb-rx-ck-sw { position: relative; flex: none; width: 40px; height: 22px; cursor: pointer; }
.apb-rx-ck-sw input { position: absolute; opacity: 0; pointer-events: none; }
.apb-rx-ck-track { position: absolute; inset: 0; border-radius: 999px; background: var(--apb-rx-line); transition: background var(--apb-rx-t-fast, .16s); }
.apb-rx-ck-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--apb-rx-surface); box-shadow: var(--apb-rx-shadow-1, 0 1px 3px rgba(11,13,18,.25)); transition: transform var(--apb-rx-t-fast, .16s); }
.apb-rx-ck-sw input:checked + .apb-rx-ck-track { background: var(--apb-rx-brand); }
.apb-rx-ck-sw input:checked + .apb-rx-ck-track::after { transform: translateX(18px); }
.apb-rx-ck-sw input:focus-visible + .apb-rx-ck-track { outline: 2px solid var(--apb-rx-brand); outline-offset: 2px; }
.apb-rx-ck-sw--lock { opacity: .55; cursor: not-allowed; }

/* ---- corner card ---- */
.apb-rx-ckc-card { width: min(360px, 100%); background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); box-shadow: var(--apb-rx-shadow-2, 0 18px 44px -22px rgba(11,13,18,.28)); padding: 20px; }
.apb-rx-ckc-card > b { display: block; font-size: 16px; font-weight: 800; margin-bottom: 6px; color: var(--apb-rx-ink); }
.apb-rx-ckc-card > p { margin: 0 0 14px; font-size: 13px; line-height: 1.6; color: var(--apb-rx-muted, var(--apb-rx-dim)); }
.apb-rx-ckc-card a, .apb-rx-ckm-p a, .apb-rx-ckp-pill a, .apb-rx-ckx-card a { color: var(--apb-rx-accent-text, var(--apb-rx-brand)); font-weight: 600; text-decoration: none; }
.apb-rx-ckc-act { display: flex; flex-direction: column; gap: 8px; }

/* ---- preferences modal (fixed overlay while undecided) ---- */
.apb-rx-ckm { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 20px; background: color-mix(in srgb, var(--apb-rx-ink) 32%, transparent); }
.apb-rx-ckm-card { width: min(480px, 100%); max-height: calc(100vh - 40px); overflow: auto; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); box-shadow: var(--apb-rx-shadow-2, 0 24px 60px -20px rgba(11,13,18,.4)); padding: 26px; }
.apb-rx-ckm-h { display: block; font-family: var(--apb-rx-font-display, inherit); font-size: 20px; font-weight: 800; margin-bottom: 6px; }
.apb-rx-ckm-p { margin: 0 0 18px; font-size: 13px; line-height: 1.6; color: var(--apb-rx-muted, var(--apb-rx-dim)); }
.apb-rx-ckm-act { display: flex; gap: 8px; flex-wrap: wrap; }
.apb-rx-ckm-act .apb-rx-ck-btn { flex: 1; }

/* ---- minimal pill ---- */
.apb-rx-ckp-pill { display: flex; align-items: center; gap: 14px; width: fit-content; max-width: 100%; margin: 0 auto; padding: 10px 12px 10px 18px; border-radius: 999px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); box-shadow: var(--apb-rx-shadow-2, 0 14px 40px -18px rgba(11,13,18,.3)); }
.apb-rx-ckp-pill p { margin: 0; font-size: 13px; color: var(--apb-rx-muted, var(--apb-rx-dim)); }
.apb-rx-ckp-ok { flex: none; padding: 8px 18px; border-radius: 999px; border: 0; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-size: 13px; font-weight: 700; cursor: pointer; }
.apb-rx-ckp-set { flex: none; font-size: 12px; font-weight: 600; color: var(--apb-rx-dim); cursor: pointer; background: none; border: 0; padding: 8px 4px; }
.apb-rx-ckp-set:focus-visible, .apb-rx-ckp-ok:focus-visible, .apb-rx-ck-btn:focus-visible { outline: 2px solid var(--apb-rx-brand); outline-offset: 2px; }

/* ---- brand banner ---- */
.apb-rx-ckb-bar { max-width: 1080px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 18px 22px; border-radius: calc(var(--apb-rx-radius) * 1.1); background: linear-gradient(120deg, var(--apb-rx-brand), var(--apb-rx-brand2, var(--apb-rx-brand))); color: var(--apb-rx-accent-contrast, #fff); box-shadow: var(--apb-rx-shadow-2, 0 18px 44px -20px rgba(11,13,18,.35)); }
.apb-rx-ckb-msg { flex: 1 1 300px; min-width: 240px; }
.apb-rx-ckb-msg b { display: block; font-family: var(--apb-rx-font-display, inherit); font-size: 16px; font-weight: 800; margin-bottom: 3px; }
.apb-rx-ckb-msg p { margin: 0; font-size: 13px; line-height: 1.55; opacity: .88; }
.apb-rx-ckb-msg a { color: inherit; font-weight: 700; text-decoration: underline; }
.apb-rx-ckb-act { display: flex; gap: 10px; flex-wrap: wrap; }
.apb-rx-ckb .apb-rx-ck-btn { border-radius: 999px; border-color: color-mix(in srgb, var(--apb-rx-accent-contrast, #fff) 45%, transparent); background: transparent; color: inherit; }
.apb-rx-ckb .apb-rx-ck-btn:hover { background: color-mix(in srgb, var(--apb-rx-accent-contrast, #fff) 14%, transparent); }
.apb-rx-ckb .apb-rx-ck-btn--accept { background: var(--apb-rx-accent-contrast, #fff); border-color: transparent; color: var(--apb-rx-brand); }
.apb-rx-ckb .apb-rx-ck-btn--accept:hover { background: var(--apb-rx-accent-contrast, #fff); }

/* ---- expanding card ---- */
.apb-rx-ckx { position: sticky; bottom: 16px; z-index: 30; padding-top: 0; padding-bottom: 0; display: flex; justify-content: flex-end; }
.apb-rx-ckx-card { width: min(380px, 100%); background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); box-shadow: var(--apb-rx-shadow-2, 0 18px 44px -22px rgba(11,13,18,.28)); padding: 20px; }
.apb-rx-ckx-card > b { display: block; font-size: 15px; font-weight: 800; margin-bottom: 5px; }
.apb-rx-ckx-card > p { margin: 0 0 14px; font-size: 13px; line-height: 1.6; color: var(--apb-rx-muted, var(--apb-rx-dim)); }
.apb-rx-ckx-more { border-top: 1px solid var(--apb-rx-line); margin: 0 -20px; padding: 0 20px; }
.apb-rx-ckx-more summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 700; color: var(--apb-rx-ink); padding: 12px 0; }
.apb-rx-ckx-more summary::-webkit-details-marker { display: none; }
.apb-rx-ckx-more summary svg { width: 14px; height: 14px; transition: transform var(--apb-rx-t-fast, .16s); }
.apb-rx-ckx-more[open] summary svg { transform: rotate(180deg); }
.apb-rx-ckx-act { display: flex; gap: 8px; margin-top: 14px; }
.apb-rx-ckx-act .apb-rx-ck-btn { flex: 1; font-size: 13px; }

/* ---- responsive + reduced motion ---- */
@media (max-width: 560px) {
  .apb-rx-ckb-act { width: 100%; }
  .apb-rx-ckb .apb-rx-ck-btn { flex: 1; }
  .apb-rx-ckp-pill { flex-wrap: wrap; border-radius: calc(var(--apb-rx-radius) * 1.2); }
}
@media (prefers-reduced-motion: reduce) {
  .apb-rx-ckc.apb-rx-ck-done, .apb-rx-ckp.apb-rx-ck-done, .apb-rx-ckb.apb-rx-ck-done,
  .apb-rx-ckm.apb-rx-ck-done, .apb-rx-ckx.apb-rx-ck-done { transition: none; }
  .apb-rx-ck-track, .apb-rx-ck-track::after, .apb-rx-ckx-more summary svg { transition: none; }
}
/* ==== assets/pages/component-booking.css ==== */
/*
 * component-booking.css — booking family (service cards / price list / split hero / timetable /
 * upcoming sessions). apb-rx-bk* namespaces, tokens only, no !important. Rendered by
 * trait-apb-component-render-booking.php; live-binds to the bookables provider.
 */

/* ---- shared head ---- */
.apb-rx-bk-head { text-align: center; max-width: 560px; margin: 0 auto 34px; }
.apb-rx-bk-head--left { text-align: left; margin: 0 0 18px; }
.apb-rx-bk-ey { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-bk-h { font-family: var(--apb-rx-font-display, inherit); font-weight: 800; font-size: clamp(26px, 4vw, 40px); letter-spacing: -.02em; line-height: 1.08; margin: 8px 0 0; }

/* ---- service cards ---- */
.apb-rx-bks-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 3), 1fr); gap: 20px; max-width: 1000px; margin: 0 auto; }
.apb-rx-bks-card { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.1); overflow: hidden; display: flex; flex-direction: column; transition: transform var(--apb-rx-t, .28s) var(--apb-rx-ease), box-shadow var(--apb-rx-t, .28s) var(--apb-rx-ease); }
.apb-rx-bks-card:hover { transform: translateY(-4px); box-shadow: var(--apb-rx-shadow-2, 0 14px 34px -12px rgba(11, 13, 18, .22)); }
.apb-rx-bks-ph { aspect-ratio: 16/10; background: var(--apb-rx-soft); }
.apb-rx-bks-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-bks-body { padding: 18px; flex: 1; display: flex; flex-direction: column; }
.apb-rx-bks-name { font-weight: 800; font-size: 17px; }
.apb-rx-bks-desc { margin: 6px 0 14px; font-size: 13px; line-height: 1.55; color: var(--apb-rx-dim); flex: 1; }
.apb-rx-bks-meta { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--apb-rx-dim); margin-bottom: 14px; }
.apb-rx-bks-meta svg { width: 14px; height: 14px; vertical-align: -2px; }
.apb-rx-bks-price { margin-left: auto; font-weight: 800; font-size: 16px; color: var(--apb-rx-ink); }
.apb-rx-bks-btn { display: flex; justify-content: center; padding: 11px 16px; border-radius: var(--apb-rx-radius); background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-weight: 700; font-size: 14px; text-decoration: none; transition: filter var(--apb-rx-t-fast, .16s); }
.apb-rx-bks-btn:hover { filter: brightness(1.08); }

/* ---- price list ---- */
.apb-rx-bkl-wrap { max-width: 720px; margin: 0 auto; }
.apb-rx-bkl-group { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--apb-rx-dim); margin: 26px 0 6px; padding-bottom: 8px; border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-bkl-row { display: flex; align-items: baseline; gap: 10px; padding: 13px 0; border-bottom: 1px dashed var(--apb-rx-line); }
.apb-rx-bkl-row:last-child { border-bottom: 0; }
.apb-rx-bkl-name { font-weight: 700; font-size: 15px; }
.apb-rx-bkl-dur { font-size: 12px; color: var(--apb-rx-dim); white-space: nowrap; }
.apb-rx-bkl-dots { flex: 1; border-bottom: 2px dotted var(--apb-rx-line); transform: translateY(-4px); }
.apb-rx-bkl-price { font-weight: 800; font-size: 15px; white-space: nowrap; }
.apb-rx-bkl-book { font-size: 12px; font-weight: 700; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); text-decoration: none; white-space: nowrap; border: 1px solid var(--apb-rx-line); border-radius: 999px; padding: 5px 13px; transition: background var(--apb-rx-t-fast, .16s); }
.apb-rx-bkl-book:hover { background: var(--apb-rx-soft); }

/* ---- split hero ---- */
.apb-rx-bkh-wrap { max-width: 1000px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: center; }
.apb-rx-bkh-lead { font-size: 16px; line-height: 1.6; color: var(--apb-rx-dim); margin: 0 0 22px; }
.apb-rx-bkh-points { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.apb-rx-bkh-points span { display: flex; align-items: center; gap: 9px; }
.apb-rx-bkh-points svg { width: 16px; height: 16px; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); flex: none; }
.apb-rx-bkh-card { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.2); box-shadow: var(--apb-rx-shadow-2, 0 24px 60px -28px rgba(11, 13, 18, .3)); padding: 24px; }
.apb-rx-bkh-card > b { display: block; font-size: 16px; font-weight: 800; margin-bottom: 14px; }
.apb-rx-bkh-opt { display: flex; align-items: center; gap: 12px; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); padding: 12px 14px; margin-bottom: 10px; transition: border-color var(--apb-rx-t-fast, .16s); }
.apb-rx-bkh-opt:hover { border-color: var(--apb-rx-brand); }
.apb-rx-bkh-opt--on { border-color: var(--apb-rx-brand); background: var(--apb-rx-soft); }
.apb-rx-bkh-opt small { color: var(--apb-rx-dim); font-size: 12px; display: block; }
.apb-rx-bkh-p { margin-left: auto; font-weight: 800; }
.apb-rx-bkh-cta { display: flex; justify-content: center; width: 100%; padding: 13px; border-radius: var(--apb-rx-radius); background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-weight: 800; font-size: 15px; text-decoration: none; margin-top: 6px; transition: filter var(--apb-rx-t-fast, .16s); }
.apb-rx-bkh-cta:hover { filter: brightness(1.08); }
.apb-rx-bkh-note { text-align: center; font-size: 12px; color: var(--apb-rx-dim); margin: 10px 0 0; }

/* ---- timetable ---- */
.apb-rx-bkt-grid { display: grid; grid-template-columns: repeat(var(--apb-rx-cols, 5), 1fr); gap: 12px; max-width: 1040px; margin: 0 auto; }
.apb-rx-bkt-day { background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); overflow: hidden; }
.apb-rx-bkt-dh { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-align: center; padding: 10px; background: var(--apb-rx-soft); border-bottom: 1px solid var(--apb-rx-line); }
.apb-rx-bkt-slot { padding: 10px 12px; border-bottom: 1px dashed var(--apb-rx-line); }
.apb-rx-bkt-slot:last-child { border-bottom: 0; }
.apb-rx-bkt-time { font-size: 11px; font-weight: 700; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); }
.apb-rx-bkt-cls { font-size: 13px; font-weight: 700; }
.apb-rx-bkt-with { font-size: 11px; color: var(--apb-rx-dim); }

/* ---- upcoming sessions ---- */
.apb-rx-bke-wrap { max-width: 760px; margin: 0 auto; }
.apb-rx-bke-row { display: flex; align-items: center; gap: 18px; background: var(--apb-rx-surface); border: 1px solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * 1.05); padding: 16px 18px; margin-bottom: 12px; transition: transform var(--apb-rx-t, .28s) var(--apb-rx-ease), box-shadow var(--apb-rx-t, .28s) var(--apb-rx-ease); }
.apb-rx-bke-row:hover { transform: translateY(-2px); box-shadow: var(--apb-rx-shadow-2, 0 10px 28px -14px rgba(11, 13, 18, .22)); }
.apb-rx-bke-date { flex: none; width: 58px; text-align: center; border: 1px solid var(--apb-rx-line); border-radius: var(--apb-rx-radius); overflow: hidden; }
.apb-rx-bke-mon { display: block; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); padding: 3px 0; }
.apb-rx-bke-dom { display: block; font-size: 20px; font-weight: 800; padding: 5px 0 6px; }
.apb-rx-bke-info { flex: 1; min-width: 0; }
.apb-rx-bke-name { font-weight: 800; font-size: 16px; }
.apb-rx-bke-meta { font-size: 12.5px; color: var(--apb-rx-dim); margin-top: 2px; }
.apb-rx-bke-spots { flex: none; font-size: 11px; font-weight: 700; color: var(--apb-rx-accent-text, var(--apb-rx-brand)); background: var(--apb-rx-soft); border-radius: 999px; padding: 4px 11px; white-space: nowrap; }
.apb-rx-bke-spots--low { color: var(--apb-rx-warn-fg, #b45309); background: color-mix(in srgb, var(--apb-rx-warn, #f59e0b) 14%, transparent); }
.apb-rx-bke-spots--full { color: var(--apb-rx-dim); background: var(--apb-rx-soft); }
.apb-rx-bke-cta { flex: none; padding: 9px 18px; border-radius: 999px; background: var(--apb-rx-brand); color: var(--apb-rx-accent-contrast, #fff); font-weight: 700; font-size: 13px; text-decoration: none; white-space: nowrap; transition: filter var(--apb-rx-t-fast, .16s); }
.apb-rx-bke-cta:hover { filter: brightness(1.08); }

/* ---- responsive + reduced motion ---- */
@media (max-width: 820px) {
  .apb-rx-bks-grid { grid-template-columns: 1fr; }
  .apb-rx-bkh-wrap { grid-template-columns: 1fr; gap: 28px; }
  .apb-rx-bkt-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .apb-rx-bkt-grid { grid-template-columns: 1fr; }
  .apb-rx-bke-row { flex-wrap: wrap; }
  .apb-rx-bke-cta { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  .apb-rx-bks-card, .apb-rx-bke-row { transition: none; }
  .apb-rx-bks-card:hover, .apb-rx-bke-row:hover { transform: none; }
}
/* ==== assets/pages/component-scroll.css ==== */
/* Scroll-driven recipe sections: sticky native-scroll enhancement, fail-open static fallback. */
.apb-rx-scroll{
  --apb-rx-scroll-h:320vh;
  min-height:var(--apb-rx-scroll-h);
  padding:0;
  position:relative;
  background:var(--apb-rx-ink,#0b0d12);
  color:#fff;
  overflow:clip;
}
.apb-rx-scroll--pinned{--apb-rx-scroll-h:300vh}
.apb-rx-scroll--parallax{--apb-rx-scroll-h:280vh}
.apb-rx-scroll-stage{
  position:sticky;
  top:0;
  min-height:100vh;
  overflow:hidden;
  display:grid;
  place-items:center;
  isolation:isolate;
}
.apb-rx-scroll-poster,
.apb-rx-scroll-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.apb-rx-scroll-video{z-index:1}
.apb-rx-scroll-poster{z-index:0}
.apb-rx-scroll-poster--solid{background:var(--apb-rx-surface-muted,#eef2f7)}
.apb-rx-scroll-shade{
  position:absolute;
  inset:0;
  z-index:2;
  background:rgba(5,7,12,.42);
}
.apb-rx-scroll-copy{
  position:relative;
  z-index:4;
  width:min(780px,calc(100% - 40px));
  text-align:center;
  display:grid;
  gap:14px;
  justify-items:center;
  text-wrap:balance;
}
.apb-rx-scroll-copy h2{
  margin:0;
  color:#fff;
  font-size:clamp(42px,7vw,86px);
  line-height:.95;
  letter-spacing:0;
}
.apb-rx-scroll-copy .apb-rx-eyebrow{color:rgba(255,255,255,.78);margin:0}
.apb-rx-scroll-sub{max-width:620px;margin:0;color:rgba(255,255,255,.82);font-size:18px;line-height:1.6}
.apb-rx-scroll-copy .apb-rx-btn{margin-top:8px;background:#fff;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-scroll-beats{position:absolute;inset:0;z-index:5;pointer-events:none}
.apb-rx-scroll-beat{
  position:absolute;
  width:min(270px,calc(100vw - 40px));
  padding:16px 18px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--apb-rx-radius,16px);
  background:rgba(255,255,255,.12);
  box-shadow:0 18px 45px -26px rgba(0,0,0,.65);
  opacity:1;
  transform:translateY(0);
  transition:opacity .32s ease,transform .32s ease;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat{opacity:0;transform:translateY(14px)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat.is-active{opacity:1;transform:translateY(0)}
.apb-rx-scroll-beat span{
  display:block;
  color:rgba(255,255,255,.7);
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.apb-rx-scroll-beat strong{display:block;color:#fff;font-size:20px;line-height:1.2;margin-top:5px}
.apb-rx-scroll-beat--tl{left:7vw;top:24vh}
.apb-rx-scroll-beat--rr{right:7vw;top:38vh}
.apb-rx-scroll-beat--bl{left:7vw;bottom:17vh}
.apb-rx-scroll-beat--br{right:7vw;bottom:26vh}
.apb-rx-scroll-beat--bc{left:50%;bottom:12vh;transform:translateX(-50%)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat--bc{transform:translateX(-50%) translateY(14px)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat--bc.is-active{transform:translateX(-50%) translateY(0)}
.apb-rx-scroll-layer{position:absolute;inset:-12vh -8vw;z-index:1;will-change:transform}
.apb-rx-scroll-layer--back{filter:saturate(.85);opacity:.65}
.apb-rx-scroll-layer--front{inset:-6vh -4vw;z-index:2;clip-path:inset(14% 11% 14% 52% round var(--apb-rx-radius,16px))}
.apb-rx-scroll-layer .apb-rx-scroll-poster{position:absolute;inset:0}
@media(max-width:720px){
  .apb-rx-scroll{min-height:220vh}
  .apb-rx-scroll-copy{align-self:start;margin-top:18vh}
  .apb-rx-scroll-copy h2{font-size:42px;line-height:1}
  .apb-rx-scroll-sub{font-size:16px}
  .apb-rx-scroll-beats{position:relative;inset:auto;z-index:6;display:grid;gap:10px;width:calc(100% - 32px);margin:0 auto 22px;align-self:end}
  .apb-rx-scroll-beat,
  .apb-rx-scroll-beat--tl,
  .apb-rx-scroll-beat--rr,
  .apb-rx-scroll-beat--bl,
  .apb-rx-scroll-beat--br,
  .apb-rx-scroll-beat--bc{
    position:relative;
    inset:auto;
    width:100%;
    transform:none;
  }
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat--bc,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat--bc.is-active{transform:none}
}
.apb-rx-scroll-shade--soft{background:linear-gradient(180deg,transparent 38%,rgba(5,7,12,.72))}

/* --- scroll_gallery: pinned horizontal track driven by var(--apb-p) --- */
.apb-rx-scroll--gallery .apb-rx-scroll-stage{display:block}
.apb-rx-sg-head{position:absolute;top:6vh;left:7vw;z-index:5}
.apb-rx-sg-head h2{margin:0;color:#fff;font-size:clamp(28px,4vw,52px);line-height:1.05}
.apb-rx-sg-head .apb-rx-eyebrow{color:rgba(255,255,255,.78);margin:0 0 6px}
.apb-rx-sg-track{
  position:absolute;top:50%;left:0;display:flex;gap:24px;padding:0 7vw;align-items:center;
  transform:translateY(-50%) translateX(calc((100vw - 100%) * var(--apb-p,0)));will-change:transform;
}
.apb-rx-sg-card{flex:0 0 min(34vw,440px);height:60vh;border-radius:var(--apb-rx-radius,16px);overflow:hidden;position:relative;background:rgba(255,255,255,.06)}
.apb-rx-sg-card img{width:100%;height:100%;object-fit:cover}
.apb-rx-sg-cap{position:absolute;left:18px;bottom:16px;z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.7)}
.apb-rx-sg-cap .apb-rx-sg-t{display:block;color:#fff;font-size:22px;font-weight:700}
.apb-rx-sg-cap .apb-rx-sg-s{display:block;color:#e4e4e7;font-size:13px;margin-top:2px}

/* --- scroll_split: BEFORE pane width driven by var(--apb-p) --- */
.apb-rx-scroll--split .apb-rx-scroll-stage{display:block}
.apb-rx-sp-pane{position:absolute;inset:0;overflow:hidden}
.apb-rx-sp-pane img{position:absolute;top:0;left:0;width:100vw;height:100%;object-fit:cover}
.apb-rx-sp-after{z-index:1}
.apb-rx-sp-before{z-index:2;width:calc((1 - var(--apb-p,0)) * 100%);border-right:2px solid rgba(255,255,255,.7)}
.apb-rx-sp-tag{position:absolute;top:24px;z-index:3}
.apb-rx-sp-before .apb-rx-sp-tag{left:24px}
.apb-rx-sp-after .apb-rx-sp-tag{right:24px}
.apb-rx-scroll--split .apb-rx-scroll-copy{align-self:end;margin-bottom:8vh}

/* --- scroll_chapters: full-bleed crossfade (reuses the beat is-active toggle) --- */
.apb-rx-scroll--chapters .apb-rx-scroll-stage{display:block}
.apb-rx-sc-chapter{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.apb-rx-sc-chapter:first-child{opacity:1} /* no-JS fail-open: first chapter shown */
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-sc-chapter{opacity:0}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-sc-chapter.is-active{opacity:1}
.apb-rx-sc-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.apb-rx-sc-text{position:absolute;left:7vw;bottom:14vh;z-index:3;max-width:680px;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.apb-rx-sc-text h2{margin:6px 0 0;color:#fff;font-size:clamp(32px,5vw,64px);line-height:1.02}
.apb-rx-sc-text p{margin:10px 0 0;color:rgba(255,255,255,.86);font-size:18px}
.apb-rx-sc-i{font-size:12px;font-weight:700;letter-spacing:.14em;color:rgba(255,255,255,.7)}

@media(max-width:720px){
  .apb-rx-sg-track{position:static;transform:none;overflow-x:auto;height:100%;align-items:center;padding-top:14vh}
  .apb-rx-sg-card{flex-basis:74vw;height:50vh}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll{min-height:auto}
  .apb-rx-scroll-stage{position:relative;min-height:720px}
  .apb-rx-scroll-video{display:none}
  .apb-rx-scroll-layer{transform:none}
  .apb-rx-scroll-beat,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-scroll-beat{
    opacity:1;
    transform:none;
    transition:none;
  }
  /* gallery -> native horizontal scroll; split -> stacked; chapters -> stacked list */
  .apb-rx-sg-track{position:static;transform:none;overflow-x:auto;height:100%;align-items:center}
  .apb-rx-scroll--split .apb-rx-scroll-stage,
  .apb-rx-scroll--chapters .apb-rx-scroll-stage{min-height:auto}
  .apb-rx-sp-pane{position:relative;inset:auto;width:100%;height:52vh}
  .apb-rx-sp-pane img{width:100%}
  .apb-rx-sp-before{border-right:0}
  .apb-rx-sc-chapter,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-sc-chapter{position:relative;inset:auto;opacity:1;height:70vh;transition:none}
}

/* ===== batch 2: morph / deck / explode / draw / text / mesh (all driven by var(--apb-p)) ===== */
/* morph: hero shrinks + docks to corner */
.apb-rx-scroll--morph .apb-rx-scroll-stage{display:block}
.apb-rx-sm-hero{position:absolute;inset:0;z-index:1;overflow:hidden;transform-origin:top right;border-radius:calc(var(--apb-p,0)*22px);transform:scale(calc(1 - var(--apb-p,0)*0.74)) translate(calc(var(--apb-p,0)*36vw),calc(var(--apb-p,0)*38vh));will-change:transform}
.apb-rx-sm-hero img{width:100%;height:100%;object-fit:cover}
.apb-rx-sm-copy{z-index:4}

/* deck: sticky stack, cards slide up over each other */
.apb-rx-scroll--deck .apb-rx-scroll-stage{display:block}
.apb-rx-sk-head{position:absolute;top:6vh;left:7vw;z-index:6}
.apb-rx-sk-head h2{margin:0;color:#fff;font-size:clamp(28px,4vw,48px)}
.apb-rx-sk-wrap{position:absolute;inset:0;display:grid;place-items:center}
.apb-rx-sk-card{position:absolute;z-index:var(--i,1);width:min(820px,86vw);height:60vh;border-radius:var(--apb-rx-radius,16px);overflow:hidden;display:flex;background:#15171d;box-shadow:0 30px 80px rgba(0,0,0,.55);transform:translateY(calc((1 - clamp(0,calc(var(--apb-p,0)*(var(--n) - 1) - (var(--i) - 1)),1)) * 104%));will-change:transform}
.apb-rx-sk-media{width:44%;overflow:hidden}
.apb-rx-sk-media img{width:100%;height:100%;object-fit:cover}
.apb-rx-sk-body{flex:1;padding:34px;display:flex;flex-direction:column;justify-content:center;gap:8px;color:#fff}
.apb-rx-sk-step{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.apb-rx-sk-body h3{margin:0;font-size:clamp(24px,3vw,32px)}
.apb-rx-sk-body p{margin:0;color:rgba(255,255,255,.78);line-height:1.55}
/* mobile: stack the deck card (image on top, copy below) so the 44% media doesn't cramp */
@media(max-width:720px){
  .apb-rx-sk-card{flex-direction:column}
  .apb-rx-sk-media{width:100%;height:42%}
  .apb-rx-sk-body{padding:20px 22px}
}

/* explode: layered images converge as p->1 */
.apb-rx-scroll--explode .apb-rx-scroll-stage{perspective:1200px}
.apb-rx-sx-stage{position:relative;width:min(360px,72vw);height:min(360px,72vw);transform-style:preserve-3d}
.apb-rx-sx-layer{position:absolute;inset:0;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5);transform:translateY(calc((1 - var(--apb-p,0)) * var(--i,0) * 120px)) translateZ(calc((1 - var(--apb-p,0)) * 60px));will-change:transform}
.apb-rx-sx-layer img{width:100%;height:100%;object-fit:cover}

/* draw: SVG line draws itself via stroke-dashoffset (path pathLength=1) */
.apb-rx-scroll--draw .apb-rx-scroll-stage{display:flex;flex-direction:column;gap:26px;align-items:center;justify-content:center}
.apb-rx-dr-head h2{margin:0;color:#fff;font-size:clamp(28px,4vw,48px)}
.apb-rx-dr-svg{width:min(680px,90vw)}
.apb-rx-dr-svg path{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--apb-p,0))}
.apb-rx-dr-steps{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.apb-rx-dr-step{opacity:1;transform:translateY(0);transition:opacity .4s,transform .4s;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:8px 16px;color:#fff;font-size:13px;font-weight:600}
.apb-rx-dr-step span{display:block}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-dr-step{opacity:0;transform:translateY(10px)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-dr-step.is-active{opacity:1;transform:none}

/* text: large lines revealed one-by-one */
.apb-rx-scroll--text .apb-rx-scroll-stage{display:block}
.apb-rx-tx-wrap{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;gap:6px}
.apb-rx-scroll--text-wipe .apb-rx-tx-wrap{align-items:center;text-align:center}
.apb-rx-tx-line{overflow:hidden;margin:0}
.apb-rx-tx-line span{display:inline-block;color:#fff;font-weight:800;letter-spacing:-.02em;transform:translateY(0);transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.apb-rx-scroll--text-wipe .apb-rx-tx-line span{font-size:clamp(40px,9vw,118px);line-height:.98}
.apb-rx-scroll--text-manifesto .apb-rx-tx-line span{font-size:clamp(26px,4vw,46px);line-height:1.22;font-weight:700}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-tx-line span{transform:translateY(112%)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-tx-line.is-active span{transform:translateY(0)}

/* mesh: ambient gradient hue-shifts with p; words cross-fade */
.apb-rx-scroll--mesh .apb-rx-scroll-stage{display:block;background:var(--apb-rx-stage,#0a0a12)}
.apb-rx-mesh-bg{position:absolute;inset:-15%;opacity:.7;filter:blur(60px) hue-rotate(calc(var(--apb-p,0)*300deg));transform:rotate(calc(var(--apb-p,0)*40deg));will-change:filter,transform}
.apb-rx-mesh-bg i{position:absolute;width:48%;height:48%;border-radius:50%;background:var(--c,#6d28d9);left:var(--x,10%);top:var(--y,10%)}
.apb-rx-mesh-words{position:absolute;inset:0;display:grid;place-items:center;z-index:2}
.apb-rx-mesh-word{grid-area:1/1;color:#fff;font-size:clamp(48px,11vw,150px);font-weight:800;letter-spacing:-.04em;opacity:1;transition:opacity .5s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-mesh-word{opacity:0}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-mesh-word.is-active{opacity:1}

@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll--morph .apb-rx-sm-hero{position:relative;transform:none;height:56vh;border-radius:0}
  .apb-rx-scroll--deck .apb-rx-sk-wrap{position:relative;display:block;padding:12vh 5vw}
  .apb-rx-sk-card{position:relative;transform:none;width:100%;height:auto;min-height:220px;margin:0 auto 18px}
  .apb-rx-sx-layer{transform:none}
  .apb-rx-dr-svg path{stroke-dashoffset:0}
  .apb-rx-dr-step,.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-dr-step{opacity:1;transform:none}
  .apb-rx-tx-line span,.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-tx-line span{transform:none}
  .apb-rx-mesh-bg{filter:none;transform:none}
  .apb-rx-mesh-words{position:relative;display:block;padding:16vh 8vw}
  .apb-rx-mesh-word,.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-mesh-word{grid-area:auto;opacity:1;display:block;font-size:clamp(36px,8vw,90px)}
}

/* ===== batch 3: reveal-on-scroll (features / cascade / bento / flip / blur) =====
   All driven by var(--apb-p) with per-item --i / container --n / diagonal --d.
   Animated initial state is scoped under [data-apb-scroll-ready] so the section is
   fully visible without JS (fail-open). Per-item local progress --e in [0..1]. */
.apb-rx-scroll--rv-features,
.apb-rx-scroll--rv-cascade,
.apb-rx-scroll--rv-flip,
.apb-rx-scroll--rv-bento{--apb-rx-scroll-h:380vh}
.apb-rx-scroll--rv-blur{--apb-rx-scroll-h:320vh}
.apb-rx-scroll--rv-features .apb-rx-scroll-stage,
.apb-rx-scroll--rv-cascade .apb-rx-scroll-stage,
.apb-rx-scroll--rv-flip .apb-rx-scroll-stage,
.apb-rx-scroll--rv-bento .apb-rx-scroll-stage,
.apb-rx-scroll--rv-blur .apb-rx-scroll-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(20px,4vh,44px);padding:9vh 6vw}
.apb-rx-rv-head{text-align:center;max-width:760px}
.apb-rx-rv-head h2{margin:0;color:#fff;font-size:clamp(28px,4.4vw,52px);line-height:1.05}
.apb-rx-rv-head .apb-rx-eyebrow{color:rgba(255,255,255,.78);margin:0 0 8px}

/* features: cards fade + rise, staggered */
.apb-rx-rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;width:min(960px,92vw)}
.apb-rx-rv-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--apb-rx-radius,16px);padding:22px;opacity:1;transform:none}
.apb-rx-rv-card h3{margin:0 0 6px;color:#fff;font-size:19px}
.apb-rx-rv-card p{margin:0;color:rgba(255,255,255,.78);font-size:14px;line-height:1.55}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-card{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);transform:translateY(calc((1 - var(--e))*32px)) scale(calc(.96 + .04*var(--e)));will-change:transform,opacity}

/* cascade: rows slide in from alternating sides */
.apb-rx-rv-rows{display:flex;flex-direction:column;gap:10px;width:min(760px,92vw)}
.apb-rx-rv-row{display:flex;align-items:baseline;gap:14px;padding:13px 16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--apb-rx-radius,16px);opacity:1;transform:none}
.apb-rx-rv-rt{color:#fff;font-weight:600}
.apb-rx-rv-rs{color:rgba(255,255,255,.7);font-size:13px;margin-left:auto}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-row{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);transform:translate(calc((1 - var(--e))*var(--dx,0)*60px),calc((1 - var(--e))*var(--dy,0)*40px));will-change:transform,opacity}

/* bento: tiles pop in on a diagonal wave */
.apb-rx-rv-bento{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;width:min(900px,92vw)}
.apb-rx-rv-tile{display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:13vh;padding:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--apb-rx-radius,16px);opacity:1;transform:none}
.apb-rx-rv-tk{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.6)}
.apb-rx-rv-tv{font-size:17px;font-weight:700;color:#fff}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tile{--e:clamp(0,calc(var(--apb-p,0)*6 - var(--d,0)),1);opacity:var(--e);transform:translateY(calc((1 - var(--e))*26px)) scale(calc(.8 + .2*var(--e)));will-change:transform,opacity}

/* flip: cards rotate up into place */
.apb-rx-rv-flipgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;width:min(900px,92vw);perspective:1400px}
.apb-rx-rv-flip{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--apb-rx-radius,16px);padding:22px;transform-origin:bottom;opacity:1;transform:none}
.apb-rx-rv-flip h3{margin:0 0 6px;color:#fff;font-size:18px}
.apb-rx-rv-flip p{margin:0;color:rgba(255,255,255,.78);font-size:14px;line-height:1.5}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-flip{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);transform:rotateX(calc((1 - var(--e))*90deg)) translateY(calc((1 - var(--e))*20px));will-change:transform,opacity}

/* blur: statement lines un-blur + rise line by line */
.apb-rx-rv-blur-wrap{width:min(820px,90vw);text-align:left}
.apb-rx-rv-blur-wrap .apb-rx-eyebrow{color:rgba(255,255,255,.78);margin:0 0 14px}
.apb-rx-rv-bline{display:block;color:#fff;font-weight:700;font-size:clamp(26px,4.6vw,52px);line-height:1.18;letter-spacing:-.02em}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-bline{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);filter:blur(calc((1 - var(--e))*14px));transform:translateY(calc((1 - var(--e))*22px));will-change:filter,transform,opacity}

@media(max-width:720px){
  .apb-rx-rv-grid,.apb-rx-rv-flipgrid{grid-template-columns:1fr}
  .apb-rx-rv-bento{grid-template-columns:repeat(2,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll--rv-features .apb-rx-scroll-stage,
  .apb-rx-scroll--rv-cascade .apb-rx-scroll-stage,
  .apb-rx-scroll--rv-flip .apb-rx-scroll-stage,
  .apb-rx-scroll--rv-bento .apb-rx-scroll-stage,
  .apb-rx-scroll--rv-blur .apb-rx-scroll-stage{min-height:auto;padding:14vh 6vw}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-card,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-row,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tile,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-flip,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-bline{opacity:1;filter:none;transform:none}
}

/* ======================================================================
   scroll_duet — pinned two-column swap (image column + details column).
   Both halves swap in lockstep per scroll band. Light editorial surface.
   Base is BARE; the --card modifier ADDS the surface card (matches the
   apb-rx-share--card idiom). Fail-open: without [data-apb-scroll-ready]
   every step shows in normal flow.
   ====================================================================== */
.apb-rx-scroll--duet{--apb-rx-scroll-h:360vh;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-ink,#0b0d12);overflow:clip}
.apb-rx-scroll--duet .apb-rx-scroll-stage{display:block;place-items:unset;min-height:100vh;overflow:visible}
.apb-rx-duet{box-sizing:border-box;position:relative;max-width:1180px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,3vh,34px);padding:clamp(52px,8vh,100px) clamp(32px,6vw,104px)}
.apb-rx-duet-head{max-width:640px}
.apb-rx-duet-head .apb-rx-eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#111827))}
.apb-rx-duet-head h2{margin:10px 0 0;font-size:clamp(28px,4.2vw,46px);letter-spacing:-.028em;line-height:1.05;color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-duet-stack{position:relative;flex:1;min-height:min(70vh,600px)}
.apb-rx-duet-step{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:48px}
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step{position:absolute;inset:0;margin:0;opacity:0;pointer-events:none;transition:opacity calc(.6s / var(--apb-rx-dur,1)) ease}
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step.is-active{opacity:1;pointer-events:auto}
/* fail-safe guard: if the engine's 2.5s revealAll marks ALL beats active, show only the first
   (no-op in normal single-active operation; bands never overlap so the cross-fade is unaffected) */
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step.is-active ~ .apb-rx-duet-step.is-active{opacity:0;pointer-events:none}
.apb-rx-duet-media{position:relative;border-radius:calc(var(--apb-rx-radius,16px) * 1.25);overflow:hidden;height:min(58vh,540px);background:var(--apb-rx-line,#e5e7eb);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -28px rgba(11,13,18,.30))}
.apb-rx-duet-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-duet-media figcaption{position:absolute;left:14px;bottom:14px;padding:7px 13px;border-radius:999px;font-size:12.5px;font-weight:700;background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink,#0b0d12);box-shadow:0 6px 18px -6px rgba(0,0,0,.35)}
.apb-rx-duet-step--imgright .apb-rx-duet-media{order:2}
/* base bare -> --card adds chrome */
.apb-rx-duet-card{padding:0}
.apb-rx-duet--card .apb-rx-duet-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e5e7eb);border-radius:calc(var(--apb-rx-radius,16px) * 1.15);padding:clamp(24px,3vw,40px);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -28px rgba(11,13,18,.30))}
.apb-rx-duet-card .num{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;font-size:14px;font-weight:800;border:1.5px solid var(--apb-rx-line,#e5e7eb);color:var(--apb-rx-muted,#6b7280);background:none}
.apb-rx-duet--card .apb-rx-duet-card .num{background:var(--apb-rx-soft,#f4f5f7)}
.apb-rx-duet-card .ey{display:block;margin:16px 0 0;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#111827))}
.apb-rx-duet-card h3{margin:8px 0 0;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;line-height:1.12;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-duet-card p{margin:12px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15.5px;line-height:1.6}
.apb-rx-duet-card ul{margin:18px 0 0;padding:0;list-style:none;display:grid;gap:11px}
.apb-rx-duet-card li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.5;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-duet-card li::before{content:"";position:absolute;left:0;top:6px;width:15px;height:15px;border-radius:999px;background:var(--apb-rx-check,var(--apb-rx-brand,#111827));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23fff' d='M8 13.2 4.8 10l-1.4 1.4L8 16 17 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23fff' d='M8 13.2 4.8 10l-1.4 1.4L8 16 17 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
/* transition fx (author-chosen) applied to both cells on enter */
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-media,
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-card{transition:transform calc(.72s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),opacity calc(.5s / var(--apb-rx-dur,1)) ease}
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-card{transition-delay:calc(.07s / var(--apb-rx-dur,1))}
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step:not(.is-active) .apb-rx-duet-media,
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step:not(.is-active) .apb-rx-duet-card{transform:var(--apb-rx-fx-t,none)}
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step.is-active .apb-rx-duet-media,
.apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step.is-active .apb-rx-duet-card{transform:none}

/* ======================================================================
   scroll_spotlight — pinned CENTER image + card BELOW, swapping together.
   ====================================================================== */
.apb-rx-scroll--spot{--apb-rx-scroll-h:340vh;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-ink,#0b0d12);overflow:clip}
.apb-rx-scroll--spot .apb-rx-scroll-stage{display:block;place-items:unset;min-height:100vh;overflow:visible}
.apb-rx-spot{box-sizing:border-box;position:relative;max-width:860px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(18px,3vh,30px);padding:clamp(52px,8vh,100px) clamp(28px,6vw,72px)}
.apb-rx-spot-head{text-align:center;max-width:640px;margin:0 auto}
.apb-rx-spot-head .apb-rx-eyebrow{margin:0;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#111827))}
.apb-rx-spot-head h2{margin:10px 0 0;font-size:clamp(28px,4.2vw,46px);letter-spacing:-.028em;line-height:1.05;color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-spot-stack{position:relative;flex:1;min-height:min(72vh,640px)}
.apb-rx-spot-step{display:flex;flex-direction:column;align-items:center;gap:clamp(18px,2.6vw,28px);margin-bottom:56px}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step{position:absolute;inset:0;margin:0;opacity:0;pointer-events:none;justify-content:center;transition:opacity calc(.6s / var(--apb-rx-dur,1)) ease}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step.is-active{opacity:1;pointer-events:auto}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step.is-active ~ .apb-rx-spot-step.is-active{opacity:0;pointer-events:none}
.apb-rx-spot-media{width:100%;height:min(50vh,460px);border-radius:calc(var(--apb-rx-radius,16px) * 1.25);overflow:hidden;background:var(--apb-rx-line,#e5e7eb);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -28px rgba(11,13,18,.30))}
.apb-rx-spot-media img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-spot-card{width:min(600px,100%);text-align:center;padding:0}
.apb-rx-spot--card .apb-rx-spot-card{background:var(--apb-rx-surface,#fff);border:1px solid var(--apb-rx-line,#e5e7eb);border-radius:calc(var(--apb-rx-radius,16px) * 1.15);padding:clamp(22px,3vw,34px);box-shadow:var(--apb-rx-shadow-3,0 30px 70px -28px rgba(11,13,18,.30))}
.apb-rx-spot-card .ey{display:block;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#111827))}
.apb-rx-spot-card h3{margin:8px 0 0;font-size:clamp(21px,2.6vw,28px);letter-spacing:-.02em;line-height:1.14;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-spot-card p{margin:11px 0 0;color:var(--apb-rx-muted,#6b7280);font-size:15.5px;line-height:1.6}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-media,
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-card{transition:transform calc(.72s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1),opacity calc(.5s / var(--apb-rx-dur,1)) ease}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-card{transition-delay:calc(.08s / var(--apb-rx-dur,1))}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step:not(.is-active) .apb-rx-spot-media,
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step:not(.is-active) .apb-rx-spot-card{transform:var(--apb-rx-fx-t,none)}
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step.is-active .apb-rx-spot-media,
.apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step.is-active .apb-rx-spot-card{transform:none}

/* shared transition tokens (set by data-fx on the recipe root) */
.apb-rx-duet[data-fx="fade"],.apb-rx-spot[data-fx="fade"],.apb-rx-shero[data-fx="fade"]{--apb-rx-fx-t:none}
.apb-rx-duet[data-fx="fade-up"],.apb-rx-spot[data-fx="fade-up"],.apb-rx-shero[data-fx="fade-up"]{--apb-rx-fx-t:translateY(34px)}
.apb-rx-duet[data-fx="fade-down"],.apb-rx-spot[data-fx="fade-down"],.apb-rx-shero[data-fx="fade-down"]{--apb-rx-fx-t:translateY(-34px)}
.apb-rx-duet[data-fx="fade-scale"],.apb-rx-spot[data-fx="fade-scale"],.apb-rx-shero[data-fx="fade-scale"]{--apb-rx-fx-t:scale(.955)}

@media(max-width:760px){
  .apb-rx-scroll--duet,.apb-rx-scroll--spot{--apb-rx-scroll-h:300vh}
  .apb-rx-duet-step{grid-template-columns:1fr;gap:16px}
  .apb-rx-duet-step--imgright .apb-rx-duet-media{order:0}
  .apb-rx-duet-media{height:min(40vh,320px)}
  .apb-rx-spot-media{height:min(38vh,320px)}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step,
  .apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step{position:relative;inset:auto;opacity:1;margin-bottom:48px;pointer-events:auto}
  /* neutralize the all-active sibling guard so reduced-motion shows EVERY step in flow (not just the first) */
  .apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-step.is-active ~ .apb-rx-duet-step.is-active,
  .apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-step.is-active ~ .apb-rx-spot-step.is-active{opacity:1;pointer-events:auto}
  .apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-media,
  .apb-rx-scroll--duet[data-apb-scroll-ready] .apb-rx-duet-card,
  .apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-media,
  .apb-rx-scroll--spot[data-apb-scroll-ready] .apb-rx-spot-card{transition:none;transform:none}
}

/* ======================================================================
   scroll_hero — pinned hero: headline holds on top; the image below (and an
   optional lead line) SWAP per scroll step. Locked to one viewport (100vh);
   the media flexes to fill the space under the title so it never overflows.
   Fail-open: without [data-apb-scroll-ready] the FIRST slide/lead shows.
   ====================================================================== */
.apb-rx-scroll--shero{--apb-rx-scroll-h:320vh;background:var(--apb-rx-soft,#f4f5f7);color:var(--apb-rx-ink,#0b0d12);overflow:clip}
.apb-rx-scroll--shero .apb-rx-scroll-stage{display:block;place-items:unset;min-height:100vh;overflow:visible}
.apb-rx-shero{box-sizing:border-box;position:relative;max-width:1240px;margin:0 auto;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:clamp(12px,2vh,24px);overflow:hidden;padding:clamp(24px,4vh,52px) clamp(20px,5vw,56px) clamp(18px,3.4vh,40px)}
.apb-rx-shero-head{flex:0 0 auto;max-width:940px;position:relative;z-index:2}
.apb-rx-shero-head .apb-rx-eyebrow{margin:0;font-size:12.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#111827))}
.apb-rx-shero-head h1{margin:12px 0 0;font-size:clamp(32px,5.2vw,64px);letter-spacing:-.032em;line-height:1;color:var(--apb-rx-ink,#0b0d12);text-wrap:balance}
.apb-rx-shero-leads{position:relative;width:min(62ch,100%);min-height:calc(1.5em * 2);margin:12px auto 0}
.apb-rx-shero-lead{position:absolute;inset:0;margin:0;font-size:clamp(16px,1.7vw,20px);line-height:1.5;color:var(--apb-rx-muted,#6b7280);opacity:0}
.apb-rx-shero-lead:first-child{opacity:1}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-lead{opacity:0;transition:opacity calc(.5s / var(--apb-rx-dur,1)) ease,transform calc(.6s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1);transform:var(--apb-rx-fx-t,none)}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-lead.is-active{opacity:1;transform:none}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-lead.is-active ~ .apb-rx-shero-lead.is-active{opacity:0}
.apb-rx-shero .apb-rx-cta-row{margin-top:14px;justify-content:center}
.apb-rx-shero-media{position:relative;flex:1 1 auto;min-height:0;width:100%;max-width:1180px;border-radius:calc(var(--apb-rx-radius,16px) * 1.35);overflow:hidden;background:var(--apb-rx-line,#e5e7eb);box-shadow:var(--apb-rx-shadow-3,0 40px 90px -35px rgba(11,13,18,.42))}
.apb-rx-shero-slide{position:absolute;inset:0;opacity:0}
.apb-rx-shero-slide:first-child{opacity:1}
.apb-rx-shero-slide img{width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-shero-cap{position:absolute;left:16px;bottom:16px;padding:8px 15px;border-radius:999px;font-size:13px;font-weight:700;background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink,#0b0d12);box-shadow:0 8px 22px -8px rgba(0,0,0,.4)}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-slide{opacity:0;transition:opacity calc(.55s / var(--apb-rx-dur,1)) ease,transform calc(.7s / var(--apb-rx-dur,1)) cubic-bezier(.22,1,.36,1);transform:var(--apb-rx-fx-t,none)}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-slide.is-active{opacity:1;transform:none}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-slide.is-active ~ .apb-rx-shero-slide.is-active{opacity:0}
.apb-rx-shero-cue{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280)}
.apb-rx-shero-cue i{width:22px;height:34px;border:2px solid var(--apb-rx-line,#e5e7eb);border-radius:12px;position:relative}
.apb-rx-shero-cue i::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:7px;border-radius:2px;background:var(--apb-rx-muted,#6b7280);transform:translateX(-50%);animation:apb-rx-shero-dot 1.5s ease-in-out infinite}
@keyframes apb-rx-shero-dot{0%,100%{opacity:.3;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,7px)}}
.apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-cue{opacity:calc(1 - var(--apb-p,0) * 3.2)}
@media(max-width:760px){ .apb-rx-scroll--shero{--apb-rx-scroll-h:260vh} }
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-slide,
  .apb-rx-scroll--shero[data-apb-scroll-ready] .apb-rx-shero-lead{transition:none;transform:none}
  .apb-rx-shero-cue i::after{animation:none}
}

/* ===== scroll_expand — a small media card grows to a FULL-BLEED video on scroll (crisp clip-path reveal,
   driven off the shared --apb-p pin engine). Rest state (--apb-p:0, no/idle JS) = a legible 2-col hero:
   a side/centre media card + copy — the graceful fail-open. Variants: --left / --right / --curtain. ===== */
.apb-rx-scroll--xp{background:var(--apb-rx-surface,#fff);color:var(--apb-rx-ink,#0b0d12);
  --xe:calc(var(--apb-p,0)*var(--apb-p,0)*(3 - 2*var(--apb-p,0)))}       /* smoothstep of scroll progress */
.apb-rx-scroll--xp .apb-rx-scroll-stage{display:block;place-items:unset;position:sticky;top:0;height:100vh;overflow:hidden}
.apb-rx-xp-media{position:absolute;inset:0;z-index:1;overflow:hidden;background:var(--apb-rx-soft,#f4f5f7);will-change:clip-path}
.apb-rx-xp-media>video,.apb-rx-xp-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.apb-rx-xp-badge{position:absolute;top:18px;left:18px;z-index:3;display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;color:#fff;background:rgba(9,11,16,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--apb-rx-radius-pill,999px);padding:5px 11px;opacity:calc(1 - var(--xe,0)*1.6)}
.apb-rx-xp-dot{width:6px;height:6px;border-radius:50%;background:#fff}
.apb-rx-xp-wrap{position:relative;z-index:2;height:100%;max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,56px);pointer-events:none}
.apb-rx-xp-copy{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:min(42%,460px);opacity:calc(1 - var(--xe,0)*2.2)}
.apb-rx-xp-copy h2{font-size:clamp(24px,3.4vw,42px);line-height:1.06;letter-spacing:-.03em;margin:0 0 14px;color:var(--apb-rx-ink,#0b0d12)}
.apb-rx-xp-ey{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5));margin:0 0 12px}
.apb-rx-xp-lead{font-size:16px;line-height:1.55;color:var(--apb-rx-muted,#6b7280);margin:0}
.apb-rx-xp-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--apb-rx-muted,#6b7280);opacity:calc(1 - var(--xe,0)*3)}
/* variant A — left card, copy right */
.apb-rx-xp--left .apb-rx-xp-media{clip-path:inset(calc(26% - var(--xe,0)*26%) calc(55% - var(--xe,0)*55%) calc(26% - var(--xe,0)*26%) calc(6% - var(--xe,0)*6%) round calc(20px - var(--xe,0)*20px))}
.apb-rx-xp--left .apb-rx-xp-copy{right:0;left:auto}
/* variant B — right card, copy left */
.apb-rx-xp--right .apb-rx-xp-media{clip-path:inset(calc(26% - var(--xe,0)*26%) calc(6% - var(--xe,0)*6%) calc(26% - var(--xe,0)*26%) calc(55% - var(--xe,0)*55%) round calc(20px - var(--xe,0)*20px))}
.apb-rx-xp--right .apb-rx-xp-copy{left:0;right:auto}
/* variant C — centre curtain that widens; copy sits over the media (white) and lifts out */
.apb-rx-xp--curtain .apb-rx-xp-media{clip-path:inset(calc(28% - var(--xe,0)*28%) calc(40% - var(--xe,0)*40%) calc(28% - var(--xe,0)*28%) calc(40% - var(--xe,0)*40%) round calc(22px - var(--xe,0)*22px))}
.apb-rx-xp--curtain .apb-rx-xp-copy{left:50%;right:auto;width:min(600px,86%);text-align:center;top:calc(50% - var(--xe,0)*42vh);transform:translate(-50%,-50%)}
/* curtain copy stays ink: at rest (--apb-p:0, no-JS, reduced-motion) it sits over the white surface beside
   the narrow centre media strip and must read; it fully fades (opacity) before the media ever covers it.
   A white glow halo is invisible on the surface but lifts the ink off the darker centre media strip. */
.apb-rx-xp--curtain .apb-rx-xp-copy h2{text-shadow:0 1px 16px var(--apb-rx-surface,#fff),0 0 6px var(--apb-rx-surface,#fff)}
/* reduced motion: no scroll-driven expand (--apb-p stays 0) — the rest 2-col card hero is the static state */
@media(prefers-reduced-motion:reduce){.apb-rx-scroll--xp{--apb-rx-scroll-h:auto;min-height:auto;--xe:0}.apb-rx-scroll--xp .apb-rx-scroll-stage{position:relative;height:auto;min-height:64vh}}
/* ==== assets/pages/component-scrim.css ==== */
/* =============================================================================
   apb-rx contrast primitive — text-over-image legibility guarantee
   -----------------------------------------------------------------------------
   A reusable scrim / fade bed + safe-zone aim for the newer apb-rx-* recipes,
   mirroring the older apb-pg-* system in layouts.css. Drop a scrim LAYER between
   a full-bleed media layer and the copy layer; a `apb-rx-safe-*` modifier on the
   container aims the scrim so its solid end sits under the copy.

   Pairs 1:1 with the background-seed taste facets (taste-library):
     seed.text_safe  -> .apb-rx-safe-{left,right,top,bottom,center}
     seed.luminance  -> dark  : light text, scrim optional (.apb-rx-scrim--soft)
                        light : dark text  (.apb-rx-scrim--light)
                        mixed : a scrim is required (.apb-rx-scrim / --light)
     seed.focal      -> --apb-rx-focal (object-position of the media img)

   Tokens (all optional, sane fallbacks):
     --apb-rx-scrim-color  dark end of the scrim              (rgba(8,10,18,.82))
     --apb-rx-scrim-angle  linear direction, 0deg = bottom-up (aimed by safe-*)
     --apb-rx-scrim-stop   where the scrim fades to clear      (74%)
     --apb-rx-bed          fade target for .apb-rx-fade        (--apb-rx-surface)
     --apb-rx-focal        media object-position               (50% 50%)
   No literals for brand-tinted values, no !important.
   ============================================================================= */

/* ---- scaffold: a positioned media stage (opt-in; recipes may bring their own) ---- */
.apb-rx-mediastage {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: var(--apb-rx-radius, 16px);
  background: var(--apb-rx-bed, var(--apb-rx-ink, #0b0d12));
}
.apb-rx-mediastage > .apb-rx-media,
.apb-rx-media--bleed {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.apb-rx-media--bleed > img,
.apb-rx-media--bleed > video,
.apb-rx-mediastage > .apb-rx-media > img,
.apb-rx-mediastage > .apb-rx-media > video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--apb-rx-focal, 50% 50%);
  display: block;
}

/* ---- the contrast guarantee: a gradient bed under the text ---- */
.apb-rx-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  /* fallback (no color-mix): a two-stop gradient still guarantees a bed */
  background: linear-gradient(
    var(--apb-rx-scrim-angle, 0deg),
    var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82)) 0%,
    transparent var(--apb-rx-scrim-stop, 74%)
  );
  background: linear-gradient(
    var(--apb-rx-scrim-angle, 0deg),
    var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82)) 0%,
    color-mix(in srgb, var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82)) 40%, transparent) 42%,
    transparent var(--apb-rx-scrim-stop, 74%)
  );
}
/* centred vignette — for centre-anchored copy (pair with .apb-rx-safe-center) */
.apb-rx-scrim--radial {
  background: radial-gradient(
    closest-side at 50% 50%,
    color-mix(in srgb, var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82)) 60%, transparent),
    var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82))
  );
  /* fallback for no color-mix */
  background: radial-gradient(closest-side at 50% 50%, rgba(8, 10, 18, 0.5), var(--apb-rx-scrim-color, rgba(8, 10, 18, 0.82)));
}
/* strength presets */
.apb-rx-scrim--soft   { --apb-rx-scrim-color: rgba(8, 10, 18, 0.52); }
.apb-rx-scrim--strong { --apb-rx-scrim-color: rgba(8, 10, 18, 0.92); }
/* light scrim — a bright bed for DARK text over a light-but-busy background (seed.luminance:light).
   Plain rgba fallback FIRST: if color-mix is unsupported and the token held a color-mix value, the var
   would fall back to the DARK default and the light scrim would silently invert (dark bed under dark
   text = invisible). The @supports layer upgrades to a surface-derived tint where available. */
.apb-rx-scrim--light  { --apb-rx-scrim-color: rgba(248, 250, 252, 0.88); }
@supports (color: color-mix(in srgb, white, transparent)) {
  .apb-rx-scrim--light { --apb-rx-scrim-color: color-mix(in srgb, var(--apb-rx-surface, #fff) 88%, transparent); }
}

/* fade the media INTO the tile's solid bed (no hard rectangle, guaranteed text bed) */
.apb-rx-fade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    var(--apb-rx-fade-angle, 180deg),
    transparent 38%,
    var(--apb-rx-bed, var(--apb-rx-surface, #fff)) 84%
  );
  background: linear-gradient(
    var(--apb-rx-fade-angle, 180deg),
    transparent 38%,
    color-mix(in srgb, var(--apb-rx-bed, var(--apb-rx-surface, #fff)) 55%, transparent) 60%,
    var(--apb-rx-bed, var(--apb-rx-surface, #fff)) 84%
  );
}

/* ---- copy layer (opt-in) ---- */
.apb-rx-mediastage > .apb-rx-copy,
.apb-rx-copy--over {
  position: relative;
  z-index: 2;
  color: var(--apb-rx-on-image, #fff);
}

/* ---- safe-zone: ONE class on the container aims the scrim AND (opt-in) places the copy ----
   The angle points the scrim's solid end at the safe zone; no fragile sibling combinators. */
.apb-rx-safe-left   { --apb-rx-scrim-angle: 90deg; }
.apb-rx-safe-right  { --apb-rx-scrim-angle: 270deg; }
.apb-rx-safe-top    { --apb-rx-scrim-angle: 180deg; }
.apb-rx-safe-bottom { --apb-rx-scrim-angle: 0deg; }
.apb-rx-safe-center { /* pair with .apb-rx-scrim--radial; copy centred by the recipe */ }

/* opt-in copy placement for a .apb-rx-mediastage that uses the safe classes */
.apb-rx-mediastage.apb-rx-safe-left   > .apb-rx-copy { position: absolute; left: 0; top: 50%; transform: translateY(-50%); max-width: var(--apb-rx-copy-max, 46%); padding: clamp(1.25rem, 3vw, 2.75rem); }
.apb-rx-mediastage.apb-rx-safe-right  > .apb-rx-copy { position: absolute; right: 0; top: 50%; transform: translateY(-50%); max-width: var(--apb-rx-copy-max, 46%); padding: clamp(1.25rem, 3vw, 2.75rem); text-align: right; }
.apb-rx-mediastage.apb-rx-safe-top    > .apb-rx-copy { position: absolute; top: 0; left: 0; right: 0; padding: clamp(1.25rem, 3vw, 2.75rem); }
.apb-rx-mediastage.apb-rx-safe-bottom > .apb-rx-copy { position: absolute; bottom: 0; left: 0; right: 0; padding: clamp(1.25rem, 3vw, 2.75rem); }
.apb-rx-mediastage.apb-rx-safe-center > .apb-rx-copy { max-width: var(--apb-rx-copy-max, 760px); margin-inline: auto; text-align: center; }

/* light-scrim companion: dark text when a light bed is used */
.apb-rx-scrim--light ~ .apb-rx-copy,
.apb-rx-copy--on-light { --apb-rx-on-image: var(--apb-rx-ink, #0b0d12); color: var(--apb-rx-ink, #0b0d12); }

@media (prefers-reduced-motion: reduce) {
  /* scrims are static — nothing to disable; declared for parity with the pg system */
  .apb-rx-scrim, .apb-rx-fade { transition: none; }
}
/* ==== assets/pages/component-reveal.css ==== */
/* Reveal-on-scroll recipes (batches 2-4): pinned sections whose content reveals via the engine's
   var(--apb-p) progress var + --i/--n/--d stagger. Reuses the .apb-rx-scroll base (min-height +
   sticky stage) from recipe-scroll.css. Animated initial state is scoped under
   [data-apb-scroll-ready] so every section is fully visible without JS (fail-open). */

/* shared centred copy block */
.apb-rx-rv-copy{position:relative;z-index:4;text-align:center;max-width:780px;padding:0 6vw;display:grid;gap:14px;justify-items:center}
.apb-rx-rv-copy h2{margin:0;color:#fff;font-size:clamp(32px,5.5vw,68px);line-height:1.06}
.apb-rx-rv-copy .apb-rx-eyebrow{color:rgba(255,255,255,.78);margin:0}
.apb-rx-rv-copy .apb-rx-scroll-sub{margin:0;color:rgba(255,255,255,.82)}

/* ===== batch 2: text / solid ===== */
.apb-rx-scroll--rv-highlight .apb-rx-scroll-stage,
.apb-rx-scroll--rv-readalong .apb-rx-scroll-stage,
.apb-rx-scroll--rv-underline .apb-rx-scroll-stage,
.apb-rx-scroll--rv-ticker .apb-rx-scroll-stage,
.apb-rx-scroll--rv-liquidfill .apb-rx-scroll-stage,
.apb-rx-scroll--rv-shimmer .apb-rx-scroll-stage{display:flex;flex-direction:column;gap:22px;justify-content:center;align-items:center;padding:9vh 6vw}

/* highlight: words get a marker sweep */
.apb-rx-rv-hl{margin:0;text-align:center;max-width:900px;font-size:clamp(28px,5vw,60px);font-weight:700;line-height:1.22;color:#fff}
.apb-rx-rv-hw{display:inline-block;border-radius:6px;padding:0 .06em;background-image:linear-gradient(var(--apb-rx-brand,#6d28d9),var(--apb-rx-brand,#6d28d9));background-repeat:no-repeat;background-position:0 100%;background-size:100% 100%}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hw{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);background-size:calc(var(--e)*100%) 100%}

/* readalong: words brighten from dim to full */
.apb-rx-rv-ra{margin:0;text-align:center;max-width:900px;font-size:clamp(24px,3.6vw,46px);font-weight:600;line-height:1.35;color:#fff}
.apb-rx-rv-raw{opacity:.28}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-raw{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:calc(.28 + .72*var(--e))}

/* underline: a bar is drawn under each line in turn */
.apb-rx-rv-ulwrap{margin:0;max-width:820px;text-align:left;font-size:clamp(26px,4.4vw,50px);font-weight:700;line-height:1.5;color:#fff}
.apb-rx-rv-ul{position:relative;display:inline-block}
.apb-rx-rv-ulbar{position:absolute;left:0;right:0;bottom:-2px;height:4px;border-radius:3px;background:var(--apb-rx-brand,#6d28d9);transform:scaleX(1);transform-origin:left}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ulbar{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);transform:scaleX(var(--e))}

/* ticker: last word cycles through a masked stack */
.apb-rx-scroll--rv-ticker .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-rv-tkwrap{text-align:center;font-size:clamp(34px,6.5vw,82px);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:#fff}
.apb-rx-rv-tkpre{display:block}
.apb-rx-rv-tkmask{display:inline-block;height:1.1em;overflow:hidden;vertical-align:bottom;color:var(--apb-rx-brand2,#22c55e)}
.apb-rx-rv-tkstack{display:block}
.apb-rx-rv-tkstack span{display:block;height:1.1em}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tkstack{transform:translateY(calc(var(--apb-p,0)*(var(--n,1) - 1)*-1.1em))}

/* liquid fill: a coloured copy fills from the bottom up */
.apb-rx-scroll--rv-liquidfill .apb-rx-scroll-stage{gap:16px}
.apb-rx-rv-lfwrap{position:relative;display:inline-block}
.apb-rx-rv-lfbase,.apb-rx-rv-lffill{font-size:clamp(60px,15vw,200px);font-weight:900;letter-spacing:-.05em;line-height:1;display:block}
.apb-rx-rv-lfbase{color:rgba(255,255,255,.18)}
.apb-rx-rv-lffill{position:absolute;left:0;top:0;color:var(--apb-rx-brand2,#22c55e);clip-path:none}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-lffill{clip-path:inset(calc((1 - var(--apb-p,0))*100%) 0 0 0)}

/* shimmer: a light streak sweeps across the wordmark */
.apb-rx-rv-shtext{font-size:clamp(46px,11vw,150px);font-weight:900;letter-spacing:-.04em;text-align:center;background:linear-gradient(100deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,.72) 38%,#fff 50%,rgba(255,255,255,.72) 62%,rgba(255,255,255,.72) 100%);background-size:300% 100%;background-position:50% 0;-webkit-background-clip:text;background-clip:text;color:transparent}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-shtext{background-position:calc((1 - var(--apb-p,0))*100%) 0}

/* invert: palette flips dark -> light past the midpoint */
.apb-rx-scroll--rv-invert .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-scroll[data-apb-scroll-ready].apb-rx-scroll--rv-invert .apb-rx-scroll-stage{--ip:clamp(0,calc((var(--apb-p,0) - .35)*3.4),1)}
.apb-rx-scroll--rv-invert .apb-rx-scroll-stage::before{content:"";position:absolute;inset:0;z-index:0;background:#f4f3ef;opacity:var(--ip,0)}
.apb-rx-rv-invert-wrap{position:relative;z-index:4}
.apb-rx-rv-invert-wrap h2{color:color-mix(in srgb,#14130f calc(var(--ip,0)*100%),#fff)}
.apb-rx-rv-invert-wrap .apb-rx-eyebrow,.apb-rx-rv-invert-wrap .apb-rx-scroll-sub{color:color-mix(in srgb,#14130f calc(var(--ip,0)*100%),rgba(255,255,255,.82))}

/* curtain: top/bottom panels part (default open = fail-open visible) */
.apb-rx-scroll--rv-curtain .apb-rx-scroll-stage,
.apb-rx-scroll--rv-doors .apb-rx-scroll-stage,
.apb-rx-scroll--rv-radial .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-rv-cvpanel{position:absolute;left:0;right:0;height:50%;z-index:5;display:flex;justify-content:center;background:var(--apb-rx-surface-muted,#1b1d24)}
.apb-rx-rv-cvtop{top:0;align-items:flex-end;border-bottom:1px solid rgba(255,255,255,.12);transform:translateY(-100%)}
.apb-rx-rv-cvbot{bottom:0;align-items:flex-start;border-top:1px solid rgba(255,255,255,.12);transform:translateY(100%)}
.apb-rx-rv-cvpanel span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);padding:14px}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-cvtop{transform:translateY(calc(var(--apb-p,0)*-100%))}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-cvbot{transform:translateY(calc(var(--apb-p,0)*100%))}

/* doors: two panels slide apart (default open = fail-open visible) */
.apb-rx-rv-drpanel{position:absolute;top:0;bottom:0;width:50%;z-index:5;display:flex;align-items:center;background:var(--apb-rx-surface-muted,#1b1d24)}
.apb-rx-rv-drl{left:0;justify-content:flex-end;border-right:1px solid rgba(255,255,255,.12);transform:translateX(-100%)}
.apb-rx-rv-drr{right:0;justify-content:flex-start;border-left:1px solid rgba(255,255,255,.12);transform:translateX(100%)}
.apb-rx-rv-drpanel span{font-size:clamp(30px,7vw,90px);font-weight:800;color:rgba(255,255,255,.35);padding:0 4vw}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-drl{transform:translateX(calc(var(--apb-p,0)*-100%))}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-drr{transform:translateX(calc(var(--apb-p,0)*100%))}

/* radial: content uncovered through a growing circle (default full = fail-open visible) */
.apb-rx-rv-rdreveal{position:absolute;inset:0;z-index:1;clip-path:circle(140% at 50% 50%);background:radial-gradient(circle at 50% 45%,var(--apb-rx-brand,#6d28d9),#0a0a12 70%)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-rdreveal{clip-path:circle(calc(var(--apb-p,0)*120% + 6%) at 50% 50%)}
.apb-rx-scroll--rv-radial .apb-rx-rv-copy{z-index:4}

@media(max-width:720px){
  .apb-rx-rv-hl{font-size:clamp(24px,7vw,36px)}
  .apb-rx-rv-ulwrap{font-size:clamp(22px,6vw,32px)}
  .apb-rx-rv-tkwrap{font-size:clamp(28px,9vw,46px)}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hw{background-size:100% 100%}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-raw{opacity:1}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ulbar{transform:scaleX(1)}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tkstack{transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-lffill{clip-path:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-shtext{background-position:50% 0}
  .apb-rx-rv-cvpanel,.apb-rx-rv-drpanel{display:none}
  .apb-rx-rv-rdreveal,.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-rdreveal{clip-path:none;opacity:.4}
  .apb-rx-scroll[data-apb-scroll-ready].apb-rx-scroll--rv-invert .apb-rx-scroll-stage{--ip:0}
}

/* ===== batch 3: layout / cards ===== */
/* steps: connector line draws down, nodes light cumulatively (data-apb-beat stack) */
.apb-rx-scroll--rv-steps .apb-rx-scroll-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:30px;padding:9vh 6vw}
.apb-rx-rv-steps{position:relative;width:min(560px,92vw);padding-left:46px}
.apb-rx-rv-stline{position:absolute;left:21px;top:6px;bottom:6px;width:2px;background:var(--apb-rx-brand2,#22c55e);transform:scaleY(1);transform-origin:top}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-stline{transform:scaleY(var(--apb-p,0))}
.apb-rx-rv-step{position:relative;margin-bottom:26px}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-step{opacity:.32;transition:opacity .3s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-step.is-active{opacity:1}
.apb-rx-rv-stnode{position:absolute;left:-46px;top:0;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.2)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-step.is-active .apb-rx-rv-stnode{border-color:var(--apb-rx-brand2,#22c55e);color:var(--apb-rx-brand2,#22c55e)}
.apb-rx-rv-sttext h3{margin:0;color:#fff;font-size:19px}
.apb-rx-rv-sttext p{margin:4px 0 0;color:rgba(255,255,255,.7);font-size:14px}

/* pinnedlist: heading + spotlight list (single active via data-apb-beat) */
.apb-rx-scroll--rv-pinnedlist .apb-rx-scroll-stage,
.apb-rx-scroll--rv-impact .apb-rx-scroll-stage{display:grid;place-items:center;padding:0 6vw}
.apb-rx-rv-plgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:5vw;width:min(1000px,92vw);align-items:center}
.apb-rx-rv-plhead h2{margin:0;color:#fff;font-size:clamp(28px,4vw,48px)}
.apb-rx-rv-plhead .apb-rx-scroll-sub{margin-top:12px}
.apb-rx-rv-pllist{display:flex;flex-direction:column;gap:18px}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-plitem{opacity:.3;transition:opacity .3s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-plitem.is-active{opacity:1}
.apb-rx-rv-pli{font-size:12px;color:rgba(255,255,255,.6)}
.apb-rx-rv-plitem h3{margin:2px 0 0;color:#fff;font-size:clamp(20px,2.4vw,30px)}
.apb-rx-rv-plitem p{margin:4px 0 0;color:rgba(255,255,255,.72);font-size:14px}

/* impact: sticky index + crossfading metric figures */
.apb-rx-rv-impgrid{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:5vw;width:min(1000px,92vw);height:60vh;align-items:stretch}
.apb-rx-rv-impidx{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;border-left:1px solid rgba(255,255,255,.16);padding-left:24px}
.apb-rx-rv-impitem{padding:13px 0}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impitem{opacity:.32;transition:opacity .35s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impitem.is-active{opacity:1}
.apb-rx-rv-impk{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.apb-rx-rv-impt{display:block;font-size:16px;font-weight:600;color:#fff;margin-top:3px}
.apb-rx-rv-impview{position:relative}
.apb-rx-rv-impcard{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impcard{opacity:0;transform:translateY(20px);transition:opacity .5s,transform .5s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impcard.is-active{opacity:1;transform:none}
.apb-rx-rv-impbig{font-size:clamp(60px,12vw,128px);font-weight:800;letter-spacing:-.04em;line-height:.95;color:#fff}

/* skewlist: rows rise with settling skew */
.apb-rx-scroll--rv-skewlist .apb-rx-scroll-stage,
.apb-rx-scroll--rv-tilt .apb-rx-scroll-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:9vh 6vw}
.apb-rx-rv-slrows{display:flex;flex-direction:column;width:min(760px,92vw)}
.apb-rx-rv-slrow{display:flex;align-items:baseline;gap:18px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.apb-rx-rv-slt{color:#fff;font-weight:700;font-size:clamp(20px,2.8vw,32px)}
.apb-rx-rv-sls{color:rgba(255,255,255,.7);font-size:14px;margin-left:auto}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-slrow{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);transform:translateY(calc((1 - var(--e))*44px)) skewY(calc((1 - var(--e))*5deg))}

/* tilt: cards straighten from 3D tilt */
.apb-rx-rv-tiltgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;width:min(900px,92vw);perspective:1200px}
.apb-rx-rv-tiltcard{min-height:22vh;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:18px;border-radius:var(--apb-rx-radius,16px);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14)}
.apb-rx-rv-tk{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.apb-rx-rv-tv{font-weight:700;font-size:18px;color:#fff}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tiltcard{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);opacity:var(--e);transform:rotateX(calc((1 - var(--e))*38deg)) translateY(calc((1 - var(--e))*40px))}

/* peel: top card slides off to reveal the next */
.apb-rx-scroll--rv-peel .apb-rx-scroll-stage,
.apb-rx-scroll--rv-stack .apb-rx-scroll-stage,
.apb-rx-scroll--rv-orbit .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-rv-peelwrap{position:relative;width:min(420px,86vw);height:58vh}
.apb-rx-rv-peelcard{position:absolute;inset:0;z-index:var(--i,1);border-radius:var(--apb-rx-radius,16px);overflow:hidden;padding:26px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;background:#15171d;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.apb-rx-rv-pk{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.apb-rx-rv-peelcard h3{margin:0;color:#fff;font-size:26px}
.apb-rx-rv-peelcard p{margin:0;color:rgba(255,255,255,.75);font-size:14px}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-peelcard{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--n,1) - var(--i,1))),1);transform:translateX(calc(var(--e)*120%)) rotate(calc(var(--e)*8deg));opacity:clamp(0,calc(1 - max(0,calc(var(--e) - .7))*3.3),1)}

/* stack: cards slide up + stack with scale-down */
.apb-rx-rv-stackwrap{position:relative;width:min(440px,86vw);height:56vh}
.apb-rx-rv-stackcard{position:absolute;left:50%;top:0;width:100%;height:100%;transform:translateX(-50%);z-index:var(--i,1);border-radius:var(--apb-rx-radius,16px);overflow:hidden;padding:26px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;background:#15171d;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.apb-rx-rv-sck{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.apb-rx-rv-stackcard h3{margin:0;color:#fff;font-size:26px}
.apb-rx-rv-stackcard p{margin:0;color:rgba(255,255,255,.75);font-size:14px}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-stackcard{--e:clamp(0,calc(var(--apb-p,0)*var(--n,1) - (var(--i,1) - 1)),1);--st:clamp(0,calc(var(--apb-p,0)*var(--n,1) - var(--i,1)),3);transform:translateX(-50%) translateY(calc((1 - var(--e))*108%)) scale(calc(1 - var(--st)*.04))}

/* orbit: tiles fan out radially from a centre label */
.apb-rx-rv-orbit{position:relative;width:min(600px,86vw);height:64vh}
.apb-rx-rv-orbitc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;z-index:3;color:#fff;font-weight:800;font-size:clamp(22px,3.4vw,40px);max-width:42%}
.apb-rx-rv-orbititem{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;font-size:13px;font-weight:600;white-space:nowrap}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-orbititem{opacity:var(--apb-p,0);transform:translate(-50%,-50%) translate(calc(var(--tx,0)*var(--apb-p,0)*38vmin),calc(var(--ty,0)*var(--apb-p,0)*38vmin))}

/* statsmarquee: stat ticker scrolls sideways */
.apb-rx-scroll--rv-statsmarquee .apb-rx-scroll-stage{display:block}
.apb-rx-scroll--rv-statsmarquee .apb-rx-rv-head{position:absolute;top:6vh;left:7vw;z-index:5;text-align:left}
.apb-rx-rv-smview{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);overflow:hidden}
.apb-rx-rv-smtrack{display:flex;gap:18px;width:max-content;padding:0 6vw}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-smtrack{transform:translateX(calc((100vw - 100%) * var(--apb-p,0)))}
.apb-rx-rv-smchip{display:flex;flex-direction:column;gap:4px;padding:20px 26px;border-radius:var(--apb-rx-radius,16px);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);white-space:nowrap}
.apb-rx-rv-smn{font-size:32px;font-weight:800;color:#fff}
.apb-rx-rv-sml{font-size:12px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.1em}

/* rings: circular progress fills */
.apb-rx-scroll--rv-rings .apb-rx-scroll-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:30px;padding:9vh 6vw}
.apb-rx-rv-rings{display:flex;flex-wrap:wrap;gap:40px;justify-content:center}
.apb-rx-rv-ring{text-align:center}
.apb-rx-rv-ring svg{width:120px;height:120px;transform:rotate(-90deg)}
.apb-rx-rv-rtrack{fill:none;stroke:rgba(255,255,255,.12);stroke-width:10}
.apb-rx-rv-rbar{fill:none;stroke:var(--apb-rx-brand2,#22c55e);stroke-width:10;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--pct,0))}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-rbar{stroke-dashoffset:calc(1 - var(--pct,0)*var(--apb-p,0))}
.apb-rx-rv-rv{display:block;font-size:26px;font-weight:800;color:#fff;margin-top:10px}
.apb-rx-rv-rl{display:block;font-size:12px;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}

@media(max-width:720px){
  .apb-rx-rv-plgrid,.apb-rx-rv-impgrid{grid-template-columns:1fr;height:auto;gap:24px}
  .apb-rx-rv-impview{min-height:30vh}
  .apb-rx-rv-tiltgrid{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-stline{transform:scaleY(1)}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-step,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-plitem,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impitem,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-impcard,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-slrow,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-tiltcard{opacity:1;transform:none}
  .apb-rx-rv-impcard{position:relative}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-peelcard{transform:translateX(-50%);opacity:1;position:relative;height:auto;margin-bottom:14px}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-stackcard{transform:translateX(-50%);position:relative;height:auto;margin-bottom:14px}
  .apb-rx-rv-peelwrap,.apb-rx-rv-stackwrap{height:auto}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-orbititem{position:relative;left:auto;top:auto;transform:none;opacity:1;margin:5px;display:inline-block}
  .apb-rx-rv-orbit{height:auto;text-align:center}
  .apb-rx-rv-orbitc{position:relative;left:auto;top:auto;transform:none;max-width:none;margin-bottom:18px}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-smtrack{transform:none;flex-wrap:wrap}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-rbar{stroke-dashoffset:calc(1 - var(--pct,0))}
}

/* ===== batch 4: media ===== */
/* zoom portal */
.apb-rx-scroll--rv-zoom .apb-rx-scroll-stage{display:grid;place-items:center;background:var(--apb-rx-stage,#000)}
.apb-rx-rv-ztimg{position:absolute;width:36vw;height:46vh;border-radius:20px;overflow:hidden;z-index:2;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.apb-rx-rv-ztimg img{width:100%;height:100%;object-fit:cover}
.apb-rx-rv-ztbehind{position:relative;z-index:3;text-align:center;padding:0 8vw}
.apb-rx-rv-ztbehind h2{margin:0;color:#fff;font-size:clamp(34px,6vw,72px)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ztimg{transform:scale(calc(1 + var(--apb-p,0)*9));opacity:clamp(0,calc(1 - max(0,calc(var(--apb-p,0) - .7))*5.5),1)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ztbehind{opacity:clamp(0,calc((var(--apb-p,0) - .6)*3.5),1)}

/* clip split */
.apb-rx-scroll--rv-clipsplit .apb-rx-scroll-stage,
.apb-rx-scroll--rv-zoom .apb-rx-scroll-stage{isolation:isolate}
.apb-rx-rv-climg{position:absolute;inset:0;z-index:1}
.apb-rx-rv-climg img{width:100%;height:100%;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-climg{clip-path:inset(0 calc((1 - var(--apb-p,0))*50%) 0 calc((1 - var(--apb-p,0))*50%))}
.apb-rx-rv-clseam{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:2;opacity:0}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-clseam{opacity:clamp(0,calc(1 - var(--apb-p,0)*1.4),1)}
.apb-rx-scroll--rv-clipsplit .apb-rx-rv-copy{z-index:4;text-shadow:0 2px 20px rgba(0,0,0,.6)}

/* diagonal wipe */
.apb-rx-scroll--rv-diagwipe .apb-rx-scroll-stage{display:block}
.apb-rx-rv-dgimg{position:absolute;inset:0}
.apb-rx-rv-dgimg img{width:100%;height:100%;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dgimg{clip-path:polygon(0 0,calc(var(--apb-p,0)*160% - 30%) 0,calc(var(--apb-p,0)*160% - 90%) 100%,0 100%)}
.apb-rx-rv-dgcap{position:absolute;left:8vw;bottom:14vh;z-index:3}
.apb-rx-rv-dgcap h2{margin:0;color:#fff;font-size:clamp(28px,4.4vw,56px);text-shadow:0 2px 16px rgba(0,0,0,.7)}

/* ken burns */
.apb-rx-scroll--rv-kenburns .apb-rx-scroll-stage{display:block}
.apb-rx-rv-kbframe{position:absolute;inset:0;overflow:hidden}
.apb-rx-rv-kbframe img{width:100%;height:100%;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-kbframe img{transform:scale(calc(1 + var(--apb-p,0)*.22))}
.apb-rx-rv-kbframe::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.8))}
.apb-rx-rv-kbcaps{position:absolute;left:8vw;bottom:14vh;z-index:3}
.apb-rx-rv-kbcap{position:absolute;left:0;bottom:0;white-space:nowrap}
.apb-rx-rv-kbcap:first-child{opacity:1}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-kbcap{opacity:0;transition:opacity .5s}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-kbcap.is-active{opacity:1}
.apb-rx-rv-kbt{font-size:clamp(26px,4vw,52px);font-weight:800;color:#fff}
.apb-rx-rv-kbs{color:rgba(255,255,255,.8);margin-top:6px}

/* panorama pan */
.apb-rx-scroll--rv-pan .apb-rx-scroll-stage{display:block}
.apb-rx-rv-pnview{position:absolute;inset:0;overflow:hidden}
.apb-rx-rv-pnimg{position:absolute;top:0;left:0;height:100%}
.apb-rx-rv-pnimg img{height:100%;width:auto;max-width:none;display:block}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-pnimg{transform:translateX(calc((100vw - 100%) * var(--apb-p,0)))}
.apb-rx-rv-pncap{position:absolute;left:8vw;bottom:12vh;z-index:3}
.apb-rx-rv-pncap h2{margin:0;color:#fff;font-size:clamp(26px,4vw,52px);text-shadow:0 2px 16px rgba(0,0,0,.7)}

/* paper fold */
.apb-rx-scroll--rv-fold .apb-rx-scroll-stage{display:grid;place-items:center;perspective:1400px}
.apb-rx-rv-fdcard{width:min(560px,86vw);height:58vh;position:relative;transform-style:preserve-3d}
.apb-rx-rv-fdleaf{position:absolute;left:0;right:0;height:50%;overflow:hidden;backface-visibility:hidden}
.apb-rx-rv-fdleaf img{width:100%;height:116%;object-fit:cover}
.apb-rx-rv-fdtop{top:0;transform-origin:bottom;border-radius:16px 16px 0 0}
.apb-rx-rv-fdtop img{object-position:top}
.apb-rx-rv-fdbot{bottom:0;transform-origin:top;border-radius:0 0 16px 16px}
.apb-rx-rv-fdbot img{object-position:bottom;margin-top:-16%}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fdtop{transform:rotateX(calc((1 - var(--apb-p,0))*-92deg))}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fdbot{transform:rotateX(calc((1 - var(--apb-p,0))*92deg))}

/* depth of field */
.apb-rx-scroll--rv-dof .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-rv-dfbg{position:absolute;inset:0}
.apb-rx-rv-dfbg img{width:100%;height:100%;object-fit:cover}
.apb-rx-rv-dfbg::after{content:"";position:absolute;inset:0;background:rgba(9,9,11,.45)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dfbg{filter:blur(calc(var(--apb-p,0)*16px));transform:scale(calc(1 + var(--apb-p,0)*.12))}
.apb-rx-rv-dfcard{position:relative;z-index:3;width:min(520px,86vw);background:rgba(24,24,27,.8);border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:34px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.apb-rx-rv-dfcard h3{margin:0;color:#fff;font-size:clamp(24px,3.4vw,40px)}
.apb-rx-rv-dfcard p{margin:12px 0 0;color:rgba(255,255,255,.8)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dfcard{opacity:clamp(0,calc(var(--apb-p,0)*2.5),1);transform:translateY(calc((1 - clamp(0,calc(var(--apb-p,0)*1.6),1))*40px))}

/* coverflow */
.apb-rx-scroll--rv-coverflow .apb-rx-scroll-stage{display:block;perspective:1400px}
.apb-rx-rv-cfwrap{position:absolute;inset:0;display:grid;place-items:center;transform-style:preserve-3d}
.apb-rx-rv-cfcard{position:absolute;width:min(300px,60vw);height:48vh;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);background:#15171d}
.apb-rx-rv-cfcard img{width:100%;height:100%;object-fit:cover}
.apb-rx-rv-cfcap{position:absolute;left:16px;bottom:14px;color:#fff;font-weight:700;text-shadow:0 2px 12px rgba(0,0,0,.7)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-cfcard{--d2:calc((var(--i,1) - 1) - var(--apb-p,0)*(var(--n,1) - 1));--ad:max(var(--d2),calc(var(--d2)*-1));transform:translateX(calc(var(--d2)*52%)) rotateY(clamp(-60deg,calc(var(--d2)*-42deg),60deg)) scale(calc(1 - var(--ad)*.12));opacity:clamp(.2,calc(1.2 - var(--ad)*.45),1);z-index:calc(100 - var(--ad)*10)}

/* grid clip-up */
.apb-rx-scroll--rv-gridclip .apb-rx-scroll-stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;padding:9vh 6vw}
.apb-rx-rv-gcgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:min(880px,92vw)}
.apb-rx-rv-gctile{aspect-ratio:1;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.06)}
.apb-rx-rv-gctile img{width:100%;height:100%;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-gctile{--e:clamp(0,calc(var(--apb-p,0)*6 - var(--d,0)),1);clip-path:inset(calc((1 - var(--e))*100%) 0 0 0);transform:translateY(calc((1 - var(--e))*14px))}

/* photo mosaic */
.apb-rx-scroll--rv-mosaic .apb-rx-scroll-stage{display:grid;place-items:center}
.apb-rx-rv-mowrap{position:relative;width:min(640px,86vw,104vh);aspect-ratio:4/3;border-radius:24px;overflow:hidden}
.apb-rx-rv-motile{position:absolute;width:25%;height:25%;overflow:hidden}
.apb-rx-rv-motile img{position:absolute;width:400%;height:400%;max-width:none;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-motile{--e:clamp(0,calc(var(--apb-p,0)*6 - var(--d,0)),1);opacity:var(--e);transform:scale(calc(.6 + .4*var(--e)))}

/* expanding fan */
.apb-rx-scroll--rv-fan .apb-rx-scroll-stage{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#161614,#09090b)}
.apb-rx-rv-fanstack{position:relative;width:38vw;height:80vh;z-index:2}
.apb-rx-rv-fancard,.apb-rx-rv-fanback{position:absolute;top:50%;left:50%;height:74vh;border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.55)}
.apb-rx-rv-fancard{width:38vw;transform:translate(-50%,-50%);z-index:3}
.apb-rx-rv-fancard img{width:100%;height:100%;object-fit:cover}
.apb-rx-rv-fanback{width:42vw;transform:translate(-50%,-50%);opacity:0}
.apb-rx-rv-fanl{background:linear-gradient(160deg,color-mix(in srgb,var(--apb-rx-brand,#6d28d9) 70%,#3a2a1a),color-mix(in srgb,var(--apb-rx-brand,#6d28d9) 25%,#0c0c0f))}
.apb-rx-rv-fanr{background:linear-gradient(160deg,#2a2a2e,#0c0c0f)}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fanl{opacity:var(--apb-p,0);transform:translate(-50%,-50%) translateX(calc(var(--apb-p,0)*-34vw)) rotate(calc(var(--apb-p,0)*-9deg))}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fanr{opacity:var(--apb-p,0);transform:translate(-50%,-50%) translateX(calc(var(--apb-p,0)*34vw)) rotate(calc(var(--apb-p,0)*9deg))}
.apb-rx-rv-fanintro{position:absolute;left:6vw;top:50%;transform:translateY(-50%);max-width:30vw;z-index:4}
.apb-rx-rv-fanintro h2{margin:0;color:#fff;font-size:clamp(28px,4vw,56px)}
.apb-rx-rv-fanintro .apb-rx-eyebrow{color:rgba(255,255,255,.7);margin:0 0 8px}

/* floating hero tiles */
.apb-rx-scroll--rv-herofloat .apb-rx-scroll-stage{display:grid;place-items:center;overflow:hidden}
.apb-rx-rv-hfmsg{position:relative;z-index:5;text-align:center;max-width:760px;padding:0 6vw}
.apb-rx-rv-hfmsg h2{margin:0;color:#fff;font-size:clamp(32px,6vw,76px);font-weight:800}
.apb-rx-rv-hfmsg p{margin:16px auto 0;color:rgba(255,255,255,.78);max-width:46ch}
.apb-rx-rv-hftile{position:absolute;z-index:2;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:translate(-50%,-50%)}
.apb-rx-rv-hftile img{width:100%;height:100%;object-fit:cover}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hftile{--e:clamp(0,calc(var(--apb-p,0)*1.7 - var(--d,0)*.6),1);opacity:var(--e);transform:translate(-50%,-50%) translateX(calc((1 - var(--e))*var(--side,1)*70vw)) rotate(calc((1 - var(--e))*var(--side,1)*-6deg))}

/* horizontal text panels */
.apb-rx-scroll--rv-hpanels .apb-rx-scroll-stage{display:block}
.apb-rx-rv-hpview{position:absolute;inset:0;overflow:hidden}
.apb-rx-rv-hptrack{display:flex;height:100%;width:100%}
.apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hptrack{transform:translateX(calc(var(--apb-p,0)*(var(--n,1) - 1)*-100%))}
.apb-rx-rv-hppanel{flex:0 0 100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 10vw;position:relative}
.apb-rx-rv-hpbig{font-size:clamp(48px,10vw,150px);font-weight:800;opacity:.16;position:absolute;top:8vh}
.apb-rx-rv-hpey{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.apb-rx-rv-hppanel h3{margin:8px 0 0;color:#fff;font-size:clamp(26px,4vw,48px)}
.apb-rx-rv-hppanel p{margin:12px 0 0;color:rgba(255,255,255,.78);max-width:46ch}

@media(max-width:720px){
  .apb-rx-rv-fanstack{width:64vw}
  .apb-rx-rv-fancard{width:64vw}
  .apb-rx-rv-fanintro{position:static;transform:none;max-width:none;text-align:center;margin-bottom:24px}
  .apb-rx-rv-gcgrid{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ztimg{transform:none;opacity:1}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-ztbehind{opacity:1}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-climg,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dgimg{clip-path:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-kbframe img{transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-pnimg{transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fdtop,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fdbot{transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dfbg{filter:none;transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-dfcard{opacity:1;transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-gctile{clip-path:none;transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-motile{opacity:1;transform:none}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fanl,
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-fanr{opacity:0}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hftile{opacity:1;transform:translate(-50%,-50%)}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-hptrack{transform:none;flex-direction:column;height:auto}
  .apb-rx-rv-hppanel{min-height:60vh}
  .apb-rx-scroll[data-apb-scroll-ready] .apb-rx-rv-cfcard{position:relative;transform:none;opacity:1;width:60vw;height:30vh;margin:8px}
  .apb-rx-rv-cfwrap{position:relative;flex-wrap:wrap;gap:12px;display:flex}
}
/* ==== assets/pages/component-animated.css ==== */
/*
 * recipe-animated.css — styling for Lane A animated-image recipes (APB_Section_Recipes_Animated).
 * Every section is FAIL-OPEN: the default rules render a usable static gallery with zero JS. The
 * enhanced rules are scoped under [data-apb-anim-on], a flag each behavior module sets ONLY when it
 * actually takes over (not when it bails for reduced-motion) — so without JS, with the module blocked,
 * OR under prefers-reduced-motion, the static layout is what ships.
 * apb-anim-* namespace; tokens fall back to safe literals so this works on any recipe page.
 */
.apb-anim{--an-radius:var(--apb-rx-radius,14px);--an-gap:16px;--an-card:clamp(220px,28vw,340px)}
.apb-anim .apb-anim-head{max-width:62ch;margin:0 auto clamp(20px,4vh,40px);text-align:center}
.apb-anim .apb-anim-head h2{font-size:clamp(24px,3.4vw,40px);font-weight:700;letter-spacing:-.02em;margin:0}
.apb-anim .apb-anim-head .apb-rx-eyebrow{margin:0 0 8px}
.apb-anim img{display:block;width:100%;height:100%;object-fit:cover}

/* ============ COVERFLOW ============ */
.apb-anim--coverflow .apb-anim-stage{position:relative}
/* static fallback: horizontal scroll-snap row */
.apb-anim--coverflow .apb-anim-track{display:flex;gap:var(--an-gap);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:8px 0;-webkit-overflow-scrolling:touch}
.apb-anim--coverflow .apb-anim-card{flex:0 0 var(--an-card);aspect-ratio:3/4;scroll-snap-align:center;position:relative;
  margin:0;border-radius:var(--an-radius);overflow:hidden;border:1px solid var(--apb-rx-line,rgba(0,0,0,.08));box-shadow:0 18px 50px rgba(0,0,0,.22)}
.apb-anim--coverflow .apb-anim-card figcaption{position:absolute;left:16px;right:16px;bottom:14px;z-index:2;color:#fff;
  font-weight:600;font-size:15px;text-shadow:0 2px 12px rgba(0,0,0,.8)}
.apb-anim--coverflow .apb-anim-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.6))}
.apb-anim .apb-anim-ctrl{display:none;justify-content:center;gap:10px;margin-top:24px}
.apb-anim .apb-anim-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--apb-rx-line,rgba(0,0,0,.14));background:var(--apb-rx-surface,#fff);
  color:inherit;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:transform .15s,box-shadow .2s}
.apb-anim .apb-anim-btn:hover{box-shadow:0 6px 18px rgba(0,0,0,.16)}
.apb-anim .apb-anim-btn:active{transform:scale(.92)}
/* enhanced: 3D coverflow — JS positions cards absolutely */
.apb-anim--coverflow[data-apb-anim-on] .apb-anim-stage{height:clamp(340px,50vh,540px);perspective:1600px;cursor:grab}
.apb-anim--coverflow[data-apb-anim-on] .apb-anim-stage.is-grabbing{cursor:grabbing}
.apb-anim--coverflow[data-apb-anim-on] .apb-anim-track{position:absolute;inset:0;display:block;overflow:visible;
  transform-style:preserve-3d;padding:0}
.apb-anim--coverflow[data-apb-anim-on] .apb-anim-card{position:absolute;top:50%;left:50%;width:var(--an-card);
  flex:none;will-change:transform,opacity}
.apb-anim--coverflow[data-apb-anim-on] .apb-anim-ctrl{display:flex}

/* ============ MARQUEE GALLERY ============ */
.apb-anim--marquee .apb-anim-mq{display:flex;flex-direction:column;gap:var(--an-gap);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.apb-anim--marquee .apb-anim-mq-row{display:flex;gap:var(--an-gap);width:max-content}
.apb-anim--marquee .apb-anim-mq-cell{flex:0 0 auto;width:clamp(200px,24vw,300px);aspect-ratio:16/10;border-radius:var(--an-radius);
  overflow:hidden;border:1px solid var(--apb-rx-line,rgba(0,0,0,.08))}
/* static fallback: a scrollable strip (no animation) */
.apb-anim--marquee .apb-anim-mq{overflow-x:auto}
/* enhanced: seamless opposed scroll */
.apb-anim--marquee[data-apb-anim-on] .apb-anim-mq{overflow:hidden}
.apb-anim--marquee[data-apb-anim-on] .apb-anim-mq-row[data-apb-anim-mq="fwd"]{animation:apb-anim-mqL 42s linear infinite}
.apb-anim--marquee[data-apb-anim-on] .apb-anim-mq-row[data-apb-anim-mq="rev"]{animation:apb-anim-mqR 48s linear infinite}
.apb-anim--marquee[data-apb-anim-on].is-paused .apb-anim-mq-row{animation-play-state:paused}
.apb-anim--marquee[data-apb-anim-on] .apb-anim-mq:hover .apb-anim-mq-row{animation-play-state:paused}
@keyframes apb-anim-mqL{to{transform:translateX(-50%)}}
@keyframes apb-anim-mqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ============ BEFORE / AFTER ============ */
.apb-anim--beforeafter .apb-anim-ba{position:relative;border-radius:var(--an-radius);overflow:hidden;
  border:1px solid var(--apb-rx-line,rgba(0,0,0,.1));height:clamp(320px,52vh,560px);-webkit-user-select:none;user-select:none}
.apb-anim--beforeafter .apb-anim-ba-img{position:absolute;inset:0}
.apb-anim--beforeafter .apb-anim-ba-after{clip-path:inset(0 0 0 50%)} /* static: split at centre */
.apb-anim--beforeafter .apb-anim-ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:3;
  box-shadow:0 0 14px rgba(0,0,0,.5)}
.apb-anim--beforeafter .apb-anim-ba-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;
  border-radius:50%;background:rgba(15,15,17,.7);border:1px solid #fff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}
.apb-anim--beforeafter .apb-anim-ba-tag{position:absolute;bottom:16px;z-index:4;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;background:rgba(15,15,17,.6);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:6px 13px}
.apb-anim--beforeafter .apb-anim-ba-tag--l{left:16px}.apb-anim--beforeafter .apb-anim-ba-tag--r{right:16px}
.apb-anim--beforeafter[data-apb-anim-on] .apb-anim-ba{cursor:ew-resize}

/* ============ SPOTLIGHT ============ */
.apb-anim--spotlight .apb-anim-sp{position:relative;border-radius:var(--an-radius);overflow:hidden;
  border:1px solid var(--apb-rx-line,rgba(0,0,0,.1));height:clamp(340px,56vh,600px)}
.apb-anim--spotlight .apb-anim-sp-base,.apb-anim--spotlight .apb-anim-sp-reveal{position:absolute;inset:0}
/* static fallback: just show the full-colour image (reveal layer on top, no mask) */
.apb-anim--spotlight .apb-anim-sp-base{display:none}
.apb-anim--spotlight .apb-anim-sp-cap{position:absolute;left:clamp(20px,4vw,44px);bottom:clamp(22px,4vh,48px);z-index:3;color:#fff;
  max-width:42ch;text-shadow:0 2px 16px rgba(0,0,0,.85)}
.apb-anim--spotlight .apb-anim-sp-cap h3{font-size:clamp(22px,3.2vw,38px);font-weight:800;margin:0}
.apb-anim--spotlight .apb-anim-sp-cap p{margin:6px 0 0;color:#e4e4e7}
/* enhanced: duotone base + masked reveal beam (JS drives the mask position) */
.apb-anim--spotlight[data-apb-anim-on] .apb-anim-sp-base{display:block}
.apb-anim--spotlight[data-apb-anim-on] .apb-anim-sp-base img{filter:grayscale(1) brightness(.34) contrast(1.05)}
.apb-anim--spotlight[data-apb-anim-on] .apb-anim-sp-reveal{
  -webkit-mask-image:radial-gradient(circle 150px at 50% 50%,#000 0,#000 60%,transparent 72%);
  mask-image:radial-gradient(circle 150px at 50% 50%,#000 0,#000 60%,transparent 72%);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;will-change:-webkit-mask-position,mask-position}

/* ============ DOCK MAGNIFY ============ */
.apb-anim--dock .apb-anim-dock{overflow-x:auto;-webkit-overflow-scrolling:touch}
.apb-anim--dock .apb-anim-dock-rail{display:flex;align-items:center;gap:14px;padding:30px 6vw;width:max-content;margin:0 auto}
.apb-anim--dock .apb-anim-dock-item{flex:0 0 auto;width:clamp(90px,11vw,150px);aspect-ratio:3/4;border-radius:var(--an-radius);
  overflow:hidden;border:1px solid var(--apb-rx-line,rgba(0,0,0,.1));transform-origin:center bottom;box-shadow:0 14px 40px rgba(0,0,0,.2)}
.apb-anim--dock[data-apb-anim-on] .apb-anim-dock{overflow:hidden;cursor:none}
.apb-anim--dock[data-apb-anim-on] .apb-anim-dock-item{will-change:transform}

@media (prefers-reduced-motion:reduce){
  .apb-anim--marquee[data-apb-anim-on] .apb-anim-mq-row{animation:none}
}
@media (max-width:760px){
  .apb-anim{--an-card:clamp(180px,62vw,240px)}
}
/* ==== assets/pages/component-animated-2.css ==== */
/*
 * recipe-animated-2.css — styling for the extended Lane A animated-image recipes (batches 2-4).
 * Same contract as recipe-animated.css: every recipe is FAIL-OPEN (static layout with zero JS); the
 * enhanced rules are scoped under [data-apb-anim-on], the flag each behavior module sets ONLY when it
 * takes over (never under reduced-motion). apb-anim-* namespace; tokens from recipe-animated.css.
 */

/* ============ shared slideshow base (token: slideshow) ============ */
.apb-anim-show{position:relative;border-radius:var(--an-radius,14px);overflow:hidden;height:clamp(320px,54vh,560px);background:#0b0d12}
.apb-anim-slide{position:absolute;inset:0;margin:0;opacity:0}
.apb-anim-slide:first-child{opacity:1} /* static fallback: first slide */
.apb-anim-slide figcaption{position:absolute;left:18px;bottom:16px;z-index:3;color:#fff;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.85)}
[data-apb-anim-on] .apb-anim-slide{opacity:0;transition:opacity .8s ease}
[data-apb-anim-on] .apb-anim-slide.is-active{opacity:1}
/* per-recipe transitions (active slide enters its own way) */
.apb-anim--kenburns .apb-anim-show,.apb-anim--cube .apb-anim-show,.apb-anim--fliptile .apb-anim-show,.apb-anim--tunnel .apb-anim-show,.apb-anim--origami .apb-anim-show{perspective:1400px}
[data-apb-anim-on].apb-anim--kenburns .apb-anim-slide.is-active img{animation:apb-anim-kb 6s ease-out forwards}
@keyframes apb-anim-kb{from{transform:scale(1)}to{transform:scale(1.14) translate(-2%,1%)}}
[data-apb-anim-on].apb-anim--clockwipe .apb-anim-slide.is-active{animation:apb-anim-cw .85s ease forwards}
@keyframes apb-anim-cw{from{clip-path:circle(0% at 50% 50%)}to{clip-path:circle(75% at 50% 50%)}}
[data-apb-anim-on].apb-anim--cube .apb-anim-slide{transform-style:preserve-3d;backface-visibility:hidden}
[data-apb-anim-on].apb-anim--cube .apb-anim-slide.is-active{animation:apb-anim-cube .8s ease forwards}
@keyframes apb-anim-cube{from{transform:rotateY(90deg)}to{transform:rotateY(0)}}
[data-apb-anim-on].apb-anim--venetian .apb-anim-slide.is-active{animation:apb-anim-wipe .85s ease forwards}
.apb-anim--venetian .apb-anim-slide::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 2px,transparent 2px 16px)}
@keyframes apb-anim-wipe{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
[data-apb-anim-on].apb-anim--shutter .apb-anim-slide.is-active{animation:apb-anim-shutter .8s ease forwards}
@keyframes apb-anim-shutter{from{clip-path:inset(50% 0 50% 0)}to{clip-path:inset(0 0 0 0)}}
[data-apb-anim-on].apb-anim--fliptile .apb-anim-slide{transform-style:preserve-3d}
[data-apb-anim-on].apb-anim--fliptile .apb-anim-slide.is-active{animation:apb-anim-fliptile .8s ease forwards}
@keyframes apb-anim-fliptile{from{transform:rotateX(-90deg)}to{transform:rotateX(0)}}
[data-apb-anim-on].apb-anim--glitch .apb-anim-slide.is-active{animation:apb-anim-glitch .55s steps(2) forwards}
@keyframes apb-anim-glitch{0%{opacity:1;filter:none;transform:translateX(0)}25%{filter:drop-shadow(5px 0 rgba(255,0,40,.8)) drop-shadow(-5px 0 rgba(0,200,255,.8));transform:translateX(-5px)}50%{transform:translateX(5px)}100%{filter:none;transform:none}}
[data-apb-anim-on].apb-anim--assemble .apb-anim-slide.is-active{animation:apb-anim-assemble .7s ease forwards}
@keyframes apb-anim-assemble{from{filter:blur(16px);transform:scale(1.1)}to{filter:blur(0);transform:none}}
[data-apb-anim-on].apb-anim--origami .apb-anim-slide{transform-origin:top}
[data-apb-anim-on].apb-anim--origami .apb-anim-slide.is-active{animation:apb-anim-origami .8s ease forwards}
@keyframes apb-anim-origami{from{transform:rotateX(-85deg)}to{transform:rotateX(0)}}
[data-apb-anim-on].apb-anim--tunnel .apb-anim-slide.is-active{animation:apb-anim-tunnel .8s ease forwards}
@keyframes apb-anim-tunnel{from{transform:translateZ(-700px) scale(.5);opacity:0}to{transform:translateZ(0) scale(1);opacity:1}}
.apb-anim--polaroid .apb-anim-show{background:#15171d}
.apb-anim--polaroid .apb-anim-slide{inset:auto;left:50%;top:50%;width:58%;height:68%;border:10px solid #fff;border-bottom-width:38px;border-radius:4px;box-shadow:0 18px 44px rgba(0,0,0,.45);transform:translate(-50%,-50%) rotate(calc((var(--i,0) - 2)*5deg))}
[data-apb-anim-on].apb-anim--polaroid .apb-anim-slide{opacity:1;z-index:1}
[data-apb-anim-on].apb-anim--polaroid .apb-anim-slide.is-active{z-index:5;animation:apb-anim-deal .6s ease}
@keyframes apb-anim-deal{from{transform:translate(-50%,-150%) rotate(18deg)}to{transform:translate(-50%,-50%) rotate(calc((var(--i,0) - 2)*5deg))}}

/* ============ ring (token: css-loop) ============ */
.apb-anim--ring .apb-anim-ring-spin{display:flex;gap:var(--an-gap,16px);overflow-x:auto;padding:8px 0}
.apb-anim--ring .apb-anim-ring-card{flex:0 0 200px;height:260px;border-radius:var(--an-radius,14px);overflow:hidden;margin:0}
[data-apb-anim-on].apb-anim--ring .apb-anim-ring{height:clamp(320px,50vh,520px);display:grid;place-items:center;perspective:1200px}
[data-apb-anim-on].apb-anim--ring .apb-anim-ring-spin{position:relative;width:200px;height:260px;display:block;overflow:visible;transform-style:preserve-3d;animation:apb-anim-spin 30s linear infinite}
[data-apb-anim-on].apb-anim--ring .apb-anim-ring-card{position:absolute;inset:0;flex:none;transform:rotateY(calc(var(--i)/var(--n)*360deg)) translateZ(330px);backface-visibility:hidden;box-shadow:0 14px 44px rgba(0,0,0,.4)}
[data-apb-anim-on].apb-anim--ring.is-paused .apb-anim-ring-spin{animation-play-state:paused}
@keyframes apb-anim-spin{to{transform:rotateY(360deg)}}

/* ============ orbit (token: css-loop) ============ */
.apb-anim--orbit .apb-anim-orbit{display:flex;flex-wrap:wrap;gap:var(--an-gap,16px);justify-content:center}
.apb-anim--orbit .apb-anim-orbit-item{flex:0 0 110px;height:110px;border-radius:50%;overflow:hidden;margin:0}
[data-apb-anim-on].apb-anim--orbit .apb-anim-orbit{position:relative;height:clamp(340px,52vh,520px);display:block;animation:apb-anim-spin 34s linear infinite}
[data-apb-anim-on].apb-anim--orbit .apb-anim-orbit-item{position:absolute;top:50%;left:50%;width:92px;height:92px;flex:none;transform:translate(-50%,-50%) rotate(calc(var(--i)/var(--n)*360deg)) translateY(clamp(-200px,-24vh,-150px))}
[data-apb-anim-on].apb-anim--orbit.is-paused .apb-anim-orbit{animation-play-state:paused}

/* ============ duotone wave (token: css-loop) ============ */
.apb-anim--duotone .apb-anim-duo{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.apb-anim--duotone .apb-anim-duo-cell{aspect-ratio:1;border-radius:8px;overflow:hidden;margin:0}
[data-apb-anim-on].apb-anim--duotone .apb-anim-duo-cell{animation:apb-anim-wave 3.2s ease-in-out infinite;animation-delay:calc(var(--i)*-.12s)}
[data-apb-anim-on].apb-anim--duotone .apb-anim-duo-cell img{filter:saturate(.55) contrast(1.1)}
[data-apb-anim-on].apb-anim--duotone.is-paused .apb-anim-duo-cell{animation-play-state:paused}
@keyframes apb-anim-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ============ badge (token: css-loop) ============ */
.apb-anim--badge .apb-anim-badge{position:relative;width:min(360px,80vw);aspect-ratio:1;margin:0 auto;color:#fff}
.apb-anim--badge .apb-anim-badge-img{position:absolute;inset:20%;border-radius:50%;overflow:hidden}
.apb-anim--badge .apb-anim-badge-disc{position:absolute;inset:0}
.apb-anim--badge .apb-anim-badge-disc span{position:absolute;left:50%;top:50%;font-weight:700;font-size:14px;letter-spacing:.04em;
  transform:rotate(calc(var(--i)/var(--n)*360deg)) translateY(clamp(-178px,-40vw,-130px))}
[data-apb-anim-on].apb-anim--badge .apb-anim-badge-disc{animation:apb-anim-spin 18s linear infinite}
[data-apb-anim-on].apb-anim--badge.is-paused .apb-anim-badge-disc{animation-play-state:paused}

/* ============ droste zoom (token: css-loop) ============ */
.apb-anim--droste .apb-anim-droste{position:relative;width:min(560px,86vw);aspect-ratio:4/3;margin:0 auto;border-radius:var(--an-radius,14px);overflow:hidden}
.apb-anim--droste .apb-anim-droste-layer{position:absolute;inset:0;opacity:0}
.apb-anim--droste .apb-anim-droste-layer:first-child{opacity:1}
.apb-anim--droste .apb-anim-droste-cap{position:absolute;left:24px;bottom:20px;z-index:6;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.8)}
[data-apb-anim-on].apb-anim--droste .apb-anim-droste-layer{opacity:1;animation:apb-anim-droste 8s linear infinite;animation-delay:calc(var(--i)*-1.6s)}
[data-apb-anim-on].apb-anim--droste.is-paused .apb-anim-droste-layer{animation-play-state:paused}
@keyframes apb-anim-droste{0%{transform:scale(.25);opacity:0}12%{opacity:1}100%{transform:scale(3);opacity:0}}

/* ============ floating collage (token: css-loop) ============ */
.apb-anim--collage .apb-anim-collage{position:relative;height:clamp(360px,56vh,560px)}
.apb-anim--collage .apb-anim-collage-item{position:absolute;transform:translate(-50%,-50%) rotate(var(--rot,0deg));aspect-ratio:4/3;border-radius:var(--an-radius,14px);overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.32);margin:0}
[data-apb-anim-on].apb-anim--collage .apb-anim-collage-item{animation:apb-anim-float 6s ease-in-out infinite;animation-delay:calc(var(--i)*-.7s)}
[data-apb-anim-on].apb-anim--collage.is-paused .apb-anim-collage-item{animation-play-state:paused}
@keyframes apb-anim-float{0%,100%{transform:translate(-50%,-50%) rotate(var(--rot,0deg))}50%{transform:translate(-50%,calc(-50% - 16px)) rotate(var(--rot,0deg))}}

/* ============ auto-scroll row / filmstrip (token: marquee-gallery) ============ */
.apb-anim--hoverrow .apb-anim-strip,.apb-anim--filmstrip .apb-anim-strip{overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.apb-anim-strip-row{display:flex;gap:var(--an-gap,16px);width:max-content}
.apb-anim-strip-cell{flex:0 0 auto;width:clamp(200px,24vw,300px);aspect-ratio:16/10;border-radius:var(--an-radius,14px);overflow:hidden;position:relative;margin:0}
.apb-anim-strip-cell figcaption{position:absolute;left:12px;bottom:10px;color:#fff;font-size:13px;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.8)}
[data-apb-anim-on].apb-anim--hoverrow .apb-anim-strip,[data-apb-anim-on].apb-anim--filmstrip .apb-anim-strip{overflow:hidden}
[data-apb-anim-on].apb-anim--hoverrow .apb-anim-strip-row,[data-apb-anim-on].apb-anim--filmstrip .apb-anim-strip-row{animation:apb-anim-mqL 40s linear infinite}
[data-apb-anim-on].is-paused .apb-anim-strip-row{animation-play-state:paused}
[data-apb-anim-on].apb-anim--hoverrow .apb-anim-strip:hover .apb-anim-strip-row{animation-play-state:paused}
.apb-anim--filmstrip .apb-anim-strip{-webkit-mask-image:radial-gradient(120% 100% at 50% 50%,#000 36%,rgba(0,0,0,.25) 70%);mask-image:radial-gradient(120% 100% at 50% 50%,#000 36%,rgba(0,0,0,.25) 70%)}

/* ============ liquid blob (token: css-loop) ============ */
.apb-anim--blob .apb-anim-blob{position:relative;width:min(560px,86vw);aspect-ratio:1;margin:0 auto;color:#fff}
.apb-anim--blob .apb-anim-blob-img{position:absolute;inset:0;border-radius:46% 54% 43% 57%/52% 44% 56% 48%;overflow:hidden}
.apb-anim--blob .apb-anim-blob-cap{position:absolute;left:8%;bottom:8%;z-index:3;max-width:60%;text-shadow:0 2px 16px rgba(0,0,0,.85)}
.apb-anim--blob .apb-anim-blob-cap h3{margin:0;font-size:clamp(22px,3vw,34px);font-weight:800}
[data-apb-anim-on].apb-anim--blob .apb-anim-blob-img{animation:apb-anim-blob 9s ease-in-out infinite}
[data-apb-anim-on].apb-anim--blob.is-paused .apb-anim-blob-img{animation-play-state:paused}
@keyframes apb-anim-blob{0%,100%{border-radius:46% 54% 43% 57%/52% 44% 56% 48%}33%{border-radius:60% 40% 55% 45%/45% 60% 40% 55%}66%{border-radius:40% 60% 50% 50%/60% 40% 55% 45%}}

/* ============ expanding panels (token: css-loop) ============ */
.apb-anim--accordion .apb-anim-acc{display:flex;gap:8px;height:clamp(320px,48vh,460px)}
.apb-anim--accordion .apb-anim-acc-panel{position:relative;flex:1;border-radius:var(--an-radius,14px);overflow:hidden;margin:0}
.apb-anim--accordion .apb-anim-acc-panel figcaption{position:absolute;left:14px;bottom:14px;color:#fff;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.8)}
[data-apb-anim-on].apb-anim--accordion .apb-anim-acc-panel{transition:flex .5s cubic-bezier(.2,.7,.2,1)}
[data-apb-anim-on].apb-anim--accordion .apb-anim-acc:hover .apb-anim-acc-panel{flex:.6}
[data-apb-anim-on].apb-anim--accordion .apb-anim-acc-panel:hover{flex:3}

/* ============ radial fan deck (token: css-loop) ============ */
.apb-anim--fandeck .apb-anim-fan{position:relative;height:clamp(320px,48vh,460px);display:grid;place-items:center}
.apb-anim--fandeck .apb-anim-fan-card{position:absolute;width:clamp(150px,22vw,210px);aspect-ratio:3/4;border-radius:var(--an-radius,14px);overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.35);transform-origin:bottom center;margin:0}
[data-apb-anim-on].apb-anim--fandeck .apb-anim-fan-card{animation:apb-anim-fan 6s ease-in-out infinite}
[data-apb-anim-on].apb-anim--fandeck.is-paused .apb-anim-fan-card{animation-play-state:paused}
@keyframes apb-anim-fan{0%,100%{transform:rotate(0) translateY(0)}50%{transform:rotate(calc((var(--i) - var(--n)/2)*14deg)) translateY(-8px)}}

/* ============ marquee variants (token: marquee-gallery) ============ */
.apb-anim--mq-diagonal .apb-anim-mq{transform:rotate(-7deg) scale(1.14)}
.apb-anim--mq-vertical[data-apb-anim-on] .apb-anim-mq{flex-direction:row;height:clamp(360px,60vh,560px);
  -webkit-mask-image:linear-gradient(0deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(0deg,transparent,#000 8%,#000 92%,transparent)}
.apb-anim--mq-vertical .apb-anim-mq-row{flex-direction:column;width:auto;height:max-content}
.apb-anim--mq-vertical[data-apb-anim-on] .apb-anim-mq-row[data-apb-anim-mq="fwd"]{animation:apb-anim-mqU 42s linear infinite}
.apb-anim--mq-vertical[data-apb-anim-on] .apb-anim-mq-row[data-apb-anim-mq="rev"]{animation:apb-anim-mqD 48s linear infinite}
@keyframes apb-anim-mqU{to{transform:translateY(-50%)}}
@keyframes apb-anim-mqD{from{transform:translateY(-50%)}to{transform:translateY(0)}}

/* ============ swipe deck (token: swipe-deck) ============ */
.apb-anim--swipedeck .apb-anim-swipe{position:relative;height:clamp(360px,54vh,520px);display:grid;place-items:center}
.apb-anim--swipedeck .apb-anim-swipe-card{position:absolute;top:50%;left:50%;width:clamp(240px,32vw,340px);aspect-ratio:3/4;border-radius:var(--an-radius,14px);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.42);transform:translate(-50%,-50%);margin:0;background:#15171d;z-index:1}
.apb-anim--swipedeck .apb-anim-swipe-card:first-child{z-index:2} /* static fallback: first card on top */
.apb-anim--swipedeck .apb-anim-swipe-card figcaption{position:absolute;left:16px;bottom:14px;color:#fff;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.8)}
[data-apb-anim-on].apb-anim--swipedeck .apb-anim-swipe{cursor:grab;touch-action:pan-y}
[data-apb-anim-on].apb-anim--swipedeck .apb-anim-swipe-card{transition:transform .3s ease,opacity .3s;will-change:transform}

/* ============ tilt spotlight grid (token: tilt-grid) ============ */
.apb-anim--tiltgrid .apb-anim-tilt{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--an-gap,16px)}
.apb-anim--tiltgrid .apb-anim-tilt-cell{position:relative;aspect-ratio:1;border-radius:var(--an-radius,14px);overflow:hidden;margin:0}
.apb-anim--tiltgrid .apb-anim-tilt-cell figcaption{position:absolute;left:12px;bottom:10px;color:#fff;font-size:13px;font-weight:600;text-shadow:0 2px 10px rgba(0,0,0,.8)}
[data-apb-anim-on].apb-anim--tiltgrid .apb-anim-tilt{perspective:900px}
[data-apb-anim-on].apb-anim--tiltgrid .apb-anim-tilt-cell{transition:transform .15s ease;transform:rotateY(calc(var(--mx,0)*16deg)) rotateX(calc(var(--my,0)*-16deg))}
[data-apb-anim-on].apb-anim--tiltgrid .apb-anim-tilt-cell:hover{transform:rotateY(calc(var(--mx,0)*16deg)) rotateX(calc(var(--my,0)*-16deg)) scale(1.06)}

/* ============ poster wall (token: poster-wall) ============ */
.apb-anim--posterwall .apb-anim-wall{position:relative;height:clamp(380px,60vh,620px);overflow:auto;border-radius:var(--an-radius,14px);background:#0b0d12}
.apb-anim--posterwall .apb-anim-wall-track{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;padding:12px;width:max-content}
.apb-anim--posterwall .apb-anim-wall-cell{aspect-ratio:3/4;border-radius:10px;overflow:hidden;margin:0}
[data-apb-anim-on].apb-anim--posterwall .apb-anim-wall{overflow:hidden;cursor:grab}
[data-apb-anim-on].apb-anim--posterwall .apb-anim-wall.is-grabbing{cursor:grabbing}
[data-apb-anim-on].apb-anim--posterwall .apb-anim-wall-track{will-change:transform}

/* ============ cursor trail (token: cursor-trail) ============ */
.apb-anim--cursortrail .apb-anim-cursor{position:relative;min-height:clamp(360px,56vh,560px);border-radius:var(--an-radius,14px);overflow:hidden;background:#0b0d12}
.apb-anim--cursortrail .apb-anim-cursor-bg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px}
.apb-anim--cursortrail .apb-anim-cursor-tile{aspect-ratio:1;border-radius:8px;overflow:hidden;margin:0}
.apb-anim--cursortrail .apb-anim-cursor-trail{position:absolute;width:160px;height:200px;object-fit:cover;border-radius:12px;transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;will-change:transform,opacity;z-index:2}
[data-apb-anim-on].apb-anim--cursortrail .apb-anim-cursor{cursor:crosshair}
[data-apb-anim-on].apb-anim--cursortrail .apb-anim-cursor-bg{opacity:.18;filter:grayscale(1)}
[data-apb-anim-on].apb-anim--cursortrail .apb-anim-cursor-trail.is-pop{animation:apb-anim-pop .9s ease-out forwards}
@keyframes apb-anim-pop{0%{opacity:.95;transform:translate(-50%,-50%) scale(.5)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.1)}}

@media (max-width:760px){
  .apb-anim--duotone .apb-anim-duo{grid-template-columns:repeat(4,1fr)}
  .apb-anim--tiltgrid .apb-anim-tilt{grid-template-columns:repeat(2,1fr)}
  .apb-anim--accordion .apb-anim-acc{flex-direction:column;height:auto}
}

/* motion safety: neutralise the JS-triggered slide/transition animations under reduced motion
   (defence-in-depth — the behavior registry already honours reduce; this covers the CSS path).
   [class*="apb-anim--"] keeps specificity above the per-variant animation rules so no !important is needed. */
@media (prefers-reduced-motion:reduce){
  [data-apb-anim-on][class*="apb-anim--"] .apb-anim-slide.is-active,
  [data-apb-anim-on][class*="apb-anim--"] .apb-anim-slide.is-active img{animation:none}
}
/* ==== assets/pages/component-custom.css ==== */
/*
 * recipe-custom.css — the custom_html section (author markup as a managed section). Minimal wrapper only;
 * the author's own markup brings its own look. .apb-custom keeps it inside the page's content rhythm;
 * width:"full" opts into full-bleed.
 */
.apb-custom .apb-custom-head{max-width:62ch;margin:0 auto clamp(16px,3vh,32px);text-align:center}
.apb-custom .apb-custom-head h2{font-size:clamp(22px,3.2vw,38px);font-weight:700;letter-spacing:-.02em;margin:0}
.apb-custom .apb-custom-head .apb-rx-eyebrow{margin:0 0 8px}
.apb-custom .apb-custom-body{max-width:var(--apb-rx-content,72ch);margin:0 auto}
.apb-custom--full .apb-custom-body{max-width:none}
.apb-custom .apb-custom-body img{max-width:100%;height:auto}

/* "Add element" primitives (APB_Page_Editor_Primitives) — quiet defaults inside the custom body. */
.apb-custom .apb-custom-body .apb-el{margin:0 0 clamp(12px,2vh,20px)}
.apb-custom .apb-custom-body .apb-el-heading{font-size:clamp(22px,3vw,34px);font-weight:700;letter-spacing:-.02em;line-height:1.15}
.apb-custom .apb-custom-body .apb-el-text{font-size:clamp(16px,1.6vw,18px);line-height:1.6}
.apb-custom .apb-custom-body .apb-el-image{margin-inline:0}
.apb-custom .apb-custom-body .apb-el-image img{display:block;width:100%;border-radius:var(--apb-rx-radius,12px)}
.apb-custom .apb-custom-body .apb-el-button{margin-top:4px}
.apb-custom .apb-custom-body .apb-el-spacer{height:clamp(24px,4vh,48px);margin:0}
.apb-custom .apb-custom-body .apb-el-divider{height:0;border-top:1px solid var(--apb-rx-border,rgba(0,0,0,.12));margin:clamp(12px,2vh,20px) 0}
/* Columns: equal widths, one column per row below 720px. A column keeps a minimum height so an emptied one stays clickable. */
.apb-custom .apb-custom-body .apb-el-columns{display:grid;gap:clamp(16px,2.5vw,32px);align-items:start}
.apb-custom .apb-custom-body .apb-el-columns--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.apb-custom .apb-custom-body .apb-el-columns--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.apb-custom .apb-custom-body .apb-el-columns--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.apb-custom .apb-custom-body .apb-el-col{min-width:0;min-height:24px}
.apb-custom .apb-custom-body .apb-el-col > .apb-el:last-child{margin-bottom:0}
.apb-custom .apb-custom-body .apb-el-columns--split-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.apb-custom .apb-custom-body .apb-el-columns--split-1-2{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.apb-custom .apb-custom-body .apb-el-columns--split-2-1-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}
.apb-custom .apb-custom-body .apb-el-columns--split-1-2-1{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr)}
.apb-custom .apb-custom-body .apb-el-columns--split-1-1-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,2fr)}
/* Four columns pair up on tablets before stacking on phones. */
@media (max-width:980px){
  .apb-custom .apb-custom-body .apb-el-columns--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .apb-custom .apb-custom-body .apb-el-columns--2,.apb-custom .apb-custom-body .apb-el-columns--3,.apb-custom .apb-custom-body .apb-el-columns--4,.apb-custom .apb-custom-body .apb-el-columns--split-2-1,.apb-custom .apb-custom-body .apb-el-columns--split-1-2,.apb-custom .apb-custom-body .apb-el-columns--split-2-1-1,.apb-custom .apb-custom-body .apb-el-columns--split-1-2-1,.apb-custom .apb-custom-body .apb-el-columns--split-1-1-2{grid-template-columns:minmax(0,1fr)}
  /* "Reverse order on mobile": the last column comes first once the row stacks (e.g. image above text). */
  .apb-custom .apb-custom-body .apb-el-columns--reverse-sm{display:flex;flex-direction:column-reverse}
}
/* ==== assets/pages/component-typography.css ==== */
/*
 * recipe-typography.css — kinetic headline recipes (APB_Section_Recipes_Typography). FAIL-OPEN: the
 * headline is fully readable with no JS; enhanced states are scoped under [data-apb-anim-on] (set by the
 * kinetic-text module) or are pure CSS loops. apb-kt-* namespace.
 */
/* wrap must be wide enough for a big display headline: 20ch (measured on the wrapper's OWN small font)
   collapsed these headlines to one-word-per-line and clipped long words. A vw/px cap is predictable and
   still centered; individual variants that want a tighter measure set it on their own headline. */
.apb-kt .apb-kt-wrap{max-width:min(92vw,900px);margin:0 auto;text-align:center;padding:clamp(24px,5vh,64px) 0;overflow-wrap:break-word}
.apb-kt h2{font-size:clamp(30px,6vw,72px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0}
.apb-kt .apb-rx-eyebrow{margin:0 0 14px}
.apb-kt .apb-kt-sub{margin:18px auto 0;max-width:46ch;color:var(--apb-rx-dim,#64748b);font-size:clamp(15px,2vw,19px)}

/* scramble — monospace-ish tabular feel while decoding (JS drives textContent) */
.apb-kt--scramble .apb-kt-target{font-variant-numeric:tabular-nums}

/* rotator — the cycling word swaps with a quick fade/rise */
.apb-kt--rotator .apb-kt-rotate{display:inline-block;color:var(--apb-rx-accent-text,var(--apb-rx-accent,#4f46e5));transition:opacity .25s,transform .25s;will-change:opacity,transform}
.apb-kt--rotator .apb-kt-rotate.is-swapping{opacity:0;transform:translateY(-.35em)}

/* stagger — words reveal one-by-one; default visible (fail-open), hidden only once JS marks ready */
.apb-kt--stagger .apb-kt-word{display:inline-block}
.apb-kt--stagger[data-apb-anim-on] .apb-kt-word{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * 60ms)}
.apb-kt--stagger.is-in .apb-kt-word{opacity:1;transform:none}

/* gradient sweep — animated gradient clipped to the text (CSS-only) */
.apb-kt--gradient .apb-kt-grad{
  background:linear-gradient(90deg,var(--apb-rx-accent,#4f46e5),var(--apb-rx-brand2,var(--apb-rx-accent,#0ea5e9)),var(--apb-rx-accent,#4f46e5));
  background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:apb-kt-sweep 6s linear infinite}
@keyframes apb-kt-sweep{to{background-position:220% 0}}

/* underline — a highlighter stroke draws under the keyword (CSS-only) */
.apb-kt--underline .apb-kt-ul{position:relative;white-space:nowrap}
.apb-kt--underline .apb-kt-ul::after{content:"";position:absolute;left:0;right:100%;bottom:.06em;height:.5em;border-radius:.25em;
  background:var(--apb-rx-accent,#4f46e5);opacity:.28;z-index:-1;animation:apb-kt-draw 1.1s .3s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes apb-kt-draw{to{right:0}}

/* split-flap board */
.apb-kt--splitflap .apb-kt-flapboard{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:5px}
.apb-kt--splitflap .apb-kt-flap{display:inline-flex;align-items:center;justify-content:center;min-width:.72em;padding:.12em .14em;
  background:#18181b;color:#fafafa;border-radius:7px;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 2px 6px rgba(0,0,0,.25);will-change:transform}
.apb-kt--splitflap .apb-kt-flap.is-flipping{animation:apb-kt-flip .12s linear}
@keyframes apb-kt-flip{50%{transform:scaleY(.5)}}

/* typewriter */
.apb-kt--typewriter .apb-kt-typed{white-space:pre-wrap}
.apb-kt--typewriter .apb-kt-caret{display:inline-block;width:.06em;height:1em;background:currentColor;margin-left:.04em;vertical-align:-.08em;animation:apb-kt-blink 1s steps(1) infinite}
.apb-kt--typewriter.is-typed .apb-kt-caret{opacity:0;animation:none}
@keyframes apb-kt-blink{50%{opacity:0}}

/* image-in-text */
.apb-kt--textmask .apb-kt-mask{font-size:clamp(56px,15vw,190px);font-weight:900;letter-spacing:-.04em;line-height:.95;
  background-image:var(--apb-kt-img);background-size:cover;background-position:center;-webkit-background-clip:text;background-clip:text;color:transparent}

/* glitch */
.apb-kt--glitch .apb-kt-glitch{position:relative;display:inline-block;color:var(--apb-rx-fg,#0b1020)}
.apb-kt--glitch .apb-kt-glitch::before,.apb-kt--glitch .apb-kt-glitch::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;pointer-events:none}
.apb-kt--glitch .apb-kt-glitch::before{color:color-mix(in srgb,var(--apb-rx-accent,#4f46e5) 60%,#ff2d95);animation:apb-kt-g1 2.6s infinite steps(2)}
.apb-kt--glitch .apb-kt-glitch::after{color:color-mix(in srgb,var(--apb-rx-brand2,var(--apb-rx-accent,#4f46e5)) 60%,#00e5ff);animation:apb-kt-g2 2.6s infinite steps(2)}
@keyframes apb-kt-g1{0%,92%,100%{transform:none;clip-path:inset(0 0 0 0)}94%{transform:translate(-3px,1px);clip-path:inset(20% 0 55% 0)}96%{transform:translate(2px,-1px);clip-path:inset(60% 0 10% 0)}}
@keyframes apb-kt-g2{0%,92%,100%{transform:none;clip-path:inset(0 0 0 0)}94%{transform:translate(3px,-1px);clip-path:inset(50% 0 30% 0)}96%{transform:translate(-2px,1px);clip-path:inset(10% 0 65% 0)}}

/* line-mask (reuses the stagger behavior's data-apb-anim-on / .is-in on the section) */
.apb-kt--linemask .apb-kt-line{display:block;overflow:hidden}
.apb-kt--linemask .apb-kt-line > span{display:inline-block;will-change:transform}
.apb-kt--linemask[data-apb-anim-on] .apb-kt-line > span{transform:translateY(115%);transition:transform .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i) * 90ms)}
.apb-kt--linemask.is-in .apb-kt-line > span{transform:none}

@media (prefers-reduced-motion:reduce){
  .apb-kt--gradient .apb-kt-grad{animation:none;background-position:0 0}
  .apb-kt--underline .apb-kt-ul::after{animation:none;right:0}
  .apb-kt--glitch .apb-kt-glitch::before,.apb-kt--glitch .apb-kt-glitch::after{animation:none;opacity:0}
  .apb-kt--typewriter .apb-kt-caret{animation:none;opacity:1}
  .apb-kt--splitflap .apb-kt-flap.is-flipping{animation:none}
}
/* ==== assets/pages/component-dataviz.css ==== */
/*
 * recipe-dataviz.css — living-data recipes (APB_Section_Recipes_Dataviz). FAIL-OPEN: final values render
 * statically (numbers, full bars, correct ring arcs); the count-draw module animates from 0 on enter.
 * apb-dv-* namespace; neutral tokens with safe fallbacks.
 */
.apb-dv .apb-dv-head{max-width:60ch;margin:0 auto clamp(24px,4vh,48px);text-align:center}
.apb-dv .apb-dv-head h2{font-size:clamp(24px,3.4vw,40px);font-weight:700;letter-spacing:-.02em;margin:0}
.apb-dv .apb-dv-head .apb-rx-eyebrow{margin:0 0 8px}
.apb-dv .apb-dv-num{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:-.02em}
.apb-dv .apb-dv-lbl{display:block;color:var(--apb-rx-dim,#64748b);font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-top:6px}

/* KPI band */
.apb-dv--kpis .apb-dv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:clamp(20px,4vw,48px);text-align:center}
.apb-dv--kpis .apb-dv-num{font-size:clamp(34px,6vw,64px);display:block}

/* bar chart */
.apb-dv--bars .apb-dv-bars{max-width:680px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.apb-dv--bars .apb-dv-bar-row{display:grid;grid-template-columns:130px 1fr 64px;align-items:center;gap:16px}
.apb-dv--bars .apb-dv-bar-lbl{font-size:14px;color:var(--apb-rx-dim,#64748b);text-transform:uppercase;letter-spacing:.06em}
.apb-dv--bars .apb-dv-track{height:10px;border-radius:999px;background:rgba(100,116,139,.16);overflow:hidden}
.apb-dv--bars .apb-dv-bar{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--apb-rx-brand,#4f46e5),var(--apb-rx-brand2,var(--apb-rx-brand)));will-change:width;transition:width .05s linear}
.apb-dv--bars .apb-dv-bar-val{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}

/* donut / gauge grid */
.apb-dv--donut .apb-dv-donuts{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,4vw,56px)}
.apb-dv--donut .apb-dv-donut{text-align:center;position:relative}
.apb-dv--donut svg{width:clamp(120px,16vw,150px);height:auto;transform:rotate(-90deg)}
.apb-dv--donut .apb-dv-donut-track{fill:none;stroke:rgba(100,116,139,.18);stroke-width:10}
.apb-dv--donut .apb-dv-donut-bar{fill:none;stroke:var(--apb-rx-accent,#4f46e5);stroke-width:10;stroke-linecap:round;will-change:stroke-dashoffset}
.apb-dv--donut .apb-dv-donut-pct{position:absolute;top:calc(50% - 14px);left:0;right:0;transform:translateY(-50%)}
.apb-dv--donut .apb-dv-donut-num{font-size:clamp(22px,3vw,30px)}

/* odometer */
.apb-dv--odometer .apb-dv-odo{text-align:center}
.apb-dv--odometer .apb-dv-odo-num{font-size:clamp(56px,12vw,140px);line-height:1;display:block}

/* sparkline */
.apb-dv--sparkline .apb-dv-spark-top{text-align:center;margin-bottom:14px}
.apb-dv--sparkline .apb-dv-spark-num{font-size:clamp(30px,5vw,52px)}
.apb-dv--sparkline .apb-dv-spark-svg{display:block;width:min(720px,92%);height:clamp(90px,16vh,150px);margin:0 auto}
.apb-dv--sparkline .apb-dv-spark{fill:none;stroke:var(--apb-rx-accent,#4f46e5);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;will-change:stroke-dashoffset}

/* before -> after */
.apb-dv--compare .apb-dv-compare{display:flex;align-items:center;justify-content:center;gap:clamp(20px,5vw,64px);flex-wrap:wrap}
.apb-dv--compare .apb-dv-cmp-cell{text-align:center}
.apb-dv--compare .apb-dv-num{font-size:clamp(40px,8vw,96px);display:block}
.apb-dv--compare .apb-dv-cmp-cell--to .apb-dv-num{color:var(--apb-rx-accent-text,var(--apb-rx-accent,#4f46e5))}
.apb-dv--compare .apb-dv-cmp-arrow{font-size:clamp(28px,5vw,56px);color:var(--apb-rx-dim,#94a3b8)}

/* delta chip (kpis + statcards) */
.apb-dv .apb-dv-delta{display:inline-block;margin-left:10px;font-size:14px;font-weight:700;vertical-align:middle}
.apb-dv .apb-dv-delta--up{color:var(--apb-rx-pos,#16a34a)}
.apb-dv .apb-dv-delta--down{color:var(--apb-rx-neg,#dc2626)}

/* sparkline gradient fill */
.apb-dv--sparkline .apb-dv-spark-fill{fill:var(--apb-rx-accent,#4f46e5);opacity:.1}

/* area / line chart */
.apb-dv--area .apb-dv-area-top{text-align:center;margin-bottom:14px}
.apb-dv--area .apb-dv-area-num{font-size:clamp(30px,5vw,52px)}
.apb-dv--area .apb-dv-area-svg{display:block;width:min(760px,94%);height:clamp(160px,26vh,260px);margin:0 auto}
.apb-dv--area .apb-dv-grid{stroke:rgba(100,116,139,.16);stroke-width:1;vector-effect:non-scaling-stroke}
.apb-dv--area .apb-dv-fill-a{stop-color:var(--apb-rx-accent,#4f46e5);stop-opacity:.28}
.apb-dv--area .apb-dv-fill-b{stop-color:var(--apb-rx-accent,#4f46e5);stop-opacity:0}
/* fill is set inline per-render (unique gradient id per area chart); stop colors stay class-driven above */
.apb-dv--area .apb-dv-spark{fill:none;stroke:var(--apb-rx-accent,#4f46e5);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;will-change:stroke-dashoffset}

/* stat cards */
.apb-dv--statcards .apb-dv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px}
.apb-dv--statcards .apb-dv-card{border:1px solid rgba(100,116,139,.16);border-radius:var(--apb-rx-radius,14px);padding:20px;background:rgba(255,255,255,.5)}
.apb-dv--statcards .apb-dv-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.apb-dv--statcards .apb-dv-card-top .apb-dv-lbl{margin:0}
.apb-dv--statcards .apb-dv-card-top .apb-dv-delta{margin:0}
.apb-dv--statcards .apb-dv-card-num{font-size:clamp(28px,4vw,44px);display:block}
.apb-dv--statcards .apb-dv-card-spark{display:block;width:100%;height:44px;margin-top:10px}
.apb-dv--statcards .apb-dv-spark{fill:none;stroke:var(--apb-rx-accent,#4f46e5);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;will-change:stroke-dashoffset}

/* gauge */
.apb-dv--gauge .apb-dv-gauge{text-align:center;max-width:280px;margin:0 auto}
.apb-dv--gauge .apb-dv-gauge-svg{width:100%;height:auto;overflow:visible}
.apb-dv--gauge .apb-dv-gauge-track{fill:none;stroke:rgba(100,116,139,.18);stroke-width:12;stroke-linecap:round}
.apb-dv--gauge .apb-dv-gauge-bar{fill:none;stroke:var(--apb-rx-accent,#4f46e5);stroke-width:12;stroke-linecap:round;will-change:stroke-dashoffset}
.apb-dv--gauge .apb-dv-gauge-needle{stroke:var(--apb-rx-fg,#0b1020);stroke-width:3;stroke-linecap:round}
.apb-dv--gauge .apb-dv-gauge-hub{fill:var(--apb-rx-fg,#0b1020)}
.apb-dv--gauge .apb-dv-gauge-cap{margin-top:6px}
.apb-dv--gauge .apb-dv-gauge-num{font-size:clamp(30px,5vw,48px)}

/* heatmap */
.apb-dv--heatmap .apb-dv-heatgrid{display:grid;grid-template-rows:repeat(7,1fr);grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;max-width:820px;margin:0 auto;overflow-x:auto}
.apb-dv--heatmap .apb-dv-heat-cell{aspect-ratio:1;min-width:11px;border-radius:3px;background:rgba(100,116,139,.14)}
.apb-dv--heatmap .apb-dv-heat-cell[style*="--lvl:1"]{background:color-mix(in srgb,var(--apb-rx-accent,#4f46e5) 28%,transparent)}
.apb-dv--heatmap .apb-dv-heat-cell[style*="--lvl:2"]{background:color-mix(in srgb,var(--apb-rx-accent,#4f46e5) 52%,transparent)}
.apb-dv--heatmap .apb-dv-heat-cell[style*="--lvl:3"]{background:color-mix(in srgb,var(--apb-rx-accent,#4f46e5) 76%,transparent)}
.apb-dv--heatmap .apb-dv-heat-cell[style*="--lvl:4"]{background:var(--apb-rx-accent,#4f46e5)}

@media (prefers-reduced-motion:reduce){
  .apb-dv--bars .apb-dv-bar{transition:none}
}
/* ==== assets/pages/component-content.css ==== */
/*
 * recipe-content.css — the composable content layer. Shared item cards (.apb-item--image/testimonial/
 * logo/feature) that drop into ANY container (marquee/coverflow reuse recipe-animated.css scaffold;
 * carousel = native scroll-snap slider; grid = static). Neutral tokens with safe fallbacks.
 */
.apb-content .apb-content-head{max-width:62ch;margin:0 auto clamp(24px,4vh,48px);text-align:center}
.apb-content .apb-content-head h2{font-size:clamp(24px,3.4vw,40px);font-weight:700;letter-spacing:-.02em;margin:0}
.apb-content .apb-content-head .apb-rx-eyebrow{margin:0 0 8px}

/* text item cards must not get the coverflow image-overlay gradient */
.apb-content .apb-anim-card::after{content:none}

/* item fills its fixed motion box (marquee cell / coverflow card) */
.apb-content .apb-anim-mq-cell,.apb-content .apb-anim-card{position:relative}
.apb-content .apb-anim-mq-cell > .apb-item,.apb-content .apb-anim-card > .apb-item{position:absolute;inset:0}

/* ---- image ---- */
.apb-item--image{margin:0;width:100%;height:100%;border-radius:var(--apb-rx-radius,14px);overflow:hidden;background:rgba(0,0,0,.05)}
.apb-item--image .apb-item-media{display:block;width:100%;height:100%}
.apb-item--image img{width:100%;height:100%;object-fit:cover}
.apb-item--image .apb-item-cap{position:absolute;left:14px;right:14px;bottom:12px;color:#fff;font-weight:600;font-size:14px;text-shadow:0 2px 10px rgba(0,0,0,.85)}

/* ---- testimonial ---- */
.apb-item--testimonial{margin:0;height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:16px;overflow:hidden;
  padding:24px;border:1px solid var(--apb-rx-line,rgba(100,116,139,.16));border-radius:var(--apb-rx-radius,14px);background:var(--apb-rx-surface,#fff)}
.apb-item--testimonial .apb-item-quote{margin:0;font-size:clamp(15px,1.6vw,19px);line-height:1.5;font-weight:500}
.apb-item--testimonial .apb-item-cite{display:flex;align-items:center;gap:12px;font-style:normal}
.apb-item--testimonial .apb-item-avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;flex:0 0 auto;background:rgba(0,0,0,.05)}
.apb-item--testimonial .apb-item-avatar img{width:100%;height:100%;object-fit:cover}
.apb-item--testimonial .apb-item-who{display:flex;flex-direction:column;min-width:0}
.apb-item--testimonial .apb-item-name{font-weight:700}
.apb-item--testimonial .apb-item-role{font-size:13px;color:var(--apb-rx-dim,#64748b)}

/* ---- logo ---- */
.apb-item--logo{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px}
.apb-item--logo .apb-item-logo{max-width:100%;max-height:56px;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .3s,opacity .3s}
.apb-item--logo:hover .apb-item-logo{filter:none;opacity:1}
.apb-item--logo .apb-item-logoname{font-size:12px;color:var(--apb-rx-dim,#64748b)}

/* ---- feature ---- */
.apb-item--feature{margin:0;height:100%;display:flex;flex-direction:column;gap:10px;overflow:hidden;
  padding:24px;border:1px solid var(--apb-rx-line,rgba(100,116,139,.16));border-radius:var(--apb-rx-radius,14px);background:var(--apb-rx-surface,#fff)}
.apb-item--feature .apb-item-icon{width:40px;height:40px;border-radius:11px;background:rgba(100,116,139,.1);display:flex;align-items:center;justify-content:center;color:var(--apb-rx-accent-text,var(--apb-rx-accent,#4f46e5))}
.apb-item--feature .apb-item-icon svg{width:22px;height:22px}
.apb-item--feature .apb-item-title{margin:0;font-size:18px}
.apb-item--feature .apb-item-text{margin:0;font-size:14px;color:var(--apb-rx-dim,#64748b);line-height:1.5}

/* ---- GRID ---- */
.apb-content--grid .apb-content-grid{display:grid;grid-template-columns:repeat(var(--apb-content-cols,3),1fr);gap:18px}
@media(max-width:760px){.apb-content--grid .apb-content-grid{grid-template-columns:1fr}}
.apb-content--grid .apb-content-cell{position:relative}
.apb-content--grid.apb-content--image .apb-item{position:absolute;inset:0}
.apb-content--grid.apb-content--image .apb-content-cell{aspect-ratio:4/3}

/* ---- CAROUSEL (native [data-apb-slider] scroll-snap) ---- */
.apb-content--carousel .apb-rx-slider{position:relative}
.apb-content--carousel .apb-rx-slider-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px}
.apb-content--carousel .apb-rx-slider-track::-webkit-scrollbar{display:none}
.apb-content--carousel .apb-rx-slide{flex:0 0 clamp(260px,32vw,360px);scroll-snap-align:center;position:relative}
.apb-content--carousel.apb-content--image .apb-rx-slide{aspect-ratio:4/3}
.apb-content--carousel.apb-content--image .apb-rx-slide > .apb-item{position:absolute;inset:0}
.apb-content--carousel .apb-rx-slider-arrow{position:absolute;top:38%;width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,0,0,.14);background:#fff;cursor:pointer;z-index:2;font-size:17px;line-height:1}
.apb-content--carousel .apb-rx-slider-arrow--prev{left:-8px}
.apb-content--carousel .apb-rx-slider-arrow--next{right:-8px}
.apb-content--carousel .apb-rx-slider-dots{display:flex;justify-content:center;gap:8px;margin-top:18px}
.apb-content--carousel .apb-rx-slider-dot{width:8px;height:8px;border-radius:50%;border:0;background:rgba(100,116,139,.3);cursor:pointer;transition:width .25s,background .25s}
.apb-content--carousel .apb-rx-slider-dot[aria-current="true"]{background:var(--apb-rx-accent,#4f46e5);width:22px;border-radius:4px}

/* NOTE: marquee & coverflow content sections carry the ANIMATED-engine container class (.apb-anim--marquee /
   .apb-anim--coverflow) + .apb-content — NOT a .apb-content--marquee/coverflow class (those don't exist).
   Carousel & grid DO use .apb-content--carousel/grid. Scope motion-box rules on .apb-content.apb-anim--*. */
/* give the motion box a SOLID surface so overlapping 3D coverflow cards / adjacent marquee cells never bleed */
.apb-content.apb-anim--marquee .apb-anim-mq-cell,.apb-content.apb-anim--coverflow .apb-anim-card{overflow:hidden;background:var(--apb-rx-surface,#fff)}
/* clamp long quotes in fixed motion boxes so they fade/ellipsis instead of hard-clipping */
.apb-content.apb-anim--marquee .apb-item--testimonial .apb-item-quote,
.apb-content.apb-anim--coverflow .apb-item--testimonial .apb-item-quote{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
/* coverflow cards are TALL (image 3/4 aspect): center a short testimonial as a group so quote+cite sit in the
   middle instead of the cite hugging (and clipping against) the rounded bottom edge */
.apb-content.apb-anim--coverflow .apb-item--testimonial{justify-content:center;gap:20px}
/* recipe-animated.css absolutely-positions ANY figcaption in a coverflow card to bottom:14px with white text
   (for photo captions). A testimonial's cite IS a figcaption, so that rule yanks the avatar/name to the clipped
   bottom edge and whitens it. Reset it back to normal flow inside content cards. */
.apb-content.apb-anim--coverflow .apb-anim-card .apb-item-cite{position:static;left:auto;right:auto;bottom:auto;color:inherit;text-shadow:none}
/* push the prev/next controls clear of the tall content coverflow cards */
.apb-content.apb-anim--coverflow .apb-anim-ctrl{margin-top:90px}

/* CAROUSEL & GRID are FLOW layouts (not fixed-aspect motion boxes): text cards must size to their content and
   NEVER clip. overflow:hidden + height:100% above are only correct inside the marquee/coverflow fixed boxes. */
.apb-content--carousel .apb-rx-slide{display:flex}
.apb-content--carousel .apb-rx-slide > .apb-item--testimonial,.apb-content--carousel .apb-rx-slide > .apb-item--feature,
.apb-content--grid .apb-content-cell > .apb-item--testimonial,.apb-content--grid .apb-content-cell > .apb-item--feature{overflow:visible;height:auto;min-height:200px}
/* ==== assets/pages/component-themes.css ==== */
/*
 * recipe-themes.css — industry treatment overlays for the section-recipe system. A page carries one
 * data-apb-theme="<industry>" on its root; this re-skins every apb-rx-* section (palette + display
 * type) so the SAME recipes feel like fintech vs. a gym vs. a law firm. Palette is the primary lever:
 * setting --color-primary + --apb-rx-brand/brand2 propagates to buttons, gradients, accents, numerals.
 * See docs/design-system/recipe-industry-plan-150.md. No structural/markup change; honesty unaffected.
 */

/* ---- palette overlays (30 industries) ---- */
[data-apb-theme="saas"]{--apb-rx-brand:#4f46e5;--apb-rx-brand2:#7c3aed;--color-primary:#4f46e5}
[data-apb-theme="fintech"]{--apb-rx-brand:#0f766e;--apb-rx-brand2:#115e59;--color-primary:#0f766e}
[data-apb-theme="healthcare"]{--apb-rx-brand:#2563eb;--apb-rx-brand2:#0891b2;--color-primary:#2563eb}
[data-apb-theme="ecommerce"]{--apb-rx-brand:#db2777;--apb-rx-brand2:#7c3aed;--color-primary:#db2777}
[data-apb-theme="restaurant"]{--apb-rx-brand:#b45309;--apb-rx-brand2:#7c2d12;--color-primary:#b45309;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="realestate"]{--apb-rx-brand:#9a7b4f;--apb-rx-brand2:#1e293b;--color-primary:#9a7b4f;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="fitness"]{--apb-rx-brand:#dc2626;--apb-rx-brand2:#f59e0b;--color-primary:#dc2626}
[data-apb-theme="education"]{--apb-rx-brand:#4338ca;--apb-rx-brand2:#db2777;--color-primary:#4338ca}
[data-apb-theme="agency"]{--apb-rx-brand:#6366f1;--apb-rx-brand2:#0b0d12;--color-primary:#6366f1}
[data-apb-theme="law"]{--apb-rx-brand:#1e3a5f;--apb-rx-brand2:#94703e;--color-primary:#1e3a5f;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="consulting"]{--apb-rx-brand:#2563eb;--apb-rx-brand2:#0f172a;--color-primary:#2563eb}
[data-apb-theme="nonprofit"]{--apb-rx-brand:#15803d;--apb-rx-brand2:#ca8a04;--color-primary:#15803d}
[data-apb-theme="devtools"]{--apb-rx-brand:#0891b2;--apb-rx-brand2:#22d3ee;--color-primary:#0891b2}
[data-apb-theme="beauty"]{--apb-rx-brand:#9d4edd;--apb-rx-brand2:#db6f93;--color-primary:#9d4edd;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="travel"]{--apb-rx-brand:#0369a1;--apb-rx-brand2:#f59e0b;--color-primary:#0369a1;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="construction"]{--apb-rx-brand:#ea580c;--apb-rx-brand2:#1c1917;--color-primary:#ea580c}
[data-apb-theme="automotive"]{--apb-rx-brand:#dc2626;--apb-rx-brand2:#0b0d12;--color-primary:#dc2626}
[data-apb-theme="events"]{--apb-rx-brand:#7c3aed;--apb-rx-brand2:#db2777;--color-primary:#7c3aed}
[data-apb-theme="photography"]{--apb-rx-brand:#3f3f46;--apb-rx-brand2:#0b0d12;--color-primary:#3f3f46;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}
[data-apb-theme="music"]{--apb-rx-brand:#a855f7;--apb-rx-brand2:#22d3ee;--color-primary:#a855f7}
[data-apb-theme="crypto"]{--apb-rx-brand:#a855f7;--apb-rx-brand2:#22d3ee;--color-primary:#a855f7}
[data-apb-theme="insurance"]{--apb-rx-brand:#1e3a8a;--apb-rx-brand2:#0891b2;--color-primary:#1e3a8a}
[data-apb-theme="logistics"]{--apb-rx-brand:#ea580c;--apb-rx-brand2:#0f172a;--color-primary:#ea580c}
[data-apb-theme="gaming"]{--apb-rx-brand:#7c3aed;--apb-rx-brand2:#22d3ee;--color-primary:#7c3aed}
[data-apb-theme="coaching"]{--apb-rx-brand:#db2777;--apb-rx-brand2:#f59e0b;--color-primary:#db2777}
[data-apb-theme="petcare"]{--apb-rx-brand:#16a34a;--apb-rx-brand2:#f59e0b;--color-primary:#16a34a}
[data-apb-theme="childcare"]{--apb-rx-brand:#2563eb;--apb-rx-brand2:#f59e0b;--color-primary:#2563eb}
[data-apb-theme="localservices"]{--apb-rx-brand:#1d4ed8;--apb-rx-brand2:#f59e0b;--color-primary:#1d4ed8}
[data-apb-theme="marketplace"]{--apb-rx-brand:#4f46e5;--apb-rx-brand2:#0891b2;--color-primary:#4f46e5}
[data-apb-theme="media"]{--apb-rx-brand:#dc2626;--apb-rx-brand2:#0b0d12;--color-primary:#dc2626;--apb-rx-font-display:Georgia,Cambria,'Times New Roman',serif}



/* ---- mono accents for developer / crypto numerals & code ---- */
[data-apb-theme="devtools"] .apb-rx-stat-n,[data-apb-theme="crypto"] .apb-rx-stat-n,
[data-apb-theme="devtools"] .apb-rx-badge-pill b,[data-apb-theme="crypto"] .apb-rx-badge-pill b{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:0}
/* ==== assets/pages/component-buttons.css ==== */
/* BUTTON SYSTEM — one token-driven CTA primitive + shape presets (data-apb-btn) + hover effects
   (data-apb-btn-fx). Registry/whitelists: includes/class-apb-component-buttons.php. This file loads
   AFTER every family partial, so equal-specificity declarations here win — the legacy family CTA
   classes below are ALIASES of the primitive (zero markup changes across recipes).
   Mechanism: presets are custom-property bundles; properties inherit with nearest-ancestor-wins, so
   the brand kit sets the page default on .apb-rx-theme and any single section wrapper overrides itself.
   ::after is reserved for the CSS-drawn arrow icon, ::before for overlay sweeps — they never collide
   because only one fx applies at a time. Tokens only; zero important-flags. */

/* ---------------------------------------------------------------- primitive + adoption */
/* The canonical .apb-rx-cta primitive is ALWAYS token-driven. Legacy family CTA classes are adopted
   into the system ONLY under an active config ancestor ([data-apb-btn] or [data-apb-btn-fx]) — with
   nothing configured, every legacy button keeps its exact current styling (zero-regression guarantee,
   asserted by tools/apb-buttons-smoke.php). Ghost variants map to the SECONDARY role. */
.apb-rx-cta,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  position:relative;isolation:isolate;overflow:var(--apb-rx-btn-clip,visible);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;cursor:pointer;line-height:1.2;
  font-size:var(--apb-rx-btn-size,14.5px);
  font-weight:var(--apb-rx-btn-weight,700);
  text-transform:var(--apb-rx-btn-case,none);
  letter-spacing:var(--apb-rx-btn-track,normal);
  padding:var(--apb-rx-btn-py,13px) var(--apb-rx-btn-px,24px);
  border-radius:var(--apb-rx-btn-radius,var(--apb-rx-radius));
  transition:transform var(--apb-rx-t-fast,.16s),box-shadow var(--apb-rx-t-fast,.16s),background var(--apb-rx-t,.28s),
    border-color var(--apb-rx-t-fast,.16s),color var(--apb-rx-t,.28s)}
.apb-rx-cta--primary,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn:not(.apb-rx-btn-ghost):not(.apb-rx-btn--ghost)){
  color:var(--apb-rx-btn-fg,#fff);
  background:var(--apb-rx-btn-bg,var(--apb-rx-brand));
  border:var(--apb-rx-btn-border,0 solid transparent);
  box-shadow:var(--apb-rx-btn-shadow,0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35)))}
.apb-rx-cta--secondary,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta--outline,.apb-rx-cs-cta--outline,.apb-rx-cr-cta--outline,.apb-rx-re-cta--outline,.apb-rx-ev-cta--outline,.apb-rx-lb-cta--outline,.apb-rx-btn-ghost,.apb-rx-btn--ghost){
  color:var(--apb-rx-btn2-fg,var(--apb-rx-ink,#0b0d12));
  background:var(--apb-rx-btn2-bg,transparent);
  border:var(--apb-rx-btn2-border,1px solid var(--apb-rx-line,#e7e8ec));
  box-shadow:var(--apb-rx-btn2-shadow,none)}
.apb-rx-cta--primary:hover,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn:not(.apb-rx-btn-ghost):not(.apb-rx-btn--ghost)):hover{
  transform:var(--apb-rx-btn-hover,translateY(-2px))}
.apb-rx-cta--secondary:hover,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta--outline,.apb-rx-cs-cta--outline,.apb-rx-cr-cta--outline,.apb-rx-re-cta--outline,.apb-rx-ev-cta--outline,.apb-rx-lb-cta--outline,.apb-rx-btn-ghost,.apb-rx-btn--ghost):hover{
  border-color:var(--apb-rx-btn2-hover-border,var(--apb-rx-line-accent,#c8caf5));
  transform:var(--apb-rx-btn-hover,translateY(-2px))}
/* dark-context family variants must survive an active preset (they load earlier at equal specificity) */
/* dark-context re-assert only where the preset keeps a transparent secondary — presets with a light
   secondary surface (brutal, metal, elevate, ...) stay readable via their own fg. */
:is([data-apb-btn],[data-apb-btn-fx]):not([data-apb-btn="brutal"],[data-apb-btn="border"],[data-apb-btn="notched"],[data-apb-btn="metal"],[data-apb-btn="aurora"],[data-apb-btn="elevate"],[data-apb-btn="inset"],[data-apb-btn="retro"],[data-apb-btn="duotone"]) .apb-rx-pf-cta--dark.apb-rx-pf-cta--outline{color:#fff;border-color:rgba(255,255,255,.35)}
:is([data-apb-btn],[data-apb-btn-fx]):not([data-apb-btn="brutal"],[data-apb-btn="border"],[data-apb-btn="notched"],[data-apb-btn="metal"],[data-apb-btn="aurora"],[data-apb-btn="elevate"],[data-apb-btn="inset"],[data-apb-btn="retro"],[data-apb-btn="duotone"]) .apb-rx-pf-cta--dark.apb-rx-pf-cta--outline:hover{border-color:#fff}
/* shared keyboard focus ring for every adopted button (notched clips outlines — brightness fallback) */
.apb-rx-cta:focus-visible,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):focus-visible{
  outline:2px solid color-mix(in srgb,var(--apb-rx-brand) 70%,#fff);outline-offset:2px}
[data-apb-btn="notched"] :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):focus-visible{outline:none;filter:brightness(1.18);text-decoration:underline;text-underline-offset:3px}
/* CSS-drawn arrow icon slot (::after) — masked in currentColor, no markup anywhere */
.apb-rx-cta::after,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::after{
  content:var(--apb-rx-btn-icon,none);display:inline-block;width:var(--apb-rx-btn-icon-w,0);height:14px;flex:none;
  background:currentColor;transition:width var(--apb-rx-t,.28s),transform var(--apb-rx-t,.28s),opacity var(--apb-rx-t,.28s);
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.6"><path d="M5 12h14M13 6l6 6-6 6"/></svg>') center/contain no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.6"><path d="M5 12h14M13 6l6 6-6 6"/></svg>') center/contain no-repeat}
/* a button that already carries its own inline icon never gets the generated arrow (no double icons) */
:is([data-apb-btn-fx="arrow-in"],[data-apb-btn-fx="arrow-nudge"]) :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):has(svg,.apb-rx-ic)::after{content:none}
/* overlay slot for sweep/shine/ping effects (::before) */
.apb-rx-cta::before,
:is([data-apb-btn],[data-apb-btn-fx]) :is(.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::before{
  content:none;position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none}

/* PRESET ISOLATION: a nested [data-apb-btn] must not inherit the OUTER preset's vars —
   `initial` = guaranteed-invalid, so var() falls back to the primitive default. Knob vars
   (radius/px/py/weight/case) are excluded: they inherit through section overrides. */
[data-apb-btn]{--apb-rx-btn-bg:initial;--apb-rx-btn-fg:initial;--apb-rx-btn-border:initial;
  --apb-rx-btn-shadow:initial;--apb-rx-btn-size:initial;--apb-rx-btn-track:initial;--apb-rx-btn-clip:initial;
  --apb-rx-btn2-bg:initial;--apb-rx-btn2-fg:initial;--apb-rx-btn2-border:initial;
  --apb-rx-btn2-shadow:initial;--apb-rx-btn2-hover-border:initial}
[data-apb-btn-fx]{--apb-rx-btn-hover:initial;--apb-rx-btn-icon:initial;--apb-rx-btn-icon-w:initial}
/* ---------------------------------------------------------------- 23 shape presets */
[data-apb-btn="solid"]{--apb-rx-btn-radius:var(--apb-rx-radius)}
[data-apb-btn="pill"]{--apb-rx-btn-radius:999px;--apb-rx-btn-px:26px;--apb-rx-btn-py:12px}
[data-apb-btn="sharp"]{--apb-rx-btn-radius:0;--apb-rx-btn-case:uppercase;--apb-rx-btn-track:.08em;--apb-rx-btn-size:12.5px;--apb-rx-btn-weight:800;
  --apb-rx-btn-px:26px;--apb-rx-btn-shadow:none;--apb-rx-btn2-border:1px solid var(--apb-rx-ink,#0b0d12)}
[data-apb-btn="soft"]{--apb-rx-btn-bg:var(--apb-rx-soft,#eef0ff);--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));--apb-rx-btn-shadow:none;--apb-rx-btn-weight:750;
  --apb-rx-btn2-border:1px solid transparent;--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="outline"]{--apb-rx-btn-bg:transparent;--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));--apb-rx-btn-border:2px solid var(--apb-rx-brand);
  --apb-rx-btn-shadow:none;--apb-rx-btn-py:11px;--apb-rx-btn2-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="brutal"]{--apb-rx-btn-radius:0;--apb-rx-btn-border:2px solid var(--apb-rx-ink,#0b0d12);--apb-rx-btn-shadow:4px 4px 0 var(--apb-rx-ink,#0b0d12);
  --apb-rx-btn-hover:translate(-2px,-2px);--apb-rx-btn-weight:800;
  --apb-rx-btn2-border:2px solid var(--apb-rx-ink,#0b0d12);--apb-rx-btn2-shadow:4px 4px 0 var(--apb-rx-ink,#0b0d12);--apb-rx-btn2-bg:var(--apb-rx-surface,#fff)}
[data-apb-btn="glow"]{--apb-rx-btn-bg:linear-gradient(135deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 60%,#fff));
  --apb-rx-btn-shadow:0 0 0 1px color-mix(in srgb,var(--apb-rx-brand) 40%,transparent),0 8px 40px -4px var(--apb-rx-glow,rgba(11,13,18,.35));--apb-rx-btn-radius:12px;
  --apb-rx-btn2-border:1px solid color-mix(in srgb,var(--apb-rx-brand) 35%,transparent);--apb-rx-btn2-fg:var(--apb-rx-accent-text,var(--apb-rx-brand))}
[data-apb-btn="underline"]{--apb-rx-btn-bg:transparent;--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);--apb-rx-btn-shadow:none;--apb-rx-btn-px:4px;--apb-rx-btn-py:8px;
  --apb-rx-btn-radius:0;--apb-rx-btn-border:0 solid transparent;--apb-rx-btn-weight:750;--apb-rx-btn-hover:none;
  --apb-rx-btn2-border:0 solid transparent;--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="underline"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  background-image:linear-gradient(var(--apb-rx-brand),var(--apb-rx-brand));background-repeat:no-repeat;background-position:0 100%;background-size:100% 2px}
[data-apb-btn="underline"] :is(.apb-rx-cta--secondary,.apb-rx-pf-cta--outline,.apb-rx-cs-cta--outline,.apb-rx-cr-cta--outline,.apb-rx-re-cta--outline,.apb-rx-ev-cta--outline,.apb-rx-lb-cta--outline){
  background-size:0% 2px;transition:background-size var(--apb-rx-t,.28s)}
[data-apb-btn="underline"] :is(.apb-rx-cta--secondary,.apb-rx-pf-cta--outline,.apb-rx-cs-cta--outline,.apb-rx-cr-cta--outline,.apb-rx-re-cta--outline,.apb-rx-ev-cta--outline,.apb-rx-lb-cta--outline):hover{
  background-size:100% 2px}
[data-apb-btn="glass"]{--apb-rx-btn-radius:18px;--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));--apb-rx-btn-weight:750;
  --apb-rx-btn-bg:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.12) 55%,rgba(255,255,255,.28)),color-mix(in srgb,var(--apb-rx-brand) 12%,rgba(255,255,255,.42));
  --apb-rx-btn-border:1px solid rgba(255,255,255,.75);
  --apb-rx-btn-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -8px 18px -10px color-mix(in srgb,var(--apb-rx-brand) 30%,transparent),
    0 2px 6px rgba(11,13,18,.06),0 18px 40px -16px color-mix(in srgb,var(--apb-rx-brand) 35%,rgba(11,13,18,.25));
  --apb-rx-btn2-bg:rgba(255,255,255,.35);--apb-rx-btn2-border:1px solid rgba(255,255,255,.65);
  --apb-rx-btn2-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 8px 22px -12px rgba(11,13,18,.2)}
[data-apb-btn="glass"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%)}
/* frosted glass on a dark scheme flips its accent text to white for contrast */
[data-apb-scheme="dark"][data-apb-btn="glass"],[data-apb-btn="glass"] [data-apb-scheme="dark"],[data-apb-scheme="dark"] [data-apb-btn="glass"]{--apb-rx-btn-fg:#fff;--apb-rx-btn2-fg:#fff}
[data-apb-btn="liquid"]{--apb-rx-btn-radius:999px;--apb-rx-btn-px:26px;--apb-rx-btn-py:13px;--apb-rx-btn-weight:650;
  --apb-rx-btn-bg:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.04) 50%,rgba(255,255,255,.10)),rgba(255,255,255,.10);
  --apb-rx-btn-border:1px solid rgba(255,255,255,.28);
  --apb-rx-btn-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 1px 0 0 rgba(255,255,255,.14),inset -1px 0 0 rgba(255,255,255,.14),
    inset 0 -1px 0 rgba(255,255,255,.10),0 8px 32px rgba(11,13,18,.16);
  --apb-rx-btn-hover:scale(1.03);
  --apb-rx-btn2-bg:rgba(255,255,255,.05);--apb-rx-btn2-border:1px solid rgba(255,255,255,.20);
  --apb-rx-btn2-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
[data-apb-btn="liquid"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);
  color:inherit /* Liquid Glass takes the surrounding text colour. Direct `inherit` — CSS-wide keywords
  are INVALID inside var() substitution (learned the hard way in the preview). */}
[data-apb-btn="liquid"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover{
  --apb-rx-btn-bg:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.08) 50%,rgba(255,255,255,.14)),rgba(255,255,255,.14)}
@property --apb-btn-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
[data-apb-btn="shimmer"]{--apb-rx-btn-radius:999px;--apb-rx-btn-shadow:0 10px 30px -12px var(--apb-rx-glow,rgba(11,13,18,.35));
  --apb-rx-btn-bg:linear-gradient(var(--apb-rx-brand),var(--apb-rx-brand)) padding-box,
    conic-gradient(from var(--apb-btn-angle),var(--apb-rx-brand),#7dd3fc,#f0abfc,var(--apb-rx-brand)) border-box;
  --apb-rx-btn-border:2px solid transparent;
  --apb-rx-btn2-bg:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,
    conic-gradient(from var(--apb-btn-angle),var(--apb-rx-line,#e7e8ec),var(--apb-rx-brand),var(--apb-rx-line,#e7e8ec)) border-box;
  --apb-rx-btn2-border:2px solid transparent;--apb-rx-btn2-fg:var(--apb-rx-ink,#0b0d12)}
[data-apb-btn="shimmer"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  animation:apbBtnSpin 3.2s linear infinite}
@keyframes apbBtnSpin{to{--apb-btn-angle:360deg}}
[data-apb-btn="border"]{--apb-rx-btn-radius:12px;--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);--apb-rx-btn-shadow:var(--apb-rx-shadow-1,0 1px 2px rgba(11,13,18,.06));
  --apb-rx-btn-bg:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,
    linear-gradient(120deg,var(--apb-rx-brand),color-mix(in srgb,var(--apb-rx-brand) 30%,#7dd3fc)) border-box;
  --apb-rx-btn-border:1.5px solid transparent;
  --apb-rx-btn2-border:1.5px solid var(--apb-rx-line,#e7e8ec);--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="neon"]{--apb-rx-btn-radius:12px;--apb-rx-btn-bg:transparent;--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));
  --apb-rx-btn-border:2px solid var(--apb-rx-brand);--apb-rx-btn-weight:750;
  --apb-rx-btn-shadow:0 0 10px var(--apb-rx-glow,rgba(11,13,18,.35)),inset 0 0 10px color-mix(in srgb,var(--apb-rx-brand) 20%,transparent);
  --apb-rx-btn2-border:2px solid var(--apb-rx-line,#e7e8ec);--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="neon"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn){
  text-shadow:0 0 12px var(--apb-rx-glow,rgba(11,13,18,.35))}
[data-apb-btn="notched"]{--apb-rx-btn-radius:0;--apb-rx-btn-case:uppercase;--apb-rx-btn-track:.06em;--apb-rx-btn-size:13px;--apb-rx-btn-weight:800;
  --apb-rx-btn-shadow:none;--apb-rx-btn2-bg:var(--apb-rx-soft,#eef0ff);--apb-rx-btn2-border:0 solid transparent}
[data-apb-btn="notched"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
[data-apb-btn="metal"]{--apb-rx-btn-radius:10px;--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);
  --apb-rx-btn-bg:linear-gradient(180deg,#f8f9fb,#d9dce3 45%,#c7ccd6 55%,#eceef2);
  --apb-rx-btn-border:1px solid #b6bcc8;
  --apb-rx-btn-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(11,13,18,.12),0 2px 5px rgba(11,13,18,.18);
  --apb-rx-btn2-bg:linear-gradient(180deg,#fdfdfe,#eef0f4);--apb-rx-btn2-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="aurora"]{--apb-rx-btn-radius:999px;--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);--apb-rx-btn-weight:750;
  --apb-rx-btn-bg:linear-gradient(115deg,color-mix(in srgb,var(--apb-rx-brand) 45%,#fff),#a7f3d0,#bae6fd,#f5d0fe,color-mix(in srgb,var(--apb-rx-brand) 45%,#fff));
  --apb-rx-btn-border:1px solid rgba(255,255,255,.7);--apb-rx-btn-shadow:0 10px 26px -12px var(--apb-rx-glow,rgba(11,13,18,.35));
  --apb-rx-btn2-bg:rgba(255,255,255,.6);--apb-rx-btn2-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="aurora"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn){
  background-size:300% 100%;animation:apbBtnPan 6s ease-in-out infinite alternate}
@keyframes apbBtnPan{to{background-position:100% 0}}
[data-apb-btn="chunky"]{--apb-rx-btn-py:17px;--apb-rx-btn-px:34px;--apb-rx-btn-size:16px;--apb-rx-btn-weight:800;--apb-rx-btn-radius:16px;
  --apb-rx-btn-shadow:0 3px 0 color-mix(in srgb,var(--apb-rx-brand) 60%,#000),0 14px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35));
  --apb-rx-btn-hover:translateY(-1px);--apb-rx-btn2-border:2px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="gradient"]{--apb-rx-btn-bg:linear-gradient(90deg,var(--apb-rx-brand) 0%,color-mix(in srgb,var(--apb-rx-brand) 55%,#e11d64) 100%);
  --apb-rx-btn-radius:999px;--apb-rx-btn-shadow:0 10px 26px -10px var(--apb-rx-glow,rgba(11,13,18,.35));
  --apb-rx-btn2-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="elevate"]{--apb-rx-btn-bg:var(--apb-rx-surface,#fff);--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);
  --apb-rx-btn-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-btn-shadow:var(--apb-rx-shadow-2,0 2px 6px rgba(11,13,18,.06),0 14px 34px -12px rgba(11,13,18,.22));
  --apb-rx-btn-radius:12px;--apb-rx-btn2-border:1px solid transparent;--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="inset"]{--apb-rx-btn-bg:color-mix(in srgb,var(--apb-rx-brand) 8%,var(--apb-rx-soft,#eef0ff));--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));
  --apb-rx-btn-shadow:inset 0 2px 5px rgba(11,13,18,.12),inset 0 -1px 0 rgba(255,255,255,.7);--apb-rx-btn-radius:12px;--apb-rx-btn-hover:none;
  --apb-rx-btn2-bg:var(--apb-rx-soft,#eef0ff);--apb-rx-btn2-border:0 solid transparent;--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="retro"]{--apb-rx-btn-bg:transparent;--apb-rx-btn-fg:var(--apb-rx-ink,#0b0d12);--apb-rx-btn-border:1px solid var(--apb-rx-ink,#0b0d12);
  --apb-rx-btn-radius:4px;--apb-rx-btn-shadow:none;--apb-rx-btn-case:uppercase;--apb-rx-btn-track:.14em;--apb-rx-btn-size:12px;--apb-rx-btn-weight:700;
  --apb-rx-btn2-border:1px dashed var(--apb-rx-muted,#6b7280);--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}
[data-apb-btn="duotone"]{--apb-rx-btn-radius:10px;--apb-rx-btn-px:20px;
  --apb-rx-btn-bg:linear-gradient(90deg,color-mix(in srgb,var(--apb-rx-brand) 82%,#000) 0 38px,var(--apb-rx-brand) 38px);
  --apb-rx-btn-icon:"";--apb-rx-btn-icon-w:14px;--apb-rx-btn-shadow:0 10px 26px -10px var(--apb-rx-glow,rgba(11,13,18,.35));
  --apb-rx-btn2-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-btn="dashed"]{--apb-rx-btn-bg:transparent;--apb-rx-btn-fg:var(--apb-rx-accent-text,var(--apb-rx-brand));--apb-rx-btn-border:2px dashed var(--apb-rx-brand);
  --apb-rx-btn-radius:10px;--apb-rx-btn-shadow:none;--apb-rx-btn-weight:750;
  --apb-rx-btn2-border:2px dashed var(--apb-rx-line,#e7e8ec);--apb-rx-btn2-fg:var(--apb-rx-muted,#6b7280)}

/* ---------------------------------------------------------------- 13 hover-effect presets */
[data-apb-btn-fx="lift"]{--apb-rx-btn-hover:translateY(-2px)}
[data-apb-btn-fx="grow"]{--apb-rx-btn-hover:scale(1.05)}
[data-apb-btn-fx="press"]{--apb-rx-btn-hover:translateY(2px)}
[data-apb-btn-fx="none"]{--apb-rx-btn-hover:none}
[data-apb-btn-fx="tilt"]{--apb-rx-btn-hover:rotate(-1.5deg) scale(1.04)}
[data-apb-btn-fx="arrow-in"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  --apb-rx-btn-icon:"";--apb-rx-btn-icon-w:0px}
[data-apb-btn-fx="arrow-in"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::after{
  opacity:0;transform:translateX(-6px)}
[data-apb-btn-fx="arrow-in"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover::after,
[data-apb-btn-fx="arrow-in"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):focus-visible::after{
  width:14px;opacity:1;transform:none}
[data-apb-btn-fx="arrow-nudge"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){
  --apb-rx-btn-icon:"";--apb-rx-btn-icon-w:14px}
[data-apb-btn-fx="arrow-nudge"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover::after{
  transform:translateX(4px)}
[data-apb-btn-fx="shine"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){--apb-rx-btn-clip:hidden}
[data-apb-btn-fx="shine"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::before{
  content:"";z-index:1;background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.45) 48%,transparent 62%);
  transform:translateX(-110%);transition:transform .55s ease}
[data-apb-btn-fx="shine"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover::before{
  transform:translateX(110%)}
[data-apb-btn-fx="fill-sweep"]{--apb-rx-btn-hover:none}
[data-apb-btn-fx="fill-sweep"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){--apb-rx-btn-clip:hidden}
[data-apb-btn-fx="fill-sweep"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::before{
  content:"";background:var(--apb-rx-brand);transform:scaleX(0);transform-origin:left;transition:transform var(--apb-rx-t,.28s)}
[data-apb-btn-fx="fill-sweep"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover{color:#fff}
[data-apb-btn-fx="fill-sweep"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover::before{transform:scaleX(1)}
[data-apb-btn-fx="invert"]{--apb-rx-btn-hover:none}
[data-apb-btn-fx="invert"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn):hover{
  background:var(--apb-rx-ink,#0b0d12);color:#fff}
[data-apb-btn-fx="invert"] :is(.apb-rx-cta--secondary,.apb-rx-pf-cta--outline,.apb-rx-cs-cta--outline,.apb-rx-cr-cta--outline,.apb-rx-re-cta--outline,.apb-rx-ev-cta--outline,.apb-rx-lb-cta--outline):hover{
  background:var(--apb-rx-brand);border-color:transparent;color:#fff}
[data-apb-btn-fx="glow-pulse"]{--apb-rx-btn-hover:translateY(-1px)}
[data-apb-btn-fx="glow-pulse"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn):hover{
  box-shadow:0 0 0 3px color-mix(in srgb,var(--apb-rx-brand) 25%,transparent),0 10px 44px -4px var(--apb-rx-glow,rgba(11,13,18,.35))}
[data-apb-btn-fx="ring"]{--apb-rx-btn-hover:none}
[data-apb-btn-fx="ring"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn):hover{
  box-shadow:0 0 0 4px color-mix(in srgb,var(--apb-rx-brand) 22%,transparent),var(--apb-rx-btn-shadow,0 12px 30px -10px var(--apb-rx-glow,rgba(11,13,18,.35)))}
[data-apb-btn-fx="pulse"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn)::before{
  content:"";animation:apbBtnPing 2.2s cubic-bezier(0,0,.2,1) infinite;box-shadow:0 0 0 0 color-mix(in srgb,var(--apb-rx-brand) 45%,transparent)}
@keyframes apbBtnPing{75%,100%{box-shadow:0 0 0 12px transparent}}

/* ---------------------------------------------------------------- reduced motion: freeze everything */
@media (prefers-reduced-motion:reduce){
  [data-apb-btn-fx="lift"],[data-apb-btn-fx="grow"],[data-apb-btn-fx="press"],[data-apb-btn-fx="tilt"]{--apb-rx-btn-hover:none}
  :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn),
  :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::before,
  :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn)::after{transition:none;animation:none}
  [data-apb-btn="shimmer"] :is(.apb-rx-cta,.apb-rx-pf-cta,.apb-rx-cs-cta,.apb-rx-cr-cta,.apb-rx-re-cta,.apb-rx-ev-cta,.apb-rx-lb-cta,.apb-rx-btn){animation:none}
  [data-apb-btn="aurora"] :is(.apb-rx-cta--primary,.apb-rx-pf-cta--primary,.apb-rx-cs-cta--primary,.apb-rx-cr-cta--primary,.apb-rx-re-cta--primary,.apb-rx-ev-cta--primary,.apb-rx-lb-cta--primary,.apb-rx-btn){animation:none}
}
/* ==== assets/pages/component-cards.css ==== */
/* ============================================================================
   CARD SYSTEM — surface presets x hover behaviours (registry: APB_Component_Cards).
   FULLY VAR-DRIVEN: presets are pure CSS-variable bundles on [data-apb-card] /
   [data-apb-card-fx]; the primitive below is the ONLY place any property is set —
   including backdrop-filter, clip-path, animation, outline and both pseudo layers.
   Custom properties inherit nearest-ancestor-first, so a section-level attribute
   overrides the page wrapper for EVERY effect (no descendant-selector leakage
   between nested configs). Knobs arrive as inline --apb-rx-card-* vars (inline
   beats the preset stylesheet); a knob-only config activates adoption via the
   neutral data-apb-card-knobs marker.

   ADOPTION CONTRACT (zero-regression guarantee, asserted by tools/apb-cards-smoke.php):
   the canonical .apb-rx-card is ALWAYS token-driven; the three core staples
   (.apb-rx-tile feature cards, .apb-rx-quote testimonials, .apb-rx-tier pricing)
   join the system ONLY under an active config ancestor. With nothing configured
   they keep their exact current look. Family showcase cards are never touched,
   and the FEATURED variants (.apb-rx-quote--feat, .apb-rx-tier--hot) keep their
   designed emphasis under any preset.
   This file loads LAST so its attribute-scoped rules win ties. Zero important-flags.
   ============================================================================ */

/* ---------------------------------------------------------------- primitive + adoption */
.apb-rx-card,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)){
  position:relative;isolation:isolate;
  background:var(--apb-rx-card-bg,var(--apb-rx-surface,#fff));
  color:var(--apb-rx-card-fg,inherit);
  border:var(--apb-rx-card-border,1px solid var(--apb-rx-line,#e7e8ec));
  border-radius:var(--apb-rx-card-radius,var(--apb-rx-radius,16px));
  box-shadow:var(--apb-rx-card-shadow,0 1px 2px rgba(11,13,18,.06));
  padding:var(--apb-rx-card-pad,26px);
  backdrop-filter:var(--apb-rx-card-backdrop,none);
  -webkit-backdrop-filter:var(--apb-rx-card-backdrop,none);
  clip-path:var(--apb-rx-card-clip,none);
  -webkit-mask:var(--apb-rx-card-mask,none);mask:var(--apb-rx-card-mask,none);
  -webkit-mask-composite:var(--apb-rx-card-maskcomp-wk,source-over);mask-composite:var(--apb-rx-card-maskcomp,add);
  outline:var(--apb-rx-card-outline,none);outline-offset:var(--apb-rx-card-outline-off,0);
  animation:var(--apb-rx-card-anim,none);
  transition:transform var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),box-shadow var(--apb-rx-t,.28s) var(--apb-rx-ease,ease),
    border-color var(--apb-rx-t-fast,.16s),background var(--apb-rx-t,.28s)}
.apb-rx-card:hover,.apb-rx-card:focus-within,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)):hover,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)):focus-within{
  transform:var(--apb-rx-card-hover,none);
  box-shadow:var(--apb-rx-card-hover-shadow,var(--apb-rx-card-shadow,0 1px 2px rgba(11,13,18,.06)));
  border-color:var(--apb-rx-card-hover-border,var(--apb-rx-line,#e7e8ec))}
/* dark-fg presets recolor the card's own text — headings/strong/quote text follow fg, prose follows muted */
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)) :is(h3,h4,strong,blockquote,figcaption){
  color:var(--apb-rx-card-fg,inherit)}
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)) :is(p,li,small){
  color:var(--apb-rx-card-muted,inherit)}
/* feature-tile media stays flush when the padding knob moves (base rule hardcodes -24px) */
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) .apb-rx-tile>.apb-rx-thumb{
  margin:calc(var(--apb-rx-card-pad,26px)*-1) calc(var(--apb-rx-card-pad,26px)*-1) 16px}
/* pseudo layers — ONE rule each; presets fill the vars (content none = layer off) */
.apb-rx-card::before,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))::before{
  content:var(--apb-rx-card-b4,none);position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  z-index:var(--apb-rx-card-b4-z,-1);background:var(--apb-rx-card-b4-bg,none);
  border:var(--apb-rx-card-b4-border,0 solid transparent);box-shadow:var(--apb-rx-card-b4-shadow,none);
  transform:var(--apb-rx-card-b4-tf,none);opacity:var(--apb-rx-card-b4-op,1);transition:opacity .3s}
.apb-rx-card:hover::before,.apb-rx-card:focus-within::before,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)):hover::before,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)):focus-within::before{
  opacity:var(--apb-rx-card-b4-op-hover,var(--apb-rx-card-b4-op,1))}
.apb-rx-card::after,
:is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))::after{
  content:var(--apb-rx-card-af,none);position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  z-index:var(--apb-rx-card-af-z,-1);background:var(--apb-rx-card-af-bg,none);
  border:var(--apb-rx-card-af-border,0 solid transparent);box-shadow:var(--apb-rx-card-af-shadow,none);
  transform:var(--apb-rx-card-af-tf,none);opacity:var(--apb-rx-card-af-op,1);mix-blend-mode:var(--apb-rx-card-af-blend,normal);
  animation:var(--apb-rx-card-af-anim,none)}
/* media child for the canonical primitive (flush to the edge, radius follows the card) */
.apb-rx-card-media{margin:calc(var(--apb-rx-card-pad,26px)*-1) calc(var(--apb-rx-card-pad,26px)*-1) 16px;
  border-radius:calc(var(--apb-rx-card-radius,var(--apb-rx-radius,16px)) - 1px) calc(var(--apb-rx-card-radius,var(--apb-rx-radius,16px)) - 1px) 0 0;
  overflow:hidden;aspect-ratio:16/10;background:var(--apb-rx-soft,#f2f3f7)}
.apb-rx-card-media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform var(--apb-rx-t,.28s) cubic-bezier(.2,.7,.2,1)}
.apb-rx-card:is(:hover,:focus-within) .apb-rx-card-media img{transform:var(--apb-rx-card-img-hover,none)}

/* ---------------------------------------------------------------- 28 surface presets (pure var bundles) */
/* PRESET ISOLATION: a nested [data-apb-card] must not inherit the OUTER preset's vars.
   `initial` makes a custom property guaranteed-invalid, so var() falls back to the primitive
   default; each bundle below then sets only what it customises. radius/pad are EXCLUDED —
   they are knobs and intentionally inherit through section overrides (matches buttons). */
[data-apb-card]{--apb-rx-card-bg:initial;--apb-rx-card-fg:initial;--apb-rx-card-muted:initial;
  --apb-rx-card-border:initial;--apb-rx-card-shadow:initial;--apb-rx-card-backdrop:initial;
  --apb-rx-card-clip:initial;--apb-rx-card-mask:initial;--apb-rx-card-maskcomp:initial;--apb-rx-card-maskcomp-wk:initial;
  --apb-rx-card-outline:initial;--apb-rx-card-outline-off:initial;
  --apb-rx-card-anim:initial;--apb-rx-card-divider:initial;
  --apb-rx-card-b4:initial;--apb-rx-card-b4-z:initial;--apb-rx-card-b4-bg:initial;--apb-rx-card-b4-border:initial;
  --apb-rx-card-b4-shadow:initial;--apb-rx-card-b4-tf:initial;--apb-rx-card-b4-op:initial;--apb-rx-card-b4-op-hover:initial;
  --apb-rx-card-af:initial;--apb-rx-card-af-z:initial;--apb-rx-card-af-bg:initial;
  --apb-rx-card-af-border:initial;--apb-rx-card-af-shadow:initial;--apb-rx-card-af-tf:initial;
  --apb-rx-card-af-op:initial;--apb-rx-card-af-blend:initial;--apb-rx-card-af-anim:initial}
[data-apb-card-fx]{--apb-rx-card-hover:initial;--apb-rx-card-hover-shadow:initial;
  --apb-rx-card-hover-border:initial;--apb-rx-card-img-hover:initial}
[data-apb-card="lifted"]{--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06)}
[data-apb-card="flat"]{--apb-rx-card-bg:var(--apb-rx-soft,#f2f3f7);--apb-rx-card-border:0 solid transparent;--apb-rx-card-shadow:none}
[data-apb-card="outlined"]{--apb-rx-card-shadow:none;--apb-rx-card-border:1.5px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-card="sharp"]{--apb-rx-card-radius:0;--apb-rx-card-shadow:none;--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-card="pillowy"]{--apb-rx-card-radius:26px;--apb-rx-card-pad:28px;--apb-rx-card-border:0 solid transparent;
  --apb-rx-card-shadow:0 2px 4px rgba(11,13,18,.04),0 18px 44px -18px rgba(11,13,18,.18)}
[data-apb-card="brutal"]{--apb-rx-card-radius:8px;--apb-rx-card-border:2px solid var(--apb-rx-ink,#0b0d12);
  --apb-rx-card-shadow:6px 6px 0 var(--apb-rx-ink,#0b0d12)}
[data-apb-card="floating"]{--apb-rx-card-border:0 solid transparent;
  --apb-rx-card-shadow:0 2px 6px rgba(11,13,18,.05),0 24px 60px -20px rgba(11,13,18,.28)}
[data-apb-card="inset"]{--apb-rx-card-bg:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 3.5%,var(--apb-rx-surface,#fff));
  --apb-rx-card-border:1px solid color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 9%,transparent);
  --apb-rx-card-shadow:inset 0 2px 6px rgba(11,13,18,.07)}
[data-apb-card="glass"]{--apb-rx-card-bg:rgba(255,255,255,.55);--apb-rx-card-border:1px solid rgba(255,255,255,.65);
  --apb-rx-card-shadow:0 8px 32px rgba(11,13,18,.12);--apb-rx-card-muted:#3f4650;
  --apb-rx-card-backdrop:blur(14px) saturate(1.3)}
[data-apb-card="liquid"]{--apb-rx-card-radius:24px;--apb-rx-card-bg:rgba(255,255,255,.42);
  --apb-rx-card-border:1px solid rgba(255,255,255,.75);--apb-rx-card-muted:#3f4650;
  --apb-rx-card-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(255,255,255,.22),0 12px 40px rgba(11,13,18,.14);
  --apb-rx-card-backdrop:blur(22px) saturate(1.6)}
[data-apb-card="underlay"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);
  --apb-rx-card-shadow:10px 10px 0 color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 6%,transparent)}
[data-apb-card="border"]{--apb-rx-card-border:1px solid transparent;--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-bg:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,
    linear-gradient(135deg,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 55%,var(--apb-rx-line,#e7e8ec)),var(--apb-rx-line,#e7e8ec) 60%) border-box}
[data-apb-card="dark"]{--apb-rx-card-bg:#101319;--apb-rx-card-fg:#f4f5f8;--apb-rx-card-muted:#9aa1ad;
  --apb-rx-card-border:1px solid rgba(255,255,255,.09);--apb-rx-card-shadow:0 16px 40px -16px rgba(0,0,0,.5)}
[data-apb-card="graphite"]{--apb-rx-card-bg:linear-gradient(180deg,#171b24,#12151d);--apb-rx-card-fg:#f4f5f8;
  --apb-rx-card-muted:#9aa1ad;--apb-rx-card-border:1px solid rgba(255,255,255,.07);
  --apb-rx-card-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 16px 40px -16px rgba(0,0,0,.55)}
[data-apb-card="paper"]{--apb-rx-card-bg:#fdfcf9;--apb-rx-card-border:1px solid #e9e5da;--apb-rx-card-radius:6px;
  --apb-rx-card-shadow:0 1px 3px rgba(60,50,30,.08);
  --apb-rx-card-af:"";--apb-rx-card-af-op:.35;
  --apb-rx-card-af-bg:repeating-linear-gradient(0deg,transparent 0 2px,rgba(60,50,30,.012) 2px 3px)}
[data-apb-card="frame"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-radius:4px;
  --apb-rx-card-pad:18px;--apb-rx-card-shadow:none;
  --apb-rx-card-outline:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-outline-off:-9px}
[data-apb-card="divided"]{--apb-rx-card-shadow:none;--apb-rx-card-divider:1px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-card="divided"] :is(.apb-rx-card,.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))>:last-child{
  border-top:var(--apb-rx-card-divider,0 solid transparent);padding-top:14px;margin-top:14px}
[data-apb-card="ridge"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);
  --apb-rx-card-shadow:0 0 0 4px var(--apb-rx-soft,#f2f3f7),0 1px 2px rgba(11,13,18,.06)}
[data-apb-card="spotlight"]{--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-b4:"";--apb-rx-card-b4-z:0;--apb-rx-card-b4-op:0;--apb-rx-card-b4-op-hover:1;
  --apb-rx-card-b4-bg:radial-gradient(320px circle at var(--mx,50%) var(--my,38%),color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 9%,transparent),transparent 65%)}
@property --apb-card-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
[data-apb-card="shimmer"]{--apb-rx-card-border:1px solid transparent;--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-anim:apbCardSpin 5s linear infinite;
  --apb-rx-card-bg:linear-gradient(var(--apb-rx-surface,#fff),var(--apb-rx-surface,#fff)) padding-box,
    conic-gradient(from var(--apb-card-angle),var(--apb-rx-line,#e7e8ec),color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 70%,#fff),var(--apb-rx-line,#e7e8ec) 40%) border-box}
@keyframes apbCardSpin{to{--apb-card-angle:360deg}}
[data-apb-card="neon"]{--apb-rx-card-bg:#0d1017;--apb-rx-card-fg:#f4f5f8;--apb-rx-card-muted:#9aa1ad;
  --apb-rx-card-border:1px solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 60%,#0d1017);
  --apb-rx-card-shadow:0 0 0 1px color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 25%,transparent),0 0 34px -6px var(--apb-rx-glow,rgba(79,70,229,.35)),0 14px 34px -14px rgba(0,0,0,.5)}
[data-apb-card="aurora"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-bg:radial-gradient(120% 90% at 100% 0%,rgba(167,139,250,.14),transparent 55%),
    radial-gradient(110% 80% at 0% 100%,rgba(103,232,249,.12),transparent 50%),var(--apb-rx-surface,#fff)}
[data-apb-card="notched"]{--apb-rx-card-radius:0;--apb-rx-card-border:0 solid transparent;
  --apb-rx-card-bg:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 4%,var(--apb-rx-surface,#fff));--apb-rx-card-shadow:none;
  --apb-rx-card-clip:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%)}
[data-apb-card="metal"]{--apb-rx-card-radius:12px;--apb-rx-card-border:1px solid #d6d9df;
  --apb-rx-card-bg:linear-gradient(180deg,#fdfdfe,#eef0f4 55%,#f7f8fa);
  --apb-rx-card-shadow:inset 0 1px 0 #fff,0 2px 6px rgba(11,13,18,.08)}
[data-apb-card="stacked"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-b4:"";--apb-rx-card-b4-z:-1;--apb-rx-card-b4-bg:var(--apb-rx-surface,#fff);
  --apb-rx-card-b4-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-b4-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-b4-tf:translate(9px,9px);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-2;--apb-rx-card-af-bg:var(--apb-rx-surface,#fff);
  --apb-rx-card-af-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-af-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-af-tf:translate(18px,18px);--apb-rx-card-af-op:.65}
[data-apb-card="sticker"]{--apb-rx-card-radius:20px;--apb-rx-card-bg:var(--apb-rx-soft,#f2f3f7);--apb-rx-card-border:0 solid transparent;
  --apb-rx-card-shadow:0 0 0 6px var(--apb-rx-surface,#fff),0 4px 10px rgba(11,13,18,.08),0 18px 40px -14px rgba(11,13,18,.28)}
[data-apb-card="grain"]{--apb-rx-card-border:1px solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 22%,var(--apb-rx-line,#e7e8ec));--apb-rx-card-shadow:none;
  --apb-rx-card-bg:linear-gradient(340deg,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 12%,var(--apb-rx-surface,#fff)),var(--apb-rx-surface,#fff) 70%);
  --apb-rx-card-af:"";--apb-rx-card-af-z:0;--apb-rx-card-af-op:.65;--apb-rx-card-af-blend:multiply;
  --apb-rx-card-af-bg:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency=".9" numOctaves="2"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .09 0"/></filter><rect width="120" height="120" filter="url(%23n)"/></svg>')}
[data-apb-card="blueprint"]{--apb-rx-card-radius:10px;--apb-rx-card-border:1.5px dashed color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 30%,transparent);
  --apb-rx-card-shadow:none;--apb-rx-card-bg:color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 3%,var(--apb-rx-surface,#fff))}

/* ---------------------------------------------------------------- wave 2 — 15 new surface presets (pure var bundles)
   photographic: vignette softlight film · tactile: emboss ceramic velvet linen ·
   print: offset cropmarks halftone ticket · playful-commerce: holofoil · aura family: mist haze nocturne */
[data-apb-card="vignette"]{--apb-rx-card-border:0 solid transparent;
  --apb-rx-card-shadow:0 2px 8px rgba(11,13,18,.1),0 18px 44px -16px rgba(11,13,18,.22);
  --apb-rx-card-b4:"";--apb-rx-card-b4-z:0;--apb-rx-card-b4-shadow:inset 0 0 64px 8px rgba(11,13,18,.16)}
[data-apb-card="softlight"]{--apb-rx-card-bg:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 4%,var(--apb-rx-surface,#fff));
  --apb-rx-card-border:1px solid color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 7%,transparent);
  --apb-rx-card-shadow:0 12px 34px -14px rgba(11,13,18,.3),0 2px 6px rgba(11,13,18,.08);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-1;
  --apb-rx-card-af-bg:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0) 38%)}
[data-apb-card="film"]{--apb-rx-card-bg:#f6f3ee;--apb-rx-card-border:0 solid transparent;--apb-rx-card-radius:10px;
  --apb-rx-card-muted:#5c554a;
  --apb-rx-card-shadow:0 2px 6px rgba(40,35,25,.12),0 20px 44px -18px rgba(40,35,25,.3);
  --apb-rx-card-b4:"";--apb-rx-card-b4-z:0;--apb-rx-card-b4-shadow:inset 0 0 54px 6px rgba(35,28,18,.18);
  --apb-rx-card-af:"";--apb-rx-card-af-z:0;--apb-rx-card-af-op:.5;--apb-rx-card-af-blend:multiply;
  --apb-rx-card-af-bg:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120"><filter id="n"><feTurbulence type="fractalNoise" baseFrequency=".9" numOctaves="2"/><feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0"/></filter><rect width="120" height="120" filter="url(%23n)"/></svg>')}
[data-apb-card="emboss"]{--apb-rx-card-bg:var(--apb-rx-soft,#f2f3f7);--apb-rx-card-border:0 solid transparent;--apb-rx-card-radius:20px;
  --apb-rx-card-shadow:8px 8px 18px rgba(11,13,18,.12),-8px -8px 18px rgba(255,255,255,.9)}
[data-apb-card="ceramic"]{--apb-rx-card-radius:18px;--apb-rx-card-border:1px solid rgba(255,255,255,.8);
  --apb-rx-card-bg:linear-gradient(175deg,#fff,#eef0f4 60%,#f6f7fa);
  --apb-rx-card-shadow:inset 0 2px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(11,13,18,.05),0 3px 8px rgba(11,13,18,.08),0 16px 36px -14px rgba(11,13,18,.2);
  --apb-rx-card-af:"";--apb-rx-card-af-z:0;
  --apb-rx-card-af-bg:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 34%,transparent 46%)}
[data-apb-card="velvet"]{--apb-rx-card-bg:radial-gradient(120% 100% at 24% 0%,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 34%,#0c0a18),#0c0a18 70%);
  --apb-rx-card-fg:#f5f3ff;--apb-rx-card-muted:#b9b3d6;--apb-rx-card-border:1px solid rgba(255,255,255,.08);
  --apb-rx-card-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 20px 48px -14px rgba(10,6,30,.6)}
[data-apb-card="linen"]{--apb-rx-card-bg:#faf8f4;--apb-rx-card-border:1px solid #e7e2d6;--apb-rx-card-radius:8px;
  --apb-rx-card-shadow:0 1px 3px rgba(60,50,30,.08);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-1;--apb-rx-card-af-op:.55;
  --apb-rx-card-af-bg:repeating-linear-gradient(0deg,rgba(90,80,60,.045) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(90,80,60,.045) 0 1px,transparent 1px 3px)}
/* offset: riso/CMYK misregistration via hard solid shadows — shadows only render outside the
   border-box, so the ghosts peek out at the corners and never cross the content */
[data-apb-card="offset"]{--apb-rx-card-border:1.5px solid var(--apb-rx-ink,#0b0d12);--apb-rx-card-radius:12px;
  --apb-rx-card-shadow:6px 6px 0 0 color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 80%,#fff),
    -5px -5px 0 0 color-mix(in srgb,#ff2d78 65%,#fff)}
[data-apb-card="cropmarks"]{--apb-rx-card-border:0 solid transparent;--apb-rx-card-radius:2px;--apb-rx-card-shadow:none;
  --apb-rx-card-bg:color-mix(in srgb,var(--apb-rx-ink,#0b0d12) 2.5%,var(--apb-rx-surface,#fff));
  --apb-rx-card-af:"";--apb-rx-card-af-z:0;
  --apb-rx-card-af-bg:linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 0 0/18px 1.5px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 0 0/1.5px 18px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 100% 0/18px 1.5px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 100% 0/1.5px 18px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 0 100%/18px 1.5px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 0 100%/1.5px 18px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 100% 100%/18px 1.5px no-repeat,
    linear-gradient(var(--apb-rx-ink,#0b0d12),var(--apb-rx-ink,#0b0d12)) 100% 100%/1.5px 18px no-repeat}
/* halftone: dots live ONLY in a bottom-right corner pocket (radial cover fades them out) */
[data-apb-card="halftone"]{--apb-rx-card-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-card-shadow:0 1px 2px rgba(11,13,18,.06);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-1;--apb-rx-card-af-op:.55;
  --apb-rx-card-af-bg:radial-gradient(150% 150% at 100% 100%,rgba(255,255,255,0) 0 15%,var(--apb-rx-surface,#fff) 42%),
    radial-gradient(circle at 2px 2px,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 60%,transparent) 1.5px,transparent 2px) 0 0/9px 9px}
/* ticket: flat material — the mask primitive cuts the two edge notches; box-shadow off by design */
[data-apb-card="ticket"]{--apb-rx-card-radius:14px;--apb-rx-card-border:0 solid transparent;--apb-rx-card-bg:var(--apb-rx-surface,#fff);
  --apb-rx-card-shadow:none;
  --apb-rx-card-af:"";--apb-rx-card-af-z:0;
  --apb-rx-card-af-bg:repeating-linear-gradient(90deg,rgba(11,13,18,.2) 0 7px,transparent 7px 14px) 16px 62%/calc(100% - 32px) 1.5px no-repeat;
  --apb-rx-card-mask:radial-gradient(circle 11px at 0 62%,transparent 98%,#000 100%),radial-gradient(circle 11px at 100% 62%,transparent 98%,#000 100%);
  --apb-rx-card-maskcomp:intersect;--apb-rx-card-maskcomp-wk:source-in}
[data-apb-card="holofoil"]{--apb-rx-card-radius:16px;--apb-rx-card-border:1px solid rgba(255,255,255,.7);
  --apb-rx-card-bg:linear-gradient(135deg,#f5f6fa,#e9ecf4);
  --apb-rx-card-shadow:0 2px 8px rgba(11,13,18,.1),0 18px 40px -16px rgba(11,13,18,.22);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-1;
  --apb-rx-card-af-bg:linear-gradient(115deg,rgba(255,255,255,0) 28%,rgba(255,255,255,.8) 44%,rgba(255,255,255,0) 60%),
    conic-gradient(from 210deg at 60% 40%,rgba(255,70,175,.55),rgba(60,195,255,.52),rgba(105,255,195,.48),rgba(255,215,80,.52),rgba(150,100,255,.55),rgba(255,70,175,.55))}
/* aura family (Gary's poster reference): soft gradient-mist washes, pure layered radials */
[data-apb-card="mist"]{--apb-rx-card-border:0 solid transparent;--apb-rx-card-radius:14px;
  --apb-rx-card-shadow:0 2px 8px rgba(11,13,18,.07),0 18px 44px -18px rgba(11,13,18,.16);
  --apb-rx-card-bg:radial-gradient(90% 70% at 15% 85%,rgba(255,120,90,.26),transparent 60%),
    radial-gradient(80% 60% at 80% 75%,rgba(120,160,255,.28),transparent 60%),
    radial-gradient(70% 60% at 60% 20%,rgba(160,120,255,.15),transparent 65%),
    radial-gradient(100% 80% at 30% 40%,rgba(140,200,255,.2),transparent 60%),#fdfdfe}
[data-apb-card="haze"]{--apb-rx-card-border:1px solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 10%,#eef0f4);--apb-rx-card-radius:14px;
  --apb-rx-card-shadow:0 2px 8px rgba(11,13,18,.06),0 16px 40px -18px rgba(11,13,18,.14);
  --apb-rx-card-bg:radial-gradient(120% 55% at 50% 108%,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 26%,#cfe0ff),transparent 62%),
    radial-gradient(60% 35% at 30% 105%,rgba(150,190,255,.38),transparent 70%),#fff}
[data-apb-card="nocturne"]{--apb-rx-card-fg:#f2f4f6;--apb-rx-card-muted:#93a0ab;--apb-rx-card-radius:14px;
  --apb-rx-card-border:1px solid rgba(255,255,255,.07);
  --apb-rx-card-shadow:0 2px 4px rgba(0,0,0,.3),0 22px 52px -16px rgba(0,0,0,.55);
  --apb-rx-card-bg:radial-gradient(120% 60% at 50% 112%,rgba(30,160,140,.5),transparent 64%),
    radial-gradient(70% 40% at 70% 108%,rgba(60,120,200,.3),transparent 70%),#07090c}

/* ---------------------------------------------------------------- glass finishes (data-apb-card-glass · registry GLASS_FINISHES)
   finishes: liquid fluted prism etch drop bevel smoke aurora pebble
   Pure var bundles. Real refraction arrives as an inline --apb-rx-card-backdrop:url(#map) set by
   assets/pages/apb-card-glass.js (Chromium only); without it these degrade to the glass/liquid frost.
   liquid/prism/etch/drop differ only in the JS displacement map — no dedicated bundle needed. */
[data-apb-card-glass]{--apb-rx-card-bg:rgba(255,255,255,.16);--apb-rx-card-border:1px solid rgba(255,255,255,.55);
  --apb-rx-card-muted:#3a4150;
  --apb-rx-card-shadow:0 2px 2px rgba(9,9,20,.07),0 16px 40px rgba(9,9,20,.18),inset 0 1px 0 rgba(255,255,255,.6),inset 0 0 0 1px rgba(255,255,255,.12)}
[data-apb-card-glass="fluted"]{--apb-rx-card-af:"";--apb-rx-card-af-z:-1;
  --apb-rx-card-af-bg:repeating-linear-gradient(90deg,rgba(255,255,255,.2) 0 1px,rgba(255,255,255,0) 3px 8px,rgba(10,12,30,.06) 9px 11px,rgba(255,255,255,.08) 12px 14px,rgba(255,255,255,0) 15px 20px)}
[data-apb-card-glass="bevel"]{--apb-rx-card-bg:rgba(255,255,255,.1);
  --apb-rx-card-shadow:0 2px 2px rgba(9,9,20,.09),0 20px 46px rgba(9,9,20,.22),inset 0 0 0 1px rgba(255,255,255,.35),inset 0 0 0 7px rgba(255,255,255,.12),inset 0 0 0 8px rgba(120,140,255,.1),inset 0 2px 0 rgba(255,255,255,.65);
  --apb-rx-card-af:"";--apb-rx-card-af-z:-1;
  --apb-rx-card-af-bg:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.28) 44%,rgba(255,255,255,.05) 52%,transparent 62%)}
[data-apb-card-glass="smoke"]{--apb-rx-card-bg:rgba(10,12,20,.32);--apb-rx-card-fg:#f4f5f8;--apb-rx-card-muted:#a6aebd;
  --apb-rx-card-border:1px solid rgba(255,255,255,.15);
  --apb-rx-card-shadow:0 2px 2px rgba(0,0,0,.28),0 18px 44px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.16);
  --apb-rx-card-b4:"";--apb-rx-card-b4-z:0;--apb-rx-card-b4-shadow:inset 0 0 46px 12px rgba(0,0,0,.45)}
@property --apb-card-glass-angle{syntax:"<angle>";initial-value:210deg;inherits:false}
[data-apb-card-glass="aurora"]{--apb-rx-card-af:"";--apb-rx-card-af-z:-1;--apb-rx-card-af-blend:overlay;
  --apb-rx-card-af-anim:apbCardGlassSheen 16s linear infinite;
  --apb-rx-card-af-bg:conic-gradient(from var(--apb-card-glass-angle,210deg) at 32% 22%,rgba(255,44,150,.34),rgba(44,200,255,.28),rgba(90,255,190,.24),rgba(255,215,60,.26),rgba(170,80,255,.3),rgba(255,44,150,.34))}
@keyframes apbCardGlassSheen{to{--apb-card-glass-angle:570deg}}
[data-apb-card-glass="pebble"]{--apb-rx-card-bg:rgba(255,255,255,.3)}
@media (prefers-reduced-motion:reduce){[data-apb-card-glass]{--apb-rx-card-af-anim:none}}
@media (prefers-reduced-transparency:reduce),(forced-colors:active){
  [data-apb-card-glass]{--apb-rx-card-backdrop:none;--apb-rx-card-bg:var(--apb-rx-surface,#fff)}
  [data-apb-card-glass="smoke"]{--apb-rx-card-bg:#101319}}

/* ---------------------------------------------------------------- 9 hover behaviours (pure var bundles) */
[data-apb-card-fx="lift"]{--apb-rx-card-hover:translateY(-4px);
  --apb-rx-card-hover-shadow:0 4px 10px rgba(11,13,18,.06),0 22px 48px -16px rgba(11,13,18,.25)}
[data-apb-card-fx="grow"]{--apb-rx-card-hover:scale(1.018);
  --apb-rx-card-hover-shadow:0 4px 10px rgba(11,13,18,.06),0 20px 44px -16px rgba(11,13,18,.22)}
[data-apb-card-fx="raise"]{--apb-rx-card-hover-shadow:0 3px 8px rgba(11,13,18,.07),0 26px 56px -18px rgba(11,13,18,.3)}
[data-apb-card-fx="glow"]{--apb-rx-card-hover-shadow:0 0 0 1px color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 30%,transparent),0 14px 40px -12px var(--apb-rx-glow,rgba(79,70,229,.35))}
[data-apb-card-fx="outline"]{--apb-rx-card-hover-border:color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 55%,var(--apb-rx-line,#e7e8ec))}
[data-apb-card-fx="press"]{--apb-rx-card-hover:translateY(2px);--apb-rx-card-hover-shadow:0 1px 2px rgba(11,13,18,.06)}
[data-apb-card-fx="tilt"]{--apb-rx-card-hover:perspective(900px) rotateX(1.6deg) rotateY(-1.6deg) translateY(-3px);
  --apb-rx-card-hover-shadow:0 4px 10px rgba(11,13,18,.06),0 24px 50px -16px rgba(11,13,18,.26)}
[data-apb-card-fx="zoom"]{--apb-rx-card-hover:translateY(-2px);--apb-rx-card-img-hover:scale(1.06)}
[data-apb-card-fx="none"]{--apb-rx-card-hover:none;--apb-rx-card-hover-shadow:var(--apb-rx-card-shadow,0 1px 2px rgba(11,13,18,.06))}
/* brutal pairs naturally with press: the hard shadow collapses */
[data-apb-card="brutal"][data-apb-card-fx="press"]{--apb-rx-card-hover:translate(4px,4px);--apb-rx-card-hover-shadow:2px 2px 0 var(--apb-rx-ink,#0b0d12)}

/* ---------------------------------------------------------------- wave 2 — 2 new hover fx (pure var bundle + one attribute-scoped fx) */
/* lean: pointer-following 3D tilt — uses the EXISTING hover transform slot; JS feeds --apb-lx/--apb-ly */
[data-apb-card-fx="lean"]{--apb-rx-card-hover:perspective(700px) rotateX(var(--apb-ly,0deg)) rotateY(var(--apb-lx,0deg)) translateY(-2px);
  --apb-rx-card-hover-shadow:0 6px 14px rgba(11,13,18,.08),0 26px 54px -18px rgba(11,13,18,.3)}
/* sheen: one-shot light sweep on hover. Not a pure var bundle (needs its own ::after content/background/
   transition, same shape as the "divided" precedent above) — temporarily replaces the surface's own
   decorative ::after layer while active. */
[data-apb-card-fx="sheen"] :is(.apb-rx-card,.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))::after{
  content:"";background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%) -160% 0/280% 100% no-repeat;
  border:0 solid transparent;box-shadow:none;transform:none;opacity:1;z-index:1;mix-blend-mode:normal;
  transition:background-position .7s ease}
[data-apb-card-fx="sheen"] :is(.apb-rx-card,.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)):is(:hover,:focus-within)::after{
  background-position:160% 0}

/* ---------------------------------------------------------------- scheme awareness */
/* On a dark section scheme the translucent presets flip to dark glass; light-surface presets
   (brutal, metal, sticker, ...) keep their own readable fg on purpose. Vars only, so the
   nearest data-apb-card still wins inside nested configs. */
:is([data-apb-scheme="dark"][data-apb-card="glass"],[data-apb-card="glass"] [data-apb-scheme="dark"],[data-apb-scheme="dark"] [data-apb-card="glass"]){
  --apb-rx-card-bg:rgba(255,255,255,.06);--apb-rx-card-border:1px solid rgba(255,255,255,.14);
  --apb-rx-card-shadow:0 8px 32px rgba(0,0,0,.35);--apb-rx-card-fg:#f4f5f8;--apb-rx-card-muted:#a6adba}
:is([data-apb-scheme="dark"][data-apb-card="liquid"],[data-apb-card="liquid"] [data-apb-scheme="dark"],[data-apb-scheme="dark"] [data-apb-card="liquid"]){
  --apb-rx-card-bg:rgba(255,255,255,.05);--apb-rx-card-border:1px solid rgba(255,255,255,.18);
  --apb-rx-card-fg:#f4f5f8;--apb-rx-card-muted:#a6adba;
  --apb-rx-card-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 12px 40px rgba(0,0,0,.4)}

/* ---------------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion:reduce){
  .apb-rx-card,.apb-rx-card-media img,
  :is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot)){transition:none;animation:none}
  [data-apb-card-fx]{--apb-rx-card-hover:none;--apb-rx-card-img-hover:none}
  [data-apb-card]{--apb-rx-card-anim:none}
  .apb-rx-card::before,
  :is([data-apb-card],[data-apb-card-fx],[data-apb-card-knobs]) :is(.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))::before{transition:none}
  [data-apb-card-fx="sheen"] :is(.apb-rx-card,.apb-rx-tile,.apb-rx-quote:not(.apb-rx-quote--feat),.apb-rx-tier:not(.apb-rx-tier--hot))::after{transition:none}
}
/* ==== assets/pages/component-accents.css ==== */
/* ============================================================================
   ACCENT SYSTEM — five small brand axes (registry: APB_Component_Accents):
   CHIP data-apb-chip · DIVIDER data-apb-divider · IMAGE data-apb-img ·
   INPUT data-apb-input · LINK data-apb-link. Same discipline as buttons/cards:
   fully var-driven presets (pure variable bundles), gated adoption, preset
   isolation via `initial`, reduced-motion, zero important-flags, loads LAST.

   ADOPTION CONTRACT (asserted by tools/apb-accents-smoke.php) — per axis, ONLY
   under an active config ancestor; zero config = byte-identical to today:
   - chip:    .apb-rx-eyebrow (kicker becomes a chip) + .apb-rx-badge visual
              chrome only (bg/fg/border/radius — never its absolute positioning).
              Status badges (.apb-rx-badge--success/--neutral) keep their colors.
   - divider: .apb-rx-section bottom edge (shape painted in the section's OWN
              surface fill over the next section's top padding; last section none).
   - image:   .apb-rx-thumb + .apb-rx-media (the shared media containers).
   - input:   .apb-rx-form input/textarea/select (the shared form primitive).
   - link:    classless anchors inside prose (p/li/figcaption a:not([class])) —
              never buttons/CTAs, which always carry classes.
   ============================================================================ */

/* ================================ CHIP ================================ */
[data-apb-chip]{--apb-rx-chip-bg:initial;--apb-rx-chip-fg:initial;--apb-rx-chip-border:initial;
  --apb-rx-chip-radius:initial;--apb-rx-chip-case:initial;--apb-rx-chip-track:initial;
  --apb-rx-chip-font:initial;--apb-rx-chip-dot:initial}
[data-apb-chip] :is(.apb-rx-eyebrow,.apb-rx-badge:not(.apb-rx-badge--success):not(.apb-rx-badge--neutral)){
  display:inline-flex;align-items:center;gap:7px;
  background:var(--apb-rx-chip-bg,var(--apb-rx-soft,#eef0ff));
  color:var(--apb-rx-chip-fg,var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5)));
  border:var(--apb-rx-chip-border,0 solid transparent);
  border-radius:var(--apb-rx-chip-radius,999px);
  padding:5px 12px;font-size:11.5px;font-weight:700;
  letter-spacing:var(--apb-rx-chip-track,.08em);
  text-transform:var(--apb-rx-chip-case,uppercase);
  font-family:var(--apb-rx-chip-font,inherit)}
[data-apb-chip] :is(.apb-rx-eyebrow,.apb-rx-badge:not(.apb-rx-badge--success):not(.apb-rx-badge--neutral))::before{
  content:var(--apb-rx-chip-dot,none);width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;padding:0}
[data-apb-chip="soft"]{--apb-rx-chip-bg:var(--apb-rx-soft,#eef0ff)}
[data-apb-chip="solid"]{--apb-rx-chip-bg:var(--apb-rx-brand,#4f46e5);--apb-rx-chip-fg:#fff}
[data-apb-chip="outline"]{--apb-rx-chip-bg:transparent;--apb-rx-chip-border:1px solid var(--apb-rx-line-accent,#c8caf5);--apb-rx-chip-radius:8px}
[data-apb-chip="pill"]{--apb-rx-chip-bg:color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 10%,var(--apb-rx-surface,#fff));
  --apb-rx-chip-border:1px solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 25%,transparent)}
[data-apb-chip="mono"]{--apb-rx-chip-bg:transparent;--apb-rx-chip-fg:var(--apb-rx-muted,#6b7280);
  --apb-rx-chip-border:1px solid var(--apb-rx-line,#e7e8ec);--apb-rx-chip-radius:4px;
  --apb-rx-chip-font:ui-monospace,SFMono-Regular,Menlo,monospace;--apb-rx-chip-track:.14em}
[data-apb-chip="dot"]{--apb-rx-chip-bg:transparent;--apb-rx-chip-dot:"";--apb-rx-chip-case:none;--apb-rx-chip-track:0}

/* ================================ DIVIDER ================================ */
/* The shape is the section's OWN surface fill painted over the next section's top padding.
   Sections without a surface use the page canvas fill (invisible between two plain sections
   by design — dividers earn their keep between alternating surfaces). */
:is(.apb-rx-section[data-apb-divider],[data-apb-divider]>.apb-rx-section){position:relative}
:is(.apb-rx-section[data-apb-divider],[data-apb-divider]>.apb-rx-section)::after{
  content:"";position:absolute;left:0;right:0;bottom:-46px;height:47px;z-index:1;pointer-events:none;
  background:var(--apb-rx-divider-fill,var(--apb-rx-surface,#fff));
  -webkit-mask:var(--apb-rx-divider-mask,none) center bottom/100% 100% no-repeat;
  mask:var(--apb-rx-divider-mask,none) center bottom/100% 100% no-repeat}
:is(.apb-rx-section[data-apb-divider],[data-apb-divider]>.apb-rx-section):last-of-type::after{content:none}
/* the shape lands in the NEXT section's top padding — skip it when that padding is collapsed */
:is(.apb-rx-section[data-apb-divider],[data-apb-divider]>.apb-rx-section):has(+.apb-rx-section:is([data-apb-s-pad="none"],[data-apb-s-pad="tight"]))::after{content:none}
:is(.apb-rx-section[data-apb-divider][data-apb-s-surface="soft"],[data-apb-divider]>.apb-rx-section[data-apb-s-surface="soft"]){--apb-rx-divider-fill:var(--apb-rx-soft,#f2f3f7)}
:is(.apb-rx-section[data-apb-divider][data-apb-s-surface="dark"],[data-apb-divider]>.apb-rx-section[data-apb-s-surface="dark"]){--apb-rx-divider-fill:color-mix(in srgb,#0b0d12 94%,var(--apb-rx-brand,#4f46e5) 6%)}
:is(.apb-rx-section[data-apb-divider][data-apb-s-surface="brand"],[data-apb-divider]>.apb-rx-section[data-apb-s-surface="brand"]){--apb-rx-divider-fill:var(--apb-rx-brand,#4f46e5)}
:is(.apb-rx-section[data-apb-divider],[data-apb-divider]>.apb-rx-section):is([data-apb-s-surface="transparent"],[data-apb-s-surface="image"])::after{content:none}
:is(.apb-rx-section[data-apb-divider="wave"],[data-apb-divider="wave"]>.apb-rx-section)::after{--apb-rx-divider-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 48" preserveAspectRatio="none"><path d="M0 0h1200v10c-200 30-400 38-600 24S200 6 0 26z" fill="black"/></svg>')}
:is(.apb-rx-section[data-apb-divider="curve"],[data-apb-divider="curve"]>.apb-rx-section)::after{--apb-rx-divider-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 48" preserveAspectRatio="none"><path d="M0 0h1200v8c-300 40-900 40-1200 0z" fill="black"/></svg>')}
:is(.apb-rx-section[data-apb-divider="slant"],[data-apb-divider="slant"]>.apb-rx-section)::after{--apb-rx-divider-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 48" preserveAspectRatio="none"><path d="M0 0h1200v6L0 46z" fill="black"/></svg>')}
:is(.apb-rx-section[data-apb-divider="zigzag"],[data-apb-divider="zigzag"]>.apb-rx-section)::after{--apb-rx-divider-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 48" preserveAspectRatio="none"><path d="M0 0h1200v14l-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22-60 22-60-22z" fill="black"/></svg>')}
:is(.apb-rx-section[data-apb-divider="fade"],[data-apb-divider="fade"]>.apb-rx-section)::after{
  -webkit-mask:linear-gradient(180deg,black,transparent) center bottom/100% 100% no-repeat;
  mask:linear-gradient(180deg,black,transparent) center bottom/100% 100% no-repeat;opacity:.5}

/* ================================ IMAGE ================================ */
[data-apb-img]{--apb-rx-img-radius:initial;--apb-rx-img-border:initial;--apb-rx-img-shadow:initial;
  --apb-rx-img-pad:initial;--apb-rx-img-bg:initial}
[data-apb-img] :is(.apb-rx-thumb,.apb-rx-media):not(.apb-rx-media--solid):not(:has(iframe,video)){
  border-radius:var(--apb-rx-img-radius,calc(var(--apb-rx-radius,16px) * .75));
  border:var(--apb-rx-img-border,0 solid transparent);
  box-shadow:var(--apb-rx-img-shadow,none);
  padding:var(--apb-rx-img-pad,0);
  background:var(--apb-rx-img-bg,var(--apb-rx-soft,#f2f3f7))}
[data-apb-img] :is(.apb-rx-thumb,.apb-rx-media):not(.apb-rx-media--solid):not(:has(iframe,video))>img{border-radius:max(0px,calc(var(--apb-rx-img-radius,calc(var(--apb-rx-radius,16px) * .75)) - var(--apb-rx-img-pad,0px)))}
[data-apb-img="rounded"]{--apb-rx-img-radius:18px}
[data-apb-img="sharp"]{--apb-rx-img-radius:0}
[data-apb-img="frame"]{--apb-rx-img-radius:6px;--apb-rx-img-border:1px solid var(--apb-rx-line,#e7e8ec);
  --apb-rx-img-pad:8px;--apb-rx-img-bg:var(--apb-rx-surface,#fff)}
[data-apb-img="polaroid"]{--apb-rx-img-radius:4px;--apb-rx-img-pad:10px;--apb-rx-img-bg:var(--apb-rx-surface,#fff);
  --apb-rx-img-shadow:0 2px 6px rgba(11,13,18,.08),0 14px 30px -12px rgba(11,13,18,.25)}
[data-apb-img="offset"]{--apb-rx-img-radius:10px;--apb-rx-img-shadow:8px 8px 0 color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 16%,var(--apb-rx-soft,#f2f3f7))}
[data-apb-img="shadow"]{--apb-rx-img-radius:14px;--apb-rx-img-shadow:0 3px 8px rgba(11,13,18,.07),0 24px 50px -18px rgba(11,13,18,.3)}

/* ================================ INPUT ================================ */
[data-apb-input]{--apb-rx-input-bg:initial;--apb-rx-input-border:initial;--apb-rx-input-radius:initial;
  --apb-rx-input-shadow:initial}
[data-apb-input] .apb-rx-form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]):not([type=hidden]),textarea,select){
  background:var(--apb-rx-input-bg,var(--apb-rx-surface,#fff));
  border:var(--apb-rx-input-border,1px solid var(--apb-rx-line,#e7e8ec));
  border-radius:var(--apb-rx-input-radius,calc(var(--apb-rx-radius,16px) * .68));
  box-shadow:var(--apb-rx-input-shadow,none)}
[data-apb-input] .apb-rx-form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]):not([type=hidden]),textarea,select):focus{
  outline:none;border-color:var(--apb-rx-brand,#4f46e5);box-shadow:0 0 0 3px var(--apb-rx-ring,rgba(79,70,229,.18))}
[data-apb-input="soft"]{--apb-rx-input-bg:var(--apb-rx-soft,#f2f3f7);--apb-rx-input-border:1px solid transparent}
[data-apb-input="outline"]{--apb-rx-input-border:1.5px solid var(--apb-rx-line,#e7e8ec);--apb-rx-input-bg:transparent}
[data-apb-input="underline"]{--apb-rx-input-bg:transparent;--apb-rx-input-radius:0;
  --apb-rx-input-border:0 solid transparent}
[data-apb-input="underline"] .apb-rx-form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]):not([type=hidden]),textarea,select){border-bottom:2px solid var(--apb-rx-line,#e7e8ec)}
[data-apb-input="underline"] .apb-rx-form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):not([type=range]):not([type=color]):not([type=hidden]),textarea,select):focus{border-bottom-color:var(--apb-rx-brand,#4f46e5);box-shadow:none}
[data-apb-input="pill"]{--apb-rx-input-radius:999px}
[data-apb-input="sharp"]{--apb-rx-input-radius:0}

/* ================================ LINK ================================ */
/* Classless anchors inside prose only — CTAs/buttons always carry classes and are untouched. */
[data-apb-link]{--apb-rx-link-fg:initial;--apb-rx-link-deco:initial;--apb-rx-link-thick:initial;
  --apb-rx-link-offset:initial;--apb-rx-link-bg:initial}
[data-apb-link] :is(p,li,figcaption) a:not([class]){
  color:var(--apb-rx-link-fg,var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5)));
  text-decoration:var(--apb-rx-link-deco,underline);
  text-decoration-thickness:var(--apb-rx-link-thick,1px);
  text-underline-offset:var(--apb-rx-link-offset,2px);
  text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);
  background:var(--apb-rx-link-bg,none);border-radius:3px;
  transition:text-decoration-color var(--apb-rx-t-fast,.16s),background var(--apb-rx-t-fast,.16s)}
[data-apb-link] :is(p,li,figcaption) a:not([class]):is(:hover,:focus-visible){text-decoration-color:currentColor}
[data-apb-link="underline"]{--apb-rx-link-deco:underline}
[data-apb-link="thick"]{--apb-rx-link-thick:2.5px;--apb-rx-link-offset:3px}
[data-apb-link="highlight"]{--apb-rx-link-deco:none;--apb-rx-link-fg:inherit;
  --apb-rx-link-bg:linear-gradient(transparent 62%,color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 22%,transparent) 62%)}
[data-apb-link="arrow"]{--apb-rx-link-deco:none}
[data-apb-link="arrow"] :is(p,li,figcaption) a:not([class])::after{
  content:"";display:inline-block;width:11px;height:10px;margin-left:3px;background:currentColor;vertical-align:-1px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.6"><path d="M5 12h14M13 6l6 6-6 6"/></svg>') center/contain no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.6"><path d="M5 12h14M13 6l6 6-6 6"/></svg>') center/contain no-repeat}
[data-apb-link="brand"]{--apb-rx-link-deco:none;--apb-rx-link-fg:var(--apb-rx-brand,#4f46e5)}
[data-apb-link="brand"] :is(p,li,figcaption) a:not([class]):is(:hover,:focus-visible){text-decoration:underline;text-decoration-thickness:2px}

/* ================================ ICON ================================ */
[data-apb-icon]{--apb-rx-icon-bg:initial;--apb-rx-icon-fg:initial;--apb-rx-icon-border:initial;--apb-rx-icon-shadow:initial}
[data-apb-icon] .apb-rx-tile-icon:not(.apb-rx-tile-icon--img){
  background:var(--apb-rx-icon-bg,var(--apb-rx-soft,#eef0ff));
  color:var(--apb-rx-icon-fg,var(--apb-rx-accent-text,var(--apb-rx-brand,#4f46e5)));
  border:var(--apb-rx-icon-border,1px solid var(--apb-rx-line-accent,#c8caf5));
  box-shadow:var(--apb-rx-icon-shadow,none)}
[data-apb-icon="filled"]{--apb-rx-icon-bg:var(--apb-rx-brand,#4f46e5);--apb-rx-icon-fg:#fff;--apb-rx-icon-border:0 solid transparent;
  --apb-rx-icon-shadow:0 8px 20px -8px var(--apb-rx-glow,rgba(79,70,229,.35))}
[data-apb-icon="outline"]{--apb-rx-icon-bg:transparent;--apb-rx-icon-border:1.5px solid color-mix(in srgb,var(--apb-rx-brand,#4f46e5) 40%,var(--apb-rx-line,#e7e8ec))}
[data-apb-icon="tint"]{--apb-rx-icon-bg:var(--apb-rx-soft,#eef0ff);--apb-rx-icon-border:0 solid transparent}
[data-apb-icon="bare"]{--apb-rx-icon-bg:transparent;--apb-rx-icon-border:0 solid transparent}
[data-apb-icon="bare"] .apb-rx-tile:hover .apb-rx-tile-icon:not(.apb-rx-tile-icon--img){box-shadow:none}
[data-apb-icon="filled"] [data-apb-tag-accent]{--apb-rx-icon-bg:var(--apb-item-accent);--apb-rx-icon-fg:var(--apb-item-accent-fg);--apb-rx-icon-border:0 solid transparent}
[data-apb-icon="outline"] [data-apb-tag-accent]{--apb-rx-icon-bg:transparent;--apb-rx-icon-fg:var(--apb-rx-ink,#15171B);--apb-rx-icon-border:1.5px solid color-mix(in srgb,var(--apb-item-accent) 55%,var(--apb-rx-line,#e7e8ec))}
[data-apb-icon="tint"] [data-apb-tag-accent]{--apb-rx-icon-bg:color-mix(in srgb,var(--apb-item-accent) 12%,var(--apb-rx-surface,#fff));--apb-rx-icon-fg:var(--apb-rx-ink,#15171B);--apb-rx-icon-border:0 solid transparent}
[data-apb-icon="bare"] [data-apb-tag-accent]{--apb-rx-icon-bg:transparent;--apb-rx-icon-fg:var(--apb-rx-ink,#15171B);--apb-rx-icon-border:0 solid transparent}

/* ================================ RHYTHM ================================ */
/* Page-level spacing personality: scales every section's vertical padding through the pad var the
   engine already computes with. A per-section data-apb-s-pad (element-level rule) still wins. */
[data-apb-rhythm="compact"]{--apb-rx-pad-scale:.8}
[data-apb-rhythm="standard"]{--apb-rx-pad-scale:1}
[data-apb-rhythm="airy"]{--apb-rx-pad-scale:1.35}

/* ================================ reduced motion ================================ */
@media (prefers-reduced-motion:reduce){
  [data-apb-link] :is(p,li,figcaption) a:not([class]){transition:none}
}
/* ==== assets/pages/component-procedural.css ==== */
/* ============================================================================
   PROCEDURAL BACKDROP SUPPORT (registry: APB_Component_Procedural; runtime:
   apb-page-proc.js, injected by the page router only when data-apb-proc exists).
   The .apb-rx-procbg element hosts the generated canvas; .apb-rx-pscrim is the
   server-built text-legibility gradient. Both live as FIRST children of their
   positioned host (theme wrapper or section root), stacked under the content.
   Zero important-flags.
   ============================================================================ */
.apb-rx-procbg{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
/* auto-applied industry-theme hint: a whisper of texture, not a graphic (explicit choices are full-strength) */
.apb-rx-procbg--hint{opacity:.28}
.apb-rx-pscrim{position:absolute;inset:0;z-index:-1;pointer-events:none}
/* interactive surfaces need the pointer to reach the host, not the canvas — the runtime listens on
   the host element, so the layers themselves always stay transparent to events (set above). */
[data-apb-prochost]{position:relative;isolation:isolate}
/* :has() as belt-and-braces for markup that gains a procbg without the marker (e.g. hand edits) */
:is(.apb-rx-theme,.apb-rx-section):has(>.apb-rx-procbg){position:relative;isolation:isolate}
/* no-JS / pre-boot: the host's CSS backdrop tone (emitted by the engine) simply shows through.
   NOTE: this rule also repairs a pre-existing gap — the engine has always emitted
   --apb-rx-page-bg for solid/gradient/image kit surfaces, but nothing consumed it. */
.apb-rx-theme[data-apb-surface]{background:var(--apb-rx-page-bg,transparent)}

