/* =========================================================================
 * WEEDN · Motion + Atmosphere layer (frontend-design skill, 2026-04-29)
 * Additive only. Never touches existing tokens / components.
 *
 * Direction: "Lab-streetwear amplified"
 *   Bebas Neue rises orchestrated → neon glows breathe → noise grain over
 *   ambient radial halo → product cards lift on hover → scroll reveals.
 * ========================================================================= */

/* ---------- Atmosphere: ambient halo + grain ---------- */
body {
  position: relative;
  overflow-x: clip;
}
body::before {
  content: "";
  position: fixed;
  inset: -10vh -10vw auto -10vw;
  height: 78vh;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(60% 60% at 50% 0%,
      var(--w-accent-soft, rgba(57,255,122,0.10)) 0%,
      transparent 70%);
  mix-blend-mode: screen;
  opacity: .9;
  transition: background .6s ease;
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: .04;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
/* ensure layout sits above atmosphere */
.site-header, main, .site-footer { position: relative; z-index: 1; }

/* ---------- Page-load orchestration: rise + reveal ---------- */
@keyframes w-rise {
  from { opacity: 0; transform: translateY(14px); letter-spacing: .04em; filter: blur(2px); }
  to   { opacity: 1; transform: translateY(0);     letter-spacing: 0;     filter: blur(0);   }
}
@keyframes w-fade {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0);   }
}

.site-header__logo,
.site-header__nav .menu-item:nth-child(1),
.site-header__nav .menu-item:nth-child(2),
.site-header__nav .menu-item:nth-child(3),
.site-header__nav .menu-item:nth-child(4),
.site-header__nav .menu-item:nth-child(5),
.site-header__nav .menu-item:nth-child(6),
.site-header__nav .menu-item:nth-child(7),
.site-header__nav .menu-item:nth-child(8),
.site-header__actions {
  animation: w-fade .55s cubic-bezier(.2,.65,.3,1) both;
}
.site-header__logo                          { animation-delay: 60ms; }
.site-header__nav .menu-item:nth-child(1)   { animation-delay: 140ms; }
.site-header__nav .menu-item:nth-child(2)   { animation-delay: 180ms; }
.site-header__nav .menu-item:nth-child(3)   { animation-delay: 220ms; }
.site-header__nav .menu-item:nth-child(4)   { animation-delay: 260ms; }
.site-header__nav .menu-item:nth-child(5)   { animation-delay: 300ms; }
.site-header__nav .menu-item:nth-child(6)   { animation-delay: 340ms; }
.site-header__nav .menu-item:nth-child(7)   { animation-delay: 380ms; }
.site-header__nav .menu-item:nth-child(8)   { animation-delay: 420ms; }
.site-header__actions                       { animation-delay: 460ms; }

/* Big display text (Bebas Neue) gets a more dramatic rise */
h1, .display-1, .display-xl,
.v2-extras-h2, .wh-section h1, .wh-section h2 {
  animation: w-rise .9s cubic-bezier(.2,.65,.3,1) both;
  animation-delay: 200ms;
}
h1 + p, .display-1 + p, .v2-extras-h2 + p {
  animation: w-fade .8s cubic-bezier(.2,.65,.3,1) both;
  animation-delay: 480ms;
}

/* MOLÉCULES band: dramatic entrance to assert importance */
.site-header__mol {
  animation: w-fade .7s cubic-bezier(.2,.65,.3,1) both;
  animation-delay: 540ms;
}
.site-header__mol-label {
  animation: w-rise .6s cubic-bezier(.2,.65,.3,1) both;
  animation-delay: 580ms;
}
.site-header__mol-menu li {
  animation: w-fade .5s cubic-bezier(.2,.65,.3,1) both;
  animation-delay: calc(640ms + var(--i, 0) * 40ms);
}
.site-header__mol-menu li:nth-child(1)  { --i: 0; }
.site-header__mol-menu li:nth-child(2)  { --i: 1; }
.site-header__mol-menu li:nth-child(3)  { --i: 2; }
.site-header__mol-menu li:nth-child(4)  { --i: 3; }
.site-header__mol-menu li:nth-child(5)  { --i: 4; }
.site-header__mol-menu li:nth-child(6)  { --i: 5; }
.site-header__mol-menu li:nth-child(7)  { --i: 6; }
.site-header__mol-menu li:nth-child(8)  { --i: 7; }
.site-header__mol-menu li:nth-child(9)  { --i: 8; }

