/* ============================================================
   LAST DANCE IT — page shell (Phase-2 scaffold)
   EMPTY scoped scaffold. Applies the SHARED shell ONLY:
   canonical tokens, light page ground, page width, inter-section
   spacing. NO section-specific design, no content, no components.
   Wrapper scope: #lp-last-dance-it (dir=rtl) — WordPress-safe
   (everything namespaced; no global bare-tag selectors).
   Tokens below = the canonical brand/tokens.css :root block,
   inlined verbatim and scoped here per SHELL.md §1.
   ============================================================ */

/* — Canonical Zuzy tokens — the FULL design-system contract, scoped.
   Inlined from design-system/styles.css's @import chain (tokens/colors ·
   typography · spacing · shape) so every --zuzy-* a DS .zz-* class or a
   folded section references resolves in-page. Values verbatim; warm STONE
   neutrals (never slate); one easeInOut curve. (DS fonts.css → the <link>
   in index.html, which now loads IBM Plex Sans Hebrew + Mono.) — */
#lp-last-dance-it {
  /* Brand */
  --zuzy-purple: #8b5cf6;     --zuzy-purple-600: #7c3aed;
  --zuzy-teal: #14b8a6;       --zuzy-teal-600: #0d9488;
  --zuzy-ink: #342e4c;        --zuzy-ink-2: #211d33;

  /* Warm "stone" neutral ramp — CANONICAL (steps 300/500/700/800 absent) */
  --zuzy-stone-50:  #fdfcff;
  --zuzy-stone-100: #f7f5fc;
  --zuzy-stone-200: #ddd8eb;
  --zuzy-stone-400: #c4bdd7;
  --zuzy-stone-600: #9b94ae;
  --zuzy-stone-900: #1a181e;

  /* Neutrals (light mode) — point at the stone ramp */
  --zuzy-fg: var(--zuzy-stone-900);
  --zuzy-muted: var(--zuzy-stone-600);
  --zuzy-stone-700: #67617d;
  --zuzy-muted-text: var(--zuzy-stone-700); /* secondary/body text on light — AA (brand tokens.css 2026-07-03) */
  --zuzy-bg: var(--zuzy-stone-50);
  --zuzy-surface: var(--zuzy-stone-100);
  --zuzy-line: rgba(26, 24, 30, .08);

  /* Dark mode — tinted surfaces (never near-black) */
  --zuzy-surface-dark-1: #131216;
  --zuzy-surface-dark-2: #19181d;
  --zuzy-surface-dark-3: #28272d;
  --zuzy-bg-dark: var(--zuzy-surface-dark-1);
  --zuzy-card-dark: var(--zuzy-surface-dark-2);
  --zuzy-text-dark: #fdfcff;
  --zuzy-line-dark: rgba(253, 252, 255, .10);   

  /* Status palette — UI badges/toasts ONLY */
  --zuzy-status-success: #10b981;
  --zuzy-status-warning: #f59e0b;
  --zuzy-status-error: #ef4444;
  --zuzy-status-info: #3b82f6;

  /* Data-viz palette (chart semantics only — page charts use the
     LOCKED #7C3AED→#49F5F4 ramp, not these; kept for token parity) */
  --zuzy-viz-red: #ff6384;
  --zuzy-viz-blue: #36a2eb;
  --zuzy-viz-yellow: #ffcd56;
  --zuzy-viz-teal: #4bc0c0;
  --zuzy-viz-purple: #9966ff;
  --zuzy-viz-orange: #ff9f40;
  --zuzy-viz-grey: #c9cbcf;

  /* Logo spot colors — artwork keeps its OWN colors (never recolor to UI purple) */
  --zuzy-logo-indigo: #342e4c;
  --zuzy-logo-purple: #664bd6;

  /* Typography — families */
  --zuzy-font: "IBM Plex Sans Hebrew", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --zuzy-font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace;

  /* Typography — weights (DS; consumed by many .zz-* + folded sections) */
  --zuzy-weight-light: 300;
  --zuzy-weight-regular: 400;
  --zuzy-weight-medium: 500;
  --zuzy-weight-semibold: 600;
  --zuzy-weight-bold: 700;

  /* Typography — type scale (font-size / line-height) */
  --zuzy-text-h1: 30px;      --zuzy-leading-h1: 36px;
  --zuzy-text-h2: 24px;      --zuzy-leading-h2: 32px;
  --zuzy-text-h3: 20px;      --zuzy-leading-h3: 28px;
  --zuzy-text-body: 16px;    --zuzy-leading-body: 24px;
  --zuzy-text-sm: 14px;      --zuzy-leading-sm: 20px;
  --zuzy-text-caption: 12px; --zuzy-leading-caption: 16px;

  /* Typography — tracking + long-form leading */
  --zuzy-tracking-heading: -0.02em;
  --zuzy-tracking-normal: 0;
  --zuzy-leading-prose: 1.7;

  /* Spacing scale */
  --zuzy-space-xs: 4px;   --zuzy-space-sm: 8px;   --zuzy-space-md: 16px;
  --zuzy-space-lg: 24px;  --zuzy-space-xl: 32px;  --zuzy-space-2xl: 48px;

  /* Shape */
  --zuzy-radius-card: 12px;
  --zuzy-radius-input: 8px;
  --zuzy-radius-btn: 10px;
  --zuzy-radius-pill: 999px;
  --zuzy-radius-email-cta: 20px;

  /* Elevation — purple-tinted */
  --zuzy-shadow: 0 1px 2px rgba(52, 46, 76, .06), 0 10px 30px rgba(139, 92, 246, .10);
  --zuzy-shadow-lg: 0 8px 24px rgba(139, 92, 246, .16), 0 30px 60px rgba(52, 46, 76, .16);
  --zuzy-ring: 0 0 0 3px rgba(139, 92, 246, .20);

  /* Glow — the "glowing data point" aesthetic */
  --zuzy-glow-purple: drop-shadow(0 0 2px rgba(139, 92, 246, .15));
  --zuzy-glow-purple-strong: drop-shadow(0 0 6px rgba(139, 92, 246, .5));
  --zuzy-glow-teal: drop-shadow(0 0 2px rgba(20, 184, 166, .15));
  --zuzy-glow-teal-strong: drop-shadow(0 0 6px rgba(20, 184, 166, .5));

  /* Gradient + motion — the ONE Zuzy curve (easeInOut) + its durations.
     (Sections reference --zuzy-dur-enter/.stagger/.dur-hover bare; defining
     them here makes those refs valid — DONE.md §4 flag.) */
  --zuzy-grad: linear-gradient(135deg, var(--zuzy-purple), var(--zuzy-teal));
  --zuzy-ease: cubic-bezier(.42, 0, .58, 1);
  --zuzy-dur-hover: .18s;
  --zuzy-dur-enter: .5s;
  --zuzy-stagger: .1s;

  /* Page-local vars (un-prefixed, allowed per SHELL §1) */
  --maxw: 1200px;
  --composition: 1760px;   /* Width Law v2.1: uniform content-composition cap (Gil: bounded, not stretched) */
  --wa: #1E874B;                              /* WhatsApp green (§13/footer) */
  --on-dark: #fdfcff;                         /* on-dark neutral tints (§7/footer) */
  --on-dark-muted: rgba(253, 252, 255, .72);
  --on-dark-dim: rgba(253, 252, 255, .55);
  --foot-hairline: rgba(253, 252, 255, .08);
}

/* ============================================================
   SHARED SHELL
   ============================================================ */

/* Standalone reset — this file ships as a full HTML document (Vercel deploy /
   preview), so zero the UA body margin that would otherwise leave an 8px white
   gutter around the full-bleed dark bands, marquees & footer. When the page is
   inlined into a WordPress page at packaging the theme owns body margin and the
   #lp-last-dance-it scoping is the WP-safe form — this one reset is dropped there. */
html, body { margin: 0; }

/* Box model — wrapper-scoped (no global bare-tag selectors) */
#lp-last-dance-it,
#lp-last-dance-it *,
#lp-last-dance-it *::before,
#lp-last-dance-it *::after { box-sizing: border-box; }

/* Page ground — LIGHT per SHELL.md (gate decision) */
#lp-last-dance-it {
  margin: 0;
  min-height: 100vh;
  background: var(--zuzy-bg);
  color: var(--zuzy-fg);
  font-family: var(--zuzy-font);
  font-weight: 400;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Page width — shared content measure (SHELL §3) */


/* Width Law v2 (SHELL §3, Gil 2026-07-02) — full-bleed shell: content anchors at the
   fluid edge gutter (§6 reference). Elements keep their size; space absorbs the extra. */
#lp-last-dance-it .lp__wide {
  width: 100%;
  max-width: var(--composition);   /* content never stretches with the section (Law v2.1) */
  margin-inline: auto;
  padding-inline: clamp(24px, 5vw, 172px);
}

/* Inter-section vertical rhythm — ONE source of truth (G-RHYTHM Phase 1; G-WHITE R2).
   MODEL: --lp-rhythm is the GAP between two adjacent sections (one boundary). Each
   section pads HALF of it per block side (--lp-band), so two adjacent halves meet as
   exactly one --lp-rhythm gap. This collapses the R1 boundary-DOUBLING (every flow↔flow
   boundary was 2×--lp-rhythm ≈ 308px @1280 / 192px @390 — the "excess white" P1 flagged
   at §2/§5/§7/§8/§9/§12) into one calm, uniform gap page-wide, WITHOUT per-section hacks.
   Quiet strips (certs §2) use --lp-rhythm-quiet per side; the two filled 100vh sections
   (§1 hero, §6 why-us) opt out via .lp__section--filled (padding-block:0), so a
   filled↔flow boundary is one half-band (the flow neighbour only) — deliberately tighter,
   as immersive full-bleed blocks butt closer to their neighbours (the R1 ratio, preserved).
   --lp-rhythm keeps the SHELL §3 / it-services-v2 magnitude; only its APPLICATION changed
   (per-side = half), centralized so it can never drift section-by-section. */
#lp-last-dance-it {
  --lp-rhythm: clamp(4.25rem, 8vw, 7.5rem);       /* the GAP between two sections (tightened page-wide, Gil 2026-07-03: was 6–11rem) */
  --lp-band: calc(var(--lp-rhythm) / 2);          /* per-side padding; two halves = one --lp-rhythm gap */
  --lp-rhythm-quiet: clamp(2.4rem, 5vw, 3.4rem);  /* quiet strip (§2), per side */
}
#lp-last-dance-it .lp__section {
  padding-block: var(--lp-band);
  scroll-margin-top: 84px;   /* fixed-header offset (SHELL §3/§9) */
}

/* ============================================================
   Announcement ticker (finished asset) — hover/motion rules,
   verbatim from sections/ZUZY Announcement Bar.dc.html, scoped.
   (--zuzy-dur-hover not in tokens → its .18s fallback applies.)
   ============================================================ */
#lp-last-dance-it .zbar { transition: background-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease); }
#lp-last-dance-it .zbar:hover { background: #FFB300; }
#lp-last-dance-it .zbar:hover .zbar-chev { transform: translateX(-3px); }
#lp-last-dance-it .zbar-chev { transition: transform var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease); }
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .zbar, #lp-last-dance-it .zbar-chev { transition: none; }
  #lp-last-dance-it .zbar:hover .zbar-chev { transform: none; }
}

/* ============================================================
   Embedded finished asset (Claude Design standalone bundle).
   Isolated iframe = byte-for-byte fidelity + zero style bleed
   (the most WP-safe integration). §1 Hero only — §6 Why-us was
   de-iframed to run natively off the PAGE scroll (a pinned
   scroll-jack cannot work inside an iframe); see §6 block below.
   ============================================================ */
#lp-last-dance-it .lp__section--filled { padding-block: 0; }
/* ============================================================
   §1 · HERO — NATIVE (Step A transplant, 2026-07-02). De-iframed:
   markup re-authored from the bundle's decoded template into the page
   (sections/hero.standalone.html = reference only, no longer loaded).
   Visual styling rides the markup's inline styles as designed; here live
   the class rules, zh-prefixed keyframes (WP-safe), responsive rules and
   reduced-motion. Certs are normal in-flow imgs in the design's own slots
   (the old absolute overlay + iframe height machinery are deleted).
   ============================================================ */
#lp-last-dance-it #sec-1 { position: relative; background: var(--zuzy-surface-dark-1); }
#lp-last-dance-it .zhero-root,
#lp-last-dance-it .zhero-root * { box-sizing: border-box; }
#lp-last-dance-it .zhero-root h1, #lp-last-dance-it .zhero-root p, #lp-last-dance-it .zhero-root span { margin: 0; }
#lp-last-dance-it .zhero-grain { background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='150'%20height='150'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='.8'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'%20opacity='.85'/%3E%3C/svg%3E"); background-size: 150px 150px; }
#lp-last-dance-it .zhero-nav a { transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease); }
#lp-last-dance-it .zhero-nav a:hover { color: #fff !important; }
@media (max-width: 860px) {
  #lp-last-dance-it .zhero-in { flex-direction: column !important; gap: 36px !important; padding-top: 24px !important; }
  #lp-last-dance-it .zhero-nav { display: none !important; }
  #lp-last-dance-it .zhero-reserved { align-self: center !important; min-height: 0 !important; padding-inline-start: 0 !important; }
  #lp-last-dance-it .zhero-reserved svg { max-height: 440px !important; }
  #lp-last-dance-it .zhero-h1 { font-size: 40px !important; }
}
/* narrow phones: the 4 cert slots may wrap instead of overflowing (invisible ≥480px) */
@media (max-width: 480px) {
  #lp-last-dance-it .zhero-certrow { flex-wrap: wrap !important; }
}
@keyframes zh-hrise { from { transform: translateY(16px); } to { transform: none; } }
@keyframes zh-hdrift1 { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(20px, -24px); } }
@keyframes zh-hcue { 0%, 100% { transform: translate(-50%, 0); opacity: .45; } 50% { transform: translate(-50%, 6px); opacity: .85; } }
@keyframes zh-fadeOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes zh-drawIn { from { stroke-dashoffset: 1; opacity: 0; } to { stroke-dashoffset: 0; opacity: 1; } }
@keyframes zh-flowA { from { stroke-dashoffset: -64; } to { stroke-dashoffset: 0; } }
@keyframes zh-flowB { from { stroke-dashoffset: -74; } to { stroke-dashoffset: 0; } }
@keyframes zh-flowC { from { stroke-dashoffset: 0; } to { stroke-dashoffset: 59; } }
@keyframes zh-donutFill { from { stroke-dasharray: 0 125; } to { stroke-dasharray: 90 125; } }
@keyframes zh-blinkTeal { 0%, 100% { opacity: .1; } 50% { opacity: 1; } }
@keyframes zh-blinkBlue { 0%, 100% { opacity: .2; } 50% { opacity: 1; } }
@keyframes zh-spin { to { transform: rotate(360deg); } }
@keyframes zh-spinRev { to { transform: rotate(-360deg); } }
@keyframes zh-shieldDash { from { stroke-dashoffset: 0; } to { stroke-dashoffset: 32; } }
@keyframes zh-shieldGlow { 0% { opacity: 0; } 50% { opacity: .25; } 100% { opacity: 0; } }
@keyframes zh-anomalyOn { 0% { opacity: 0; } 40% { opacity: 0; } 42% { opacity: 1; } 50% { opacity: 1; } 55% { opacity: 0; } 100% { opacity: 0; } }
@keyframes zh-anomalyGlow { 0% { opacity: 0; } 40% { opacity: 0; } 42% { opacity: .25; } 50% { opacity: .25; } 55% { opacity: 0; } 100% { opacity: 0; } }
@keyframes zh-flashOn { 0% { opacity: 0; } 50% { opacity: 0; } 55% { opacity: .85; } 60% { opacity: 0; } 100% { opacity: 0; } }
@keyframes zh-healPulse { 0% { opacity: 0; stroke-dashoffset: 1; } 46% { opacity: 0; stroke-dashoffset: 1; } 47% { opacity: 1; } 50% { opacity: 1; stroke-dashoffset: 0; } 52% { opacity: .6; stroke-dashoffset: -.15; } 53% { opacity: 0; stroke-dashoffset: -.15; } 100% { opacity: 0; stroke-dashoffset: -.15; } }
@keyframes zh-humanPulse { 0% { opacity: 0; transform: scale(.8); } 44% { opacity: 0; transform: scale(.8); } 47% { opacity: 1; transform: scale(1.3); } 55% { opacity: 0; transform: scale(.8); } 100% { opacity: 0; transform: scale(.8); } }
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it #sec-1 [data-rise], #lp-last-dance-it #sec-1 [data-float], #lp-last-dance-it #sec-1 [data-cue] { animation: none !important; }
  #lp-last-dance-it .zhero-anim * { animation: none !important; }
}

/* ============================================================
   §6 "Why-us" — native pinned snake-timeline (DE-IFRAMED).
   Re-authored from the finished Claude Design bundle
   (sections/why-us.standalone.html + .dc.html — kept as the
   source of truth) as scoped, WP-safe vanilla so the pin runs
   off the PAGE scroll. Visuals / animation / progress preserved
   exactly; copy bound to content.md §6 (the real 8 reasons).
   Two states, switched by JS (see the inline driver in index.html):
     • default  (no-JS / reduced-motion / mobile) → static stacked
       grid, all 8 reasons shown — the bundle's own mobile branch.
     • .is-why-pinned (added on desktop ≥760 + motion-OK) → the
       pinned 100vh snake-timeline. JS owns positions; CSS owns the
       node active-state transitions (the single brand ease curve).
   ============================================================ */

/* — Shared base (both states): typography + colours, verbatim from the bundle — */
#lp-last-dance-it .lp__why {
  font-family: var(--zuzy-font);
  color: #0f172a;
  background: linear-gradient(180deg, #faf9ff, #f4f2fb);
}
#lp-last-dance-it .lp__why-kicker {
  color: #8b5cf6; font-weight: 600; font-size: 14px;
  letter-spacing: .06em; margin-bottom: 12px;
}
#lp-last-dance-it .lp__why-h2 {
  margin: 0; font-size: clamp(26px, 3vw, 40px); font-weight: 700;
  line-height: 1.14; letter-spacing: -.02em; color: #342e4c;
}
#lp-last-dance-it .lp__why-node-title {
  font-weight: 700; font-size: 18px; color: #342e4c;
  margin-bottom: 7px; line-height: 1.25;
}
#lp-last-dance-it .lp__why-node-desc {
  font-weight: 400; font-size: 14.5px; color: #64748b; line-height: 1.7;
}
#lp-last-dance-it .lp__why-circle {           /* base geometry, both states */
  width: 60px; height: 60px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
}
/* rail children (only ever visible in the pinned state) */
#lp-last-dance-it .lp__why-rail-bg {
  position: absolute; inset: 0; background: rgba(52,46,76,.14); border-radius: 2px;
}
#lp-last-dance-it .lp__why-rail-fill {
  position: absolute; left: 0; top: 0; width: 2px;
  background: #8b5cf6; border-radius: 2px;        /* height set by JS */
  transition: height .18s linear;
}
#lp-last-dance-it .lp__why-rail-dot {
  position: absolute; left: 50%; width: 11px; height: 11px; border-radius: 50%;
  background: #8b5cf6; transform: translate(-50%, -50%);  /* top set by JS */
  box-shadow: 0 0 0 4px rgba(139,92,246,.18);
  transition: top .18s linear;
}
#lp-last-dance-it .lp__why-rail-num {
  position: absolute; right: 9px; font-size: 13px; font-weight: 500;
  font-family: "IBM Plex Mono", monospace;
}
#lp-last-dance-it .lp__why-rail-num--top { top: -27px;  color: #342e4c; }
#lp-last-dance-it .lp__why-rail-num--bot { bottom: -27px; color: #94a3b8; }
#lp-last-dance-it .lp__why-path-fill { transition: stroke-dashoffset .2s linear; }

/* — Default / fallback state: static stacked grid (no-JS, reduced-motion, mobile) — */
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-track  { position: relative; }
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-stage  { position: static; overflow: visible; }
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-lift {
  display: grid; grid-template-columns: 1fr 1fr; gap: 30px 18px;
  padding: 30px 20px 42px; max-width: 620px; margin: 0 auto;
}
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-header {
  grid-column: 1 / -1; text-align: right; margin-bottom: 4px;
}
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-path,
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-watermark,
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-rail { display: none; }
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-node {
  display: flex; flex-direction: column; align-items: flex-start;
}
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-circle {
  background: #8b5cf6; color: #fff; box-shadow: 0 12px 26px rgba(139,92,246,.32);
}
#lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-text {
  margin-top: 13px; text-align: right;
}
@media (max-width: 520px) {
  #lp-last-dance-it .lp__why:not(.is-why-pinned) .lp__why-lift { grid-template-columns: 1fr; }
}

