/*
 * Chambers — VeloCMS theme (slug: "chambers")
 * 1:1 port of the founder's Claude-Design canvas "Chambers Theme.dc.html".
 *
 * "Engraved conservatism for professional practices."
 * Palette: navy #1C2B3A · charcoal #22262B · bone #EDE9E1 · burgundy #6E2433
 * Display: Ibarra Real Nova (engraved 18th-century serif) · Body: Public Sans
 *
 * All values below are copied verbatim from the design's inline styles and the
 * 1g engineering-notes spec (color tokens, spacing/radius scale, hover table,
 * motion keyframes, mobile-drawer spec). No rounding, no reinterpretation.
 *
 * Scoped to [data-theme="chambers"] (NOT main-scoped) so /shop and /products/*
 * resolve the same tokens. P-094 token bridge at the bottom.
 */

/* ═══════════════════ COLOR TOKENS (1g) ═══════════════════ */
[data-theme="chambers"] {
  /* canonical */
  --ch-navy: #1C2B3A;            /* oklch(0.295 0.038 250) */
  --ch-charcoal: #22262B;       /* oklch(0.268 0.010 258) — text, 13.1:1 on bone */
  --ch-bone: #EDE9E1;           /* oklch(0.928 0.011 84) — page bg */
  --ch-burgundy: #6E2433;       /* oklch(0.368 0.108 13) — accent, 8.9:1 on bone */

  /* supporting */
  --ch-surface: #F4F1EA;                /* raised bone (practice grid, author card) */
  --ch-muted-fg: #5A5F66;               /* 5.3:1 on bone — AA for meta text */
  --ch-rule: rgba(34, 38, 43, 0.16);    /* hairline */
  --ch-rule-strong: rgba(34, 38, 43, 0.28); /* heavy line of the double rule */
  --ch-rule-mid: rgba(34, 38, 43, 0.24);    /* section-head divider */
  --ch-accent-hover: #5A1D2A;           /* burgundy pressed/hover */
  --ch-primary-hover: #16222E;          /* navy pressed/hover */

  /* bone/navy alpha helpers used across the design */
  --ch-bone-85: rgba(237, 233, 225, 0.85);
  --ch-bone-78: rgba(237, 233, 225, 0.78);
  --ch-bone-65: rgba(237, 233, 225, 0.65);
  --ch-bone-55: rgba(237, 233, 225, 0.55);
  --ch-bone-40: rgba(237, 233, 225, 0.4);
  --ch-bone-35: rgba(237, 233, 225, 0.35);
  --ch-bone-28: rgba(237, 233, 225, 0.28);
  --ch-bone-08: rgba(237, 233, 225, 0.08);
  --ch-scrim: rgba(28, 43, 58, 0.55);   /* mobile drawer scrim */

  /* fonts (registered Wave 0 — getThemeFontVars("chambers")) */
  --ch-heading-font: var(--font-ibarra-real-nova), "Iowan Old Style",
    "Palatino Linotype", Palatino, Georgia, serif;
  --ch-body-font: var(--font-public-sans), "Segoe UI", system-ui,
    -apple-system, "Helvetica Neue", sans-serif;
  --ch-mono-font: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* layout scale (1g) */
  --ch-container: 1296px;
  --ch-gutter: 48px;
  --ch-gutter-mobile: 20px;
  --ch-prose: 760px;

  /* also expose engine names so the shared ThemeMobileMenu drawer inherits
     the correct palette (it reads --velo-bg / --velo-fg / --velo-border /
     --velo-accent) — P-103 portal drawer, matched to Chambers */
  --velo-bg: var(--ch-bone);
  --velo-fg: var(--ch-charcoal);
  --velo-border: var(--ch-rule);
  --velo-accent: var(--ch-burgundy);
}