/* ---------- Living glows: subtle breathe on neon accents ---------- */
@keyframes w-breathe {
  0%,100% { filter: brightness(.92); }
  50%     { filter: brightness(1.08); }
}
.text-neon,
.site-header__logo-text .text-neon,
.w-badge--cbd,
.w-badge--molecules,
[data-cat="cbd"]  .accent-glow,
[data-cat="molecules"] .accent-glow {
  animation: w-breathe 2.4s ease-in-out infinite;
  will-change: filter;
}

/* ---------- Scroll reveal (toggled by IntersectionObserver) ---------- */
.w-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .9s cubic-bezier(.2,.65,.3,1),
              transform .9s cubic-bezier(.2,.65,.3,1);
  will-change: opacity, transform;
}
.w-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children inside revealed groups */
.w-reveal-group.is-revealed > *  { animation: w-fade .7s cubic-bezier(.2,.65,.3,1) both; }
.w-reveal-group.is-revealed > *:nth-child(1) { animation-delay: 0ms; }
.w-reveal-group.is-revealed > *:nth-child(2) { animation-delay: 80ms; }
.w-reveal-group.is-revealed > *:nth-child(3) { animation-delay: 160ms; }
.w-reveal-group.is-revealed > *:nth-child(4) { animation-delay: 240ms; }
.w-reveal-group.is-revealed > *:nth-child(5) { animation-delay: 320ms; }
.w-reveal-group.is-revealed > *:nth-child(6) { animation-delay: 400ms; }
.w-reveal-group.is-revealed > *:nth-child(7) { animation-delay: 480ms; }
.w-reveal-group.is-revealed > *:nth-child(8) { animation-delay: 560ms; }

/* ---------- Product card lift on hover ---------- */
ul.products li.product,
.product-card,
.wh-product-card {
  transition: transform .25s cubic-bezier(.2,.65,.3,1),
              box-shadow .25s ease,
              border-color .25s ease;
  will-change: transform;
}
ul.products li.product:hover,
.product-card:hover,
.wh-product-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 6px 24px rgba(0,0,0,.4),
    0 0 0 1px var(--w-accent, #39ff7a),
    var(--w-accent-glow, 0 0 24px rgba(57,255,122,.25));
}

/* Arrow nudge on link hover (where present) */
.read-more::after, .more-link::after, a[class*="read"]:not([class*="reading"])::after {
  display: inline-block;
  margin-left: .35em;
  transition: transform .2s ease;
}
.read-more:hover::after, .more-link:hover::after, a[class*="read"]:hover:not([class*="reading"])::after {
  transform: translateX(4px);
}

/* ---------- Focus-visible: branded outline ---------- */
*:focus-visible {
  outline: 2px solid var(--w-accent, #39ff7a) !important;
  outline-offset: 4px !important;
  border-radius: 2px;
}

/* ---------- Section divider: hairline + mono caption ---------- */
.w-divider {
  display: flex; align-items: center; gap: 14px;
  margin: 48px 0 24px;
  font-family: var(--w-mono, "JetBrains Mono", monospace);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--w-mute, #5f6864);
}
.w-divider::before, .w-divider::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--w-line, #1e2622) 30%, var(--w-line) 70%, transparent);
}

/* ---------- Reduced motion: respect user preference ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .w-reveal { opacity: 1 !important; transform: none !important; }
  body::before { animation: none !important; }
}

/* =========================================================================
 * NAV DROPDOWNS — added 2026-04-29
 * Theme didn't style sub-menus (menu used to be flat). Make parents reveal
 * children on hover/focus, absolutely positioned so they don't push layout.
 * ========================================================================= */