/* — Pinned state: the 100vh snake-timeline (JS adds .is-why-pinned + drives positions) — */
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-track {
  position: relative; height: calc(100vh + 272vh);   /* 100vh + N(8) × perStep(34)vh */
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-stage {
  position: sticky; top: 0; height: 100vh; overflow: hidden;
  background: linear-gradient(180deg, #faf9ff, #f4f2fb);
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-lift {
  position: absolute; inset: 0; z-index: 1;           /* transform set by JS */
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-header {
  position: absolute; z-index: 3; text-align: right;  /* top/right/width set by JS */
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-path {
  position: absolute; inset: 0; pointer-events: none; z-index: 1; overflow: visible;
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-watermark {
  position: absolute; left: -80px; top: 50%; transform: translateY(-50%);
  z-index: 0; pointer-events: none; color: #8b5cf6;
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-rail {
  position: absolute; right: 20px; width: 2px; z-index: 5;  /* top/height set by JS */
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-node {
  position: absolute; z-index: 2;                     /* left/top/width set by JS */
  display: flex; flex-direction: column; align-items: flex-start;
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-circle {  /* inactive → active */
  background: rgba(139,92,246,.10); color: rgba(139,92,246,.5);
  box-shadow: 0 0 0 rgba(0,0,0,0); transform: scale(.9);
  transition: background .45s var(--zuzy-ease), color .45s var(--zuzy-ease),
              box-shadow .45s var(--zuzy-ease), transform .45s var(--zuzy-ease);
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-circle.is-active {
  background: #8b5cf6; color: #fff;
  box-shadow: 0 12px 26px rgba(139,92,246,.32); transform: scale(1);
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-text {
  margin-top: 16px; text-align: right; opacity: 0; transform: translateY(12px);
  transition: opacity .55s var(--zuzy-ease), transform .55s var(--zuzy-ease);
}
#lp-last-dance-it .lp__why.is-why-pinned .lp__why-text.is-active {
  opacity: 1; transform: translateY(0);
}

/* reduced-motion: kill every §6 transition (JS also stays out of the pinned state) */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__why-circle,
  #lp-last-dance-it .lp__why-text,
  #lp-last-dance-it .lp__why-path-fill,
  #lp-last-dance-it .lp__why-rail-fill,
  #lp-last-dance-it .lp__why-rail-dot { transition: none; }
}


/* ============================================================
   DESIGN-SYSTEM COMPONENTS (zz-*) — inlined ONCE from
   design-system/components/components.css, every selector scoped
   under #lp-last-dance-it (WP-safe; load-once for the whole page).
   Folded sections below override these where they add lp__ specifics.
   ============================================================ */
/* ============================================================
   ZUZY — component classes
   Visual styling for the React component primitives in components/.
   Class-prefixed `zz-`, driven entirely by the --zuzy-* token contract.
   Shipped to consumers via @import from styles.css.
   RTL-safe: layout uses flex/gap + symmetric padding.
   ============================================================ */

/* ---------- Button ---------- */
#lp-last-dance-it .zz-btn {
  font-family: var(--zuzy-font);
  font-weight: var(--zuzy-weight-semibold);
  font-size: 14px;
  line-height: 1;
  border-radius: var(--zuzy-radius-btn);
  padding: 0 18px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--zuzy-space-sm);
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background var(--zuzy-dur-hover) var(--zuzy-ease),
              color var(--zuzy-dur-hover) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover) var(--zuzy-ease),
              box-shadow var(--zuzy-dur-hover) var(--zuzy-ease),
              transform var(--zuzy-dur-hover) var(--zuzy-ease),
              filter var(--zuzy-dur-hover) var(--zuzy-ease);
}


#lp-last-dance-it .zz-btn--primary:hover { background: var(--zuzy-purple-600); transform: translateY(-1px); box-shadow: var(--zuzy-shadow-lg); }
#lp-last-dance-it .zz-btn--primary:active { transform: scale(.98); box-shadow: var(--zuzy-shadow); }


#lp-last-dance-it .zz-btn--sm { height: 32px; font-size: 13px; padding: 0 12px; border-radius: 8px; }


#lp-last-dance-it .zz-btn:disabled{
  background: var(--zuzy-stone-100); color: var(--zuzy-stone-400);
  box-shadow: none; border-color: transparent; cursor: not-allowed; transform: none; filter: none;
}


/* ---------- Card ---------- */
#lp-last-dance-it .zz-card {
  background: #fff; border: 1px solid var(--zuzy-line); border-radius: var(--zuzy-radius-card);
  box-shadow: var(--zuzy-shadow); padding: var(--zuzy-space-lg);
  transition: transform var(--zuzy-dur-hover) var(--zuzy-ease), box-shadow var(--zuzy-dur-hover) var(--zuzy-ease), border-color var(--zuzy-dur-hover) var(--zuzy-ease);
}


/* ---------- Kicker ---------- */
#lp-last-dance-it .zz-kicker {
  display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 600; letter-spacing: .04em;
  color: var(--zuzy-purple-600); background: rgba(139, 92, 246, .08); padding: 4px 12px; border-radius: var(--zuzy-radius-pill);
}
#lp-last-dance-it .zz-kicker__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--zuzy-teal); }

/* ---------- Gradient text ---------- */
#lp-last-dance-it .zz-grad-text { background: var(--zuzy-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }


/* ============================================================
   Showcase — Marquee (infinite auto-scroll) & Feature Tabs
   Landing-page patterns. JS drives the transform / autoplay;
   all visuals here are token-driven and RTL-safe.
   ============================================================ */

/* ---------- Marquee ---------- */
#lp-last-dance-it .zz-marquee { position: relative; width: 100%; overflow: hidden; }


/* reduced-motion / no-JS: become a quiet native-scroll strip */


/* marquee tile */


/* marquee chip */


/* ---------- Feature Tabs ---------- */


@keyframes zz-ftabs-fill { from { width: 0; } to { width: 100%; } }


@keyframes zz-ftabs-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }


/* ============================================================
   SHELL §7 motion lock — buttons hover = colour/opacity only.
   Neutralises the DS .zz-btn translate/scale on hover/active so
   NO button lifts on this page (the page's single motion rule).
   ============================================================ */
#lp-last-dance-it .zz-btn:hover,
#lp-last-dance-it .zz-btn:active{ transform: none; }

/* ============================================================
   Shared primitives (canonical, build-once). Folded sections may
   restate identical values; this guarantees they always resolve.
   ============================================================ */


/* ============================================================
   GLOBAL reveal-on-scroll — the page's ONE system (SHELL §7).
   Replaces the per-section IntersectionObserver shims: any element
   with [data-reveal] fades + rises once on scroll-in, staggered by
   --i. Gated behind html.js (no-JS → everything visible). The driver
   (index.html) adds .is-in / .is-revealed; reveals above-the-fold on
   load; honours prefers-reduced-motion AND html.reduced-motion.
   ============================================================ */
html.js #lp-last-dance-it [data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--zuzy-dur-enter) var(--zuzy-ease),
              transform var(--zuzy-dur-enter) var(--zuzy-ease);
  transition-delay: calc(var(--i, 0) * var(--zuzy-stagger));
  will-change: opacity, transform;
}
html.js #lp-last-dance-it [data-reveal].is-in,
html.js #lp-last-dance-it [data-reveal].is-revealed { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html.js #lp-last-dance-it [data-reveal] {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}
html.reduced-motion #lp-last-dance-it [data-reveal] {
  opacity: 1 !important; transform: none !important; transition: none !important;
}


/* ============================================================
   FOLDED SECTION CSS — §2 · Certs strip
   (from areas/sec-2/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §2 · Certs strip  (quiet compliance band)
   Track B · built from the design-system zz-marquee (logo wall).
   Scoped under #lp-last-dance-it — WordPress-safe (no global
   bare-tag selectors; everything namespaced under the wrapper id).

   Obeys SHELL.md:
     §3  quiet-strip vertical rhythm  clamp(2.4rem,5vw,3.4rem)
     §6  monochrome logo marquee (edge-fade mask, pause-on-hover)
     §7  motion = transform/opacity only, reduced-motion gated

   Source component: zuzy-lp/components/zz-marquee/zz-marquee.html
   (re-scoped here; the component's colour-on-hover is REPLACED by
   SHELL §6's monochrome rule — grayscale stays, opacity lifts
   .5 -> .8, the marks never restore colour. Quiet strip.)
   ============================================================ */

/* — Section band — quiet --zuzy-surface strip (overrides .lp__section rhythm) — */
#lp-last-dance-it .lp__section.lp__sec2{
  padding-block: var(--lp-rhythm-quiet);          /* SHELL §3 — certs quiet rhythm */
  background: var(--zuzy-surface);                /* band vs --zuzy-bg page ground */
  border-block: 1px solid var(--zuzy-line);       /* hairline seams top + bottom */
}

/* — Header — deliberately lean: short band-scale H2 only, no intro (content §2) — */
#lp-last-dance-it .lp__sec2-head{
  text-align: start;                               /* Width Law v2 — anchor at the edge gutter */
  max-width: 46ch;
  margin-block-end: clamp(1.4rem, 3vw, 2.2rem);
}
#lp-last-dance-it .lp__sec2-title{
  margin: 0;
  font-weight: 700;
  font-size: clamp(1.45rem, 3vw, 2.05rem);        /* band scale — below the display H2 */
  line-height: 1.12;
  letter-spacing: -.02em;
  color: var(--zuzy-ink);
  text-wrap: balance;
}

/* ============================================================
   Marquee — zz-marquee, re-scoped under .lp__certwall + tuned for certs.
   EVERYTHING is qualified by .lp__certwall so §2's per-section --zz-*
   config can NEVER collide with §10's marquee at assembly (both would
   otherwise be `#lp-last-dance-it .zz-marquee` at equal specificity —
   last stylesheet wins). Only @keyframes zz-marquee-scroll is shared
   (identical across sections, safe to dedupe).
   ============================================================ */
#lp-last-dance-it .lp__certwall.zz-marquee{
  /* config */
  --zz-speed: 78s; --zz-gap: .9rem; --zz-fade: 8%;
  --zz-card-w: 168px; --zz-card-h: 92px; --zz-logo-h: 52px;
  /* theme — inherit the inlined Zuzy tokens, brand fallbacks otherwise */
  --zz-card-bg: #fff;
  --zz-line: var(--zuzy-line, rgba(26,24,30,.08));
  --zz-radius: var(--zuzy-radius-card, 12px);
  --zz-shadow: var(--zuzy-shadow, 0 1px 2px rgba(52,46,76,.06), 0 10px 30px rgba(139,92,246,.10));
  --zz-ease: var(--zuzy-ease, cubic-bezier(.42,0,.58,1));

  position: relative; overflow: hidden; padding-block: .25rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--zz-fade), #000 calc(100% - var(--zz-fade)), transparent);
          mask-image: linear-gradient(90deg, transparent, #000 var(--zz-fade), #000 calc(100% - var(--zz-fade)), transparent);
}
#lp-last-dance-it .lp__certwall .zz-marquee__row{
  display: flex; gap: var(--zz-gap); width: max-content; will-change: transform;
  animation: zz-marquee-scroll var(--zz-speed) linear infinite;
}
#lp-last-dance-it .lp__certwall .zz-marquee__row + .zz-marquee__row{ margin-top: var(--zz-gap); }
#lp-last-dance-it .lp__certwall.zz-marquee:hover .zz-marquee__row{ animation-play-state: paused; }
@keyframes zz-marquee-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }  /* shared w/ §10 — identical */

/* generic item */
#lp-last-dance-it .lp__certwall .zz-marquee__item{ flex: 0 0 auto; display: grid; place-items: center; }

/* card variant — the white logo-tile look */
#lp-last-dance-it .lp__certwall .zz-marquee__item--card{
  width: var(--zz-card-w); height: var(--zz-card-h);
  background: var(--zz-card-bg); border: 1px solid var(--zz-line);
  border-radius: var(--zz-radius); box-shadow: var(--zz-shadow);
  padding: .9rem 1.2rem;
}

/* partner marks — S2-02: SHARP, full colour. The grayscale(1) + opacity:.5 fade is removed (Gil:
   the logos read pale/faded). This strip now carries vendor/partner accreditations only (ISO + MoD
   moved up to the §1 hero, S2-01), so full-colour brand marks are the right trust signal. */
#lp-last-dance-it .lp__certwall .zz-marquee__item--card img{
  max-width: 100%; max-height: var(--zz-logo-h); width: auto; object-fit: contain;
  filter: none; opacity: 1;
}

/* (§2 MoD placeholder removed with its cell — ISO + MoD marks moved to the §1 hero strip, S2-01.
   The hero placeholder uses .lp__herocert--missing, defined in the §1 block above.) */

/* ============================================================
   Reduced motion — no auto-scroll; manual scrollable strip
   (component contract). Gated by the media query AND the explicit
   html.reduced-motion class per SHELL §7 (show final state).
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  #lp-last-dance-it .lp__certwall.zz-marquee{ overflow-x: auto; }
  #lp-last-dance-it .lp__certwall .zz-marquee__row{ animation: none; }
  #lp-last-dance-it .lp__certwall .zz-marquee__item--card img{ transition: none; }
}
html.reduced-motion #lp-last-dance-it .lp__certwall.zz-marquee{ overflow-x: auto; }
html.reduced-motion #lp-last-dance-it .lp__certwall .zz-marquee__row{ animation: none; }
html.reduced-motion #lp-last-dance-it .lp__certwall .zz-marquee__item--card img{ transition: none; }


/* ============================================================
   FOLDED SECTION CSS — §3 · Problem / solution
   (from areas/sec-3/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §3 · בעיה / פתרון  (Problem / solution)
   Area-local styles ONLY. Everything scoped under
   #lp-last-dance-it #sec-3 (WP-safe; no bare-tag selectors).
   Tokens + zz-* components come from design-system/styles.css;
   the page shell (.lp__section / .lp__wrap rhythm + ground)
   comes from the page's styles.css (preview.html stubs it).

   Sources of truth obeyed:
   · SHELL §3 grid/rhythm · §4 section head · §5 type scale
   · §6 components (Card · Kicker) · §7 motion (single easeInOut,
     transform/opacity only, color-only hovers, reduced-motion).
   ============================================================ */

/* ---- layout: 50/50 · RIGHT col (pain) leads in DOM = RTL right; LEFT col (tool) ---- */
#lp-last-dance-it #sec-3 .s3-grid {
  display: grid;
  grid-template-columns: minmax(0, 34rem) minmax(0, 32rem);   /* Width Law v2: fixed measures, no stretch */
  justify-content: space-between;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

/* =========================================================
   RIGHT column · the pain (head → quote list → closing)
   ========================================================= */
#lp-last-dance-it #sec-3 .s3-pain { min-width: 0; }

#lp-last-dance-it #sec-3 .s3-kicker { margin-bottom: clamp(1rem, 2vw, 1.4rem); }

/* H2 — SHELL §4/§5: display ramp, ink, balanced, tight tracking */
#lp-last-dance-it #sec-3 .s3-h2 {
  margin: 0;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: var(--zuzy-ink);
  text-wrap: balance;
  max-width: 16ch;
}

/* pain list — field voices as hairline-divided quote rows */
#lp-last-dance-it #sec-3 .s3-quotes {
  list-style: none;
  margin: clamp(1.75rem, 3.5vw, 2.5rem) 0 0;
  padding: 0;
}
#lp-last-dance-it #sec-3 .s3-quote {
  position: relative;
  padding-block: clamp(0.85rem, 2vw, 1.15rem);
  padding-inline-start: clamp(1rem, 2vw, 1.4rem);
  border-bottom: 1px solid var(--zuzy-line);
  font-size: clamp(1.02rem, 1.25vw, 1.18rem);
  line-height: 1.6;
  font-weight: 500;
  color: var(--zuzy-fg);
}
#lp-last-dance-it #sec-3 .s3-quote:last-child { border-bottom: 0; }

/* leading "voice" bar at the reading start (right in RTL) — color-only on hover */
#lp-last-dance-it #sec-3 .s3-quote::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: clamp(0.95rem, 2.2vw, 1.25rem);
  bottom: clamp(0.5rem, 1.4vw, 0.75rem);
  width: 2px;
  border-radius: 2px;
  background: var(--zuzy-stone-200);
  transition: background var(--zuzy-dur-hover, 0.18s) var(--zuzy-ease, ease);
}
#lp-last-dance-it #sec-3 .s3-quote:hover::before { background: var(--zuzy-grad); }

/* closing line — the payoff; gradient on the single key word (SHELL §2/§4) */
#lp-last-dance-it #sec-3 .s3-close {
  margin: clamp(1.75rem, 3.5vw, 2.5rem) 0 0;
  font-size: clamp(1.25rem, 2.2vw, 1.7rem);
  line-height: 1.4;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: var(--zuzy-fg);
  text-wrap: balance;
}
#lp-last-dance-it #sec-3 .s3-grad { font-weight: 800; }   /* .zz-grad-text supplies the gradient fill */

/* =========================================================
   LEFT column · the tool (Tool 1 · email-spoof, referenced)
   ========================================================= */
#lp-last-dance-it #sec-3 .s3-toolcol {
  min-width: 0;
  position: sticky;          /* stays in view while the pain list is read (SHELL §3 rail) */
  top: 104px;                /* fixed-header anchor */
}
#lp-last-dance-it #sec-3 .s3-tool { padding: clamp(1.25rem, 2.5vw, 1.75rem); }
#lp-last-dance-it #sec-3 zuzy-tool { display: block; }

/* =========================================================
   Responsive (SHELL §9: 2-col → 1-col ≤880)
   ========================================================= */
@media (max-width: 880px) {
  #lp-last-dance-it #sec-3 .s3-grid {
    grid-template-columns: 1fr;
    gap: clamp(2rem, 6vw, 3rem);
  }
  #lp-last-dance-it #sec-3 .s3-toolcol { position: static; top: auto; }
  #lp-last-dance-it #sec-3 .s3-h2 { max-width: none; }
}

/* =========================================================
   Reduced motion (SHELL §7) — kill the only authored transition
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it #sec-3 .s3-quote::before { transition: none; }
}
html.reduced-motion #lp-last-dance-it #sec-3 .s3-quote::before { transition: none; }


/* ============================================================
   FOLDED SECTION CSS — §4 · Intro / value
   (from areas/sec-4/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §4 · פתיח / ערך  (Intro / value)
   Area-local styles ONLY. Everything scoped under
   #lp-last-dance-it #sec-4 (WP-safe; no bare-tag selectors).
   Tokens + zz-* components come from design-system/styles.css;
   the page shell (.lp__section/.lp__wrap rhythm + ground) comes
   from the page styles.css (preview.html + this file stub them).

   Sources of truth obeyed:
   · SHELL §3 grid/rhythm (centered axis) · §4 section head
     (kicker → H2 → intro) · §5 type scale · §7 motion (single
     easeInOut, transform/opacity only, reduced-motion safe).
   Pattern: a centered typographic STATEMENT — the page's thesis.
   No tool, no image, no card. One gradient word ("שלומד").
   ============================================================ */

/* page-local var + shared wrap (identical to the page shell; assembly dedupes) */


/* Merged §4+§5 area (R3) — ONE warm-stone ground AND one ~100vh composition:
   Zone A = editorial split (statement head ‖ body rail), Zone B = de-carded
   service spine. §3 before sits on --zuzy-bg, §6 after is the filled ground,
   so stone here alternates cleanly (SECTION-PATTERN pt.1). Vertical rhythm +
   scroll-margin come from .lp__section (one --lp-band per side); min-height
   centers the composition on tall viewports and NEVER clips — on short or
   narrow screens the content simply flows past 100vh. */
/* design-r6d (Gil): the DARK INVERSION lives on ZONE 1 — the motion-board area.
   White copy + our purple on the ink ground; the board's kinetic palette carries
   the energy. Zone 2 (.s4-band) paints its own light ground over the section's. */
#lp-last-dance-it .lp__mergesec {
  background:
    radial-gradient(52% 64% at 14% 0%, rgba(139, 92, 246, .18), transparent 60%),
    radial-gradient(40% 52% at 88% 30%, rgba(20, 184, 166, .08), transparent 64%),
    linear-gradient(165deg, var(--zuzy-ink), var(--zuzy-ink-2));
  color: var(--on-dark);
  /* .s4-band (last child) carries the section's bottom edge — the .lp__section
     bottom half-band exposed a strip of this ink gradient under the light band
     before §6 (the r6 seam bug). §6 is filled (padding 0), so flush is the law. */
  padding-block: var(--lp-band) 0;
}
#lp-last-dance-it .s4-frame { width: 100%; }
/* Zone 1 dark adaptation — head copy flips here; the BOARD's full dark-inversion
   block lives AFTER the base board rules (deterministic cascade) — see
   "BOARD DARK INVERSION" below. */
#lp-last-dance-it #sec-4 .s4-hero .s4-h2 { color: var(--on-dark); }
#lp-last-dance-it #sec-4 .s4-kicker {
  color: rgba(253, 252, 255, .88);
  background: rgba(253, 252, 255, .06);
  border-color: rgba(253, 252, 255, .18);
}

/* Zone 1 — R9 (Gil 2026-07-02): NO 100vh. The heading + (smaller) board flow as the top
   of one continuous §4+5 composition; the restored manifesto + CTA follow directly below. */
#lp-last-dance-it .s4-hero {
  display: flex;
  flex-direction: column;
}
#lp-last-dance-it .s4-head { text-align: center; }

/* Services sub-area — the board, directly under the statement.
   #sec-5 stays a scroll anchor (footer service links). */
#lp-last-dance-it .lp__svc {
  display: block;
  margin-top: clamp(2.2rem, 4vh, 3.2rem);
  scroll-margin-top: 84px;
}

/* visually-hidden utility (a11y label for the services anchor) */
#lp-last-dance-it .lp__vh {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; border: 0; clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}

/* Relocated §7 CTA — the centered action closing the manifesto band. */
#lp-last-dance-it .lp__merge-cta {
  margin-top: clamp(2rem, 3.4vw, 2.8rem);
  display: flex;
  justify-content: center;
}


/* Latin runs inside RTL copy (SHELL §9) — matches sibling .lp__ltr */
#lp-last-dance-it #sec-4 .lp__ltr { unicode-bidi: isolate; direction: ltr; }

/* kicker — DS zz-kicker carries the pill; this only sets the gap to the H2 */
#lp-last-dance-it #sec-4 .s4-kicker { margin-bottom: clamp(1.25rem, 2.5vw, 1.75rem); }

/* H2 — display ramp (SHELL §4/§5): ink, balanced, tight tracking, ONE grad
   word. R6: centered above the board; ramp trimmed so statement + board
   share one viewport. */
#lp-last-dance-it #sec-4 .s4-h2 {
  margin: 0;
  font-family: var(--zuzy-font);
  font-size: clamp(2.3rem, 3.8vw, 3.6rem);
  line-height: 1.06;
  letter-spacing: -0.04em;
  font-weight: 800;
  color: var(--zuzy-ink);
  text-wrap: balance;
  max-width: 36ch;   /* wide enough for the 2nd sentence — no orphan line */
  margin-inline: auto;
}
#lp-last-dance-it #sec-4 .s4-h2 .zz-grad-text { font-weight: inherit; }

/* Zone 2 — R9 (Gil 2026-07-02): manifesto RESTORED and woven into one flow under the
   (smaller) board. No boxed template — a clean centered editorial measure with the hook
   + human close pulled to ink, ending in the strong CTA. Harmonious rhythm/focal points. */
#lp-last-dance-it .s4-cta {
  position: relative;
  max-width: 54rem; margin-inline: auto;
  margin-top: clamp(2.6rem, 5vh, 4rem);
  text-align: center;
}
/* design-r6c (Gil's final set, 2026-07-05): Zone 2 = STAND-ALONE CHAPTER.
   Full-bleed DARK ink band (contrast breaks the light flow — the banner-blindness
   fix), ~92vh presence, display typography ("ההבדל הוא בגישה." at H2 scale),
   oversized ghost glyph, portrait on its light panel bottom-anchored, and ONE
   shared start edge for every copy element incl. the CTA. */
#lp-last-dance-it .s4-band {
  position: relative; isolation: isolate; overflow: hidden;
  margin-top: clamp(3rem, 6vh, 5rem);
  min-height: clamp(640px, 92vh, 920px);
  display: grid; align-items: end;
  /* light ground matched to the portrait's baked backdrop — seamless blend (r6d) */
  background: linear-gradient(180deg, #F4F3F8 0%, #F2F0F8 58%, #EDE9F7 100%);
}
/* ghost glyph — the one deep anchor (reference's giant letter), whisper-ink on light */
#lp-last-dance-it .s4-ghost {
  position: absolute; z-index: 0; pointer-events: none; user-select: none;
  inset-inline-start: -4vw; inset-block-start: -12vh;
  font: 800 clamp(24rem, 46vw, 52rem)/1 var(--zuzy-font);
  letter-spacing: -.06em; color: rgba(52, 46, 76, .045);
}
#lp-last-dance-it .s4-cta--portrait {
  position: relative; z-index: 1;
  width: 100%; max-width: var(--composition);
  margin-top: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 560px);
  gap: clamp(2.2rem, 5vw, 5.5rem);
  align-items: end;
  text-align: start;
}
/* ONE start edge — every copy element anchors to the same axis (R6c-5).
   #sec-4 kept in the selector: the old centered-layout base rules carry 2 ids. */
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-intro,
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-display,
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-text,
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-close { margin-inline: 0; }
#lp-last-dance-it .s4-cta--portrait .lp__merge-cta { justify-content: flex-start; }
#lp-last-dance-it .s4-cta--portrait .s4-cta-copy {
  padding-block: clamp(4rem, 9vh, 7rem);          /* the chapter breathes */
  align-self: center;
}
/* quiet intro above the display line — refined, not shrunken (r6d typography pass) */
#lp-last-dance-it #sec-4 .s4-intro {
  margin: 0; max-width: 42ch;
  font-size: clamp(1.08rem, 1.3vw, 1.25rem); line-height: 1.65; font-weight: 500;
  color: var(--zuzy-muted-text);
}
/* THE display line — the band's typographic moment (SHELL H2 scale) */
#lp-last-dance-it #sec-4 .s4-display {
  margin: clamp(1rem, 2vw, 1.4rem) 0 0; max-width: 16ch;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.04; letter-spacing: -.04em; font-weight: 800;
  color: var(--zuzy-ink);
}
/* body copy — the "cheap paragraphs" fix: larger measure, generous leading,
   real paragraph rhythm (Yasmin-reference density) */
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-text {
  max-width: 50ch; margin-top: clamp(1.4rem, 2.4vw, 1.9rem);
  font-size: clamp(1.08rem, 1.25vw, 1.22rem); line-height: 1.85;
  color: var(--zuzy-muted-text);
}
#lp-last-dance-it #sec-4 .s4-cta--portrait .s4-close {
  max-width: 42ch; margin-top: clamp(2rem, 3.6vw, 2.8rem);
  font-size: clamp(1.35rem, 1.9vw, 1.65rem); line-height: 1.4;
  color: var(--zuzy-ink);
}
#lp-last-dance-it .s4-cta--portrait .lp__merge-cta { margin-top: clamp(2.2rem, 4vw, 3.2rem); }
/* CTA one size up — the band's full stop (R6c-6) */
#lp-last-dance-it .s4-cta--portrait .s4-ctabtn {
  font-size: clamp(1.1rem, 1.4vw, 1.3rem);
  padding: 1.15rem clamp(2rem, 3vw, 2.9rem);
}
/* the portrait — seamless on the matched ground (no plate chrome), feet on the floor */
#lp-last-dance-it .s4-cta-photo {
  margin: 0; min-width: 0;
  align-self: end;
}
#lp-last-dance-it .s4-cta-photo img { display: block; width: 100%; height: auto; }
@media (max-width: 880px) {
  #lp-last-dance-it .s4-band { min-height: 0; align-items: stretch; }
  #lp-last-dance-it .s4-cta--portrait { grid-template-columns: 1fr; text-align: center; align-items: center; }
  #lp-last-dance-it #sec-4 .s4-cta--portrait .s4-intro,
  #lp-last-dance-it #sec-4 .s4-cta--portrait .s4-display,
  #lp-last-dance-it #sec-4 .s4-cta--portrait .s4-text,
  #lp-last-dance-it #sec-4 .s4-cta--portrait .s4-close { margin-inline: auto; }
  #lp-last-dance-it .s4-cta--portrait .lp__merge-cta { justify-content: center; }
  #lp-last-dance-it .s4-cta--portrait .s4-cta-copy { padding-block: clamp(2.6rem, 7vw, 4rem) 0; }
  #lp-last-dance-it .s4-cta-photo { max-width: 420px; margin-inline: auto; }
}