/* ThemeMobileMenu portals its drawer to document.body (P-103), which sits
   OUTSIDE the [data-theme="chambers"] wrapper's DOM subtree — CSS custom
   properties only inherit through the DOM tree, so --velo-* declared above
   never reaches the portaled drawer, and it falls back to the shared
   component's hardcoded dark defaults (#0a0a0a bg / #f5f5f5 text) instead of
   the bone/charcoal Chambers palette. Because only the ACTIVE theme's CSS
   file is ever linked on a page (Phase 9.2 — one <link> per render), it is
   safe to also declare --velo-* on `body` here without a [data-theme]
   selector: this rule only exists in the document when Chambers is the
   theme actually rendering. */
body {
  --velo-bg: #EDE9E1;
  --velo-fg: #22262B;
  --velo-border: rgba(34, 38, 43, 0.16);
  --velo-accent: #6E2433;
}

/* Body font inheritance for the whole theme surface */
[data-theme="chambers"] {
  font-family: var(--ch-body-font);
  color: var(--ch-charcoal);
  background: var(--ch-bone);
}

/* ═══════════════════ MOTION — entrances only (1g) ═══════════════════ */
@keyframes ch-rise {
  from { transform: translateY(12px); }
  to   { transform: translateY(0); }
}
@keyframes ch-rule {
  from { transform: scaleX(0.5); }
  to   { transform: scaleX(1); }
}
@keyframes ch-kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.07); }
}

/* NB: opacity is never animated — SSR content is fully visible on first frame
   (P-068). Animations mutate transform only, applied on load (no IO gate). */
[data-theme="chambers"] .ch-anim-copy {
  animation: ch-rise 600ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
[data-theme="chambers"] .ch-anim-media {
  animation: ch-rise 600ms cubic-bezier(0.22, 1, 0.36, 1) 120ms both;
}
[data-theme="chambers"] .ch-anim-section {
  animation: ch-rise 500ms ease-out both;
}
[data-theme="chambers"] .ch-anim-rule {
  animation: ch-rule 700ms ease-out both;
  transform-origin: center;
}
/* video loop poster/ken-burns stand-in */
[data-theme="chambers"] .ch-kenburns {
  animation: ch-kenburns 8s ease-in-out infinite alternate;
}

/* No bounces, no springs, no loops other than the hero video itself. */
@media (prefers-reduced-motion: reduce) {
  [data-theme="chambers"] * {
    animation: none !important;
    transition-duration: 0ms !important;
  }
}

/* ═══════════════════ CHROME — sticky header ═══════════════════ */
[data-theme="chambers"] .ch-header {
  background: var(--ch-bone);
  position: sticky;
  top: 0;
  z-index: 80; /* opaque, no blur (1g) */
}
[data-theme="chambers"] .ch-topbar {
  background: var(--ch-navy);
  color: var(--ch-bone-85);
  text-align: center;
  padding: 8px 16px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
[data-theme="chambers"] .ch-nav-inner {
  max-width: var(--ch-container);
  margin: 0 auto;
  padding: 0 var(--ch-gutter);
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
[data-theme="chambers"] .ch-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: var(--ch-charcoal);
}
[data-theme="chambers"] .ch-seal {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(34, 38, 43, 0.4);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ch-heading-font);
  font-size: 15px;
  font-weight: 600;
  flex-shrink: 0;
}
[data-theme="chambers"] .ch-brand-name {
  font-family: var(--ch-heading-font);
  font-size: 21px;
  font-weight: 600;
  line-height: 1;
}
[data-theme="chambers"] .ch-brand-sub {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ch-muted-fg);
}
[data-theme="chambers"] .ch-nav-links {
  display: flex;
  gap: 26px;
  align-items: center;
}
[data-theme="chambers"] .ch-nav-link {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ch-charcoal);
  text-decoration: none;
  transition: color 150ms ease-out;
}
[data-theme="chambers"] .ch-nav-link:hover {
  color: var(--ch-burgundy);
}
[data-theme="chambers"] .ch-nav-link.is-active {
  color: var(--ch-burgundy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
}
[data-theme="chambers"] .ch-nav-right {
  display: flex;
  align-items: center;
  gap: 18px;
}
[data-theme="chambers"] .ch-nav-divider {
  width: 1px;
  height: 20px;
  background: rgba(34, 38, 43, 0.22);
}
[data-theme="chambers"] .ch-login {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ch-charcoal);
  text-decoration: none;
  transition: color 150ms ease-out;
}
[data-theme="chambers"] .ch-login:hover {
  color: var(--ch-burgundy);
}

