/* Shared section primitives for the theme renderer.
   Theme-specific CSS overrides these via [data-theme="..."] rules
   in the per-theme bundles. Frameworks (alternating, accent-bands,
   layered) apply via [data-framework="..."] in frameworks.css. */

@layer theme, framework, section;

/* --- design token DEFAULTS (historically Darkside Tattoo's palette) ---
   🚨 These are scoped to the theme wrapper, NOT to :root, and the scoping is
   load-bearing.

   Until 2026-08-16 this block sat on bare `:root` — i.e. on <html> — so one
   client's palette (near-black, cream, gold #dcb96a, Cinzel) was the
   document-wide default on EVERY themed tenant. Inside [data-theme] that was
   invisible, because each theme re-declares the same tokens and the nearer
   element wins by inheritance. Outside it, it was silent breakage: anything
   mounted as a sibling of the theme wrapper — which is where the root
   layout's platform-wide ornaments live — inherited Darkside's colours
   instead of nothing. Worse, because the vars were SET, a defensive
   `var(--accent, my-fallback)` never reached its fallback, so a component
   could not opt out even by writing one. That is exactly how the sticky
   "Book Consultation" bar rendered gold on every themed tenant for months,
   and why two rounds of fixes that corrected the VALUES changed nothing:
   the lookup was being intercepted upstream (docs/SESSION-LOG.md 2026-08-16).

   Scoped here to [data-theme], the defaults reach every section (all of
   which render inside the wrapper) and reach nothing else. A layout-level
   component now genuinely sees these vars as unset and gets its own
   fallback — or, better, uses a dedicated `--tn-*` var.

   🚨 `:where()` + `@layer theme` is what keeps the theme bundles winning,
   and BOTH halves are required. Read before touching either.

   - `:where([data-theme])` has specificity (0,0,0); a theme bundle's
     `[data-theme="darkside"]` is (0,1,0), so the bundle wins. A bare
     `[data-theme]` here would be (0,1,0) too — an exact tie that the
     defaults would win on source order, flattening every theme.
   - These defaults sit in `@layer theme`, the SAME layer as the bundles, so
     that specificity is what decides. Layer order beats specificity, so a
     block in `@layer section` (the last layer) would outrank every theme
     bundle no matter how weak its selector.

   🚨 Do NOT "improve" this by giving the defaults their own earlier layer.
   That was tried on 2026-08-16 and is broken in production: `@layer` order
   is fixed by the FIRST declaration the document parses, and that is
   `app/globals.css:32` (`@layer app-base, theme, framework, section;`),
   which loads before ThemeShell's links. A new layer name declared later in
   sections.css gets appended LAST — i.e. highest precedence — so the
   defaults would beat all 15 theme bundles. scripts/check-theme-a11y.tsx
   caught exactly that, because its fixture declares its own layer list too.
   Staying inside an already-declared layer removes the ordering dependency
   entirely. */
@layer theme {
  :where([data-theme]) {
    --bg: #0c0c0c;
    --bg-mid: #141414;
    --section-bg: var(--bg);
    --text: #ece6dc;
    --accent: #dcb96a;
    --accent-text: #dcb96a;
    --muted: #8a857a;
    --rule: rgba(220, 185, 106, 0.18);
    --font-display: 'Cinzel', Georgia, serif;
    --font-body: 'Inter', system-ui, sans-serif;
    --btn-radius: 0;
    --btn-weight: 600;
    --btn-transform: uppercase;
    --btn-tracking: 0.08em;
  }
}