/* BODY — the approach detail (the good content), muted */
#lp-last-dance-it #sec-4 .s4-text {
  margin: 1.15em auto 0; max-width: 60ch;
  font-size: clamp(1rem, 1.1vw, 1.1rem); line-height: 1.7; font-weight: 400;
  color: var(--zuzy-muted-text); text-wrap: pretty;
}
/* CLOSE — the human punch: ink, heavier, framed by the largest gap (focal point) */
#lp-last-dance-it #sec-4 .s4-close {
  margin: clamp(1.5rem, 3vw, 2.2rem) auto 0; max-width: 42ch;
  font-size: clamp(1.25rem, 1.7vw, 1.5rem); line-height: 1.45; letter-spacing: -0.01em;
  font-weight: 700; color: var(--zuzy-ink); text-wrap: balance;
}
#lp-last-dance-it #sec-4 .s4-close .s4-nowrap { white-space: nowrap; }

/* strong CTA "strip" — corner-cut purple action; echoes the §5 panel cut edges + accent.
   clip-path clips box-shadow, so elevation/glow use filter:drop-shadow (follows the cut). */
#lp-last-dance-it .s4-ctabtn {
  position: relative; display: inline-flex; align-items: center; gap: .7rem;
  padding: 1rem clamp(1.7rem, 2.6vw, 2.4rem);
  font-family: var(--zuzy-font); font-size: clamp(1.02rem, 1.2vw, 1.15rem);
  font-weight: 700; letter-spacing: -0.01em; color: #fff; text-decoration: none;
  background: var(--zuzy-purple);
  clip-path: polygon(14px 0, 100% 0, 100% calc(100% - 14px), calc(100% - 14px) 100%, 0 100%, 0 14px);
  filter: drop-shadow(0 10px 22px rgba(139,92,246,.42));
  transition: background var(--zuzy-dur-hover, .2s) var(--zuzy-ease), filter var(--zuzy-dur-hover, .2s) var(--zuzy-ease);
}
#lp-last-dance-it .s4-ctabtn:hover { background: var(--zuzy-purple-600); }   /* color-only (SHELL §6) */
#lp-last-dance-it .s4-ctabtn:focus-visible { outline: 2px solid var(--zuzy-purple-600); outline-offset: 3px; }
#lp-last-dance-it .s4-ctabtn .s4-ctabtn-arrow { font-size: 1.15em; line-height: 1; transform: translateY(1px); }

/* single entry pulse — ONE calm scale+glow, fired when the CTA scrolls in
   (inline IO adds .is-pulsing once; keyframe runs a single iteration). */
#lp-last-dance-it .s4-ctabtn.is-pulsing { animation: lp-s4-pulse .9s var(--zuzy-ease) 1; }
@keyframes lp-s4-pulse {
  0%   { transform: scale(1);     filter: drop-shadow(0 10px 22px rgba(139,92,246,.42)); }
  45%  { transform: scale(1.045); filter: drop-shadow(0 14px 30px rgba(139,92,246,.85)); }
  100% { transform: scale(1);     filter: drop-shadow(0 10px 22px rgba(139,92,246,.42)); }
}
@media (prefers-reduced-motion: reduce) { #lp-last-dance-it .s4-ctabtn.is-pulsing { animation: none; } }
html.reduced-motion #lp-last-dance-it .s4-ctabtn.is-pulsing { animation: none; }

/* ---------- Responsive (SHELL §9 breakpoints) ---------- */
@media (max-width: 1100px) {
  #lp-last-dance-it .s4-cta { margin-top: clamp(2.4rem, 6vw, 3.6rem); }
}
@media (max-width: 420px) {
  #lp-last-dance-it #sec-4 .s4-h2 { max-width: 20ch; }
  #lp-last-dance-it #sec-4 .s4-h2 br { display: none; }  /* let text-wrap:balance flow on tiny screens */
}


/* ============================================================
   FOLDED SECTION CSS — §5 · Services
   (from areas/sec-5/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* =====================================================================
   LAST DANCE IT — §5 Services · section CSS  (areas/sec-5/)
   Scoped under #lp-last-dance-it (WordPress-safe; no bare-tag selectors).
   Mirrors the realized it-services-v2 services pattern + the DS Card/Kicker,
   per SHELL.md (§4 header, §5 type, §6 components, §7 motion, §9 a11y).
   Tokens come from the page's #lp-last-dance-it block (inlined in
   preview.html for standalone rendering).

   SHARED PRIMITIVES (.lp__kicker, .lp__card) are the page's build-once
   library — defined here so the section renders in isolation; the final
   assembly chat may de-duplicate them (values match SHELL §4/§6 + DS).
   ===================================================================== */

/* ---- Shared · Kicker (SHELL §4 / DS .zz-kicker) ---- */
#lp-last-dance-it .lp__kicker{
  display:inline-flex; align-items:center; gap:.5rem;
  font-weight:600; font-size:.8rem; letter-spacing:.04em;
  color:var(--zuzy-purple-600);
  background:rgba(139,92,246,.08); border:1px solid rgba(139,92,246,.16);
  padding:.5rem .95rem; border-radius:var(--zuzy-radius-pill);
}

/* ==================== Services (merged §5 sub-area) ==================== */
/* Zone B — SYSTEM BOARD (R4, Gil's viz brief 2026-07-02): dark contained
   architecture diagram. 3 SVG nodes wired by animated data paths, 3 corner-
   cut HTML panels beneath. Brand-mapped: nodes purple/cyan/teal; packets =
   LOCKED data-viz cyan #49F5F4; ground = the §7-popup ink recipe. Hover
   activates a node+panel and dims the rest; all loops die under
   reduced-motion; ≤1100px the decorative net hides and panels stack. */


/* ---- the board — R5 (Gil): NO dark slab. The diagram sits directly on the
   section's stone ground so the §4+§5 hybrid reads as ONE surface; the demo
   palette (blue/purple/teal + orange packets + yellow joints) carries the
   energy instead of a dark box. ---- */
#lp-last-dance-it .lp__svcb{
  position:relative; isolation:isolate;
  max-width: 1040px; margin-inline: auto;   /* R9 (Gil): shrink the board so it stops eating the section */
}
/* faint ink blueprint grid — technical texture on the light ground */
#lp-last-dance-it .lp__svcb::before{
  content:""; position:absolute; inset:0; z-index:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(rgba(26,24,30,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26,24,30,.035) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(92% 84% at 50% 42%, #000, transparent 90%);
          mask-image:radial-gradient(92% 84% at 50% 42%, #000, transparent 90%);
}

/* mono corner tags */
#lp-last-dance-it .lp__svcb-tag{
  position:absolute; z-index:2; direction:ltr;
  font-family:var(--zuzy-font-mono); font-size:.66rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--zuzy-stone-600);
  pointer-events:none;
}
#lp-last-dance-it .lp__svcb-tag--tl{ top:0; left:0; }
#lp-last-dance-it .lp__svcb-tag--br{ bottom:-1.9rem; right:0; }

/* ---- net canvas (nodes + connections) ---- */
#lp-last-dance-it .lp__svcb-net{
  position:relative; z-index:1; display:block; width:100%; height:auto;
  margin-bottom:clamp(-1.2rem,-1vw,-.8rem);   /* struts run into the panels row */
}

/* connections */
#lp-last-dance-it .lp__svcb-conn path{ fill:none; }
#lp-last-dance-it .lp__svcb-conn-base{ stroke:rgba(26,24,30,.07); stroke-width:4; }
#lp-last-dance-it .lp__svcb-conn-glow{
  stroke-width:2; opacity:.55;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
/* packets = the demo's ORANGE — the single kinetic accent (R5) */
#lp-last-dance-it .lp__svcb-conn-packet{
  stroke:#ff9f43; stroke-width:2.5; stroke-dasharray:5 34; opacity:.75;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it.js-anim .lp__svcb-conn-packet,
html.js #lp-last-dance-it .lp__svcb-conn-packet{ animation:lp-svcb-dash 1.15s linear infinite; }
#lp-last-dance-it .lp__svcb-conn.is-on .lp__svcb-conn-glow{ opacity:.95; filter:drop-shadow(0 0 5px rgba(139,92,246,.45)); }
#lp-last-dance-it .lp__svcb-conn.is-on .lp__svcb-conn-packet{ opacity:1; filter:drop-shadow(0 0 6px rgba(255,159,67,.8)); }
#lp-last-dance-it .lp__svcb-conn.is-dim{ opacity:.15; }
#lp-last-dance-it .lp__svcb-conn{ transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease); }

/* elbow markers (demo yellow micro-accent) + struts */
#lp-last-dance-it .lp__svcb-joints circle{ fill:#feca57; stroke:rgba(26,24,30,.22); stroke-width:1.2; }
#lp-last-dance-it .lp__svcb-strut{
  stroke:rgba(26,24,30,.13); stroke-width:2;
  transition:stroke var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-strut.is-on[data-strut="1"]{ stroke:rgba(52,152,219,.55); }
#lp-last-dance-it .lp__svcb-strut.is-on[data-strut="2"]{ stroke:rgba(139,92,246,.55); }
#lp-last-dance-it .lp__svcb-strut.is-on[data-strut="3"]{ stroke:rgba(66,185,185,.55); }

/* nodes */
#lp-last-dance-it .lp__svcb-node{ cursor:pointer; transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease); }
#lp-last-dance-it .lp__svcb-node.is-dim{ opacity:.28; }
#lp-last-dance-it .lp__svcb-halo{
  fill:var(--nc); opacity:0; filter:blur(16px);
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-halo{ opacity:.2; }
#lp-last-dance-it .lp__svcb-ring{
  fill:none; stroke:var(--nc); stroke-width:1.4; stroke-dasharray:3 9; opacity:.45;
  transform-box:fill-box; transform-origin:center;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
html.js #lp-last-dance-it .lp__svcb-ring{ animation:lp-svcb-spin 26s linear infinite; }
#lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-ring{ opacity:1; }
#lp-last-dance-it .lp__svcb-track{ fill:none; stroke:rgba(26,24,30,.08); stroke-width:2; }
#lp-last-dance-it .lp__svcb-arc{
  fill:none; stroke:var(--nc); stroke-width:3.5; stroke-linecap:round; opacity:.3;
  /* arc bbox spans (0,-47)→(47,0): the node center (0,0) = the bbox's
     bottom-left corner — that's the correct spin origin */
  transform-box:fill-box; transform-origin:0% 100%;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-arc{ opacity:1; }
html.js #lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-arc{ animation:lp-svcb-spin 3.2s linear infinite; }
#lp-last-dance-it .lp__svcb-core{ fill:var(--zuzy-stone-50); stroke:var(--nc); stroke-width:1.5; }
#lp-last-dance-it .lp__svcb-corefill{
  fill:var(--nc); opacity:.07;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-corefill{ opacity:.16; }
#lp-last-dance-it .lp__svcb-icon{ stroke:var(--nc); stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; opacity:.95; }
#lp-last-dance-it .lp__svcb-nid{
  font-family:var(--zuzy-font-mono); font-size:15px; font-weight:700; fill:var(--zuzy-ink);
}

/* ---- panels ---- */
#lp-last-dance-it .lp__svcb-panels{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(1.2rem,2.4vw,2.4rem);
}
#lp-last-dance-it .lp__svcb-panel{
  position:relative; min-width:0; cursor:pointer;
  transition:opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-panel.is-dim{ opacity:.35; }
#lp-last-dance-it .lp__svcb-frame{
  position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none;
}
#lp-last-dance-it .lp__svcb-frame [data-border]{
  fill:rgba(255,255,255,.85); stroke:var(--pc); stroke-width:1.2;
  stroke-opacity:.4;
  filter:drop-shadow(0 10px 24px rgba(52,46,76,.10));
  transition:filter var(--zuzy-dur-enter) var(--zuzy-ease), stroke-opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-frame [data-border]{
  stroke-opacity:1;
  filter:drop-shadow(0 10px 24px rgba(52,46,76,.10)) drop-shadow(0 0 7px color-mix(in srgb, var(--pc) 45%, transparent));
}
#lp-last-dance-it .lp__svcb-frame [data-acc1],
#lp-last-dance-it .lp__svcb-frame [data-acc2]{ fill:none; stroke:var(--pc); stroke-width:3; }
#lp-last-dance-it .lp__svcb-inner{
  position:relative; display:flex; flex-direction:column;
  min-height:250px; height:100%;
  padding:clamp(1.3rem,2vw,2rem) clamp(1.5rem,2.2vw,2.3rem);
}
#lp-last-dance-it .lp__svcb-top{
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding-bottom:.85rem; margin-bottom:.95rem;
  border-bottom:1px solid var(--zuzy-line);
}
#lp-last-dance-it .lp__svcb-num{
  font-family:var(--zuzy-font-mono); font-size:1.7rem; font-weight:700; line-height:1;
  letter-spacing:-.02em; color:var(--pc);
  transition:text-shadow var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-num{ text-shadow:0 0 14px var(--pc); }
#lp-last-dance-it .lp__svcb-chip{
  display:inline-flex; align-items:center; gap:.45rem; direction:ltr;
  font-family:var(--zuzy-font-mono); font-size:.64rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--zuzy-stone-600);
  border:1px solid var(--zuzy-line); border-radius:2px;
  padding:.28rem .6rem; background:rgba(26,24,30,.025);
  transition:color var(--zuzy-dur-enter) var(--zuzy-ease), border-color var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-dot{
  width:5px; height:5px; border-radius:50%; background:var(--zuzy-status-success); opacity:.85;
}
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-chip{
  color:var(--pc); border-color:color-mix(in srgb, var(--pc) 45%, transparent);
}
#lp-last-dance-it .lp__svcb-title{
  margin:0 0 .6rem;
  font-size:clamp(1.2rem,1.4vw,1.4rem); line-height:1.25; letter-spacing:-.01em;
  font-weight:700; color:var(--zuzy-ink); text-wrap:balance;
}
#lp-last-dance-it .lp__svcb-desc{
  margin:0;
  font-size:clamp(.95rem,1vw,1.02rem); line-height:1.65;
  color:var(--zuzy-muted-text); text-wrap:pretty;
}
/* decorative activity bars — equalizer at the panel's foot */
#lp-last-dance-it .lp__svcb-bars{
  display:flex; gap:5px; align-items:flex-end; height:22px;
  margin-top:auto; padding-top:1.1rem; opacity:.8;
}
#lp-last-dance-it .lp__svcb-bars i{
  width:5px; border-radius:2px 2px 0 0; background:var(--pc);
  transition:height var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__svcb-bars i:nth-child(1){ height:34%; }
#lp-last-dance-it .lp__svcb-bars i:nth-child(2){ height:22%; }
#lp-last-dance-it .lp__svcb-bars i:nth-child(3){ height:46%; }
#lp-last-dance-it .lp__svcb-bars i:nth-child(4){ height:14%; }
#lp-last-dance-it .lp__svcb-bars i:nth-child(5){ height:60%; }
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-bars i:nth-child(1){ height:100%; }
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-bars i:nth-child(2){ height:62%; }
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-bars i:nth-child(3){ height:82%; }
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-bars i:nth-child(4){ height:42%; }
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-bars i:nth-child(5){ height:24%; }

/* ================= BOARD DARK RE-ORCHESTRATION (design-r7, 2026-07-05) =================
   Gil's r6e verdict: the dark-glass plates read as crude colored squares — patches, not a
   system. r7 = ONE language for the whole dark chapter: the board is a single surface (the
   ink ground itself). ALL structure draws in one white-alpha hairline scale (.055 grid /
   .12 rails / .25 marks); panels are DE-CARDED — no fill, no shadow, hairline corner-cut
   frame — so the blueprint grid runs through unbroken; chroma is reserved for the three
   node hues in small doses (rings, icons, numbers, corner ticks) and ANSWERS hover instead
   of decorating the resting state. The demo's orange packets + yellow joints were
   light-ground accents — on ink they become white light-pulses. Node discs stay light
   (the beacons — Gil-approved). Placed after ALL base board rules: deterministic cascade. */
#lp-last-dance-it .lp__svcb::before {
  opacity: .55;
  background-image:
    linear-gradient(rgba(253, 252, 255, .055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(253, 252, 255, .055) 1px, transparent 1px);
}
#lp-last-dance-it .lp__svcb-tag { color: var(--on-dark-dim); }
/* structure — one white-alpha hairline scale */
#lp-last-dance-it .lp__svcb-conn-base { stroke: rgba(253, 252, 255, .12); }
#lp-last-dance-it .lp__svcb-strut { stroke: rgba(253, 252, 255, .16); }
#lp-last-dance-it .lp__svcb-track { stroke: rgba(253, 252, 255, .14); }
#lp-last-dance-it .lp__svcb-joints circle { fill: rgba(253, 252, 255, .6); stroke: rgba(253, 252, 255, .25); }
/* kinetics — packets = white light-pulses over the colored glow rails */
#lp-last-dance-it .lp__svcb-conn-packet { stroke: rgba(253, 252, 255, .9); }
#lp-last-dance-it .lp__svcb-conn.is-on .lp__svcb-conn-packet { filter: drop-shadow(0 0 6px rgba(253, 252, 255, .7)); }
/* nodes — light beacons; rings/arcs sit quieter on ink */
#lp-last-dance-it .lp__svcb-ring { opacity: .6; }
#lp-last-dance-it .lp__svcb-arc { opacity: .42; }
#lp-last-dance-it .lp__svcb-node.is-on .lp__svcb-halo { opacity: .28; }
/* panels — DE-CARDED: hairline corner-cut frame on the bare ground; the node hue
   answers hover (frame warms to the hue, faint glass rises) */
#lp-last-dance-it .lp__svcb-frame [data-border] {
  fill: rgba(253, 252, 255, .02);
  stroke: rgba(253, 252, 255, .17); stroke-opacity: 1;
  filter: none;
}
#lp-last-dance-it .lp__svcb-panel.is-on .lp__svcb-frame [data-border] {
  fill: rgba(253, 252, 255, .045);
  stroke: color-mix(in srgb, var(--pc) 60%, rgba(253, 252, 255, .4));
  filter: none;
}
#lp-last-dance-it .lp__svcb-top { border-bottom-color: rgba(253, 252, 255, .12); }
#lp-last-dance-it .lp__svcb-title { color: var(--on-dark); }
#lp-last-dance-it .lp__svcb-desc { color: var(--on-dark-muted); }
#lp-last-dance-it .lp__svcb-chip {
  color: var(--on-dark-dim);
  border-color: rgba(253, 252, 255, .18);
  background: rgba(253, 252, 255, .05);
}
#lp-last-dance-it .lp__svcb-bars { opacity: .6; }

/* ---- animations ---- */
@keyframes lp-svcb-dash{ to{ stroke-dashoffset:-39; } }
@keyframes lp-svcb-spin{ to{ transform:rotate(360deg); } }

/* ---- responsive: the decorative net hides; panels stack ---- */
@media (max-width:1100px){
  #lp-last-dance-it .lp__svcb-net{ display:none; }
  #lp-last-dance-it .lp__svcb-panels{ grid-template-columns:1fr; }
  #lp-last-dance-it .lp__svcb-tag--tl{ position:static; display:block; margin-bottom:1rem; }
}

/* ---- reduced motion: kill every loop + transition, show final states ---- */
@media (prefers-reduced-motion:reduce){
  #lp-last-dance-it .lp__svcb *{ animation:none !important; transition:none !important; }
}
html.reduced-motion #lp-last-dance-it .lp__svcb *{ animation:none !important; transition:none !important; }


/* ============================================================
   §7 · CTA POPUP (triggered modal) — REPLACES the removed in-page §7
   Light-CTA band (R2 · DEFECTS-R2 §7 · option b LOCKED).
   Native <dialog> (showModal) in the top layer → real focus-trap incl.
   the tool's shadow DOM, Esc-to-close, focus restore. Reuses the §7
   dark-ground recipe (indigo + purple/teal glows + faint grid) so the
   CTA keeps its identity. Tokens only (--zuzy-* + root-level page-local
   --on-dark*); color-only affordances; brand easeInOut motion; both
   reduced-motion gates snap to final. Scoped #lp-last-dance-it, WP-safe.
   ============================================================ */

/* Zero-height sentinel left where §7 stood — the "scroll-past" trigger. */
#lp-last-dance-it .lp__cta7pop-anchor {
  display: block; height: 0; margin: 0; padding: 0; border: 0;
  scroll-margin-top: 84px;
}

/* ---- Dialog = full-viewport top-layer stage; the panel centres in it.
   `display` is applied ONLY when [open], so the UA `dialog:not([open])`
   hide still wins when closed (no-JS / pre-open → never shown). ---- */
#lp-last-dance-it .lp__cta7pop {
  width: 100%; max-width: 100vw;
  height: 100%; max-height: 100vh; max-height: 100dvh;
  margin: 0; border: 0; padding: clamp(14px, 4vw, 34px);
  background: transparent;
  color: var(--on-dark);
  overflow: auto; overscroll-behavior: contain;
}
#lp-last-dance-it .lp__cta7pop[open] { display: grid; place-items: center; }

/* backdrop scrim — its own fade, gated on the open-animation class */
#lp-last-dance-it .lp__cta7pop::backdrop {
  background: rgba(19, 18, 22, .62);
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity var(--zuzy-dur-enter, .5s) var(--zuzy-ease, cubic-bezier(.42, 0, .58, 1));
}
#lp-last-dance-it .lp__cta7pop.is-open::backdrop { opacity: 1; }

/* ---- Panel: the dark indigo card carrying the §7 ground language ---- */
/* Clean shell (Gil 2026-07-03): one quiet dark card — no grid texture, no halo
   noise, no visible scrollbar. Content is sized to FIT; scrolling (if a small
   screen ever forces it) is invisible. */
#lp-last-dance-it .lp__cta7pop-panel {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 680px;
  max-height: calc(100dvh - clamp(28px, 8vw, 68px));
  overflow-y: auto;
  scrollbar-width: none;                 /* the "CRM sidebar" is dead */
  border-radius: var(--zuzy-radius-card);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  color: var(--on-dark);
  box-shadow: var(--zuzy-shadow-lg);
  background:
    radial-gradient(60% 72% at 18% 0%, rgba(139, 92, 246, .26), transparent 58%),
    linear-gradient(160deg, var(--zuzy-ink), var(--zuzy-ink-2));
  /* enter state (motion) — final state added by .is-open on the dialog */
  opacity: 0;
  transform: translateY(12px) scale(.986);
  transition:
    opacity var(--zuzy-dur-enter, .5s) var(--zuzy-ease, cubic-bezier(.42, 0, .58, 1)),
    transform var(--zuzy-dur-enter, .5s) var(--zuzy-ease, cubic-bezier(.42, 0, .58, 1));
}
#lp-last-dance-it .lp__cta7pop-panel::-webkit-scrollbar { display: none; }
#lp-last-dance-it .lp__cta7pop.is-open .lp__cta7pop-panel { opacity: 1; transform: none; }