/* double rule (letterhead signature): 1px 0.28 + 3px gap + 1px 0.16 */
[data-theme="chambers"] .ch-double-rule {
  height: auto;
}
[data-theme="chambers"] .ch-rule-strong {
  height: 1px;
  background: var(--ch-rule-strong);
}
[data-theme="chambers"] .ch-rule-gap {
  height: 3px;
}
[data-theme="chambers"] .ch-rule-gap-sm {
  height: 2px;
}
[data-theme="chambers"] .ch-rule-hair {
  height: 1px;
  background: var(--ch-rule);
}

/* ═══════════════════ BUTTONS / CTAs ═══════════════════ */
[data-theme="chambers"] .ch-cta-burgundy {
  background: var(--ch-burgundy);
  color: var(--ch-bone);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 11px 18px;
  border-radius: 2px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 160ms ease-out;
}
[data-theme="chambers"] .ch-cta-burgundy:hover {
  background: var(--ch-accent-hover);
}
[data-theme="chambers"] .ch-cta-burgundy:active {
  transform: translateY(1px);
}
/* larger hero variant (padding 16px 26px, 11px) */
[data-theme="chambers"] .ch-cta-burgundy-lg {
  background: var(--ch-burgundy);
  color: var(--ch-bone);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 16px 26px;
  border-radius: 2px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 160ms ease-out;
}
[data-theme="chambers"] .ch-cta-burgundy-lg:hover {
  background: var(--ch-accent-hover);
}
[data-theme="chambers"] .ch-cta-burgundy-lg:active {
  transform: translateY(1px);
}
/* navy CTA (Add to Cart / active pill) */
[data-theme="chambers"] .ch-cta-navy {
  background: var(--ch-navy);
  color: var(--ch-bone);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 18px;
  border-radius: 2px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 160ms ease-out;
}
[data-theme="chambers"] .ch-cta-navy:hover {
  background: var(--ch-primary-hover);
}
/* ghost / outline (on navy hero) */
[data-theme="chambers"] .ch-cta-ghost {
  border: 1px solid var(--ch-bone-35);
  color: var(--ch-bone);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 16px 26px;
  border-radius: 2px;
  text-decoration: none;
  background: transparent;
  cursor: pointer;
  transition: border-color 160ms ease-out;
}
[data-theme="chambers"] .ch-cta-ghost:hover {
  border-color: rgba(237, 233, 225, 0.8);
}

/* ═══════════════════ FOCUS (all) — 1g ═══════════════════ */
[data-theme="chambers"] a:focus-visible,
[data-theme="chambers"] button:focus-visible,
[data-theme="chambers"] input:focus-visible,
[data-theme="chambers"] textarea:focus-visible {
  outline: 2px solid var(--ch-burgundy);
  outline-offset: 2px;
}

/* ═══════════════════ IMAGE PLATE (duotone) ═══════════════════ */
[data-theme="chambers"] .ch-plate {
  border: 1px solid var(--ch-rule);
  padding: 7px;
}
[data-theme="chambers"] .ch-plate-inner {
  position: relative;
  overflow: hidden;
}
[data-theme="chambers"] .ch-duotone {
  display: block;
  width: 100%;
  height: auto;
  filter: grayscale(1) contrast(1.05) brightness(0.95);
}
[data-theme="chambers"] .ch-duotone-scrim {
  position: absolute;
  inset: 0;
  background: rgba(28, 43, 58, 0.18);
}