@layer section {

  /* --- theme wrapper base ---
     The ThemeShell div carries data-theme and the var bundle, but until
     2026-07-21 nothing set the wrapper's own color/background/font — so
     every element that INHERITS its text color picked it up from the
     surrounding page body instead of the theme. In the owner preview and
     builder iframes the body carries the network chrome's dark-mode CSS
     (near-white text), which ghosted all inheriting text (FAQ headlines,
     accordion questions, plain links) on light themes like Atelier
     (operator screenshot 2026-07-21). Explicitly-colored elements
     (accent eyebrows, muted body copy) looked fine, which is why it read
     as "some text missing" rather than a dead page. */
  [data-theme] {
    color: var(--text);
    background: var(--bg);
    font-family: var(--font-body);
  }

  /* --- long-token overflow guard ---
     Content arriving from the Instagram ingest routinely contains tokens
     that CANNOT break at a normal wrap opportunity: @handles, hashtags and
     bare URLs. `@paradisetattoogathering` is a single 24-character word;
     in a display-serif heading at phone width it is wider than the column,
     and with no wrap rule it does not merely overflow its own box -- it
     widens the whole section and clips every neighbouring line at the
     viewport edge (operator screenshots, 2026-08-02: "Back in offic",
     "Check out Cecil Porters new site! Bee").

     break-word rather than anywhere: it only breaks a token that cannot
     otherwise fit, so ordinary copy keeps its natural wrapping and
     min-content sizing is left alone.

     Declared once on the theme wrapper's text elements so every theme and
     every section inherits it -- this class of bug should not be fixable
     one section at a time. */
  [data-theme] :is(h1, h2, h3, h4, h5, h6, p, li, dd, dt, blockquote, figcaption, a, span) {
    overflow-wrap: break-word;
  }

  /* Scroll anchor emitted by SectionRouter before each section so nav +
     interior /#{sectionKey} links (/#about, /#services, /#roster, /#consult, …)
     land at the top of the section. Zero-height so it never affects layout;
     scroll-margin-top offsets a fixed/overlay nav. */
  .section-anchor { display: block; height: 0; scroll-margin-top: 88px; }

  /* --- per-section animation kill-switch ---
     SectionRouter wraps a variant in <span data-animations-off="true"
     style="display:contents"> when the operator has disabled animations
     for that section in the builder. This selector suppresses every
     animation + transition under that wrapper without us having to
     touch the 30+ keyframes/animation rules scattered through the
     section/theme CSS. Section-level fades, hero slideshows, glow
     pulses, etc. all freeze on their first frame. The wrapper has no
     box (display:contents) so layout is unaffected. */
  [data-animations-off="true"],
  [data-animations-off="true"] *,
  [data-animations-off="true"] *::before,
  [data-animations-off="true"] *::after {
    animation: none !important;
    transition: none !important;
  }

  /* --- reset ---
     Ported from assembler global reset (lines 11-24). Applied here so
     the section renderer is self-contained. If a surrounding layout
     already resets these, the cascade still wins correctly. */
  *, *::before, *::after { box-sizing: border-box; }
  * { margin: 0; padding: 0; }
  html { height: 100%; }
  body { min-height: 100%; }
  body { line-height: 1.5; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  img, picture, video { display: block; max-width: 100%; }
  input, button, textarea, select { font: inherit; }
  button { cursor: pointer; background: none; border: 0; }
  a { color: inherit; text-decoration: none; }
  ul, ol { list-style: none; }
  summary { cursor: pointer; }
  summary::-webkit-details-marker { display: none; }
  summary::marker { content: ''; }

  /* The design token defaults moved OUT of this layer and off :root on
     2026-08-16 — see the @layer tokens block at the top of this file for
     why. Button tokens (--btn-*) are still shared primitives referenced by
     every CTA in every section; they just live on the theme wrapper now. */

  /* --- page canvas ---
     🚨 Deliberately does NOT set background / color / font-family.
     app/layout.tsx emits an UNLAYERED `html {}` + `body {}` rule carrying
     the tenant's resolved brand values, and unlayered beats any layer at
     any specificity — so the three declarations that used to live here
     (`background: var(--bg)` etc.) were already overridden on every tenant
     render and were dead weight. They were also the only reason this rule
     needed document-scope theme tokens at all. Verified 2026-08-16 by
     diffing computed styles on a real served page before/after removal:
     zero change, on <body> included.
     The container context is real and stays — section variants query it. */
  body {
    container-type: inline-size;
    container-name: preview;
  }

  /* Every top-level section in the renderer carries `.slot` so framework
     selectors can target them by nth-of-type. */
  body > .slot {
    width: 100%;
    background: var(--section-bg);
  }

  h1, h2, h3, h4, h5, h6 {
    font-weight: inherit;
    line-height: 1.15;
    font-family: var(--font-display);
  }

  /* --- sr-only ---
     Standard visually-hidden utility. Used by nav hamburger labels,
     rating aria-labels, and any other screen-reader-only text. */
  .sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
  }

  /* --- nav-cta ---
     Shared CTA pill used across all nav variants (horizontal-wordmark,
     logo-centered, hamburger-desktop). Defined here so all three nav
     section files can use it without redeclaring it. */
  .nav-cta {
    padding: 8px 18px;
    border: 1px solid var(--accent);
    color: var(--accent-text);
    font-size: 11px;
    letter-spacing: var(--btn-tracking, 0.16em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 100px);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
    white-space: nowrap;
  }
  .nav-cta:hover { background: var(--accent); color: var(--accent-contrast, var(--bg)); }

  /* --- mobile-overlay ---
     Shared fullscreen menu overlay used by nav variants A and B on mobile.
     Variant C (hamburger-desktop) uses its own .nav-hb__overlay but the
     same structural pattern applies. */
  .mobile-overlay-toggle { list-style: none; cursor: pointer; }
  .mobile-overlay-toggle::-webkit-details-marker { display: none; }
  .mobile-overlay-toggle::marker { display: none; content: ''; }

  .mobile-hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 24px;
  }
  .mobile-hamburger span {
    display: block;
    height: 2px;
    background: var(--accent);
    border-radius: 1px;
  }

  .mobile-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(12, 12, 12, 0.97);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 48px;
  }
  .mobile-overlay-close {
    position: absolute;
    top: 28px;
    right: 24px;
    font-family: var(--font-body);
    font-size: 32px;
    font-weight: 300;
    color: var(--text);
    cursor: pointer;
    background: none;
    border: none;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.15s, color 0.15s;
  }
  .mobile-overlay-close:hover { opacity: 1; color: var(--accent-text); }
  .mobile-overlay a {
    font-family: var(--font-display);
    font-size: 28px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text);
    transition: color 0.15s;
  }
  .mobile-overlay a:hover { color: var(--accent-text); }
  .mobile-overlay .nav-cta {
    font-family: var(--font-body);
    font-size: 13px;
    padding: 12px 28px;
    margin-top: 12px;
  }

  /* <details> overlay hidden when closed (no-JS pattern) */
  .mobile-details:not([open]) .mobile-overlay { display: none; }

  /* =====================================================================
     Hero section — all variants
     Scoped to [data-section="hero"][data-variant="<letter>"] so the same
     class names can safely coexist on one page (variant catalog view).
     CSS ported from assembler index.html lines 682-1001 + 5339-5479.
     ===================================================================== */

  /* --- Variant A: image-static --- */
  [data-section="hero"][data-variant="a"] .hero-static {
    position: relative; height: 720px; overflow: hidden;
  }
  [data-section="hero"][data-variant="a"] .hero-static__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(0.72) contrast(1.05);
  }
  [data-section="hero"][data-variant="a"] .hero-static__caption {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 56px;
    background: linear-gradient(to top, rgba(12,12,12,0.75) 0%, rgba(12,12,12,0) 50%);
  }
  [data-section="hero"][data-variant="a"] .hero-static__eyebrow {
    font-size: 12px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 18px;
  }
  [data-section="hero"][data-variant="a"] .hero-static__name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 88px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 14px;
    line-height: 0.95;
  }
  [data-section="hero"][data-variant="a"] .hero-static__name .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="a"] .hero-static__tagline {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--text);
    opacity: 0.86;
    margin-bottom: 30px;
    letter-spacing: 0.02em;
  }
  [data-section="hero"][data-variant="a"] .hero-static__cta {
    align-self: flex-start;
    padding: 14px 28px;
    border: 1px solid var(--accent);
    color: var(--accent-text);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="hero"][data-variant="a"] .hero-static__cta:hover {
    background: var(--accent); color: var(--accent-contrast, var(--bg));
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="a"] .hero-static__caption {
      padding-left: 24px; padding-right: 24px;
    }
    [data-section="hero"][data-variant="a"] .hero-static__name { font-size: 56px; }
    [data-section="hero"][data-variant="a"] .hero-static { height: 580px; }
  }

  /* --- Variant B: split-image-text --- */
  [data-section="hero"][data-variant="b"] .hero-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 640px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 64px;
    background: var(--section-bg);
  }
  [data-section="hero"][data-variant="b"] .hero-split__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 22px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 64px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text);
    line-height: 1.05;
    margin-bottom: 18px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__name .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="b"] .hero-split__tag {
    font-size: 15px;
    color: var(--text);
    opacity: 0.78;
    line-height: 1.65;
    max-width: 38ch;
    margin-bottom: 28px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__creds {
    display: flex;
    gap: 28px;
    padding: 18px 0;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    margin-bottom: 32px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__cred-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  [data-section="hero"][data-variant="b"] .hero-split__cred-num {
    font-family: var(--font-display);
    font-size: 28px;
    color: var(--accent-text);
    font-weight: 500;
  }
  [data-section="hero"][data-variant="b"] .hero-split__cred-label {
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
  }
  [data-section="hero"][data-variant="b"] .hero-split__ctas {
    display: flex; gap: 14px; align-items: center;
  }
  [data-section="hero"][data-variant="b"] .hero-split__cta-primary {
    padding: 14px 28px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
  }
  [data-section="hero"][data-variant="b"] .hero-split__cta-secondary {
    padding: 14px 18px;
    color: var(--text);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.14em);
    text-transform: var(--btn-transform, uppercase);
    border-bottom: 1px solid var(--rule);
    font-weight: var(--btn-weight, 500);
  }
  [data-section="hero"][data-variant="b"] .hero-split__cta-secondary:hover {
    color: var(--accent-text); border-color: var(--accent);
  }
  [data-section="hero"][data-variant="b"] .hero-split__img-wrap {
    position: relative; overflow: hidden;
  }
  [data-section="hero"][data-variant="b"] .hero-split__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="b"] .hero-split { grid-template-columns: 1fr; }
    [data-section="hero"][data-variant="b"] .hero-split__text { padding: 56px 24px; }
    [data-section="hero"][data-variant="b"] .hero-split__name { font-size: 48px; }
    [data-section="hero"][data-variant="b"] .hero-split__img-wrap {
      min-height: 360px; position: relative;
    }
  }

  /* --- Variant C: image-with-overlay --- */
  [data-section="hero"][data-variant="c"] .hero-overlay {
    position: relative; height: 800px; overflow: hidden;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: brightness(0.45) contrast(1.08);
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__veil {
    position: absolute; inset: 0;
    background: radial-gradient(
      ellipse at 50% 35%,
      rgba(12,12,12,0) 0%,
      rgba(12,12,12,0.75) 70%,
      rgba(12,12,12,0.95) 100%
    );
  }
  /* Dark-theme HeroC: the default brightness(0.45) + near-opaque veil crushed a
     lone portrait to black on dark backgrounds, so the hero read empty for thin
     tenants (2026-07-25 gallery audit, flaw 2). Lighten the image + soften the
     veil for dark themes; light themes keep the strong scrim for white-text
     legibility. */
  [data-theme="studio-note"] [data-section="hero"][data-variant="c"] .hero-overlay__img,
  [data-theme="obsidian"] [data-section="hero"][data-variant="c"] .hero-overlay__img,
  [data-theme="darkside"] [data-section="hero"][data-variant="c"] .hero-overlay__img {
    filter: brightness(0.7) contrast(1.05);
  }
  [data-theme="studio-note"] [data-section="hero"][data-variant="c"] .hero-overlay__veil,
  [data-theme="obsidian"] [data-section="hero"][data-variant="c"] .hero-overlay__veil,
  [data-theme="darkside"] [data-section="hero"][data-variant="c"] .hero-overlay__veil {
    background: radial-gradient(
      ellipse at 50% 40%,
      rgba(12,12,12,0) 0%,
      rgba(12,12,12,0.35) 65%,
      rgba(12,12,12,0.6) 100%
    );
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__content {
    position: absolute; inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0 56px;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__wordmark {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 32px;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 18px;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__wordmark .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="c"] .hero-overlay__rule {
    width: 64px;
    height: 1px;
    background: var(--accent);
    margin-bottom: 30px;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__tagline {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 52px;
    letter-spacing: 0.01em;
    color: var(--text);
    line-height: 1.15;
    max-width: 880px;
    margin-bottom: 16px;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__sub {
    font-size: 14px;
    color: var(--text);
    opacity: 0.72;
    letter-spacing: 0.06em;
    margin-bottom: 44px;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__ctas { display: flex; gap: 16px; }
  [data-section="hero"][data-variant="c"] .hero-overlay__cta-primary {
    padding: 15px 32px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__cta-secondary {
    padding: 15px 32px;
    border: 1px solid var(--accent);
    color: var(--accent-text);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="hero"][data-variant="c"] .hero-overlay__cta-secondary:hover {
    background: var(--accent); color: var(--accent-contrast, var(--bg));
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="c"] .hero-overlay__content {
      padding-left: 24px; padding-right: 24px;
    }
    [data-section="hero"][data-variant="c"] .hero-overlay { height: 640px; }
    [data-section="hero"][data-variant="c"] .hero-overlay__tagline { font-size: 34px; }
    [data-section="hero"][data-variant="c"] .hero-overlay__wordmark {
      font-size: 22px; letter-spacing: 0.24em;
    }
    [data-section="hero"][data-variant="c"] .hero-overlay__ctas {
      flex-direction: column; width: 100%; max-width: 320px;
    }
    [data-section="hero"][data-variant="c"] .hero-overlay__ctas a {
      width: 100%; text-align: center;
    }
  }

  /* --- Variant D: ken-burns-slideshow --- */
  @keyframes kenburns {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.12); }
    100% { transform: scale(1); }
  }
  [data-section="hero"][data-variant="d"] .hero-burns {
    position: relative; height: 780px; overflow: hidden; background: var(--section-bg);
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slides { position: absolute; inset: 0; }
  [data-section="hero"][data-variant="d"] .hero-burns__slide {
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slide.is-active { opacity: 1; }
  [data-section="hero"][data-variant="d"] .hero-burns__slide img {
    width: 100%; height: 100%; object-fit: cover;
    animation: kenburns 20s ease-in-out infinite;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slide--1 img {
    animation-delay: 0s; transform-origin: center center;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slide--2 img {
    animation-delay: 0s; transform-origin: top left;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slide--3 img {
    animation-delay: 0s; transform-origin: bottom right;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__slide--4 img {
    animation-delay: 0s; transform-origin: top right;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(
      to top,
      rgba(12,12,12,0.8) 0%,
      rgba(12,12,12,0.2) 40%,
      rgba(12,12,12,0.1) 100%
    );
    z-index: 1;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__content {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: column;
    justify-content: flex-end;
    padding: 64px;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__eyebrow {
    font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase;
    color: var(--accent-text); margin-bottom: 18px;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__name {
    font-family: var(--font-display); font-weight: 600; font-size: 80px;
    letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--text); margin-bottom: 14px; line-height: 0.95;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__name .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="d"] .hero-burns__tagline {
    font-size: 16px; color: var(--text); opacity: 0.86;
    margin-bottom: 30px; max-width: 540px;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__cta {
    align-self: flex-start; padding: 14px 28px;
    border: 1px solid var(--accent); color: var(--accent-text);
    font-size: 12px; letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="hero"][data-variant="d"] .hero-burns__cta:hover {
    background: var(--accent); color: var(--accent-contrast, var(--bg));
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="d"] .hero-burns { height: 580px; }
    [data-section="hero"][data-variant="d"] .hero-burns__content { padding: 32px 24px; }
    [data-section="hero"][data-variant="d"] .hero-burns__name { font-size: 48px; }
  }

  /* --- Variant E: parallax-pan --- */
  @keyframes heroPan {
    0%   { object-position: 30% center; }
    100% { object-position: 70% center; }
  }
  [data-section="hero"][data-variant="e"] .hero-pan {
    position: relative;
    overflow: hidden;
    min-height: 520px;
    background: var(--bg);
  }
  [data-section="hero"][data-variant="e"] .hero-pan__img {
    width: 100%;
    height: 100%;
    min-height: 520px;
    object-fit: cover;
    animation: heroPan 20s ease-in-out infinite alternate;
  }
  [data-section="hero"][data-variant="e"] .hero-pan__caption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 48px 56px;
    background: linear-gradient(to top, rgba(12,12,12,0.95) 0%, transparent 100%);
  }
  [data-section="hero"][data-variant="e"] .hero-pan__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--muted);
    margin-bottom: 8px;
  }
  [data-section="hero"][data-variant="e"] .hero-pan__name {
    font-family: var(--font-display);
    font-size: 44px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 12px;
  }
  [data-section="hero"][data-variant="e"] .hero-pan__name .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="e"] .hero-pan__tagline {
    font-size: 16px;
    color: var(--muted);
    max-width: 540px;
    margin-bottom: 20px;
  }
  [data-section="hero"][data-variant="e"] .hero-pan__cta {
    display: inline-block;
    padding: 12px 28px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    border-radius: 4px;
  }

  /* --- Variant L: literary-quote ---
     Ported from the Nevermore Tattoo Collective source design. The source
     renders its backdrop grayscale at 30% opacity under a top-to-bottom
     gradient, so the photo reads as texture and never competes with the
     type -- reproduced here with the filter + veil rather than by baking a
     treated image, so any tenant's own photo gets the same handling. --- */
  [data-section="hero"][data-variant="l"] .hero-literary {
    position: relative;
    min-height: 760px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    filter: grayscale(1) brightness(0.42) contrast(1.06);
  }
  [data-section="hero"][data-variant="l"] .hero-literary__veil {
    position: absolute; inset: 0;
    background: linear-gradient(
      to bottom,
      color-mix(in srgb, var(--bg) 80%, transparent) 0%,
      color-mix(in srgb, var(--bg) 62%, transparent) 45%,
      var(--bg) 100%
    );
  }
  [data-section="hero"][data-variant="l"] .hero-literary__content {
    position: relative;
    max-width: 900px;
    padding: 96px 24px;
    text-align: center;
    display: flex; flex-direction: column; align-items: center;
  }
  /* Not raw var(--accent): measured on Nevermore, whose accent resolves to
     the source's own --primary (#8E0B0B), that is 2.01:1 on near-black --
     the SOURCE DESIGN ITSELF fails WCAG here, and rendering it literally
     would ship an unreadable eyebrow. Mixing toward --text keeps the hue
     (still plainly red) and lifts it to ~5:1. The mix direction is
     self-correcting across themes: on a light theme it darkens the accent
     instead, improving contrast there too. */
  [data-section="hero"][data-variant="l"] .hero-literary__eyebrow {
    color: color-mix(in srgb, var(--accent) 55%, var(--text));
    font-size: 13px;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    margin: 0 0 24px;
  }
  /* The wordmark is the whole point of this variant: display scale, wide
     tracking, serif. clamp() keeps a long studio name on one or two lines
     instead of overflowing the way a fixed 9rem would. */
  [data-section="hero"][data-variant="l"] .hero-literary__wordmark {
    font-family: var(--font-display);
    font-size: clamp(44px, 9vw, 132px);
    line-height: 0.9;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text);
    margin: 0 0 32px;
    text-wrap: balance;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__rule {
    width: 64px; height: 1px;
    /* Same reasoning as the eyebrow, but a decorative divider needs less
       lift than text, so it keeps more of the accent. */
    background: color-mix(in srgb, var(--accent) 70%, var(--text));
    margin: 0 0 32px;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__quote {
    max-width: 34em;
    font-size: clamp(16px, 1.5vw, 20px);
    line-height: 1.7;
    font-style: italic;
    color: var(--muted, var(--text));
    margin: 0 0 44px;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__ctas {
    display: flex; gap: 12px; flex-wrap: wrap; justify-content: center;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__cta {
    padding: 20px 40px;
    color: var(--text);
    font-size: 13px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 500);
    border: 1px solid color-mix(in srgb, var(--text) 50%, transparent);
    border-radius: var(--btn-radius, 0);
    transition: background 0.4s, color 0.4s, border-color 0.4s;
  }
  [data-section="hero"][data-variant="l"] .hero-literary__cta:hover {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="l"] .hero-literary { min-height: 560px; }
    [data-section="hero"][data-variant="l"] .hero-literary__content { padding: 64px 20px; }
    [data-section="hero"][data-variant="l"] .hero-literary__quote { margin-bottom: 32px; }
    [data-section="hero"][data-variant="l"] .hero-literary__cta { padding: 16px 28px; }
  }
  @media (prefers-reduced-motion: reduce) {
    [data-section="hero"][data-variant="l"] .hero-literary__cta { transition: none; }
  }

  /* --- Variant M: luminous-mark ---
     The source lights its logo with a pulsing gold drop-shadow (40px -> 100px
     over 5s) and parallaxes it behind the wordmark. Reproduced with a CSS
     glow keyed to --accent so any tenant's mark gets the same treatment, and
     the animation is dropped entirely under prefers-reduced-motion. --- */
  [data-section="hero"][data-variant="m"] .hero-mark {
    position: relative;
    min-height: 90vh;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    background-image: radial-gradient(
      circle at 50% 45%,
      color-mix(in srgb, var(--accent) 12%, transparent) 0%,
      var(--bg) 65%
    );
  }
  /* The source layers this exactly: a warm radial wash, the mark FULL-BLEED
     as object-cover at 60% opacity, then a 30% background scrim over it.
     Full-bleed is why the source has no hard edge -- an earlier cut here
     floated the mark centred at `object-fit: contain`, which framed its
     opaque black field as a visible rectangle. Copying the source's
     treatment removes the edge at the root rather than masking it. */
  [data-section="hero"][data-variant="m"] .hero-mark__glow {
    position: absolute; inset: 0;
    pointer-events: none;
    overflow: hidden;
  }
  /* from-primary/30 via-transparent — the hot centre behind the mark. */
  [data-section="hero"][data-variant="m"] .hero-mark__glow::before {
    content: ''; position: absolute; inset: 0; z-index: 1;
    background: radial-gradient(
      circle at center,
      color-mix(in srgb, var(--accent) 30%, transparent) 0%,
      transparent 55%
    );
  }
  [data-section="hero"][data-variant="m"] .hero-mark__glow img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
    /* Far below the source's opacity-60. Its mark artwork carries its OWN
       engraved wordmark, so at 60% it collides with the h1 -- the name reads
       twice, overlapping, and the CTAs disappear into it. Knocked back to
       texture, the artwork still fills the frame (no hard edge, which is the
       point) but the accessible wordmark stays the thing you read. */
    opacity: 0.22;
    z-index: 2;
    animation: hero-mark-breathe 5s ease-in-out infinite;
  }
  /* bg-background/30 — knocks the mark back so the wordmark stays first. */
  [data-section="hero"][data-variant="m"] .hero-mark__glow::after {
    content: ''; position: absolute; inset: 0; z-index: 3;
    background: color-mix(in srgb, var(--bg) 55%, transparent);
  }
  /* Source: drop-shadow 40px -> 100px of gold over 5s. No transform here --
     the mark is object-cover now, so scaling it would crop rather than
     breathe. */
  @keyframes hero-mark-breathe {
    0%, 100% {
      filter: drop-shadow(0 0 40px color-mix(in srgb, var(--accent) 40%, transparent));
      opacity: 0.18;
    }
    50% {
      filter: drop-shadow(0 0 100px color-mix(in srgb, var(--accent) 90%, transparent));
      opacity: 0.3;
    }
  }
  [data-section="hero"][data-variant="m"] .hero-mark__content {
    position: relative;
    text-align: center;
    padding: 96px 24px;
    max-width: 1000px;
  }
  [data-section="hero"][data-variant="m"] .hero-mark__wordmark {
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 7vw, 5.5rem);
    line-height: 1.05;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin: 0 0 24px;
    /* The mark sits directly behind the type, so the wordmark carries its own
       shadow rather than relying on a veil that would dim the glow. */
    text-shadow: 0 4px 20px rgba(0, 0, 0, 0.95);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__lead { color: var(--text); }
  [data-section="hero"][data-variant="m"] .hero-mark__tail {
    color: var(--accent-text);
    font-size: 0.86em;
  }
  [data-section="hero"][data-variant="m"] .hero-mark__sub {
    margin: 0 0 44px;
    font-size: clamp(0.95rem, 1.6vw, 1.25rem);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    font-weight: 300;
    color: var(--text);
    text-shadow: 0 4px 15px rgba(0, 0, 0, 0.95);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__ctas {
    display: flex; flex-wrap: wrap; gap: 18px; justify-content: center;
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta {
    padding: 16px 32px;
    font-size: 13px;
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 500);
    border-radius: var(--btn-radius, 0);
    border: 1px solid transparent;
    transition: background 0.3s, color 0.3s, border-color 0.3s;
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--primary {
    background: var(--accent); color: var(--accent-contrast, var(--bg)); border-color: var(--accent);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--primary:hover {
    background: var(--text); border-color: var(--text);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--ghost {
    color: var(--text);
    border-color: color-mix(in srgb, var(--text) 30%, transparent);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--ghost:hover {
    background: var(--text); color: var(--bg);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--accent {
    color: var(--accent-text);
    border-color: color-mix(in srgb, var(--accent) 55%, transparent);
  }
  [data-section="hero"][data-variant="m"] .hero-mark__cta--accent:hover {
    background: var(--accent); color: var(--accent-contrast, var(--bg));
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="m"] .hero-mark { min-height: 640px; }
    [data-section="hero"][data-variant="m"] .hero-mark__content { padding: 64px 20px; }
    [data-section="hero"][data-variant="m"] .hero-mark__glow img { width: 88%; }
    [data-section="hero"][data-variant="m"] .hero-mark__cta { padding: 14px 22px; }
  }
  @media (prefers-reduced-motion: reduce) {
    [data-section="hero"][data-variant="m"] .hero-mark__glow img {
      animation: none;
      opacity: 0.22;
      filter: drop-shadow(0 0 60px color-mix(in srgb, var(--accent) 55%, transparent));
    }
    [data-section="hero"][data-variant="m"] .hero-mark__cta { transition: none; }
  }

  /* =====================================================================
     Nav section — all variants
     Scoped to [data-section="nav"][data-variant="<letter>"] so the same
     class names can safely coexist on one page (variant catalog view).
     CSS ported from assembler index.html lines 427-679 + 5249-5338.
     Shared rules (.nav-cta, .mobile-overlay, .mobile-hamburger) are
     already defined above — not redeclared here.
     ===================================================================== */

  /* --- Variant A: nav-horizontal-wordmark --- */
  [data-section="nav"][data-variant="a"] .nav-hw {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 56px;
    border-bottom: 1px solid var(--rule);
    background: var(--section-bg);
  }
  [data-section="nav"][data-variant="a"] .nav-hw__wordmark {
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: 0.12em;
    font-size: 18px;
    color: var(--text);
    text-transform: uppercase;
    white-space: nowrap;
  }
  [data-section="nav"][data-variant="a"] .nav-hw__wordmark .accent { color: var(--accent-text); }
  [data-section="nav"][data-variant="a"] .nav-hw__links {
    display: flex;
    gap: 28px;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="a"] .nav-hw__links a {
    color: var(--text);
    opacity: 0.78;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="a"] .nav-hw__links a:hover { opacity: 1; color: var(--accent-text); }
  [data-section="nav"][data-variant="a"] .nav-hw__right { display: flex; align-items: center; gap: 28px; flex-shrink: 0; }
  [data-section="nav"][data-variant="a"] .nav-hw__burger { display: none; }
  /* The wordmark is a nowrap flex item, so a long tenant name (GBP business
     names run 40+ chars: "Justin (iam3) Leifeste / Texas Tattoo Artist")
     overflowed the bar and pushed the hamburger clean off the right edge —
     the phone was left with no way to open the menu (caught 2026-07-26).
     Let the wordmark shrink; never the burger. */
  [data-section="nav"][data-variant="a"] .nav-hw > a { min-width: 0; }
  [data-section="nav"][data-variant="a"] .nav-hw__wordmark { overflow: hidden; text-overflow: ellipsis; }
  @container (max-width: 900px) {
    [data-section="nav"][data-variant="a"] .nav-hw { padding: 18px 24px; gap: 12px; }
    [data-section="nav"][data-variant="a"] .nav-hw__links { display: none; }
    [data-section="nav"][data-variant="a"] .nav-hw__right .nav-cta { display: none; }
    [data-section="nav"][data-variant="a"] .nav-hw__burger { display: block; }
    /* Wrap to at most 2 lines on a phone rather than ellipsing most of the
       name away — this bar isn't sticky, so the extra line costs nothing. */
    [data-section="nav"][data-variant="a"] .nav-hw__wordmark {
      white-space: normal;
      overflow-wrap: anywhere;
      font-size: 15px;
      line-height: 1.25;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
    }
  }

  /* --- Variant B: nav-logo-centered --- */
  [data-section="nav"][data-variant="b"] .nav-lc {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 18px 56px;
    border-bottom: 1px solid var(--rule);
    background: var(--section-bg);
    position: relative;
  }
  [data-section="nav"][data-variant="b"] .nav-lc__left,
  [data-section="nav"][data-variant="b"] .nav-lc__right-links {
    display: flex;
    gap: 28px;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="b"] .nav-lc__left a,
  [data-section="nav"][data-variant="b"] .nav-lc__right-links a {
    color: var(--text);
    opacity: 0.78;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="b"] .nav-lc__left a:hover,
  [data-section="nav"][data-variant="b"] .nav-lc__right-links a:hover { opacity: 1; color: var(--accent-text); }
  [data-section="nav"][data-variant="b"] .nav-lc__logo {
    height: 40px;
    width: auto;
    margin: 0 48px;
  }
  [data-section="nav"][data-variant="b"] .nav-lc__wordmark {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 48px;
    color: var(--text);
  }
  [data-section="nav"][data-variant="b"] .nav-lc__right {
    display: flex;
    align-items: center;
    gap: 28px;
  }
  [data-section="nav"][data-variant="b"] .nav-lc__burger { display: none; }
  @container (max-width: 900px) {
    [data-section="nav"][data-variant="b"] .nav-lc { padding: 18px 24px; justify-content: space-between; }
    [data-section="nav"][data-variant="b"] .nav-lc__left { display: none; }
    [data-section="nav"][data-variant="b"] .nav-lc__right-links { display: none; }
    [data-section="nav"][data-variant="b"] .nav-lc__right .nav-cta { display: none; }
    [data-section="nav"][data-variant="b"] .nav-lc__logo { margin: 0; height: 36px; }
    [data-section="nav"][data-variant="b"] .nav-lc__burger { display: block; }
  }

  /* --- Variant C: nav-hamburger-desktop --- */
  [data-section="nav"][data-variant="c"] .nav-hb {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 56px;
    border-bottom: 1px solid var(--rule);
    background: var(--section-bg);
  }
  [data-section="nav"][data-variant="c"] .nav-hb__logo {
    height: 36px;
    width: auto;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__wordmark {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text);
  }
  [data-section="nav"][data-variant="c"] .nav-hb__toggle { list-style: none; cursor: pointer; }
  [data-section="nav"][data-variant="c"] .nav-hb__toggle::-webkit-details-marker { display: none; }
  [data-section="nav"][data-variant="c"] .nav-hb__toggle::marker { display: none; content: ''; }
  [data-section="nav"][data-variant="c"] .nav-hb__hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    width: 28px;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__hamburger span {
    display: block;
    height: 2px;
    background: var(--accent);
    border-radius: 1px;
    transition: opacity 0.15s;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(12, 12, 12, 0.97);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 48px;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay-close {
    position: absolute;
    top: 28px;
    right: 56px;
    font-family: var(--font-body);
    font-size: 32px;
    font-weight: 300;
    color: var(--text);
    cursor: pointer;
    background: none;
    border: none;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay-close:hover { opacity: 1; color: var(--accent-text); }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay a {
    font-family: var(--font-display);
    font-size: 36px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text);
    transition: color 0.15s;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay a:hover { color: var(--accent-text); }
  [data-section="nav"][data-variant="c"] .nav-hb__overlay .nav-cta {
    font-family: var(--font-body);
    font-size: 14px;
    padding: 14px 32px;
    margin-top: 12px;
  }
  [data-section="nav"][data-variant="c"] .nav-hb__details:not([open]) .nav-hb__overlay { display: none; }
  @container (max-width: 900px) {
    [data-section="nav"][data-variant="c"] .nav-hb { padding: 18px 24px; }
    [data-section="nav"][data-variant="c"] .nav-hb__overlay-close { right: 24px; }
  }

  /* --- Variant D: nav-underline-draw --- */
  [data-section="nav"][data-variant="d"] .nav-draw {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--section-bg);
    padding: 18px 56px;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="nav"][data-variant="d"] .nav-draw__wordmark {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="d"] .nav-draw__wordmark .accent { color: var(--accent-text); }
  [data-section="nav"][data-variant="d"] .nav-draw__right { display: flex; align-items: center; gap: 6px; }
  [data-section="nav"][data-variant="d"] .nav-draw__links { display: flex; gap: 28px; margin-right: 20px; }
  [data-section="nav"][data-variant="d"] .nav-draw__links a {
    font-size: 13px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    position: relative;
    transition: color 0.2s;
  }
  [data-section="nav"][data-variant="d"] .nav-draw__links a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
  }
  [data-section="nav"][data-variant="d"] .nav-draw__links a:hover { color: var(--text); }
  [data-section="nav"][data-variant="d"] .nav-draw__links a:hover::after { transform: scaleX(1); }
  [data-section="nav"][data-variant="d"] .nav-draw__cta {
    background: linear-gradient(135deg, var(--accent), #c9a44e);
    background-size: 200% 200%;
    color: var(--bg);
    padding: 8px 20px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: background-position 0.4s ease;
  }
  [data-section="nav"][data-variant="d"] .nav-draw__cta:hover { background-position: 100% 100%; }
  [data-section="nav"][data-variant="d"] .nav-draw__burger { display: none; }
  [data-section="nav"][data-variant="d"] .nav-draw > a { min-width: 0; }
  [data-section="nav"][data-variant="d"] .nav-draw__right { flex-shrink: 0; }
  @container (max-width: 768px) {
    [data-section="nav"][data-variant="d"] .nav-draw { padding: 18px 24px; gap: 12px; }
    [data-section="nav"][data-variant="d"] .nav-draw__links { display: none; }
    /* Without this the phone got wordmark + Book and NO menu at all. */
    [data-section="nav"][data-variant="d"] .nav-draw__burger { display: block; margin-left: 14px; }
  }

  /* --- Variant E: nav-blur-reveal --- */
  @keyframes navReveal {
    from { filter: blur(6px); opacity: 0.5; }
    to { filter: blur(0); opacity: 1; }
  }
  [data-section="nav"][data-variant="e"] .nav-reveal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--section-bg);
    padding: 18px 56px;
    border-bottom: 1px solid var(--rule);
    animation: navReveal 1s ease forwards;
  }
  [data-section="nav"][data-variant="e"] .nav-reveal__wordmark {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="e"] .nav-reveal__wordmark .accent { color: var(--accent-text); }
  [data-section="nav"][data-variant="e"] .nav-reveal__right { display: flex; align-items: center; gap: 6px; }
  [data-section="nav"][data-variant="e"] .nav-reveal__links { display: flex; gap: 28px; margin-right: 20px; }
  [data-section="nav"][data-variant="e"] .nav-reveal__links a {
    font-size: 13px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    transition: color 0.2s;
  }
  [data-section="nav"][data-variant="e"] .nav-reveal__links a:hover { color: var(--accent-text); }
  [data-section="nav"][data-variant="e"] .nav-reveal__burger { display: none; }
  @container (max-width: 768px) {
    [data-section="nav"][data-variant="e"] .nav-reveal__links { display: none; }
    [data-section="nav"][data-variant="e"] .nav-reveal__right > .nav-cta { display: none; }
    [data-section="nav"][data-variant="e"] .nav-reveal__burger { display: block; }
  }

  /* --- Variant F: nav-three-zone-event-headline --- */
  /* Single-row 3-zone bar: logo LEFT, italic-bold event headline CENTER,
     anchor links RIGHT. No hamburger, no scroll behavior, no CTA pill.
     The persistent center event-info zone distinguishes this from A–E. */
  [data-section="nav"][data-variant="f"] .nav-tze {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    padding: 0 48px;
    height: 60px;
    border-bottom: 1px solid var(--rule);
    background: var(--section-bg);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--text);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: 0.06em;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__brand img {
    height: 30px;
    width: auto;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__headline {
    text-align: center;
    font-family: var(--font-display);
    font-size: 14px;
    letter-spacing: 0.04em;
    text-transform: none;
    color: var(--accent-text);
  }
  [data-section="nav"][data-variant="f"] .nav-tze__headline em { font-style: italic; }
  [data-section="nav"][data-variant="f"] .nav-tze__right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__burger { display: none; }
  [data-section="nav"][data-variant="f"] .nav-tze__links {
    display: flex;
    gap: 24px;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__links a {
    color: var(--text);
    opacity: 0.78;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="f"] .nav-tze__links a:hover {
    opacity: 1;
    color: var(--accent-text);
  }
  @container (max-width: 900px) {
    [data-section="nav"][data-variant="f"] .nav-tze {
      grid-template-columns: auto 1fr;
      padding: 0 24px;
    }
    [data-section="nav"][data-variant="f"] .nav-tze__headline { display: none; }
    [data-section="nav"][data-variant="f"] .nav-tze__links { display: none; }
    [data-section="nav"][data-variant="f"] .nav-tze__burger { display: block; }
  }

  /* --- Variant G: nav-brand-left-centered-links-cta --- */
  /* auto 1fr auto 3-zone sticky nav. LEFT = brand serif 26px.
     CENTER = flex row up to 6 anchor links (centered). RIGHT = phone + accent CTA pill.
     Glassmorphism backdrop-filter. Center links hidden ≤1024px; phone hidden ≤640px. */
  [data-section="nav"][data-variant="g"] .nav-bzc {
    position: sticky;
    top: 0;
    height: 64px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    padding: 0 32px;
    background: color-mix(in srgb, var(--section-bg, #0c0c0c) 88%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--rule);
    z-index: 50;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-family: var(--font-body), sans-serif;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__brand {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 400;
    letter-spacing: -0.01em;
    text-transform: none;
    color: var(--text);
    display: inline-flex;
    align-items: center;
    gap: 12px;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__brand img {
    height: 30px;
    width: auto;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__links {
    display: flex;
    justify-content: center;
    gap: 28px;
    color: var(--text);
    opacity: 0.80;
    font-weight: 500;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__links a {
    opacity: 0.80;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__links a:hover {
    opacity: 1;
    color: var(--accent-text);
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__cta-row {
    display: flex;
    align-items: center;
    gap: 18px;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__phone {
    color: var(--text);
    opacity: 0.80;
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: none;
    transition: opacity 0.15s;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__phone:hover { opacity: 1; }
  [data-section="nav"][data-variant="g"] .nav-bzc__cta {
    display: inline-flex;
    align-items: center;
    height: 40px;
    padding: 0 22px;
    background: var(--accent);
    color: var(--accent-contrast, #fff);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    transition: filter 0.15s ease;
    border-radius: 0;
  }
  [data-section="nav"][data-variant="g"] .nav-bzc__cta:hover { filter: brightness(1.10); }
  [data-section="nav"][data-variant="g"] .nav-bzc__burger { display: none; }
  @container (max-width: 1024px) {
    [data-section="nav"][data-variant="g"] .nav-bzc__links { display: none; }
    /* Without this the phone got brand + Book and NO menu at all. */
    [data-section="nav"][data-variant="g"] .nav-bzc__burger { display: block; }
    /* The centre column is empty once the links hide — collapse to two
       tracks and let the 26px serif brand shrink, or it runs under the CTA
       once the burger joins the right zone. */
    [data-section="nav"][data-variant="g"] .nav-bzc { grid-template-columns: minmax(0, 1fr) auto; }
    [data-section="nav"][data-variant="g"] .nav-bzc__brand {
      min-width: 0;
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      line-height: 1.2;
    }
    [data-section="nav"][data-variant="g"] .nav-bzc__cta-row { flex-shrink: 0; gap: 12px; }
  }
  @container (max-width: 640px) {
    [data-section="nav"][data-variant="g"] .nav-bzc { padding: 0 18px; }
    [data-section="nav"][data-variant="g"] .nav-bzc__phone { display: none; }
    [data-section="nav"][data-variant="g"] .nav-bzc__cta { padding: 0 16px; font-size: 12px; }
  }

  /* --- Variant J: nav-dd (top nav with per-item dropdowns) ---
     Brand left | top links center (any item with children opens its own
     single-column dropdown) | accent CTA right. Dropdowns open on hover AND
     focus-within (keyboard-accessible), no JS. All colors from theme
     tokens so the panels inherit correct contrast. */
  [data-section="nav"][data-variant="j"] .nav-dd {
    display: flex;
    align-items: center;
    gap: 28px;
    height: 72px;
    padding: 0 32px;
    background: var(--bg, #0a0a0a);
    color: var(--text, #f0f0f0);
    position: relative;
    z-index: 40;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__brand {
    display: inline-flex;
    align-items: center;
    color: inherit;
    font-family: var(--font-display, inherit);
    font-size: 22px;
    letter-spacing: 0.04em;
    text-decoration: none;
    flex: 0 0 auto;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__brand img { height: 40px; width: auto; }
  [data-section="nav"][data-variant="j"] .nav-dd__bar {
    display: flex;
    align-items: center;
    gap: 26px;
    flex: 1 1 auto;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__link {
    color: var(--text, inherit);
    text-decoration: none;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.86;
    transition: opacity 0.15s ease, color 0.15s ease;
    white-space: nowrap;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__link:hover {
    opacity: 1;
    color: var(--accent-text, #dcb96a);
  }
  [data-section="nav"][data-variant="j"] .nav-dd__item { position: relative; }
  [data-section="nav"][data-variant="j"] .nav-dd__trigger {
    display: inline-flex;
    align-items: center;
    gap: 5px;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__caret { font-size: 9px; opacity: 0.7; }
  /* The dropdown panel — hidden until the item is hovered/focused.
     A ~10px invisible bridge (top padding on the panel) keeps hover alive
     while the cursor crosses the gap from the trigger. */
  [data-section="nav"][data-variant="j"] .nav-dd__panel {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 210px;
    display: flex;
    flex-direction: column;
    padding: 10px 0 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__item:hover .nav-dd__panel,
  [data-section="nav"][data-variant="j"] .nav-dd__item:focus-within .nav-dd__panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  [data-section="nav"][data-variant="j"] .nav-dd__panel-link {
    color: var(--text, #f0f0f0);
    text-decoration: none;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 11px 18px;
    background: var(--bg-mid, #141414);
    border-left: 1px solid color-mix(in srgb, var(--text, #f0f0f0) 10%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--text, #f0f0f0) 10%, transparent);
    opacity: 0.85;
    transition: background 0.14s ease, opacity 0.14s ease, color 0.14s ease;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__panel-link:first-of-type {
    border-top: 1px solid color-mix(in srgb, var(--text, #f0f0f0) 10%, transparent);
    box-shadow: 0 -1px 0 color-mix(in srgb, var(--text, #f0f0f0) 10%, transparent);
  }
  [data-section="nav"][data-variant="j"] .nav-dd__panel-link:last-of-type {
    border-bottom: 1px solid color-mix(in srgb, var(--text, #f0f0f0) 10%, transparent);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
  }
  [data-section="nav"][data-variant="j"] .nav-dd__panel-link:hover {
    opacity: 1;
    color: var(--accent-text, #dcb96a);
    background: color-mix(in srgb, var(--accent, #dcb96a) 12%, var(--bg-mid, #141414));
  }
  [data-section="nav"][data-variant="j"] .nav-dd__actions { flex: 0 0 auto; }
  [data-section="nav"][data-variant="j"] .nav-dd__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 22px;
    background: var(--accent, #dcb96a);
    color: var(--accent-contrast, var(--bg, #0a0a0a));
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    transition: filter 0.15s ease;
    white-space: nowrap;
  }
  [data-section="nav"][data-variant="j"] .nav-dd__cta:hover { filter: brightness(1.08); }
  [data-section="nav"][data-variant="j"] .nav-dd__mobile { display: none; }
  [data-section="nav"][data-variant="j"] .nav-dd__mobile-group { display: contents; }
  [data-section="nav"][data-variant="j"] .nav-dd__mobile-sub { padding-left: 16px; opacity: 0.8; }
  /* Responsive: collapse the desktop bar into the hamburger overlay */
  @container (max-width: 1024px) {
    [data-section="nav"][data-variant="j"] .nav-dd__bar,
    [data-section="nav"][data-variant="j"] .nav-dd__actions { display: none; }
    [data-section="nav"][data-variant="j"] .nav-dd__mobile { display: block; margin-left: auto; }
  }
  @container (max-width: 640px) {
    [data-section="nav"][data-variant="j"] .nav-dd { padding: 0 18px; height: 60px; gap: 12px; }
    /* `flex: 0 0 auto` on the brand meant a long tenant name pushed the
       hamburger off the right edge — measured x=484 on a 390px viewport
       (audit 2026-07-26), the same failure variant A had. Let the brand
       shrink; never the menu. */
    [data-section="nav"][data-variant="j"] .nav-dd__brand {
      flex: 0 1 auto;
      min-width: 0;
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      font-size: 18px;
    }
    [data-section="nav"][data-variant="j"] .nav-dd__mobile { flex-shrink: 0; }
  }

  /* --- Variant H: nav-sidebar-refreshed ---
     Vertical left rail for [data-framework="sidebar"]. Logo at top,
     configured navItems below, CTA + contact at bottom.
     Mobile: top bar + details/summary hamburger drawer. */
  [data-section="nav"][data-variant="h"] .nav-sb {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100dvh;
    padding: 32px 20px 24px;
    background: var(--section-bg, var(--bg));
    border-right: 1px solid var(--rule);
    gap: 0;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__brand {
    display: block;
    margin-bottom: 36px;
    text-decoration: none;
    flex-shrink: 0;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__logo {
    max-width: 100%;
    max-height: 64px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__wordmark {
    font-family: var(--font-display), sans-serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--text);
    letter-spacing: -0.01em;
    line-height: 1.2;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__links {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__link {
    display: block;
    padding: 11px 0;
    font-family: var(--font-body), sans-serif;
    font-size: 12px;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    font-weight: 500;
    color: var(--text);
    opacity: 0.72;
    border-bottom: 1px solid var(--rule);
    text-decoration: none;
    transition: opacity 0.15s, color 0.15s;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__link:hover {
    opacity: 1;
    color: var(--accent-text);
  }
  [data-section="nav"][data-variant="h"] .nav-sb__meta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 20px;
    margin-top: 20px;
    border-top: 1px solid var(--rule);
    flex-shrink: 0;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 11px 16px;
    background: var(--accent);
    color: var(--accent-contrast, #fff);
    font-family: var(--font-body), sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    text-decoration: none;
    transition: filter 0.15s;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__cta:hover { filter: brightness(1.1); }
  [data-section="nav"][data-variant="h"] .nav-sb__phone {
    font-size: 13px;
    color: var(--text);
    opacity: 0.65;
    text-decoration: none;
    text-align: center;
    transition: opacity 0.15s;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__phone:hover { opacity: 1; }
  [data-section="nav"][data-variant="h"] .nav-sb__ig {
    font-size: 11px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--accent-text);
    text-align: center;
    text-decoration: none;
    transition: opacity 0.15s;
  }
  [data-section="nav"][data-variant="h"] .nav-sb__ig:hover { opacity: 1; }
  /* Mobile hamburger drawer — hidden on desktop */
  [data-section="nav"][data-variant="h"] .nav-sb__drawer { display: none; }
  @media (max-width: 768px) {
    [data-section="nav"][data-variant="h"] .nav-sb {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      padding: 12px 18px;
      min-height: unset;
      height: auto;
      position: sticky;
      top: 0;
      z-index: 50;
      border-right: none;
      border-bottom: 1px solid var(--rule);
    }
    [data-section="nav"][data-variant="h"] .nav-sb__brand {
      margin-bottom: 0;
      /* Base rule pins this flex-shrink: 0, so a long tenant name overflowed
         the row and pushed the drawer toggle past the edge (x=402 on a 390px
         viewport, audit 2026-07-26). */
      flex-shrink: 1;
      min-width: 0;
      overflow: hidden;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__wordmark {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer { flex-shrink: 0; }
    [data-section="nav"][data-variant="h"] .nav-sb__links,
    [data-section="nav"][data-variant="h"] .nav-sb__meta { display: none; }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer {
      display: block;
      position: relative;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer > summary {
      list-style: none;
      cursor: pointer;
      color: var(--text);
      font-size: 22px;
      line-height: 1;
      padding: 4px 6px;
      user-select: none;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer > summary::-webkit-details-marker { display: none; }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer-menu {
      position: absolute;
      top: calc(100% + 12px);
      right: 0;
      min-width: 200px;
      background: var(--bg);
      border: 1px solid var(--rule);
      padding: 8px 16px 16px;
      display: flex;
      flex-direction: column;
      gap: 0;
      z-index: 100;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer-menu a {
      display: block;
      padding: 11px 0;
      font-size: 13px;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--text);
      border-bottom: 1px solid var(--rule);
      opacity: 0.8;
      text-decoration: none;
    }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer-menu a:last-child { border-bottom: none; }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer-menu a:hover { opacity: 1; color: var(--accent-text); }
    [data-section="nav"][data-variant="h"] .nav-sb__drawer-menu .nav-sb__cta {
      margin-top: 12px;
      justify-content: center;
      font-size: 11px;
    }
  }

  /* --- Variant I: nav-sidebar-og ---
     OG flat sidebar. Mirrors the legacy ClassicSidebarShell aesthetic:
     solid bg, bold uppercase stacked links with horizontal rules,
     no glassmorphism or glow. Flat hover (bg tint only). */
  [data-section="nav"][data-variant="i"] .nav-sbog {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 100dvh;
    background: var(--section-bg, var(--bg));
    border-right: 1px solid var(--rule);
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__brand {
    display: block;
    padding: 24px 16px 20px;
    border-bottom: 1px solid var(--rule);
    text-decoration: none;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__logo {
    max-width: 100%;
    max-height: 80px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__wordmark {
    font-family: var(--font-body), sans-serif;
    font-size: 17px;
    font-weight: 700;
    color: var(--text);
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__links {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__links li { margin: 0; }
  [data-section="nav"][data-variant="i"] .nav-sbog__links li > a {
    display: block;
    padding: 15px 16px;
    font-family: var(--font-body), sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--text);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    transition: background 0.15s;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__links li > a:hover {
    background: color-mix(in srgb, var(--text) 8%, transparent);
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__footer {
    padding: 16px;
    border-top: 1px solid var(--rule);
    flex-shrink: 0;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__cta {
    display: block;
    width: 100%;
    padding: 12px 16px;
    background: var(--accent);
    color: var(--accent-contrast, #fff);
    font-family: var(--font-body), sans-serif;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
    text-decoration: none;
    transition: filter 0.15s;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__cta:hover { filter: brightness(1.1); }
  [data-section="nav"][data-variant="i"] .nav-sbog__phone {
    display: block;
    margin-top: 10px;
    font-size: 13px;
    color: var(--text);
    opacity: 0.65;
    text-align: center;
    text-decoration: none;
    transition: opacity 0.15s;
  }
  [data-section="nav"][data-variant="i"] .nav-sbog__phone:hover { opacity: 1; }
  /* Mobile hamburger drawer — hidden on desktop */
  [data-section="nav"][data-variant="i"] .nav-sbog__drawer { display: none; }
  @media (max-width: 768px) {
    [data-section="nav"][data-variant="i"] .nav-sbog {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
      min-height: unset;
      height: auto;
      padding: 0 16px;
      position: sticky;
      top: 0;
      z-index: 50;
      border-right: none;
      border-bottom: 1px solid var(--rule);
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__brand { border-bottom: none; padding: 12px 0; }
    [data-section="nav"][data-variant="i"] .nav-sbog__links,
    [data-section="nav"][data-variant="i"] .nav-sbog__footer { display: none; }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer {
      display: block;
      position: relative;
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer > summary {
      list-style: none;
      cursor: pointer;
      color: var(--text);
      font-size: 22px;
      line-height: 1;
      padding: 4px 6px;
      user-select: none;
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer > summary::-webkit-details-marker { display: none; }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer-menu {
      position: absolute;
      top: calc(100% + 1px);
      right: 0;
      min-width: 220px;
      background: var(--bg);
      border: 1px solid var(--rule);
      z-index: 100;
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer-menu a {
      display: block;
      padding: 14px 16px;
      font-size: 13px;
      font-weight: 600;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      color: var(--text);
      border-bottom: 1px solid var(--rule);
      text-decoration: none;
      transition: background 0.15s;
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer-menu a:last-child { border-bottom: none; }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer-menu a:hover {
      background: color-mix(in srgb, var(--text) 8%, transparent);
    }
    [data-section="nav"][data-variant="i"] .nav-sbog__drawer-menu .nav-sbog__cta {
      display: block;
      margin: 0;
      border-radius: 0;
    }
  }

  /* ============================================================
     utility-bar variants A–E
     ============================================================ */

  /* --- Variant A: utility-bar-inline --- */
  [data-section="utility-bar"][data-variant="a"] .ub-inline {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--section-bg);
    color: var(--text);
    padding: 10px 56px;
    font-size: 11px;
    border-bottom: 1px solid var(--rule);
    position: sticky;
    top: 0;
    z-index: 100;
  }
  [data-section="utility-bar"][data-variant="a"] .ub-inline__left {
    display: flex;
    gap: 12px;
    align-items: center;
    opacity: 0.78;
  }
  [data-section="utility-bar"][data-variant="a"] .ub-inline__left .sep {
    color: var(--accent-text);
  }
  @container (max-width: 768px) {
    [data-section="utility-bar"][data-variant="a"] .ub-inline {
      flex-direction: column;
      gap: 6px;
      padding: 10px 24px;
      text-align: center;
    }
    [data-section="utility-bar"][data-variant="a"] .ub-inline__left {
      flex-wrap: wrap;
      justify-content: center;
    }
  }

  /* --- Variant B: utility-bar-split --- */
  [data-section="utility-bar"][data-variant="b"] .ub-split-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--section-bg);
    padding: 8px 56px;
    font-size: 11px;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-top__left {
    display: flex;
    gap: 14px;
    align-items: center;
    opacity: 0.78;
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-top__left .sep {
    color: var(--accent-text);
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-top__social {
    display: flex;
    gap: 14px;
    align-items: center;
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-top__social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid var(--rule);
    font-size: 10px;
    color: var(--muted);
    transition: color 0.15s, border-color 0.15s;
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-top__social-icon:hover {
    color: var(--accent-text);
    border-color: var(--accent);
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg-mid);
    padding: 10px 56px;
    font-size: 11px;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-bottom__left {
    display: flex;
    gap: 12px;
    align-items: center;
    opacity: 0.78;
  }
  [data-section="utility-bar"][data-variant="b"] .ub-split-bottom__left .sep {
    color: var(--accent-text);
  }
  @container (max-width: 768px) {
    [data-section="utility-bar"][data-variant="b"] .ub-split-top {
      flex-direction: column;
      gap: 8px;
      padding: 10px 24px;
      text-align: center;
    }
    [data-section="utility-bar"][data-variant="b"] .ub-split-top__left {
      flex-wrap: wrap;
      justify-content: center;
    }
    [data-section="utility-bar"][data-variant="b"] .ub-split-top__social { justify-content: center; }
    [data-section="utility-bar"][data-variant="b"] .ub-split-bottom {
      flex-direction: column;
      gap: 8px;
      padding: 10px 24px;
      text-align: center;
    }
    [data-section="utility-bar"][data-variant="b"] .ub-split-bottom__left {
      flex-wrap: wrap;
      justify-content: center;
    }
  }

  /* --- Variant C: utility-bar-logo-centered --- */
  [data-section="utility-bar"][data-variant="c"] .ub-logo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--section-bg);
    padding: 12px 56px;
    font-size: 11px;
    border-bottom: 2px solid var(--accent);
  }
  [data-section="utility-bar"][data-variant="c"] .ub-logo__phone { opacity: 0.78; letter-spacing: 0.04em; }
  [data-section="utility-bar"][data-variant="c"] .ub-logo__center {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
  }
  [data-section="utility-bar"][data-variant="c"] .ub-logo__img { height: 28px; width: auto; }
  [data-section="utility-bar"][data-variant="c"] .ub-logo__wordmark {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }
  [data-section="utility-bar"][data-variant="c"] .ub-logo__hours {
    font-size: 10px;
    color: var(--muted);
    letter-spacing: 0.08em;
  }
  @container (max-width: 768px) {
    [data-section="utility-bar"][data-variant="c"] .ub-logo {
      flex-direction: column;
      gap: 8px;
      padding: 12px 24px;
      text-align: center;
    }
  }

  /* --- Variant D: utility-bar-gradient-slide --- */
  @keyframes ub-gradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }
  [data-section="utility-bar"][data-variant="d"] .ub-grad {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(90deg, var(--bg), var(--bg-mid), var(--bg));
    background-size: 200% 100%;
    animation: ub-gradient 8s ease infinite;
    color: var(--text);
    padding: 10px 56px;
    font-size: 11px;
    border-bottom: 1px solid var(--rule);
    position: sticky;
    top: 0;
    z-index: 100;
  }
  [data-section="utility-bar"][data-variant="d"] .ub-grad__left {
    display: flex;
    gap: 12px;
    align-items: center;
    opacity: 0.78;
  }
  [data-section="utility-bar"][data-variant="d"] .ub-grad__left .sep {
    color: var(--accent-text);
  }
  @container (max-width: 768px) {
    [data-section="utility-bar"][data-variant="d"] .ub-grad {
      flex-direction: column;
      gap: 6px;
      padding: 10px 24px;
      text-align: center;
    }
    [data-section="utility-bar"][data-variant="d"] .ub-grad__left {
      flex-wrap: wrap;
      justify-content: center;
    }
  }

  /* --- Variant E: utility-bar-glow-cta --- */
  @keyframes ctaGlow {
    0%, 100% { box-shadow: none; }
    50% { box-shadow: 0 0 12px var(--accent), 0 0 4px var(--accent); }
  }
  [data-section="utility-bar"][data-variant="e"] .ub-glow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--section-bg);
    color: var(--text);
    padding: 10px 56px;
    font-size: 11px;
    border-bottom: 1px solid var(--rule);
    position: sticky;
    top: 0;
    z-index: 100;
  }
  [data-section="utility-bar"][data-variant="e"] .ub-glow__left {
    display: flex;
    gap: 12px;
    align-items: center;
    opacity: 0.78;
  }
  [data-section="utility-bar"][data-variant="e"] .ub-glow__left .sep {
    color: var(--accent-text);
  }
  [data-section="utility-bar"][data-variant="e"] .ub-glow__phone {
    color: var(--text);
    transition: color 0.2s, text-shadow 0.2s;
  }
  [data-section="utility-bar"][data-variant="e"] .ub-glow__phone:hover {
    color: var(--accent-text);
    text-shadow: 0 0 8px var(--accent);
  }
  @container (max-width: 768px) {
    [data-section="utility-bar"][data-variant="e"] .ub-glow {
      flex-direction: column;
      gap: 6px;
      padding: 10px 24px;
      text-align: center;
    }
    [data-section="utility-bar"][data-variant="e"] .ub-glow__left {
      flex-wrap: wrap;
      justify-content: center;
    }
  }

  /* =====================================================
     Trust — Variant A: trust-review-count-bar
     Minimal centered rating strip with hairline rules.
     ===================================================== */
  [data-section="trust"][data-variant="a"] .trust-bar {
    padding: 28px 56px;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    background: var(--section-bg);
  }
  [data-section="trust"][data-variant="a"] .trust-bar__stars {
    display: flex;
    gap: 2px;
    color: var(--accent-text);
    font-size: 14px;
    line-height: 1;
  }
  [data-section="trust"][data-variant="a"] .trust-bar__sep {
    color: var(--muted);
    font-size: 14px;
  }
  [data-section="trust"][data-variant="a"] .trust-bar__rating {
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 14px;
    color: var(--text);
    letter-spacing: 0.02em;
  }
  [data-section="trust"][data-variant="a"] .trust-bar__count {
    font-size: 13px;
    color: var(--text);
    opacity: 0.88;
  }
  [data-section="trust"][data-variant="a"] .trust-bar__source {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  @container (max-width: 900px) {
    [data-section="trust"][data-variant="a"] .trust-bar {
      padding: 24px;
      flex-wrap: wrap;
      gap: 8px 16px;
    }
  }

  /* =====================================================
     Trust — Variant B: trust-social-proof-band
     Rating + review snippets in a dark band.
     ===================================================== */
  [data-section="trust"][data-variant="b"] .trust-band {
    background: var(--bg-mid);
    padding: 40px 56px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 56px;
    align-items: center;
  }
  [data-section="trust"][data-variant="b"] .trust-band__rating {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  [data-section="trust"][data-variant="b"] .trust-band__number {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 500;
    color: var(--accent-text);
    line-height: 1;
    letter-spacing: 0.02em;
  }
  [data-section="trust"][data-variant="b"] .trust-band__stars {
    display: flex;
    gap: 3px;
    color: var(--accent-text);
    font-size: 16px;
    line-height: 1;
  }
  [data-section="trust"][data-variant="b"] .trust-band__count {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.04em;
    margin-top: 2px;
  }
  [data-section="trust"][data-variant="b"] .trust-band__quotes {
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-left: 1px solid var(--rule);
    padding-left: 40px;
  }
  [data-section="trust"][data-variant="b"] .trust-band__quote {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  [data-section="trust"][data-variant="b"] .trust-band__quote-text {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 15px;
    color: var(--text);
    opacity: 0.92;
    line-height: 1.55;
    max-width: 48ch;
  }
  [data-section="trust"][data-variant="b"] .trust-band__quote-attr {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.06em;
  }
  [data-section="trust"][data-variant="b"] .trust-band__quote-attr strong {
    color: var(--text);
    font-weight: 500;
  }
  @container (max-width: 900px) {
    [data-section="trust"][data-variant="b"] .trust-band {
      grid-template-columns: 1fr;
      gap: 28px;
      padding: 32px 24px;
    }
    [data-section="trust"][data-variant="b"] .trust-band__rating {
      flex-direction: row;
      align-items: center;
      gap: 16px;
    }
    [data-section="trust"][data-variant="b"] .trust-band__quotes {
      border-left: none;
      padding-left: 0;
      border-top: 1px solid var(--rule);
      padding-top: 24px;
    }
  }

  /* =====================================================
     Trust — Variant C: trust-badges-row
     Rating + trust badges in a horizontal strip.
     ===================================================== */
  [data-section="trust"][data-variant="c"] .trust-badges {
    padding: 32px 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    background: var(--section-bg);
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
  }
  [data-section="trust"][data-variant="c"] .trust-badges__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 28px;
  }
  [data-section="trust"][data-variant="c"] .trust-badges__item:first-child { padding-left: 0; }
  [data-section="trust"][data-variant="c"] .trust-badges__item:last-child { padding-right: 0; }
  [data-section="trust"][data-variant="c"] .trust-badges__divider {
    width: 1px;
    height: 36px;
    background: var(--rule);
    flex-shrink: 0;
  }
  [data-section="trust"][data-variant="c"] .trust-badges__icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    color: var(--accent-text);
  }
  [data-section="trust"][data-variant="c"] .trust-badges__icon svg {
    width: 100%;
    height: 100%;
  }
  [data-section="trust"][data-variant="c"] .trust-badges__label {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  [data-section="trust"][data-variant="c"] .trust-badges__label-primary {
    font-size: 13px;
    font-weight: 500;
    color: var(--text);
    letter-spacing: 0.02em;
  }
  [data-section="trust"][data-variant="c"] .trust-badges__label-secondary {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  @container (max-width: 900px) {
    [data-section="trust"][data-variant="c"] .trust-badges {
      padding: 24px;
      flex-wrap: wrap;
      gap: 16px;
    }
    [data-section="trust"][data-variant="c"] .trust-badges__divider { display: none; }
    [data-section="trust"][data-variant="c"] .trust-badges__item {
      padding: 0;
      flex: 0 0 calc(50% - 8px);
    }
    [data-section="trust"][data-variant="c"] .trust-badges__item:first-child { padding-left: 0; }
  }

  /* =====================================================
     Trust — Variant D: trust-glow-stars
     Centered bar with CSS-animated pulsing star glow.
     ===================================================== */
  @keyframes trustStarGlow {
    0%, 100% { text-shadow: none; }
    50% { text-shadow: 0 0 8px var(--accent), 0 0 16px var(--accent); }
  }
  [data-section="trust"][data-variant="d"] .trust-glow {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--section-bg);
    padding: 14px 56px;
    font-size: 13px;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="trust"][data-variant="d"] .trust-glow__stars {
    display: flex;
    gap: 2px;
    color: var(--accent-text);
    font-size: 18px;
  }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span {
    animation: trustStarGlow 2s ease-in-out infinite;
  }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span:nth-child(1) { animation-delay: 0s; }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span:nth-child(2) { animation-delay: 0.2s; }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span:nth-child(3) { animation-delay: 0.4s; }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span:nth-child(4) { animation-delay: 0.6s; }
  [data-section="trust"][data-variant="d"] .trust-glow__stars span:nth-child(5) { animation-delay: 0.8s; }
  [data-section="trust"][data-variant="d"] .trust-glow__sep { color: var(--muted); }
  [data-section="trust"][data-variant="d"] .trust-glow__rating { color: var(--accent-text); font-weight: 600; }
  [data-section="trust"][data-variant="d"] .trust-glow__count { color: var(--muted); }
  [data-section="trust"][data-variant="d"] .trust-glow__source { color: var(--muted); }

  /* =====================================================
     Trust — Variant E: trust-count-up
     Centered bar with tabular-nums for animated count-up.
     (Animation is a client-side enhancement; SSR renders final values.)
     ===================================================== */
  [data-section="trust"][data-variant="e"] .trust-countup {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--section-bg);
    padding: 14px 56px;
    font-size: 13px;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="trust"][data-variant="e"] .trust-countup__stars {
    display: flex;
    gap: 2px;
    color: var(--accent-text);
    font-size: 18px;
  }
  [data-section="trust"][data-variant="e"] .trust-countup__sep { color: var(--muted); }
  [data-section="trust"][data-variant="e"] .trust-countup__rating {
    color: var(--accent-text);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
  }
  [data-section="trust"][data-variant="e"] .trust-countup__count {
    color: var(--muted);
    font-variant-numeric: tabular-nums;
  }
  [data-section="trust"][data-variant="e"] .trust-countup__source { color: var(--muted); }

  /* =====================================================
     About variants A–E
     Scoped to [data-section="about"][data-variant="<letter>"]
     ===================================================== */

  /* --- Variant A: about-split-portrait-text --- */
  [data-section="about"][data-variant="a"] .about-split {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    padding: 160px 56px;
    gap: 64px;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  /* No portrait -> one column, so the grid does not reserve a blank 42%.
     See components/themes/sections/About/AboutA.tsx. */
  [data-section="about"][data-variant="a"] .about-split--no-portrait {
    grid-template-columns: 1fr;
  }
  [data-section="about"][data-variant="a"] .about-split__portrait-wrap {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
  }
  [data-section="about"][data-variant="a"] .about-split__portrait {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.8) contrast(1.04);
  }
  [data-section="about"][data-variant="a"] .about-split__body {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  [data-section="about"][data-variant="a"] .about-split__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 22px;
  }
  [data-section="about"][data-variant="a"] .about-split__headline {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 38px;
    letter-spacing: 0.01em;
    color: var(--text);
    line-height: 1.2;
    margin-bottom: 28px;
  }
  [data-section="about"][data-variant="a"] .about-split__text {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.75;
    max-width: 52ch;
  }
  @media (max-width: 900px) {
    [data-section="about"][data-variant="a"] .about-split {
      grid-template-columns: 1fr;
      padding: 80px 24px;
      gap: 40px;
    }
    [data-section="about"][data-variant="a"] .about-split__portrait-wrap {
      max-width: 400px;
      margin: 0 auto;
    }
    [data-section="about"][data-variant="a"] .about-split__headline { font-size: 28px; }
  }

  /* --- Variant B: about-full-bleed-portrait-overlay --- */
  [data-section="about"][data-variant="b"] .about-bleed {
    position: relative;
    height: 560px;
    overflow: hidden;
  }
  [data-section="about"][data-variant="b"] .about-bleed__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    filter: brightness(0.6) contrast(1.05);
  }
  [data-section="about"][data-variant="b"] .about-bleed__gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to top,
      rgba(12, 12, 12, 0.92) 0%,
      rgba(12, 12, 12, 0.55) 40%,
      rgba(12, 12, 12, 0.1) 100%
    );
  }
  [data-section="about"][data-variant="b"] .about-bleed__content {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 56px;
    max-width: 640px;
  }
  [data-section="about"][data-variant="b"] .about-bleed__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
  }
  [data-section="about"][data-variant="b"] .about-bleed__name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 48px;
    letter-spacing: 0.04em;
    color: var(--text);
    line-height: 1.05;
    margin-bottom: 18px;
  }
  [data-section="about"][data-variant="b"] .about-bleed__text {
    font-size: 15px;
    color: var(--text);
    opacity: 0.82;
    line-height: 1.75;
    margin-bottom: 24px;
  }
  [data-section="about"][data-variant="b"] .about-bleed__link {
    display: inline-block;
    color: var(--accent-text);
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 500;
    transition: opacity 0.15s;
  }
  [data-section="about"][data-variant="b"] .about-bleed__link:hover { opacity: 0.75; }
  @media (max-width: 900px) {
    [data-section="about"][data-variant="b"] .about-bleed { height: 400px; }
    [data-section="about"][data-variant="b"] .about-bleed__content { padding: 32px 24px; }
    [data-section="about"][data-variant="b"] .about-bleed__name { font-size: 32px; }
    [data-section="about"][data-variant="b"] .about-bleed__text { font-size: 14px; }
  }

  /* --- Variant C: about-three-column-essay --- */
  [data-section="about"][data-variant="c"] .about-essay {
    display: grid;
    grid-template-columns: 200px 1fr 1fr;
    gap: 48px;
    padding: 120px 56px;
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="about"][data-variant="c"] .about-essay__col:not(:last-child) {
    border-right: 1px solid var(--rule);
    padding-right: 48px;
  }
  [data-section="about"][data-variant="c"] .about-essay__col--identity {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-top: 8px;
  }
  [data-section="about"][data-variant="c"] .about-essay__avatar {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    filter: saturate(0.85) contrast(1.04);
    margin-bottom: 20px;
  }
  [data-section="about"][data-variant="c"] .about-essay__artist-name {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 18px;
    letter-spacing: 0.06em;
    color: var(--text);
    margin-bottom: 6px;
  }
  [data-section="about"][data-variant="c"] .about-essay__credential {
    font-size: 12px;
    color: var(--accent-text);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
  }
  [data-section="about"][data-variant="c"] .about-essay__col--text {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.8;
  }
  [data-section="about"][data-variant="c"] .about-essay__col--text p:first-child::first-letter {
    font-family: var(--font-display);
    font-size: 64px;
    float: left;
    line-height: 0.8;
    margin-right: 10px;
    margin-top: 6px;
    color: var(--accent-text);
    font-weight: 600;
  }
  [data-section="about"][data-variant="c"] .about-essay__col--quote {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.8;
  }
  [data-section="about"][data-variant="c"] .about-essay__pullquote {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 24px;
    color: var(--text);
    line-height: 1.35;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid var(--rule);
  }
  @media (max-width: 900px) {
    [data-section="about"][data-variant="c"] .about-essay {
      grid-template-columns: 1fr;
      padding: 64px 24px;
      gap: 32px;
    }
    [data-section="about"][data-variant="c"] .about-essay__col:not(:last-child) {
      border-right: none;
      padding-right: 0;
      border-bottom: 1px solid var(--rule);
      padding-bottom: 32px;
    }
    [data-section="about"][data-variant="c"] .about-essay__col--identity { align-items: center; }
    [data-section="about"][data-variant="c"] .about-essay__avatar { width: 120px; height: 120px; }
    [data-section="about"][data-variant="c"] .about-essay__pullquote { font-size: 20px; }
  }

  /* --- Variant D: about-fade-stagger --- */
  [data-section="about"][data-variant="d"] .about-fade {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    background: var(--section-bg);
    padding: 80px 56px;
    align-items: center;
  }
  [data-section="about"][data-variant="d"] .about-fade__portrait-wrap {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  [data-section="about"][data-variant="d"] .about-fade.is-visible .about-fade__portrait-wrap {
    opacity: 1;
    transform: translateY(0);
  }
  [data-section="about"][data-variant="d"] .about-fade__body {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
  }
  [data-section="about"][data-variant="d"] .about-fade.is-visible .about-fade__body {
    opacity: 1;
    transform: translateY(0);
  }
  [data-section="about"][data-variant="d"] .about-fade__portrait {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    border-radius: 6px;
  }
  [data-section="about"][data-variant="d"] .about-fade__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 12px;
  }
  [data-section="about"][data-variant="d"] .about-fade__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 16px;
  }
  [data-section="about"][data-variant="d"] .about-fade__text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted);
  }
  @media (max-width: 768px) {
    [data-section="about"][data-variant="d"] .about-fade {
      grid-template-columns: 1fr;
      padding: 48px 24px;
      gap: 32px;
    }
  }

  /* --- Variant E: about-image-reveal --- */
  [data-section="about"][data-variant="e"] .about-reveal {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    background: var(--section-bg);
    padding: 80px 56px;
    align-items: center;
  }
  [data-section="about"][data-variant="e"] .about-reveal__portrait img {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    border-radius: 6px;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 1.2s cubic-bezier(0.65, 0, 0.35, 1);
  }
  [data-section="about"][data-variant="e"] .about-reveal.is-visible .about-reveal__portrait img {
    clip-path: inset(0 0 0 0);
  }
  [data-section="about"][data-variant="e"] .about-reveal__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 12px;
  }
  [data-section="about"][data-variant="e"] .about-reveal__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 16px;
  }
  [data-section="about"][data-variant="e"] .about-reveal__text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted);
  }
  @media (max-width: 768px) {
    [data-section="about"][data-variant="e"] .about-reveal {
      grid-template-columns: 1fr;
      padding: 48px 24px;
      gap: 32px;
    }
  }

  /* =====================================================
     Gallery — Variant A (gallery-3col-rows-by-type)
     Rows grouped by gallery_type with eyebrow labels.
     ===================================================== */
  [data-section="gallery"][data-variant="a"] .gallery-rows {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 56px;
    text-align: center;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__heading {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__years {
    font-size: 13px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-group {
    margin-bottom: 48px;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-group:last-child {
    margin-bottom: 0;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__eyebrow {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 18px;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-label {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent-text);
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-count {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__item {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border-radius: 2px;
    position: relative;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__item:hover img {
    transform: scale(1.04);
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 18px;
    font-size: 12px;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: var(--accent-text);
    transition: opacity 0.15s;
  }
  [data-section="gallery"][data-variant="a"] .gallery-rows__type-link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="gallery"][data-variant="a"] .gallery-rows {
      padding: 48px 24px;
    }
    [data-section="gallery"][data-variant="a"] .gallery-rows__header {
      flex-direction: column;
      gap: 8px;
      margin-bottom: 36px;
    }
    [data-section="gallery"][data-variant="a"] .gallery-rows__heading {
      font-size: 28px;
    }
    [data-section="gallery"][data-variant="a"] .gallery-rows__grid {
      gap: 8px;
    }
  }

  /* =====================================================
     Gallery — Variant B (gallery-bento-mixed)
     Bento grid with varied tile sizes (tall × 2, wide × 1).
     ===================================================== */
  [data-section="gallery"][data-variant="b"] .gallery-bento {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 40px;
    text-align: center;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__heading {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__sub {
    font-size: 13px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 220px;
    gap: 12px;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__tile {
    overflow: hidden;
    border-radius: 2px;
    position: relative;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__tile:hover img {
    transform: scale(1.05);
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__tile--tall {
    grid-row: span 2;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__tile--wide {
    grid-column: span 2;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__footer {
    display: flex;
    justify-content: center;
    margin-top: 40px;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    border: 1px solid var(--accent);
    color: var(--accent-text);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.16em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="gallery"][data-variant="b"] .gallery-bento__link:hover {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  @media (max-width: 900px) {
    [data-section="gallery"][data-variant="b"] .gallery-bento {
      padding: 48px 24px;
    }
    [data-section="gallery"][data-variant="b"] .gallery-bento__header {
      flex-direction: column;
      gap: 8px;
      margin-bottom: 28px;
    }
    [data-section="gallery"][data-variant="b"] .gallery-bento__heading {
      font-size: 28px;
    }
    [data-section="gallery"][data-variant="b"] .gallery-bento__grid {
      grid-template-columns: repeat(2, 1fr);
      grid-auto-rows: 180px;
      gap: 8px;
    }
  }

  /* =====================================================
     Gallery — Variant C (gallery-chip-filtered-grid)
     4-col edge-to-edge grid with gallery_type filter chips.
     ===================================================== */
  [data-section="gallery"][data-variant="c"] .gallery-chips {
    padding: 80px 0;
    background: var(--section-bg);
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 0 56px;
    max-width: 1200px;
    margin: 0 auto 32px;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__heading {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
    text-align: center;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__count {
    font-size: 13px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__filters {
    display: flex;
    gap: 8px;
    padding: 0 56px;
    margin: 0 auto 32px;
    max-width: 1200px;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__filters::-webkit-scrollbar {
    display: none;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__chip {
    flex-shrink: 0;
    padding: 8px 20px;
    border-radius: 999px;
    font-size: 12px;
    letter-spacing: 0.06em;
    color: var(--muted);
    border: 1px solid var(--rule);
    background: transparent;
    transition: all 0.15s;
    cursor: pointer;
    white-space: nowrap;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__chip:hover {
    color: var(--text);
    border-color: var(--accent);
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__chip--active {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    border-color: var(--accent);
    font-weight: 500;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2px;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__tile {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    position: relative;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__tile:hover img {
    transform: scale(1.06);
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12, 12, 12, 0.82) 0%, rgba(12, 12, 12, 0) 50%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 14px 16px;
    opacity: 0;
    transition: opacity 0.25s ease;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__tile:hover .gallery-chips__overlay {
    opacity: 1;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__overlay-style {
    font-size: 11px;
    color: var(--accent-text);
    letter-spacing: 0.04em;
    margin-top: 2px;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__footer {
    display: flex;
    justify-content: center;
    padding: 0 56px;
    margin-top: 40px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 32px;
    border: 1px solid var(--accent);
    color: var(--accent-text);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.16em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="gallery"][data-variant="c"] .gallery-chips__link:hover {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  @media (max-width: 900px) {
    [data-section="gallery"][data-variant="c"] .gallery-chips {
      padding: 48px 0;
    }
    [data-section="gallery"][data-variant="c"] .gallery-chips__header {
      padding: 0 24px;
      margin-bottom: 24px;
      flex-direction: column;
      gap: 8px;
    }
    [data-section="gallery"][data-variant="c"] .gallery-chips__heading {
      font-size: 28px;
    }
    [data-section="gallery"][data-variant="c"] .gallery-chips__filters {
      padding: 0 24px;
      gap: 6px;
    }
    [data-section="gallery"][data-variant="c"] .gallery-chips__grid {
      grid-template-columns: repeat(2, 1fr);
    }
    [data-section="gallery"][data-variant="c"] .gallery-chips__footer {
      padding: 0 24px;
    }
  }

  /* =====================================================
     Gallery — Variant D (gallery-hover-scale)
     3-col uniform grid; hover scales + adds gold glow.
     ===================================================== */
  [data-section="gallery"][data-variant="d"] .gallery-hover {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 32px;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__sub {
    color: var(--muted);
    font-size: 14px;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__tile {
    overflow: hidden;
    border-radius: 6px;
    position: relative;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__tile img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    transform: scale(1);
    transition: transform 0.3s ease;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__tile:hover img {
    transform: scale(1.05);
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__tile:hover {
    box-shadow: 0 4px 20px rgba(220, 185, 106, 0.15);
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__footer {
    text-align: center;
    margin-top: 32px;
  }
  [data-section="gallery"][data-variant="d"] .gallery-hover__link {
    color: var(--accent-text);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  @media (max-width: 768px) {
    [data-section="gallery"][data-variant="d"] .gallery-hover {
      padding: 48px 24px;
    }
    [data-section="gallery"][data-variant="d"] .gallery-hover__grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="gallery"][data-variant="d"] .gallery-hover__grid {
      grid-template-columns: 1fr;
    }
    [data-section="gallery"][data-variant="d"] .gallery-hover__tile:hover {
      box-shadow: 0 2px 10px rgba(220, 185, 106, 0.12);
    }
  }

  /* =====================================================
     Gallery — Variant E (gallery-stagger-entrance)
     3-col grid with IntersectionObserver stagger animation.
     is-visible toggled by GalleryStaggerClient (TODO).
     SSR renders with is-visible pre-applied (no JS fallback).
     ===================================================== */
  [data-section="gallery"][data-variant="e"] .gallery-stagger {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 24px;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__years {
    color: var(--muted);
    font-size: 14px;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger .gallery__tile {
    border-radius: 6px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger .gallery__tile img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile {
    opacity: 1;
    transform: translateY(0);
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(1) { transition-delay: 0s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(2) { transition-delay: 0.1s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(3) { transition-delay: 0.2s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(4) { transition-delay: 0.3s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(5) { transition-delay: 0.4s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(6) { transition-delay: 0.5s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(7) { transition-delay: 0.6s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(8) { transition-delay: 0.7s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger.is-visible .gallery__tile:nth-child(9) { transition-delay: 0.8s; }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__footer {
    text-align: center;
    margin-top: 32px;
  }
  [data-section="gallery"][data-variant="e"] .gallery-stagger__link {
    color: var(--accent-text);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  @media (max-width: 768px) {
    [data-section="gallery"][data-variant="e"] .gallery-stagger {
      padding: 48px 24px;
    }
    [data-section="gallery"][data-variant="e"] .gallery-stagger__grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="gallery"][data-variant="e"] .gallery-stagger__grid {
      grid-template-columns: 1fr;
    }
  }

  /* =====================================================
     Roster — Variant A (roster-card-grid)
     3-column card grid: circular headshot, name, bio, link
     ===================================================== */
  [data-section="roster"][data-variant="a"] .roster-grid {
    padding: 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 40px;
    text-align: center;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 24px;
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    border-radius: 4px;
    transition: border-color 0.2s;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__card:hover {
    border-color: var(--accent);
  }
  [data-section="roster"][data-variant="a"] .roster-grid__photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 20px;
    border: 2px solid var(--rule);
  }
  [data-section="roster"][data-variant="a"] .roster-grid__placeholder {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--bg-mid, #1e1e1e);
    border: 2px solid var(--rule);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 500;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__artist-name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 6px;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__specialty {
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 18px;
    line-height: 1.5;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__link {
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-text);
    transition: opacity 0.15s;
  }
  [data-section="roster"][data-variant="a"] .roster-grid__link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="roster"][data-variant="a"] .roster-grid {
      padding: 40px 24px;
    }
    [data-section="roster"][data-variant="a"] .roster-grid__cards {
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
    }
    [data-section="roster"][data-variant="a"] .roster-grid__card {
      padding: 28px 16px;
    }
    [data-section="roster"][data-variant="a"] .roster-grid__heading {
      font-size: 28px;
      margin-bottom: 28px;
    }
  }
  @media (max-width: 480px) {
    [data-section="roster"][data-variant="a"] .roster-grid__cards {
      grid-template-columns: 1fr;
    }
  }

  /* =====================================================
     Roster — Variant B (roster-horizontal-scroll)
     Horizontal scroll strip with tall portrait cards
     ===================================================== */
  [data-section="roster"][data-variant="b"] .roster-scroll {
    position: relative;
    padding: 56px 0;
    background: var(--section-bg);
    overflow: hidden;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__header {
    padding: 0 56px 32px;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
    text-align: center;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__strip {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 0 56px 16px;
    scrollbar-width: thin;
    scrollbar-color: var(--accent) transparent;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__strip::-webkit-scrollbar {
    height: 4px;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__strip::-webkit-scrollbar-track {
    background: transparent;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__strip::-webkit-scrollbar-thumb {
    background: var(--accent);
    border-radius: 2px;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card {
    flex: 0 0 240px;
    height: 320px;
    position: relative;
    border-radius: 4px;
    overflow: hidden;
    cursor: pointer;
    scroll-snap-align: start;
    border: 1px solid var(--rule);
    transition: border-color 0.2s;
    text-decoration: none;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card:hover {
    border-color: var(--accent);
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card-placeholder {
    position: absolute;
    inset: 0;
    background: var(--bg-mid, #1e1e1e);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 500;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 24px 18px 18px;
    background: linear-gradient(to top, rgba(12,12,12,0.92) 0%, rgba(12,12,12,0.6) 60%, transparent 100%);
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card-name {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 4px;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__card-specialty {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.4;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__fade-left,
  [data-section="roster"][data-variant="b"] .roster-scroll__fade-right {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 56px;
    pointer-events: none;
    z-index: 2;
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__fade-left {
    left: 0;
    background: linear-gradient(to right, var(--bg), transparent);
  }
  [data-section="roster"][data-variant="b"] .roster-scroll__fade-right {
    right: 0;
    background: linear-gradient(to left, var(--bg), transparent);
  }
  @media (max-width: 900px) {
    [data-section="roster"][data-variant="b"] .roster-scroll__header {
      padding: 0 24px 24px;
    }
    [data-section="roster"][data-variant="b"] .roster-scroll__strip {
      padding: 0 24px 12px;
      gap: 14px;
    }
    [data-section="roster"][data-variant="b"] .roster-scroll__heading {
      font-size: 28px;
    }
    [data-section="roster"][data-variant="b"] .roster-scroll__fade-left,
    [data-section="roster"][data-variant="b"] .roster-scroll__fade-right {
      width: 24px;
    }
  }

  /* =====================================================
     Roster — Variant C (roster-list-rows)
     Stacked full-width list rows, compact + info-dense
     ===================================================== */
  [data-section="roster"][data-variant="c"] .roster-list {
    padding: 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="roster"][data-variant="c"] .roster-list__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="roster"][data-variant="c"] .roster-list__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 32px;
    text-align: center;
  }
  [data-section="roster"][data-variant="c"] .roster-list__rows {
    display: flex;
    flex-direction: column;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row {
    display: flex;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid var(--rule);
    gap: 20px;
    transition: background 0.15s;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row:first-child {
    border-top: 1px solid var(--rule);
  }
  [data-section="roster"][data-variant="c"] .roster-list__row:hover {
    background: rgba(220, 185, 106, 0.03);
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid var(--rule);
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--bg-mid, #1e1e1e);
    border: 1px solid var(--rule);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-info {
    flex: 1;
    min-width: 0;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-name {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 2px;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-specialty {
    font-size: 13px;
    color: var(--muted);
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-link {
    flex-shrink: 0;
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-text);
    transition: opacity 0.15s;
    white-space: nowrap;
  }
  [data-section="roster"][data-variant="c"] .roster-list__row-link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="roster"][data-variant="c"] .roster-list {
      padding: 40px 24px;
    }
    [data-section="roster"][data-variant="c"] .roster-list__heading {
      font-size: 28px;
      margin-bottom: 24px;
    }
    [data-section="roster"][data-variant="c"] .roster-list__row {
      gap: 14px;
    }
    [data-section="roster"][data-variant="c"] .roster-list__row-link {
      font-size: 11px;
    }
  }

  /* =====================================================
     Roster — Variant D (roster-marquee-cards)
     Circular avatar cards in a 5-column grid, lift on hover
     ===================================================== */
  [data-section="roster"][data-variant="d"] .roster-marquee {
    padding: 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 40px;
    text-align: center;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__cards {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 28px;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 32px 16px;
    transition: transform 0.2s;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__card:hover {
    transform: translateY(-4px);
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__photo {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 18px;
    border: 2px solid var(--rule);
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__placeholder {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--bg) 80%, #888);
    border: 2px solid var(--rule);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.04em;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__name {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--text);
    margin-bottom: 4px;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__specialty {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 14px;
    line-height: 1.4;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__link {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--accent-text);
    transition: opacity 0.15s;
  }
  [data-section="roster"][data-variant="d"] .roster-marquee__link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="roster"][data-variant="d"] .roster-marquee {
      padding: 40px 24px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__heading {
      font-size: 28px;
      margin-bottom: 28px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__cards {
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
    }
  }
  @media (max-width: 480px) {
    [data-section="roster"][data-variant="d"] .roster-marquee {
      padding: 64px 20px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__heading {
      font-size: 24px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__cards {
      grid-template-columns: repeat(2, 1fr);
      gap: 16px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__photo,
    [data-section="roster"][data-variant="d"] .roster-marquee__placeholder {
      width: 80px;
      height: 80px;
      font-size: 20px;
    }
    [data-section="roster"][data-variant="d"] .roster-marquee__name {
      font-size: 14px;
    }
  }

  /* =====================================================
     Roster — Variant E (roster-hover-glow)
     3-column cards: grayscale-to-color photo + gold glow on hover
     ===================================================== */
  [data-section="roster"][data-variant="e"] .roster-glow {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 32px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__card {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    border-radius: 8px;
    padding: 28px 24px;
    text-align: center;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__card:hover {
    box-shadow: 0 0 24px rgba(220,185,106,0.3);
    transform: translateY(-4px);
  }
  [data-section="roster"][data-variant="e"] .roster-glow__photo {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 16px;
    filter: grayscale(0.6);
    transition: filter 0.3s ease;
    display: block;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__card:hover .roster-glow__photo {
    filter: grayscale(0);
  }
  [data-section="roster"][data-variant="e"] .roster-glow__placeholder {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: rgba(220,185,106,0.08);
    border: 1px dashed var(--rule);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 22px;
    font-weight: 700;
    color: var(--accent-text);
    letter-spacing: 0.08em;
    filter: grayscale(0.6);
    transition: filter 0.3s ease;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__card:hover .roster-glow__placeholder {
    filter: grayscale(0);
  }
  [data-section="roster"][data-variant="e"] .roster-glow__artist-name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 4px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__specialty {
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 12px;
  }
  [data-section="roster"][data-variant="e"] .roster-glow__link {
    color: var(--accent-text);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }
  @media (max-width: 768px) {
    [data-section="roster"][data-variant="e"] .roster-glow {
      padding: 48px 24px;
    }
    [data-section="roster"][data-variant="e"] .roster-glow__cards {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="roster"][data-variant="e"] .roster-glow__cards {
      grid-template-columns: 1fr;
    }
    [data-section="roster"][data-variant="e"] .roster-glow__card:hover {
      box-shadow: 0 0 12px rgba(220,185,106,0.2);
    }
  }

  /* ============================================================
     Services — Variant A (services-card-grid)
     3-column icon card grid; hover lifts border to accent
     ============================================================ */
  [data-section="services"][data-variant="a"] .svc-grid {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="a"] .svc-grid__header {
    text-align: center;
    margin-bottom: 56px;
  }
  [data-section="services"][data-variant="a"] .svc-grid__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
  }
  [data-section="services"][data-variant="a"] .svc-grid__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="services"][data-variant="a"] .svc-grid__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="a"] .svc-card {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 36px 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: border-color 0.2s;
  }
  [data-section="services"][data-variant="a"] .svc-card:hover {
    border-color: var(--accent);
  }
  [data-section="services"][data-variant="a"] .svc-card__icon {
    width: 36px;
    height: 36px;
    color: var(--accent-text);
  }
  [data-section="services"][data-variant="a"] .svc-card__icon svg {
    width: 100%;
    height: 100%;
    stroke: var(--accent);
    fill: none;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  [data-section="services"][data-variant="a"] .svc-card__name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--text);
  }
  [data-section="services"][data-variant="a"] .svc-card__desc {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.65;
    flex: 1;
  }
  [data-section="services"][data-variant="a"] .svc-card__price {
    font-size: 13px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.04em;
    margin-top: 4px;
  }
  @media (max-width: 900px) {
    [data-section="services"][data-variant="a"] .svc-grid {
      padding: 56px 32px;
    }
    [data-section="services"][data-variant="a"] .svc-grid__cards {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="services"][data-variant="a"] .svc-grid {
      padding: 48px 20px;
    }
    [data-section="services"][data-variant="a"] .svc-grid__heading {
      font-size: 28px;
    }
    [data-section="services"][data-variant="a"] .svc-grid__cards {
      grid-template-columns: 1fr;
    }
  }

  /* ============================================================
     Services — Variant B (services-stacked-list)
     Alternating rows: name | description | price
     ============================================================ */
  [data-section="services"][data-variant="b"] .svc-list {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="b"] .svc-list__header {
    margin-bottom: 48px;
    text-align: center;
  }
  [data-section="services"][data-variant="b"] .svc-list__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
  }
  [data-section="services"][data-variant="b"] .svc-list__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="services"][data-variant="b"] .svc-list__rows {
    max-width: 1100px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="b"] .svc-row {
    display: grid;
    grid-template-columns: 220px 1fr 160px;
    align-items: baseline;
    padding: 22px 28px;
    border-bottom: 1px solid var(--rule);
    gap: 32px;
  }
  [data-section="services"][data-variant="b"] .svc-row:first-child {
    border-top: 1px solid var(--rule);
  }
  [data-section="services"][data-variant="b"] .svc-row:nth-child(even) {
    background: var(--bg-mid);
  }
  [data-section="services"][data-variant="b"] .svc-row__name {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--text);
  }
  [data-section="services"][data-variant="b"] .svc-row__desc {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.6;
  }
  [data-section="services"][data-variant="b"] .svc-row__price {
    font-size: 13px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.04em;
    text-align: right;
  }
  [data-section="services"][data-variant="b"] .svc-row__link {
    display: inline-block;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent-text);
    text-decoration: none;
    border-bottom: 1px solid var(--accent);
    padding-bottom: 2px;
  }
  [data-section="services"][data-variant="b"] .svc-row__link:hover {
    opacity: 0.8;
  }
  @media (max-width: 768px) {
    [data-section="services"][data-variant="b"] .svc-list {
      padding: 56px 24px;
    }
    [data-section="services"][data-variant="b"] .svc-row {
      grid-template-columns: 1fr;
      gap: 6px;
    }
    [data-section="services"][data-variant="b"] .svc-row__price {
      text-align: left;
    }
  }

  /* ============================================================
     Services — Variant C (services-accordion)
     Expandable <details> per service; chevron rotates on open
     ============================================================ */
  [data-section="services"][data-variant="c"] .svc-accordion {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="c"] .svc-accordion__header {
    margin-bottom: 48px;
    text-align: center;
  }
  [data-section="services"][data-variant="c"] .svc-accordion__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
  }
  [data-section="services"][data-variant="c"] .svc-accordion__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="services"][data-variant="c"] .svc-accordion__items {
    max-width: 800px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="c"] .svc-detail {
    border-bottom: 1px solid var(--rule);
  }
  [data-section="services"][data-variant="c"] .svc-detail:first-of-type {
    border-top: 1px solid var(--rule);
  }
  [data-section="services"][data-variant="c"] .svc-detail[open] {
    background: var(--bg-mid);
  }
  [data-section="services"][data-variant="c"] .svc-detail__summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
    gap: 24px;
    list-style: none;
    cursor: pointer;
    transition: color 0.15s;
  }
  [data-section="services"][data-variant="c"] .svc-detail__summary:hover {
    color: var(--accent-text);
  }
  [data-section="services"][data-variant="c"] .svc-detail__summary-left {
    display: flex;
    align-items: center;
    gap: 16px;
  }
  [data-section="services"][data-variant="c"] .svc-detail__name {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--text);
  }
  [data-section="services"][data-variant="c"] .svc-detail__chevron {
    width: 18px;
    height: 18px;
    color: var(--muted);
    transition: transform 0.2s;
    flex-shrink: 0;
  }
  [data-section="services"][data-variant="c"] .svc-detail[open] .svc-detail__chevron {
    transform: rotate(180deg);
    color: var(--accent-text);
  }
  [data-section="services"][data-variant="c"] .svc-detail__price-tag {
    font-size: 12px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.06em;
    white-space: nowrap;
  }
  [data-section="services"][data-variant="c"] .svc-detail__body {
    padding: 0 24px 24px;
  }
  [data-section="services"][data-variant="c"] .svc-detail__desc {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.7;
    margin-bottom: 16px;
    max-width: 60ch;
  }
  [data-section="services"][data-variant="c"] .svc-detail__link {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text);
    transition: opacity 0.15s;
  }
  [data-section="services"][data-variant="c"] .svc-detail__link:hover {
    opacity: 0.75;
  }
  @media (max-width: 768px) {
    [data-section="services"][data-variant="c"] .svc-accordion {
      padding: 56px 24px;
    }
  }

  /* ============================================================
     Services — Variant D (services-marquee-grid)
     Text-only 3-col cards on subtle darkened bg; no icons
     ============================================================ */
  [data-section="services"][data-variant="d"] .svc-marquee {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="d"] .svc-marquee__header {
    text-align: center;
    margin-bottom: 56px;
  }
  [data-section="services"][data-variant="d"] .svc-marquee__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
  }
  [data-section="services"][data-variant="d"] .svc-marquee__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="services"][data-variant="d"] .svc-marquee__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card {
    background: color-mix(in srgb, var(--bg) 94%, #000);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 36px 28px 32px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: border-color 0.2s;
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card:hover {
    border-color: var(--accent);
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card__name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--text);
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card__desc {
    font-size: 13px;
    color: color-mix(in srgb, var(--muted) 75%, var(--text));
    line-height: 1.65;
    flex: 1;
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card__link {
    font-size: 12px;
    letter-spacing: 0.08em;
    color: color-mix(in srgb, var(--accent-text) 80%, var(--text));
    transition: opacity 0.15s;
  }
  [data-section="services"][data-variant="d"] .svc-marquee-card__link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="services"][data-variant="d"] .svc-marquee {
      padding: 48px 24px;
    }
    [data-section="services"][data-variant="d"] .svc-marquee__heading {
      font-size: 28px;
    }
    [data-section="services"][data-variant="d"] .svc-marquee__cards {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="services"][data-variant="d"] .svc-marquee {
      padding: 64px 20px;
    }
    [data-section="services"][data-variant="d"] .svc-marquee__heading {
      font-size: 24px;
    }
    [data-section="services"][data-variant="d"] .svc-marquee__cards {
      grid-template-columns: 1fr;
    }
  }

  /* ============================================================
     Services — Variant E (services-glassmorphism)
     3-col frosted-glass icon cards; backdrop-filter blur(12px)
     ============================================================ */
  [data-section="services"][data-variant="e"] .svc-glass {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__header {
    margin-bottom: 32px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
  }
  [data-section="services"][data-variant="e"] .svc-glass__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card {
    background: rgba(255,255,255,0.04);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 28px 24px;
    transition: background 0.3s ease, border-color 0.3s ease;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card:hover {
    background: rgba(255,255,255,0.08);
    border-color: var(--accent);
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-icon {
    width: 36px;
    height: 36px;
    color: var(--accent-text);
    stroke: var(--accent);
    fill: none;
    stroke-width: 1.5;
    margin-bottom: 14px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-desc {
    font-size: 14px;
    color: color-mix(in srgb, var(--muted) 75%, var(--text));
    line-height: 1.6;
    margin-bottom: 12px;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-price {
    font-size: 13px;
    color: var(--accent-text);
    font-weight: 500;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-link {
    display: inline-block;
    margin-top: 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--accent-text);
    text-decoration: none;
    letter-spacing: 0.04em;
  }
  [data-section="services"][data-variant="e"] .svc-glass__card-link:hover {
    text-decoration: underline;
  }
  @media (max-width: 768px) {
    [data-section="services"][data-variant="e"] .svc-glass {
      padding: 48px 24px;
    }
    [data-section="services"][data-variant="e"] .svc-glass__cards {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="services"][data-variant="e"] .svc-glass__cards {
      grid-template-columns: 1fr;
    }
    [data-section="services"][data-variant="e"] .svc-glass__card {
      backdrop-filter: blur(6px);
    }
  }

  /* ==========================================================
     Section: third-party-trust
     Press logos, award badges, "as featured in" rows.
     Scoped per variant to [data-section="third-party-trust"][data-variant="<letter>"].
     ========================================================== */

  /* --- Variant A: press-strip --- */
    /* 🚨 The section paints its own background from --section-bg.
     Without this the builder's per-section Background picker wrote the
     database and rendered nothing — the control existed, the tone never
     appeared. Reported by a client as "Need to be able change bg color of
     third party trust" (Sean, Darkside, 2026-08-14); same defect class as
     the Amenities bar in docs/BUILDER-SECTION-AUDIT.md, where a section had
     no CSS at all. `--section-bg` falls back to the framework's own value,
     so a tenant who never touches the picker sees no change. */
[data-section="third-party-trust"][data-variant="a"] .trust-strip {
    background: var(--section-bg);
    padding: 48px 56px;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__eyebrow {
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 20px;
  }
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__names {
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: 0.06em;
    color: var(--text);
    opacity: 0.82;
    line-height: 2;
  }
  /* Award/press LOGO in the strip (award.imageUrl) — capped so an uploaded
     logo can't blow up the row (2026-07-25 review: Sean's Alliance badge). */
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__logo {
    /* 34px was too small to read an accreditation mark (operator,
       2026-08-03) — these are BBB / Chamber-of-Commerce style badges, not
       wordmarks, so detail matters. */
    height: 56px;
    max-width: 190px;
    width: auto;
    object-fit: contain;
    display: inline-block;
    vertical-align: middle;

    /* Accreditation logos are supplied as dark artwork on transparent
       PNGs, so on a dark theme two of Darkside's six were invisible.
       A light plate is the standard press-strip treatment and works for
       ANY artwork — unlike `invert()`, which would destroy the coloured
       seals (the red cross, the gold badges). Sized so a light-on-light
       logo still reads on a light theme. */
    background: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    box-sizing: content-box;
  }
  /* The plate is only needed where the section background is dark. On a
     light theme it is invisible anyway, but drop the radius/padding cost
     by keeping it transparent when the page background is light. */
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__link {
    display: inline-block;
    vertical-align: middle;
    text-decoration: none;
    transition: opacity 0.18s ease, transform 0.18s ease;
  }
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__link:hover {
    opacity: 0.82;
    transform: translateY(-1px);
  }
  @media (prefers-reduced-motion: reduce) {
    [data-section="third-party-trust"][data-variant="a"] .trust-strip__link {
      transition: none;
    }
    [data-section="third-party-trust"][data-variant="a"] .trust-strip__link:hover {
      transform: none;
    }
  }
  [data-section="third-party-trust"][data-variant="a"] .trust-strip__sep {
    display: inline-block;
    margin: 0 18px;
    color: var(--accent-text);
  }
  @media (max-width: 900px) {
    [data-section="third-party-trust"][data-variant="a"] .trust-strip {
      padding: 36px 24px;
    }
    [data-section="third-party-trust"][data-variant="a"] .trust-strip__sep {
      margin: 0 10px;
    }
  }

  /* --- Variant B: awards-grid --- */
    /* 🚨 The section paints its own background from --section-bg.
     Without this the builder's per-section Background picker wrote the
     database and rendered nothing — the control existed, the tone never
     appeared. Reported by a client as "Need to be able change bg color of
     third party trust" (Sean, Darkside, 2026-08-14); same defect class as
     the Amenities bar in docs/BUILDER-SECTION-AUDIT.md, where a section had
     no CSS at all. `--section-bg` falls back to the framework's own value,
     so a tenant who never touches the picker sees no change. */
[data-section="third-party-trust"][data-variant="b"] .trust-grid {
    background: var(--section-bg);
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 0;
    padding: 56px;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__col {
    padding: 0 48px;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__col:first-child {
    padding-left: 0;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__col:last-child {
    padding-right: 0;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__rule {
    width: 1px;
    background: var(--rule);
    align-self: stretch;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__eyebrow {
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 28px;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item {
    padding: 14px 0;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item:last-child {
    border-bottom: none;
  }
  /* Award/press LOGO above the entry (award.imageUrl) — capped. */
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item-logo {
    max-height: 52px;
    max-width: 170px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    margin-bottom: 8px;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item-name {
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 2px;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item-name--award {
    color: var(--accent-text);
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item-year {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.06em;
  }
  [data-section="third-party-trust"][data-variant="b"] .trust-grid__item-event {
    font-size: 12px;
    color: var(--muted);
    margin-top: 2px;
  }
  @media (max-width: 900px) {
    [data-section="third-party-trust"][data-variant="b"] .trust-grid {
      grid-template-columns: 1fr;
      padding: 36px 24px;
      gap: 32px;
    }
    [data-section="third-party-trust"][data-variant="b"] .trust-grid__col {
      padding: 0;
    }
    [data-section="third-party-trust"][data-variant="b"] .trust-grid__rule {
      display: none;
    }
  }

  /* --- Variant C: timeline --- */
    /* 🚨 The section paints its own background from --section-bg.
     Without this the builder's per-section Background picker wrote the
     database and rendered nothing — the control existed, the tone never
     appeared. Reported by a client as "Need to be able change bg color of
     third party trust" (Sean, Darkside, 2026-08-14); same defect class as
     the Amenities bar in docs/BUILDER-SECTION-AUDIT.md, where a section had
     no CSS at all. `--section-bg` falls back to the framework's own value,
     so a tenant who never touches the picker sees no change. */
[data-section="third-party-trust"][data-variant="c"] .trust-timeline {
    background: var(--section-bg);
    position: relative;
    padding: 64px 56px;
    max-width: 800px;
    margin: 0 auto;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__lineage {
    margin-bottom: 48px;
    padding-left: 40px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__lineage-eyebrow {
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 12px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__lineage-text {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    color: var(--text);
    opacity: 0.88;
    line-height: 1.55;
    max-width: 560px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__track {
    position: relative;
    padding-left: 40px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__track::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--accent);
    opacity: 0.35;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__entry {
    position: relative;
    padding-bottom: 36px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__entry:last-child {
    padding-bottom: 0;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__dot {
    position: absolute;
    left: -40px;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--bg);
    border: 2px solid var(--accent);
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__dot--award {
    background: var(--accent);
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__year {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 4px;
    font-weight: 500;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__title {
    font-family: var(--font-display);
    font-size: 16px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 4px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__title--award {
    color: var(--accent-text);
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__desc {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.55;
    max-width: 480px;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__tag {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 2px;
    margin-top: 6px;
    font-weight: 500;
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__tag--press {
    color: var(--muted);
    border: 1px solid var(--rule);
  }
  [data-section="third-party-trust"][data-variant="c"] .trust-timeline__tag--award {
    color: var(--accent-text);
    border: 1px solid rgba(220, 185, 106, 0.3);
  }
  @media (max-width: 900px) {
    [data-section="third-party-trust"][data-variant="c"] .trust-timeline {
      padding: 48px 24px;
    }
  }

  /* --- Variant D: fade-timeline --- */
  /* Shares trust-timeline BEM structure from Variant C; adds scroll-reveal animation layer. */
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade {
    background: var(--section-bg);
    padding: 80px 56px;
    max-width: 920px;
    margin: 0 auto;
  }
  /* Lineage block animates in first */
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade .trust-timeline__lineage {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__lineage {
    opacity: 1;
    transform: none;
    transition-delay: 0.1s;
  }
  /* Vertical track line draws down */
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade .trust-timeline__track {
    position: relative;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade .trust-timeline__track::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--accent);
    opacity: 0.35;
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 2s ease;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__track::before {
    transform: scaleY(1);
  }
  /* Entries slide + fade in with staggered delays */
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade .trust-timeline__entry {
    position: relative;
    padding-bottom: 36px;
    opacity: 0;
    transform: translateX(-30px);
    transition: opacity 0.5s ease, transform 0.5s ease;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade .trust-timeline__entry:last-child {
    padding-bottom: 0;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry {
    opacity: 1;
    transform: none;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(1) { transition-delay: 0.3s; }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(2) { transition-delay: 0.45s; }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(3) { transition-delay: 0.6s; }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(4) { transition-delay: 0.75s; }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(5) { transition-delay: 0.9s; }
  [data-section="third-party-trust"][data-variant="d"] .trust3p-fade.is-visible .trust-timeline__entry:nth-child(6) { transition-delay: 1.05s; }
  /* Re-use Variant C BEM elements for dot, year, title, desc, tag */
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__dot {
    position: absolute;
    left: -40px;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--bg);
    border: 2px solid var(--accent);
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__dot--award {
    background: var(--accent);
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__lineage-eyebrow {
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 12px;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__lineage-text {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    color: var(--text);
    opacity: 0.88;
    line-height: 1.55;
    max-width: 560px;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__year {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 4px;
    font-weight: 500;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__title {
    font-family: var(--font-display);
    font-size: 16px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 4px;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__title--award {
    color: var(--accent-text);
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__desc {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.55;
    max-width: 480px;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__tag {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 2px;
    margin-top: 6px;
    font-weight: 500;
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__tag--press {
    color: var(--muted);
    border: 1px solid var(--rule);
  }
  [data-section="third-party-trust"][data-variant="d"] .trust-timeline__tag--award {
    color: var(--accent-text);
    border: 1px solid rgba(220, 185, 106, 0.3);
  }
  @media (max-width: 480px) {
    [data-section="third-party-trust"][data-variant="d"] .trust3p-fade {
      padding: 48px 24px;
    }
  }

  /* --- Variant E: glow-badges --- */
  @keyframes tpt-dotPulse {
    0%, 100% { opacity: 0.4; color: var(--muted); }
    50% { opacity: 1; color: var(--accent-text); }
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow {
    background: var(--section-bg);
    padding: 48px 56px;
    text-align: center;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--muted);
    margin-bottom: 16px;
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__names {
    font-family: var(--font-display);
    font-size: 20px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__name {
    cursor: default;
    transition: text-shadow 0.3s ease, color 0.3s ease;
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__name:hover {
    text-shadow: 0 0 12px var(--accent);
    color: var(--accent-text);
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep {
    display: inline-block;
    margin: 0 14px;
    animation: tpt-dotPulse 3s ease infinite;
  }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep:nth-of-type(1) { animation-delay: 0s; }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep:nth-of-type(2) { animation-delay: 0.4s; }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep:nth-of-type(3) { animation-delay: 0.8s; }
  [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep:nth-of-type(4) { animation-delay: 1.2s; }
  @media (max-width: 480px) {
    [data-section="third-party-trust"][data-variant="e"] .trust3p-glow {
      padding: 36px 24px;
    }
    [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__names {
      font-size: 16px;
    }
    [data-section="third-party-trust"][data-variant="e"] .trust3p-glow__sep {
      margin: 0 8px;
    }
  }

  /* =========================================================
     Pricing — Variants A–E
     ========================================================= */

  /* --- Variant A: pricing-centered-prose --- */
  [data-section="pricing"][data-variant="a"] .pricing-prose {
    padding: 80px 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 24px;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__headline {
    font-family: var(--font-display);
    font-style: italic;
    font-weight: 400;
    font-size: 38px;
    letter-spacing: 0.01em;
    color: var(--text);
    margin-bottom: 36px;
    line-height: 1.2;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__rule {
    width: 48px;
    height: 1px;
    background: var(--accent);
    margin-bottom: 36px;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__body {
    max-width: 680px;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__body p {
    font-size: 15px;
    color: var(--text);
    opacity: 0.82;
    line-height: 1.75;
    margin-bottom: 18px;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__body p:last-child {
    margin-bottom: 0;
  }
  [data-section="pricing"][data-variant="a"] .pricing-prose__body .accent {
    color: var(--accent-text);
    font-weight: 500;
  }
  @media (max-width: 900px) {
    [data-section="pricing"][data-variant="a"] .pricing-prose {
      padding: 56px 24px;
    }
    [data-section="pricing"][data-variant="a"] .pricing-prose__headline {
      font-size: 28px;
    }
  }

  /* --- Variant B: pricing-three-cards --- */
  [data-section="pricing"][data-variant="b"] .pricing-cards {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="pricing"][data-variant="b"] .pricing-cards__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    text-align: center;
    margin-bottom: 48px;
  }
  [data-section="pricing"][data-variant="b"] .pricing-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    max-width: 960px;
    margin: 0 auto;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    border-top: 3px solid var(--accent);
    padding: 40px 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__name {
    font-family: var(--font-display);
    font-size: 18px;
    letter-spacing: 0.06em;
    color: var(--text);
    margin-bottom: 20px;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__price {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.02em;
    margin-bottom: 8px;
    line-height: 1.1;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__qualifier {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 20px;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__rule {
    width: 32px;
    height: 1px;
    background: var(--rule);
    margin-bottom: 20px;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__desc {
    font-size: 14px;
    color: var(--text);
    opacity: 0.72;
    line-height: 1.65;
    margin-bottom: 28px;
    flex: 1;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__cta {
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-text);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 2px;
    transition: border-color 0.15s;
  }
  [data-section="pricing"][data-variant="b"] .pricing-card__cta:hover {
    border-color: var(--accent);
  }
  @media (max-width: 900px) {
    [data-section="pricing"][data-variant="b"] .pricing-cards {
      padding: 56px 24px;
    }
    [data-section="pricing"][data-variant="b"] .pricing-cards__grid {
      grid-template-columns: 1fr;
      max-width: 400px;
      margin: 0 auto;
    }
  }

  /* --- Variant C: pricing-inline-table --- */
  [data-section="pricing"][data-variant="c"] .pricing-table {
    padding: 80px 56px;
    background: var(--section-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 32px;
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    width: 100%;
    max-width: 960px;
    border: 1px solid var(--rule);
    background: var(--bg-mid);
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__cell {
    padding: 32px 28px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__cell + .pricing-table__cell {
    border-left: 1px solid var(--rule);
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__label {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__value {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.02em;
  }
  [data-section="pricing"][data-variant="c"] .pricing-table__note {
    margin-top: 24px;
    font-size: 13px;
    color: var(--muted);
    line-height: 1.65;
    text-align: center;
    max-width: 560px;
  }
  @media (max-width: 900px) {
    [data-section="pricing"][data-variant="c"] .pricing-table {
      padding: 56px 24px;
    }
    [data-section="pricing"][data-variant="c"] .pricing-table__strip {
      grid-template-columns: repeat(2, 1fr);
    }
    [data-section="pricing"][data-variant="c"] .pricing-table__cell:nth-child(3) {
      border-left: none;
      border-top: 1px solid var(--rule);
    }
    [data-section="pricing"][data-variant="c"] .pricing-table__cell:nth-child(4) {
      border-top: 1px solid var(--rule);
    }
    [data-section="pricing"][data-variant="c"] .pricing-table__value {
      font-size: 20px;
    }
  }

  /* --- Variant D: pricing-cards-hover-lift --- */
  @keyframes pricing-textShimmer {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }
  [data-section="pricing"][data-variant="d"] .price-lift {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 24px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__card {
    background: var(--bg-mid);
    padding: 32px 24px;
    border: 1px solid var(--rule);
    border-radius: 4px;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.3);
    border-color: var(--accent);
  }
  [data-section="pricing"][data-variant="d"] .price-lift__name {
    font-family: var(--font-display);
    font-size: 18px;
    margin-bottom: 12px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__price {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 700;
    background: linear-gradient(135deg, var(--accent), var(--text), var(--accent));
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: pricing-textShimmer 4s ease infinite;
    margin-bottom: 4px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__qualifier {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 16px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__rule {
    width: 32px;
    height: 1px;
    background: var(--rule);
    margin-bottom: 16px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__desc {
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 20px;
  }
  [data-section="pricing"][data-variant="d"] .price-lift__cta {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-text);
  }
  @media (max-width: 768px) {
    [data-section="pricing"][data-variant="d"] .price-lift__grid {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 480px) {
    [data-section="pricing"][data-variant="d"] .price-lift {
      padding: 48px 24px;
    }
  }

  /* --- Variant E: pricing-reveal --- */
  [data-section="pricing"][data-variant="e"] .price-reveal {
    background: var(--section-bg);
    padding: 56px 56px;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 20px;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__cell {
    padding: 24px 20px;
    border-right: 1px solid var(--rule);
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__cell:last-child {
    border-right: none;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal.is-visible .price-reveal__cell {
    opacity: 1;
    transform: none;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal.is-visible .price-reveal__cell:nth-child(1) {
    transition-delay: 0s;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal.is-visible .price-reveal__cell:nth-child(2) {
    transition-delay: 0.2s;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal.is-visible .price-reveal__cell:nth-child(3) {
    transition-delay: 0.4s;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal.is-visible .price-reveal__cell:nth-child(4) {
    transition-delay: 0.6s;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--muted);
    margin-bottom: 8px;
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__value {
    display: block;
    font-family: var(--font-display);
    font-size: 22px;
    color: var(--accent-text);
  }
  [data-section="pricing"][data-variant="e"] .price-reveal__note {
    font-size: 13px;
    color: var(--muted);
    margin-top: 16px;
  }
  @media (max-width: 768px) {
    [data-section="pricing"][data-variant="e"] .price-reveal__strip {
      grid-template-columns: repeat(2, 1fr);
    }
    [data-section="pricing"][data-variant="e"] .price-reveal__cell:nth-child(2) {
      border-right: none;
    }
  }
  @media (max-width: 480px) {
    [data-section="pricing"][data-variant="e"] .price-reveal {
      padding: 40px 24px;
    }
    [data-section="pricing"][data-variant="e"] .price-reveal__strip {
      grid-template-columns: 1fr;
    }
    [data-section="pricing"][data-variant="e"] .price-reveal__cell {
      border-right: none;
      border-bottom: 1px solid var(--rule);
    }
    [data-section="pricing"][data-variant="e"] .price-reveal__cell:last-child {
      border-bottom: none;
    }
  }

  /* =====================================================
     Testimonials — shared
     ===================================================== */
  [data-section="testimonials"] .stars {
    display: inline-flex;
    gap: 3px;
    color: var(--accent-text);
    font-size: 14px;
    letter-spacing: 2px;
  }
  [data-section="testimonials"] .stars--lg {
    font-size: 22px;
    letter-spacing: 3px;
  }

  /* =====================================================
     Testimonials A — pull-quote-cards
     ===================================================== */
  [data-section="testimonials"][data-variant="a"] .testi-cards {
    padding: 64px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="testimonials"][data-variant="a"] .testi-cards__heading {
    font-family: var(--font-display);
    font-size: 28px;
    letter-spacing: 0.04em;
    text-align: center;
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="a"] .testi-cards__sub {
    text-align: center;
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 48px;
    letter-spacing: 0.02em;
  }
  [data-section="testimonials"][data-variant="a"] .testi-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    padding: 36px 32px 32px;
    display: flex;
    flex-direction: column;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card__open-quote {
    font-family: var(--font-display);
    font-size: 56px;
    color: var(--accent-text);
    line-height: 1;
    margin-bottom: 8px;
    user-select: none;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card__quote {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    line-height: 1.55;
    color: var(--text);
    flex: 1;
    margin-bottom: 20px;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card__rule {
    height: 1px;
    background: var(--rule);
    margin-bottom: 18px;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card__attribution {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 10px;
  }
  [data-section="testimonials"][data-variant="a"] .testi-card__attribution strong {
    color: var(--text);
    font-weight: 500;
  }
  @media (max-width: 900px) {
    [data-section="testimonials"][data-variant="a"] .testi-cards {
      padding: 48px 24px;
    }
    [data-section="testimonials"][data-variant="a"] .testi-cards__grid {
      grid-template-columns: 1fr;
    }
  }

  /* =====================================================
     Testimonials B — single-large-rotating
     ===================================================== */
  [data-section="testimonials"][data-variant="b"] .testi-single {
    padding: 80px 56px;
    background: var(--section-bg);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__heading {
    font-family: var(--font-display);
    font-size: 28px;
    letter-spacing: 0.04em;
    margin-bottom: 48px;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__open-quote {
    font-family: var(--font-display);
    font-size: 72px;
    color: var(--accent-text);
    line-height: 1;
    margin-bottom: 12px;
    user-select: none;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__quote {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 32px;
    line-height: 1.4;
    color: var(--text);
    max-width: 780px;
    margin-bottom: 28px;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__attribution {
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 8px;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__attribution strong {
    color: var(--text);
    font-weight: 500;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__stars {
    margin-bottom: 24px;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__count {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.06em;
    margin-bottom: 18px;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__link {
    font-size: 13px;
    color: var(--accent-text);
    letter-spacing: 0.06em;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 2px;
    transition: border-color 0.15s;
  }
  [data-section="testimonials"][data-variant="b"] .testi-single__link:hover {
    border-color: var(--accent);
  }
  @media (max-width: 900px) {
    [data-section="testimonials"][data-variant="b"] .testi-single {
      padding: 56px 24px;
    }
    [data-section="testimonials"][data-variant="b"] .testi-single__quote {
      font-size: 24px;
    }
  }

  /* =====================================================
     Testimonials C — google-embed-style
     ===================================================== */
  [data-section="testimonials"][data-variant="c"] .testi-google {
    padding: 64px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__heading {
    font-family: var(--font-display);
    font-size: 28px;
    letter-spacing: 0.04em;
    text-align: center;
    margin-bottom: 48px;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__layout {
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 48px;
    align-items: start;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__agg {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 32px;
    background: var(--bg-mid);
    border: 1px solid var(--rule);
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__score {
    font-family: var(--font-display);
    font-size: 56px;
    color: var(--accent-text);
    font-weight: 600;
    line-height: 1;
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__agg-stars {
    margin-bottom: 14px;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__agg-meta {
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 20px;
    letter-spacing: 0.02em;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__write-link {
    font-size: 12px;
    color: var(--accent-text);
    letter-spacing: var(--btn-tracking, 0.08em);
    text-transform: var(--btn-transform, uppercase);
    border: 1px solid var(--accent);
    border-radius: var(--btn-radius, 0);
    font-weight: var(--btn-weight, 500);
    padding: 10px 20px;
    transition: background 0.15s, color 0.15s;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__write-link:hover {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__reviews {
    display: flex;
    flex-direction: column;
    gap: 18px;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__review {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    padding: 22px 26px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__review-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__reviewer {
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__via {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }
  [data-section="testimonials"][data-variant="c"] .testi-google__review-quote {
    font-size: 14px;
    color: var(--text);
    opacity: 0.88;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  @media (max-width: 900px) {
    [data-section="testimonials"][data-variant="c"] .testi-google {
      padding: 48px 24px;
    }
    [data-section="testimonials"][data-variant="c"] .testi-google__layout {
      grid-template-columns: 1fr;
      gap: 32px;
    }
    [data-section="testimonials"][data-variant="c"] .testi-google__agg {
      max-width: 360px;
      margin: 0 auto;
      width: 100%;
    }
  }

  /* =====================================================
     Testimonials D — float-cards
     ===================================================== */
  @keyframes testiFloat1 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
  }
  @keyframes testiFloat2 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
  }
  @keyframes testiFloat3 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
  }
  @keyframes starGlow {
    0%, 100% { text-shadow: none; }
    50% { text-shadow: 0 0 8px var(--accent), 0 0 16px var(--accent); }
  }
  [data-section="testimonials"][data-variant="d"] .testi-float {
    background: var(--section-bg);
    padding: 80px 56px;
    text-align: center;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 8px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__sub {
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 40px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__card {
    background: var(--bg-mid);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 32px 24px;
    text-align: left;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(1) {
    animation: testiFloat1 6s ease-in-out infinite;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(2) {
    animation: testiFloat2 7s ease-in-out infinite;
    animation-delay: 0.5s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(3) {
    animation: testiFloat3 5s ease-in-out infinite;
    animation-delay: 1s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__open-quote {
    font-family: var(--font-display);
    font-size: 48px;
    color: var(--accent-text);
    line-height: 0.5;
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__quote {
    font-size: 15px;
    line-height: 1.55;
    color: var(--text);
    margin-bottom: 16px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__rule {
    width: 32px;
    height: 1px;
    background: var(--rule);
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__attribution {
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span {
    color: var(--accent-text);
    font-size: 16px;
    animation: starGlow 2s ease-in-out infinite;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span:nth-child(1) {
    animation-delay: 0s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span:nth-child(2) {
    animation-delay: 0.2s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span:nth-child(3) {
    animation-delay: 0.4s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span:nth-child(4) {
    animation-delay: 0.6s;
  }
  [data-section="testimonials"][data-variant="d"] .testi-float__stars span:nth-child(5) {
    animation-delay: 0.8s;
  }
  @media (max-width: 768px) {
    [data-section="testimonials"][data-variant="d"] .testi-float__grid {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 480px) {
    [data-section="testimonials"][data-variant="d"] .testi-float {
      padding: 56px 24px;
    }
    [data-section="testimonials"][data-variant="d"] .testi-float__card,
    [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(1),
    [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(2),
    [data-section="testimonials"][data-variant="d"] .testi-float__card:nth-child(3) {
      animation: none;
    }
  }

  /* =====================================================
     Testimonials E — typewriter
     ===================================================== */
  [data-section="testimonials"][data-variant="e"] .testi-type {
    background: var(--section-bg);
    padding: 80px 56px;
    text-align: center;
    max-width: 860px;
    margin: 0 auto;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__heading {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 24px;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__open-quote {
    font-family: var(--font-display);
    font-size: 80px;
    color: var(--accent-text);
    line-height: 0.5;
    margin-bottom: 16px;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__quote {
    font-family: var(--font-display);
    font-size: 26px;
    line-height: 1.45;
    color: var(--text);
    max-width: 720px;
    margin: 0 auto 24px;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 3s ease;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type.is-visible .testi-type__quote {
    clip-path: inset(0 0 0 0);
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__attribution {
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 16px;
    opacity: 0;
    transition: opacity 0.6s ease 2.8s;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type.is-visible .testi-type__attribution {
    opacity: 1;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__stars {
    margin-bottom: 12px;
    opacity: 0;
    transition: opacity 0.6s ease 3s;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type.is-visible .testi-type__stars {
    opacity: 1;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__stars span {
    color: var(--accent-text);
    font-size: 22px;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__count {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 12px;
  }
  [data-section="testimonials"][data-variant="e"] .testi-type__link {
    display: inline-block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-text);
  }
  @media (max-width: 480px) {
    [data-section="testimonials"][data-variant="e"] .testi-type {
      padding: 56px 24px;
    }
    [data-section="testimonials"][data-variant="e"] .testi-type__quote {
      font-size: 20px;
    }
  }

  /* ============================================================
     Journal section — shared chrome
     Assembler lines 3245-3270 + responsive at 3494-3505
     ============================================================ */
  [data-section="blog"] .journal-section {
    padding: 80px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="blog"] .journal-section__footer {
    text-align: center;
    margin-top: 36px;
  }
  [data-section="blog"] .journal-section__more {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text);
    text-decoration: none;
    border-bottom: 1px solid var(--accent);
    padding-bottom: 3px;
  }
  [data-section="blog"] .journal-section__more:hover {
    opacity: 0.8;
  }
  [data-section="blog"] .journal-section__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 12px;
    text-align: center;
  }
  [data-section="blog"] .journal-section__heading {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 32px;
    letter-spacing: 0.04em;
    margin-bottom: 48px;
    text-align: center;
  }
  @media (max-width: 900px) {
    [data-section="blog"] .journal-section {
      padding: 56px 24px;
    }
  }

  /* ============================================================
     Variant A — journal-2x2-grid
     Assembler lines 3272-3321
     ============================================================ */
  [data-section="blog"][data-variant="a"] .grid-2x2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__card {
    display: flex;
    flex-direction: column;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__img-wrap {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 2px;
    background: var(--bg-mid);
    margin-bottom: 18px;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__card:hover .grid-2x2__img {
    transform: scale(1.04);
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__title {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 18px;
    letter-spacing: 0.02em;
    margin-bottom: 8px;
    line-height: 1.3;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--muted);
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__date {
    letter-spacing: 0.04em;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__link {
    color: var(--accent-text);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 11px;
    transition: opacity 0.15s;
  }
  [data-section="blog"][data-variant="a"] .grid-2x2__link:hover {
    opacity: 0.78;
  }
  @media (max-width: 900px) {
    [data-section="blog"][data-variant="a"] .grid-2x2 {
      grid-template-columns: 1fr;
    }
  }

  /* ============================================================
     Variant B — journal-featured-plus-list
     Assembler lines 3323-3399
     ============================================================ */
  [data-section="blog"][data-variant="b"] .feat-list {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 48px;
  }
  [data-section="blog"][data-variant="b"] .feat-list__img-wrap {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 2px;
    background: var(--bg-mid);
    margin-bottom: 24px;
  }
  [data-section="blog"][data-variant="b"] .feat-list__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
  }
  [data-section="blog"][data-variant="b"] .feat-list__featured:hover .feat-list__img {
    transform: scale(1.03);
  }
  [data-section="blog"][data-variant="b"] .feat-list__feat-title {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 26px;
    letter-spacing: 0.02em;
    margin-bottom: 12px;
    line-height: 1.25;
  }
  [data-section="blog"][data-variant="b"] .feat-list__feat-excerpt {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.7;
    margin-bottom: 18px;
    max-width: 52ch;
  }
  [data-section="blog"][data-variant="b"] .feat-list__feat-link {
    font-size: 12px;
    color: var(--accent-text);
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    transition: opacity 0.15s;
  }
  [data-section="blog"][data-variant="b"] .feat-list__feat-link:hover {
    opacity: 0.78;
  }
  [data-section="blog"][data-variant="b"] .feat-list__sidebar {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 4px;
  }
  [data-section="blog"][data-variant="b"] .feat-list__item {
    padding: 20px 0;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="blog"][data-variant="b"] .feat-list__item:first-child {
    padding-top: 0;
  }
  [data-section="blog"][data-variant="b"] .feat-list__item:last-child {
    border-bottom: none;
  }
  [data-section="blog"][data-variant="b"] .feat-list__item-title {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 16px;
    letter-spacing: 0.02em;
    margin-bottom: 6px;
    line-height: 1.3;
    transition: color 0.15s;
  }
  [data-section="blog"][data-variant="b"] .feat-list__item:hover .feat-list__item-title {
    color: var(--accent-text);
  }
  [data-section="blog"][data-variant="b"] .feat-list__item-date {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  @media (max-width: 900px) {
    [data-section="blog"][data-variant="b"] .feat-list {
      grid-template-columns: 1fr;
      gap: 32px;
    }
  }

  /* ============================================================
     Variant C — journal-horizontal-scroll
     Assembler lines 3401-3489
     ============================================================ */
  [data-section="blog"][data-variant="c"] .hscroll-wrap {
    position: relative;
  }
  [data-section="blog"][data-variant="c"] .hscroll {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 8px;
  }
  [data-section="blog"][data-variant="c"] .hscroll::-webkit-scrollbar {
    display: none;
  }
  [data-section="blog"][data-variant="c"] .hscroll__card {
    flex: 0 0 280px;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
  }
  [data-section="blog"][data-variant="c"] .hscroll__img-wrap {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 2px;
    background: var(--bg-mid);
    margin-bottom: 14px;
  }
  [data-section="blog"][data-variant="c"] .hscroll__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
  }
  [data-section="blog"][data-variant="c"] .hscroll__card:hover .hscroll__img {
    transform: scale(1.04);
  }
  [data-section="blog"][data-variant="c"] .hscroll__title {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 15px;
    letter-spacing: 0.02em;
    margin-bottom: 6px;
    line-height: 1.3;
  }
  [data-section="blog"][data-variant="c"] .hscroll__date {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  [data-section="blog"][data-variant="c"] .hscroll__view-all {
    flex: 0 0 280px;
    scroll-snap-align: start;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  [data-section="blog"][data-variant="c"] .hscroll__view-all a {
    font-size: 13px;
    color: var(--accent-text);
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding: 14px 28px;
    border: 1px solid var(--accent);
    transition: background 0.15s, color 0.15s;
  }
  [data-section="blog"][data-variant="c"] .hscroll__view-all a:hover {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  [data-section="blog"][data-variant="c"] .hscroll-wrap::before,
  [data-section="blog"][data-variant="c"] .hscroll-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 8px;
    width: 64px;
    z-index: 2;
    pointer-events: none;
  }
  [data-section="blog"][data-variant="c"] .hscroll-wrap::before {
    left: 0;
    background: linear-gradient(to right, var(--bg), transparent);
    opacity: 0;
  }
  [data-section="blog"][data-variant="c"] .hscroll-wrap::after {
    right: 0;
    background: linear-gradient(to left, var(--bg), transparent);
  }
  @media (max-width: 900px) {
    [data-section="blog"][data-variant="c"] .hscroll__card {
      flex: 0 0 240px;
    }
  }

  /* ============================================================
     Variant D — journal-hover-tilt
     Assembler lines 6418-6486
     ============================================================ */
  [data-section="blog"][data-variant="d"] .jrnl-tilt {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 32px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__card {
    display: block;
    color: inherit;
    transition: transform 0.4s ease;
    transform-style: preserve-3d;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__card:hover {
    transform: perspective(800px) rotateY(-3deg) rotateX(2deg) scale(1.02);
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__img-wrap {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 14px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter 0.4s ease, transform 0.6s ease;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__card:hover .jrnl-tilt__img {
    filter: brightness(1.12);
    transform: scale(1.04);
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__title {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 6px;
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: var(--muted);
  }
  [data-section="blog"][data-variant="d"] .jrnl-tilt__link {
    color: var(--accent-text);
  }
  @media (max-width: 768px) {
    [data-section="blog"][data-variant="d"] .jrnl-tilt__grid {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 480px) {
    [data-section="blog"][data-variant="d"] .jrnl-tilt {
      padding: 48px 24px;
    }
    [data-section="blog"][data-variant="d"] .jrnl-tilt__card:hover {
      transform: none;
    }
  }

  /* ============================================================
     Variant E — journal-slide-in
     Assembler lines 6488-6581
     Note: .is-visible is applied statically (SSR); no JS observer needed.
     ============================================================ */
  [data-section="blog"][data-variant="e"] .jrnl-slide {
    background: var(--section-bg);
    padding: 64px 56px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__heading {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 32px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: start;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__featured {
    display: block;
    color: inherit;
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__list {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.6s ease 0.2s, transform 0.6s ease 0.2s;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide.is-visible .jrnl-slide__featured,
  [data-section="blog"][data-variant="e"] .jrnl-slide.is-visible .jrnl-slide__list {
    opacity: 1;
    transform: none;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__feat-img-wrap {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 14px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__feat-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__feat-title {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 8px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__feat-excerpt {
    font-size: 14px;
    line-height: 1.6;
    color: var(--muted);
    margin-bottom: 12px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__feat-link {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-text);
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__item {
    display: block;
    padding: 14px 0;
    border-bottom: 1px solid var(--rule);
    color: inherit;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__item:last-child {
    border-bottom: none;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__item-title {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 500;
    margin-bottom: 4px;
  }
  [data-section="blog"][data-variant="e"] .jrnl-slide__item-date {
    font-size: 12px;
    color: var(--muted);
  }
  @media (max-width: 768px) {
    [data-section="blog"][data-variant="e"] .jrnl-slide__grid {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 480px) {
    [data-section="blog"][data-variant="e"] .jrnl-slide {
      padding: 48px 24px;
    }
  }

  /* ==========================================================
     Section 13 — FAQ
     ========================================================== */

  /* --- Rich answer content (all variants) ---
     Answers render through FaqRichAnswer (sanitized Quill / seeded HTML;
     legacy plaintext converts to <p>). [data-faq-rich] marks the answer
     wrapper; these rules style the nested block vocabulary the FAQ
     sanitizer allows (paragraphs, lists, blockquote pull-quotes,
     sub-heads, tables, rules) without disturbing per-variant type. */

  [data-section="faq"] [data-faq-rich] p { margin: 0 0 0.8em; }
  [data-section="faq"] [data-faq-rich] p:last-child { margin-bottom: 0; }
  [data-section="faq"] [data-faq-rich] ul,
  [data-section="faq"] [data-faq-rich] ol { margin: 0 0 0.8em; padding-left: 1.4em; }
  [data-section="faq"] [data-faq-rich] blockquote {
    margin: 0 0 1em;
    padding: 8px 14px;
    border-left: 3px solid var(--accent, currentColor);
    font-style: italic;
    opacity: 0.95;
  }
  [data-section="faq"] [data-faq-rich] blockquote p:last-child { margin-bottom: 0; }
  [data-section="faq"] [data-faq-rich] h3,
  [data-section="faq"] [data-faq-rich] h4 { margin: 1.1em 0 0.4em; font-size: 1.02em; }
  [data-section="faq"] [data-faq-rich] table {
    border-collapse: collapse;
    margin: 0 0 1em;
    width: 100%;
    font-size: 0.95em;
  }
  [data-section="faq"] [data-faq-rich] th,
  [data-section="faq"] [data-faq-rich] td {
    border: 1px solid rgba(128, 128, 128, 0.35);
    padding: 6px 10px;
    text-align: left;
    vertical-align: top;
  }
  [data-section="faq"] [data-faq-rich] hr {
    border: 0;
    border-top: 1px solid rgba(128, 128, 128, 0.35);
    margin: 1.1em 0;
  }

  /* --- Variant A: faq-hairline-list ---
     Stacked Q&A pairs separated by hairline rules. All items visible. */

  [data-section="faq"][data-variant="a"] .faq-hairline {
    max-width: 880px;
    margin: 0 auto;
    padding: 64px 56px 72px;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__headline {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 48px;
    text-align: center;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__item {
    padding: 28px 0;
    border-top: 1px solid var(--rule);
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__item:last-of-type {
    border-bottom: 1px solid var(--rule);
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__question {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 22px;
    color: var(--text);
    margin-bottom: 12px;
    line-height: 1.3;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__answer {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.75;
    max-width: 720px;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__more {
    display: inline-block;
    margin-top: 36px;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: var(--accent-text);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 2px;
    transition: border-color 0.15s;
  }
  [data-section="faq"][data-variant="a"] .faq-hairline__more:hover {
    border-color: var(--accent);
  }
  @media (max-width: 900px) {
    [data-section="faq"][data-variant="a"] .faq-hairline {
      padding-left: 24px;
      padding-right: 24px;
    }
    [data-section="faq"][data-variant="a"] .faq-hairline__headline {
      font-size: 28px;
    }
    [data-section="faq"][data-variant="a"] .faq-hairline__question {
      font-size: 18px;
    }
  }

  /* --- Variant B: faq-accordion-disclosure ---
     Native <details>/<summary> accordion. One-to-one with the live
     darksidetattoo.com FAQ (GHL faq widget colors, extracted
     2026-07-11): closed rows #2e2e2e with #d9d9d9 text, open row
     title #787879, open body #636363, white-shadowed heading,
     #636363 white-bordered bottom button. */

  [data-section="faq"][data-variant="b"] .faq-accordion {
    max-width: 880px;
    margin: 0 auto;
    padding: 48px 56px 64px;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion__eyebrow {
    font-family: var(--font-body, inherit);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--muted, #d9d9d9);
    line-height: 2;
    margin-bottom: 4px;
    text-align: center;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion__headline {
    font-family: var(--font-heading, inherit);
    font-weight: 700;
    font-size: 28px;
    letter-spacing: -1px;
    line-height: 1.2;
    color: var(--text, #ffffff);
    text-shadow: 3px 3px 2px rgba(0, 0, 0, 0.55);
    margin-bottom: 32px;
    text-align: center;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion details {
    margin-bottom: 10px;
    border-radius: 5px;
    overflow: hidden;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 18px;
    cursor: pointer;
    list-style: none;
    font-family: var(--font-body, inherit);
    font-size: 16px;
    font-weight: 600;
    color: #d9d9d9;
    background: #2e2e2e;
    letter-spacing: 0.02em;
    transition: background 0.15s;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion summary::-webkit-details-marker {
    display: none;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion summary::after {
    content: '';
    width: 10px;
    height: 10px;
    border-right: 2px solid #d9d9d9;
    border-bottom: 2px solid #d9d9d9;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-left: 24px;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion details[open] summary::after {
    transform: rotate(-135deg);
  }
  [data-section="faq"][data-variant="b"] .faq-accordion details[open] summary {
    background: #767677;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion summary:hover {
    background: #3a3a3a;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion details[open] summary:hover {
    background: #767677;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion__body {
    padding: 16px 18px;
    font-size: 14px;
    color: #d9d9d9;
    background: #5f5f5f;
    line-height: 1.75;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion__more {
    /* Live: #636363 fill, 1px solid white border, 18px/500 white,
       padding 16px 32px, centered. */
    display: block;
    width: fit-content;
    margin: 36px auto 0;
    padding: 16px 32px;
    font-family: var(--font-body, inherit);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    color: #ffffff;
    background: #5f5f5f;
    border: 1px solid #ffffff;
    border-radius: 5px;
    text-decoration: none;
    transition: background 0.15s;
  }
  [data-section="faq"][data-variant="b"] .faq-accordion__more:hover {
    background: #767677;
  }
  @media (max-width: 900px) {
    [data-section="faq"][data-variant="b"] .faq-accordion {
      padding-left: 24px;
      padding-right: 24px;
    }
    [data-section="faq"][data-variant="b"] .faq-accordion__headline {
      font-size: 28px;
    }
  }

  /* --- Variant C: faq-two-column ---
     Question links left col, labeled answers right col, 1px vertical rule divider.
     Collapses to single column at 900px. */

  [data-section="faq"][data-variant="c"] .faq-twocol {
    max-width: 1080px;
    margin: 0 auto;
    padding: 64px 56px 72px;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 14px;
    text-align: center;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__headline {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 48px;
    text-align: center;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__grid {
    display: grid;
    grid-template-columns: 1fr 1px 1.6fr;
    gap: 0 48px;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__questions {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__q-link {
    display: block;
    padding: 16px 0;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 15px;
    color: var(--text);
    line-height: 1.45;
    border-bottom: 1px solid var(--rule);
    transition: color 0.15s;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__q-link:hover {
    color: var(--accent-text);
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__divider {
    background: var(--rule);
    width: 1px;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__answers {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__a-item {
    padding: 16px 0;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__a-label {
    font-family: var(--font-display);
    font-size: 13px;
    letter-spacing: 0.06em;
    color: var(--accent-text);
    margin-bottom: 8px;
    text-transform: uppercase;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__a-text {
    font-size: 14px;
    color: var(--muted);
    line-height: 1.75;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__more {
    display: inline-block;
    margin-top: 36px;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: var(--accent-text);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 2px;
    transition: border-color 0.15s;
  }
  [data-section="faq"][data-variant="c"] .faq-twocol__more:hover {
    border-color: var(--accent);
  }
  @media (max-width: 900px) {
    [data-section="faq"][data-variant="c"] .faq-twocol {
      padding-left: 24px;
      padding-right: 24px;
    }
    [data-section="faq"][data-variant="c"] .faq-twocol__headline {
      font-size: 28px;
    }
    [data-section="faq"][data-variant="c"] .faq-twocol__grid {
      grid-template-columns: 1fr;
      gap: 0;
    }
    [data-section="faq"][data-variant="c"] .faq-twocol__divider {
      display: none;
    }
    [data-section="faq"][data-variant="c"] .faq-twocol__questions {
      margin-bottom: 32px;
      border-bottom: 1px solid var(--rule);
    }
  }

  /* --- Variant D: faq-glow-accordion ---
     <details> accordion; open item gets left accent border + gold glow shadow.
     Summary indicator is CSS '+' rotating 45deg to form '×' when open. */

  [data-section="faq"][data-variant="d"] .faq-glow {
    background: var(--section-bg);
    padding: 64px 56px;
    max-width: 820px;
    margin: 0 auto;
  }
  [data-section="faq"][data-variant="d"] .faq-glow__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="faq"][data-variant="d"] .faq-glow__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 32px;
  }
  [data-section="faq"][data-variant="d"] .faq-glow details {
    border-bottom: 1px solid var(--rule);
    padding: 16px 0;
    border-left: 3px solid transparent;
    transition: padding-left 0.3s ease, border-left-color 0.3s ease, box-shadow 0.3s ease;
  }
  [data-section="faq"][data-variant="d"] .faq-glow details[open] {
    border-left: 3px solid var(--accent);
    box-shadow: -4px 0 16px rgba(220, 185, 106, 0.15);
    padding-left: 20px;
  }
  [data-section="faq"][data-variant="d"] .faq-glow summary {
    list-style: none;
    cursor: pointer;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: 8px;
  }
  [data-section="faq"][data-variant="d"] .faq-glow summary::-webkit-details-marker {
    display: none;
  }
  [data-section="faq"][data-variant="d"] .faq-glow summary::after {
    content: '+';
    color: var(--accent-text);
    font-size: 22px;
    font-weight: 300;
    transition: transform 0.3s ease;
    display: inline-block;
  }
  [data-section="faq"][data-variant="d"] .faq-glow details[open] summary::after {
    transform: rotate(45deg);
  }
  [data-section="faq"][data-variant="d"] .faq-glow__body {
    padding-top: 12px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
  }
  [data-section="faq"][data-variant="d"] .faq-glow__more {
    display: inline-block;
    margin-top: 24px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-text);
  }
  @media (max-width: 480px) {
    [data-section="faq"][data-variant="d"] .faq-glow {
      padding: 48px 24px;
    }
  }

  /* --- Variant E: faq-stagger-reveal ---
     Stacked Q&A. Items animate in via opacity/translateY on .is-visible.
     SSR renders with .is-visible applied statically; stagger delays preserved
     for any future client-side IntersectionObserver enhancement. */

  [data-section="faq"][data-variant="e"] .faq-stagger {
    background: var(--section-bg);
    padding: 64px 56px;
    max-width: 820px;
    margin: 0 auto;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 32px;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__item {
    padding: 20px 0;
    border-bottom: 1px solid var(--rule);
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item {
    opacity: 1;
    transform: none;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item:nth-child(3) {
    transition-delay: 0s;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item:nth-child(4) {
    transition-delay: 0.12s;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item:nth-child(5) {
    transition-delay: 0.24s;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item:nth-child(6) {
    transition-delay: 0.36s;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger.is-visible .faq-stagger__item:nth-child(7) {
    transition-delay: 0.48s;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__question {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    margin-bottom: 8px;
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__answer {
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
  }
  [data-section="faq"][data-variant="e"] .faq-stagger__more {
    display: inline-block;
    margin-top: 24px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent-text);
  }
  @media (max-width: 480px) {
    [data-section="faq"][data-variant="e"] .faq-stagger {
      padding: 48px 24px;
    }
  }

  /* =====================================================
     Location variants A–E
     ===================================================== */

  /* --- Variant A: location-two-column --- */
  [data-section="location"][data-variant="a"] .loc-two-col {
    padding: 160px 56px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  /* Nothing for the right column -> one column, no ~500px void beside the
     address. See components/themes/sections/Location/LocationA.tsx. */
  [data-section="location"][data-variant="a"] .loc-two-col--single {
    grid-template-columns: 1fr;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 18px;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__headline {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 36px;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 48px;
    line-height: 1.15;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block {
    margin-bottom: 32px;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block:last-child {
    margin-bottom: 0;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block-label {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 10px;
    font-weight: 500;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block p,
  [data-section="location"][data-variant="a"] .loc-two-col__block address {
    font-style: normal;
    font-size: 15px;
    color: var(--text);
    line-height: 1.7;
    opacity: 0.88;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block a {
    color: var(--text);
    opacity: 0.88;
    transition: color 0.15s, opacity 0.15s;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__block a:hover {
    color: var(--accent-text);
    opacity: 1;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__right-label {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--text);
    margin-bottom: 22px;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__directions {
    font-size: 15px;
    color: var(--text);
    opacity: 0.82;
    line-height: 1.75;
    margin-bottom: 24px;
  }
  [data-section="location"][data-variant="a"] .loc-two-col__walkins {
    font-size: 14px;
    font-style: italic;
    color: var(--accent-text);
    line-height: 1.65;
  }
  @media (max-width: 900px) {
    [data-section="location"][data-variant="a"] .loc-two-col {
      grid-template-columns: 1fr;
      gap: 48px;
      padding: 80px 24px;
    }
  }
  @media (max-width: 480px) {
    [data-section="location"][data-variant="a"] .loc-two-col {
      padding: 64px 20px;
      gap: 36px;
    }
    [data-section="location"][data-variant="a"] .loc-two-col__headline {
      font-size: 28px;
      margin-bottom: 32px;
    }
  }

  /* --- Variant B: location-map-dominant --- */
  [data-section="location"][data-variant="b"] .loc-map-dom__map {
    width: 100%;
    height: 320px;
    background: var(--bg-mid);
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__map-text {
    font-size: 14px;
    color: var(--muted);
    letter-spacing: 0.08em;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__strip {
    display: grid;
    grid-template-columns: 1fr 1px 1fr 1px 1fr 1px 1fr;
    align-items: center;
    padding: 28px 56px;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__divider {
    width: 1px;
    height: 40px;
    background: var(--rule);
    justify-self: center;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item {
    padding: 0 24px;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item:first-child {
    padding-left: 0;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item:last-child {
    padding-right: 0;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item-label {
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 6px;
    font-weight: 500;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item-value {
    font-size: 13px;
    color: var(--text);
    opacity: 0.88;
    line-height: 1.55;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item-value a {
    color: var(--text);
    opacity: 0.88;
    transition: color 0.15s, opacity 0.15s;
  }
  [data-section="location"][data-variant="b"] .loc-map-dom__item-value a:hover {
    color: var(--accent-text);
    opacity: 1;
  }
  @media (max-width: 900px) {
    [data-section="location"][data-variant="b"] .loc-map-dom__strip {
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      padding: 24px;
    }
    [data-section="location"][data-variant="b"] .loc-map-dom__divider {
      display: none;
    }
    [data-section="location"][data-variant="b"] .loc-map-dom__item {
      padding: 0;
    }
  }
  @media (max-width: 480px) {
    [data-section="location"][data-variant="b"] .loc-map-dom__map {
      height: 240px;
    }
    [data-section="location"][data-variant="b"] .loc-map-dom__strip {
      grid-template-columns: 1fr;
      gap: 20px;
      padding: 20px;
    }
  }

  /* --- Variant C: location-card-centered --- */
  [data-section="location"][data-variant="c"] .loc-card {
    background: var(--bg-mid);
    padding: 100px 24px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  [data-section="location"][data-variant="c"] .loc-card__card {
    max-width: 640px;
    width: 100%;
    background: var(--section-bg);
    border-top: 2px solid var(--accent);
    padding: 56px 48px;
    text-align: center;
  }
  [data-section="location"][data-variant="c"] .loc-card__headline {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 28px;
    letter-spacing: 0.06em;
    color: var(--text);
    margin-bottom: 32px;
  }
  [data-section="location"][data-variant="c"] .loc-card__row {
    margin-bottom: 24px;
  }
  [data-section="location"][data-variant="c"] .loc-card__row:last-child {
    margin-bottom: 0;
  }
  [data-section="location"][data-variant="c"] .loc-card__label {
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 8px;
    font-weight: 500;
  }
  [data-section="location"][data-variant="c"] .loc-card__value {
    font-size: 15px;
    color: var(--text);
    opacity: 0.88;
    line-height: 1.65;
  }
  [data-section="location"][data-variant="c"] .loc-card__value a {
    color: var(--text);
    opacity: 0.88;
    transition: color 0.15s, opacity 0.15s;
  }
  [data-section="location"][data-variant="c"] .loc-card__value a:hover {
    color: var(--accent-text);
    opacity: 1;
  }
  [data-section="location"][data-variant="c"] .loc-card__rule {
    width: 48px;
    height: 1px;
    background: var(--rule);
    margin: 28px auto;
  }
  [data-section="location"][data-variant="c"] .loc-card__directions {
    font-size: 14px;
    color: var(--text);
    opacity: 0.72;
    line-height: 1.7;
    margin-bottom: 20px;
  }
  [data-section="location"][data-variant="c"] .loc-card__walkins {
    font-size: 13px;
    font-style: italic;
    color: var(--accent-text);
    line-height: 1.6;
  }
  [data-section="location"][data-variant="c"] .loc-card__map {
    width: 100%;
    height: 240px;
    background: var(--section-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 56px;
    border-top: 1px solid var(--rule);
  }
  [data-section="location"][data-variant="c"] .loc-card__map-text {
    font-size: 14px;
    color: var(--muted);
    letter-spacing: 0.08em;
  }
  @media (max-width: 900px) {
    [data-section="location"][data-variant="c"] .loc-card {
      padding: 56px 16px 0;
    }
    [data-section="location"][data-variant="c"] .loc-card__card {
      padding: 40px 24px;
    }
  }
  @media (max-width: 480px) {
    [data-section="location"][data-variant="c"] .loc-card {
      padding: 64px 12px 0;
    }
    [data-section="location"][data-variant="c"] .loc-card__card {
      padding: 32px 20px;
    }
    [data-section="location"][data-variant="c"] .loc-card__headline {
      font-size: 22px;
    }
  }

  /* --- Variant D: location-map-glow --- */
  @keyframes mapGlow {
    0%, 100% { box-shadow: 0 0 0 rgba(220, 185, 106, 0); }
    50% { box-shadow: 0 0 20px rgba(220, 185, 106, 0.3); }
  }
  [data-section="location"][data-variant="d"] .loc-glow {
    background: var(--section-bg);
    padding: 0;
  }
  [data-section="location"][data-variant="d"] .loc-glow__map {
    width: 100%;
    height: 360px;
    background: var(--bg-mid);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--rule);
    animation: mapGlow 3s ease-in-out infinite;
  }
  [data-section="location"][data-variant="d"] .loc-glow__map-text {
    font-size: 13px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.12em;
  }
  [data-section="location"][data-variant="d"] .loc-glow__strip {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 24px 56px;
    gap: 24px;
    border-top: 1px solid var(--rule);
  }
  [data-section="location"][data-variant="d"] .loc-glow__item-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 6px;
  }
  [data-section="location"][data-variant="d"] .loc-glow__item-value {
    font-size: 14px;
    color: var(--text);
    line-height: 1.5;
  }
  [data-section="location"][data-variant="d"] .loc-glow__item-value a {
    color: var(--text);
  }
  @media (max-width: 768px) {
    [data-section="location"][data-variant="d"] .loc-glow__strip {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  @media (max-width: 480px) {
    [data-section="location"][data-variant="d"] .loc-glow__strip {
      grid-template-columns: 1fr;
      padding: 24px;
    }
    [data-section="location"][data-variant="d"] .loc-glow__map {
      height: 240px;
      animation: none;
    }
  }

  /* --- Variant E: location-slide-columns --- */
  [data-section="location"][data-variant="e"] .loc-slide {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    background: var(--section-bg);
    padding: 80px 56px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 12px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 24px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__block {
    margin-bottom: 20px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__block-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--muted);
    margin-bottom: 6px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__block address,
  [data-section="location"][data-variant="e"] .loc-slide__block p {
    font-style: normal;
    font-size: 14px;
    line-height: 1.6;
  }
  [data-section="location"][data-variant="e"] .loc-slide__right-label {
    font-family: var(--font-display);
    font-size: 18px;
    margin-bottom: 12px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__directions {
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted);
    margin-bottom: 14px;
  }
  [data-section="location"][data-variant="e"] .loc-slide__walkins {
    font-size: 14px;
    color: var(--accent-text);
  }
  @media (max-width: 768px) {
    [data-section="location"][data-variant="e"] .loc-slide {
      grid-template-columns: 1fr;
    }
  }
  @media (max-width: 480px) {
    [data-section="location"][data-variant="e"] .loc-slide {
      padding: 48px 24px;
      gap: 32px;
    }
  }

  /* =====================================================
     Section: consult
     Variants A–C DELIBERATELY share the .consult-section chrome — they
     differ in FORM BEHAVIOUR (A caret-collapse, B long intake, C simple
     contact without qualifying questions), not section chrome, so one
     shared block is correct. Variants D–F have their own root classes.
     A per-variant CSS presence sweep must treat A–C as covered
     (2026-08-06 audit F-4/F-6).
     ===================================================== */

  /* --- Shared base: consult-section (variants A, B, C) --- */
  [data-section="consult"] .consult-section {
    padding: 160px 56px;
    display: flex;
    justify-content: center;
    background: var(--section-bg);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="consult"] .consult-section__inner {
    width: 100%;
    max-width: 720px;
  }
  [data-section="consult"] .consult-section__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 18px;
  }
  [data-section="consult"] .consult-section__headline {
    font-family: var(--font-display);
    font-weight: 500;
    font-style: italic;
    font-size: 42px;
    letter-spacing: 0.02em;
    color: var(--text);
    margin-bottom: 14px;
    line-height: 1.15;
  }
  [data-section="consult"] .consult-section__intro {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.65;
    margin-bottom: 48px;
    max-width: 54ch;
  }
  [data-section="consult"] .consult-section__warning {
    font-size: 14px;
    color: var(--text);
    opacity: 0.82;
    line-height: 1.65;
    margin-bottom: 40px;
    padding: 20px 24px;
    border-left: 2px solid var(--accent);
    background: rgba(220, 185, 106, 0.04);
  }

  /* --- Shared form field styles (variants A, B, C) --- */
  [data-section="consult"] .form-field {
    margin-bottom: 32px;
  }
  [data-section="consult"] .form-field label {
    display: block;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 10px;
  }
  [data-section="consult"] .form-field label .required {
    color: var(--accent-text);
    margin-left: 2px;
  }
  [data-section="consult"] .form-field input[type="text"],
  [data-section="consult"] .form-field input[type="email"],
  [data-section="consult"] .form-field input[type="tel"],
  [data-section="consult"] .form-field textarea,
  [data-section="consult"] .form-field select {
    display: block;
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rule);
    color: var(--text);
    font-family: var(--font-body);
    font-size: 15px;
    padding: 10px 0;
    outline: none;
    transition: border-color 0.2s;
  }
  [data-section="consult"] .form-field input:focus,
  [data-section="consult"] .form-field textarea:focus,
  [data-section="consult"] .form-field select:focus {
    border-bottom-color: var(--accent);
  }
  [data-section="consult"] .form-field input::placeholder,
  [data-section="consult"] .form-field textarea::placeholder {
    color: var(--muted);
  }
  [data-section="consult"] .form-field textarea {
    min-height: 100px;
    resize: vertical;
  }
  [data-section="consult"] .form-field select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%238a857a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0 center;
    padding-right: 20px;
    cursor: pointer;
  }
  [data-section="consult"] .form-field select option {
    background: var(--bg-mid);
    color: var(--text);
  }

  /* --- Two-column row (variants A, B, C) --- */
  [data-section="consult"] .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  /* --- Submit button (variants A, B, C) --- */
  [data-section="consult"] .form-submit {
    display: inline-block;
    padding: 16px 36px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    font-weight: var(--btn-weight, 600);
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    border: none;
    cursor: pointer;
    transition: background 0.15s, opacity 0.15s;
    margin-top: 8px;
  }
  [data-section="consult"] .form-submit:hover {
    opacity: 0.88;
  }

  /* --- required span (all variants) --- */
  [data-section="consult"] .required {
    color: var(--accent-text);
  }

  /* --- submit shell: inline success / error (all variants) --- */
  [data-section="consult"] .consult-success {
    text-align: center;
    padding: 32px 20px;
  }
  [data-section="consult"] .consult-success__headline {
    font-family: var(--font-display);
    color: var(--accent-text);
    font-size: 1.5rem;
    margin: 0 0 8px;
  }
  [data-section="consult"] .consult-success__body {
    font-family: var(--font-body);
    color: var(--muted);
    margin: 0;
  }
  [data-section="consult"] .consult-error {
    margin: 14px 0 0;
    padding: 10px 14px;
    border: 1px solid var(--accent);
    border-radius: 6px;
    color: var(--text);
    font-family: var(--font-body);
    font-size: 0.9rem;
  }

  /* --- config-driven field extras (checkbox rows, hints, SLA, qualifying) --- */
  [data-section="consult"] .form-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 10px 0;
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: var(--text);
    cursor: pointer;
  }
  [data-section="consult"] .form-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    flex-shrink: 0;
    cursor: pointer;
    accent-color: var(--accent);
  }
  [data-section="consult"] .form-field__hint {
    display: block;
    margin-top: 4px;
    font-size: 0.78rem;
    color: var(--muted);
  }
  [data-section="consult"] .form-qualifying {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--rule);
  }
  [data-section="consult"] .form-sla {
    margin: 12px 0 0;
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--muted) 75%, var(--text));
    font-family: var(--font-body);
  }
  [data-section="consult"] .form-fineprint {
    margin: 6px 0 0;
    font-size: 0.72rem;
    color: color-mix(in srgb, var(--muted) 75%, var(--text));
    font-family: var(--font-body);
    line-height: 1.5;
  }

  /* -------------------------------------------------------
     Variant A: caret-expand — style chips + details toggle
     ------------------------------------------------------- */
  /* Style chips use a <span> label since the chip <label>s wrap each checkbox */
  [data-section="consult"] .form-field__label {
    display: block;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 10px;
  }
  [data-section="consult"] .style-chip-label {
    display: contents;
  }
  [data-section="consult"] .style-chip__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
  }
  [data-section="consult"] .style-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 4px;
  }
  [data-section="consult"] .style-chip {
    padding: 8px 18px;
    border: 1px solid var(--rule);
    border-radius: 100px;
    font-size: 13px;
    color: var(--text);
    opacity: 0.78;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s, opacity 0.15s, background 0.15s;
    user-select: none;
  }
  [data-section="consult"] .style-chip:hover {
    border-color: var(--accent);
    color: var(--accent-text);
    opacity: 1;
  }
  [data-section="consult"] .style-chip__input:checked + .style-chip {
    border-color: var(--accent);
    background: rgba(220, 185, 106, 0.12);
    color: var(--accent-text);
    opacity: 1;
  }
  /* Keyboard focus ring — the chip input itself is visually hidden, so
     without this a keyboard user tabs through the chips blind. */
  [data-section="consult"] .style-chip__input:focus-visible + .style-chip {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    opacity: 1;
  }
  [data-section="consult"] .form-detail {
    margin-top: 16px;
    margin-bottom: 40px;
  }
  [data-section="consult"] .form-detail summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 16px 0;
    border-top: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    user-select: none;
  }
  [data-section="consult"] .form-detail summary::-webkit-details-marker {
    display: none;
  }
  [data-section="consult"] .form-detail summary::marker {
    display: none;
    content: "";
  }
  [data-section="consult"] .form-detail__caret {
    font-size: 14px;
    color: var(--accent-text);
    transition: transform 0.2s;
    display: inline-block;
    width: 14px;
  }
  [data-section="consult"] .form-detail[open] .form-detail__caret {
    transform: rotate(90deg);
  }
  [data-section="consult"] .form-detail__label {
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: 0.04em;
    color: var(--text);
  }
  [data-section="consult"] .form-detail__hint {
    font-size: 12px;
    color: var(--muted);
    margin-left: auto;
  }
  [data-section="consult"] .form-detail__body {
    padding-top: 32px;
  }

  /* --- Reference-photo upload (all variants) --- */
  [data-section="consult"] .consult-upload {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 12px;
  }
  [data-section="consult"] .consult-upload__thumb {
    position: relative;
    width: 84px;
    height: 84px;
    border: 1px solid var(--rule);
    border-radius: 6px;
    overflow: hidden;
  }
  [data-section="consult"] .consult-upload__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  [data-section="consult"] .consult-upload__remove {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    font-size: 13px;
    line-height: 20px;
    text-align: center;
    cursor: pointer;
  }
  [data-section="consult"] .consult-upload__add {
    width: 84px;
    height: 84px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 6px;
    border: 1px dashed var(--rule);
    border-radius: 6px;
    color: var(--muted);
    font-size: 12px;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
  }
  [data-section="consult"] .consult-upload__add:hover {
    border-color: var(--accent);
    color: var(--accent-text);
  }
  [data-section="consult"] .consult-upload__add input[type="file"] {
    display: none;
  }
  [data-section="consult"] .consult-upload__error {
    margin-top: 8px;
    font-size: 12px;
    color: var(--accent-text);
  }

  /* --- Multi-step layout (Website Builder "Multi-step" option) --- */
  [data-section="consult"] .tn-steps {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  [data-section="consult"] .tn-steps__nav {
    list-style: none;
    margin: 0 0 4px;
    padding: 0;
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
  }
  [data-section="consult"] .tn-steps__nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--muted);
  }
  [data-section="consult"] .tn-steps__nav-item--active,
  [data-section="consult"] .tn-steps__nav-item--done {
    opacity: 1;
  }
  [data-section="consult"] .tn-steps__nav-item--active { color: var(--text); }
  [data-section="consult"] .tn-steps__nav-item--done { color: var(--accent-text); }
  [data-section="consult"] .tn-steps__nav-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid var(--rule);
    font-size: 11px;
    font-weight: 700;
  }
  [data-section="consult"] .tn-steps__nav-item--active .tn-steps__nav-num {
    border-color: var(--accent);
    color: var(--accent-text);
  }
  [data-section="consult"] .tn-steps__nav-item--done .tn-steps__nav-num {
    border-color: var(--accent);
    background: rgba(220, 185, 106, 0.12);
    color: var(--accent-text);
  }
  [data-section="consult"] .tn-steps__panel[hidden] { display: none; }
  [data-section="consult"] .tn-steps__footer {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  [data-section="consult"] .tn-steps__next {
    padding: 14px 32px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    font-weight: var(--btn-weight, 600);
    letter-spacing: var(--btn-tracking, 0.18em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    border: none;
    cursor: pointer;
    transition: opacity 0.15s;
  }
  [data-section="consult"] .tn-steps__next:hover { opacity: 0.88; }
  [data-section="consult"] .tn-steps__back {
    padding: 14px 20px;
    background: transparent;
    color: var(--muted);
    font-size: 12px;
    letter-spacing: 0.08em;
    border: 1px solid var(--rule);
    border-radius: var(--btn-radius, 0);
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
  }
  [data-section="consult"] .tn-steps__back:hover {
    color: var(--text);
    border-color: var(--accent);
  }
  /* The VARIANT owns the Submit button (rendered after the stepper inside
     the shell form) — hide it until the visitor reaches the last panel. */
  [data-section="consult"] .tn-steps[data-on-last="false"] ~ .form-submit {
    display: none;
  }

  /* -------------------------------------------------------
     Variants A, B, C responsive
     ------------------------------------------------------- */
  @media (max-width: 900px) {
    [data-section="consult"] .consult-section {
      padding: 96px 24px;
    }
    [data-section="consult"] .consult-section__headline {
      font-size: 32px;
    }
    [data-section="consult"] .form-row {
      grid-template-columns: 1fr;
      gap: 0;
    }
    [data-section="consult"] .style-chips {
      gap: 8px;
    }
    [data-section="consult"] .style-chip {
      padding: 7px 14px;
      font-size: 12px;
    }
  }

  /* -------------------------------------------------------
     Variant D: glass-card
     ------------------------------------------------------- */
  [data-section="consult"][data-variant="d"] .consult-glass {
    background: var(--section-bg);
    padding: 80px 56px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__inner {
    max-width: 720px;
    margin: 0 auto;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
    text-align: center;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 12px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__intro {
    font-size: 14px;
    color: var(--muted);
    text-align: center;
    margin-bottom: 28px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card {
    background: rgba(255, 255, 255, 0.04);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 48px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card .form-field {
    margin-bottom: 16px;
  }
  /* :not(.form-check):not(.style-chip-label) — the blanket label rule
     used to flatten checkbox rows (.form-check is a flex row wrapping the
     box + its text) and up-case the 18+ legal copy at 11px. Same idea on
     the input rules below: a checkbox must not get width:100% text-input
     chrome, and .style-chip__input must stay collapsed (it is visually
     hidden; a full-width invisible box intercepts chip clicks). */
  [data-section="consult"][data-variant="d"] .consult-glass__card label:not(.form-check):not(.style-chip-label) {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--muted);
    margin-bottom: 6px;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card input:not([type="checkbox"]),
  [data-section="consult"][data-variant="d"] .consult-glass__card textarea,
  [data-section="consult"][data-variant="d"] .consult-glass__card select {
    width: 100%;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid var(--rule);
    border-radius: 6px;
    padding: 12px 14px;
    color: var(--text);
    font-family: var(--font-body);
    font-size: 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card input:not([type="checkbox"]):focus,
  [data-section="consult"][data-variant="d"] .consult-glass__card textarea:focus,
  [data-section="consult"][data-variant="d"] .consult-glass__card select:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(220, 185, 106, 0.1);
  }
  [data-section="consult"][data-variant="d"] .consult-glass__card textarea {
    min-height: 100px;
    resize: vertical;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__submit {
    width: 100%;
    padding: 14px 28px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    cursor: pointer;
    transition: box-shadow 0.3s ease, transform 0.2s ease;
  }
  [data-section="consult"][data-variant="d"] .consult-glass__submit:hover {
    box-shadow: 0 0 24px rgba(220, 185, 106, 0.5);
    transform: translateY(-2px);
  }
  @media (max-width: 480px) {
    [data-section="consult"][data-variant="d"] .consult-glass {
      padding: 48px 16px;
    }
    [data-section="consult"][data-variant="d"] .consult-glass__card {
      padding: 28px 20px;
      border-radius: 12px;
    }
    [data-section="consult"][data-variant="d"] .consult-glass__card .form-row {
      grid-template-columns: 1fr;
    }
  }

  /* -------------------------------------------------------
     Variant E: field-focus-glow (floating label)
     ------------------------------------------------------- */
  [data-section="consult"][data-variant="e"] .consult-focus {
    background: var(--section-bg);
    padding: 80px 56px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__inner {
    max-width: 720px;
    margin: 0 auto;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__eyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--accent-text);
    margin-bottom: 8px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__headline {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 600;
    margin-bottom: 24px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__warning {
    background: color-mix(in srgb, var(--accent, #dcb96a) 6%, transparent);
    border-left: 3px solid var(--accent);
    padding: 12px 16px;
    font-size: 13px;
    color: var(--text);
    margin-bottom: 28px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus .form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 4px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus .form-field {
    position: relative;
    margin-bottom: 24px;
    padding-top: 14px;
  }
  [data-section="consult"][data-variant="e"] .consult-focus .form-field label {
    position: absolute;
    top: 22px;
    left: 0;
    font-size: 14px;
    color: var(--muted);
    pointer-events: none;
    text-transform: none;
    letter-spacing: normal;
    font-weight: normal;
    margin-bottom: 0;
    transition: top 0.25s ease, font-size 0.25s ease, color 0.25s ease,
      letter-spacing 0.25s ease;
  }
  /* Raised state. Beyond :focus-within, the label must ALSO stay raised
     when the field shows content with no focus (operator screenshot
     2026-07-21, labels overlapping "Select…" / typed text):
       - select + label   — a <select> always displays its option text, so
         its floating label can never sit in the field;
       - :not(:placeholder-shown) — inputs/textareas render placeholder=" "
         in floating mode, so a filled control raises its label on blur. */
  [data-section="consult"][data-variant="e"] .consult-focus .form-field:focus-within label,
  [data-section="consult"][data-variant="e"] .consult-focus .form-field.is-filled label,
  [data-section="consult"][data-variant="e"] .consult-focus .form-field select + label,
  [data-section="consult"][data-variant="e"] .consult-focus .form-field input:not(:placeholder-shown) + label,
  [data-section="consult"][data-variant="e"] .consult-focus .form-field textarea:not(:placeholder-shown) + label {
    top: 0;
    font-size: 10px;
    color: var(--accent-text);
    text-transform: uppercase;
    letter-spacing: 0.14em;
  }
  /* Checkboxes excluded for the same reason as variant D above. */
  [data-section="consult"][data-variant="e"] .consult-focus input:not([type="checkbox"]),
  [data-section="consult"][data-variant="e"] .consult-focus textarea,
  [data-section="consult"][data-variant="e"] .consult-focus select {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--rule);
    padding: 8px 0;
    color: var(--text);
    font-family: var(--font-body);
    font-size: 14px;
    transition: border-bottom-color 0.3s ease, box-shadow 0.3s ease;
  }
  [data-section="consult"][data-variant="e"] .consult-focus input:not([type="checkbox"]):focus,
  [data-section="consult"][data-variant="e"] .consult-focus textarea:focus,
  [data-section="consult"][data-variant="e"] .consult-focus select:focus {
    outline: none;
    border-bottom-color: var(--accent);
    box-shadow: 0 4px 12px rgba(220, 185, 106, 0.15);
  }
  [data-section="consult"][data-variant="e"] .consult-focus textarea {
    min-height: 90px;
    resize: vertical;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__submit {
    margin-top: 16px;
    padding: 14px 32px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    cursor: pointer;
    transition: box-shadow 0.3s ease;
  }
  [data-section="consult"][data-variant="e"] .consult-focus__submit:hover {
    box-shadow: 0 0 20px rgba(220, 185, 106, 0.4);
  }
  @media (max-width: 480px) {
    [data-section="consult"][data-variant="e"] .consult-focus {
      padding: 48px 24px;
    }
    [data-section="consult"][data-variant="e"] .consult-focus .form-row {
      grid-template-columns: 1fr;
      gap: 0;
    }
  }

  /* =====================================================================
     Section 16 — Footer
     ===================================================================== */

  /* --- Variant A: footer-minimal-3col --- */
  [data-section="footer"][data-variant="a"] .footer-minimal {
    border-top: 1px solid var(--rule);
    padding: 56px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 40px;
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__name {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 8px;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__domain {
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.02em;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__address {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.65;
    margin-bottom: 12px;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__hours {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.7;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__hours span {
    display: block;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__appt {
    font-size: 11px;
    font-style: italic;
    color: var(--muted);
    margin-top: 8px;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__attr {
    text-align: right;
  }
  [data-section="footer"][data-variant="a"] .footer-minimal__attr-text {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 12px;
    color: var(--muted);
    letter-spacing: 0.02em;
  }
  @media (max-width: 768px) {
    [data-section="footer"][data-variant="a"] .footer-minimal {
      grid-template-columns: 1fr;
      padding: 40px 24px;
      gap: 28px;
    }
    [data-section="footer"][data-variant="a"] .footer-minimal__attr {
      text-align: left;
    }
  }

  /* --- Variant B: footer-dense-link-farm --- */
  [data-section="footer"][data-variant="b"] .footer-dense {
    background: var(--bg-mid);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr 1.2fr;
    gap: 40px;
    padding: 64px 56px 48px;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__heading {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 20px;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 14px;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__text {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.7;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__text a {
    color: var(--muted);
    transition: color 0.15s;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__text a:hover {
    color: var(--accent-text);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__link-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__link-list a {
    font-size: 13px;
    color: var(--muted);
    transition: color 0.15s;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__link-list a:hover {
    color: var(--accent-text);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__social-row {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--rule);
    border-radius: 4px;
    font-size: 14px;
    color: var(--muted);
    transition: color 0.15s, border-color 0.15s;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__social-link:hover {
    color: var(--accent-text);
    border-color: var(--accent);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-label {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 8px;
    display: block;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-row {
    display: flex;
    gap: 0;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-input {
    flex: 1;
    padding: 10px 14px;
    background: var(--bg);
    border: 1px solid var(--rule);
    border-right: 0;
    color: var(--text);
    font-size: 13px;
    outline: none;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-input::placeholder {
    color: var(--muted);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-input:focus {
    border-color: var(--accent);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-btn {
    padding: 10px 18px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 11px;
    font-weight: var(--btn-weight, 500);
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    border: 1px solid var(--accent);
    cursor: pointer;
    transition: opacity 0.15s;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__newsletter-btn:hover {
    opacity: 0.88;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 56px;
    border-top: 1px solid var(--rule);
    font-size: 12px;
    color: var(--muted);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__bar-links {
    display: flex;
    gap: 24px;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__bar-links a {
    color: var(--muted);
    transition: color 0.15s;
  }
  [data-section="footer"][data-variant="b"] .footer-dense__bar-links a:hover {
    color: var(--accent-text);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__powered {
    color: var(--muted);
  }
  [data-section="footer"][data-variant="b"] .footer-dense__powered a {
    color: var(--accent-text);
    opacity: 1;
  }
  @media (max-width: 768px) {
    [data-section="footer"][data-variant="b"] .footer-dense__grid {
      grid-template-columns: 1fr 1fr;
      padding: 48px 32px 36px;
      gap: 32px;
    }
    [data-section="footer"][data-variant="b"] .footer-dense__bar {
      flex-direction: column;
      gap: 12px;
      padding: 16px 32px;
      text-align: center;
    }
    [data-section="footer"][data-variant="b"] .footer-dense__bar-links {
      justify-content: center;
    }
  }
  @media (max-width: 480px) {
    [data-section="footer"][data-variant="b"] .footer-dense__grid {
      grid-template-columns: 1fr;
      gap: 28px;
    }
  }

  /* --- Variant C: footer-hero-wordmark --- */
  [data-section="footer"][data-variant="c"] .footer-hero {
    border-top: 2px solid var(--accent);
    padding: 120px 56px 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="c"] .footer-hero__wordmark {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 48px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 32px;
  }
  [data-section="footer"][data-variant="c"] .footer-hero__contact {
    font-size: 13px;
    color: var(--muted);
    letter-spacing: 0.02em;
    margin-bottom: 32px;
    line-height: 1.65;
  }
  [data-section="footer"][data-variant="c"] .footer-hero__contact .sep {
    display: inline-block;
    margin: 0 10px;
    color: var(--accent-text);
  }
  [data-section="footer"][data-variant="c"] .footer-hero__socials {
    display: flex;
    gap: 16px;
    margin-bottom: 40px;
  }
  [data-section="footer"][data-variant="c"] .footer-hero__social-circle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid var(--accent);
    border-radius: 50%;
    font-size: 13px;
    font-weight: 500;
    color: var(--accent-text);
    letter-spacing: 0.04em;
    transition: background 0.15s, color 0.15s;
  }
  [data-section="footer"][data-variant="c"] .footer-hero__social-circle:hover {
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
  }
  [data-section="footer"][data-variant="c"] .footer-hero__copyright {
    font-size: 11px;
    color: var(--muted);
    letter-spacing: 0.04em;
  }
  @media (max-width: 768px) {
    [data-section="footer"][data-variant="c"] .footer-hero {
      padding: 72px 32px 40px;
    }
    [data-section="footer"][data-variant="c"] .footer-hero__wordmark {
      font-size: 32px;
      letter-spacing: 0.1em;
    }
    [data-section="footer"][data-variant="c"] .footer-hero__contact .sep {
      margin: 0 6px;
    }
  }
  @media (max-width: 480px) {
    [data-section="footer"][data-variant="c"] .footer-hero__contact .sep {
      display: block;
      margin: 4px 0;
      visibility: hidden;
      height: 0;
    }
    [data-section="footer"][data-variant="c"] .footer-hero__contact {
      line-height: 2;
    }
    [data-section="footer"][data-variant="c"] .footer-hero__wordmark {
      font-size: 26px;
    }
  }

  /* --- Variant D: footer-fx (animated effects) --- */
  [data-section="footer"][data-variant="d"] .footer-fx {
    background: var(--bg-mid);
    overflow: hidden;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr 0.8fr 1.2fr;
    gap: 40px;
    padding: 64px 56px 48px;
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__col {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
  }
  [data-section="footer"][data-variant="d"] .footer-fx.is-visible .footer-fx__col {
    opacity: 1;
    transform: translateY(0);
  }
  [data-section="footer"][data-variant="d"] .footer-fx.is-visible .footer-fx__col:nth-child(1) {
    transition-delay: 0s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx.is-visible .footer-fx__col:nth-child(2) {
    transition-delay: 0.15s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx.is-visible .footer-fx__col:nth-child(3) {
    transition-delay: 0.3s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx.is-visible .footer-fx__col:nth-child(4) {
    transition-delay: 0.45s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__heading {
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 20px;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__name {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text);
    margin-bottom: 14px;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__text {
    font-size: 13px;
    color: var(--muted);
    line-height: 1.7;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link {
    position: relative;
    color: var(--text);
    text-decoration: none;
    font-size: 13px;
    display: inline-block;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link:hover::after {
    transform: scaleX(1);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link-list .footer-fx__link {
    color: var(--muted);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__link-list .footer-fx__link:hover {
    color: var(--accent-text);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__social-row {
    display: flex;
    gap: 12px;
    margin-bottom: 20px;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--rule);
    border-radius: 50%;
    font-size: 14px;
    color: var(--muted);
    transition: box-shadow 0.3s, transform 0.2s, color 0.15s, border-color 0.15s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__social-icon:hover {
    box-shadow: 0 0 18px var(--accent), 0 0 6px var(--accent);
    transform: scale(1.15);
    color: var(--accent-text);
    border-color: var(--accent);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter {
    background: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 24px;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter-label {
    font-size: 12px;
    color: var(--muted);
    margin-bottom: 12px;
    display: block;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter-row {
    display: flex;
    gap: 0;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter-input {
    flex: 1;
    padding: 10px 14px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--rule);
    border-right: 0;
    border-radius: 6px 0 0 6px;
    color: var(--text);
    font-size: 13px;
    outline: none;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter-input::placeholder {
    color: var(--muted);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__newsletter-input:focus {
    border-color: var(--accent);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__cta {
    padding: 10px 18px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 11px;
    font-weight: var(--btn-weight, 500);
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    border: 1px solid var(--accent);
    border-radius: 0 6px 6px 0;
    cursor: pointer;
    transition: box-shadow 0.3s, opacity 0.15s;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__cta:hover {
    box-shadow: 0 0 24px var(--accent);
    opacity: 0.92;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 56px;
    border-top: 1px solid var(--rule);
    font-size: 12px;
    color: var(--muted);
    max-width: 1200px;
    margin: 0 auto;
  }
  [data-section="footer"][data-variant="d"] .footer-fx__powered {
    color: var(--muted);
  }
  [data-section="footer"][data-variant="d"] .footer-fx__powered a {
    color: var(--accent-text);
    opacity: 1;
  }
  @media (max-width: 768px) {
    [data-section="footer"][data-variant="d"] .footer-fx__grid {
      grid-template-columns: 1fr 1fr;
      padding: 48px 32px 36px;
      gap: 32px;
    }
    [data-section="footer"][data-variant="d"] .footer-fx__bar {
      flex-direction: column;
      gap: 12px;
      padding: 16px 32px;
      text-align: center;
    }
  }
  @media (max-width: 480px) {
    [data-section="footer"][data-variant="d"] .footer-fx__grid {
      grid-template-columns: 1fr;
      gap: 28px;
    }
  }

  /* --- Variant E: footer-parallax-bg --- */
  @keyframes parallaxBg {
    0% { background-position: 0 0, 0 0; }
    100% { background-position: 200px 200px, 200px 200px; }
  }
  @keyframes textShimmer {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
  }
  [data-section="footer"][data-variant="e"] .footer-parallax {
    position: relative;
    background: var(--bg-mid);
    padding: 96px 56px 48px;
    text-align: center;
    overflow: hidden;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      repeating-linear-gradient(45deg, rgba(220, 185, 106, 0.04) 0 1px, transparent 1px 24px),
      repeating-linear-gradient(-45deg, rgba(220, 185, 106, 0.03) 0 1px, transparent 1px 32px);
    background-size: 200px 200px, 200px 200px;
    animation: parallaxBg 30s linear infinite;
    pointer-events: none;
    opacity: 0.7;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax > * {
    position: relative;
    z-index: 1;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__wordmark {
    font-family: var(--font-display);
    font-size: 56px;
    font-weight: 700;
    letter-spacing: 0.04em;
    background: linear-gradient(135deg, var(--accent), var(--text), var(--accent));
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: textShimmer 4s ease infinite;
    margin-bottom: 20px;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__contact {
    font-size: 14px;
    color: var(--muted);
    margin-bottom: 28px;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__contact .sep {
    margin: 0 12px;
    opacity: 0.5;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__socials {
    display: flex;
    gap: 14px;
    justify-content: center;
    margin-bottom: 36px;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--rule);
    border-radius: 50%;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--text);
    transition: box-shadow 0.3s ease, border-color 0.3s ease, color 0.3s ease,
      transform 0.3s ease;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__social-icon:hover {
    box-shadow: 0 0 20px rgba(220, 185, 106, 0.5);
    border-color: var(--accent);
    color: var(--accent-text);
    transform: translateY(-2px);
  }
  [data-section="footer"][data-variant="e"] .footer-parallax__copyright {
    font-size: 12px;
    color: var(--muted);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.8s ease 0.3s, transform 0.8s ease 0.3s;
  }
  [data-section="footer"][data-variant="e"] .footer-parallax.is-visible .footer-parallax__copyright {
    opacity: 1;
    transform: none;
  }
  @media (max-width: 480px) {
    [data-section="footer"][data-variant="e"] .footer-parallax {
      padding: 64px 24px 32px;
    }
    [data-section="footer"][data-variant="e"] .footer-parallax__wordmark {
      font-size: 36px;
    }
    [data-section="footer"][data-variant="e"] .footer-parallax::before {
      animation-duration: 60s;
      opacity: 0.4;
    }
  }

  /* =====================================================================
     Hero — Variant F: split-crossfade
     2-col grid: text+CTAs left, auto-cycling crossfade slideshow right.
     Left-edge gradient bleed bleeds image into text column on desktop.
     Mobile: image stacks above text.
     Mined from: templates/artist.tsx (ArtistHero component).
     ===================================================================== */
  [data-section="hero"][data-variant="f"] .hero-crossfade {
    display: grid;
    grid-template-columns: 1fr 52%;
    min-height: 640px;
    background: var(--bg);
    border-bottom: 1px solid var(--rule);
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 56px 80px 56px;
    position: relative;
    z-index: 2;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__eyebrow {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--accent-text);
    margin-bottom: 20px;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(36px, 5vw, 60px);
    font-style: italic;
    color: var(--text);
    margin-bottom: 20px;
    line-height: 1.1;
    letter-spacing: -0.01em;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__tagline {
    font-size: 14px;
    color: var(--text);
    opacity: 0.72;
    margin-bottom: 36px;
    line-height: 1.6;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__cta-primary {
    display: inline-block;
    padding: 14px 28px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 600);
    border-radius: var(--btn-radius, 0);
    transition: opacity 0.2s;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__cta-primary:hover { opacity: 0.88; }
  [data-section="hero"][data-variant="f"] .hero-crossfade__cta-secondary {
    display: inline-block;
    padding: 14px 28px;
    background: transparent;
    color: var(--text);
    border: 1px solid var(--rule);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 500);
    border-radius: var(--btn-radius, 0);
    transition: border-color 0.2s, color 0.2s;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__cta-secondary:hover {
    border-color: var(--accent);
    color: var(--accent-text);
  }
  /* Right: crossfade slide panel */
  [data-section="hero"][data-variant="f"] .hero-crossfade__slide-wrap {
    position: relative;
    overflow: hidden;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center top;
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* center, not top — top-cropping decapitated most tattoo photos
       (operator 2026-07-21; every other hero variant centers). */
    object-position: center;
  }
  [data-section="hero"][data-variant="f"] .hero-crossfade__slide.is-active { opacity: 1; }
  /* Left-edge gradient bleed: image bleeds into text column */
  [data-section="hero"][data-variant="f"] .hero-crossfade__bleed {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to right,
      var(--bg) 0%,
      rgba(12, 12, 12, 0.55) 20%,
      transparent 52%
    );
    pointer-events: none;
    z-index: 1;
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="f"] .hero-crossfade {
      grid-template-columns: 1fr;
      grid-template-rows: 55svh auto;
      min-height: auto;
    }
    [data-section="hero"][data-variant="f"] .hero-crossfade__text {
      order: 2;
      padding: 40px 24px 56px;
    }
    [data-section="hero"][data-variant="f"] .hero-crossfade__slide-wrap {
      order: 1;
      min-height: 55svh;
    }
    [data-section="hero"][data-variant="f"] .hero-crossfade__bleed {
      background: linear-gradient(
        to top,
        var(--bg) 0%,
        transparent 40%
      );
    }
  }

  /* =====================================================================
     Hero — Variant G: show-through-bg
     Full-viewport bg image shows through a transparent reserved div.
     PNG-logotype H1 sits below the reserved area. No overlay text,
     no CTAs, no split, no slideshow.
     Mined from: templates/bodyworks-tattoo.tsx (.bw-hero block).
     ===================================================================== */
  [data-section="hero"][data-variant="g"] .hero-showbg {
    position: relative;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-color: var(--bg);
    overflow: hidden;
    padding-bottom: 40px;
    text-align: center;
  }
  /* Translucent veil — dark or light — over the background image.
     Never stretches or crops the image; just draws a tinted layer on top. */
  [data-section="hero"][data-variant="g"] .hero-showbg::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
  }
  [data-section="hero"][data-variant="g"] .hero-showbg[data-bg-overlay="dark"]::before {
    background: rgba(0, 0, 0, 0.45);
  }
  [data-section="hero"][data-variant="g"] .hero-showbg[data-bg-overlay="light"]::before {
    background: rgba(255, 255, 255, 0.45);
  }
  /* Keep content above the veil */
  [data-section="hero"][data-variant="g"] .hero-showbg__viewport,
  [data-section="hero"][data-variant="g"] .hero-showbg__logotype {
    position: relative;
    z-index: 1;
  }
  /* Transparent reserved div — lets bg image show through */
  [data-section="hero"][data-variant="g"] .hero-showbg__viewport {
    height: 50vh;
    max-height: 480px;
    min-height: 320px;
    pointer-events: none;
  }
  /* PNG-logotype H1 */
  [data-section="hero"][data-variant="g"] .hero-showbg__logotype {
    display: flex;
    justify-content: center;
    margin: 8px auto 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(28px, 5vw, 48px);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--text);
    line-height: 1.1;
  }
  [data-section="hero"][data-variant="g"] .hero-showbg__logotype-img {
    max-width: 320px;
    width: 80vw;
    height: auto;
    display: block;
  }
  [data-section="hero"][data-variant="g"] .hero-showbg__logotype--text {
    color: var(--accent-text);
  }
  @container preview (max-width: 760px) {
    [data-section="hero"][data-variant="g"] .hero-showbg__viewport {
      height: 40vh;
      min-height: 260px;
    }
  }

  /* =====================================================================
     Hero — Variant H: countdown-event
     Full-viewport bg image + dark gradient overlay. Live countdown
     (days/hrs/min in accent) ABOVE H1. Event H1 (italic) + date-range
     line + venue+city line. "Get Tickets" accent CTA + ghost secondary.
     Client island (HeroHClient) handles the ticking countdown.
     Mined from: templates/convention.tsx (ConventionHero component).
     ===================================================================== */
  [data-section="hero"][data-variant="h"] .hero-countdown {
    position: relative;
    height: 100svh;
    min-height: 560px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: #141414;
    border-bottom: 1px solid var(--rule);
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
      to top,
      rgba(10, 10, 10, 0.92) 0%,
      rgba(10, 10, 10, 0.40) 50%,
      rgba(10, 10, 10, 0.10) 100%
    );
    z-index: 1;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding: 0 56px 64px;
    max-width: 1200px;
    margin: 0 auto;
  }
  /* Countdown timer row (rendered by HeroHClient) */
  [data-section="hero"][data-variant="h"] .hero-countdown__timer {
    display: flex;
    gap: 24px;
    margin-bottom: 28px;
    flex-wrap: wrap;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 52px;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__digit {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--accent-text);
    line-height: 1;
    font-variant-numeric: tabular-nums;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__label {
    font-family: var(--font-body);
    font-size: 0.7rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 4px;
  }
  /* Event H1 — italic serif */
  [data-section="hero"][data-variant="h"] .hero-countdown__title {
    font-family: var(--font-display);
    font-weight: 400;
    font-style: italic;
    font-size: clamp(2.2rem, 5vw, 4rem);
    color: var(--text);
    margin-bottom: 12px;
    line-height: 1.1;
  }
  /* Date-range line */
  [data-section="hero"][data-variant="h"] .hero-countdown__date {
    font-family: var(--font-body);
    font-size: 1.1rem;
    color: rgba(236, 230, 220, 0.78);
    margin-bottom: 8px;
  }
  /* Venue + city */
  [data-section="hero"][data-variant="h"] .hero-countdown__venue {
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: var(--muted);
    margin-bottom: 32px;
  }
  /* CTA row */
  [data-section="hero"][data-variant="h"] .hero-countdown__ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__cta-primary {
    display: inline-block;
    padding: 14px 28px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 600);
    border-radius: var(--btn-radius, 0);
    transition: opacity 0.2s;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__cta-primary:hover { opacity: 0.88; }
  [data-section="hero"][data-variant="h"] .hero-countdown__cta-secondary {
    display: inline-block;
    padding: 14px 28px;
    background: transparent;
    color: var(--text);
    border: 1px solid rgba(236, 230, 220, 0.38);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.12em);
    text-transform: var(--btn-transform, uppercase);
    font-weight: var(--btn-weight, 500);
    border-radius: var(--btn-radius, 0);
    transition: border-color 0.2s, color 0.2s;
  }
  [data-section="hero"][data-variant="h"] .hero-countdown__cta-secondary:hover {
    border-color: var(--accent);
    color: var(--accent-text);
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="h"] .hero-countdown__content {
      padding: 0 24px 48px;
    }
    [data-section="hero"][data-variant="h"] .hero-countdown__title {
      font-size: clamp(1.8rem, 7vw, 2.8rem);
    }
    [data-section="hero"][data-variant="h"] .hero-countdown__timer {
      gap: 16px;
      margin-bottom: 20px;
    }
    [data-section="hero"][data-variant="h"] .hero-countdown__ctas {
      flex-direction: column;
      max-width: 320px;
    }
    [data-section="hero"][data-variant="h"] .hero-countdown__ctas a {
      text-align: center;
    }
  }

  /* =====================================================================
     Hero — Variant I: info-col-asymmetric-stack
     1fr / 1.15fr split. LEFT = eyebrow + display H1 + italic lede +
     labeled meta strip + dual CTAs. RIGHT = 3-tile asymmetric image
     stack (grid-template-columns: 1fr 1fr; grid-template-rows: 1.4fr 1fr;
     tile 1 col1/row1, tile 2 col2/rows1-2 full height, tile 3 col1/row2).
     Hover scale 1.04 on all tiles.
     Mined from: templates/studio-marquee.tsx (.mq-hero block).
     ===================================================================== */
  [data-section="hero"][data-variant="i"] .hero-ias {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 64px;
    align-items: center;
    max-width: 1320px;
    margin: 0 auto;
    padding: 80px 32px 96px;
  }
  /* LEFT col */
  [data-section="hero"][data-variant="i"] .hero-ias__col {
    display: flex;
    flex-direction: column;
    gap: 22px;
    max-width: 560px;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__eyebrow {
    font-family: var(--font-body);
    font-size: 12px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--accent-text);
    font-weight: 600;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__name {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(54px, 9vw, 124px);
    line-height: 0.94;
    letter-spacing: -0.02em;
    text-transform: none;
    color: var(--text);
    margin: 0;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__name .accent { color: var(--accent-text); }
  [data-section="hero"][data-variant="i"] .hero-ias__lede {
    font-family: var(--font-display);
    font-style: italic;
    font-size: clamp(20px, 2.4vw, 28px);
    line-height: 1.3;
    color: var(--text, rgba(236, 230, 220, 0.80));
    max-width: 38ch;
  }
  /* Labeled inline meta strip — border-top separator */
  [data-section="hero"][data-variant="i"] .hero-ias__meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 14px;
    letter-spacing: 0.04em;
    color: var(--text, rgba(236, 230, 220, 0.80));
    padding-top: 6px;
    border-top: 1px solid var(--rule);
    margin-top: 6px;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__meta a:hover { color: var(--text); }
  [data-section="hero"][data-variant="i"] .hero-ias__meta-label {
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.18em;
    color: var(--muted);
    margin-right: 10px;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__phone {
    color: var(--accent-text);
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    letter-spacing: 0.01em;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__phone:hover { color: var(--text); }
  /* Dual CTAs */
  [data-section="hero"][data-variant="i"] .hero-ias__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 8px;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__cta-solid {
    display: inline-flex;
    align-items: center;
    height: 46px;
    padding: 0 22px;
    background: var(--accent);
    color: var(--accent-contrast, var(--bg));
    font-family: var(--font-body);
    font-weight: var(--btn-weight, 600);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.10em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    border: 1px solid var(--accent);
    transition: opacity 0.15s;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__cta-solid:hover { opacity: 0.88; }
  [data-section="hero"][data-variant="i"] .hero-ias__cta-ghost {
    display: inline-flex;
    align-items: center;
    height: 46px;
    padding: 0 22px;
    background: transparent;
    color: var(--text);
    font-family: var(--font-body);
    font-weight: var(--btn-weight, 500);
    font-size: 12px;
    letter-spacing: var(--btn-tracking, 0.10em);
    text-transform: var(--btn-transform, uppercase);
    border-radius: var(--btn-radius, 0);
    border: 1px solid var(--rule);
    transition: background 0.15s, color 0.15s, border-color 0.15s;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__cta-ghost:hover {
    background: var(--text);
    color: var(--bg);
    border-color: var(--text);
  }
  /* RIGHT col: 3-tile asymmetric stack */
  [data-section="hero"][data-variant="i"] .hero-ias__stack {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1.4fr 1fr;
    gap: 16px;
    aspect-ratio: 1 / 1.08;
    min-height: 480px;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__tile {
    overflow: hidden;
    background: var(--bg-mid);
    position: relative;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 800ms ease;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__tile:hover img {
    transform: scale(1.04);
  }
  /* Tile placement: col1/row1, col2/rows1-2, col1/row2 */
  [data-section="hero"][data-variant="i"] .hero-ias__tile--1 {
    grid-column: 1;
    grid-row: 1;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__tile--2 {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__tile--3 {
    grid-column: 1;
    grid-row: 2;
  }
  /* Count-aware: with 1-2 images the fixed 2x2 asymmetric grid left empty
     --bg-mid boxes (2026-07-25 audit, flaw 5). Collapse to a full tile (1) or a
     clean 2-up (2); the 3-tile asymmetric layout above is untouched. */
  [data-section="hero"][data-variant="i"] .hero-ias__stack[data-tiles="1"] {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__stack[data-tiles="1"] .hero-ias__tile--1 {
    grid-column: 1; grid-row: 1;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__stack[data-tiles="2"] {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__stack[data-tiles="2"] .hero-ias__tile--1 {
    grid-column: 1; grid-row: 1;
  }
  [data-section="hero"][data-variant="i"] .hero-ias__stack[data-tiles="2"] .hero-ias__tile--2 {
    grid-column: 2; grid-row: 1;
  }
  @container preview (max-width: 900px) {
    [data-section="hero"][data-variant="i"] .hero-ias {
      grid-template-columns: 1fr;
      padding: 56px 18px 64px;
      gap: 40px;
    }
    [data-section="hero"][data-variant="i"] .hero-ias__stack {
      aspect-ratio: 1 / 1;
      min-height: 0;
      max-height: 520px;
    }
    [data-section="hero"][data-variant="i"] .hero-ias__name {
      font-size: clamp(44px, 12vw, 80px);
    }
  }

  /* ─────────────────────────────────────────────────────────────────────────
     Gallery F — editorial-series
     Per-gallery-type bento block with serif series header.
     Mined from: templates/monograph.tsx
  ──────────────────────────────────────────────────────────────────────────── */

  [data-section="gallery"][data-variant="f"] .gallery-series__block {
    padding: 72px 24px;
    max-width: 1240px;
    margin: 0 auto;
    border-top: 1px solid var(--rule);
  }

  /* 3-zone header: spaced-caps count left / serif H2 center / hairline CTA right */
  [data-section="gallery"][data-variant="f"] .gallery-series__header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: end;
    gap: 18px;
    margin-bottom: 36px;
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__count {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--muted);
    white-space: nowrap;
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__title {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.1;
    letter-spacing: -0.005em;
    text-align: center;
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__viewall {
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
    white-space: nowrap;
    transition: border-color 0.2s ease, color 0.2s ease;
  }
  [data-section="gallery"][data-variant="f"] .gallery-series__viewall:hover {
    color: var(--accent-text);
    border-color: var(--accent);
  }

  /* 6-col bento grid */
  [data-section="gallery"][data-variant="f"] .gallery-series__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 220px;
    gap: 14px;
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__cell {
    display: block;
    overflow: hidden;
    background: var(--bg-mid);
    position: relative;
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__cell img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease, filter 0.4s ease;
    filter: saturate(0.95);
  }

  [data-section="gallery"][data-variant="f"] .gallery-series__cell:hover img {
    transform: scale(1.03);
    filter: saturate(1.08);
  }

  /* Desktop bento spans */
  @container preview (min-width: 720px) {
    [data-section="gallery"][data-variant="f"] .gallery-series__grid {
      grid-template-columns: repeat(6, 1fr);
      grid-auto-rows: 200px;
      gap: 18px;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(1) {
      grid-column: span 4;
      grid-row: span 2;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(2) {
      grid-column: span 2;
      grid-row: span 1;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(3) {
      grid-column: span 2;
      grid-row: span 1;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(4) {
      grid-column: span 3;
      grid-row: span 1;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(5) {
      grid-column: span 3;
      grid-row: span 1;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__cell:nth-child(6) {
      grid-column: span 6;
      grid-row: span 1;
    }
  }

  @container preview (max-width: 640px) {
    [data-section="gallery"][data-variant="f"] .gallery-series__block {
      padding: 48px 18px;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__header {
      grid-template-columns: 1fr;
      gap: 10px;
    }
    [data-section="gallery"][data-variant="f"] .gallery-series__title {
      text-align: left;
    }
  }

  /* ─────────────────────────────────────────────────────────────────────────
     Gallery G — portrait-attributed-3col
     4:5 portrait tiles with per-tile artist credit.
     Mined from: templates/studio-marquee.tsx
  ──────────────────────────────────────────────────────────────────────────── */

  [data-section="gallery"][data-variant="g"] .gallery-portrait-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 64px 24px;
    max-width: 1240px;
    margin: 0 auto;
  }

  @container preview (min-width: 640px) {
    [data-section="gallery"][data-variant="g"] .gallery-portrait-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  @container preview (min-width: 1024px) {
    [data-section="gallery"][data-variant="g"] .gallery-portrait-grid {
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
    }
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile {
    display: block;
    color: inherit;
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile__img-wrap {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--bg-mid);
    margin-bottom: 12px;
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 800ms ease;
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile:hover .gallery-portrait-tile__img-wrap img {
    transform: scale(1.04);
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile__credit {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 4px;
  }

  [data-section="gallery"][data-variant="g"] .gallery-portrait-tile__title {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 18px;
    color: var(--text);
    font-weight: 400;
    line-height: 1.2;
  }

  @container preview (max-width: 640px) {
    [data-section="gallery"][data-variant="g"] .gallery-portrait-grid {
      padding: 48px 18px;
      gap: 24px;
    }
  }

  /* ─────────────────────────────────────────────────────────────────────────
     Gallery H — per-artist-row
     Per-artist sub-rows with 3-thumbnail strips.
     Mined from: templates/tn-classic-sidebar-multi.tsx
  ──────────────────────────────────────────────────────────────────────────── */

  [data-section="gallery"][data-variant="h"] .gallery-per-artist {
    padding: 64px 24px;
    max-width: 1240px;
    margin: 0 auto;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__heading {
    font-family: var(--font-display);
    font-size: clamp(28px, 4vw, 42px);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 48px;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 18px;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__row {
    margin-bottom: 44px;
    padding-bottom: 44px;
    border-bottom: 1px solid var(--rule);
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__row:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__row-header {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 18px;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__artist-name {
    font-family: var(--font-display);
    font-size: clamp(20px, 2.5vw, 28px);
    letter-spacing: 0.02em;
    flex: 1;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__artist-name a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s ease;
  }
  [data-section="gallery"][data-variant="h"] .gallery-per-artist__artist-name a:hover {
    color: var(--accent-text);
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__row-actions {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__btn {
    display: inline-flex;
    align-items: center;
    height: 36px;
    padding: 0 16px;
    border: 1px solid var(--rule);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text);
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
  }
  [data-section="gallery"][data-variant="h"] .gallery-per-artist__btn:hover {
    border-color: var(--accent);
    color: var(--accent-text);
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__thumb {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--bg-mid);
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
  }

  [data-section="gallery"][data-variant="h"] .gallery-per-artist__thumb:hover img {
    transform: scale(1.05);
  }

  @container preview (max-width: 640px) {
    [data-section="gallery"][data-variant="h"] .gallery-per-artist {
      padding: 48px 18px;
    }
    [data-section="gallery"][data-variant="h"] .gallery-per-artist__row-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 10px;
    }
    [data-section="gallery"][data-variant="h"] .gallery-per-artist__thumbs {
      gap: 8px;
    }
  }

  /* ── Roster F — circular-avatar-styles ───────────────────────────────── */
  [data-section="roster"][data-variant="f"] .roster-circular {
    background: var(--section-bg, #0d0d0d);
    padding: 64px 24px;
    text-align: center;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__head {
    margin-bottom: 36px;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__eyebrow {
    font-size: 11px;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    color: var(--accent-text, #ac8236);
    font-weight: 600;
    margin-bottom: 8px;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__heading {
    font-family: var(--font-heading, serif);
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 700;
    color: var(--text, #fff);
    margin: 0;
    line-height: 1.05;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__grid {
    /* Flex, not grid, specifically so a PARTIAL last row is centred.
       CSS Grid fills tracks left-to-right, so a roster of 8 laid out 5
       per row left the trailing 3 hard against the left edge (operator
       report 2026-08-03, darkside-tattoo). `justify-content: center` on
       a grid only centres the whole track set, not the items inside the
       final row — flex wrap is the only thing that centres the
       remainder. Cards do NOT grow (`flex-grow: 0`), so the trailing row
       keeps the same avatar size as the full rows instead of stretching
       to fill the width. */
    max-width: 1140px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__grid > * {
    /* 205px keeps ~5 per row at the 1140px max-width (5x205 + 4x28 gap =
       1137), matching the previous auto-fill density. */
    flex: 0 1 205px;
    min-width: 160px;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__card {
    display: block;
    color: var(--text, #fff);
    text-decoration: none;
    transition: transform 0.25s ease, color 0.25s ease;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__card:hover {
    transform: translateY(-3px);
    color: var(--accent-text, #ac8236);
  }

  [data-section="roster"][data-variant="f"] .roster-circular__avatar {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--accent, #ac8236);
    margin-bottom: 14px;
    display: block;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__avatar--blank {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-mid, #1c1c1c);
    color: var(--accent-text, #ac8236);
    font-family: var(--font-heading, serif);
    font-size: 36px;
    font-weight: 700;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__name {
    font-family: var(--font-heading, serif);
    font-weight: 700;
    font-size: 18px;
    margin: 0 0 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: inherit;
  }

  [data-section="roster"][data-variant="f"] .roster-circular__tagline {
    font-size: 13px;
    color: var(--muted);
    margin: 0;
    line-height: 1.4;
  }

  /* ── Roster G — square-avatar-instagram ──────────────────────────────── */
  [data-section="roster"][data-variant="g"] .roster-square-ig {
    background: var(--section-bg, #0c0c0c);
    padding: 64px 24px;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__head {
    max-width: 1320px;
    margin: 0 auto 40px;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__eyebrow {
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--accent-text, #dcb96a);
    font-weight: 600;
    margin-bottom: 8px;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__heading {
    font-family: var(--font-heading, serif);
    font-size: clamp(32px, 5vw, 56px);
    font-weight: 400;
    color: var(--text, #ece6dc);
    margin: 0;
    line-height: 1;
    letter-spacing: -0.01em;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__grid {
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  @container preview (min-width: 640px) {
    [data-section="roster"][data-variant="g"] .roster-square-ig__grid {
      grid-template-columns: repeat(3, 1fr);
    }
  }

  @container preview (min-width: 900px) {
    [data-section="roster"][data-variant="g"] .roster-square-ig__grid {
      grid-template-columns: repeat(4, 1fr);
      gap: 28px;
    }
  }

  @container preview (min-width: 1200px) {
    [data-section="roster"][data-variant="g"] .roster-square-ig__grid {
      grid-template-columns: repeat(5, 1fr);
    }
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__card {
    display: block;
    color: var(--text, #ece6dc);
    text-decoration: none;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__avatar-wrap {
    aspect-ratio: 1 / 1;
    background: var(--bg-mid, #161616);
    margin-bottom: 14px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading, serif);
    font-size: 48px;
    color: var(--muted);
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 600ms ease;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__card:hover .roster-square-ig__avatar {
    transform: scale(1.05);
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__avatar-blank {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading, serif);
    font-size: 48px;
    color: var(--muted);
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__name {
    font-family: var(--font-heading, serif);
    font-size: 22px;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.1;
    margin: 0 0 4px;
    color: inherit;
  }

  [data-section="roster"][data-variant="g"] .roster-square-ig__handle {
    font-size: 12px;
    color: var(--muted);
    margin: 0;
    letter-spacing: 0.04em;
  }

  /* ─── Trust F — quote-stats-card ─────────────────────────────────────── */

  [data-section="trust"][data-variant="f"] .trust-quote-stats {
    padding: 80px 24px;
    display: flex;
    justify-content: center;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__card {
    max-width: 860px;
    width: 100%;
    background: var(--bg-mid, #111);
    border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
    border-radius: 4px;
    padding: 56px 48px 48px;
    text-align: center;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__quote {
    font-family: var(--font-heading, serif);
    font-style: italic;
    font-size: clamp(20px, 2.6vw, 28px);
    line-height: 1.5;
    color: var(--text, #ece6dc);
    margin: 0 0 48px;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__accent {
    color: var(--accent-text, #c9a96e);
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border-top: 1px solid var(--border, rgba(255, 255, 255, 0.10));
    padding-top: 40px;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__stat {
    padding: 0 16px;
    border-right: 1px solid var(--border, rgba(255, 255, 255, 0.10));
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__stat:last-child {
    border-right: none;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__number {
    font-family: var(--font-heading, serif);
    font-size: clamp(32px, 4vw, 48px);
    font-weight: 400;
    line-height: 1;
    color: var(--accent-text, #c9a96e);
    margin: 0 0 6px;
  }

  [data-section="trust"][data-variant="f"] .trust-quote-stats__label {
    font-size: 11px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--muted, rgba(236, 230, 220, 0.55));
    margin: 0;
  }

  @media (max-width: 640px) {
    [data-section="trust"][data-variant="f"] .trust-quote-stats__card {
      padding: 36px 24px 32px;
    }

    [data-section="trust"][data-variant="f"] .trust-quote-stats__stats {
      grid-template-columns: repeat(2, 1fr);
      gap: 24px 0;
    }

    [data-section="trust"][data-variant="f"] .trust-quote-stats__stat {
      border-right: none;
      border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.10));
      padding: 0 0 24px;
    }

    [data-section="trust"][data-variant="f"] .trust-quote-stats__stat:nth-child(3),
    [data-section="trust"][data-variant="f"] .trust-quote-stats__stat:last-child {
      border-bottom: none;
      padding-bottom: 0;
    }
  }

  /* ─── Third-Party Trust F — badge-icon-grid ──────────────────────────── */

    /* 🚨 The section paints its own background from --section-bg.
     Without this the builder's per-section Background picker wrote the
     database and rendered nothing — the control existed, the tone never
     appeared. Reported by a client as "Need to be able change bg color of
     third party trust" (Sean, Darkside, 2026-08-14); same defect class as
     the Amenities bar in docs/BUILDER-SECTION-AUDIT.md, where a section had
     no CSS at all. `--section-bg` falls back to the framework's own value,
     so a tenant who never touches the picker sees no change. */
[data-section="third-party-trust"][data-variant="f"] .trust-badge-grid {
    background: var(--section-bg);
    padding: 72px 24px;
    max-width: 1160px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 24px;
  }

  [data-section="third-party-trust"][data-variant="f"] .trust-badge-grid__cell {
    padding: 32px 28px;
    background: var(--bg-mid, #111);
    border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
    border-radius: 4px;
  }

  [data-section="third-party-trust"][data-variant="f"] .trust-badge-grid__icon {
    display: block;
    font-size: 32px;
    line-height: 1;
    margin-bottom: 16px;
  }

  [data-section="third-party-trust"][data-variant="f"] .trust-badge-grid__heading {
    font-family: var(--font-heading, serif);
    font-size: 18px;
    font-weight: 500;
    color: var(--text, #ece6dc);
    margin: 0 0 10px;
    line-height: 1.2;
  }

  [data-section="third-party-trust"][data-variant="f"] .trust-badge-grid__body {
    font-size: 14px;
    line-height: 1.65;
    color: var(--muted, rgba(236, 230, 220, 0.60));
    margin: 0;
  }

  /* ─── FAQ F — two-col-expandable ────────────────────────────────────── */

  [data-section="faq"][data-variant="f"] .faq-two-col {
    padding: 80px 24px;
    max-width: 1160px;
    margin: 0 auto;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__head {
    text-align: center;
    margin-bottom: 56px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent-text, #c9a96e);
    margin-bottom: 12px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__headline {
    font-family: var(--font-heading, serif);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 400;
    color: var(--text, #ece6dc);
    margin: 0;
    line-height: 1.15;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
    gap: 0 40px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__item {
    border-left: 2px solid var(--border, rgba(255, 255, 255, 0.12));
    padding: 0 0 0 20px;
    margin-bottom: 24px;
    transition: border-color 0.2s ease;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__item[open] {
    border-left-color: var(--accent, #c9a96e);
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
    padding: 14px 0;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__summary::-webkit-details-marker {
    display: none;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__question {
    font-family: var(--font-heading, serif);
    font-size: 17px;
    font-weight: 500;
    color: var(--text, #ece6dc);
    line-height: 1.3;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__icon {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border: 1px solid var(--border, rgba(255, 255, 255, 0.18));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    color: var(--muted, rgba(236, 230, 220, 0.55));
    transition: transform 0.25s ease, border-color 0.2s ease, color 0.2s ease;
    font-style: normal;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__item[open] .faq-two-col__icon {
    transform: rotate(45deg);
    border-color: var(--accent, #c9a96e);
    color: var(--accent-text, #c9a96e);
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__answer {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.3s ease;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__item[open] .faq-two-col__answer {
    max-height: 400px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__answer p {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted, rgba(236, 230, 220, 0.65));
    margin: 0;
    padding-bottom: 16px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__more {
    display: inline-block;
    margin-top: 36px;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-text, #c9a96e);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
  }

  [data-section="faq"][data-variant="f"] .faq-two-col__more:hover {
    opacity: 0.75;
  }

  @media (max-width: 520px) {
    [data-section="faq"][data-variant="f"] .faq-two-col__grid {
      grid-template-columns: 1fr;
    }
  }

  /* ─── Location F — inquire-nap-fields ───────────────────────────────── */

  [data-section="location"][data-variant="f"] .loc-inquire {
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    max-width: 1160px;
    margin: 0 auto;
    padding: 80px 24px;
    border-top: 1px solid var(--border, rgba(255, 255, 255, 0.08));
  }

  @media (min-width: 900px) {
    [data-section="location"][data-variant="f"] .loc-inquire {
      grid-template-columns: 5fr 7fr;
      gap: 80px;
    }
  }

  [data-section="location"][data-variant="f"] .loc-inquire__eyebrow {
    font-size: 11px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--muted, rgba(236, 230, 220, 0.55));
    margin-bottom: 14px;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__headline {
    font-family: var(--font-heading, serif);
    font-size: clamp(32px, 4.5vw, 48px);
    font-weight: 400;
    color: var(--text, #ece6dc);
    margin: 0 0 18px;
    line-height: 1.1;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__lede {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted, rgba(236, 230, 220, 0.65));
    margin: 0 0 24px;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__cta {
    display: inline-block;
    font-size: 13px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text, #ece6dc);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
    min-height: 44px;
    line-height: 44px;
    transition: color 0.2s ease, border-color 0.2s ease;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__cta:hover {
    color: var(--accent-text, #c9a96e);
    border-color: var(--accent, #c9a96e);
  }

  [data-section="location"][data-variant="f"] .loc-inquire__fields {
    font-style: normal;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__field {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 18px;
    padding: 16px 0;
    border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.08));
    font-size: 15px;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__field-label {
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 0.20em;
    text-transform: uppercase;
    color: var(--muted, rgba(236, 230, 220, 0.50));
    align-self: start;
    padding-top: 3px;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__field-value {
    color: var(--text, #ece6dc);
    line-height: 1.6;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__field-value a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--border, rgba(255, 255, 255, 0.20));
    padding-bottom: 1px;
    transition: color 0.2s ease, border-color 0.2s ease;
  }

  [data-section="location"][data-variant="f"] .loc-inquire__field-value a:hover {
    color: var(--accent-text, #c9a96e);
    border-color: var(--accent, #c9a96e);
  }

  @media (max-width: 520px) {
    [data-section="location"][data-variant="f"] .loc-inquire__field {
      grid-template-columns: 90px 1fr;
      gap: 12px;
    }
  }

  /* ─── Consult F — info-panel-form ───────────────────────────────────── */

  [data-section="consult"][data-variant="f"] .consult-panel {
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    max-width: 1160px;
    margin: 0 auto;
    padding: 80px 24px;
  }

  @media (min-width: 900px) {
    [data-section="consult"][data-variant="f"] .consult-panel {
      grid-template-columns: 5fr 7fr;
      gap: 64px;
    }
  }

  [data-section="consult"][data-variant="f"] .consult-panel__headline {
    font-family: var(--font-heading, serif);
    font-size: clamp(22px, 2.8vw, 30px);
    font-weight: 400;
    color: var(--text, #ece6dc);
    margin: 0 0 18px;
    line-height: 1.2;
  }

  [data-section="consult"][data-variant="f"] .consult-panel__bio {
    font-size: 15px;
    line-height: 1.7;
    color: var(--muted, rgba(236, 230, 220, 0.65));
    margin: 0 0 28px;
  }

  [data-section="consult"][data-variant="f"] .consult-panel__links {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }

  [data-section="consult"][data-variant="f"] .consult-panel__link {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: var(--text, #ece6dc);
    text-decoration: none;
    transition: color 0.2s ease;
    min-height: 44px;
  }

  [data-section="consult"][data-variant="f"] .consult-panel__link:hover {
    color: var(--accent-text, #c9a96e);
  }

  [data-section="consult"][data-variant="f"] .consult-panel__link-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    fill: currentColor;
  }

  [data-section="consult"][data-variant="f"] .consult-panel__form {
    background: var(--bg-mid, #111);
    border: 1px solid var(--border, rgba(255, 255, 255, 0.08));
    border-radius: 4px;
    padding: 36px 32px;
  }

  @media (max-width: 520px) {
    [data-section="consult"][data-variant="f"] .consult-panel__form {
      padding: 24px 18px;
    }
  }

}


/* =========================================================================
   Per-section wrapper animations (Builder animation picker)
   =========================================================================
   See lib/themes/animations.ts for the catalog. SectionRouter emits
   <span data-animation="{slug}" style="display:contents"> when a tenant
   has set an animation for the section. CSS targets the contained
   [data-section] element OR its descendants depending on the effect.

   Reduced motion: every @keyframes block below is gated on
   `@media (prefers-reduced-motion: no-preference)` so OS-level
   accessibility wins. The 'off' slug uses the existing
   `[data-animations-off="true"]` selector (data.ts maps 'off' onto
   that wrapper attr for back-compat with the legacy section_animations_off
   render path).
   ========================================================================= */

@media (prefers-reduced-motion: no-preference) {

  /* fade-in: section fades from 0 → 1 opacity over 800ms when scrolled
     into view. Uses CSS @starting-style + scroll-driven animation where
     supported; falls back to a simple infinite-loop guard.
     Note: scroll-timeline support is partial — Safari adds it 17.6+.
     For broad compatibility we use a simpler approach: keyframe fires
     on first paint, animation-fill-mode: both holds the end state. */
  [data-animation="fade-in"] > [data-section] {
    animation: ta-fade-in 0.8s ease-out 0.1s both;
  }
  @keyframes ta-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
  }

  /* slide-up: 24px translate from below + fade-in */
  [data-animation="slide-up"] > [data-section] {
    animation: ta-slide-up 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both;
  }
  @keyframes ta-slide-up {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
  }

  /* slide-left / slide-right: horizontal entrance + fade (Aloha port,
     2026-08-17 — the source site's sections slide in alternately from
     the sides). 32px is deliberate: far enough to read as direction,
     small enough that content never leaves the viewport on a phone, so
     no horizontal overflow. The section wrapper keeps overflow-x
     clipped during the animation for belt-and-braces. */
  [data-animation="slide-left"] > [data-section],
  [data-animation="slide-right"] > [data-section] {
    overflow-x: clip;
  }
  [data-animation="slide-left"] > [data-section] {
    animation: ta-slide-left 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both;
  }
  @keyframes ta-slide-left {
    from { opacity: 0; transform: translateX(-32px); }
    to   { opacity: 1; transform: translateX(0); }
  }
  [data-animation="slide-right"] > [data-section] {
    animation: ta-slide-right 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both;
  }
  @keyframes ta-slide-right {
    from { opacity: 0; transform: translateX(32px); }
    to   { opacity: 1; transform: translateX(0); }
  }

  /* stagger: children of the section enter one at a time, 80ms gap.
     Caller writes child markup with `.slot__item` or a similar class;
     this catalog assumes the variant exposes direct children that can
     be animated. We use `:nth-child(n)` delays up to 12 items. */
  [data-animation="stagger"] > [data-section] > * {
    animation: ta-fade-in 0.6s ease-out both;
  }
  [data-animation="stagger"] > [data-section] > *:nth-child(1)  { animation-delay: 0.05s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(2)  { animation-delay: 0.13s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(3)  { animation-delay: 0.21s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(4)  { animation-delay: 0.29s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(5)  { animation-delay: 0.37s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(6)  { animation-delay: 0.45s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(7)  { animation-delay: 0.53s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(8)  { animation-delay: 0.61s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(9)  { animation-delay: 0.69s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(10) { animation-delay: 0.77s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(11) { animation-delay: 0.85s; }
  [data-animation="stagger"] > [data-section] > *:nth-child(12) { animation-delay: 0.93s; }

  /* zoom-in: from scale 0.95 + opacity 0 → scale 1 + opacity 1 */
  [data-animation="zoom-in"] > [data-section] {
    animation: ta-zoom-in 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both;
  }
  @keyframes ta-zoom-in {
    from { opacity: 0; transform: scale(0.95); }
    to   { opacity: 1; transform: scale(1); }
  }

  /* ken-burns: hero-specific. Slow pan + zoom on every <img> inside.
     Variants that already include kenburns inside their markup
     (HeroD) are unaffected because the rule targets the wrapper, not
     the .hero-kenburns elements those variants use. Duration 20s
     ease-in-out, alternating direction so it pans back. */
  [data-animation="ken-burns"] > [data-section] img {
    animation: ta-ken-burns 20s ease-in-out infinite alternate;
    transform-origin: center;
  }
  @keyframes ta-ken-burns {
    from { transform: scale(1) translate(0, 0); }
    to   { transform: scale(1.08) translate(-2%, -1%); }
  }

  /* parallax: shift the background or first image inside the section
     by a few pixels relative to scroll position. Simplest fallback is
     a slow infinite drift; a richer version would use scroll-timeline. */
  [data-animation="parallax"] > [data-section] {
    background-attachment: fixed;
  }
  [data-animation="parallax"] > [data-section] img:first-of-type {
    will-change: transform;
    transition: transform 0.4s ease-out;
  }

  /* glow: subtle pulsing accent ring on the section. Useful for CTAs
     and trust badges. */
  [data-animation="glow"] > [data-section] {
    animation: ta-glow 3s ease-in-out infinite;
  }
  @keyframes ta-glow {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent, #c9a96e) 0%, transparent); }
    50%      { box-shadow: 0 0 32px 4px color-mix(in srgb, var(--accent, #c9a96e) 18%, transparent); }
  }

} /* end @media prefers-reduced-motion */

/* ============================================================
   Upcoming Events section — added 2026-06-04
   Variants A (3-col cards), B (featured + list), C (date-rail),
   D (marquee ticker). Empty data state returns null at the
   component level so the section vanishes for non-attending
   tenants — no defensive CSS needed.
   ============================================================ */
[data-section="events"] .events-section {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 64px 24px;
}
[data-section="events"] .events-section__eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.6;
  margin-bottom: 8px;
}
[data-section="events"] .events-section__heading {
  font-family: var(--font-heading, inherit);
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 600;
  margin: 0 0 32px;
  line-height: 1.1;
}
@media (max-width: 720px) {
  [data-section="events"] .events-section { padding: 48px 16px; }
}

/* Variant A — 3-col cards */
[data-section="events"][data-variant="a"] .events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
[data-section="events"][data-variant="a"] .events-grid__card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  transition: transform 200ms ease, box-shadow 200ms ease;
}
[data-section="events"][data-variant="a"] .events-grid__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}
[data-section="events"][data-variant="a"] .events-grid__img-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
}
[data-section="events"][data-variant="a"] .events-grid__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
[data-section="events"][data-variant="a"] .events-grid__body {
  padding: 16px 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
[data-section="events"][data-variant="a"] .events-grid__name {
  font-family: var(--font-heading, inherit);
  font-size: 18px;
  font-weight: 600;
  margin: 0;
  line-height: 1.3;
}
[data-section="events"][data-variant="a"] .events-grid__date {
  font-size: 13px;
  font-weight: 600;
  opacity: 0.85;
}
[data-section="events"][data-variant="a"] .events-grid__loc {
  font-size: 13px;
  opacity: 0.65;
}
@media (max-width: 980px) {
  [data-section="events"][data-variant="a"] .events-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  [data-section="events"][data-variant="a"] .events-grid { grid-template-columns: 1fr; }
}

/* Variant B — Featured + list */
[data-section="events"][data-variant="b"] .events-feat {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 24px;
  text-decoration: none;
  color: inherit;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
  margin-bottom: 24px;
}
[data-section="events"][data-variant="b"] .events-feat__img-wrap {
  aspect-ratio: 4 / 3;
  background: rgba(255, 255, 255, 0.04);
}
[data-section="events"][data-variant="b"] .events-feat__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
[data-section="events"][data-variant="b"] .events-feat__body {
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
[data-section="events"][data-variant="b"] .events-feat__date {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.85;
}
[data-section="events"][data-variant="b"] .events-feat__name {
  font-family: var(--font-heading, inherit);
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 600;
  margin: 0;
  line-height: 1.15;
}
[data-section="events"][data-variant="b"] .events-feat__loc {
  font-size: 14px;
  opacity: 0.7;
}
[data-section="events"][data-variant="b"] .events-feat__role {
  font-size: 12px;
  font-weight: 600;
  opacity: 0.6;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
[data-section="events"][data-variant="b"] .events-feat__cta {
  margin-top: 12px;
  font-size: 14px;
  font-weight: 600;
}
[data-section="events"][data-variant="b"] .events-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
[data-section="events"][data-variant="b"] .events-list__row {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
[data-section="events"][data-variant="b"] .events-list__row:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
[data-section="events"][data-variant="b"] .events-list__link {
  display: grid;
  grid-template-columns: 160px 1fr 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 14px 4px;
  text-decoration: none;
  color: inherit;
  font-size: 14px;
}
[data-section="events"][data-variant="b"] .events-list__date {
  font-weight: 700;
  letter-spacing: 0.04em;
}
[data-section="events"][data-variant="b"] .events-list__name {
  font-family: var(--font-heading, inherit);
  font-weight: 600;
}
[data-section="events"][data-variant="b"] .events-list__loc {
  opacity: 0.65;
  text-align: right;
}
@media (max-width: 720px) {
  [data-section="events"][data-variant="b"] .events-feat { grid-template-columns: 1fr; }
  [data-section="events"][data-variant="b"] .events-feat__body { padding: 18px 16px 22px; }
  [data-section="events"][data-variant="b"] .events-list__link {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 12px 4px;
  }
  [data-section="events"][data-variant="b"] .events-list__loc { text-align: left; }
}

/* Variant C — Date-rail list */
[data-section="events"][data-variant="c"] .events-rail {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
[data-section="events"][data-variant="c"] .events-rail__link {
  display: grid;
  grid-template-columns: 64px 1fr 24px;
  gap: 16px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  text-decoration: none;
  color: inherit;
  transition: background 160ms ease;
}
[data-section="events"][data-variant="c"] .events-rail__link:hover {
  background: rgba(255, 255, 255, 0.06);
}
[data-section="events"][data-variant="c"] .events-rail__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 6px 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  line-height: 1;
}
[data-section="events"][data-variant="c"] .events-rail__month {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  opacity: 0.7;
}
[data-section="events"][data-variant="c"] .events-rail__day {
  font-family: var(--font-heading, inherit);
  font-size: 22px;
  font-weight: 700;
  margin-top: 2px;
}
[data-section="events"][data-variant="c"] .events-rail__name {
  font-family: var(--font-heading, inherit);
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 2px;
}
[data-section="events"][data-variant="c"] .events-rail__meta {
  font-size: 12px;
  opacity: 0.65;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
[data-section="events"][data-variant="c"] .events-rail__sep {
  opacity: 0.5;
}
[data-section="events"][data-variant="c"] .events-rail__cta {
  font-size: 16px;
  opacity: 0.6;
  text-align: right;
}
@media (max-width: 480px) {
  [data-section="events"][data-variant="c"] .events-rail__link {
    grid-template-columns: 54px 1fr;
  }
  [data-section="events"][data-variant="c"] .events-rail__cta { display: none; }
}

/* Variant D — Marquee ticker */
[data-section="events"][data-variant="d"] .events-marquee {
  position: relative;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
[data-section="events"][data-variant="d"] .events-marquee__track {
  display: flex;
  gap: 14px;
  width: max-content;
  animation: ta-events-marquee 40s linear infinite;
}
[data-section="events"][data-variant="d"] .events-marquee__chip {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 22px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  text-decoration: none;
  color: inherit;
  white-space: nowrap;
  font-size: 14px;
  transition: background 160ms ease;
}
[data-section="events"][data-variant="d"] .events-marquee__chip:hover {
  background: rgba(255, 255, 255, 0.1);
}
[data-section="events"][data-variant="d"] .events-marquee__date {
  font-weight: 700;
  letter-spacing: 0.06em;
}
[data-section="events"][data-variant="d"] .events-marquee__name {
  font-family: var(--font-heading, inherit);
  font-weight: 600;
}
[data-section="events"][data-variant="d"] .events-marquee__loc {
  opacity: 0.65;
}
[data-section="events"][data-variant="d"] .events-marquee:hover .events-marquee__track {
  animation-play-state: paused;
}
@media (prefers-reduced-motion: reduce) {
  [data-section="events"][data-variant="d"] .events-marquee__track { animation: none; }
}
@keyframes ta-events-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ============================================================
   Hero — Variant J (tile mosaic)
   Studio-family hero modeled on Darkside Tattoo's legacy home:
   a small title block above a full-bleed 12-tile mosaic of work.
   ============================================================ */
[data-section="hero"][data-variant="j"] .hero-mosaic {
  padding: 40px 0 0;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__header {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 0 24px 28px;
  text-align: center;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted, var(--text)) 75%, var(--text));
  margin: 0 0 10px;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__name {
  font-family: var(--font-heading, inherit);
  font-size: clamp(54px, 8vw, 104px);
  font-weight: 600;
  line-height: 1.0;
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__name .accent {
  color: var(--accent-text, currentColor);
}
[data-section="hero"][data-variant="j"] .hero-mosaic__lede {
  font-family: var(--font-body, inherit);
  font-size: clamp(15px, 1.4vw, 17px);
  color: var(--text-secondary, var(--text));
  opacity: 0.8;
  margin: 0 0 28px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__buttons {
  display: inline-flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-solid,
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-ghost {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 4px;
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 160ms ease, background 160ms ease, color 160ms ease;
}
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-solid {
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
}
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-solid:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-ghost {
  background: transparent;
  color: var(--text, #ece6dc);
  border: 1px solid rgba(255, 255, 255, 0.18);
}
[data-section="hero"][data-variant="j"] .hero-mosaic__cta-ghost:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--muted);
}

/* Full-bleed 12-tile grid: 4 cols × 3 rows on desktop. Each tile is
   1:1 square; the whole grid stretches edge-to-edge so the mosaic
   reads as a single visual block. */
[data-section="hero"][data-variant="j"] .hero-mosaic__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  width: 100%;
}
/* Count-aware columns so a thin tenant's mosaic fills evenly instead of a
   ragged half-empty last row (2026-07-25 audit, gap 1). 12+ keeps the 4-col
   mosaic; fewer images step the column count down so every row is full. */
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="1"] { grid-template-columns: 1fr; }
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="2"] { grid-template-columns: repeat(2, 1fr); }
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="3"] { grid-template-columns: repeat(3, 1fr); }
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="4"] { grid-template-columns: repeat(2, 1fr); }
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="5"],
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="6"] { grid-template-columns: repeat(3, 1fr); }
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="7"],
[data-section="hero"][data-variant="j"] .hero-mosaic__grid[data-count="9"] { grid-template-columns: repeat(3, 1fr); }
[data-section="hero"][data-variant="j"] .hero-mosaic__tile {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.03);
}
[data-section="hero"][data-variant="j"] .hero-mosaic__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 320ms ease, filter 320ms ease;
  filter: saturate(0.95);
}
[data-section="hero"][data-variant="j"] .hero-mosaic__tile:hover img {
  transform: scale(1.04);
  filter: saturate(1.1);
}

@media (max-width: 980px) {
  [data-section="hero"][data-variant="j"] .hero-mosaic__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 640px) {
  [data-section="hero"][data-variant="j"] .hero-mosaic__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  [data-section="hero"][data-variant="j"] .hero-mosaic { padding-top: 40px; }
  [data-section="hero"][data-variant="j"] .hero-mosaic__header { padding-bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-section="hero"][data-variant="j"] .hero-mosaic__tile img { transition: none; }
  [data-section="hero"][data-variant="j"] .hero-mosaic__tile:hover img { transform: none; }
}

/* ============================================================
   About — Variant C, studio-family additions
   The studio branch drops the portrait + adds an eyebrow / CTA in
   the identity column. Classes layered onto the existing about-essay
   styles so the layout, drop-cap, and pull-quote treatments cascade.
   ============================================================ */
[data-section="about"][data-variant="c"] .about-essay__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent-text, currentColor);
  margin: 0 0 14px;
}
[data-section="about"][data-variant="c"] .about-essay__cta {
  display: inline-block;
  margin-top: 22px;
  padding: 12px 22px;
  border-radius: 4px;
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
  font-family: var(--font-body, inherit);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="about"][data-variant="c"] .about-essay__cta:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}

/* ============================================================
   Services — Variant A image-led card (svc-card--image)
   Layered onto the existing svc-card grid so icon-led + image-led
   cards align in the same row. Photo on top in a 16:9 frame.
   ============================================================ */
[data-section="services"][data-variant="a"] .svc-card--image {
  padding: 0;
  overflow: hidden;
}
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__img-wrap {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  margin-bottom: 18px;
}
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 320ms ease;
}
[data-section="services"][data-variant="a"] .svc-card--image:hover .svc-card__img {
  transform: scale(1.04);
}
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__name,
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__desc,
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__link {
  padding-left: 22px;
  padding-right: 22px;
}
[data-section="services"][data-variant="a"] .svc-card--image .svc-card__link {
  padding-bottom: 22px;
}
@media (prefers-reduced-motion: reduce) {
  [data-section="services"][data-variant="a"] .svc-card--image .svc-card__img { transition: none; }
  [data-section="services"][data-variant="a"] .svc-card--image:hover .svc-card__img { transform: none; }
}

/* ============================================================
   Roster — Variant F bottom CTA ("Meet the {Studio} Crew")
   ============================================================ */
[data-section="roster"][data-variant="f"] .roster-circular__footer {
  margin-top: 40px;
  text-align: center;
}
[data-section="roster"][data-variant="f"] .roster-circular__crew-cta {
  display: inline-block;
  padding: 14px 32px;
  border-radius: 4px;
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="roster"][data-variant="f"] .roster-circular__crew-cta:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}

/* ============================================================
   Feature spotlight — variants A (single image + intro + CTA)
   and B (3-up grid + intro + CTA). Renders only when the tenant
   sets feature_image_type AND the matching gallery has images.
   ============================================================ */
[data-section="feature"] .feature-spotlight,
[data-section="feature"] .feature-grid {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 64px 24px;
}

/* Variant A — split image + body */
[data-section="feature"][data-variant="a"] .feature-spotlight {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 40px;
  align-items: center;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__img-wrap {
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
}
[data-section="feature"][data-variant="a"] .feature-spotlight__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent-text, currentColor);
  margin-bottom: 14px;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__heading {
  font-family: var(--font-heading, inherit);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 600;
  line-height: 1.1;
  margin: 0 0 18px;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__intro {
  font-family: var(--font-body, inherit);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-secondary, var(--text));
  opacity: 0.85;
  margin: 0 0 28px;
  max-width: 480px;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__cta {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 4px;
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="feature"][data-variant="a"] .feature-spotlight__cta:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}
@media (max-width: 720px) {
  [data-section="feature"][data-variant="a"] .feature-spotlight {
    grid-template-columns: 1fr;
  }
}

/* Variant B — 3-up grid + framed copy */
[data-section="feature"][data-variant="b"] .feature-grid__head {
  text-align: center;
  margin-bottom: 32px;
}
[data-section="feature"][data-variant="b"] .feature-grid__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent-text, currentColor);
  margin-bottom: 12px;
}
[data-section="feature"][data-variant="b"] .feature-grid__heading {
  font-family: var(--font-heading, inherit);
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 600;
  line-height: 1.1;
  margin: 0 0 14px;
}
[data-section="feature"][data-variant="b"] .feature-grid__intro {
  font-family: var(--font-body, inherit);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text-secondary, var(--text));
  opacity: 0.85;
  margin: 0 auto;
  max-width: 640px;
}
[data-section="feature"][data-variant="b"] .feature-grid__cells {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
[data-section="feature"][data-variant="b"] .feature-grid__cell {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
}
[data-section="feature"][data-variant="b"] .feature-grid__cell img,
[data-section="feature"][data-variant="b"] .feature-grid__cell video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 320ms ease;
}
[data-section="feature"][data-variant="b"] .feature-grid__cell:hover img,
[data-section="feature"][data-variant="b"] .feature-grid__cell:hover video {
  transform: scale(1.04);
}
[data-section="feature"][data-variant="b"] .feature-grid__footer {
  margin-top: 28px;
  text-align: center;
}
[data-section="feature"][data-variant="b"] .feature-grid__cta {
  display: inline-block;
  padding: 14px 28px;
  border-radius: 4px;
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="feature"][data-variant="b"] .feature-grid__cta:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}
@media (max-width: 720px) {
  [data-section="feature"][data-variant="b"] .feature-grid__cells {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-section="feature"][data-variant="b"] .feature-grid__cell img,
  [data-section="feature"][data-variant="b"] .feature-grid__cell video { transition: none; }
  [data-section="feature"][data-variant="b"] .feature-grid__cell:hover img,
  [data-section="feature"][data-variant="b"] .feature-grid__cell:hover video { transform: none; }
}

/* ============================================================
   Newsletter — variants A (inline banner) + B (card form).
   Form posts to /api/newsletter/subscribe which redirects back
   with ?subscribed=1#newsletter — page can light up a thanks
   message off that param if it wants.
   ============================================================ */
[data-section="newsletter"] .newsletter-banner,
[data-section="newsletter"] .newsletter-card {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 56px 24px;
}

/* Variant A — inline banner. One-to-one with the live
   darksidetattoo.com "Fresh Tattoos Emailed Weekly:" strip
   (2026-07-11): dark #2e2e2e inset band, 20px bold white title,
   white input, gray #787879 button with white bold label. */
[data-section="newsletter"][data-variant="a"] .newsletter-banner__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 32px;
  align-items: center;
  padding: 28px 32px;
  border-radius: 5px;
  background: #2e2e2e;
  border: none;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__title {
  font-family: var(--font-heading, inherit);
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 6px;
  line-height: 1.3;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__intro {
  font-family: var(--font-body, inherit);
  font-size: 14px;
  line-height: 1.5;
  color: #ffffff;
  opacity: 0.9;
  margin: 0;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__form {
  display: flex;
  gap: 8px;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__input {
  flex: 1;
  padding: 12px 16px;
  border-radius: 4px;
  border: 1px solid #9a9a9a;
  background: #ffffff;
  color: #2e2e2e;
  font-family: var(--font-body, inherit);
  font-size: 14px;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__input:focus {
  outline: none;
  border-color: #636363;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__button {
  padding: 12px 22px;
  border-radius: 4px;
  border: 0;
  background: #767677;
  color: #ffffff;
  font-family: var(--font-heading, inherit);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="newsletter"][data-variant="a"] .newsletter-banner__button:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}
@media (max-width: 720px) {
  [data-section="newsletter"][data-variant="a"] .newsletter-banner__inner {
    grid-template-columns: 1fr;
  }
  [data-section="newsletter"][data-variant="a"] .newsletter-banner__form {
    flex-direction: column;
  }
}

/* Variant B — boxed card */
[data-section="newsletter"][data-variant="b"] .newsletter-card {
  max-width: 640px;
  text-align: center;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent-text, currentColor);
  margin-bottom: 10px;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__title {
  font-family: var(--font-heading, inherit);
  font-size: clamp(28px, 3.6vw, 40px);
  font-weight: 600;
  line-height: 1.1;
  margin: 0 0 16px;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__intro {
  font-family: var(--font-body, inherit);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text-secondary, var(--text));
  opacity: 0.85;
  margin: 0 auto 24px;
  max-width: 480px;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__form {
  display: inline-flex;
  gap: 8px;
  width: 100%;
  max-width: 480px;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__input {
  flex: 1;
  padding: 14px 18px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text, #ece6dc);
  font-family: var(--font-body, inherit);
  font-size: 14px;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__input:focus {
  outline: none;
  border-color: var(--accent, #dcb96a);
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__button {
  padding: 14px 26px;
  border-radius: 4px;
  border: 0;
  background: var(--accent, #dcb96a);
  color: var(--accent-contrast, var(--bg, #0c0c0c));
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 160ms ease, filter 160ms ease;
}
[data-section="newsletter"][data-variant="b"] .newsletter-card__button:hover {
  transform: translateY(-1px);
  filter: brightness(1.1);
}
@media (max-width: 540px) {
  [data-section="newsletter"][data-variant="b"] .newsletter-card__form {
    flex-direction: column;
  }
}

/* ============================================================
   Hero — Variant K (hero-studio-interior-sigil)
   Full-bleed studio-interior bg + multi-paragraph intro + optional
   foreground sigil + rectangular CTA. Models the legacy
   darksidetattoo.com home: dim photographic backdrop, copy LEFT,
   brand graphic RIGHT, CTA centered under the copy.
   ============================================================ */
[data-section="hero"][data-variant="k"] .hero-sigil {
  position: relative;
  width: 100%;
  background-color: var(--bg, #0c0c0c);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 64px 24px;
  min-height: 600px;
  display: flex;
  align-items: center;
}
[data-section="hero"][data-variant="k"] .hero-sigil__bgvideo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
[data-section="hero"][data-variant="k"] .hero-sigil__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55));
  z-index: 1;
}
/* Reduced-motion / no-autoplay: hide the clip so the bg image (poster) shows. */
@media (prefers-reduced-motion: reduce) {
  [data-section="hero"][data-variant="k"] .hero-sigil__bgvideo { display: none; }
}
[data-section="hero"][data-variant="k"] .hero-sigil__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  max-width: var(--theme-content-max, 1280px);
  margin: 0 auto;
  width: 100%;
  align-items: center;
}
[data-section="hero"][data-variant="k"] .hero-sigil__copy {
  color: var(--text, #ece6dc);
}
[data-section="hero"][data-variant="k"] .hero-sigil__h1 {
  font-family: var(--font-heading, inherit);
  font-size: clamp(28px, 3.4vw, 44px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
  margin: 0 0 24px;
  color: var(--text, #fff);
}
[data-section="hero"][data-variant="k"] .hero-sigil__intro p {
  font-family: var(--font-body, inherit);
  font-size: 16px;
  line-height: 1.6;
  color: var(--text, #ece6dc);
  margin: 0 0 18px;
  max-width: 640px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}
[data-section="hero"][data-variant="k"] .hero-sigil__cta {
  display: inline-block;
  margin-top: 12px;
  padding: 14px 28px;
  background: rgba(255, 255, 255, 0.12);
  border: 1.5px solid rgba(220, 80, 80, 0.85);
  color: var(--text, #fff);
  font-family: var(--font-body, inherit);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 4px;
  transition: background 160ms ease, transform 160ms ease;
}
[data-section="hero"][data-variant="k"] .hero-sigil__cta:hover {
  background: rgba(255, 255, 255, 0.18);
  transform: translateY(-1px);
}
[data-section="hero"][data-variant="k"] .hero-sigil__fg {
  display: flex;
  align-items: center;
  justify-content: center;
}
[data-section="hero"][data-variant="k"] .hero-sigil__fg img,
[data-section="hero"][data-variant="k"] .hero-sigil__fg video {
  max-width: 100%;
  max-height: 520px;
  object-fit: contain;
  filter: drop-shadow(0 8px 32px rgba(255, 60, 60, 0.4));
}
@media (max-width: 900px) {
  [data-section="hero"][data-variant="k"] .hero-sigil__inner {
    grid-template-columns: 1fr;
    text-align: center;
  }
  [data-section="hero"][data-variant="k"] .hero-sigil__intro p {
    margin-left: auto; margin-right: auto;
  }
  [data-section="hero"][data-variant="k"] .hero-sigil__fg {
    order: -1;
  }
  [data-section="hero"][data-variant="k"] .hero-sigil__fg img {
    max-height: 280px;
  }
}

/* ============================================================
   Roster — Variant H (name-above-large-square-row)
   Name on TOP, portrait work image below in a tall 3:4 aspect
   ratio, all artists in ONE compact horizontal row. One-to-one
   with the live darksidetattoo.com "Darkside's Tattoo Artists:"
   strip (GHL build, values pulled from its generated CSS
   2026-07-10): 18px Montserrat headings, images framed by 10px
   padding on a #2e2e2e block (the "gray border" is that frame,
   not a CSS border), gray #787879 CTA with 2px #C90000 border.
   ============================================================ */
[data-section="roster"][data-variant="h"] .roster-rowcards {
  padding: 48px 24px;
  max-width: var(--theme-content-max-wide, 1400px);
  margin: 0 auto;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__heading {
  /* Live: h2 > strong, font-size 18px !important, white, centered. */
  font-family: var(--font-heading, inherit);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  margin: 0 0 24px;
  color: var(--text, #ffffff);
}
[data-section="roster"][data-variant="h"] .roster-rowcards__strip {
  /* One compact row of narrow columns — mirrors the live
     darksidetattoo.com "Darkside's Tattoo Artists:" strip, where all
     artists sit side-by-side (~185px per column at 7 artists) with
     name on top, portrait work image, style caption below.

     GRID, not flex-wrap (2026-08-05). Wrapping fills each line greedily,
     so Darkside's 8 artists went 7 + 1-alone-and-centered. A grid with an
     explicit column count splits them evenly instead; the count comes in
     as --roster-cols from RosterH.tsx:balancedColumns, because CSS cannot
     count its own children. The fallback keeps a sane layout if the
     custom property is ever missing. */
  display: grid;
  grid-template-columns: repeat(var(--roster-cols, 4), minmax(0, 215px));
  justify-content: center;
  gap: 32px 18px;
  margin: 0 auto;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__card {
  /* Width now comes from the grid track, not from flex-basis. min-width:0
     lets a track shrink below the image's intrinsic width on narrow
     viewports instead of overflowing the page. */
  min-width: 0;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: transform 200ms ease;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__card:hover {
  transform: translateY(-2px);
}
[data-section="roster"][data-variant="h"] .roster-rowcards__name {
  /* Live: h2 link, 18px, weight 400, white, line-height 1.3em,
     padding 10px 0, centered. */
  font-family: var(--font-heading, inherit);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
  text-align: center;
  color: var(--text, #ffffff);
  margin: 0;
  padding: 10px 0;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__img-wrap {
  /* Live: .image-container { padding: 10px; background: #2e2e2e } —
     the visible gray frame around each work image is this padded
     block, NOT a CSS border. Square corners, no radius. */
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  padding: 10px;
  background: #2e2e2e;
  border-radius: 0;
  border: none;
  box-sizing: border-box;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__img-blank {
  width: 100%; height: 100%;
  background: rgba(255, 255, 255, 0.04);
}
/* Tablet — rebalance against a 4-column ceiling. A grid column count is a
   fixed number, so the balanced count for this width is computed
   separately and passed as its own custom property. */
@media (max-width: 1024px) {
  [data-section="roster"][data-variant="h"] .roster-rowcards__strip {
    grid-template-columns: repeat(var(--roster-cols-md, 3), minmax(0, 215px));
  }
}
/* Phone — always two, whatever the roster size. */
@media (max-width: 640px) {
  [data-section="roster"][data-variant="h"] .roster-rowcards__strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 14px;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-section="roster"][data-variant="h"] .roster-rowcards__card { transition: none; }
  [data-section="roster"][data-variant="h"] .roster-rowcards__card:hover { transform: none; }
}

/* ============================================================
   Roster — Variant H (legacy match update)
   Style caption below the image + bottom "Meet the Crew" CTA.
   Live renders the style as an 18px heading-font text block under
   each work image ("Black and Gray / Realism"), white, centered.
   ============================================================ */
[data-section="roster"][data-variant="h"] .roster-rowcards__styles {
  /* Live: h2 lines, 18px, weight 400, white, line-height 1.3em,
     padding 10px 0, centered. Each style stacks as its own centered
     line — live breaks the caption over two lines. */
  font-family: var(--font-heading, inherit);
  font-size: 18px;
  font-weight: 400;
  text-align: center;
  color: var(--text, #ffffff);
  margin: 0;
  padding: 10px 0;
  line-height: 1.3;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__style-line {
  display: block;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__footer {
  margin-top: 32px;
  text-align: center;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__cta {
  /* Live: gray #787879 fill, 2px solid #C90000 border, radius 5px,
     padding 10px 32px, 18px bold white Montserrat with a hard
     3px 3px 2px #000 text-shadow. */
  display: inline-block;
  padding: 10px 32px;
  border-radius: 5px;
  background: #767677;
  border: 2px solid #c90000;
  color: #ffffff;
  font-family: var(--font-heading, inherit);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0;
  text-shadow: 3px 3px 2px #000000;
  text-decoration: none;
  transition: background 160ms ease, transform 160ms ease;
}
[data-section="roster"][data-variant="h"] .roster-rowcards__cta:hover {
  background: #8a8a8b;
  transform: translateY(-1px);
}

/* ============================================================
   Services — Variant F (name-first column row)
   Single horizontal row of 6 cards. Name on top, tall portrait
   image below, description below the image. No per-card CTA.
   Matches legacy darksidetattoo.com "Featured Tattoo Services".
   ============================================================ */
/* One-to-one with live darksidetattoo.com (GHL generated CSS,
   extracted 2026-07-11): full-width #787879 gray band, white
   text-shadowed heading, service names 20px bold white, images in
   10px-padded #2e2e2e frames, white bold descriptions. */
[data-section="services"][data-variant="f"] {
  background: #767677;
}
[data-section="services"][data-variant="f"] .svc-namecol {
  max-width: var(--theme-content-max-wide, 1400px);
  margin: 0 auto;
  padding: 40px 24px 56px;
}
[data-section="services"][data-variant="f"] .svc-namecol__header {
  text-align: center;
  margin-bottom: 24px;
}
[data-section="services"][data-variant="f"] .svc-namecol__eyebrow {
  /* Live: content font, uppercase, letter-spacing 2px, #C9D8E0. */
  font-family: var(--font-body, inherit);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #ffffff;
  line-height: 2;
  margin-bottom: 4px;
}
[data-section="services"][data-variant="f"] .svc-namecol__heading {
  /* Live: 28px bold white, text-shadow 3px 3px 2px #000, ls -1px. */
  font-family: var(--font-heading, inherit);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -1px;
  margin: 0;
  color: #ffffff;
  text-shadow: 3px 3px 2px #000000;
}
[data-section="services"][data-variant="f"] .svc-namecol__row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
[data-section="services"][data-variant="f"] .svc-namecol__card {
  display: flex;
  flex-direction: column;
  text-align: center;
  gap: 12px;
}
[data-section="services"][data-variant="f"] .svc-namecol__name {
  /* Live: 20px bold white. */
  font-family: var(--font-heading, inherit);
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  padding: 0 4px;
  letter-spacing: -1px;
}
[data-section="services"][data-variant="f"] .svc-namecol__img-wrap {
  /* Live: .image-container { padding: 10px; background: #2e2e2e } —
     same padded-frame treatment as the artist roster. Square corners. */
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  padding: 10px;
  background: #2e2e2e;
  border-radius: 0;
  border: none;
  box-shadow: none;
  box-sizing: border-box;
}
[data-section="services"][data-variant="f"] .svc-namecol__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
[data-section="services"][data-variant="f"] .svc-namecol__desc {
  /* Live: white bold Montserrat, ~14px, line-height 1.5. */
  font-family: var(--font-body, inherit);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: #ffffff;
  margin: 0;
  padding: 0 4px;
}
@media (max-width: 1100px) {
  [data-section="services"][data-variant="f"] .svc-namecol__row {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 640px) {
  [data-section="services"][data-variant="f"] .svc-namecol__row {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ============================================================
   Feature — Variant C (3-image strip + overlay CTA)
   Mirrors legacy darksidetattoo.com "Body Piercing by Melinda OHara":
   centered eyebrow + heading above, 3-image row below, CTA pill
   overlaid on the bottom of the leftmost image.
   ============================================================ */
/* One-to-one with live darksidetattoo.com (GHL generated CSS,
   extracted 2026-07-11): full-width #d9d9d9 light-gray band, white
   text-shadowed heading, images in 10px-padded #636363 frames
   (left 4:3, middle 16:9 unframed + vertically centered, right 3:4
   tall), CTA BELOW the left image — gray fill, 2px red border. */
[data-section="feature"][data-variant="c"] {
  background: #d9d9d9;
}
[data-section="feature"][data-variant="c"] .feature-strip {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 40px 24px 56px;
}
[data-section="feature"][data-variant="c"] .feature-strip__head {
  text-align: center;
  margin-bottom: 28px;
}
[data-section="feature"][data-variant="c"] .feature-strip__eyebrow {
  font-family: var(--font-body, inherit);
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #636363;
  line-height: 2;
  margin-bottom: 4px;
}
[data-section="feature"][data-variant="c"] .feature-strip__heading {
  font-family: var(--font-heading, inherit);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -1px;
  margin: 0;
  color: #ffffff;
  text-shadow: 3px 3px 2px #000000;
}
[data-section="feature"][data-variant="c"] .feature-strip__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: start;
}
[data-section="feature"][data-variant="c"] .feature-strip__col {
  display: flex;
  flex-direction: column;
}
[data-section="feature"][data-variant="c"] .feature-strip__col:nth-child(2) {
  align-self: center;
}
[data-section="feature"][data-variant="c"] .feature-strip__tile {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  padding: 10px;
  background: #5f5f5f;
  border-radius: 0;
  border: none;
  box-sizing: border-box;
}
[data-section="feature"][data-variant="c"] .feature-strip__col:nth-child(2) .feature-strip__tile {
  /* middle slot is the live site's video — wide and unframed */
  aspect-ratio: 16 / 9;
  padding: 0;
  background: transparent;
}
[data-section="feature"][data-variant="c"] .feature-strip__col:nth-child(3) .feature-strip__tile {
  aspect-ratio: 3 / 4;
}
[data-section="feature"][data-variant="c"] .feature-strip__tile img,
[data-section="feature"][data-variant="c"] .feature-strip__tile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Live: gray #787879 fill, 2px solid red border, radius 5px, 22px/600
   white with 2px 2px 2px #000 text-shadow, sits below the left image. */
[data-section="feature"][data-variant="c"] .feature-strip__cta {
  align-self: flex-start;
  margin-top: 28px;
  padding: 8px 16px;
  background: #767677;
  border: 2px solid #e93d3d;
  color: #ffffff;
  font-family: var(--font-heading, inherit);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0;
  text-shadow: 2px 2px 2px #000000;
  text-decoration: none;
  border-radius: 5px;
  text-align: center;
  transition: background 160ms ease, transform 160ms ease;
}
[data-section="feature"][data-variant="c"] .feature-strip__cta:hover {
  background: #8a8a8b;
  transform: translateY(-1px);
}
@media (max-width: 720px) {
  [data-section="feature"][data-variant="c"] .feature-strip__row {
    grid-template-columns: 1fr;
  }
  [data-section="feature"][data-variant="c"] .feature-strip__cta {
    font-size: 18px;
  }
}

/* ============================================================
   Footer — Variant F (Legacy 4-col directory)
   Mirrors darksidetattoo.com's footer: 4 directory columns
   (COMPANY / CUSTOMER CARE / INFO / LEGAL), brand block below,
   bottom copyright bar.
   ============================================================ */
[data-section="footer"][data-variant="f"] .footer-directory {
  /* One-to-one with live darksidetattoo.com footer (2026-07-11):
     #D9D9D9 light-gray band, near-black #000321 headings/links. */
  background: #d9d9d9;
  border-top: none;
  padding: 40px 32px 20px;
  color: #1a1a1a;
}
[data-section="footer"][data-variant="f"] .footer-directory__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto 48px;
}
[data-section="footer"][data-variant="f"] .footer-directory__col {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
[data-section="footer"][data-variant="f"] .footer-directory__heading {
  /* Live: 17px/600 headline font, #000321. */
  font-family: var(--font-heading, inherit);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: uppercase;
  color: #000321;
  margin: 0;
}
[data-section="footer"][data-variant="f"] .footer-directory__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
[data-section="footer"][data-variant="f"] .footer-directory__list a {
  font-family: var(--font-body, inherit);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #000321;
  text-decoration: none;
  transition: color 160ms ease;
}
[data-section="footer"][data-variant="f"] .footer-directory__list a:hover {
  color: #c90000;
}

/* Brand block — centered logo / wordmark + NAP + socials */
[data-section="footer"][data-variant="f"] .footer-directory__brand {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto 28px;
  padding-top: 28px;
  border-top: 1px solid rgba(0, 0, 0, 0.15);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 16px;
}
[data-section="footer"][data-variant="f"] .footer-directory__logo {
  max-height: 80px;
  width: auto;
}
[data-section="footer"][data-variant="f"] .footer-directory__wordmark {
  font-family: var(--font-heading, inherit);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #000321;
}
[data-section="footer"][data-variant="f"] .footer-directory__nap {
  font-style: normal;
  font-family: var(--font-body, inherit);
  font-size: 13px;
  line-height: 1.7;
  color: #1a1a1a;
}
[data-section="footer"][data-variant="f"] .footer-directory__nap a {
  color: inherit;
  text-decoration: none;
}
[data-section="footer"][data-variant="f"] .footer-directory__nap a:hover {
  color: #c90000;
}
[data-section="footer"][data-variant="f"] .footer-directory__hours {
  margin-top: 6px;
  font-size: 12px;
  color: #1a1a1a;
}
[data-section="footer"][data-variant="f"] .footer-directory__hours-label {
  font-weight: 600;
}

/* Socials row — small circular pills */
[data-section="footer"][data-variant="f"] .footer-directory__socials {
  display: flex;
  gap: 12px;
  margin-top: 4px;
}
[data-section="footer"][data-variant="f"] .footer-directory__social {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #2e2e2e;
  color: #ffffff;
  font-family: var(--font-body, inherit);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background 160ms ease;
}
[data-section="footer"][data-variant="f"] .footer-directory__social:hover {
  background: #c90000;
  color: #ffffff;
}

/* Bottom bar — copyright + powered by */
[data-section="footer"][data-variant="f"] .footer-directory__bar {
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding-top: 20px;
  border-top: 1px solid rgba(0, 0, 0, 0.15);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--font-body, inherit);
  font-size: 12px;
  color: #1a1a1a;
}
[data-section="footer"][data-variant="f"] .footer-directory__powered {
  opacity: 0.75;
}
[data-section="footer"][data-variant="f"] .footer-directory__powered a {
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}
[data-section="footer"][data-variant="f"] .footer-directory__powered a:hover {
  text-decoration: underline;
}
[data-section="footer"][data-variant="f"] .footer-directory__bar a {
  color: inherit;
  text-decoration: none;
}
[data-section="footer"][data-variant="f"] .footer-directory__bar a:hover {
  color: #c90000;
}

@media (max-width: 900px) {
  [data-section="footer"][data-variant="f"] .footer-directory__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}
@media (max-width: 540px) {
  [data-section="footer"][data-variant="f"] .footer-directory__grid {
    grid-template-columns: 1fr;
  }
  [data-section="footer"][data-variant="f"] .footer-directory__bar {
    flex-direction: column;
    text-align: center;
  }
}

/* GBP testimonials Phase 2 — author avatar + via-Google source marker (display-only) */
.testi-card__avatar,.testi-single__avatar,.testi-google__avatar,.testi-float__avatar,.testi-type__avatar{border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:8px}
.testi-card__src,.testi-single__src,.testi-google__src,.testi-float__src,.testi-type__src{color:var(--muted);font-size:.85em}

/* Testimonials F/G/H — DELIBERATE bare-class blocks, not variant-scoped.
   These three ship one root class each (.testi-bar / .testi-strip / the
   ReviewPopup classes) with no [data-section][data-variant] prefix. The
   classes are unique to their variant so there is no collision risk; a
   per-variant CSS *presence* sweep must treat these as covered (2026-08-06
   audit F-6 — the sweep false-alarmed on them once already). */
/* Variant F — static featured-quote bar */
.testi-bar{max-width:880px;margin:0 auto;padding:32px 24px;text-align:center}
.testi-bar__item{margin:0}
.testi-bar__quote{font-size:1.25rem;line-height:1.5;font-style:italic;margin:0 0 12px}
.testi-bar__attr{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}
.testi-bar__avatar{border-radius:50%;object-fit:cover}
.testi-bar__stars{color:#f5b301}
.testi-bar__src{opacity:.65;font-size:.85em}

/* Variant G — horizontal scrolling strip */
.testi-strip{padding:24px 0}
.testi-strip__track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 24px;-webkit-overflow-scrolling:touch}
.testi-strip__item{scroll-snap-align:start;flex:0 0 300px;background:rgba(127,127,127,.06);border:1px solid rgba(127,127,127,.18);border-radius:10px;padding:16px;margin:0}
.testi-strip__stars{color:#f5b301;font-size:.9em}
.testi-strip__quote{font-size:.95rem;line-height:1.45;margin:8px 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.testi-strip__attr{display:flex;gap:6px;align-items:center;font-size:.85em}
.testi-strip__avatar{border-radius:50%;object-fit:cover}
.testi-strip__src{color:color-mix(in srgb, var(--muted) 75%, var(--text))}
.ti-pop{position:fixed;bottom:20px;left:20px;z-index:60}
.ti-pop__badge{display:flex;gap:6px;align-items:center;background:#fff;color:#222;border:1px solid rgba(0,0,0,.15);border-radius:24px;padding:8px 14px;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;font:inherit}
.ti-pop__stars{color:#f5b301}
.ti-pop__num{font-weight:700}
.ti-pop__count{opacity:.7;font-size:.85em}
.ti-pop__panel{position:absolute;bottom:52px;left:0;width:340px;max-height:60vh;overflow-y:auto;background:#fff;color:#222;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.3);padding:16px}
.ti-pop__close{position:absolute;top:8px;right:10px;border:none;background:none;font-size:20px;cursor:pointer;color:#666}
.ti-pop__item{padding:12px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.ti-pop__head{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.ti-pop__avatar{border-radius:50%;object-fit:cover}
.ti-pop__meta{display:flex;gap:8px;font-size:.8em}
.ti-pop__istars{color:#f5b301}
.ti-pop__date{opacity:.6}
.ti-pop__text{font-size:.9rem;line-height:1.45;margin:0}
@media(max-width:480px){.ti-pop__panel{width:calc(100vw - 40px)}}
.about-src{opacity:.55;font-size:.8em;font-style:normal}
.amen-bar{padding:20px 24px;text-align:center}
.amen-bar__list{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;list-style:none;margin:0;padding:0}
.amen-bar__item{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;opacity:.85}
.amen-bar__dot{color:#3aa757;font-weight:700}

/* =====================================================================
   UNLAYERED ON PURPOSE — do not move this inside `@layer section`.

   Everything above lives in `@layer section`, and the app's global
   stylesheet (Tailwind preflight, emitted by app/layout.tsx) is UNLAYERED
   and contains:

       img, video { max-width: 100%; height: auto }

   In the CSS cascade an unlayered declaration beats a layered one no matter
   how specific the layered selector is. So preflight's `height: auto` was
   silently winning over every image height in this file — 24 rules across
   nav logos, hero slides, gallery tiles, roster cards and feature strips.
   Visible symptom: a tenant with a logo got it rendered at full intrinsic
   size in the nav (jleifeste-art, operator screenshot 2026-07-26 — a 320x320
   logo filling the header on iPad Safari).

   `revert-layer` in an unlayered rule rolls the property back to the value
   the layered cascade would have produced, which restores all of them with
   one line. Images with no layered height rule fall back to `auto`, exactly
   as before, so this is not a behaviour change for anything else.
   ===================================================================== */
[data-section] img { height: revert-layer; }

/* ---------------------------------------------------------------------
   Belt and braces for nav logos, because `revert-layer` above is NEWER
   than `@layer` itself: Safari shipped @layer in 15.4 but revert-layer
   only in 16.4. On an iPad in that window the layered rules apply, the
   revert-layer fix is dropped as invalid, and a logo goes back to full
   intrinsic size — which is what the operator kept seeing after the first
   fix shipped.

   `max-height` is universally supported and preflight sets no max-height,
   so nothing can override these. They mirror the `height` values in the
   layer above — CHANGE BOTH IF YOU CHANGE EITHER.

   The bare [data-section="nav"] img ceiling catches any variant added
   later that forgets a cap; the per-variant rules are more specific and
   win where they exist.
   --------------------------------------------------------------------- */
[data-section="nav"] img { max-height: 80px; width: auto; }
[data-section="nav"][data-variant="b"] .nav-lc__logo { max-height: 40px; }
[data-section="nav"][data-variant="c"] .nav-hb__logo { max-height: 36px; }
[data-section="nav"][data-variant="f"] .nav-tze__brand img { max-height: 30px; }
[data-section="nav"][data-variant="g"] .nav-bzc__brand img { max-height: 30px; }
[data-section="nav"][data-variant="h"] .nav-sb__logo { max-height: 64px; }
[data-section="nav"][data-variant="i"] .nav-sbog__logo { max-height: 80px; }
[data-section="nav"][data-variant="j"] .nav-dd__brand img { max-height: 40px; }


/* ============================================================
   Footer location map — shared across every footer variant
   (operator 2026-08-03: "all footers should include maps!").
   Rendered by components/themes/sections/Footer/FooterMap.tsx,
   which returns null when the tenant has no usable address, so
   this never styles an empty box.
   ============================================================ */
[data-section="footer"] .footer-map {
  width: 100%;
  margin: 0 0 28px;
  border-radius: 6px;
  overflow: hidden;
  /* The embed is a third-party white iframe. On the dark footers that
     lands as a bright slab, so knock it back slightly and let it come
     up to full on hover/focus-within for anyone actually using it. */
  filter: saturate(0.9) contrast(0.95);
  transition: filter 0.2s ease;
}
[data-section="footer"] .footer-map:hover,
[data-section="footer"] .footer-map:focus-within {
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  [data-section="footer"] .footer-map { transition: none; }
}

/* ---------------------------------------------------------------------------
   MediaBadge overlays (video ▶ / carousel slide-count) — the badge positions
   itself absolutely inside the tile, so every gallery-variant tile box must
   be a positioning context. A/B/C/D/F already carry position: relative in
   their own blocks; these are the ones that didn't (2026-08-06).
--------------------------------------------------------------------------- */
[data-section="gallery"][data-variant="e"] .gallery-stagger .gallery__tile,
[data-section="gallery"][data-variant="g"] .gallery-portrait-tile__img-wrap,
[data-section="gallery"][data-variant="h"] .gallery-per-artist__thumb {
  position: relative;
}

/* ============================================================
   Amenities — Variant A (amen-bar)
   Slim single-row badge strip: GBP accessibility + payment
   attributes as checkmarked pills. Sat completely unstyled from
   its landing until the 2026-08-06 section audit (F-3) — the
   classes existed in the component and nowhere else, so it
   rendered as a browser-default bulleted list. Theme tokens
   only; sits on --section-bg like every other slot.
   ============================================================ */
[data-section="amenities"] .amen-bar {
  padding: 20px 24px;
}
[data-section="amenities"] .amen-bar__list {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 1100px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 14px;
}
[data-section="amenities"] .amen-bar__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--text);
  background: color-mix(in srgb, var(--bg-mid) 60%, transparent);
  white-space: nowrap;
}
[data-section="amenities"] .amen-bar__dot {
  color: var(--accent-text);
  font-size: 11px;
  line-height: 1;
}
@media (max-width: 540px) {
  [data-section="amenities"] .amen-bar { padding: 14px 16px; }
  [data-section="amenities"] .amen-bar__item { font-size: 12px; padding: 6px 11px; }
}

/* ============================================================
   Services — Variant G (services-style-index)
   Dense numbered INDEX for style taxonomies: 3-col rows of
   name + one clamped description line, thin rules between rows.
   Built for 15-28 entries, where the card variants fall apart
   (modeled on the alohatattoos.net style index, 2026-08-17).
   Fully token-driven — no hardcoded colors.
   ============================================================ */
[data-section="services"][data-variant="g"] .svc-index {
  padding: 80px 56px;
  background: var(--section-bg);
}
[data-section="services"][data-variant="g"] .svc-index__header {
  text-align: center;
  margin-bottom: 48px;
}
[data-section="services"][data-variant="g"] .svc-index__eyebrow {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}
[data-section="services"][data-variant="g"] .svc-index__heading {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 36px;
  letter-spacing: 0.04em;
  color: var(--text);
  margin: 0;
}
[data-section="services"][data-variant="g"] .svc-index__grid {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  max-width: 1200px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 48px;
}
[data-section="services"][data-variant="g"] .svc-index__item {
  display: flex;
  gap: 14px;
  align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--rule);
}
[data-section="services"][data-variant="g"] .svc-index__num {
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--accent);
  flex-shrink: 0;
  min-width: 22px;
}
[data-section="services"][data-variant="g"] .svc-index__name {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: var(--text);
  margin: 0 0 4px;
}
[data-section="services"][data-variant="g"] .svc-index__desc {
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.55;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 1024px) {
  [data-section="services"][data-variant="g"] .svc-index { padding: 64px 32px; }
  [data-section="services"][data-variant="g"] .svc-index__grid { grid-template-columns: repeat(2, 1fr); column-gap: 36px; }
}
@media (max-width: 640px) {
  [data-section="services"][data-variant="g"] .svc-index { padding: 48px 20px; }
  [data-section="services"][data-variant="g"] .svc-index__heading { font-size: 28px; }
  [data-section="services"][data-variant="g"] .svc-index__grid { grid-template-columns: 1fr; }
  [data-section="services"][data-variant="g"] .svc-index__item { padding: 14px 0; }
}

/* ============================================================
   Hero — Variant N (collage wave)
   Full-bleed photo; left-aligned uppercase type stack (two-tone
   tagline, rules, kicker, giant accent name, right-aligned
   underlined location); accent wave divider cut into the bottom
   edge. Squarespace fluid-engine port (Aloha, 2026-08-17).
   Token-driven throughout.
   ============================================================ */
[data-section="hero"][data-variant="n"] .hero-collage {
  position: relative;
  min-height: 88vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--bg);
}
[data-section="hero"][data-variant="n"] .hero-collage__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
[data-section="hero"][data-variant="n"] .hero-collage__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--bg) 55%, transparent) 0%,
    color-mix(in srgb, var(--bg) 30%, transparent) 55%,
    color-mix(in srgb, var(--bg) 65%, transparent) 100%
  );
}
[data-section="hero"][data-variant="n"] .hero-collage__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--theme-content-max, 1200px);
  margin: 0 auto;
  padding: 140px 32px 160px;
}
[data-section="hero"][data-variant="n"] .hero-collage__tagline {
  font-family: var(--font-body);
  font-size: clamp(15px, 2.4vw, 22px);
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 18px;
}
[data-section="hero"][data-variant="n"] .hero-collage__tw--accent {
  color: var(--accent);
}
[data-section="hero"][data-variant="n"] .hero-collage__rule {
  height: 2px;
  background: var(--text);
  opacity: 0.85;
  margin: 22px 0;
}
[data-section="hero"][data-variant="n"] .hero-collage__rule--accent {
  background: var(--accent);
  opacity: 1;
}
[data-section="hero"][data-variant="n"] .hero-collage__kicker {
  font-family: var(--font-body);
  font-size: clamp(13px, 1.8vw, 18px);
  font-weight: 400;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 10px;
}
[data-section="hero"][data-variant="n"] .hero-collage__name {
  font-family: var(--font-display);
  font-size: clamp(44px, 9vw, 112px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0;
  overflow-wrap: break-word;
}
[data-section="hero"][data-variant="n"] .hero-collage__loc {
  font-family: var(--font-body);
  font-size: clamp(18px, 3vw, 30px);
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text);
  text-align: right;
  text-decoration: underline;
  text-underline-offset: 6px;
  text-decoration-thickness: 1px;
  margin: 0;
}
[data-section="hero"][data-variant="n"] .hero-collage__wave {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px; /* overlap the section seam so no hairline shows */
  width: 100%;
  height: clamp(48px, 8vw, 100px);
  z-index: 3;
  display: block;
}
@media (max-width: 640px) {
  [data-section="hero"][data-variant="n"] .hero-collage { min-height: 92vh; }
  [data-section="hero"][data-variant="n"] .hero-collage__content { padding: 110px 20px 130px; }
  [data-section="hero"][data-variant="n"] .hero-collage__rule { margin: 16px 0; }
}