/* ---- Close button (top inline-start → top-left in RTL) ---- */
#lp-last-dance-it .lp__cta7pop-close {
  position: absolute;
  z-index: 2;
  inset-block-start: clamp(.6rem, 2vw, 1rem);
  inset-inline-start: clamp(.6rem, 2vw, 1rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  padding: 0;
  border: 1px solid rgba(253, 252, 255, .14);
  border-radius: var(--zuzy-radius-pill);
  background: rgba(253, 252, 255, .06);
  color: var(--on-dark);
  cursor: pointer;
  transition:
    background var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease),
    border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease),
    color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease);
}
#lp-last-dance-it .lp__cta7pop-close svg { width: 20px; height: 20px; }
#lp-last-dance-it .lp__cta7pop-close:hover {
  background: rgba(253, 252, 255, .12);
  border-color: rgba(253, 252, 255, .28);
  color: #fff;
}
#lp-last-dance-it .lp__cta7pop-close:focus-visible { outline: none; box-shadow: var(--zuzy-ring); }

/* ---- Body: header (pitch) → tool, single column ---- */
#lp-last-dance-it .lp__cta7pop-body {
  position: relative;
  z-index: 1;                              /* above the glow */
  display: flex;
  flex-direction: column;
  gap: clamp(1.1rem, 2.2vw, 1.5rem);
}
#lp-last-dance-it .lp__cta7pop-head {
  max-width: 46ch;
  /* clear the absolutely-positioned close button (top inline-start corner): the
     value grows as the viewport narrows — where the close eats more of the
     smaller panel top-padding — and floors on wide desktop. Vertical clearance
     (not an inline indent), so title / lead / tool keep one shared right edge. */
  padding-block-start: max(0.7rem, 3.2rem - 3vw);
}
#lp-last-dance-it .lp__cta7pop-title {
  margin: 0;
  /* modal-scaled H2 — smaller than the in-page SHELL §5 section ramp (a focused
     surface, not a full band); same family / weight 800 / negative tracking. */
  font-size: clamp(1.45rem, 1rem + 1.8vw, 1.95rem);
  line-height: 1.12;
  letter-spacing: -.03em;
  font-weight: 800;
  color: var(--on-dark);
  text-wrap: balance;
}
#lp-last-dance-it .lp__cta7pop-title span[dir="ltr"] {
  unicode-bidi: isolate;                    /* keep the Latin "IT" run clean in RTL */
}
#lp-last-dance-it .lp__cta7pop-lead {
  margin: clamp(.7rem, 1.6vw, 1rem) 0 0;
  max-width: 54ch;
  font-size: clamp(1.02rem, .96rem + .5vw, 1.2rem);
  line-height: 1.55;
  letter-spacing: -.01em;
  font-weight: 400;
  color: var(--on-dark-muted);
}

/* ---- Tool stage: the calculator, clean (halo noise removed — Gil 2026-07-03) ---- */
#lp-last-dance-it .lp__cta7pop-stage { position: relative; }
/* the referenced <zuzy-tool> self-caps its white card at 560px and centers it */
#lp-last-dance-it .lp__cta7pop-tool { display: block; width: 100%; }

/* ---- Reduced motion: snap to final, no enter/exit anim (both gates) ---- */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__cta7pop-panel { opacity: 1; transform: none; transition: none; }
  #lp-last-dance-it .lp__cta7pop::backdrop { opacity: 1; transition: none; }
  #lp-last-dance-it .lp__cta7pop-close { transition: none; }
}
html.reduced-motion #lp-last-dance-it .lp__cta7pop-panel {
  opacity: 1 !important; transform: none !important; transition: none !important;
}
html.reduced-motion #lp-last-dance-it .lp__cta7pop::backdrop {
  opacity: 1 !important; transition: none !important;
}
html.reduced-motion #lp-last-dance-it .lp__cta7pop-close { transition: none !important; }

/* ---- Small screens: tighten the panel, ease the padding ---- */
@media (max-width: 640px) {
  #lp-last-dance-it .lp__cta7pop { padding: 12px; }
  #lp-last-dance-it .lp__cta7pop-panel {
    max-height: calc(100dvh - 24px);
    padding: clamp(1.3rem, 5vw, 1.8rem);
  }
  #lp-last-dance-it .lp__cta7pop-title { letter-spacing: -.02em; }
}


/* ============================================================
   FOLDED SECTION CSS — §7.5 · How it works
   (from areas/sec-7-5/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §7.5 "ככה זה עובד" (How it works)
   Scoped under #lp-last-dance-it · RTL · WP-safe.
   Pattern (SECTION-MANIFEST §7.5 + SHELL §3): sticky off-centre header
   rail + de-carded numbered step spine (`lp__step`). DS Card for the
   Tool 2 placeholder slot. Tokens only — no ad-hoc colors/radii/shadows.
   Built FROM the Zuzy design system (zz-* primitives + --zuzy-* tokens).
   ============================================================ */

/* --- page-local var needed for standalone render (matches SHELL §1) --- */
#lp-last-dance-it { --maxw: 1200px; }

/* --- shared wrap (SHELL §3) — identical to the page wrap; assembly may dedupe --- */
#lp-last-dance-it .lp__wrap {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 2.5rem);
}

/* --- section ground: --zuzy-bg (R2) so §7.5 alternates against the §8
   --zuzy-surface band below, and reads as its own band after the dark §7
   (SHELL §2 / SECTION-PATTERN ground-alternation; was --zuzy-surface = merged with §8). --- */
#lp-last-dance-it #sec-7-5 {
  background: var(--zuzy-bg);
  color: var(--zuzy-fg);
  padding-block: var(--lp-band);
  scroll-margin-top: 84px;                 /* fixed-header offset (SHELL §9) */
}

/* --- centred composition (R2 premium pass): header → quiet wave-2 teaser →
   connected step timeline, all on the 1200 frame (D-1). Centred axis is the
   SHELL §3 alternation between the dark §7 and the start-aligned §8. --- */
#lp-last-dance-it .lp__hiw-grid {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2.5rem, 5vw, 4.25rem);
}

/* --- header (centred): kicker → H2 (SHELL §4). --- */
#lp-last-dance-it .lp__hiw-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(0.9rem, 1.8vw, 1.4rem);
}

/* H2 — page display ramp (SHELL §4/§5) */
#lp-last-dance-it .lp__h2 {
  margin: 0;
  font-family: var(--zuzy-font);
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -0.04em;
  font-weight: var(--zuzy-weight-bold);    /* 700 — heaviest DS weight; SHELL asks 800 */
  color: var(--zuzy-ink);
  text-wrap: balance;
  max-width: 18ch;
}
#lp-last-dance-it .lp__h2 .zz-grad-text { font-weight: inherit; }

/* Latin runs inside RTL copy (SHELL §9) */
#lp-last-dance-it .lp__ltr { unicode-bidi: isolate; direction: ltr; }

/* --- spine (centred column: quiet teaser, then the step timeline) --- */
#lp-last-dance-it .lp__hiw-main {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(2.5rem, 5vw, 4rem);
  min-width: 0;
}

/* ---------- Tool 2 · quiet WAVE-2 teaser (R2 — demoted from the loud dashed
   placeholder that dominated the section). Reads as an intentional forthcoming
   feature: a calm card with a gradient inline-start accent + a shield glyph +
   a muted "בקרוב · גל שני" chip (no dashed border, no amber "warning", no
   user-facing wireframe anchor). The real <zuzy-tool> replaces it at wave-2. ---------- */
#lp-last-dance-it .lp__toolslot {
  width: 100%;
  max-width: 780px;
  display: flex;
  align-items: flex-start;
  gap: clamp(0.9rem, 2vw, 1.25rem);
  text-align: start;
  position: relative;
  overflow: hidden;
  padding: clamp(1.1rem, 2.4vw, 1.6rem) clamp(1.2rem, 2.6vw, 1.75rem);
  background: #fff;
  border: 1px solid var(--zuzy-line);
  border-radius: var(--zuzy-radius-card);
  box-shadow: var(--zuzy-shadow);
}
/* gradient inline-start accent — the "premium / forthcoming" cue (replaces the dashed border) */
#lp-last-dance-it .lp__toolslot::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  width: 3px;
  background: var(--zuzy-grad);
}
#lp-last-dance-it .lp__toolslot-icon {
  flex: none;
  inline-size: clamp(38px, 5vw, 46px);
  block-size: clamp(38px, 5vw, 46px);
  display: grid;
  place-items: center;
  border-radius: var(--zuzy-radius-pill);
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);       /* SHELL §4 kicker tint — token-derived, not ad-hoc */
  border: 1px solid rgba(139, 92, 246, .16);
}
#lp-last-dance-it .lp__toolslot-icon svg { inline-size: 55%; block-size: 55%; }
#lp-last-dance-it .lp__toolslot-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
#lp-last-dance-it .lp__slot-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
}
/* calm, muted "coming soon · wave 2" chip — NOT the amber warning badge (which
   wrongly signalled a problem); neutral = honest "forthcoming". */


#lp-last-dance-it .lp__slot-title {
  margin: 0;
  font-size: clamp(1.1rem, 1.7vw, 1.3rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
  font-weight: var(--zuzy-weight-bold);
  color: var(--zuzy-ink);
}
/* two-layer tool voice: question + professional term (small, inline parens) */
#lp-last-dance-it .lp__slot-term {
  display: inline;
  font-size: 0.82em;
  font-weight: var(--zuzy-weight-medium);
  color: var(--zuzy-muted-text);
}
#lp-last-dance-it .lp__slot-note {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--zuzy-muted-text);
  max-width: 60ch;
}
/* CTA that opens the §7.5 privacy-check popup (defects R1: button, not an
   embedded tool) — the standard zz primary button, self-start so it never
   stretches with the card column */
#lp-last-dance-it .lp__slot-cta {
  align-self: flex-start;
  margin-top: 0.4rem;
}

/* ---------- Connected 3-step timeline (R2 — echoes §6's rail+node language to
   raise caliber and read the process as a sequence, not three loose columns).
   Nodes are centred per column; a soft purple→teal rail links their centres
   behind them. Full frame width (D-1). Mobile: rail retires, nodes stack. --- */
#lp-last-dance-it .lp__steps {
  --gap: clamp(1.75rem, 3vw, 3rem);
  --node: clamp(56px, 6vw, 72px);
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--gap);
}
/* the rail — a hairline from the first node centre to the last, behind the nodes.
   inset = half a column ((100% - 2·gap)/3 / 2) so it starts/ends at node centres. */
#lp-last-dance-it .lp__steps::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: calc(var(--node) / 2);
  inset-inline: calc((100% - 2 * var(--gap)) / 6);
  height: 2px;
  transform: translateY(-1px);
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--zuzy-purple) 55%, transparent),
    color-mix(in srgb, var(--zuzy-teal) 55%, transparent));
  opacity: 0.55;
}
#lp-last-dance-it .lp__step {
  position: relative;
  z-index: 1;                              /* above the rail */
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.9rem;
  min-width: 0;
}
/* node — the mono numeral in a ground-filled ring, so the rail reads as
   connecting node edges (the "glowing data point" aesthetic, SHELL §5). */
#lp-last-dance-it .lp__step-num {
  inline-size: var(--node);
  block-size: var(--node);
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--zuzy-radius-pill);
  background: var(--zuzy-bg);               /* = section ground → masks the rail behind */
  border: 1.5px solid var(--zuzy-stone-200);
  font-family: var(--zuzy-font-mono);
  font-size: clamp(1.45rem, 2.1vw, 1.9rem);
  line-height: 1;
  font-weight: var(--zuzy-weight-bold);
  font-variant-numeric: tabular-nums;
  color: var(--zuzy-purple);
  filter: var(--zuzy-glow-purple);          /* soft glow (shape tokens) */
  transition: color var(--zuzy-dur-hover) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover) var(--zuzy-ease),
              filter var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it .lp__step-body { min-width: 0; }
#lp-last-dance-it .lp__step-title {
  margin: 0;
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  line-height: 1.2;
  letter-spacing: -0.025em;
  font-weight: var(--zuzy-weight-bold);
  color: var(--zuzy-ink);
}
#lp-last-dance-it .lp__step-text {
  margin: 0.55rem auto 0;
  font-size: clamp(1rem, 1.1vw, 1.08rem);
  line-height: var(--zuzy-leading-prose);  /* 1.7 */
  color: var(--zuzy-muted-text);
  max-width: 42ch;
}

/* color-only affordance (SHELL §6/§7: no transform) — purple; step 02 teal */
#lp-last-dance-it .lp__step:hover .lp__step-num {
  border-color: color-mix(in srgb, var(--zuzy-purple) 40%, transparent);
  filter: var(--zuzy-glow-purple-strong);
}
#lp-last-dance-it .lp__step:nth-child(2):hover .lp__step-num {
  color: var(--zuzy-teal);
  border-color: color-mix(in srgb, var(--zuzy-teal) 40%, transparent);
  filter: var(--zuzy-glow-teal-strong);
}

/* ---------- Reveal-on-scroll (SHELL §7) — applied ONLY when JS + motion allowed ----------
   The `.lp__hiw--anim` hook is added by the inline guard script; without it
   (no-JS) everything stays visible. Reduced-motion forces the final state. */
#lp-last-dance-it .lp__hiw--anim [data-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--zuzy-dur-enter) var(--zuzy-ease),
              transform var(--zuzy-dur-enter) var(--zuzy-ease);
  transition-delay: calc(var(--i, 0) * var(--zuzy-stagger));
}
#lp-last-dance-it .lp__hiw--anim [data-reveal].is-in {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__hiw--anim [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* ---------- Responsive (SHELL §9 breakpoints) ---------- */
@media (max-width: 880px) {
  /* steps stack; the horizontal rail retires (nodes stand alone, centred) */
  #lp-last-dance-it .lp__steps { grid-template-columns: 1fr; gap: clamp(2rem, 6vw, 2.75rem); }
  #lp-last-dance-it .lp__steps::before { display: none; }
  #lp-last-dance-it .lp__h2 { max-width: 24ch; }
}
@media (max-width: 620px) {
  /* teaser stacks: glyph over copy */
  #lp-last-dance-it .lp__toolslot { flex-direction: column; }
}


/* ============================================================
   FOLDED SECTION CSS — §8 · Case studies (THE slider engine)
   (from areas/sec-8/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §8 Case Studies
   THE page slider engine (.lp__slider) + the case card (.lp__case),
   designed once here and reused by §10 / §11 / §12.
   Scoped under #lp-last-dance-it · classes lp__ · RTL · WP-safe.
   Tokens are the contract — consumed from the page's --zuzy-* block
   (or design-system/styles.css in the standalone preview); never redeclared.
   ============================================================ */

#lp-last-dance-it .lp__sec--cases {
  --maxw: 1200px;
  --gutter: clamp(1.1rem, 4vw, 2.5rem);
  /* peek-side bleed on the Width Law v2.1 composition: card 0's right edge
     sits exactly where .lp__wide content starts (same gutter + same
     --composition cap as the section header above it), the track bleeds off
     the left (peek) edge of the viewport. The old 1200-grid --edge left the
     first card ~hundreds of px adrift of the heading (defects R1: "crooked"). */
  --gutter-wl: clamp(24px, 5vw, 172px);
  --edge: max(var(--gutter-wl), calc((100% - var(--composition)) / 2 + var(--gutter-wl)));
  --gap: clamp(1rem, 2vw, 1.5rem);
  /* bento width vocabulary (brief: s≈320 · m≈420 · l≈560, clamped) */
  --w-s: clamp(248px, 76vw, 320px);
  --w-m: clamp(296px, 84vw, 424px);
  --w-l: clamp(330px, 90vw, 560px);

  position: relative;
  isolation: isolate;
  background: var(--zuzy-surface);
  padding-block: var(--lp-band);
  overflow: clip;
  font-family: var(--zuzy-font);
  scroll-margin-top: 84px;   /* clear the fixed header on anchor jumps (SHELL §9) */
}

/* very faint dot-grid bleeding behind the track — the hero grid primitive, a whisper */
#lp-last-dance-it .lp__sec--cases::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: radial-gradient(rgba(139, 92, 246, .14) 1px, transparent 1.6px);
  background-size: 26px 26px;
  /* mask alpha anchor — colour never renders; use the brand ink, not pure black */
  -webkit-mask-image: radial-gradient(120% 78% at 82% 6%, var(--zuzy-ink), transparent 72%);
          mask-image: radial-gradient(120% 78% at 82% 6%, var(--zuzy-ink), transparent 72%);
  opacity: .5;
}

#lp-last-dance-it .lp__sec--cases .lp__wrap {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---- Section header (SHELL formula: kicker → H2 → intro), start-aligned ---- */
#lp-last-dance-it .lp__head--start {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(1.4rem, 3vw, 2.6rem);
  text-align: start;
}
/* Headline column: must hold the H2's own measure (18ch of the 66px display
   font ≈ 46rem). The old 38ch cap was 38ch of the ~16px body font (≈365px) —
   far narrower than the H2 needs, which shattered the title to 4 lines. */
#lp-last-dance-it .lp__head__text { flex: 1 1 auto; max-width: 46rem; }

#lp-last-dance-it .lp__kicker {
  display: inline-flex;
  align-items: center;
  font-family: var(--zuzy-font);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  border-radius: var(--zuzy-radius-pill, 999px);
  padding: .42rem .9rem;
}

#lp-last-dance-it .lp__sec--cases .lp__h2 {
  margin: 1.1rem 0 0;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -.04em;
  font-weight: 800;
  color: var(--zuzy-ink);
  text-wrap: balance;
}


#lp-last-dance-it .lp__intro {
  margin: 1.2rem 0 0;
  font-size: clamp(1.2rem, 1.9vw, 1.55rem);
  line-height: 1.55;
  letter-spacing: -.01em;
  color: var(--zuzy-muted-text);
  max-width: 52ch;
}

/* ---- Arrow controls (engine) ---- */
#lp-last-dance-it .lp__slider__controls {
  display: flex;
  gap: .65rem;
  flex: none;
}
#lp-last-dance-it .lp__arrow {
  inline-size: 48px;
  block-size: 48px;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--zuzy-radius-pill, 999px);
  background: var(--zuzy-bg);
  border: 1px solid var(--zuzy-line);
  color: var(--zuzy-ink);
  cursor: pointer;
  -webkit-appearance: none;
          appearance: none;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__arrow svg { inline-size: 22px; block-size: 22px; }
#lp-last-dance-it .lp__arrow:hover {
  color: var(--zuzy-purple-600);
  border-color: rgba(139, 92, 246, .4);
}
#lp-last-dance-it .lp__arrow:focus-visible {
  outline: none;
  box-shadow: var(--zuzy-ring);
}
#lp-last-dance-it .lp__arrow.is-disabled { opacity: .4; pointer-events: none; cursor: default; color: var(--zuzy-muted-text); }

/* ============================================================
   THE SLIDER ENGINE  (.lp__slider) — content-agnostic
   ============================================================ */
#lp-last-dance-it .lp__slider { margin-top: clamp(1.4rem, 3vw, 2.4rem); }

#lp-last-dance-it .lp__slider__viewport {
  overflow: hidden;
  /* peek alignment: inline-start edge on the Width Law composition, bleed to the far edge */
  padding-inline-start: var(--edge);
  padding-inline-end: 0;
  /* vertical room so card shadows aren't clipped by overflow */
  padding-block: clamp(1.1rem, 2vw, 1.8rem);
}
/* no-JS fallback: native horizontal scroll, all cards visible */
#lp-last-dance-it .lp__slider:not(.has-js) .lp__slider__viewport {
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
#lp-last-dance-it .lp__slider:not(.has-js) .lp__slider__viewport::-webkit-scrollbar { display: none; }

#lp-last-dance-it .lp__slider__track {
  display: flex;
  gap: var(--gap);
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
  will-change: transform;
  transition: transform .46s var(--zuzy-ease);
  touch-action: pan-y;
}
#lp-last-dance-it .lp__slider.is-dragging .lp__slider__track { transition: none; cursor: grabbing; }

/* ============================================================
   THE CASE CARD (.lp__case) — result-led, editorial
   ============================================================ */
#lp-last-dance-it .lp__case {
  --pad: clamp(1.4rem, 2.2vw, 2.1rem);
  --i: 0;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: var(--w-m);
  min-height: clamp(264px, 32vw, 312px);   /* defects R1: cards read too tall — trimmed */
  display: flex;
  flex-direction: column;
  padding: var(--pad);
  background: var(--zuzy-bg);
  border: 1px solid var(--zuzy-line);
  border-radius: var(--zuzy-radius-card, 12px);
  box-shadow: var(--zuzy-shadow);
  position: relative;
  overflow: hidden;
  opacity: 1;                 /* no-JS / default: fully visible */
  transition: border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}

#lp-last-dance-it .lp__case--m { width: var(--w-m); }
#lp-last-dance-it .lp__case--l { width: var(--w-l); }

/* hover = border-color nudge only (SHELL: no transform/lift) */
#lp-last-dance-it .lp__case:hover { border-color: rgba(139, 92, 246, .28); }

/* ---- small-pair STACK: two compact cards fill ONE narrow slide column, so a
        pair reads at the height of a single wide card (denser bento rhythm).
        The stack is the track child (.lp__slide); the wide cards stay unchanged. ---- */
#lp-last-dance-it .lp__stack {
  box-sizing: border-box;
  flex: 0 0 auto;
  width: var(--w-s);
  display: flex;
  flex-direction: column;
  gap: var(--gap);
}
#lp-last-dance-it .lp__stack .lp__case {
  --pad: clamp(1.1rem, 1.7vw, 1.5rem);   /* tighter than a wide card */
  width: auto;                           /* the stack owns the column width */
  flex: 1 1 auto;                        /* both halves grow to fill a stretched row */
  min-height: clamp(132px, 28vw, 152px); /* two ≈ one wide card's height */
}
#lp-last-dance-it .lp__stack .lp__case__mark { inline-size: 34px; block-size: 34px; }
#lp-last-dance-it .lp__stack .lp__case__mark svg { inline-size: 18px; block-size: 18px; }
#lp-last-dance-it .lp__stack .lp__case__body { padding-top: clamp(.7rem, 1.5vw, 1.1rem); }
#lp-last-dance-it .lp__stack .lp__case__title { font-size: clamp(1.08rem, 1.5vw, 1.3rem); }

/* --- engine visual state lives on the TRACK CHILD (.lp__slide): a wide card IS
   a slide; a small-pair stack is a slide whose opacity composites its two cards.
   The engine toggles .is-active on track children — it stays content-agnostic. --- */
#lp-last-dance-it .lp__slider.has-js .lp__slide { opacity: .4; }
#lp-last-dance-it .lp__slider.has-js .lp__slide.is-active { opacity: 1; }
/* pre-reveal hold (JS present, not yet entered) */
#lp-last-dance-it .lp__slider.has-js:not(.is-ready) .lp__slide {
  opacity: 0;
  transform: translateY(14px);
}
/* entrance once — staggered fade + short rise on --zuzy-ease
   (border-color kept for the wide cards, which ARE slides; harmless for stacks) */
#lp-last-dance-it .lp__slider.has-js.is-ready .lp__slide {
  transition: opacity .55s var(--zuzy-ease) calc(var(--i) * .09s),
              transform .55s var(--zuzy-ease) calc(var(--i) * .09s),
              border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
  transform: translateY(0);
}
/* steady state — snappy cross-fades, no stagger delay */
#lp-last-dance-it .lp__slider.has-js.is-steady .lp__slide {
  transition: opacity .42s var(--zuzy-ease),
              transform .42s var(--zuzy-ease),
              border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}