/* ═══════════════════ CATEGORY PILLS ═══════════════════ */
[data-theme="chambers"] .ch-pill {
  color: var(--ch-charcoal);
  border: 1px solid rgba(34, 38, 43, 0.3);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 9px 16px;
  border-radius: 2px;
  text-decoration: none;
  background: transparent;
  transition: border-color 160ms ease-out, color 160ms ease-out;
}
[data-theme="chambers"] .ch-pill:hover {
  border-color: var(--ch-burgundy);
  color: var(--ch-burgundy);
}
[data-theme="chambers"] .ch-pill.is-active {
  background: var(--ch-navy);
  color: var(--ch-bone);
  border: 1px solid var(--ch-navy);
  font-weight: 700;
}

/* ═══════════════════ POST / PRODUCT CARDS ═══════════════════ */
[data-theme="chambers"] .ch-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
[data-theme="chambers"] .ch-card-plate {
  border: 1px solid rgba(34, 38, 43, 0.2);
  padding: 7px;
  margin-bottom: 18px;
  transition: border-color 200ms ease-out;
}
[data-theme="chambers"] .ch-card:hover .ch-card-plate {
  border-color: var(--ch-burgundy);
}
[data-theme="chambers"] .ch-card-title {
  font-family: var(--ch-heading-font);
  font-weight: 600;
  transition: color 150ms ease-out;
}
[data-theme="chambers"] .ch-card:hover .ch-card-title {
  color: var(--ch-burgundy);
}
/* product-card image scale (CSS-only :hover on <a>) — 1g */
[data-theme="chambers"] .ch-card-img {
  transition: transform 300ms ease-out;
}
[data-theme="chambers"] .ch-card:hover .ch-card-img {
  transform: scale(1.03);
}

/* practice-area cell hover */
[data-theme="chambers"] .ch-practice-cell {
  transition: background-color 180ms ease-out;
}
[data-theme="chambers"] .ch-practice-cell:hover {
  background: var(--ch-bone);
}

/* ═══════════════════ PROSE (post / page body) ═══════════════════ */
[data-theme="chambers"] .ch-prose {
  font-size: 17px;
  line-height: 1.75;
  max-width: 65ch;
  color: var(--ch-charcoal);
}
[data-theme="chambers"] .ch-prose p {
  margin: 0 0 26px;
}
[data-theme="chambers"] .ch-prose h2 {
  font-family: var(--ch-heading-font);
  font-size: 29px;
  font-weight: 600;
  line-height: 1.25;
  margin: 44px 0 18px;
}
[data-theme="chambers"] .ch-prose h3 {
  font-family: var(--ch-heading-font);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.3;
  margin: 36px 0 14px;
}
[data-theme="chambers"] .ch-prose blockquote {
  margin: 36px 0;
  padding-block: 6px;
  padding-inline-start: 28px;
  border-inline-start: 2px solid var(--ch-burgundy);
}
[data-theme="chambers"] .ch-prose blockquote p {
  font-family: var(--ch-heading-font);
  font-size: 22px;
  font-style: italic;
  line-height: 1.5;
  margin: 0 0 10px;
  color: var(--ch-charcoal);
}
[data-theme="chambers"] .ch-prose pre {
  background: var(--ch-charcoal);
  color: var(--ch-bone);
  font-family: var(--ch-mono-font);
  font-size: 13.5px;
  line-height: 1.7;
  padding: 24px 28px;
  border-radius: 2px;
  overflow-x: auto;
  margin: 0 0 26px;
}
[data-theme="chambers"] .ch-prose img {
  display: block;
  width: 100%;
  height: auto;
  filter: grayscale(1) contrast(1.05) brightness(0.95);
}
[data-theme="chambers"] .ch-prose a {
  color: var(--ch-burgundy);
}

/* ═══════════════════ FOOTER (letterhead) ═══════════════════ */
[data-theme="chambers"] .ch-footer {
  background: var(--ch-bone);
  padding: 0 var(--ch-gutter) 36px;
}
[data-theme="chambers"] .ch-footer-inner {
  max-width: var(--ch-container);
  margin: 0 auto;
}
[data-theme="chambers"] .ch-footer-name {
  font-family: var(--ch-heading-font);
  font-weight: 600;
}
[data-theme="chambers"] .ch-footer-link {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ch-charcoal);
  text-decoration: none;
  transition: color 150ms ease-out;
}
[data-theme="chambers"] .ch-footer-link:hover {
  color: var(--ch-burgundy);
}