.site-header__nav .nav-menu,
.site-header__nav .nav-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-header__nav .nav-menu {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 36px);
}
.site-header__nav .nav-menu > li {
  position: relative;
}
.site-header__nav .nav-menu > li > a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 10px 0;
  color: var(--w-ink, #eef4ef);
  text-decoration: none;
  font-family: var(--w-display, "Bebas Neue", sans-serif);
  font-size: 15px;
  letter-spacing: .12em;
  text-transform: uppercase;
  position: relative;
  transition: color .18s ease;
}
.site-header__nav .nav-menu > li > a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 4px;
  height: 1px;
  background: var(--w-accent, #39ff7a);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s cubic-bezier(.2,.65,.3,1);
}
.site-header__nav .nav-menu > li:hover > a,
.site-header__nav .nav-menu > li.current-menu-item > a,
.site-header__nav .nav-menu > li.current-menu-parent > a {
  color: var(--w-accent, #39ff7a);
}
.site-header__nav .nav-menu > li:hover > a::after,
.site-header__nav .nav-menu > li.current-menu-item > a::after {
  transform: scaleX(1);
}
.site-header__nav .nav-menu > li.menu-item-has-children > a::before {
  content: "▾";
  margin-right: 4px;
  font-size: .7em;
  opacity: .55;
  transform: translateY(-1px);
}

/* Sub-menu: absolute drop, hidden by default */
.site-header__nav .nav-menu .sub-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  display: flex;
  flex-direction: column;
  min-width: 240px;
  padding: 8px;
  background: var(--w-panel, #121814);
  border: 1px solid var(--w-line, #1e2622);
  border-radius: 4px;
  box-shadow:
    0 16px 40px rgba(0,0,0,.55),
    0 0 0 1px rgba(255,255,255,.02) inset;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity .22s ease,
    transform .22s cubic-bezier(.2,.65,.3,1),
    visibility 0s linear .22s;
  z-index: 200;
}
.site-header__nav .nav-menu > li:hover > .sub-menu,
.site-header__nav .nav-menu > li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition-delay: 0s;
}
.site-header__nav .nav-menu .sub-menu li {
  list-style: none;
}
.site-header__nav .nav-menu .sub-menu a {
  display: block;
  padding: 10px 14px;
  color: var(--w-sub, #8e978f);
  font-family: var(--w-sans, "DM Sans", sans-serif);
  font-size: 14px;
  letter-spacing: .02em;
  text-transform: none;
  text-decoration: none;
  border-radius: 2px;
  transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.site-header__nav .nav-menu .sub-menu a:hover,
.site-header__nav .nav-menu .sub-menu a:focus-visible {
  background: var(--w-moss, #14221a);
  color: var(--w-accent, #39ff7a);
  padding-left: 18px;
}

/* Mobile (<1100px): burger reveals stacked menu, sub-menus inline indented */
@media (max-width: 1099px) {
  .site-header__nav { display: none; }
  .site-header__nav.is-open {
    display: block;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--w-bg, #070a08);
    border-top: 1px solid var(--w-line, #1e2622);
    padding: 16px 24px;
    z-index: 100;
  }
  .site-header__nav .nav-menu { flex-direction: column; align-items: stretch; gap: 0; }
  .site-header__nav .nav-menu > li { border-bottom: 1px solid var(--w-line, #1e2622); }
  .site-header__nav .nav-menu > li:last-child { border-bottom: none; }
  .site-header__nav .nav-menu > li > a { padding: 14px 0; font-size: 18px; letter-spacing: .14em; }
  .site-header__nav .nav-menu .sub-menu {
    position: static;
    transform: none !important;
    opacity: 1; visibility: visible; pointer-events: auto;
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0 0 12px 16px;
    min-width: 0;
    border-left: 1px solid var(--w-mol, #b14bff);
    margin: 0 0 8px 4px;
    transition: none;
  }
  .site-header__nav .nav-menu .sub-menu a { padding: 8px 12px; font-size: 14px; }
}

/* =========================================================================
 * PRODUCT MARQUEE — auto-scroll défilé, pause on hover
 * ========================================================================= */
.w-marquee {
  position: relative;
  overflow: hidden;
  padding: 56px 0 64px;
  background: linear-gradient(180deg, transparent, var(--w-bg-2, #0d1210) 30%, var(--w-bg-2) 70%, transparent);
  border-top: 1px solid var(--w-line, #1e2622);
  border-bottom: 1px solid var(--w-line, #1e2622);
}
.w-marquee__head {
  display: flex; align-items: baseline; justify-content: space-between;
  max-width: 1280px; margin: 0 auto 28px; padding: 0 24px;
  gap: 24px;
}
.w-marquee__label {
  font-family: var(--w-mono, "JetBrains Mono", monospace);
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--w-accent, #39ff7a);
  text-shadow: 0 0 12px var(--w-accent-soft);
}
.w-marquee__title {
  font-family: var(--w-display, "Bebas Neue", sans-serif);
  font-size: clamp(28px, 4.4vw, 48px);
  letter-spacing: .04em;
  color: var(--w-ink, #eef4ef);
  margin: 4px 0 0;
  line-height: 1;
}
.w-marquee__sub {
  font-family: var(--w-sans, "DM Sans", sans-serif);
  font-size: 14px; color: var(--w-sub, #8e978f);
  max-width: 32ch;
  text-align: right;
}
.w-marquee::before, .w-marquee::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 120px;
  z-index: 3; pointer-events: none;
}
.w-marquee::before { left: 0; background: linear-gradient(90deg, var(--w-bg-2, #0d1210), transparent); }
.w-marquee::after  { right: 0; background: linear-gradient(-90deg, var(--w-bg-2, #0d1210), transparent); }
@keyframes w-marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.w-marquee__viewport { overflow: hidden; }
.w-marquee__track {
  display: flex;
  gap: 20px;
  width: max-content;
  animation: w-marquee-scroll 60s linear infinite;
  will-change: transform;
}
.w-marquee:hover .w-marquee__track,
.w-marquee:focus-within .w-marquee__track { animation-play-state: paused; }
.w-marquee__card {
  flex: 0 0 220px;
  display: flex; flex-direction: column;
  background: var(--w-panel, #121814);
  border: 1px solid var(--w-line, #1e2622);
  text-decoration: none; color: var(--w-ink, #eef4ef);
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
  overflow: hidden;
}
.w-marquee__card[data-cat="molecules"] { --card-accent: var(--w-mol, #b14bff); --card-glow: var(--w-mol-glow); }
.w-marquee__card[data-cat="cbd"]       { --card-accent: var(--w-cbd, #39ff7a); --card-glow: var(--w-cbd-glow); }
.w-marquee__card:hover {
  border-color: var(--card-accent, var(--w-accent));
  transform: translateY(-3px);
  box-shadow: var(--card-glow, 0 0 24px rgba(57,255,122,.25));
}
.w-marquee__img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--w-bg, #070a08);
  display: block;
}
.w-marquee__body { padding: 14px 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.w-marquee__cat {
  font-family: var(--w-mono, "JetBrains Mono", monospace);
  font-size: 10px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--card-accent, var(--w-sub));
  opacity: .85;
}
.w-marquee__name {
  font-family: var(--w-display, "Bebas Neue", sans-serif);
  font-size: 18px; letter-spacing: .04em;
  line-height: 1.1;
  color: var(--w-ink, #eef4ef);
}
.w-marquee__price {
  font-family: var(--w-mono, "JetBrains Mono", monospace);
  font-size: 13px; color: var(--card-accent, var(--w-accent));
  margin-top: 2px;
}
@media (max-width: 720px) {
  .w-marquee__head { flex-direction: column; align-items: flex-start; gap: 4px; }
  .w-marquee__sub  { text-align: left; }
  .w-marquee__card { flex: 0 0 170px; }
  .w-marquee__name { font-size: 15px; }
  .w-marquee__track { animation-duration: 45s; }
}
@media (prefers-reduced-motion: reduce) {
  .w-marquee__track { animation: none !important; }
  .w-marquee__viewport { overflow-x: auto; scroll-snap-type: x mandatory; }
  .w-marquee__card { scroll-snap-align: start; }
}

/* =========================================================================
 * HERO AMPLIFICATION — frontend-design pass, 2026-04-29
 * Massive Bebas Neue, asymmetric "lab strip", floating molecule, count-up.
 * Additive: overrides existing wh-hero rules with higher specificity.
 * ========================================================================= */

/* Hero container: deeper, breathing room, layered atmosphere */
.wh-hero {
  min-height: clamp(640px, 92vh, 880px) !important;
  position: relative;
  isolation: isolate;
}

/* Subtle scanline overlay = "lab analytics" feel */
.wh-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    180deg,
    transparent 0,
    transparent 2px,
    rgba(57,255,122,0.025) 2px,
    rgba(57,255,122,0.025) 3px
  );
  mix-blend-mode: screen;
  pointer-events: none;
  z-index: 0;
}

/* Floating molecule SVG — added via JS, animated parallax */
.wh-hero__molecule {
  position: absolute;
  right: -8%;
  top: 8%;
  width: clamp(280px, 38vw, 540px);
  opacity: .14;
  pointer-events: none;
  z-index: 0;
  filter: drop-shadow(0 0 32px rgba(57,255,122,.4));
  animation: w-mol-float 18s ease-in-out infinite alternate;
  will-change: transform;
}
.wh-hero__molecule svg { width: 100%; height: auto; display: block; }
.wh-hero__molecule [data-bond] { stroke: var(--w-cbd, #39ff7a); stroke-width: 1.2; fill: none; }
.wh-hero__molecule [data-atom] { fill: var(--w-cbd, #39ff7a); }
.wh-hero__molecule [data-atom-mol] { fill: var(--w-mol, #b14bff); }
@keyframes w-mol-float {
  0%   { transform: translate3d(0,0,0)     rotate(0deg); }
  50%  { transform: translate3d(-20px,12px,0) rotate(-3deg); }
  100% { transform: translate3d(8px,-14px,0)  rotate(2deg); }
}

/* Lab strip — mono readout above or near H1 */
.wh-hero__labstrip {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-family: var(--w-mono, "JetBrains Mono", monospace);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--w-sub, #8e978f);
  background: rgba(7,10,8,.65);
  border: 1px solid var(--w-line, #1e2622);
  padding: 8px 14px;
  border-radius: 2px;
  margin: 0 0 18px;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  position: relative;
  z-index: 2;
}
.wh-hero__labstrip::before {
  content: "●";
  color: var(--w-cbd, #39ff7a);
  text-shadow: 0 0 8px var(--w-cbd, #39ff7a);
  animation: w-pulse-dot 1.6s ease-in-out infinite;
}
@keyframes w-pulse-dot {
  0%,100% { opacity: 1; }
  50%     { opacity: .35; }
}
.wh-hero__labstrip span { color: var(--w-ink, #eef4ef); }
.wh-hero__labstrip .sep { color: var(--w-mute, #5f6864); }

/* H1 amplified: MASSIVE Bebas Neue, ultra-tight letter-spacing */
.wh-hero__title.v2-hero-title,
.wh-hero__title {
  font-family: var(--w-display, "Bebas Neue", sans-serif) !important;
  font-size: clamp(48px, 11vw, 168px) !important;
  line-height: .88 !important;
  letter-spacing: -.005em !important;
  margin: 4px 0 12px !important;
  text-wrap: balance;
  position: relative;
  z-index: 2;
}
.wh-hero__title .v2-lime {
  color: var(--w-cbd, #39ff7a);
  text-shadow:
    0 0 24px rgba(57,255,122,.45),
    0 0 64px rgba(57,255,122,.15);
}
.wh-hero__title .v2-violet {
  color: var(--w-mol, #b14bff);
  text-shadow: 0 0 24px rgba(177,75,255,.55);
  display: inline-block;
  animation: w-pulse-dot 2.4s ease-in-out infinite;
}

/* Tagline: terminal cursor blinking after */
.wh-hero__tagline {
  font-family: var(--w-mono, "JetBrains Mono", monospace) !important;
  font-size: clamp(14px, 1.6vw, 18px) !important;
  letter-spacing: .26em !important;
  color: var(--w-cbd, #39ff7a) !important;
  margin: 0 0 18px !important;
  position: relative;
  z-index: 2;
}
.wh-hero__tagline::after {
  content: "_";
  display: inline-block;
  margin-left: 4px;
  animation: w-cursor-blink 1.1s steps(2,end) infinite;
  color: var(--w-cbd, #39ff7a);
}
@keyframes w-cursor-blink {
  50% { opacity: 0; }
}

/* Subtitle: max-width, refined */
.wh-hero__subtitle {
  font-family: var(--w-sans, "DM Sans", sans-serif) !important;
  font-size: clamp(15px, 1.6vw, 19px) !important;
  line-height: 1.55 !important;
  color: var(--w-sub, #8e978f) !important;
  max-width: 56ch !important;
  margin: 0 auto 32px !important;
  position: relative;
  z-index: 2;
}

/* CTAs: refined, mono-monospace label, bold edges */
.wh-hero__actions {
  display: inline-flex !important;
  gap: 14px !important;
  flex-wrap: wrap;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.wh-btn,
.wh-btn--primary,
.wh-btn--secondary {
  font-family: var(--w-mono, "JetBrains Mono", monospace) !important;
  font-size: 13px !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  padding: 14px 22px !important;
  border-radius: 2px !important;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  border: 1px solid transparent;
}
.wh-btn--primary {
  background: var(--w-cbd, #39ff7a) !important;
  color: var(--w-bg, #070a08) !important;
  box-shadow: 0 0 0 0 rgba(57,255,122,.6);
}
.wh-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(57,255,122,.35), 0 0 0 1px rgba(57,255,122,.6);
}
.wh-btn--secondary {
  background: transparent !important;
  color: var(--w-ink, #eef4ef) !important;
  border: 1px solid var(--w-line, #1e2622) !important;
}
.wh-btn--secondary:hover {
  border-color: var(--w-mol, #b14bff) !important;
  color: var(--w-mol, #b14bff) !important;
  transform: translateY(-2px);
}

/* Stats: hairline grid, mono numbers, count-up reveal */
.wh-hero__stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 0 !important;
  margin-top: 56px !important;
  border-top: 1px solid var(--w-line, #1e2622);
  border-bottom: 1px solid var(--w-line, #1e2622);
  position: relative;
  z-index: 2;
}
.wh-hero__stats > div {
  padding: 24px 12px;
  text-align: center;
  border-right: 1px solid var(--w-line, #1e2622);
}
.wh-hero__stats > div:last-child { border-right: none; }
.wh-stat__number {
  font-family: var(--w-display, "Bebas Neue", sans-serif) !important;
  font-size: clamp(28px, 3.6vw, 44px) !important;
  letter-spacing: .04em;
  color: var(--w-cbd, #39ff7a) !important;
  line-height: 1;
  margin-bottom: 4px;
}
.wh-stat__label {
  font-family: var(--w-mono, "JetBrains Mono", monospace) !important;
  font-size: 10px !important;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--w-sub, #8e978f) !important;
}

/* Badges: tighter, mono */
.wh-hero__badge {
  font-family: var(--w-mono, "JetBrains Mono", monospace) !important;
  letter-spacing: .18em !important;
}

@media (max-width: 720px) {
  .wh-hero__molecule { opacity: .08; right: -25%; top: 14%; }
  .wh-hero__stats { grid-template-columns: repeat(2, 1fr); }
  .wh-hero__stats > div:nth-child(2) { border-right: none; }
  .wh-hero__stats > div:nth-child(1),
  .wh-hero__stats > div:nth-child(2) { border-bottom: 1px solid var(--w-line, #1e2622); }
  .wh-hero__title { font-size: clamp(56px, 16vw, 96px) !important; }
}

@media (prefers-reduced-motion: reduce) {
  .wh-hero__molecule { animation: none !important; }
  .wh-hero__title .v2-violet,
  .wh-hero__labstrip::before { animation: none !important; }
  .wh-hero__tagline::after { animation: none !important; opacity: 1; }
}

/* =========================================================================
 * DROPDOWN AMPLIFICATION — added 2026-04-29
 * Make hover dropdowns POP: accent top border, glow shadow, slide+fade
 * Caret arrow pointing back to the parent item.
 * ========================================================================= */
.site-header__nav .nav-menu .sub-menu {
  background: linear-gradient(180deg, var(--w-panel, #121814) 0%, var(--w-bg-2, #0d1210) 100%) !important;
  border: 1px solid var(--w-line, #1e2622) !important;
  border-top: 2px solid var(--w-accent, #39ff7a) !important;
  box-shadow:
    0 24px 48px rgba(0,0,0,.65),
    0 0 0 1px rgba(57,255,122,.06) inset,
    0 0 32px rgba(57,255,122,.10) !important;
  padding: 12px 8px !important;
  min-width: 260px !important;
}
.site-header__nav .nav-menu .sub-menu::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px; height: 12px;
  background: var(--w-accent, #39ff7a);
  z-index: -1;
  border-radius: 1px;
}
.site-header__nav .nav-menu .sub-menu li + li {
  margin-top: 2px;
  padding-top: 2px;
  border-top: 1px solid rgba(255,255,255,.03);
}
.site-header__nav .nav-menu .sub-menu a {
  font-family: var(--w-mono, "JetBrains Mono", monospace) !important;
  font-size: 12px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  padding: 12px 16px !important;
  color: var(--w-ink, #eef4ef) !important;
  position: relative;
}
.site-header__nav .nav-menu .sub-menu a::before {
  content: "→";
  margin-right: 0;
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .2s ease, transform .2s ease, margin-right .2s ease;
  color: var(--w-accent, #39ff7a);
}
.site-header__nav .nav-menu .sub-menu a:hover::before,
.site-header__nav .nav-menu .sub-menu a:focus-visible::before {
  opacity: 1;
  transform: translateX(0);
  margin-right: 8px;
}
.site-header__nav .nav-menu .sub-menu a:hover,
.site-header__nav .nav-menu .sub-menu a:focus-visible {
  background: rgba(57,255,122,.06) !important;
  color: var(--w-accent, #39ff7a) !important;
  padding-left: 16px !important;
}

/* Parent item gets a glow when its dropdown is open */
.site-header__nav .nav-menu > li.menu-item-has-children:hover > a {
  text-shadow: 0 0 16px rgba(57,255,122,.5);
}

/* Stagger sub-menu items reveal */
.site-header__nav .nav-menu > li:hover > .sub-menu li,
.site-header__nav .nav-menu > li:focus-within > .sub-menu li {
  animation: w-fade .4s cubic-bezier(.2,.65,.3,1) both;
}
.site-header__nav .nav-menu .sub-menu li:nth-child(1) { animation-delay: 60ms; }
.site-header__nav .nav-menu .sub-menu li:nth-child(2) { animation-delay: 120ms; }
.site-header__nav .nav-menu .sub-menu li:nth-child(3) { animation-delay: 180ms; }
.site-header__nav .nav-menu .sub-menu li:nth-child(4) { animation-delay: 240ms; }
.site-header__nav .nav-menu .sub-menu li:nth-child(5) { animation-delay: 300ms; }

/* =========================================================================
 * SITE-WIDE MOTION EXTENSIONS — animations partout (mais cohérent)
 * ========================================================================= */

/* --- Header: shrink + blur background on scroll --- */
.site-header {
  transition: background .3s ease, border-color .3s ease, padding .3s ease, backdrop-filter .3s ease;
  background: transparent;
  border-bottom: 1px solid transparent;
}
.site-header.is-scrolled {
  background: rgba(7,10,8,.78);
  backdrop-filter: blur(14px) saturate(180%);
  -webkit-backdrop-filter: blur(14px) saturate(180%);
  border-bottom-color: var(--w-line, #1e2622);
}
.site-header.is-scrolled .site-header__inner { padding-top: 8px !important; padding-bottom: 8px !important; }

/* --- Trust bar: stagger reveal + subtle hover lift --- */
.wh-trust__item {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .7s cubic-bezier(.2,.65,.3,1),
              transform .7s cubic-bezier(.2,.65,.3,1),
              border-color .25s ease, color .25s ease;
}
.wh-trust.is-revealed .wh-trust__item { opacity: 1; transform: translateY(0); }
.wh-trust.is-revealed .wh-trust__item:nth-child(1) { transition-delay: 0ms; }
.wh-trust.is-revealed .wh-trust__item:nth-child(2) { transition-delay: 90ms; }
.wh-trust.is-revealed .wh-trust__item:nth-child(3) { transition-delay: 180ms; }
.wh-trust.is-revealed .wh-trust__item:nth-child(4) { transition-delay: 270ms; }
.wh-trust__item:hover {
  color: var(--w-cbd, #39ff7a);
}
.wh-trust__icon { transition: transform .3s ease, color .3s ease; }
.wh-trust__item:hover .wh-trust__icon { transform: rotate(-8deg) scale(1.08); color: var(--w-cbd, #39ff7a); }

/* --- Category cards on home: image zoom + border accent --- */
[class*="categor"] [class*="card"] img,
.wh-cat-card img,
.wh-categories__card img,
section .wh-section__container [class*="card"] img {
  transition: transform .55s cubic-bezier(.2,.65,.3,1), filter .35s ease;
  will-change: transform;
}
[class*="categor"] [class*="card"]:hover img,
.wh-cat-card:hover img,
.wh-categories__card:hover img,
section .wh-section__container [class*="card"]:hover img {
  transform: scale(1.07);
  filter: brightness(1.06) contrast(1.05);
}

/* --- Buttons throughout: lift + shadow + cursor swipe shine --- */
.wh-btn,
.button, .wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
input[type="submit"] {
  position: relative;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease, background .2s ease;
}
.wh-btn::after,
.woocommerce a.button::after,
.woocommerce button.button::after {
  content: "";
  position: absolute;
  top: 0; left: -120%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  transform: skewX(-22deg);
  transition: left .65s cubic-bezier(.2,.65,.3,1);
  pointer-events: none;
}
.wh-btn:hover::after,
.woocommerce a.button:hover::after,
.woocommerce button.button:hover::after { left: 130%; }

/* --- Reviews / testimonials cards: tilt subtly on hover --- */
.wh-review,
.wh-reviews__item,
[class*="review"] [class*="card"] {
  transition: transform .35s cubic-bezier(.2,.65,.3,1), border-color .25s ease, box-shadow .25s ease;
}
.wh-review:hover,
.wh-reviews__item:hover,
[class*="review"] [class*="card"]:hover {
  transform: translateY(-4px) rotate(-.4deg);
  border-color: var(--w-cbd, #39ff7a);
  box-shadow: 0 12px 32px rgba(0,0,0,.4), 0 0 24px rgba(57,255,122,.18);
}

/* --- Footer: column reveal + link hover slide --- */
.site-footer__col a {
  display: inline-flex;
  align-items: center;
  gap: 0;
  transition: gap .25s ease, color .2s ease, padding-left .2s ease;
  position: relative;
}
.site-footer__col a::before {
  content: "→";
  opacity: 0;
  width: 0;
  overflow: hidden;
  transition: opacity .2s ease, width .25s ease, margin-right .2s ease;
  color: var(--w-cbd, #39ff7a);
}
.site-footer__col a:hover::before {
  opacity: 1; width: 14px; margin-right: 6px;
}
.site-footer__col a:hover { color: var(--w-cbd, #39ff7a); padding-left: 4px; }

/* --- Cart icon: pulse + bump on add-to-cart --- */
.site-header__cart .cart-count {
  transition: transform .3s cubic-bezier(.2,1.6,.4,1), background .25s ease;
}
.site-header__cart.is-bumped .cart-count {
  animation: w-cart-bump .55s cubic-bezier(.2,1.6,.4,1);
}
@keyframes w-cart-bump {
  0%   { transform: scale(1);   }
  35%  { transform: scale(1.45); }
  60%  { transform: scale(.92); }
  100% { transform: scale(1);   }
}

/* --- Headline split reveal: line-by-line cascade on h2/h3 in sections --- */
.wh-section__title,
.wh-section h2,
section h2,
.v2-extras-h2 {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .8s cubic-bezier(.2,.65,.3,1),
              transform .8s cubic-bezier(.2,.65,.3,1);
}
.is-revealed .wh-section__title,
.is-revealed .v2-extras-h2,
.is-revealed h2 {
  opacity: 1;
  transform: translateY(0);
  transition-delay: 80ms;
}
.wh-section__label,
.v2-section-label {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .7s cubic-bezier(.2,.65,.3,1),
              transform .7s cubic-bezier(.2,.65,.3,1);
}
.is-revealed .wh-section__label,
.is-revealed .v2-section-label {
  opacity: 1; transform: translateY(0);
}
.wh-section__subtitle {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .7s cubic-bezier(.2,.65,.3,1),
              transform .7s cubic-bezier(.2,.65,.3,1);
}
.is-revealed .wh-section__subtitle {
  opacity: 1; transform: translateY(0);
  transition-delay: 200ms;
}

/* --- Image hover for product images on product pages --- */
.woocommerce-loop-product__link img,
.attachment-shop_catalog,
.wp-post-image {
  transition: transform .55s cubic-bezier(.2,.65,.3,1), filter .35s ease;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__link img,
.product-card:hover .wp-post-image {
  transform: scale(1.05);
}

/* --- Anchors generic: underline grow from left --- */
main a:not(.button):not(.wh-btn):not(.menu-item):not([class*="card"]):not(.site-footer__col a) {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  transition: background-size .3s cubic-bezier(.2,.65,.3,1), color .2s ease;
  text-decoration: none;
}
main a:not(.button):not(.wh-btn):not(.menu-item):not([class*="card"]):not(.site-footer__col a):hover {
  background-size: 100% 1px;
  color: var(--w-accent, #39ff7a);
}

/* --- Form inputs: focus glow ring --- */
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
textarea, select {
  transition: border-color .2s ease, box-shadow .25s ease, background-color .2s ease;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):focus,
textarea:focus, select:focus {
  box-shadow: 0 0 0 3px rgba(57,255,122,.18) !important;
}

@media (prefers-reduced-motion: reduce) {
  .wh-trust__item, .site-header, .wh-section__title, .wh-section__label, .wh-section__subtitle,
  .site-header__cart .cart-count {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}