/* ---- card head: brand mark + index/category tick ---- */
#lp-last-dance-it .lp__case__head {
  display: flex;
  align-items: center;
  gap: .72rem;
}
#lp-last-dance-it .lp__case__mark {
  inline-size: 38px;
  block-size: 38px;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--zuzy-radius-btn, 10px);
  background: rgba(139, 92, 246, .10);
  color: var(--zuzy-purple-600);
}
#lp-last-dance-it .lp__case__mark svg { inline-size: 20px; block-size: 20px; }
#lp-last-dance-it .lp__case__mark--grad {
  background: var(--zuzy-grad);
  color: var(--zuzy-text-dark, #fdfcff);   /* warm white token, not pure #fff */
  box-shadow: 0 6px 16px rgba(139, 92, 246, .35);
}
#lp-last-dance-it .lp__case__tick {
  display: inline-flex;
  align-items: center;
  gap: .5ch;
  font-family: var(--zuzy-font-mono);
  font-size: .76rem;
  letter-spacing: .04em;
  color: var(--zuzy-muted-text);
}
#lp-last-dance-it .lp__case__tick .idx { color: var(--zuzy-purple-600); font-weight: 600; }
#lp-last-dance-it .lp__case__tick .sep { opacity: .5; }

/* ---- card body: result title + method line, anchored to the base ---- */
#lp-last-dance-it .lp__case__body {
  margin-top: auto;
  padding-top: clamp(1.4rem, 3vw, 2.4rem);
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
#lp-last-dance-it .lp__case__title {
  margin: 0;
  font-size: clamp(1.3rem, 1.9vw, 1.55rem);   /* defects R1: title too big — one step down */
  line-height: 1.16;
  letter-spacing: -.025em;
  font-weight: 700;
  color: var(--zuzy-ink);
  text-wrap: balance;
}
#lp-last-dance-it .lp__case__fig {
  font-weight: 800;
  font-size: 1.16em;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
  /* titles stay ink — the figure carries weight by WEIGHT/SIZE, never colour */
  color: var(--zuzy-ink);
}
#lp-last-dance-it .lp__case__method {
  margin: 0;
  font-size: clamp(.98rem, 1.1vw, 1.08rem);
  line-height: 1.7;
  color: var(--zuzy-muted-text);
}

/* ---- quiet card art band (cards 1·2·4): desaturated + purple→teal duotone ---- */
#lp-last-dance-it .lp__case__art {
  position: relative;
  flex: none;
  height: clamp(104px, 12vw, 136px);
  margin: calc(-1 * var(--pad)) calc(-1 * var(--pad)) clamp(1rem, 1.8vw, 1.5rem);
  border-radius: var(--zuzy-radius-card, 12px) var(--zuzy-radius-card, 12px) 0 0;
  overflow: hidden;
}
#lp-last-dance-it .lp__case__art::before {
  content: "";
  position: absolute;
  inset: -8px;                 /* bleed past the clip so the soft blur has no edge halo */
  background: var(--art) center / cover no-repeat;
  /* grayscale + a LIGHT blur: the dashboard art stays legible as intentional
     texture (defects R1: the old 13px frost read as a smeared fog); scrim re-tints */
  filter: grayscale(1) blur(2px) brightness(1.05) contrast(.96);
  opacity: .3;
}
#lp-last-dance-it .lp__case__art::after {
  content: "";
  position: absolute;
  inset: 0;
  /* re-tint to brand purple→teal and melt the band into the white card */
  background:
    linear-gradient(158deg, rgba(139, 92, 246, .22), rgba(20, 184, 166, .13) 50%, rgba(253, 252, 255, 0) 100%),
    linear-gradient(to bottom, rgba(253, 252, 255, 0) 46%, var(--zuzy-bg) 100%);
}
#lp-last-dance-it .lp__case--art-anomaly  { --art: url("assets/case-art/Anomaly-Detection-768x512-1.png"); }
#lp-last-dance-it .lp__case--art-flow     { --art: url("assets/case-art/d3964a05-835a-451b-8587-fff80fc6ffca.png"); }
#lp-last-dance-it .lp__case--art-usage    { --art: url("assets/case-art/Activity-Usage-_.png"); }
#lp-last-dance-it .lp__case--art-security { --art: url("assets/case-art/AI-Activity-Risk-By-Levelnew.png"); }
#lp-last-dance-it .lp__case--art-backup   { --art: url("assets/case-art/Archive-and-ediscovery-image.png"); }

/* ---- text-forward cards (3·5): faint brand corner glow instead of art ---- */
#lp-last-dance-it .lp__case--glow::after {
  content: "";
  position: absolute;
  inset-block-start: -30%;
  inset-inline-start: -20%;
  width: 70%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(139, 92, 246, .14), rgba(20, 184, 166, .05) 60%, transparent 72%);
  pointer-events: none;
  z-index: 0;
}
#lp-last-dance-it .lp__case--glow > * { position: relative; z-index: 1; }

/* ---- Latin / numeral runs read LTR inside the RTL line ---- */
#lp-last-dance-it .lp__case [dir="ltr"] { unicode-bidi: isolate; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 760px) {
  #lp-last-dance-it .lp__head--start { align-items: flex-start; }
  #lp-last-dance-it .lp__slider__controls { order: 2; }
}
@media (max-width: 520px) {
  #lp-last-dance-it .lp__case { min-height: clamp(250px, 62vw, 300px); }
}

/* ============================================================
   Reduced motion — show the composed state; slider still works,
   it just jumps (no track translate, no entrance stagger)
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__slider.has-js:not(.is-ready) .lp__slide { opacity: 1; transform: none; }
  #lp-last-dance-it .lp__slider .lp__slide { transition: opacity .12s linear !important; transform: none !important; }
  #lp-last-dance-it .lp__slider__track { transition: none !important; }
}
html.reduced-motion #lp-last-dance-it .lp__slider.has-js:not(.is-ready) .lp__slide { opacity: 1; transform: none; }
html.reduced-motion #lp-last-dance-it .lp__slider .lp__slide { transition: opacity .12s linear !important; transform: none !important; }
html.reduced-motion #lp-last-dance-it .lp__slider__track { transition: none !important; }

/* utility */
#lp-last-dance-it .lp__vh {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0; border: 0;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  overflow: hidden; white-space: nowrap;
}


/* ============================================================
   FOLDED SECTION CSS — §9 · Features / stats
   (from areas/sec-9/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT · §9 — Features / Stats (the proof + positioning band)
   PARALLEL-ISOLATED area. Owns ONLY areas/sec-9/**.
   Scoped under #lp-last-dance-it. Canonical --zuzy-* tokens come from the
   linked design-system styles.css (warm STONE, never slate). Single motion
   curve: --zuzy-ease. Data-viz lock hardcoded: #7C3AED -> #49F5F4 on #DDD8EB.
   Animate transform/opacity only. RTL-first. Reduced-motion + no-JS safe.
   ============================================================ */

/* ---------- Section shell ---------- */
#lp-last-dance-it #sec-9{
  background:var(--zuzy-bg);
  color:var(--zuzy-fg);
  font-family:var(--zuzy-font);
  padding-block:var(--lp-band);
  scroll-margin-top:84px;
  direction:rtl;
}
#lp-last-dance-it #sec-9 .lp__stats__wrap{
  width:100%;
  max-width:var(--composition);
  margin-inline:auto;
  padding-inline:clamp(24px, 5vw, 172px);   /* Width Law v2.1 */
  display:flex;
  flex-direction:column;
  gap:clamp(1.9rem,3vw,2.8rem);   /* R2 defects: one compact proof beat, no sprawl */
}

/* ---------- Header (kicker -> H2) — start-aligned ---------- */
/* no 26ch cap (it broke the short H2 to three lines and bloated the head block) */
#lp-last-dance-it #sec-9 .lp__stats__head{max-width:none;}
#lp-last-dance-it #sec-9 .lp__stats__head .zz-kicker{margin-bottom:clamp(.9rem,1.4vw,1.2rem);}
#lp-last-dance-it #sec-9 .lp__stats__title{
  margin:0;
  font-size:clamp(2.6rem,5.2vw,4.4rem);
  line-height:1.02;
  letter-spacing:-.04em;
  font-weight:800;
  color:var(--zuzy-ink);
  text-wrap:balance;
}

/* ---------- 9a · Proof axis — RadialGauge hero (98%) + subordinate KPI cluster ----------
   The donut + the centered numeral both ride the SHELL-locked viz ramp #7C3AED->#49F5F4
   over the #DDD8EB track (NOT brand purple/teal). Gauge anchors the right; KPIs whisper. */
/* FINAL-POLISH (Gil 2026-07-05): the band was "70% done — neither here nor there":
   a ghost photo (.16 grayscale) on a surfaceless white card. Commit: the proof band
   is an INK CHAPTER CARD — same dark language as the §4/5 board (one white-alpha
   hairline scale, viz-ramp chroma). The ops-room photo is PRESENT (silver duotone
   on ink), the numerals go white, the aphorism becomes the band's footer row. */
#lp-last-dance-it #sec-9 .lp__stats__proof{
  position:relative; isolation:isolate;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);   /* RadialGauge (start/right) | KPI row (fills the frame) */
  align-items:center;
  column-gap:clamp(2.4rem,5vw,4.5rem);
  row-gap:clamp(2rem,4vw,2.8rem);
  padding:clamp(2rem,3.4vw,3rem) clamp(1.8rem,3vw,2.8rem);
  border-radius:var(--zuzy-radius-card);
  overflow:hidden;
  background:
    radial-gradient(46% 64% at 10% 0%, rgba(139,92,246,.18), transparent 62%),
    linear-gradient(160deg, var(--zuzy-ink), var(--zuzy-ink-2));
  color:var(--on-dark);
}
/* the real ops room grounds the numbers — silver duotone, committed presence,
   masked off the start side so the numerals keep full dominance */
#lp-last-dance-it #sec-9 .lp__stats__proof::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:url("assets/team/team-ops.webp") center 32%/cover no-repeat;
  filter:grayscale(1) contrast(1.06) brightness(1.15);
  opacity:.3;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.6) 42%,transparent 76%);
          mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.6) 42%,transparent 76%);
}
/* ink scrim — seats the photo into the ground + guards numeral legibility */
#lp-last-dance-it #sec-9 .lp__stats__proof::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg, rgba(139,92,246,.10), transparent 50%),
             linear-gradient(180deg, transparent 55%, rgba(15,13,24,.5) 100%);
}

/* Hero figure — the canonical Zuzy RadialGauge donut, capped for the inline row */
#lp-last-dance-it #sec-9 .lp__stats__hero{
  margin:0;
  display:flex;flex-direction:column;align-items:center;
  gap:clamp(.85rem,1.7vw,1.3rem);
}
#lp-last-dance-it #sec-9 .lp__gauge{
  position:relative;isolation:isolate;
  inline-size:clamp(196px,20vw,252px);   /* holds the hero role beside the enlarged KPIs */
  aspect-ratio:1;
}
/* single faint purple->teal under-glow behind the ring (decorative, never interactive) */
#lp-last-dance-it #sec-9 .lp__gauge::before{
  content:"";position:absolute;z-index:-1;inset:8%;border-radius:50%;
  background:radial-gradient(circle at 50% 45%,rgba(124,58,237,.16),rgba(73,245,244,.10) 46%,transparent 72%);
  filter:blur(10px);pointer-events:none;
}
#lp-last-dance-it #sec-9 .lp__gauge__svg{inline-size:100%;block-size:100%;display:block;}
/* gauge value — SHELL-locked viz gradient, the focal figure floating in the ring */
#lp-last-dance-it #sec-9 .lp__gauge__val{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  direction:ltr;                                   /* numeric token reads "98%", not "%98" */
  font-weight:800;line-height:1;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
  font-size:clamp(2.6rem,4.6vw,3.7rem);
  background-image:linear-gradient(135deg,#7C3AED,#49F5F4);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
#lp-last-dance-it #sec-9 .lp__gauge__unit{font-size:.5em;font-weight:800;margin-inline-start:.04em;}
#lp-last-dance-it #sec-9 .lp__stats__hero-label{
  font-size:clamp(1rem,1.4vw,1.18rem);
  color:var(--on-dark-muted);font-weight:500;letter-spacing:.01em;
  text-align:center;max-width:20ch;line-height:1.4;
}
/* the ink band re-inks the gauge track (the ramp itself is the SHELL lock) */
#lp-last-dance-it #sec-9 .lp__gauge__track{stroke:rgba(253,252,255,.13);}

/* gauge draw-in — base = composed 98% (no-JS / reduced-motion safe). c = 2*pi*113 = 710.04 */
#lp-last-dance-it #sec-9 .lp__gauge__arc{
  stroke-dasharray:710.04;
  stroke-dashoffset:14.2;                          /* 710.04 * (1 - .98) */
}
#lp-last-dance-it #sec-9.lp-anim .lp__gauge__arc{
  stroke-dashoffset:710.04;                        /* JS present -> park empty */
  transition:stroke-dashoffset 1.3s var(--zuzy-ease);
}
#lp-last-dance-it #sec-9.lp-anim.is-in .lp__gauge__arc{stroke-dashoffset:14.2;}   /* draw to 98% */
@media (prefers-reduced-motion:reduce){
  #lp-last-dance-it #sec-9.lp-anim .lp__gauge__arc{stroke-dashoffset:14.2!important;transition:none!important;}
}
html.reduced-motion #lp-last-dance-it #sec-9.lp-anim .lp__gauge__arc{stroke-dashoffset:14.2!important;transition:none!important;}

/* Supporting KPI row — ONE horizontal row (R2 REDO: was a vertical column).
   Bare number+label pairs, vertical-hairline-divided, tabular-nums; numerals hug the
   RTL start edge so mixed LTR/RTL units ("180+", "7 דק׳", "24/7") sit on one grid. */
#lp-last-dance-it #sec-9 .lp__stats__kpis{
  margin:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
}
#lp-last-dance-it #sec-9 .lp__stats__kpi{
  min-inline-size:0;
  padding-inline-start:clamp(1.1rem,2.4vw,2.2rem);
  border-inline-start:1px solid rgba(253,252,255,.14);
}
#lp-last-dance-it #sec-9 .lp__stats__kpi:first-child{padding-inline-start:0;border-inline-start:0;}
#lp-last-dance-it #sec-9 .lp__stats__kpi-num{
  display:block;text-align:right;white-space:nowrap;
  font-weight:800;line-height:.95;letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;color:var(--on-dark);
  font-size:clamp(2.7rem,4.2vw,3.8rem);   /* defects R2: the numbers ARE the section — full presence */
}
/* units ride the locked viz cyan — the data accent that reads on ink */
#lp-last-dance-it #sec-9 .lp__stats__kpi-unit{
  font-size:.5em;font-weight:700;color:#49F5F4;
  letter-spacing:0;margin-inline-start:.08em;
}
#lp-last-dance-it #sec-9 .lp__stats__kpi-unit--he{
  color:var(--on-dark-muted);font-weight:600;font-size:.46em;margin-inline-start:.2em;
}
#lp-last-dance-it #sec-9 .lp__stats__kpi-label{
  text-align:right;
  font-size:clamp(1rem,1.15vw,1.12rem);
  color:var(--on-dark-muted);font-weight:500;
  margin-block-start:.5rem;line-height:1.45;
}

/* ---------- Closing aphorism — FINAL-POLISH: the band's FOOTER ROW (was floating
   under the card). Spans both columns over a top hairline; keeps the viz-gradient
   pull on the start edge; the strong goes full white. ---------- */
#lp-last-dance-it #sec-9 .lp__stats__close{
  grid-column:1 / -1;
  position:relative;
  margin:0;
  padding-block-start:clamp(1.4rem,2.6vw,2rem);
  border-block-start:1px solid rgba(253,252,255,.12);
  padding-inline-start:1.1rem;
  font-size:clamp(1.25rem,1.8vw,1.55rem);
  font-weight:500;color:var(--on-dark-muted);line-height:1.45;letter-spacing:-.01em;
  text-wrap:balance;
}
/* viz-ramp pull bar on the start edge (pseudo, NOT border-image — border-image
   would repaint the top hairline too) */
#lp-last-dance-it #sec-9 .lp__stats__close::before{
  content:""; position:absolute;
  inset-inline-start:0;
  inset-block-start:clamp(1.4rem,2.6vw,2rem); inset-block-end:.15em;
  inline-size:2px;
  background:linear-gradient(180deg,#7C3AED,#49F5F4);
}
#lp-last-dance-it #sec-9 .lp__stats__close strong{font-weight:700;color:var(--on-dark);}

/* ============================================================
   Motion — JS-gated reveal + count-up. Single curve: --zuzy-ease.
   No-JS: everything shows final (no .lp-anim class is added).
   ============================================================ */
#lp-last-dance-it #sec-9.lp-anim [data-reveal]{
  opacity:0;transform:translateY(16px);
  transition:opacity var(--zuzy-dur-enter,.5s) var(--zuzy-ease),
             transform var(--zuzy-dur-enter,.5s) var(--zuzy-ease);
  transition-delay:calc(var(--i,0) * .08s);
}
#lp-last-dance-it #sec-9.lp-anim.is-in [data-reveal]{opacity:1;transform:none;}

/* reduced-motion (media OR html.reduced-motion) — composed final state, no count, no shift */
@media (prefers-reduced-motion:reduce){
  #lp-last-dance-it #sec-9.lp-anim [data-reveal]{opacity:1!important;transform:none!important;transition:none!important;}
}
html.reduced-motion #lp-last-dance-it #sec-9.lp-anim [data-reveal]{opacity:1!important;transform:none!important;transition:none!important;}

/* ============================================================
   Responsive — collapse the asymmetric axis to one column
   Mobile order (brief): header -> 98% -> KPI cluster -> expertise -> about
   ============================================================ */
@media (max-width:880px){
  /* proof stacks: gauge on top, the 3-KPI row full-width beneath (stays horizontal) */
  #lp-last-dance-it #sec-9 .lp__stats__proof{
    grid-template-columns:1fr;
    justify-items:stretch;
    row-gap:clamp(1.8rem,6vw,2.6rem);
  }
  #lp-last-dance-it #sec-9 .lp__stats__hero{justify-self:center;}
  #lp-last-dance-it #sec-9 .lp__stats__kpis{inline-size:100%;}
}
@media (max-width:560px){
  /* KPI row collapses to a stacked list (horizontal hairlines) — standard narrow collapse */
  #lp-last-dance-it #sec-9 .lp__stats__kpis{grid-template-columns:1fr;}
  #lp-last-dance-it #sec-9 .lp__stats__kpi{
    padding-inline-start:0;border-inline-start:0;
    padding-block:clamp(.9rem,3.5vw,1.2rem);
    border-block-start:1px solid var(--zuzy-line);
  }
  #lp-last-dance-it #sec-9 .lp__stats__kpi:first-child{padding-block-start:0;border-block-start:0;}
  #lp-last-dance-it #sec-9 .lp__gauge{inline-size:clamp(200px,62vw,248px);}
  #lp-last-dance-it #sec-9 .lp__gauge__val{font-size:clamp(2.6rem,15vw,3.5rem);}
}


/* ============================================================
   FOLDED SECTION CSS — §10 · Clients & partners
   (from areas/sec-10/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §10 · Clients & partners
   Track B · two offset logo marquees in OPPOSITE directions, built from the
   design-system zz-marquee (logo wall). Clients drift one way, technology
   partners the other (content §10). Logos only — no partner NAMES as text.
   Scoped under #lp-last-dance-it — WordPress-safe (no global bare-tag
   selectors; everything namespaced under the wrapper id).

   Obeys SHELL.md:
     §3  full-section vertical rhythm  clamp(6rem,12vw,11rem); full-bleed wall
     §4  header formula  kicker -> H2 -> intro (one .lp__grad-text word)
     §6  zz-marquee logo wall: edge-fade mask, pause-on-hover, monochrome cells
         (grayscale ALWAYS, opacity .5 -> .8 — the marks never restore colour)
     §7  motion = transform/opacity only; hovers = colour/opacity, no lift/scale;
         single --zuzy-ease; reduced-motion gated (media query + html.reduced-motion)

   Source component: zuzy-lp/components/zz-marquee/zz-marquee.html (re-scoped).
   ⚠ ASSEMBLY: the base .zz-marquee / .lp__wrap / .lp__kicker / .lp__grad-text
   rules below are SHARED primitives (also defined by §2 and other areas) —
   keep ONE copy at final assembly. The §10-specific values live on .lp__cpwall
   / .lp__sec10* so this section is correct regardless of which base survives.
   ============================================================ */

/* ───────── Shared primitives (DEDUPE AT ASSEMBLY) ───────── */
#lp-last-dance-it .lp__wrap{
  max-width: var(--maxw, 1200px);
  margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 2.5rem);
}
#lp-last-dance-it .lp__kicker{
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 600; font-size: .8rem; letter-spacing: .04em;
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  padding: .5rem .95rem; border-radius: var(--zuzy-radius-pill, 999px);
}


/* ───────── Section band ───────── */
#lp-last-dance-it .lp__section.lp__sec10{
  padding-block: var(--lp-band);               /* SHELL §3 — half-band (G-WHITE R2) */
  background: var(--zuzy-surface);              /* tinted band frames the white logo cells */
  border-block: 1px solid var(--zuzy-line);     /* hairline seams top + bottom */
  overflow: hidden;                             /* contain the full-bleed marquees */
}

/* ───────── Header — SHELL §4 formula, start-aligned (RTL right) ─────────
   R2 §10: was centred — off vs the page's right-alignment. Match the §11 neighbour
   idiom: text-align:start + anchor to the start (right) edge in RTL. The reading
   measure lives on each child in its own font (SHELL §4); NO `ch` cap on the head
   (a `ch` cap resolves in the head's small inherited font and shatters the display
   H2 — the §11 lesson at #sec-11 .lp__cat-head). */
#lp-last-dance-it .lp__sec10-head{
  text-align: start;
  margin-inline-end: auto;
  margin-block-end: clamp(2.2rem, 4vw, 3.2rem);   /* defects R2: was 80px rendered — tightened to the §9 beat */
}
#lp-last-dance-it .lp__sec10-head .lp__kicker{ margin-bottom: 1.2rem; }
#lp-last-dance-it .lp__sec10-title{
  margin: 0;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);      /* SHELL §5 — section H2 */
  line-height: 1.02; letter-spacing: -.04em; font-weight: 800;
  color: var(--zuzy-ink); text-wrap: balance;
  max-width: 17ch;                              /* measure on the H2 in its own font (SHELL §4); anchors start via margin:0 */
}
#lp-last-dance-it .lp__sec10-intro{
  margin: clamp(1rem, 2vw, 1.4rem) 0 0;         /* inline margins 0 → anchors start (RTL right) */
  font-size: clamp(1.2rem, 1.9vw, 1.55rem);     /* SHELL §5 — lead / intro */
  line-height: 1.55; letter-spacing: -.01em; font-weight: 400;
  color: var(--zuzy-muted-text); max-width: 52ch; text-wrap: balance;
}

/* ───────── Marquee group — full-bleed strip + frame-aligned caption ─────────
   R2 §10: the section header is now start-aligned (RTL right), so the row captions
   ("לקוחות" / "שותפים טכנולוגיים") align to the same start axis — one axis, uniform
   with the page. Each caption reads as a right-anchored eyebrow: text at the start
   edge with a single gradient rule trailing INTO the strip (inline-flex ::after sits
   inline-end = left in RTL). The leading ::before dash is dropped so nothing floats
   at the frame's start-edge corner (the corner-mark the R1 note guarded against —
   now avoided by trailing, not flanking). Caption rides the Width Law .lp__wide
   frame — SAME axis as the section header (defects R2: the old 1200 .lp__wrap
   left both captions 224px adrift of the start-aligned head). */