/* ═══════════════════ INPUTS (subscribe) ═══════════════════ */
[data-theme="chambers"] .ch-input {
  background: var(--ch-bone-08);
  border: 1px solid var(--ch-bone-35);
  color: var(--ch-bone);
  font-family: var(--ch-body-font);
  font-size: 13.5px;
  padding: 14px 16px;
  border-radius: 2px;
  outline: none;
}
[data-theme="chambers"] .ch-input::placeholder {
  color: var(--ch-bone-55);
}

/* ch-mobile-cart — hidden at desktop (ch-nav-right already carries the cart
   there); shown + positioned at the header's inline-end under 1024px. */
[data-theme="chambers"] .ch-mobile-cart {
  display: none;
}

/* ch-cart-link / ch-cart-badge — bespoke header cart (ChambersCartLink),
   1:1 from the design header cart (desktop L1122-1125 / L1341-1344, mobile
   L1252-1255): bag icon, burgundy hover, burgundy count badge. */
[data-theme="chambers"] .ch-cart-link {
  position: relative;
  display: flex;
  color: var(--ch-charcoal);
  text-decoration: none;
  transition: color 150ms ease-out;
}
[data-theme="chambers"] .ch-cart-link:hover {
  color: var(--ch-burgundy);
}
[data-theme="chambers"] .ch-cart-badge {
  position: absolute;
  top: -6px;
  inset-inline-end: -8px;
  background: var(--ch-burgundy);
  color: var(--ch-bone);
  font-size: 9px;
  font-weight: 700;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* mobile header cart (.ch-mobile-cart) — badge offset matches the design's
   mobile 390 header cart (top:2px, inset-inline-end:0) instead of the
   desktop -6px/-8px offset. */
[data-theme="chambers"] .ch-cart-link-mobile .ch-cart-badge {
  top: 2px;
  inset-inline-end: 0;
}

/* ch-mobile-hamburger — the bespoke ChambersMobileMenu trigger. Hidden at
   desktop (the ch-nav-links row carries navigation there); shown at the
   header's inline-start under 1024px. */
[data-theme="chambers"] .ch-mobile-hamburger {
  display: none;
}

/* ═══════════════════ RESPONSIVE (mobile 390) ═══════════════════ */
/* Desktop nav + right-side collapse below lg (1024px); hamburger shown by
   the shared ThemeMobileMenu (lg:hidden). Mirror the design's mobile 390:
   hamburger at inline-start, brand centered, cart icon at inline-end. */
@media (max-width: 1023px) {
  [data-theme="chambers"] .ch-nav-links,
  [data-theme="chambers"] .ch-nav-right {
    display: none;
  }
  [data-theme="chambers"] .ch-nav-inner {
    height: 60px;
    padding: 0 16px;
  }
  [data-theme="chambers"] .ch-topbar {
    display: none;
  }
  /* order the three remaining children: hamburger, brand, cart */
  [data-theme="chambers"] .ch-mobile-hamburger {
    display: flex;
    order: 1;
  }
  [data-theme="chambers"] .ch-brand {
    order: 2;
    flex: 1;
    justify-content: center;
    text-align: center;
  }
  [data-theme="chambers"] .ch-seal {
    display: none; /* mobile header shows brand name + sub only, no monogram (design 390) */
  }
  [data-theme="chambers"] .ch-mobile-cart {
    display: flex;
    order: 3;
    align-items: center;
  }
}

/* wide strips never overflow the document (P-140) */
[data-theme="chambers"] .ch-pill-scroll {
  overflow-x: auto;
}

/* ═══════════════════ RESPONSIVE — content grids (mobile 390) ═══════════════════
   Every multi-column CSS-grid on the surfaces collapses to a single column
   under 768px so cards/cells stack full-width instead of cramming 2-3 across
   (design mobile 390 stacks everything vertically — 1a/1b/1d/1e/1f screens). */
@media (max-width: 767px) {
  /* home — hero copy/media, latest-posts 3-col, practice-areas 3x2 grid,
     consultation band */
  [data-theme="chambers"] .ch-hero-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding: 52px 20px 56px !important;
  }
  [data-theme="chambers"] .ch-latest-grid {
    grid-template-columns: 1fr !important;
  }
  [data-theme="chambers"] .ch-latest-grid > a {
    padding-inline: 0 !important;
    border-inline-start: none !important;
    padding-block: 24px !important;
    border-bottom: 1px solid var(--ch-rule);
  }
  [data-theme="chambers"] .ch-latest-grid > a:last-child {
    border-bottom: none;
  }
  [data-theme="chambers"] .ch-practice-grid {
    grid-template-columns: 1fr !important;
  }
  [data-theme="chambers"] .ch-consult-band {
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: start;
    gap: 20px !important;
    padding: 28px 22px !important;
  }
  [data-theme="chambers"] .ch-consult-band .ch-cta-burgundy-lg {
    display: block;
    text-align: center;
    width: 100%;
  }

  /* blog index + shop listing — 3-col product/post grid */
  [data-theme="chambers"] .ch-blog-grid,
  [data-theme="chambers"] .ch-shop-grid {
    grid-template-columns: 1fr !important;
  }

  /* shop main — mobile 390 padding (design 44px 20px 56px), h1 31px */
  [data-theme="chambers"] .ch-shop-main {
    padding: 44px var(--ch-gutter-mobile) 56px !important;
  }
  [data-theme="chambers"] .ch-shop-h1 {
    font-size: 31px !important;
    letter-spacing: -0.01em !important;
    line-height: 1.12 !important;
  }
  /* shop pill row — mobile 390 (design padding 14px 0, margin-bottom 32px,
     horizontal scroll: nowrap + flex-shrink:0 pills) */
  [data-theme="chambers"] .ch-shop-pills {
    padding: 14px 0 !important;
    margin-bottom: 32px !important;
    flex-wrap: nowrap !important;
  }
  [data-theme="chambers"] .ch-shop-pills .ch-pill {
    flex-shrink: 0;
  }

  /* product detail — gallery + info 2-col grid */
  [data-theme="chambers"] .ch-product-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ═══════════════════ RTL (1g) ═══════════════════ */
/* tracking breaks connected Arabic script — zero it on labels under rtl */
[dir="rtl"] [data-theme="chambers"] .ch-nav-link,
[dir="rtl"] [data-theme="chambers"] .ch-brand-sub,
[dir="rtl"] [data-theme="chambers"] .ch-login,
[dir="rtl"] [data-theme="chambers"] .ch-pill,
[dir="rtl"] [data-theme="chambers"] .ch-footer-link,
[dir="rtl"] [data-theme="chambers"] .ch-topbar,
[dir="rtl"] [data-theme="chambers"] .ch-cta-burgundy,
[dir="rtl"] [data-theme="chambers"] .ch-cta-burgundy-lg,
[dir="rtl"] [data-theme="chambers"] .ch-cta-navy,
[dir="rtl"] [data-theme="chambers"] .ch-cta-ghost {
  letter-spacing: 0;
}

/*
 * ═══════════════════ P-094 TOKEN BRIDGE ═══════════════════
 * The commerce archetype + shared components consume the universal
 * --vb-color-* vocabulary. Map Chambers palette → --vb-color-* at the
 * global [data-theme="chambers"] scope (NOT main-scoped) so /shop and
 * /products/* resolve. No currentColor, no circular refs (1g).
 */
[data-theme="chambers"] {
  --vb-color-primary: #6E2433;      /* burgundy — CTA fill */
  --vb-color-primary-fg: #EDE9E1;   /* bone label on burgundy — 8.9:1 */
  --vb-color-bg: #EDE9E1;           /* bone */
  --vb-color-fg: #22262B;           /* charcoal — 13.1:1 on bone */
  --vb-color-accent: #6E2433;       /* burgundy */
}