#lp-last-dance-it .lp__cp-group + .lp__cp-group{ margin-block-start: clamp(1.8rem, 3vw, 2.6rem); }
#lp-last-dance-it .lp__cp-group > .lp__wide{ text-align: start; }
#lp-last-dance-it .lp__cp-label{
  display: inline-flex; align-items: center; gap: .7rem;
  font-size: .8rem; font-weight: 600; letter-spacing: .06em;
  color: var(--zuzy-muted-text);
  margin-block-end: clamp(.9rem, 1.8vw, 1.3rem);
}
#lp-last-dance-it .lp__cp-label::after{
  content: ""; inline-size: 1.7rem; block-size: 2px; border-radius: 2px;
  background: var(--zuzy-grad); flex: none;
}

/* ============================================================
   zz-marquee — re-scoped under the wrapper (SHARED structure; DEDUPE AT ASSEMBLY)
   §10 config + monochrome live on .lp__cpwall so they always win.
   ============================================================ */
#lp-last-dance-it .zz-marquee{
  /* config defaults (overridden per-instance by .lp__cpwall) */
  --zz-speed: 80s; --zz-gap: 1rem; --zz-fade: 7%;
  --zz-card-w: 170px; --zz-card-h: 92px; --zz-logo-h: 46px;
  --zz-card-bg: #fff;
  --zz-line: var(--zuzy-line, rgba(26,24,30,.08));
  --zz-radius: var(--zuzy-radius-card, 12px);
  --zz-shadow: var(--zuzy-shadow, 0 1px 2px rgba(52,46,76,.06), 0 10px 30px rgba(139,92,246,.10));
  --zz-ease: var(--zuzy-ease, cubic-bezier(.42,0,.58,1));

  position: relative; overflow: hidden; padding-block: .25rem;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--zz-fade), #000 calc(100% - var(--zz-fade)), transparent);
          mask-image: linear-gradient(90deg, transparent, #000 var(--zz-fade), #000 calc(100% - var(--zz-fade)), transparent);
}
#lp-last-dance-it .zz-marquee__row{
  display: flex; gap: var(--zz-gap); width: max-content; will-change: transform;
  animation: zz-marquee-scroll var(--zz-speed) linear infinite;
}
#lp-last-dance-it .zz-marquee__row + .zz-marquee__row{ margin-top: var(--zz-gap); }
#lp-last-dance-it .zz-marquee__row--reverse{ animation-direction: reverse; }
#lp-last-dance-it .zz-marquee:hover .zz-marquee__row{ animation-play-state: paused; }
@keyframes zz-marquee-scroll{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

/* generic item */
#lp-last-dance-it .zz-marquee__item{ flex: 0 0 auto; display: grid; place-items: center; }
/* card variant — white logo tile */
#lp-last-dance-it .zz-marquee__item--card{
  width: var(--zz-card-w); height: var(--zz-card-h);
  background: var(--zz-card-bg); border: 1px solid var(--zz-line);
  border-radius: var(--zz-radius); box-shadow: var(--zz-shadow);
  padding: .9rem 1.2rem;
}

/* ───────── §10 instance config — fluid bento cells + width rhythm ───────── */
#lp-last-dance-it .lp__cpwall{
  --zz-gap: clamp(.7rem, 1.2vw, 1rem);
  --zz-fade: 7%;
  --zz-card-w: clamp(150px, 15vw, 190px);
  --zz-card-h: clamp(82px, 8.5vw, 104px);
  --zz-logo-h: clamp(34px, 4vw, 46px);
}
/* wide tile — wordmark logos get the mosaic rhythm */
#lp-last-dance-it .lp__cpwall .zz-marquee__item--wide{ width: clamp(230px, 24vw, 300px); }

/* monochrome cells — SHELL §6: grayscale ALWAYS; hover lifts opacity only (no colour pop, no transform) */
#lp-last-dance-it .lp__cpwall .zz-marquee__item--card img{
  max-width: 100%; max-height: var(--zz-logo-h); width: auto; object-fit: contain;
  filter: grayscale(1); opacity: .5;
  transition: opacity .22s var(--zz-ease);
}
#lp-last-dance-it .lp__cpwall .zz-marquee__item--card:hover{ border-color: rgba(139, 92, 246, .30); }
#lp-last-dance-it .lp__cpwall .zz-marquee__item--card:hover img{ filter: grayscale(1); opacity: .8; }

/* ───────── Responsive ───────── */
@media (max-width: 640px){
  #lp-last-dance-it .lp__cpwall{
    --zz-card-w: clamp(124px, 40vw, 150px);
    --zz-card-h: 72px;
    --zz-logo-h: 32px;
  }
  #lp-last-dance-it .lp__cpwall .zz-marquee__item--wide{ width: clamp(180px, 56vw, 220px); }
  #lp-last-dance-it .lp__cpwall .zz-marquee__item--card{ padding: .7rem 1rem; }
}

/* ============================================================
   Reduced motion — no auto-scroll; manual scrollable strip.
   Gated by the media query AND the explicit html.reduced-motion class
   per SHELL §7 (show final/static state).
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  #lp-last-dance-it .zz-marquee{ overflow-x: auto; }
  #lp-last-dance-it .zz-marquee__row{ animation: none; }
  #lp-last-dance-it .lp__cpwall .zz-marquee__item--card img{ transition: none; }
}
html.reduced-motion #lp-last-dance-it .zz-marquee{ overflow-x: auto; }
html.reduced-motion #lp-last-dance-it .zz-marquee__row{ animation: none; }
html.reduced-motion #lp-last-dance-it .lp__cpwall .zz-marquee__item--card img{ transition: none; }


/* ============================================================
   FOLDED SECTION CSS — §11 · Category switcher
   (from areas/sec-11/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §11 · Services by business type (category switcher)
   PARALLEL-ISOLATED area output. Scoped under #lp-last-dance-it #sec-11.
   Obeys SHELL.md (single --zuzy-ease, brand-base motion, warm stone,
   purple-tinted chip states) + brief/category-switcher.md.

   Tokens come from the page (index.html inlines the canonical --zuzy-*
   block) / in preview from ../../design-system/styles.css. This file
   declares NO tokens and NO shared shell rules (.lp__wrap / .lp__section
   are owned by the assembly scaffold) — only §11's own classes.

   Class namespace: .lp__cat-*  (collision-free vs. other parallel areas).
   The arrow + chip + crossfade are authored to the SHELL "one slider
   engine" spec (48px arrows, opacity/transform-only swap, RTL chevron =
   next-points-LEFT); assembly may promote/dedupe them against §8's engine.
   ============================================================ */

/* ---- Section ground — LIGHT, quiet aside (brief §2). Surface tint for
   rhythm vs. neighbours; the shell card reads as near-white on top. ---- */
#lp-last-dance-it #sec-11 {
  background: var(--zuzy-surface);
}

/* ---- Composition — defects R2 (Gil): commit to the REFERENCE form. A contained,
   CENTERED, minimal column (Width-Law exempt, like §7.5) — not the in-between
   "not narrow, not full-bleed" state that read amateur. ---- */
#lp-last-dance-it #sec-11 .lp__cat-composition {
  max-width: 1140px;
  margin-inline: auto;
}

/* ---- Shell — the ONE card that owns tabs + stage (reference: a single quiet
   panel; the tab row and content live INSIDE it, on shared hairlines). ---- */
#lp-last-dance-it #sec-11 .lp__cat-shell {
  margin-top: clamp(1.2rem, 2vw, 1.6rem);   /* R3: rail is standalone above — short leash to the box it drives */
  background: var(--zuzy-bg);
  border: 1px solid var(--zuzy-line);
  border-radius: var(--zuzy-radius-card);
  box-shadow: var(--zuzy-shadow);
  padding: clamp(1.4rem, 2.6vw, 2.2rem) clamp(1.5rem, 3vw, 2.6rem);
}

/* ============================================================
   Section header — START-ALIGNED axis (SHELL §3 alternation).
   kicker -> H2 -> (no intro, per brief).
   ============================================================ */
#lp-last-dance-it #sec-11 .lp__cat-head {
  text-align: start;
  /* NO max-width here: `ch` on the head resolves in the head's small inherited
     font (24ch ≈ 230px), which then choked the 66px display H2 into a 7-line
     vertical shatter. The reading measure belongs on the H2, in the H2's own
     font (see .lp__cat-h2 max-width below) — SHELL §4. */
  margin-inline-end: auto; /* anchor to the start (right) edge in RTL */
}

#lp-last-dance-it #sec-11 .lp__cat-kicker {
  display: inline-flex;
  align-items: center;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  padding: .4rem .9rem;
  border-radius: var(--zuzy-radius-pill);
}

#lp-last-dance-it #sec-11 .lp__cat-h2 {
  margin: 1.1rem 0 0;
  max-width: 18ch; /* SHELL §4 measure — resolves in the H2's own (display) font,
                      so the headline holds a ~3-line editorial measure instead of
                      shattering. Below the mobile cap this never constrains. */
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.02;
  letter-spacing: -.04em;
  font-weight: 800;
  color: var(--zuzy-ink);
  text-wrap: balance;
}

#lp-last-dance-it #sec-11 .lp__cat-grad {
  background: var(--zuzy-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ============================================================
   Chip rail — role=tablist as a free-scrolling overflow rail with the
   shared 48px arrows. RTL: chips flow right -> left; "next" chevron LEFT.
   ============================================================ */
#lp-last-dance-it #sec-11 .lp__cat-railwrap {
  display: flex;
  align-items: center;
  gap: .6rem;
  /* R3 (Gil): STANDALONE control above the shell — bare, no card chrome; the
     hairline stays (it carries the active-tab underline, the tab-row idiom) */
  margin-top: clamp(2rem, 3.6vw, 2.8rem);
  border-block-end: 1px solid var(--zuzy-line);
}

#lp-last-dance-it #sec-11 .lp__cat-rail {
  display: flex;
  flex: 1 1 auto;
  align-items: stretch;
  gap: clamp(.9rem, 1.4vw, 1.35rem);   /* all 6 tabs fit the shell at desktop → arrows auto-hide */
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-block: 4px; /* room for the focus ring */
  scroll-snap-type: x proximity;
}
#lp-last-dance-it #sec-11 .lp__cat-rail::-webkit-scrollbar { display: none; }

/* ---- Tab — reference idiom (defects R2): quiet TEXT tab on the shared
   hairline; the active state is a 2px brand-purple underline riding ON the
   rail's hairline + purple text. The old floating pill chips were the
   "amateur" read; states stay in the SHELL-locked purple family. ---- */
#lp-last-dance-it #sec-11 .lp__cat-chip {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: baseline;
  gap: .5rem;
  scroll-snap-align: start;
  padding: .65rem .15rem .95rem;
  border: 0;
  background: transparent;
  color: var(--zuzy-muted-text);
  font-family: var(--zuzy-font);
  font-size: clamp(.92rem, 1vw, .98rem);
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
/* underline indicator — sits exactly on the railwrap hairline */
#lp-last-dance-it #sec-11 .lp__cat-chip::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: -5px;                        /* rail padding-block 4px + the 1px hairline */
  height: 2px;
  border-radius: 2px;
  background: var(--zuzy-purple-600);
  opacity: 0;
  transition: opacity var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
/* hover = colour nudge ONLY (no lift, no scale) */
#lp-last-dance-it #sec-11 .lp__cat-chip:hover {
  color: var(--zuzy-fg);
}
#lp-last-dance-it #sec-11 .lp__cat-chip:focus-visible {
  outline: none;
  box-shadow: var(--zuzy-ring);
  border-radius: var(--zuzy-radius-btn, 10px);
}
#lp-last-dance-it #sec-11 .lp__cat-chip.is-active {
  color: var(--zuzy-purple-600);
  font-weight: 600;
}
#lp-last-dance-it #sec-11 .lp__cat-chip.is-active::after { opacity: 1; }

/* ---- Mono numeric index (Latin digits — IBM Plex Mono renders these;
   Hebrew never uses mono) ---- */
#lp-last-dance-it #sec-11 .lp__cat-chip-idx {
  font-family: var(--zuzy-font-mono);
  font-size: .68rem;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--zuzy-stone-400);
  opacity: .9;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it #sec-11 .lp__cat-chip.is-active .lp__cat-chip-idx {
  color: var(--zuzy-purple-600);
}

/* ---- Shared arrows (.lp__cat-arrow) — 48px, colour/border hover,
   focus ring, .is-disabled at the ends ---- */
#lp-last-dance-it #sec-11 .lp__cat-arrow {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  border: 1px solid var(--zuzy-line);
  background: var(--zuzy-bg);
  color: var(--zuzy-ink);
  cursor: pointer;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it #sec-11 .lp__cat-arrow svg { width: 20px; height: 20px; }
#lp-last-dance-it #sec-11 .lp__cat-arrow:hover {
  color: var(--zuzy-purple-600);
  border-color: rgba(139, 92, 246, .30);
}
#lp-last-dance-it #sec-11 .lp__cat-arrow:focus-visible {
  outline: none;
  box-shadow: var(--zuzy-ring);
}
#lp-last-dance-it #sec-11 .lp__cat-arrow.is-disabled {
  opacity: .35;
  pointer-events: none;
}
/* When the rail fits (no overflow) the arrows are not needed */
#lp-last-dance-it #sec-11 .lp__cat-railwrap--noscroll .lp__cat-arrow {
  display: none;
}

/* ============================================================
   Dynamic panel stage — ALL panels stacked in one grid cell so the
   stage always reserves the TALLEST panel's height (the עמותות panel,
   which carries the tool slot). Result: zero height jump on swap; the
   change reads as a content crossfade, never a reflow.
   ============================================================ */
#lp-last-dance-it #sec-11 .lp__cat-stage {
  display: grid;   /* only child of the shell — its padding owns the spacing */
}
#lp-last-dance-it #sec-11 .lp__cat-panel {
  grid-area: 1 / 1;            /* every panel occupies the same cell */
  min-width: 0;
  width: 100%;                 /* defects R2: IDENTICAL container on every tab —
                                  the shell owns the chrome; panels are chrome-less
                                  full-width children (the old shrink-to-content
                                  margin-inline-end:auto made each card a size) */
  /* resting (inactive) state — hidden but still occupies layout (sizing) */
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .3s var(--zuzy-ease),
              transform .3s var(--zuzy-ease),
              visibility 0s linear .3s;
}
/* the one focal move: once-per-selection crossfade, then it stops */
#lp-last-dance-it #sec-11 .lp__cat-panel.is-active {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
  z-index: 1;
  transition: opacity .3s var(--zuzy-ease),
              transform .3s var(--zuzy-ease),
              visibility 0s;
}

#lp-last-dance-it #sec-11 .lp__cat-panel-name {
  margin: 0;
  font-size: clamp(1.45rem, 2.3vw, 1.9rem);
  line-height: 1.15;
  letter-spacing: -.025em;
  font-weight: 700;
  color: var(--zuzy-ink);
}
/* the single permitted quiet accent: a short gradient hairline */
#lp-last-dance-it #sec-11 .lp__cat-panel-rule {
  width: 48px;
  height: 2px;
  margin-top: .85rem;
  border-radius: 2px;
  background: var(--zuzy-grad);
}
/* Services list (R2 content model — DEFECTS-R2 §11): each panel lists the
   services relevant to that business type (Gil-supplied copy). Uniform across
   all 6 panels; 2-col on desktop, 1-col ≤640 (below). The teal check = a
   single masked-SVG rule (crisp at any size, no per-item DOM), on-system with
   the section's existing teal accent — the one saturated moment stays the chip. */
#lp-last-dance-it #sec-11 .lp__cat-services {
  list-style: none;
  margin: clamp(1.2rem, 2.4vw, 1.6rem) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .72rem clamp(1.4rem, 3vw, 2.6rem);
}
#lp-last-dance-it #sec-11 .lp__cat-service {
  position: relative;
  padding-inline-start: 1.8em;    /* leading gutter for the marker (right, in RTL) */
  font-size: clamp(1rem, 1.15vw, 1.08rem);
  line-height: 1.5;
  font-weight: 400;
  color: var(--zuzy-ink);
  /* normal block flow (not flex) + plaintext = the item is ONE bidi paragraph,
     so an embedded LTR acronym ("(DR)") can't reorder the Hebrew words when the
     line wraps in the narrow mobile column. Wrapped lines hang under the text. */
  unicode-bidi: plaintext;
}
#lp-last-dance-it #sec-11 .lp__cat-service::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;          /* leading edge = right in RTL */
  top: .3em;
  width: 1.15em;
  height: 1.15em;
  background-color: var(--zuzy-teal);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ---- Tool 3 CTA (LIVE, defects R3/R3c) — the §7.5 מתכונת opening #sec11-popup,
   restyled as a FULL-WIDTH banner closing the shell: icon | copy | button-at-end.
   R3c (Gil): the inherited 780px card read as a partial, broken fill; inside the
   white shell it goes quiet — surface tint, no shadow, no side accent sliver. ---- */
#lp-last-dance-it #sec-11 .lp__toolslot--incat {
  margin-top: clamp(1.6rem, 2.8vw, 2.2rem);
  max-width: none;                       /* fill the shell edge-to-edge */
  align-items: center;
  background: var(--zuzy-surface);
  box-shadow: none;
  padding: clamp(1.2rem, 2.2vw, 1.7rem) clamp(1.3rem, 2.4vw, 2rem);
}
#lp-last-dance-it #sec-11 .lp__toolslot--incat::before { display: none; }
#lp-last-dance-it #sec-11 .lp__toolslot--incat .lp__toolslot-copy { flex: 1 1 auto; }
/* the button rides the banner row's end (left in RTL), vertically centered */
#lp-last-dance-it #sec-11 .lp__toolslot--incat > .lp__slot-cta {
  flex: none;
  align-self: center;
  margin: 0;
  margin-inline-start: auto;
}
@media (max-width: 640px) {
  /* narrow: the banner stacks — icon+copy, then a full-line button */
  #lp-last-dance-it #sec-11 .lp__toolslot--incat { flex-wrap: wrap; }
  #lp-last-dance-it #sec-11 .lp__toolslot--incat > .lp__slot-cta {
    margin-inline-start: 0;
    flex: 1 1 100%;
    justify-content: center;
  }
}

/* ============================================================
   Reveal-on-scroll (SHELL §7) — gated on html.js so no-JS shows all;
   transform/opacity only; staggered by --i; honours reduced motion.
   ============================================================ */
html.js #lp-last-dance-it #sec-11 [data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--zuzy-dur-enter, .5s) var(--zuzy-ease),
              transform var(--zuzy-dur-enter, .5s) var(--zuzy-ease);
  transition-delay: calc(var(--i, 0) * var(--zuzy-stagger, .1s));
  will-change: opacity, transform;
}
html.js #lp-last-dance-it #sec-11 [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 640px) {
  #lp-last-dance-it #sec-11 .lp__cat-head { max-width: none; }
  /* services list → single column on phones (2-col phrases would wrap badly) */
  #lp-last-dance-it #sec-11 .lp__cat-services { grid-template-columns: 1fr; gap: .62rem; }
}

/* ============================================================
   Reduced motion — no reveal, no swap animation; instant final state.
   Covered by the media query AND the html.reduced-motion class.
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  html.js #lp-last-dance-it #sec-11 [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  #lp-last-dance-it #sec-11 .lp__cat-panel,
  #lp-last-dance-it #sec-11 .lp__cat-panel.is-active {
    transition: none !important;
    transform: none !important;
  }
  #lp-last-dance-it #sec-11 .lp__cat-rail { scroll-behavior: auto; }
}
html.reduced-motion #lp-last-dance-it #sec-11 [data-reveal] {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
html.reduced-motion #lp-last-dance-it #sec-11 .lp__cat-panel,
html.reduced-motion #lp-last-dance-it #sec-11 .lp__cat-panel.is-active {
  transition: none !important;
  transform: none !important;
}


/* ============================================================
   FOLDED SECTION CSS — §12 · Reviews
   (from areas/sec-12/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* =============================================================
   LAST DANCE IT · §12 — Reviews (ביקורות) · section styles
   -------------------------------------------------------------
   • Scoped entirely under #lp-last-dance-it (WP-safe, drop-in).
   • Token-driven: only --zuzy-* values (no ad-hoc colors/radii/shadows).
   • Motion: the single brand curve --zuzy-ease ONLY (SHELL §7 lock).
     No it-services-v2 four-curve set here.
   • Engine: self-contained scroll-snap "peek + arrows" slider (no Swiper
     dependency). Card visual language mirrors the realized lp__ testimonials
     library (lp__gcard / lp__gquote / lp__arrow …) so the final-assembly
     chat can unify it onto the one §8 slider engine with minimal churn.
   • Reviews are PLACEHOLDER skeletons — real Google / Trust-Index reviews
     are pending (Gil places them). Nothing here is a real review.
   ============================================================= */

#lp-last-dance-it .lp__revsec{
  /* page-local fallbacks so the section also renders standalone */
  --maxw: 1200px;
  padding-block: var(--lp-band);
  background: var(--zuzy-bg);
  color: var(--zuzy-fg);
  font-family: var(--zuzy-font);
  scroll-margin-top: 84px;
}
#lp-last-dance-it .lp__revsec *{ box-sizing: border-box; }
#lp-last-dance-it .lp__revsec ::selection{ background: rgba(139, 92, 246, .22); }
#lp-last-dance-it .lp__revsec .lp__wrap{
  max-width: var(--maxw); margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 2.5rem);
}

/* ---------- Header: kicker -> H2 -> lead, with inline ledger ---------- */
#lp-last-dance-it .lp__revsec-head{
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: clamp(1.4rem, 3vw, 2.6rem);
  margin-bottom: clamp(3.2rem, 6vw, 5rem);
  text-align: start;
}
/* S12-01/02: heading rail flexes to fill the frame (was capped at 26ch ≈ 250px,
   which choked the ~67px H2 into 1–2 words/line). min-width forces the ledger to
   wrap below before the rail re-narrows. Reading measures now live on the children. */
#lp-last-dance-it .lp__revsec-head-main{ flex: 1 1 28rem; min-width: min(100%, 28rem); }

#lp-last-dance-it .lp__kicker{
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 600; font-size: .8rem; letter-spacing: .04em;
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  padding: .4rem .85rem; border-radius: var(--zuzy-radius-pill);
}
/* H2 — exact SHELL §4/§5 type-scale contract (display H2) */
#lp-last-dance-it .lp__revsec-title{
  margin: 1.1rem 0 0; font-weight: 800; color: var(--zuzy-ink);
  font-size: clamp(2.6rem, 5.2vw, 4.4rem); line-height: 1.02; letter-spacing: -.04em;
  text-wrap: balance; max-width: 18ch; /* SHELL §4 H2 measure, at the H2's own font-size */
}

/* Lead/intro — exact SHELL §4/§5 type-scale contract.
   R2: title→lead gap normalized to the page norm — was a flat 1.05rem (16.8px),
   the tightest lead gap on the page; now the responsive clamp §13's intro uses. */
#lp-last-dance-it .lp__revsec-lead{
  margin: clamp(1.1rem, 1.8vw, 1.5rem) 0 0; font-size: clamp(1.2rem, 1.9vw, 1.55rem); line-height: 1.55; letter-spacing: -.01em;
  color: var(--zuzy-muted-text); max-width: 52ch;
}

/* ---------- Google / Trust-Index ledger (STRUCTURE ONLY; values pending) ---------- */
#lp-last-dance-it .lp__gledger{
  display: inline-flex; align-items: center; gap: .7rem; flex-wrap: wrap;
  padding-block: .2rem; color: var(--zuzy-muted-text);
  /* default flex 0 1 auto: grow:0 won't strangle the heading; shrink:1 lets the
     meta wrap so the ledger never overflows the frame (S12-02). */
}
#lp-last-dance-it .lp__glogo{ width: 30px; height: 30px; flex: 0 0 auto; }
#lp-last-dance-it .lp__gledger-score{
  font-weight: 800; font-size: 1.7rem; line-height: 1; color: var(--zuzy-ink);
  letter-spacing: -.02em; font-variant-numeric: tabular-nums;
}
#lp-last-dance-it .lp__gledger-stars{ letter-spacing: 2px; font-size: 1.05rem; line-height: 1; }

#lp-last-dance-it .lp__gledger-meta{
  flex-basis: 100%; font-size: .84rem; line-height: 1.4; color: var(--zuzy-muted-text);
}

/* ---------- Slider shell ---------- */
#lp-last-dance-it .lp__slider-shell{ position: relative; }

/* viewport doubles as the flex scroll track (native scroll = no-JS fallback) */
#lp-last-dance-it .lp__rev-viewport{
  display: flex; gap: clamp(1rem, 2vw, 1.5rem);
  overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-block: .5rem;
}
#lp-last-dance-it .lp__rev-viewport::-webkit-scrollbar{ display: none; }
#lp-last-dance-it .lp__rev-viewport:focus-visible{
  outline: 2px solid var(--zuzy-purple); outline-offset: 4px; border-radius: var(--zuzy-radius-card);
}
#lp-last-dance-it .lp__revsec.is-js .lp__rev-viewport{ scroll-behavior: smooth; }

#lp-last-dance-it .lp__rev-slide{
  flex: 0 0 auto;
  width: clamp(280px, 78vw, 420px);
  scroll-snap-align: start;
}
/* enhanced (JS): opacity-only calm — active 1, rest .4 (NO scale pop) */
#lp-last-dance-it .lp__revsec.is-js .lp__rev-slide{
  opacity: .4; transition: opacity var(--zuzy-dur-enter) var(--zuzy-ease);
}
#lp-last-dance-it .lp__revsec.is-js .lp__rev-slide.is-active{ opacity: 1; }

/* ---------- Quote card ---------- */
#lp-last-dance-it .lp__gcard{
  position: relative; min-height: 300px;   /* R3: no height:100% — it blocked flex stretch; the viewport equalizes all cards */
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--zuzy-line);
  border-radius: var(--zuzy-radius-card); box-shadow: var(--zuzy-shadow);
  padding: clamp(1.6rem, 2.6vw, 2.4rem);
}
#lp-last-dance-it .lp__gcard-top{
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  margin-bottom: .2rem;
}
#lp-last-dance-it .lp__gsource{
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .82rem; font-weight: 600; color: var(--zuzy-muted-text);
}
#lp-last-dance-it .lp__gsource svg{ width: 16px; height: 16px; flex: 0 0 auto; }

#lp-last-dance-it .lp__gquote-mark{
  font-family: Georgia, "Times New Roman", serif; font-weight: 700;
  font-size: 3.4rem; line-height: .6; color: var(--zuzy-purple); opacity: .18;
  display: block; height: 1.1rem; pointer-events: none;
}
#lp-last-dance-it .lp__gquote{
  flex: 1 1 auto; margin: .2rem 0 1.2rem; color: var(--zuzy-ink);
  font-size: clamp(1.05rem, 1.3vw, 1.2rem); line-height: 1.55; letter-spacing: -.01em;
  font-weight: 500; text-wrap: balance;
}
/* (R3, Gil: uniform quote typography — the active-card font bump was removed;
   every card renders the same .lp__gquote ramp.) */

/* skeleton quote (placeholder shape) */


@keyframes lp-rev-shimmer{ 0%{ background-position: 200% 0; } 100%{ background-position: -200% 0; } }

/* anchor labels — the [ ... ] convention = a slot Gil fills */


/* footer: avatar + name/role + that card's star row */
#lp-last-dance-it .lp__gcard-foot{
  display: flex; align-items: center; gap: .7rem;
  margin-top: auto; padding-top: 1.2rem; border-top: 1px solid var(--zuzy-line);
}
#lp-last-dance-it .lp__gavatar{
  position: relative; overflow: hidden; flex: 0 0 auto;
  width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
}


#lp-last-dance-it .lp__gmeta{ flex: 1; min-width: 0; }
#lp-last-dance-it .lp__gmeta b{ display: block; color: var(--zuzy-ink); font-size: .97rem; line-height: 1.25; }
#lp-last-dance-it .lp__gstars{ flex: 0 0 auto; letter-spacing: 1px; font-size: .9rem; }


/* ---------- Filled (real-data) states — R3, reviews wired 2026-07-02 ---------- */
/* star gold = the Google-mark yellow already used in the inline Google logo */
#lp-last-dance-it .lp__gstars--on{ color: #FBBC05; }
#lp-last-dance-it .lp__gledger-stars--on{ color: #FBBC05; }
/* review month/year (Google cards) — quiet, top-end */
#lp-last-dance-it .lp__gdate{
  font-size: .78rem; color: var(--zuzy-muted-text); white-space: nowrap;
}
/* initials avatar — brand-tinted circle until real photos land */
#lp-last-dance-it .lp__gavatar--init{
  background: rgba(139, 92, 246, .10);
  border: 1px solid rgba(139, 92, 246, .22);
  color: var(--zuzy-purple-600);
  font-weight: 700; font-size: .88rem; letter-spacing: .02em;
}
/* role / verification line under the reviewer name */
#lp-last-dance-it .lp__grole{
  display: block; font-size: .8rem; line-height: 1.35; color: var(--zuzy-muted-text);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------- Slider nav: functional + focus-visible only. NO scale/translate pop ---------- */
#lp-last-dance-it .lp__slider-ctrl{
  display: none; justify-content: flex-start; gap: .8rem;
  margin-top: clamp(1.8rem, 4vw, 2.8rem);
}
#lp-last-dance-it .lp__revsec.is-js .lp__slider-ctrl{ display: flex; }
#lp-last-dance-it .lp__slider-ctrl[hidden]{ display: none !important; }
#lp-last-dance-it .lp__arrow{
  width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; cursor: pointer;
  background: #fff; border: 1.5px solid var(--zuzy-line); color: var(--zuzy-ink); box-shadow: var(--zuzy-shadow);
  transition: color var(--zuzy-dur-hover) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover) var(--zuzy-ease),
              opacity var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it .lp__arrow svg{ width: 22px; height: 22px; }
#lp-last-dance-it .lp__arrow:hover{ color: var(--zuzy-purple); border-color: rgba(139, 92, 246, .4); }
#lp-last-dance-it .lp__arrow:focus-visible{
  color: var(--zuzy-purple); border-color: rgba(139, 92, 246, .4);
  outline: 2px solid var(--zuzy-purple); outline-offset: 3px;
}
#lp-last-dance-it .lp__arrow.is-disabled{ opacity: .4; pointer-events: none; }

/* ---------- Reveal-on-scroll (JS-gated; no-JS shows everything) ---------- */
#lp-last-dance-it .lp__revsec.is-js [data-reveal]{
  opacity: 0; transform: translateY(16px);
  transition: opacity var(--zuzy-dur-enter) var(--zuzy-ease),
              transform var(--zuzy-dur-enter) var(--zuzy-ease);
  transition-delay: calc(var(--i, 0) * var(--zuzy-stagger));
}
#lp-last-dance-it .lp__revsec.is-js [data-reveal].is-in{ opacity: 1; transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 760px){
  #lp-last-dance-it .lp__revsec-head{ align-items: flex-start; }
  #lp-last-dance-it .lp__revsec-head-main{ max-width: 100%; }
  #lp-last-dance-it .lp__rev-slide{ width: clamp(260px, 84vw, 360px); }
}
@media (hover: none), (pointer: coarse){
  #lp-last-dance-it .lp__arrow:hover{ color: var(--zuzy-ink); border-color: var(--zuzy-line); }
}

/* ---------- Reduced motion: drop dimming + shimmer + smooth-scroll; show final state ---------- */
@media (prefers-reduced-motion: reduce){
  #lp-last-dance-it .lp__revsec.is-js .lp__rev-slide{ opacity: 1; transition: none; }
  #lp-last-dance-it .lp__revsec.is-js .lp__rev-viewport{ scroll-behavior: auto; }
  #lp-last-dance-it .lp__revsec.is-js [data-reveal]{ opacity: 1 !important; transform: none !important; transition: none !important; }
  
}
html.reduced-motion #lp-last-dance-it .lp__revsec.is-js .lp__rev-slide{ opacity: 1; transition: none; }
html.reduced-motion #lp-last-dance-it .lp__revsec.is-js .lp__rev-viewport{ scroll-behavior: auto; }
html.reduced-motion #lp-last-dance-it .lp__revsec.is-js [data-reveal]{ opacity: 1 !important; transform: none !important; transition: none !important; }


/* ============================================================
   FOLDED SECTION CSS — §13 · FAQ + contact
   (from areas/sec-13/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §13 · FAQ + contact (50/50)
   Built from the Zuzy design system (--zuzy-* token contract).
   Realized as `lp__` classes per SHELL §6, scoped under
   #lp-last-dance-it #sec-13 (parallel-isolated: zero cross-area collision).
   RTL-first · single brand easeInOut curve only (SHELL §7, LOCKED) ·
   hover = colour/opacity only, never lift/scale on cards & buttons.
   ============================================================ */

/* ---- page-local vars this section consumes (SHELL §1 allow-list) ---- */
#lp-last-dance-it #sec-13 { --maxw: 1200px; --wa: #1E874B; }

/* ---- section shell + scoped resets ---- */
#lp-last-dance-it #sec-13 {
  background: var(--zuzy-bg);
  color: var(--zuzy-fg);
  font-family: var(--zuzy-font);
  line-height: 1.7;
  padding-block: var(--lp-band);
  scroll-margin-top: 84px;
  -webkit-font-smoothing: antialiased;
}
/* Width-Law EXEMPTION (like §7.5/§11, decided 2026-07-03): §13 is a centered
   composition sized so the 44rem+36rem columns + gap fill it EXACTLY — the
   space-between dead-middle that opened on the 1760 axis is gone structurally. */
#lp-last-dance-it #sec-13 .lp__wide {
  max-width: 1432px;                       /* 704 + 576 + 72 gap + 2×40 padding */
  padding-inline: clamp(24px, 4vw, 40px);
}
#lp-last-dance-it #sec-13 *,
#lp-last-dance-it #sec-13 *::before,
#lp-last-dance-it #sec-13 *::after { box-sizing: border-box; }
#lp-last-dance-it #sec-13 h2,
#lp-last-dance-it #sec-13 h3 { margin: 0; font-weight: 800; text-wrap: balance; }
#lp-last-dance-it #sec-13 p { margin: 0; }
#lp-last-dance-it #sec-13 a { color: inherit; text-decoration: none; }

#lp-last-dance-it #sec-13 .lp__wrap {
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: clamp(1.1rem, 4vw, 2.5rem);
}

/* ---- section header (SHELL §4 formula: kicker → H2 → intro, start-aligned) ---- */
#lp-last-dance-it #sec-13 .lp__faqc-head { max-width: 52ch; margin-bottom: clamp(2.2rem, 4vw, 3.25rem); }
#lp-last-dance-it #sec-13 .lp__kicker {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 600; font-size: .8rem; letter-spacing: .04em;
  color: var(--zuzy-purple-600);
  background: rgba(139, 92, 246, .08);
  border: 1px solid rgba(139, 92, 246, .16);
  padding: .5rem .95rem; border-radius: var(--zuzy-radius-pill);
  margin-bottom: 1.2rem;
}
#lp-last-dance-it #sec-13 .lp__faqc-head h2 {
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  line-height: 1.02; letter-spacing: -.04em; font-weight: 800;
  color: var(--zuzy-ink); max-width: 18ch;
}
#lp-last-dance-it #sec-13 .lp__grad-text {
  background: var(--zuzy-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
#lp-last-dance-it #sec-13 .lp__faqc-intro {
  margin-top: clamp(1.1rem, 1.8vw, 1.5rem);
  font-size: clamp(1.2rem, 1.9vw, 1.55rem);
  line-height: 1.55; color: var(--zuzy-muted-text); max-width: 52ch;
}

/* ---- 50/50 grid: FAQ (start/right) · contact (end/left) ---- */
#lp-last-dance-it #sec-13 .lp__faqc-grid {
  display: grid;
  grid-template-columns: minmax(0, 44rem) minmax(0, 36rem);   /* Width Law v2 */
  justify-content: space-between;
  gap: clamp(2.4rem, 5vw, 4.5rem);
  align-items: start;                      /* columns end where their content ends — no stretch void */
}
@media (max-width: 880px) {
  #lp-last-dance-it #sec-13 .lp__faqc-grid {
    grid-template-columns: 1fr;          /* mobile: accordion ABOVE form (DOM order) */
    gap: clamp(2.4rem, 7vw, 3.4rem);
  }
}

/* ============ FAQ accordion (SHELL §6: <details> rows, hairline, +/− colour-only) ============ */
/* Column is a flex stack: the accordion list on top, the closing nudge anchored to the bottom
   (grid stretches this column to the taller contact column → the two columns share top AND
   bottom edges instead of leaving a void under the shorter FAQ). */
#lp-last-dance-it #sec-13 .lp__faq { display: flex; flex-direction: column; gap: clamp(1.4rem, 2.4vw, 1.9rem); }
#lp-last-dance-it #sec-13 .lp__faq__list { border-top: 1px solid #F1F5F9; }   /* R5-6 */
#lp-last-dance-it #sec-13 .lp__faq__item { border-bottom: 1px solid #F1F5F9; }   /* R5-6 */

#lp-last-dance-it #sec-13 .lp__faq__q {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1.25rem;
  padding-block: clamp(1.05rem, 1.6vw, 1.3rem);   /* de-bloated rows (Gil: over-padded) */
  font-size: clamp(1.05rem, 1.3vw, 1.2rem);
  font-weight: 700; letter-spacing: -.02em; color: var(--zuzy-fg);
  transition: color var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__faq__q::-webkit-details-marker { display: none; }
#lp-last-dance-it #sec-13 .lp__faq__q:hover { color: var(--zuzy-purple-600); }
#lp-last-dance-it #sec-13 .lp__faq__item[open] > .lp__faq__q { color: var(--zuzy-purple-600); }
#lp-last-dance-it #sec-13 .lp__faq__q:focus-visible {
  outline: none; box-shadow: var(--zuzy-ring);
  border-radius: var(--zuzy-radius-input);
}
#lp-last-dance-it #sec-13 .lp__faq__qtext { flex: 1; }

/* +/− affordance — horizontal bar persists, vertical bar fades on open (opacity-only) */
#lp-last-dance-it #sec-13 .lp__faq__icon {
  position: relative; width: 20px; height: 20px; flex: none; color: var(--zuzy-purple);
}
#lp-last-dance-it #sec-13 .lp__faq__icon::before,
#lp-last-dance-it #sec-13 .lp__faq__icon::after {
  content: ""; position: absolute; background: currentColor; border-radius: 2px;
  transition: opacity var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__faq__icon::before {  /* horizontal */
  inset-inline: 0; top: 50%; height: 2px; transform: translateY(-50%);
}
#lp-last-dance-it #sec-13 .lp__faq__icon::after {   /* vertical */
  inset-block: 0; left: 50%; width: 2px; transform: translateX(-50%);
}
#lp-last-dance-it #sec-13 .lp__faq__item[open] > .lp__faq__q .lp__faq__icon::after { opacity: 0; }

#lp-last-dance-it #sec-13 .lp__faq__a {
  padding-block: 0 clamp(.9rem, 1.5vw, 1.15rem);
  max-width: 62ch;
}
#lp-last-dance-it #sec-13 .lp__faq__a p {
  font-size: clamp(1rem, 1.15vw, 1.08rem);
  line-height: 1.7; color: var(--zuzy-muted-text);
}
#lp-last-dance-it #sec-13 .lp__faq__item[open] > .lp__faq__a {
  animation: lp13-faq-in var(--zuzy-dur-enter) var(--zuzy-ease);
}
@keyframes lp13-faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ---- closing nudge — bottom-anchored terminal CTA for the FAQ column (purple-tint panel,
        lighter than the white form card so the form stays the primary action) ---- */
/* R5-5: DARK-MODE inversion — the one inverted card on the light ground.
   Purple ground · white text · white CTA with purple text + purple WA icon. */
#lp-last-dance-it #sec-13 .lp__faq-nudge {
  display: flex; align-items: center; gap: clamp(.95rem, 2vw, 1.35rem);
  padding: clamp(1.15rem, 2.3vw, 1.55rem) clamp(1.25rem, 2.5vw, 1.7rem);
  background: linear-gradient(135deg, var(--zuzy-purple-600), var(--zuzy-purple));
  border: 0;
  border-radius: var(--zuzy-radius-card);
  box-shadow: 0 16px 40px -14px rgba(124, 58, 237, .35);
}
#lp-last-dance-it #sec-13 .lp__faq-nudge__ico {
  width: 44px; height: 44px; flex: none; border-radius: var(--zuzy-radius-card);
  display: grid; place-items: center;
  background: rgba(255, 255, 255, .16); color: #fff;
}
#lp-last-dance-it #sec-13 .lp__faq-nudge__ico svg { width: 24px; height: 24px; }
#lp-last-dance-it #sec-13 .lp__faq-nudge__body { flex: 1; min-width: 0; }
#lp-last-dance-it #sec-13 .lp__faq-nudge__title { font-size: 1.15rem; font-weight: 700; letter-spacing: -.02em; color: #fff; }
#lp-last-dance-it #sec-13 .lp__faq-nudge__sub { margin-top: .2rem; font-size: .93rem; line-height: 1.5; color: rgba(255, 255, 255, .85); }
#lp-last-dance-it #sec-13 .lp__faq-nudge .lp__faq-nudge__cta {
  flex: none; padding: .72rem 1.2rem; font-size: .95rem;
  background: #fff; color: var(--zuzy-purple-600);
  box-shadow: 0 2px 10px rgba(26, 24, 30, .12);
}
#lp-last-dance-it #sec-13 .lp__faq-nudge .lp__faq-nudge__cta:hover { filter: none; background: var(--zuzy-stone-50); }
#lp-last-dance-it #sec-13 .lp__faq-nudge .lp__faq-nudge__cta svg { color: var(--zuzy-purple-600); fill: currentColor; }
@media (max-width: 520px) {
  #lp-last-dance-it #sec-13 .lp__faq-nudge { flex-direction: column; align-items: flex-start; gap: .85rem; }
  #lp-last-dance-it #sec-13 .lp__faq-nudge__cta { width: 100%; }
}

/* ============ Contact column ============ */
#lp-last-dance-it #sec-13 .lp__contact { display: flex; flex-direction: column; gap: clamp(1.1rem, 2vw, 1.5rem); }

/* form card — white, gradient hairline seam on top (caliber echo) */
#lp-last-dance-it #sec-13 .lp__formcard {
  position: relative; isolation: isolate;
  background: #fff; color: var(--zuzy-fg);
  border: 1px solid var(--zuzy-line); border-radius: var(--zuzy-radius-card);
  /* R5-4: dramatic-elegant elevation — wide diffusion, low alpha, purple-tinted */
  box-shadow:
    0 24px 60px -18px rgba(52, 46, 76, .18),
    0 8px 24px -8px rgba(139, 92, 246, .10),
    0 2px 8px rgba(52, 46, 76, .05);
  padding: clamp(1.5rem, 3vw, 2.4rem);
  overflow: hidden;
}
#lp-last-dance-it #sec-13 .lp__formcard::before {
  content: ""; position: absolute; inset-block-start: 0; inset-inline: 0; height: 3px;
  background: var(--zuzy-grad);
}
#lp-last-dance-it #sec-13 .lp__formcard h3 {
  font-size: clamp(1.45rem, 2.3vw, 1.9rem);
  line-height: 1.15; letter-spacing: -.025em; color: var(--zuzy-ink);
}
/* design-r6 (R5-7): real face at the conversion point — avatar + title row */
#lp-last-dance-it #sec-13 .lp__form-head {
  display: flex; align-items: center; gap: clamp(.9rem, 1.8vw, 1.15rem);
}
#lp-last-dance-it #sec-13 .lp__form-avatar {
  width: 60px; height: 60px; flex: none; border-radius: var(--zuzy-radius-pill);
  object-fit: cover;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px rgba(139, 92, 246, .35), 0 4px 14px rgba(52, 46, 76, .14);
}
#lp-last-dance-it #sec-13 .lp__form-head-txt { min-width: 0; }
#lp-last-dance-it #sec-13 .lp__sub {
  margin-top: .5rem; font-size: clamp(1rem, 1.15vw, 1.08rem);
  line-height: 1.55; color: var(--zuzy-muted-text);
}

/* form layout */
#lp-last-dance-it #sec-13 .lp__form { margin-top: clamp(1rem, 1.8vw, 1.3rem); display: flex; flex-direction: column; gap: clamp(.7rem, 1.2vw, .9rem); }
#lp-last-dance-it #sec-13 .lp__frow { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.7rem, 1.2vw, .9rem); }
@media (max-width: 520px) { #lp-last-dance-it #sec-13 .lp__frow { grid-template-columns: 1fr; } }
#lp-last-dance-it #sec-13 .lp__field { display: block; min-width: 0; }
/* (label rows removed 2026-07-03 — placeholders carry the field names) */

/* inputs / textarea / select — DS field, realized */
#lp-last-dance-it #sec-13 .lp__input {
  width: 100%; font: 500 1rem var(--zuzy-font); color: var(--zuzy-fg);
  background: #fff; border: 1px solid var(--zuzy-line);   /* R5-2: pure white + extra-delicate hairline */
  border-radius: var(--zuzy-radius-input); padding: .8rem 1rem;
  transition: border-color var(--zuzy-dur-hover) var(--zuzy-ease),
              box-shadow var(--zuzy-dur-hover) var(--zuzy-ease),
              background var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__input::placeholder { color: var(--zuzy-stone-600); opacity: .8; }
#lp-last-dance-it #sec-13 .lp__input:hover { border-color: var(--zuzy-stone-400); }
#lp-last-dance-it #sec-13 .lp__input:focus { outline: none; border-color: var(--zuzy-purple); box-shadow: var(--zuzy-ring); background: #fff; }
#lp-last-dance-it #sec-13 textarea.lp__input { min-height: 92px; resize: vertical; line-height: 1.6; }

#lp-last-dance-it #sec-13 .lp__select-wrap { position: relative; display: flex; align-items: center; }
#lp-last-dance-it #sec-13 .lp__select { appearance: none; -webkit-appearance: none; cursor: pointer; padding-inline-end: 2.6rem; }
#lp-last-dance-it #sec-13 .lp__select-chev {
  position: absolute; inset-inline-end: 1rem; width: 16px; height: 16px;
  color: var(--zuzy-stone-600); pointer-events: none; display: flex;
}
#lp-last-dance-it #sec-13 .lp__select-chev svg { width: 100%; height: 100%; }

/* Switch (purple, native-checkbox driven) — WhatsApp-first channel toggle */
#lp-last-dance-it #sec-13 .lp__switch {
  position: relative; display: inline-flex; align-items: center; gap: .6rem; cursor: pointer; user-select: none;
  margin-top: .2rem;
}
#lp-last-dance-it #sec-13 .lp__switch__input { position: absolute; opacity: 0; width: 0; height: 0; }
#lp-last-dance-it #sec-13 .lp__switch__track {
  width: 42px; height: 24px; border-radius: var(--zuzy-radius-pill); background: var(--zuzy-stone-200);
  position: relative; flex: none; transition: background var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__switch__thumb {
  position: absolute; top: 3px; inset-inline-start: 3px; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; box-shadow: 0 1px 2px rgba(52, 46, 76, .3);
  transition: transform var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__switch__input:checked + .lp__switch__track { background: var(--zuzy-purple); }
#lp-last-dance-it #sec-13 .lp__switch__input:checked + .lp__switch__track .lp__switch__thumb { transform: translateX(18px); }
[dir="rtl"] #lp-last-dance-it #sec-13 .lp__switch__input:checked + .lp__switch__track .lp__switch__thumb { transform: translateX(-18px); }
#lp-last-dance-it #sec-13 .lp__switch__input:focus-visible + .lp__switch__track { box-shadow: var(--zuzy-ring); }
#lp-last-dance-it #sec-13 .lp__switch__label { font-size: .95rem; color: var(--zuzy-fg); font-weight: 500; }

/* Checkbox (teal, native-checkbox driven) — consent (required) */
#lp-last-dance-it #sec-13 .lp__check {
  position: relative; display: flex; align-items: flex-start; gap: .6rem; cursor: pointer; user-select: none;
  font-size: .95rem; color: var(--zuzy-fg); line-height: 1.5;
}
#lp-last-dance-it #sec-13 .lp__check__input { position: absolute; opacity: 0; width: 0; height: 0; }
#lp-last-dance-it #sec-13 .lp__check__box {
  width: 22px; height: 22px; flex: none; border-radius: 6px;
  border: 1.5px solid var(--zuzy-stone-400); background: #fff;
  display: grid; place-items: center; margin-top: 1px;
  transition: background var(--zuzy-dur-hover) var(--zuzy-ease), border-color var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__check__box svg { width: 13px; height: 13px; color: #fff; opacity: 0; transition: opacity var(--zuzy-dur-hover) var(--zuzy-ease); }
#lp-last-dance-it #sec-13 .lp__check__input:checked + .lp__check__box { background: var(--zuzy-teal); border-color: var(--zuzy-teal); }
#lp-last-dance-it #sec-13 .lp__check__input:checked + .lp__check__box svg { opacity: 1; }
#lp-last-dance-it #sec-13 .lp__check__input:focus-visible + .lp__check__box { box-shadow: var(--zuzy-ring); }
#lp-last-dance-it #sec-13 .lp__check--err .lp__check__box { border-color: var(--zuzy-status-error); }
#lp-last-dance-it #sec-13 .lp__check__label { font-weight: 500; }
#lp-last-dance-it #sec-13 .lp__consent-link {
  color: var(--zuzy-purple-600); text-decoration: underline; text-underline-offset: 2px;
}
#lp-last-dance-it #sec-13 .lp__consent-link:hover { color: var(--zuzy-purple); }

/* error line */
#lp-last-dance-it #sec-13 .lp__form-err { font-size: .88rem; color: var(--zuzy-status-error); font-weight: 600; }
#lp-last-dance-it #sec-13 .lp__form-err[hidden] { display: none; }

/* Button — DS, hover colour/opacity only (SHELL §6/§7) */
#lp-last-dance-it #sec-13 .lp__btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font: 600 1rem/1 var(--zuzy-font); padding: .95rem 1.6rem;
  border-radius: var(--zuzy-radius-btn); border: 1.5px solid transparent; cursor: pointer;
  transition: background var(--zuzy-dur-hover) var(--zuzy-ease), color var(--zuzy-dur-hover) var(--zuzy-ease),
              filter var(--zuzy-dur-hover) var(--zuzy-ease), box-shadow var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__btn svg { width: 1.2em; height: 1.2em; }
#lp-last-dance-it #sec-13 .lp__btn--primary { background: var(--zuzy-purple); color: #fff; box-shadow: 0 8px 20px rgba(139, 92, 246, .32); }
#lp-last-dance-it #sec-13 .lp__btn--primary:hover { background: var(--zuzy-purple-600); }
#lp-last-dance-it #sec-13 .lp__btn--wa { background: var(--wa); color: #fff; box-shadow: 0 2px 10px rgba(30, 135, 75, .14);   /* R5-1: glow killed — minimal body trace */ }
#lp-last-dance-it #sec-13 .lp__btn--wa:hover { filter: brightness(.96); }
#lp-last-dance-it #sec-13 .lp__btn:focus-visible { outline: none; box-shadow: var(--zuzy-ring); }
#lp-last-dance-it #sec-13 .lp__form-submit { width: 100%; margin-top: .4rem; }

#lp-last-dance-it #sec-13 .lp__form-note { font-size: .85rem; color: var(--zuzy-muted-text); text-align: center; line-height: 1.5; }
#lp-last-dance-it #sec-13 .lp__form-tel { font-size: .92rem; color: var(--zuzy-muted-text); text-align: center; }
#lp-last-dance-it #sec-13 .lp__tel-link {
  color: var(--zuzy-purple-600); font-weight: 600;
  background-image: linear-gradient(var(--zuzy-purple-600), var(--zuzy-purple-600));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1.5px;
  transition: background-size var(--zuzy-dur-hover) var(--zuzy-ease);
}
#lp-last-dance-it #sec-13 .lp__tel-link:hover { background-size: 100% 1.5px; }
#lp-last-dance-it #sec-13 .lp__tel-link:focus-visible { outline: none; box-shadow: var(--zuzy-ring); border-radius: 4px; }

/* ---- pending booking widget — labelled placeholder (⛔ Gil places) ---- */
#lp-last-dance-it #sec-13 .lp__widget-ph {
  display: flex; align-items: center; gap: .9rem;
  padding: clamp(1rem, 2vw, 1.3rem) clamp(1.1rem, 2.2vw, 1.5rem);
  border: 1.5px dashed var(--zuzy-stone-400); border-radius: var(--zuzy-radius-card);
  background: var(--zuzy-surface); color: var(--zuzy-muted-text);
}
#lp-last-dance-it #sec-13 .lp__widget-ph__icon {
  width: 40px; height: 40px; flex: none; border-radius: 10px;
  display: grid; place-items: center;
  background: rgba(139, 92, 246, .10); color: var(--zuzy-purple-600);
}
#lp-last-dance-it #sec-13 .lp__widget-ph__icon svg { width: 22px; height: 22px; }
#lp-last-dance-it #sec-13 .lp__widget-ph__title { font-size: 1rem; font-weight: 700; color: var(--zuzy-fg); }


/* ============ Reduced motion — dual gate (SHELL §7): show final state ============ */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it #sec-13 *,
  #lp-last-dance-it #sec-13 *::before,
  #lp-last-dance-it #sec-13 *::after { animation: none !important; transition: none !important; }
}
html.reduced-motion #lp-last-dance-it #sec-13 *,
html.reduced-motion #lp-last-dance-it #sec-13 *::before,
html.reduced-motion #lp-last-dance-it #sec-13 *::after { animation: none !important; transition: none !important; }


/* ============================================================
   FOLDED SECTION CSS — §F · Footer + FAB
   (from areas/footer/section.css, verbatim; asset paths de-../../'d)
   ============================================================ */
/* ============================================================
   LAST DANCE IT — §F FOOTER (+ FAB)  ·  drop-in styles
   For areas/footer/section.html. Scope: #lp-last-dance-it (WP-safe).
   Dark ground (--zuzy-ink-2), gradient hairline seam, asymmetric
   two-zone (wide brand statement + 4-col nav rail), teal-tinted
   contact icons, full-bleed copyright rule, fixed FAB.
   Motion contract (SHELL §6/§7): the ONE brand curve (--zuzy-ease)
   only · color-only hovers (no lift/scale) · transform/opacity only ·
   every animation guarded behind prefers-reduced-motion AND
   html.reduced-motion AND touch (hover:none / pointer:coarse).
   Self-contained: tokens are the canonical --zuzy-* contract; the DS
   Button (.zz-btn) is inlined scoped so the footer renders without an
   external stylesheet (matches the workspace "self-contained" law).
   ============================================================ */

/* — Page-local vars (un-prefixed, allowed per SHELL §1) — */
#lp-last-dance-it {
  --wa: #1E874B;
  --on-dark: #fdfcff;
  --on-dark-muted: rgba(253, 252, 255, .72);
  --on-dark-dim: rgba(253, 252, 255, .50);
  --foot-hairline: rgba(253, 252, 255, .08);
}

/* one gradient word max (SHELL §2/§4) — self-contained, no DS-class dependency */
#lp-last-dance-it .lp__grad-text {
  background: var(--zuzy-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* ============================================================
   DS Button (scoped copy of design-system .zz-btn) — color-only
   hover per the page motion lock (SHELL §7): NO translate/scale.
   ============================================================ */
#lp-last-dance-it .zz-btn {
  font-family: var(--zuzy-font); font-weight: 600; font-size: 14px; line-height: 1;
  border-radius: var(--zuzy-radius-btn); padding: 0 18px; height: 40px;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--zuzy-space-sm, 8px);
  border: 1px solid transparent; cursor: pointer; text-decoration: none; white-space: nowrap;
  transition: background var(--zuzy-dur-hover, .18s) var(--zuzy-ease),
              color var(--zuzy-dur-hover, .18s) var(--zuzy-ease),
              border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .zz-btn:focus-visible { outline: none; box-shadow: var(--zuzy-ring); }
#lp-last-dance-it .zz-btn--primary { background: var(--zuzy-purple); color: #fff; box-shadow: var(--zuzy-shadow); }
#lp-last-dance-it .zz-btn--primary:hover { background: var(--zuzy-purple-600); }   /* color-only */
#lp-last-dance-it .zz-btn--primary:active { background: var(--zuzy-purple-600); }
#lp-last-dance-it .zz-btn--lg { height: 48px; font-size: 16px; padding: 0 24px; }

/* ============================================================
   Footer shell — dark indigo ground + faint purple/teal glow
   ============================================================ */
#lp-last-dance-it .lp__footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--on-dark-muted);
  background:
    radial-gradient(58% 120% at 88% 0%, rgba(139, 92, 246, .16), transparent 60%),
    radial-gradient(50% 120% at 6% 0%,  rgba(20, 184, 166, .10), transparent 55%),
    var(--zuzy-ink-2);
}
/* gradient hairline (purple -> teal) seam at the top edge */
#lp-last-dance-it .lp__footer::before {
  content: ""; position: absolute; inset-inline: 0; top: 0; height: 2px; z-index: 1;
  background: var(--zuzy-grad); opacity: .9;
}

/* two-zone grid: wide brand statement + 4-col nav rail (asymmetric, airy) */
/* Footer axis (Gil 2026-07-03): ALL footer bands share the standard .lp__wrap 1200
   measure — the logos+trust band sets the truth; no per-band width overrides. */
/* Reference layout (Gil 2026-07-03): ONE statement row on top (start-aligned,
   never wraps), the 4 nav columns below it spanning the full measure. */
#lp-last-dance-it .lp__foot-grid {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.7rem, 2.6vw, 2.4rem);
  align-items: start;
  padding-block: clamp(2.8rem, 4.5vw, 4rem) clamp(1.8rem, 3vw, 2.5rem);
}

/* ---------- Brand / closing-statement row ---------- */
#lp-last-dance-it .lp__foot-logo {
  display: inline-flex; line-height: 0; border-radius: 4px;
  transition: opacity var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__foot-logo:hover { opacity: .85; }
#lp-last-dance-it .lp__foot-logo:focus-visible { outline: 2px solid var(--zuzy-purple); outline-offset: 4px; }
#lp-last-dance-it .lp__foot-logo-svg { display: block; height: clamp(28px, 3vw, 34px); width: auto; }

#lp-last-dance-it .lp__foot-statement {
  margin: 0; color: var(--on-dark); font-weight: 600;
  font-size: clamp(1.3rem, 2.3vw, 1.85rem); line-height: 1.2; letter-spacing: -.02em;
  text-align: start;              /* one RTL row, no centering / width caps that wrap it */
}

/* ---------- Nav rail: 4 labelled columns ---------- */
/* columns hug their content and anchor to BOTH measure edges (reference law:
   every footer band terminates on the same two edges) */
#lp-last-dance-it .lp__foot-nav {
  display: grid; grid-template-columns: repeat(4, auto);
  justify-content: space-between;
  gap: clamp(1.6rem, 3vw, 2.4rem) clamp(1.1rem, 2vw, 1.8rem);
}
#lp-last-dance-it .lp__foot-col { min-width: 0; }
#lp-last-dance-it .lp__foot-label {
  margin: 0 0 clamp(.9rem, 1.6vw, 1.15rem); color: var(--on-dark);
  font-size: .82rem; font-weight: 600; letter-spacing: .04em; line-height: 1;
}
#lp-last-dance-it .lp__foot-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: clamp(.55rem, 1vw, .8rem);
}
#lp-last-dance-it .lp__foot-li { display: flex; align-items: center; gap: .65rem; }
#lp-last-dance-it .lp__foot-link {
  color: var(--on-dark-muted); text-decoration: none; font-size: .95rem; line-height: 1.5;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__foot-link:hover { color: var(--on-dark); }
#lp-last-dance-it .lp__foot-link:focus-visible {
  outline: 2px solid var(--zuzy-purple); outline-offset: 3px; color: var(--on-dark); border-radius: 3px;
}
/* teal-tinted contact icons (SHELL §8) — color-only hover, no transform */
#lp-last-dance-it .lp__foot-ic {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 1.9rem; height: 1.9rem; border-radius: var(--zuzy-radius-input);
  background: rgba(20, 184, 166, .12); color: var(--zuzy-teal);
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease),
              background var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__foot-ic svg { width: 1rem; height: 1rem; }
#lp-last-dance-it .lp__foot-li:hover .lp__foot-ic { color: var(--zuzy-teal-600); background: rgba(20, 184, 166, .18); }

/* ---------- Pending placeholders (⛔ Gil places: logos / Trust Index / social) ---------- */


/* ---------- Trust / logos strip — partner & tech logo wall (R2) ----------
   Reuses the §10 card language as a STATIC grid: 7×2 on desktop, 5×3 on mobile.
   White cards keep the marks legible on the dark ground; static (no hover/anim),
   so the SHELL §6/§7 motion lock is trivially satisfied. */
#lp-last-dance-it .lp__foot-trust {
  position: relative; z-index: 1;
  border-top: 1px solid var(--foot-hairline);
  padding-block: clamp(1.5rem, 2.5vw, 2.25rem);
}
/* G-FOOTER R2 — logos + Trust Index as two columns (logos | badge), not stacked.
   Spacing polish (Gil 2026-07-03): the logo wall is width-capped so its 6 cells hug
   the marks (widest mark = 96px at the 52px height cap → ~100px cells) instead of
   stretching apart, and the wall↔badge channel is wide and deliberate. */
/* Gil's spec (2026-07-03): TWO columns, 80 / 20 — logos live in the 80, the
   Trust-Index badge in the 20; inside the 80 the marks sit tight and uniform. */
#lp-last-dance-it .lp__foot-trust-grid {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 1fr);
  gap: 0; align-items: center;
}
#lp-last-dance-it .lp__foot-logos-col { min-width: 0; }
#lp-last-dance-it .lp__foot-logos {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(6, auto);   /* cells hug the marks */
  justify-content: start;                                  /* wall anchors at the start edge */
  gap: 1.75rem clamp(2rem, 2.8vw, 2.75rem);                /* tight, uniform optical gaps */
  align-items: center; justify-items: center;
}
#lp-last-dance-it .lp__foot-ti { justify-self: center; }   /* badge centered in its 20% column */
#lp-last-dance-it .lp__foot-logo-cell {
  display: grid; place-items: center; width: 100%;
  height: clamp(40px, 4.4vw, 52px);
  background: transparent;            /* G-FOOTER R2 — transparent grey-monochrome SVGs (assets/certs); no card, no filter */
}
#lp-last-dance-it .lp__foot-logo-cell img {
  display: block; width: auto; height: 100%;
  max-height: clamp(40px, 4.4vw, 52px); max-width: 100%;
  object-fit: contain;
}
/* Trust Index embed slot — self-sizes to the widget; the :has() guard collapses
   the top margin until the loader actually injects the widget (empty/offline). */
#lp-last-dance-it .lp__foot-ti { margin: 0; zoom: .72; }   /* beside the logos; zoomed down — the TI badge renders oversized for the band (Gil 2026-07-03) */
#lp-last-dance-it .lp__foot-ti:not(:has(*:not(script))) { margin: 0; }

/* ---------- Copyright bar (full-bleed rule) ---------- */
#lp-last-dance-it .lp__copy { position: relative; z-index: 1; border-top: 1px solid var(--foot-hairline); }
#lp-last-dance-it .lp__copy-inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .7rem 1.4rem; padding-block: clamp(1.3rem, 2.4vw, 1.8rem);
  font-size: .82rem; color: var(--on-dark-dim);
}
/* brand cluster — logo lockup + rights + disclaimer at the bar's start (reference
   layout); the social icons sit alone at the far end. */
#lp-last-dance-it .lp__copy-brand { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.1rem; }
#lp-last-dance-it .lp__foot-logo--copy .lp__foot-logo-svg { height: 20px; }
#lp-last-dance-it .lp__copy-rights { color: var(--on-dark-muted); }
#lp-last-dance-it .lp__copy-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
/* legal row — absolute links to the root site's legal pages (subdomain has none of its own) */
#lp-last-dance-it .lp__copy-legal { display: inline-flex; align-items: center; gap: 1.1rem; }
#lp-last-dance-it .lp__legal-link {
  color: var(--on-dark-muted); text-decoration: none; font-size: .82rem;
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease);
}
#lp-last-dance-it .lp__legal-link:hover { color: var(--on-dark); }
/* G-FOOTER R2 — social icons (links to be wired; href="#" placeholders) */
#lp-last-dance-it .lp__social { display: inline-flex; align-items: center; gap: .55rem; }
#lp-last-dance-it .lp__social-ic {
  display: grid; place-items: center; width: 34px; height: 34px;
  border-radius: 50%; color: var(--on-dark-muted);
  border: 1px solid var(--foot-hairline);
  transition: color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease), border-color var(--zuzy-dur-hover, .18s) var(--zuzy-ease, ease);
}
#lp-last-dance-it .lp__social-ic:hover { color: var(--on-dark); border-color: rgba(253, 252, 255, .32); }
#lp-last-dance-it .lp__social-ic svg { width: 17px; height: 17px; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  /* logo wall: 6-col → 4-col on mobile (≈3 rows for 11 marks) */
  #lp-last-dance-it .lp__foot-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  /* G-FOOTER R2 — stack the 2-col trust strip on mobile */
  #lp-last-dance-it .lp__foot-trust-grid { grid-template-columns: 1fr; gap: clamp(1.2rem, 3vw, 1.8rem); }
  #lp-last-dance-it .lp__foot-ti { justify-self: start; }
}
@media (max-width: 560px) {
  #lp-last-dance-it .lp__foot-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #lp-last-dance-it .lp__copy-inner { justify-content: flex-start; }
}

/* ---------- Reduced-motion: footer transitions off ---------- */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__foot-link,
  #lp-last-dance-it .lp__foot-ic,
  #lp-last-dance-it .lp__foot-logo,
  #lp-last-dance-it .zz-btn { transition: none; }
}
html.reduced-motion #lp-last-dance-it .lp__foot-link,
html.reduced-motion #lp-last-dance-it .lp__foot-ic,
html.reduced-motion #lp-last-dance-it .lp__foot-logo,
html.reduced-motion #lp-last-dance-it .zz-btn { transition: none; }

/* ============================================================
   Floating actions (FAB) — page-level WA + tel, fixed
   Fake elevation via ::after opacity (no transform); idle pulse
   ring on WhatsApp (transform/opacity); touch + reduced-motion guarded.
   ============================================================ */
#lp-last-dance-it .lp__fab {
  position: fixed; inset-block-end: 18px; inset-inline-end: 18px; z-index: 50;
  display: flex; flex-direction: column; gap: .65rem;
}
#lp-last-dance-it .lp__fab-btn {
  position: relative; width: 54px; height: 54px; border-radius: var(--zuzy-radius-pill);
  display: grid; place-items: center; color: #fff; text-decoration: none;
}
#lp-last-dance-it .lp__fab-wa  { background: var(--wa); }
#lp-last-dance-it .lp__fab-tel { background: var(--zuzy-grad); }
#lp-last-dance-it .lp__fab-ico { width: 26px; height: 26px; position: relative; z-index: 2; }
/* fake elevation via ::after opacity (no transform — SHELL §6/§7) */
#lp-last-dance-it .lp__fab-btn::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 0;
  box-shadow: var(--zuzy-shadow-lg); opacity: .55;
  transition: opacity var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__fab-btn:hover::after,
#lp-last-dance-it .lp__fab-btn:focus-visible::after { opacity: 1; }
#lp-last-dance-it .lp__fab-btn:focus-visible { outline: none; box-shadow: var(--zuzy-ring); }
/* desktop label pill — opacity-only reveal (no translate) */
#lp-last-dance-it .lp__fab-label {
  position: absolute; inset-inline-end: calc(100% + .55rem); top: 50%; transform: translateY(-50%);
  white-space: nowrap; pointer-events: none; background: var(--zuzy-ink); color: #fff;
  font-size: .82rem; font-weight: 600; line-height: 1; padding: .5rem .7rem;
  border-radius: var(--zuzy-radius-pill); opacity: 0;
  transition: opacity var(--zuzy-dur-hover, .18s) var(--zuzy-ease);
}
#lp-last-dance-it .lp__fab-label::after {
  content: ""; position: absolute; inset-inline-end: -4px; top: 50%;
  width: 8px; height: 8px; background: inherit; transform: translateY(-50%) rotate(45deg);
}
#lp-last-dance-it .lp__fab-btn:hover .lp__fab-label,
#lp-last-dance-it .lp__fab-btn:focus-visible .lp__fab-label { opacity: 1; }
/* idle pulse ring on WhatsApp (transform/opacity only) */
#lp-last-dance-it .lp__fab-ring {
  position: absolute; inset: 0; border-radius: inherit; z-index: 1;
  background: var(--wa); opacity: .5;
  animation: lp-fab-pulse 2.6s var(--zuzy-ease) infinite;
}
@keyframes lp-fab-pulse {
  0%   { transform: scale(1);   opacity: .5; }
  70%  { transform: scale(1.5); opacity: 0;  }
  100% { transform: scale(1.5); opacity: 0;  }
}
/* guards — touch: kill the pulse + the desktop label */
@media (hover: none), (pointer: coarse) {
  #lp-last-dance-it .lp__fab-ring { animation: none; opacity: 0; }
  #lp-last-dance-it .lp__fab-label { display: none; }
}
/* guards — reduced-motion */
@media (prefers-reduced-motion: reduce) {
  #lp-last-dance-it .lp__fab-ring { animation: none; opacity: 0; }
  #lp-last-dance-it .lp__fab-btn::after,
  #lp-last-dance-it .lp__fab-label { transition: none; }
}
html.reduced-motion #lp-last-dance-it .lp__fab-ring { animation: none; opacity: 0; }
html.reduced-motion #lp-last-dance-it .lp__fab-btn::after,
html.reduced-motion #lp-last-dance-it .lp__fab-label { transition: none; }
@media (max-width: 480px) {
  #lp-last-dance-it .lp__fab { inset-block-end: max(14px, env(safe-area-inset-bottom)); inset-inline-end: 14px; }
}

/* ============================================================
   G-GRAD (Phase 1, decision D-2) — remove the heading gradient globally.
   The kicker→H2→intro "one gradient word" treatment is flattened to a solid
   colour everywhere. Uses color:inherit (NOT a fixed ink) so the word matches
   its own heading on BOTH light and dark grounds (e.g. §7 CTA, footer).
   Authoritative end-of-file override: the per-section id-scoped copies
   (§7/§11/§13) are matched here too, so they fold by source order — no
   !important needed. The now-dead .*-grad-text / .lp__cat-grad definitions
   above are left in place for the later D-4 hygiene sweep to dedupe.
   EXCLUDED on purpose: the §9 stat numeral keeps its SHELL-§2-LOCKED viz
   gradient (#7C3AED→#49F5F4) — that is data-viz, not a heading word. */
#lp-last-dance-it .zz-grad-text,
#lp-last-dance-it .lp__grad-text,
#lp-last-dance-it #sec-7 .zz-grad-text,
#lp-last-dance-it #sec-11 .lp__cat-grad,
#lp-last-dance-it #sec-13 .lp__grad-text {
  background: none;
  -webkit-background-clip: border-box;
          background-clip: border-box;
  color: inherit;
  -webkit-text-fill-color: currentColor;
}
