/* ==========================================================================
   NO LIMIT LABS — theme stylesheet
   White + gold identity. Primary gold #D4AF37.
   Mobile-first: base rules are phone rules; min-width queries scale up.

   PALETTE NOTES — read before changing a colour.
   The token names are inherited from the previous dark theme and kept so
   every existing rule keeps working. Their meaning is now inverted:
     --void / --ink / --coal / --graph / --raise  are surfaces, lightest first
     --paper  is the PRIMARY TEXT colour, not a background
     --edge   hairlines are now dark-on-light, not light-on-dark

   Gold is split into a fill gold and a text gold on purpose. #D4AF37 on
   white measures 2.1:1 contrast, which is unreadable as text. It is used
   for fills, bars, borders and icon plates, where near-black text sits on
   top of it at 10:1. Gold TEXT uses --gold-ink (4.9:1) or --gold-ink-lg
   (3.8:1, large display type only, which needs 3:1).
   ========================================================================== */

:root{
  --void:#FFFFFF;
  --ink:#FAFAF8;
  --coal:#F8F8F6;
  --graph:#F0F0EB;
  --raise:#E4E4DC;
  --edge:rgba(17,17,17,.10);
  --edge-2:rgba(17,17,17,.22);

  --bolt:#D4AF37;
  --bolt-lo:#B8962E;
  --bolt-hi:#E4C662;
  --gold-press:#B8962E;
  --gold-ink:#8A6D1F;
  --gold-ink-lg:#A67C1A;
  --gold-wash:rgba(212,175,55,.10);

  --paper:#111111;
  /* Secondary text. Was #6B6B66 (5.4:1) — dark enough to pass, light enough to
     look washed out at small sizes. #5A5A55 is 6.9:1 on white and 6.1:1 on the
     darkest surface, and still reads clearly lighter than --mist-2 (10.9:1),
     so the three-step text hierarchy is intact. */
  --mist:#5A5A55;
  --mist-2:#3D3D39;
  /* Placeholders and disabled text. Lighter than --mist so a placeholder never
     reads as a filled value, but 4.8:1 rather than the old 3.5:1. */
  --hint:#6E6E68;
  --bad:#B3261E;
  --good:#15803D;

  /* Public aliases — stable names for anything outside this file. */
  --color-gold:#D4AF37;
  --color-gold-dark:#B8962E;
  --color-gold-text:#8A6D1F;
  --color-background:#FFFFFF;
  --color-surface:#F8F8F6;
  --color-text:#111111;
  --color-text-muted:#5A5A55;

  /* Manrope carries headings, buttons, navigation and prices; Inter carries
     reading copy and form fields; monospace is reserved for scientific data
     such as lot numbers, purity figures and test dates. Two families load. */
  --display:"Manrope","Helvetica Neue",Helvetica,Arial,sans-serif;
  --ui:"Manrope","Helvetica Neue",Helvetica,Arial,sans-serif;
  --body:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;

  /* Type weights — the whole site tunes from here.
     Body copy never drops below 500, and small mono labels sit at 700 because
     JetBrains Mono at 11px and under reads thin at 600 on a light ground. */
  --w-body:500;
  --w-strong:600;
  --w-label:700;
  --w-nav:700;

  --pad:18px;
  --max:1340px;
  --band:3px;
  --hdr-h:60px;
  --r:3px;
}
@media (min-width:820px){ :root{ --pad:40px; --hdr-h:70px; } }
@media (min-width:1200px){ :root{ --pad:56px; } }

*,*::before,*::after{box-sizing:border-box}

/* WordPress global styles and the block library set their own heading sizes and
   link decoration. Neutralise them here so the class rules below are the single
   source of truth — every heading in this theme is sized by its own class. */
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}
a{color:inherit;text-decoration:none}
:where(.nl-wrap,.nl-page,.nl-sec) a:where(:not(.nl-btn):not(.button)){text-decoration:none}
ul,ol{margin:0}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--void);color:var(--paper);
  font-family:var(--body);font-size:16px;line-height:1.6;
  /* Deliberately NOT -webkit-font-smoothing:antialiased. That thins every
     glyph on macOS and Safari, which is a large part of why small text here
     read faint. Platform default rendering is sharper and truer to weight. */
  -webkit-font-smoothing:auto;text-rendering:optimizeLegibility;overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--bolt);color:#000}
:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px;border-radius:2px}
[id]{scroll-margin-top:calc(var(--hdr-h) + 18px)}

.nl-wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.nl-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:12px;top:12px;z-index:999;background:var(--bolt);color:#000;padding:10px 16px;border-radius:999px}

/* ---------- type ---------- */
.nl-disp{
  font-family:var(--display);font-weight:800;
  font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:-.022em;line-height:.96;margin:0;
}
.nl-mono{font-family:var(--mono);font-weight:var(--w-label);font-size:11px;letter-spacing:.02em;text-transform:uppercase}
.nl-eyebrow{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gold-ink);display:flex;align-items:center;gap:10px;margin:0 0 16px;
}
.nl-eyebrow::before{content:"";width:24px;height:2px;background:var(--gold-ink);flex:none}
.nl-eyebrow--c{justify-content:center}
.nl-rule{height:var(--band);background:var(--bolt);width:100%}

/* ---------- buttons ---------- */
.nl-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 22px;border-radius:999px;
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  text-transform:uppercase;letter-spacing:.045em;font-size:12.5px;line-height:1;
  border:1.5px solid transparent;text-align:center;
  transition:transform .25s cubic-bezier(.2,.9,.25,1),background .25s,color .25s,border-color .25s,opacity .2s;
}
.nl-btn--fill{background:var(--bolt);color:#000}
.nl-btn--fill:hover{background:var(--gold-press);transform:translateY(-2px);color:#000}
.nl-btn--ghost{border-color:var(--edge-2);color:var(--paper)}
.nl-btn--ghost:hover{border-color:var(--gold-ink);color:var(--gold-ink);transform:translateY(-2px)}
.nl-btn--dark{background:#111111;color:var(--bolt)}
.nl-btn--dark:hover{background:#2A2A28;transform:translateY(-2px)}
.nl-btn--full{width:100%}
.nl-btn--xl{padding:17px 26px;font-size:14px}
.nl-btn[disabled],.nl-btn.is-off{opacity:.4;pointer-events:none}
.nl-btn i{font-style:normal;transition:transform .25s}
.nl-btn:hover i{transform:translateX(4px)}

/* ---------- pills / tags ---------- */
.nl-pill{
  display:inline-block;background:var(--bolt);color:#000;border-radius:999px;
  padding:4px 13px;font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:11.5px;letter-spacing:.02em;text-transform:uppercase;line-height:1.4;
}
.nl-pill--out{background:transparent;color:var(--mist-2);border:1px solid var(--edge-2)}
.nl-tag{
  display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;
  border:1px solid rgba(212,175,55,.45);background:rgba(212,175,55,.12);color:var(--gold-ink);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:.04em;text-transform:uppercase;
}
.nl-tag--soft{border-color:var(--edge-2);background:transparent;color:var(--mist-2)}

/* ==========================================================================
   TICKER + HEADER
   ========================================================================== */
.nl-ticker{background:var(--bolt);color:#000;overflow:hidden;position:relative;z-index:60}
.nl-ticker__track{display:flex;width:max-content;animation:nl-slide 34s linear infinite}
.nl-ticker__grp{display:flex;align-items:center;flex:none}
.nl-ticker__grp span{
  font-family:var(--ui);font-size:11px;font-weight:var(--w-label);letter-spacing:0;
  padding:8px 0;display:inline-flex;align-items:center;
}
.nl-ticker__grp span::after{content:"◆";margin:0 22px;font-size:7px;opacity:.55}
@keyframes nl-slide{to{transform:translateX(-50%)}}
@keyframes nl-slide-back{from{transform:translateX(-50%)}to{transform:translateX(0)}}

.nl-hdr{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.78);
  backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
  border-bottom:1px solid var(--edge);transition:background .3s;
}
.nl-hdr.is-stuck{background:rgba(255,255,255,.94)}
.nl-hdr__in{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;height:var(--hdr-h)}
.nl-hdr__nav{display:flex;justify-content:center}

.nl-mark{display:flex;flex-direction:column;align-items:flex-start;line-height:1;flex:none}
.nl-mark__top{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:20px;letter-spacing:-.028em;text-transform:uppercase;display:flex;
}
.nl-mark__top .y{color:var(--gold-ink-lg)}
.nl-mark__sub{
  font-family:var(--display);font-weight:600;font-variation-settings:'wght' 600;
  font-size:7.5px;letter-spacing:.58em;color:var(--gold-ink);margin-top:3px;padding-left:2px;
}
.nl-mark img{max-height:38px;width:auto}
@media (min-width:820px){ .nl-mark__top{font-size:22px} .nl-mark__sub{font-size:8px;letter-spacing:.62em} }

.nl-nav{display:none}
@media (min-width:1000px){
  .nl-nav{display:flex;gap:34px;list-style:none;padding:0;margin:0}
  .nl-nav li{position:relative}
  .nl-nav a{
    font-family:var(--ui);font-weight:var(--w-nav);font-size:11.5px;letter-spacing:0;
    color:var(--mist-2);padding:6px 0;position:relative;display:block;transition:color .2s;
  }
  .nl-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1.5px;background:var(--gold-ink);transition:right .3s cubic-bezier(.2,.9,.25,1)}
  .nl-nav a:hover,.nl-nav .current-menu-item>a{color:var(--paper)}
  .nl-nav a:hover::after,.nl-nav .current-menu-item>a::after{right:0}
  .nl-nav .sub-menu{
    position:absolute;top:100%;left:-14px;min-width:210px;list-style:none;margin:10px 0 0;padding:8px;
    background:#FFFFFF;border:1px solid var(--edge);border-radius:var(--r);
    opacity:0;visibility:hidden;transform:translateY(8px);transition:.25s;box-shadow:0 24px 50px rgba(17,17,17,.14);
  }
  .nl-nav li:hover>.sub-menu{opacity:1;visibility:visible;transform:none}
  .nl-nav .sub-menu a{padding:9px 12px;font-size:11px}
}

.nl-hdr__end{display:flex;align-items:center;justify-content:flex-end;gap:8px}

/* ---------- account popover ----------
   A choice between signing in and registering, never a form. Anchored under
   the account button on desktop, a centred dialog on small screens. */
.nl-acctwrap{position:relative;display:flex}
.nl-acctpop{position:absolute;top:calc(100% + 12px);right:0;z-index:120}
.nl-acctpop[hidden]{display:none}
.nl-acctpop__panel{
  width:min(310px,calc(100vw - 28px));
  background:var(--void);border:1px solid var(--edge-2);border-radius:8px;
  border-top:3px solid var(--bolt);
  box-shadow:0 20px 48px rgba(17,17,17,.16);
  padding:22px 20px;text-align:center;
  transform:translateY(-6px);opacity:0;
  transition:opacity .2s ease,transform .2s cubic-bezier(.16,1,.3,1);
}
.nl-acctpop.is-open .nl-acctpop__panel{opacity:1;transform:none}
.nl-acctpop__ic{
  display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;
  border-radius:999px;background:var(--gold-wash);border:1px solid rgba(212,175,55,.45);color:var(--gold-ink);
}
.nl-acctpop__ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.nl-acctpop__h{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:20px;letter-spacing:-.015em;color:var(--paper);margin:0 0 8px;
}
.nl-acctpop__s{margin:0 0 18px;color:var(--mist-2);font-size:14px;line-height:1.6;font-weight:var(--w-body)}
.nl-acctpop__go{width:100%;margin-bottom:9px;padding:14px 18px}
.nl-acctpop__perk{
  margin:14px 0 0;padding:12px 14px;border-radius:var(--r);
  background:var(--coal);border:1px solid var(--edge);border-left:3px solid var(--bolt);
  font-size:13px;line-height:1.55;color:var(--mist-2);font-weight:var(--w-strong);text-align:left;
}

/* Small screens: a full-width sheet directly under the header.
   .nl-hdr carries backdrop-filter, which makes it the containing block for any
   fixed-position descendant — so inset:0 here resolved against the 64px header
   strip, not the viewport, and centred the panel half off the top of the
   screen. Anchoring to that same containing block is well defined: left/right 0
   is the full header width, and top:100% is the row directly beneath it.
   The wrapper ignores pointer events so a tap beside the panel still counts as
   an outside tap and closes the popover. */
@media (max-width:560px){
  .nl-acctpop{
    position:fixed;top:calc(100% + 8px);left:0;right:0;bottom:auto;
    display:block;padding:0 14px;background:none;pointer-events:none;
    -webkit-backdrop-filter:none;backdrop-filter:none;
  }
  .nl-acctpop__panel{width:100%;padding:24px 20px;pointer-events:auto}
}

@media (prefers-reduced-motion:reduce){
  .nl-acctpop__panel{transition:none;transform:none;opacity:1}
}

.nl-icobtn{
  width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--edge-2);
  border-radius:999px;transition:border-color .2s,background .2s;
}
.nl-icobtn:hover{border-color:var(--gold-ink);background:rgba(212,175,55,.12)}
.nl-icobtn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}
.nl-cart{
  display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;
  border:1px solid var(--edge-2);transition:border-color .2s,background .2s;
}
.nl-cart:hover{border-color:var(--gold-ink);background:rgba(212,175,55,.12)}
.nl-cart svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.6}
.nl-cart__n{
  font-family:var(--ui);font-size:11px;font-weight:700;min-width:19px;height:19px;
  display:grid;place-items:center;border-radius:999px;background:var(--bolt);color:#000;
  transition:transform .3s cubic-bezier(.3,1.6,.5,1);
}
.nl-cart__n.pop{transform:scale(1.5)}
.nl-burger{display:grid}
@media (min-width:1000px){ .nl-burger{display:none} }
.nl-burger span{display:block;width:15px;height:1.5px;background:var(--paper);position:relative}
.nl-burger span::before,.nl-burger span::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:var(--paper)}
.nl-burger span::before{top:-5px}.nl-burger span::after{top:5px}

/* ---------- mobile drawer ---------- */
.nl-mnu{
  position:fixed;inset:0;z-index:80;background:rgba(255,255,255,.98);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  padding:20px var(--pad) calc(28px + env(safe-area-inset-bottom));
  transform:translateY(-101%);transition:transform .48s cubic-bezier(.16,1,.3,1),visibility 0s linear .48s;
  border-bottom:var(--band) solid var(--bolt);overflow-y:auto;
  display:flex;flex-direction:column;
  /* Closed, the panel is only moved off-screen, so its links stayed tabbable
     and screen readers could still reach them — including on desktop, where
     the menu is never shown. visibility removes it from both without
     touching the slide animation. */
  visibility:hidden;
}
.nl-mnu.open{transform:none;visibility:visible;transition:transform .48s cubic-bezier(.16,1,.3,1)}
.nl-mnu__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.nl-mnu ul{list-style:none;margin:0;padding:0}
.nl-mnu a{
  display:block;padding:15px 0;border-top:1px solid var(--edge);
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  font-size:22px;text-transform:uppercase;letter-spacing:-.015em;
}
.nl-mnu .sub-menu a{font-size:14.5px;padding:11px 0 11px 16px;color:var(--mist-2);text-transform:none;letter-spacing:0;font-weight:var(--w-strong)}
.nl-mnu__cta{margin-top:22px;display:grid;gap:10px}

/* ==========================================================================
   HERO
   ========================================================================== */
.nl-hero{
  position:relative;overflow:hidden;background:var(--void);isolation:isolate;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-top:14px;
}
.nl-hero__grid{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(212,175,55,.20) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(212,175,55,.20) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 78% at 50% 46%,#000 12%,transparent 76%);
  mask-image:radial-gradient(120% 78% at 50% 46%,#000 12%,transparent 76%);
}
.nl-hero__glow{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(1250px,140vw);aspect-ratio:1.5/1;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(212,175,55,.22),rgba(212,175,55,.07) 44%,transparent 70%);
  filter:blur(14px);
}
.nl-hero__deep{
  position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:.28;
  display:flex;flex-direction:column;justify-content:center;gap:2vh;
}
.nl-deeprow{
  display:flex;width:max-content;white-space:nowrap;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;font-size:15vw;line-height:1;letter-spacing:-.02em;
  color:transparent;-webkit-text-stroke:1px rgba(17,17,17,.075);
}
.nl-deeprow span{padding-right:.35em}
.nl-deeprow--a{animation:nl-slide 46s linear infinite}
.nl-deeprow--b{animation:nl-slide-back 38s linear infinite;-webkit-text-stroke-color:rgba(212,175,55,.30)}
.nl-deeprow--c{animation:nl-slide 58s linear infinite}
@media (min-width:820px){ .nl-deeprow{font-size:9vw} }

.nl-stage{
  position:relative;z-index:3;isolation:isolate;
  width:94vw;max-width:1120px;margin:0 auto;
  height:clamp(190px,27vh,290px);
}
@media (min-width:820px){ .nl-stage{height:clamp(252px,43vh,468px)} }

.nl-word{
  position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);
  width:100vw;z-index:-2;pointer-events:none;text-align:center;
}
.nl-word__in{width:96vw;margin-inline:auto;will-change:transform}
@media (min-width:820px){ .nl-word__in{width:88vw} }
.nl-word__line{
  display:inline-block;overflow:hidden;padding-block:.04em;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;white-space:nowrap;line-height:.86;letter-spacing:-.035em;font-size:15vw;
}
.nl-word__line .ltr{
  display:inline-block;transform:translateY(115%);opacity:0;
  transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity .7s ease;
}
.nl-word__line .ltr.y{color:var(--gold-ink-lg)}
.nl-word__line .ltr.w{color:rgba(17,17,17,.03);-webkit-text-stroke:clamp(1.2px,.3vw,3.2px) rgba(17,17,17,.45)}
body.nl-ready .nl-word__line .ltr{transform:translateY(0);opacity:1}

.nl-vial{
  position:absolute;bottom:0;opacity:0;transform:translateY(60px) scale(.93);
  transition:opacity .9s ease,transform 1.15s cubic-bezier(.16,1,.3,1);
}
body.nl-ready .nl-vial{opacity:1;transform:none}
body.nl-ready .nl-vial--l{transition-delay:.5s}
body.nl-ready .nl-vial--c{transition-delay:.32s}
body.nl-ready .nl-vial--r{transition-delay:.66s}
.nl-vial--l{left:4%;height:63%;bottom:12%;z-index:2;--rA:-15deg;--rB:-11.5deg;--d:5.4s;--dl:-1.2s}
.nl-vial--c{left:0;right:0;margin-inline:auto;width:fit-content;height:100%;bottom:0;z-index:4;--rA:-3deg;--rB:0deg;--d:4.6s;--dl:0s}
.nl-vial--r{right:4%;height:60%;bottom:16%;z-index:2;--rA:9deg;--rB:12.5deg;--d:6.1s;--dl:-2.4s}
@media (min-width:820px){
  .nl-vial--l{left:16%;height:78%;bottom:10%}
  .nl-vial--r{right:16%;height:75%;bottom:14%}
}
.nl-vial::before{
  content:"";position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);
  width:190%;height:118%;border-radius:50%;z-index:-1;
  background:radial-gradient(ellipse at center,rgba(17,17,17,.13) 22%,rgba(17,17,17,.07) 46%,transparent 71%);
  filter:blur(16px);
}
.nl-vial__par{display:block;height:100%;will-change:transform}
.nl-vial__img{
  display:block;height:100%;width:auto;transform-origin:50% 92%;
  filter:drop-shadow(0 26px 34px rgba(17,17,17,.20)) drop-shadow(0 0 34px rgba(212,175,55,.30));
  animation:nl-bob var(--d) ease-in-out infinite alternate;animation-delay:var(--dl);
}
@keyframes nl-bob{
  from{transform:translateY(6px) rotate(var(--rA))}
  to{transform:translateY(-26px) rotate(var(--rB))}
}
.nl-vial__pool{
  position:absolute;left:50%;bottom:-5%;transform:translateX(-50%);
  width:66%;height:16px;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(212,175,55,.42),rgba(212,175,55,.10) 55%,transparent 72%);
  filter:blur(9px);animation:nl-pool var(--d) ease-in-out infinite alternate;animation-delay:var(--dl);
}
@keyframes nl-pool{from{transform:translateX(-50%) scale(1.06);opacity:.75}to{transform:translateX(-50%) scale(.72);opacity:.4}}

.nl-hudtag{position:absolute;display:none;align-items:center;gap:9px;white-space:nowrap;z-index:6;opacity:0;transition:opacity .7s ease 1.35s}
@media (min-width:1100px){ .nl-hudtag{display:flex} }
body.nl-ready .nl-hudtag{opacity:1}
.nl-hudtag__line{width:clamp(14px,2.4vw,34px);height:1px;background:linear-gradient(90deg,var(--bolt),rgba(212,175,55,.20))}
.nl-hudtag__box{border:1px solid rgba(212,175,55,.45);background:rgba(255,255,255,.72);backdrop-filter:blur(6px);padding:6px 11px;border-radius:2px}
.nl-hudtag__box b{display:block;font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--gold-ink)}
.nl-hudtag__box i{display:block;font-style:normal;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.04em;color:var(--mist-2)}
.nl-hudtag--l{left:-1%;top:30%}
.nl-hudtag--l .nl-hudtag__line{order:2;background:linear-gradient(90deg,rgba(212,175,55,.20),var(--bolt))}
.nl-hudtag--r{right:-1%;top:16%;flex-direction:row-reverse}

.nl-hero__scan{
  position:absolute;left:0;right:0;top:0;height:230px;z-index:5;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(212,175,55,.10) 66%,rgba(212,175,55,.40) 97.5%,rgba(184,150,46,.58) 99.3%,transparent 100%);
  mix-blend-mode:multiply;opacity:0;
  animation:nl-scan 8.5s cubic-bezier(.5,0,.5,1) infinite;animation-delay:2.2s;
}
@keyframes nl-scan{
  0%{transform:translateY(-240px);opacity:0}
  6%{opacity:.85} 62%{opacity:.85}
  74%,100%{transform:translateY(105vh);opacity:0}
}

.nl-hero__copy{position:relative;z-index:6;text-align:center;padding:18px var(--pad) 0}
@media (min-width:820px){ .nl-hero__copy{padding-top:34px} }
.nl-chip{
  display:inline-flex;align-items:center;gap:9px;padding:7px 15px;border-radius:999px;
  border:1px solid rgba(212,175,55,.45);background:rgba(212,175,55,.12);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink);
  margin-bottom:16px;
}
.nl-chip .dot{width:5px;height:5px;border-radius:50%;background:var(--bolt);animation:nl-blink 2.4s ease-in-out infinite}
@keyframes nl-blink{0%,100%{opacity:1}50%{opacity:.22}}
.nl-hero__sub{
  max-width:660px;margin:0 auto 22px;color:var(--paper);
  font-size:16.5px;line-height:1.6;font-weight:var(--w-strong);
}
@media (min-width:820px){ .nl-hero__sub{font-size:18.5px;line-height:1.58;margin-bottom:26px} }
.nl-hero__acts{display:grid;gap:10px}
@media (min-width:560px){ .nl-hero__acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap} }
.nl-hero__copy>*{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}
body.nl-ready .nl-hero__copy>*{opacity:1;transform:none}
body.nl-ready .nl-chip{transition-delay:1.15s}
body.nl-ready .nl-hero__sub{transition-delay:1.28s}
body.nl-ready .nl-hero__acts{transition-delay:1.4s}
body.nl-ready .nl-sr{transition:none}

.nl-rail{
  position:relative;z-index:6;margin-top:22px;border-top:1px solid var(--edge);
  display:grid;grid-template-columns:repeat(2,1fr);
}
@media (min-width:820px){ .nl-rail{grid-template-columns:repeat(4,1fr);margin-top:clamp(26px,4.5vh,54px)} }
.nl-rail__i{padding:16px var(--pad);border-left:1px solid var(--edge);opacity:0;transform:translateY(14px);
  transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.nl-rail__i:nth-child(odd){border-left:0}
.nl-rail__i:nth-child(n+3){border-top:1px solid var(--edge)}
@media (min-width:820px){
  .nl-rail__i{padding:20px var(--pad)}
  .nl-rail__i:nth-child(odd){border-left:1px solid var(--edge)}
  .nl-rail__i:first-child{border-left:0}
  .nl-rail__i:nth-child(n+3){border-top:0}
}
body.nl-ready .nl-rail__i{opacity:1;transform:none}
body.nl-ready .nl-rail__i:nth-child(1){transition-delay:1.5s}
body.nl-ready .nl-rail__i:nth-child(2){transition-delay:1.6s}
body.nl-ready .nl-rail__i:nth-child(3){transition-delay:1.7s}
body.nl-ready .nl-rail__i:nth-child(4){transition-delay:1.8s}
.nl-rail__n{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:clamp(18px,2.5vw,30px);letter-spacing:-.02em;color:var(--gold-ink-lg);line-height:1}
.nl-rail__l{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11.5px;letter-spacing:0;color:var(--mist-2);margin-top:7px;line-height:1.35;overflow-wrap:break-word;
}
@media (min-width:1100px){ .nl-rail__l{font-size:12px} }

/* ---------- yellow marquee band ---------- */
.nl-band{background:var(--void);position:relative}
.nl-band__strip{background:var(--bolt);overflow:hidden;padding:11px 0}
.nl-band__track{display:flex;width:max-content;animation:nl-slide 30s linear infinite}
.nl-band__grp{display:flex;flex:none;align-items:center}
.nl-band__grp span{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;font-size:clamp(12px,1.7vw,20px);color:#000;display:inline-flex;align-items:center;
}
.nl-band__grp span::after{content:"✦";margin:0 clamp(14px,3vw,42px);font-size:.6em;opacity:.5}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.nl-sec{padding-block:56px;position:relative}
@media (min-width:820px){ .nl-sec{padding-block:clamp(80px,10vw,140px)} }
.nl-sec--ink{background:var(--ink)}
.nl-sec__head{display:flex;flex-direction:column;gap:18px;margin-bottom:30px}
@media (min-width:900px){
  .nl-sec__head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:clamp(34px,5vw,58px)}
}
.nl-sec__title{font-size:clamp(27px,5.4vw,62px)}
.nl-sec__title em{font-style:normal;color:var(--gold-ink-lg)}
.nl-sec__note{max-width:440px;color:var(--mist-2);font-size:clamp(15px,1.15vw,16px);line-height:1.65;margin:0;font-family:var(--body);font-weight:600;text-rendering:optimizeLegibility}

.nl-rv{opacity:0;transform:translateY(26px);transition:opacity .85s ease,transform .95s cubic-bezier(.16,1,.3,1)}
.nl-rv.in{opacity:1;transform:none}

/* ---------- filters / category chips ---------- */
.nl-filters{display:flex;gap:8px;margin-bottom:22px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.nl-filters::-webkit-scrollbar{display:none}
.nl-filters a,.nl-filters button{
  flex:none;padding:9px 16px;border-radius:999px;border:1px solid var(--edge-2);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);
  transition:.22s;white-space:nowrap;
}
.nl-filters a:hover,.nl-filters button:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.nl-filters .is-on,.nl-filters [aria-pressed="true"]{background:var(--bolt);border-color:var(--bolt);color:#000;font-weight:700}

/* ---------- product grid ---------- */
.nl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;list-style:none;margin:0;padding:0}
@media (min-width:700px){ .nl-grid{grid-template-columns:repeat(3,1fr);gap:14px} }
@media (min-width:1100px){ .nl-grid{grid-template-columns:repeat(4,1fr);gap:16px} }
.nl-grid--3 { grid-template-columns:repeat(2,1fr) }
@media (min-width:900px){ .nl-grid--3{grid-template-columns:repeat(3,1fr)} }

.nl-card{
  position:relative;overflow:hidden;background:var(--coal);
  border:1px solid var(--edge);border-radius:var(--r);
  display:flex;flex-direction:column;
  transition:border-color .35s,background .35s,transform .45s cubic-bezier(.16,1,.3,1);
}
.nl-card:hover{border-color:rgba(212,175,55,.55);background:var(--graph);transform:translateY(-4px)}
.nl-card.hide{display:none}
.nl-card__stage{position:relative;display:grid;place-items:center;overflow:hidden;aspect-ratio:1/1}
@media (min-width:700px){ .nl-card__stage{aspect-ratio:auto;height:250px} }
.nl-card__stage img{
  position:relative;z-index:1;width:auto;max-width:74%;max-height:82%;object-fit:contain;
  filter:drop-shadow(0 16px 20px rgba(17,17,17,.16));
  transition:transform .6s cubic-bezier(.16,1,.3,1);
}
.nl-card:hover .nl-card__stage img{transform:translateY(-8px) rotate(-3deg) scale(1.04)}
.nl-card__wipe{position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--bolt);transition:width .55s cubic-bezier(.16,1,.3,1);z-index:2}
.nl-card:hover .nl-card__wipe{width:100%}
.nl-card__flag{
  position:absolute;top:9px;left:9px;z-index:3;
  font-family:var(--ui);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  background:var(--bolt);color:#000;padding:4px 9px;border-radius:999px;font-weight:700;
}
.nl-card__flag--out{background:var(--raise);color:var(--mist-2)}
.nl-card__body{padding:14px;border-top:1px solid var(--edge);display:flex;flex-direction:column;gap:9px;flex:1}
@media (min-width:700px){ .nl-card__body{padding:18px;gap:12px} }
.nl-card__lot{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;color:var(--mist-2);text-transform:uppercase}
.nl-card__name{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:15px;letter-spacing:-.015em;text-transform:uppercase;line-height:1.15;margin:0;
}
@media (min-width:700px){ .nl-card__name{font-size:17.5px} }
.nl-card__meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nl-card__purity{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;color:var(--gold-ink);text-transform:uppercase}
.nl-card__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:4px;flex-wrap:wrap}
.nl-card__price{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:19px;letter-spacing:-.02em}
.nl-card__price del{font-size:12px;color:var(--mist);font-weight:400;margin-right:6px}
.nl-card__price ins{text-decoration:none}
.nl-card__price .woocommerce-Price-amount{font-size:inherit}
.nl-card__cta{
  padding:10px 15px;border-radius:999px;border:1.5px solid var(--edge-2);
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  font-size:11px;letter-spacing:.05em;text-transform:uppercase;transition:.25s;white-space:nowrap;
}
.nl-card__cta:hover{background:var(--bolt);border-color:var(--bolt);color:#000}
.nl-card__cta.added{background:var(--bolt);border-color:var(--bolt);color:#000}
@media (max-width:420px){
  .nl-card__foot{flex-direction:column;align-items:stretch}
  .nl-card__cta{width:100%;text-align:center}
}

/* ---------- best sellers ----------
   Reuses .nl-card wholesale and adds section chrome: a gold rule introducing
   the band, a faint lab grid, an outlined word behind the heading, and rank
   badges on the cards. Mobile is a scroll-snap rail that peeks the next card;
   from 700px it becomes the same grid the catalog uses. */
.nl-best{position:relative;overflow:hidden}
.nl-best>.nl-wrap{position:relative;z-index:1}

/* the gold rule that opens the section */
.nl-best::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--bolt) 20%,var(--bolt-hi) 50%,var(--bolt) 80%,transparent);
}
/* faint laboratory grid, faded out towards the edges */
.nl-best::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(17,17,17,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(17,17,17,.05) 1px,transparent 1px);
  background-size:66px 66px;
  -webkit-mask-image:radial-gradient(ellipse 68% 58% at 50% 4%,#000,transparent 74%);
  mask-image:radial-gradient(ellipse 68% 58% at 50% 4%,#000,transparent 74%);
}
.nl-best__ghost{
  position:absolute;left:50%;top:clamp(6px,2.4vw,30px);transform:translateX(-50%);z-index:0;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:clamp(84px,16vw,228px);line-height:.8;letter-spacing:-.045em;
  text-transform:uppercase;white-space:nowrap;pointer-events:none;user-select:none;
  color:transparent;-webkit-text-stroke:1px rgba(17,17,17,.075);
}
.nl-best__aside{display:flex;flex-direction:column;gap:18px;align-items:flex-start;max-width:440px}
@media (min-width:900px){ .nl-best__aside{align-items:flex-end} }

/* rail on phones, grid from 700px */
.nl-best__rail{
  list-style:none;margin:0 calc(var(--pad) * -1);padding:2px var(--pad) 8px;
  display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-inline-start:var(--pad);-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.nl-best__rail::-webkit-scrollbar{display:none}
.nl-best__rail>.nl-card{flex:0 0 min(68vw,262px);scroll-snap-align:start}
@media (min-width:520px){ .nl-best__rail>.nl-card{flex-basis:min(43vw,300px)} }
@media (min-width:700px){
  .nl-best__rail{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0;padding:0;overflow:visible}
}
@media (min-width:1100px){ .nl-best__rail{grid-template-columns:repeat(4,1fr);gap:16px} }

/* gold trace across the top edge, mirroring the card's existing bottom wipe */
.nl-card--best::after{
  content:"";position:absolute;top:0;left:0;height:2px;width:0;z-index:4;pointer-events:none;
  background:linear-gradient(90deg,var(--bolt),var(--gold-ink));
  transition:width .55s cubic-bezier(.16,1,.3,1);
}
.nl-card--best:hover::after,.nl-card--best:focus-within::after{width:100%}

.nl-card__rank{
  position:absolute;left:9px;bottom:11px;z-index:3;
  font-family:var(--ui);font-weight:700;font-size:10.5px;letter-spacing:.04em;line-height:1;
  color:var(--gold-ink);background:rgba(255,255,255,.88);
  border:1px solid rgba(212,175,55,.5);border-radius:999px;padding:5px 9px;
}
.nl-card--podium .nl-card__rank{background:var(--bolt);border-color:var(--bolt);color:#000}

/* the top seller carries a little more weight without dimming the rest */
.nl-card--lead{border-color:rgba(212,175,55,.5);background:var(--void)}
.nl-card--lead .nl-card__body{background:linear-gradient(180deg,rgba(212,175,55,.09),transparent 62px)}

/* long compound names and variation price ranges must not push the card open */
.nl-card--best .nl-card__name,.nl-card--best .nl-card__price{overflow-wrap:anywhere;min-width:0}

/* administrator-only notice, e.g. an unresolved Best Sellers slot */
.nl-adminwarn{
  margin:0 0 18px;padding:12px 15px;border-radius:var(--r);
  background:var(--coal);border:1px solid var(--edge-2);border-left:3px solid var(--bolt);
  font-family:var(--body);font-size:13.5px;line-height:1.6;font-weight:var(--w-body);color:var(--mist-2);
}
.nl-adminwarn strong{color:var(--paper);font-weight:var(--w-label)}
.nl-adminwarn a{color:var(--gold-ink);font-weight:var(--w-strong);text-decoration:underline}

/* ---------- steps ---------- */
.nl-steps{display:grid;grid-template-columns:1fr;border-top:1px solid var(--edge)}
@media (min-width:700px){ .nl-steps{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1080px){ .nl-steps{grid-template-columns:repeat(4,1fr)} }
.nl-step{padding:26px 0;border-top:1px solid var(--edge);position:relative;transition:background .4s}
.nl-step:first-child{border-top:0}
@media (min-width:700px){
  .nl-step{padding:30px 24px 34px;border-top:0;border-right:1px solid var(--edge)}
  .nl-step:nth-child(2n){border-right:0}
  .nl-step:nth-child(n+3){border-top:1px solid var(--edge)}
  .nl-step:hover{background:var(--coal)}
}
@media (min-width:1080px){
  .nl-step{border-right:1px solid var(--edge)}
  .nl-step:nth-child(2n){border-right:1px solid var(--edge)}
  .nl-step:last-child{border-right:0}
  .nl-step:nth-child(n+3){border-top:0}
  .nl-step::before{content:"";position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--bolt);transition:width .6s cubic-bezier(.16,1,.3,1)}
  .nl-step:hover::before{width:100%}
}
.nl-step__n{font-family:var(--ui);font-weight:600;font-size:11.5px;letter-spacing:.04em;color:var(--gold-ink);margin-bottom:14px}
.nl-step__t{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:16px;text-transform:uppercase;letter-spacing:-.01em;margin:0 0 8px}
.nl-step__d{margin:0;color:var(--mist-2);font-size:15px;line-height:1.65;font-weight:var(--w-body)}

/* ---------- accordion / faq ---------- */
.nl-faq{max-width:860px;margin-inline:auto}
.nl-q{border-top:1px solid var(--edge)}
.nl-q:last-child{border-bottom:1px solid var(--edge)}
.nl-q__btn{width:100%;display:flex;align-items:center;gap:18px;padding:20px 2px;text-align:left}
.nl-q__t{font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;font-size:15px;text-transform:uppercase;letter-spacing:-.01em;flex:1;transition:color .25s}
@media (min-width:820px){ .nl-q__btn{padding:26px 4px;gap:22px} .nl-q__t{font-size:19px} }
.nl-q__btn:hover .nl-q__t{color:var(--gold-ink)}
.nl-q__x{flex:none;width:24px;height:24px;position:relative}
.nl-q__x::before,.nl-q__x::after{content:"";position:absolute;left:50%;top:50%;background:var(--gold-ink);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.nl-q__x::before{width:14px;height:1.5px;transform:translate(-50%,-50%)}
.nl-q__x::after{width:1.5px;height:14px;transform:translate(-50%,-50%)}
.nl-q.open .nl-q__x::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0)}
.nl-q__a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.16,1,.3,1)}
.nl-q__a p{margin:0 0 22px;color:var(--mist-2);font-size:15.5px;line-height:1.7;max-width:70ch;padding-right:20px;font-weight:var(--w-body)}

/* ---------- big yellow CTA ---------- */
.nl-cta{background:var(--bolt);color:#000;position:relative;overflow:hidden;padding-block:48px;text-align:center}
@media (min-width:820px){ .nl-cta{padding-block:clamp(60px,9vw,110px)} }
.nl-cta__word{
  display:inline-block;font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;white-space:nowrap;line-height:.84;letter-spacing:-.045em;font-size:15vw;color:#000;
}
.nl-cta__word .o{color:transparent;-webkit-text-stroke:clamp(1.5px,.3vw,3.5px) rgba(0,0,0,.42)}
.nl-cta__sub{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;margin:16px 0 24px;color:rgba(0,0,0,.78);line-height:1.8}
.nl-cta__note{margin-top:18px;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:rgba(0,0,0,.72);line-height:1.8}

/* ---------- footer ---------- */
/* The dark treatment is scoped to .nl-ft with local custom properties, so the
   global --ink / --mist tokens the rest of the site relies on are untouched.
   Gold TEXT here is #D4AF37 (9.0:1 on #111), not --gold-ink, which is tuned
   for light backgrounds and would only reach 3.8:1 on this one. */
.nl-ft{
  --ft-bg:#111111;
  --ft-text:#FFFFFF;
  --ft-muted:#C4C2B9;
  --ft-gold:#D4AF37;
  --ft-gold-hi:#E4C662;
  --ft-edge:rgba(255,255,255,.13);
  background:var(--ft-bg);color:var(--ft-muted);
  border-top:3px solid var(--ft-gold);
  padding-top:52px;
}
@media (min-width:820px){ .nl-ft{padding-top:clamp(64px,7vw,92px)} }

.nl-ft__grid{display:grid;grid-template-columns:1fr;gap:34px;padding-bottom:40px}
@media (min-width:640px){ .nl-ft__grid{grid-template-columns:repeat(2,1fr);gap:38px 32px} }
@media (min-width:1000px){ .nl-ft__grid{grid-template-columns:1.6fr repeat(3,1fr);gap:44px;padding-bottom:58px} }
.nl-ft__col{min-width:0}

/* the wordmark keeps its header shape but inverts for the dark ground */
.nl-ft .nl-mark__top{color:var(--ft-text);font-size:23px}
.nl-ft .nl-mark__top .y{color:var(--ft-gold)}
.nl-ft .nl-mark__sub{color:var(--ft-gold)}
.nl-ft .nl-marklink{display:inline-block}
.nl-ft .nl-marklink:focus-visible{outline:2px solid var(--ft-gold);outline-offset:6px}
.nl-ft__blurb{color:var(--ft-muted);font-size:15px;line-height:1.75;max-width:34ch;margin:20px 0 0;font-weight:var(--w-body)}

.nl-ft h4{
  position:relative;margin:0 0 20px;padding-bottom:12px;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:14.5px;letter-spacing:.03em;color:var(--ft-text);
}
.nl-ft h4::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--ft-gold)}

.nl-ft ul{list-style:none;padding:0;margin:0;display:grid;gap:2px}
.nl-ft ul a{
  display:inline-block;padding:10px 0;color:var(--ft-muted);
  font-size:15px;line-height:1.45;font-weight:var(--w-body);
  transition:color .2s,transform .2s;
}
.nl-ft ul a:hover{color:var(--ft-gold);transform:translateX(3px)}
.nl-ft ul a:focus-visible{outline:2px solid var(--ft-gold);outline-offset:3px;border-radius:3px}

/* support address — always rendered, and never clipped at 320px */
.nl-ft__mail{margin:20px 0 0}
.nl-ft__mail-k{
  display:block;margin:0 0 8px;font-family:var(--ui);font-weight:var(--w-label);
  font-size:10.5px;letter-spacing:0;color:var(--ft-muted);
}
.nl-ft__mail a{
  display:inline-flex;align-items:center;min-height:44px;
  color:var(--ft-gold);font-size:15px;font-weight:700;line-height:1.4;
  border-bottom:1px solid rgba(212,175,55,.45);overflow-wrap:anywhere;
  transition:color .2s,border-color .2s;
}
.nl-ft__mail a:hover{color:var(--ft-gold-hi);border-bottom-color:var(--ft-gold-hi)}
.nl-ft__mail a:focus-visible{outline:2px solid var(--ft-gold);outline-offset:4px;border-radius:3px}

/* divider before the legal block */
.nl-ft__legal{border-top:1px solid var(--ft-edge);padding-block:28px 36px}
.nl-ft__disc{
  font-family:var(--body);font-weight:var(--w-body);font-size:13.5px;line-height:1.8;
  letter-spacing:0;color:var(--ft-muted);max-width:78ch;margin:0;text-transform:none;
}
.nl-ft__base{
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:22px;
  padding-top:20px;border-top:1px solid var(--ft-edge);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--ft-muted);
}

/* ---------- toast ---------- */
.nl-toast{
  position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,calc(100% + 60px));
  background:var(--bolt);color:#000;padding:12px 20px;border-radius:999px;z-index:90;max-width:calc(100vw - 32px);
  font-family:var(--ui);font-size:11px;letter-spacing:0;font-weight:700;text-align:center;
  transition:transform .5s cubic-bezier(.16,1,.3,1);box-shadow:0 14px 40px rgba(17,17,17,.20);
}
.nl-toast.show{transform:translate(-50%,0)}
body.nl-has-stickybar .nl-toast{bottom:calc(88px + env(safe-area-inset-bottom))}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .nl-hero__scan{display:none}
  /* the marquees stop where they started rather than snapping to the end */
  .nl-band__track,.nl-ticker__track{animation:none!important;transform:none!important}
  /* and the stat rail is simply present, never waiting on a reveal */
  .nl-rail__i{opacity:1;transform:none}
}

/* ==========================================================================
   FREE-SHIPPING PROGRESS  (header strip + cart/checkout)
   ========================================================================== */
.nl-ship{background:var(--coal);border-bottom:1px solid var(--edge)}
.nl-ship__in{display:flex;align-items:center;gap:12px;padding-block:9px}
.nl-ship__txt{
  font-family:var(--ui);font-size:11px;font-weight:700;letter-spacing:0;line-height:1.4;color:var(--paper);flex:0 1 auto;min-width:0;text-rendering:optimizeLegibility;
}
.nl-ship__txt b{color:var(--gold-ink)}
.nl-ship__bar{flex:1 1 auto;max-width:520px;height:4px;background:var(--raise);border-radius:999px;overflow:hidden;min-width:60px}
.nl-ship__bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--bolt-lo),var(--bolt),var(--bolt-hi));transition:width .7s cubic-bezier(.16,1,.3,1)}
.nl-ship.is-won .nl-ship__txt{color:var(--gold-ink);font-weight:700}
@media (max-width:520px){ .nl-ship__txt{font-size:10.5px;letter-spacing:.07em} }

/* ==========================================================================
   ARCHIVE / SHOP
   ========================================================================== */
.nl-pagehero{background:var(--ink);border-bottom:1px solid var(--edge);padding:34px 0 28px;position:relative;overflow:hidden}
@media (min-width:820px){ .nl-pagehero{padding:56px 0 44px} }
.nl-pagehero::after{
  content:"";position:absolute;left:50%;top:-40%;transform:translateX(-50%);
  width:min(900px,120vw);aspect-ratio:2/1;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(212,175,55,.16),transparent 66%);
}
.nl-pagehero__in{position:relative;z-index:1}
.nl-pagehero h1{font-size:clamp(28px,6vw,58px)}
.nl-pagehero p{color:var(--mist-2);max-width:660px;margin:14px 0 0;font-size:clamp(16px,1.25vw,17px);line-height:1.65;font-weight:var(--w-strong)}
.nl-crumbs{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);margin-bottom:14px}
.nl-crumbs a{color:var(--mist-2)}
.nl-crumbs a:hover{color:var(--gold-ink)}

.nl-shopbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.nl-shopbar__count{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2)}
.nl-shopbar select,.woocommerce-ordering select{
  background:var(--coal);color:var(--paper);border:1px solid var(--edge-2);border-radius:999px;
  padding:9px 34px 9px 15px;font-family:var(--ui);font-weight:600;font-size:11px;letter-spacing:0;
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold-ink) 50%),linear-gradient(135deg,var(--gold-ink) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.woocommerce-result-count{display:none}

/* ---------- catalog search ----------
   Sits in the shop bar next to the count and the sort control. Mobile-first:
   full width on a phone, a fixed-width field beside the toolbar from 820px. */
.nl-search{display:flex;align-items:center;gap:8px;flex:1 1 100%;min-width:0;margin:0}
@media (min-width:820px){ .nl-search{flex:1 1 260px;max-width:420px;margin-right:auto} }

.nl-search__field{position:relative;display:flex;align-items:center;flex:1 1 auto;min-width:0}
.nl-search__ico{
  position:absolute;left:14px;width:15px;height:15px;pointer-events:none;
  color:var(--mist);fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;
  transition:color .22s;
}
.nl-search__field:focus-within .nl-search__ico{color:var(--gold-ink)}

.nl-search .nl-search__input{
  width:100%;height:44px;padding:0 40px 0 38px;
  background:var(--coal);color:var(--paper);
  border:1px solid var(--edge-2);border-radius:999px;
  font-family:var(--body);font-size:16px;line-height:1.2;
  transition:border-color .22s,background .22s;
}
@media (min-width:820px){ .nl-search .nl-search__input{font-size:14px} }
.nl-search .nl-search__input::placeholder{color:var(--hint);opacity:1}
.nl-search .nl-search__input:hover{border-color:var(--edge-2);background:var(--graph)}
.nl-search .nl-search__input:focus{border-color:var(--gold-ink);background:var(--graph);outline:none}
.nl-search .nl-search__input:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}
/* our own clear control replaces the browser's */
.nl-search .nl-search__input::-webkit-search-cancel-button,
.nl-search .nl-search__input::-webkit-search-decoration{-webkit-appearance:none;display:none}

.nl-search__clear{
  position:absolute;right:9px;width:26px;height:26px;display:grid;place-items:center;
  border-radius:999px;color:var(--mist);font-size:15px;line-height:1;
  transition:color .2s,background .2s;
}
.nl-search__clear:hover{color:var(--paper);background:var(--raise)}
.nl-search__clear:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}

.nl-search__go{
  flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:999px;
  background:var(--bolt);color:#000;border:1.5px solid transparent;
  transition:background .25s,transform .25s,border-color .25s;
}
.nl-search__go svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.nl-search__go:hover{background:var(--gold-press);transform:translateY(-1px)}
.nl-search__go:focus-visible{outline:2px solid var(--gold-ink);outline-offset:3px}

.nl-pager{display:flex;justify-content:center;gap:7px;margin-top:38px;flex-wrap:wrap}
.nl-pager .page-numbers{
  min-width:40px;height:40px;display:grid;place-items:center;padding:0 12px;border-radius:999px;
  border:1px solid var(--edge-2);font-family:var(--ui);font-weight:var(--w-label);font-size:11px;color:var(--mist-2);transition:.2s;
}
.nl-pager .page-numbers:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.nl-pager .page-numbers.current{background:var(--bolt);border-color:var(--bolt);color:#000;font-weight:700}

.nl-empty{text-align:center;padding:60px 0}
.nl-empty h2{font-size:26px;margin:0 0 10px}
.nl-empty p{color:var(--mist-2);margin:0 0 22px;font-size:15.5px;font-weight:var(--w-body)}
.nl-empty__acts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}

/* ==========================================================================
   SINGLE PRODUCT
   ========================================================================== */
.nl-pdp{padding:22px 0 0}
.nl-pdp__in{display:grid;grid-template-columns:1fr;gap:26px}
@media (min-width:960px){ .nl-pdp{padding:34px 0 0} .nl-pdp__in{grid-template-columns:1.05fr 1fr;gap:clamp(34px,5vw,72px);align-items:start} }

.nl-pdp__gal{position:relative;background:var(--coal);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;padding:20px}
@media (min-width:960px){ .nl-pdp__gal{position:sticky;top:calc(var(--hdr-h) + 16px);padding:34px} }
.nl-pdp__galinner{position:relative;z-index:1;display:grid;place-items:center;min-height:280px}
@media (min-width:960px){ .nl-pdp__galinner{min-height:440px} }
.nl-pdp__galinner img{max-height:400px;width:auto;margin-inline:auto;filter:drop-shadow(0 26px 34px rgba(17,17,17,.20));animation:nl-bob 5.2s ease-in-out infinite alternate;--rA:-2deg;--rB:1deg}
.nl-pdp__galinner .woocommerce-product-gallery__wrapper{display:grid;place-items:center}
.nl-pdp__galinner .flex-control-thumbs{display:flex;gap:8px;justify-content:center;list-style:none;padding:14px 0 0;margin:0;flex-wrap:wrap}
.nl-pdp__galinner .flex-control-thumbs li{width:52px}
.nl-pdp__galinner .flex-control-thumbs img{animation:none;filter:none;border:1px solid var(--edge);border-radius:2px;cursor:pointer;opacity:.55;transition:.2s}
.nl-pdp__galinner .flex-control-thumbs img:hover,.nl-pdp__galinner .flex-control-thumbs img.flex-active{opacity:1;border-color:var(--gold-ink)}
.woocommerce-product-gallery__trigger{display:none}

.nl-pdp__badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.nl-pdp__title{font-size:clamp(26px,5.6vw,46px);margin:0 0 12px}
.nl-pdp__pricerow{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.nl-pdp__price{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:clamp(26px,4.4vw,38px);letter-spacing:-.03em;color:var(--paper)}
.nl-pdp__price del{color:var(--mist);font-size:.55em;font-weight:400;margin-right:8px}
.nl-pdp__price ins{text-decoration:none}
.nl-pdp__pricelabel{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2)}

.nl-lotstrip{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--edge);
  border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;margin-bottom:18px;
}
@media (min-width:560px){ .nl-lotstrip{grid-template-columns:repeat(4,1fr)} }
.nl-lotstrip div{background:var(--coal);padding:12px 13px}
.nl-lotstrip dt{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2);margin:0 0 5px}
.nl-lotstrip dd{margin:0;font-family:var(--mono);font-weight:600;font-size:11.5px;letter-spacing:.02em;color:var(--gold-ink)}

.nl-coalink{
  display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;margin-bottom:18px;
  border:1px solid rgba(212,175,55,.48);background:rgba(212,175,55,.10);border-radius:var(--r);
  transition:background .25s,border-color .25s;text-align:left;
}
.nl-coalink:hover{background:rgba(212,175,55,.18);border-color:var(--gold-ink)}
.nl-coalink__ic{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:999px;background:var(--bolt);color:#000;font-size:14px}
.nl-coalink__t{flex:1;font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;font-size:12.5px;text-transform:uppercase;letter-spacing:.01em;line-height:1.35}
.nl-coalink__p{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--gold-ink);white-space:nowrap}

.nl-ships{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--edge);border-radius:var(--r);margin-bottom:18px;background:var(--coal)}
.nl-ships__dot{width:7px;height:7px;border-radius:50%;background:var(--good);flex:none;animation:nl-blink 2.4s infinite}
.nl-ships__t{font-size:14px;color:var(--mist-2);line-height:1.5;font-weight:var(--w-body)}
.nl-ships__t b{color:var(--paper)}

/* qty + add to cart */
.nl-qtyrow{display:flex;gap:10px;align-items:stretch;margin-bottom:12px}
.nl-qty{display:flex;align-items:center;border:1px solid var(--edge-2);border-radius:999px;overflow:hidden;flex:none}
.nl-qty button{width:42px;height:52px;font-size:18px;color:var(--mist-2);transition:.2s}
.nl-qty button:hover{color:var(--gold-ink);background:rgba(212,175,55,.12)}
.nl-qty input,.nl-qty .qty{
  width:44px;height:52px;text-align:center;background:transparent;border:0;color:var(--paper);
  font-family:var(--ui);font-weight:600;font-size:14px;-moz-appearance:textfield;
}
.nl-qty input::-webkit-outer-spin-button,.nl-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.nl-pdp form.cart{margin:0 0 16px}
.nl-pdp form.cart .quantity{display:none}
.nl-pdp .single_add_to_cart_button{
  flex:1;background:var(--bolt);color:#000;border:0;border-radius:999px;cursor:pointer;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.05em;font-size:14px;padding:17px 24px;
  transition:background .25s,transform .25s;
}
.nl-pdp .single_add_to_cart_button:hover{background:var(--gold-press);transform:translateY(-2px)}
.nl-pdp .single_add_to_cart_button.loading{opacity:.6}
.nl-pdp .variations{width:100%;margin-bottom:14px;border-collapse:collapse}
.nl-pdp .variations th{display:none}
.nl-pdp .variations td{display:block;padding:0 0 10px}
.nl-pdp .variations select{
  width:100%;background:var(--coal);color:var(--paper);border:1px solid var(--edge-2);border-radius:var(--r);
  padding:15px 40px 15px 16px;font-family:var(--body);font-size:15px;appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold-ink) 50%),linear-gradient(135deg,var(--gold-ink) 50%,transparent 50%);
  background-position:calc(100% - 21px) 55%,calc(100% - 16px) 55%;background-size:6px 6px;background-repeat:no-repeat;
}
.nl-pdp .reset_variations{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2)}
.nl-pdp .woocommerce-variation-price{margin-bottom:12px}
.nl-pdp .stock{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--good)}
.nl-pdp .stock.out-of-stock{color:var(--bad)}

.nl-warn{display:flex;gap:11px;padding:13px 15px;border:1px solid rgba(179,38,30,.35);background:rgba(179,38,30,.08);border-radius:var(--r);margin-bottom:20px}
.nl-warn span{color:var(--bad);flex:none;font-size:14px;line-height:1.4}
.nl-warn p{margin:0;font-size:13.5px;line-height:1.65;color:var(--mist-2);font-weight:var(--w-body)}
.nl-warn b{color:var(--paper)}

/* pdp accordion */
.nl-acc{border-top:1px solid var(--edge)}
.nl-acc details{border-bottom:1px solid var(--edge)}
.nl-acc summary{
  list-style:none;cursor:pointer;padding:17px 2px;display:flex;align-items:center;gap:12px;
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  font-size:13.5px;text-transform:uppercase;letter-spacing:.01em;
}
.nl-acc summary::-webkit-details-marker{display:none}
.nl-acc summary::after{content:"+";margin-left:auto;color:var(--gold-ink);font-size:18px;line-height:1}
.nl-acc details[open] summary::after{content:"–"}
.nl-acc__body{padding:0 2px 20px;color:var(--mist-2);font-size:15px;line-height:1.7;font-weight:var(--w-body)}
.nl-acc__body p{margin:0 0 12px}
.nl-acc__body p:last-child{margin:0}
.nl-acc__body ul{margin:0 0 12px;padding-left:18px}
.nl-acc__body li{margin-bottom:7px}

/* ==========================================================================
   COA + TESTING PANEL  (product page + library)
   ========================================================================== */
.nl-testing{background:var(--ink);border-top:1px solid var(--edge);margin-top:44px;padding-block:48px}
@media (min-width:820px){ .nl-testing{margin-top:70px;padding-block:80px} }
.nl-testing__grid{display:grid;grid-template-columns:1fr;gap:24px}
@media (min-width:1000px){ .nl-testing__grid{grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,68px);align-items:start} }

.nl-assaylist{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:2px}
.nl-assaylist li{display:flex;gap:13px;padding:14px 0;border-top:1px solid var(--edge);color:var(--mist-2);font-size:14.5px;line-height:1.65;font-weight:var(--w-body)}
.nl-assaylist b{font-family:var(--mono);font-weight:var(--w-label);font-size:11px;letter-spacing:.02em;color:var(--gold-ink);flex:none;padding-top:4px;width:24px}

.nl-panel{background:var(--coal);border:1px solid var(--edge);border-radius:4px;overflow:hidden;box-shadow:0 30px 70px rgba(17,17,17,.13)}
.nl-panel__top{display:flex;align-items:center;gap:9px;padding:12px 15px;background:var(--graph);border-bottom:1px solid var(--edge);flex-wrap:wrap}
.nl-panel__dots{display:flex;gap:5px}
.nl-panel__dots i{width:7px;height:7px;border-radius:50%;background:var(--raise);display:block}
.nl-panel__dots i:first-child{background:var(--bolt)}
.nl-panel__file{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;color:var(--mist-2);text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:56%}
.nl-panel__live{margin-left:auto;display:flex;align-items:center;gap:6px;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.04em;color:var(--gold-ink);white-space:nowrap}
.nl-panel__live i{width:5px;height:5px;border-radius:50%;background:var(--bolt);animation:nl-blink 2s infinite}
.nl-panel__hero{padding:22px 18px;border-bottom:1px solid var(--edge);display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.nl-panel__pct{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:clamp(46px,10vw,80px);line-height:.8;letter-spacing:-.045em;color:var(--gold-ink-lg)}
.nl-panel__pct sup{font-size:.32em;vertical-align:top;letter-spacing:0;margin-left:.06em}
.nl-panel__pctl{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2);padding-bottom:7px;text-align:right;line-height:1.7}
.nl-meter{height:5px;background:var(--raise);position:relative;overflow:hidden}
.nl-meter i{position:absolute;inset:0 100% 0 0;background:linear-gradient(90deg,var(--bolt-lo),var(--bolt),var(--bolt-hi));transition:right 1.6s cubic-bezier(.16,1,.3,1) .2s}
.nl-panel.in .nl-meter i{right:var(--gap,1%)}
.nl-rows{padding:4px 0;margin:0}
.nl-row{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:12px 18px;border-bottom:1px solid var(--edge);align-items:center}
.nl-row:last-child{border-bottom:0}
.nl-row dt{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2);margin:0}
.nl-row dd{margin:0;font-family:var(--mono);font-weight:var(--w-label);font-size:11px;letter-spacing:.02em;color:var(--paper);text-align:right}
.nl-row dd .ok{color:var(--gold-ink)}
.nl-panel__foot{padding:15px 18px;background:var(--graph);border-top:1px solid var(--edge);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

.nl-coaembed{margin-top:20px;border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;background:var(--coal)}
.nl-coaembed object,.nl-coaembed iframe{width:100%;height:460px;border:0;display:block;background:var(--void)}
@media (max-width:820px){ .nl-coaembed object,.nl-coaembed iframe{height:320px} }
.nl-coaembed img{width:100%;height:auto}
.nl-coaembed__acts{padding:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--edge)}
.nl-coaembed__hint{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2)}
.nl-coaempty{padding:34px 20px;text-align:center;border:1px dashed var(--edge-2);border-radius:var(--r);background:var(--coal);margin-top:20px}
.nl-coaempty h3{font-family:var(--display);font-weight:800;font-size:16px;text-transform:uppercase;margin:0 0 8px}
.nl-coaempty p{margin:0;color:var(--mist-2);font-size:14.5px;font-weight:var(--w-body)}

/* COA library */
.nl-coalib{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width:700px){ .nl-coalib{grid-template-columns:repeat(2,1fr);gap:14px} }
@media (min-width:1100px){ .nl-coalib{grid-template-columns:repeat(3,1fr)} }
.nl-coaitem{display:flex;gap:14px;align-items:center;padding:16px;background:var(--coal);border:1px solid var(--edge);border-radius:var(--r);transition:.3s}
.nl-coaitem:hover{border-color:rgba(212,175,55,.58);background:var(--graph);transform:translateY(-3px)}
.nl-coaitem__thumb{width:56px;height:56px;flex:none;border-radius:2px;background:var(--void);display:grid;place-items:center;overflow:hidden;border:1px solid var(--edge)}
.nl-coaitem__thumb img{max-width:80%;max-height:80%;width:auto;object-fit:contain}
.nl-coaitem__b{flex:1;min-width:0}
.nl-coaitem__n{font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:14px;text-transform:uppercase;margin:0 0 5px;line-height:1.2}
.nl-coaitem__m{font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2);display:flex;gap:8px;flex-wrap:wrap}
.nl-coaitem__m .p{color:var(--gold-ink)}
.nl-coaitem__go{flex:none;color:var(--gold-ink);font-size:16px}

/* ==========================================================================
   WOO: notices, cart, checkout, account
   ========================================================================== */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.wc-block-components-notice-banner{
  list-style:none;margin:0 0 18px;padding:14px 16px;border-radius:var(--r);
  background:var(--coal);border:1px solid var(--edge-2);color:var(--mist-2);font-size:14.5px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-weight:var(--w-body)}
.woocommerce-message{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.12);color:var(--paper)}
.woocommerce-error{border-color:rgba(179,38,30,.45);background:rgba(179,38,30,.08);color:#7F1D1D}
.woocommerce-message .button,.woocommerce-info .button{
  margin-left:auto;background:var(--bolt);color:#000;border-radius:999px;padding:9px 16px;
  font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.05em;
}
.woocommerce-error li{margin-bottom:4px}

.nl-page{padding:34px 0 70px}
@media (min-width:820px){ .nl-page{padding:48px 0 100px} }
.nl-prose{max-width:78ch;color:var(--mist-2);font-size:15.5px;line-height:1.8;font-weight:var(--w-body)}
.nl-prose h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:clamp(20px,3.4vw,30px);color:var(--paper);margin:36px 0 14px;letter-spacing:-.015em}
.nl-prose h3{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:17px;color:var(--paper);margin:26px 0 10px}
.nl-prose a{color:var(--gold-ink);text-decoration:underline;text-underline-offset:3px}
.nl-prose ul,.nl-prose ol{padding-left:20px}
.nl-prose li{margin-bottom:9px}
.nl-prose strong{color:var(--paper)}
.nl-prose table{width:100%;border-collapse:collapse;margin:18px 0}
.nl-prose th,.nl-prose td{border:1px solid var(--edge);padding:11px 13px;text-align:left;font-size:14.5px}
.nl-prose th{background:var(--coal);font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--gold-ink)}

/* cart + checkout styles live at the end of this file */

/* checkout */
.woocommerce-order,.woocommerce-order-overview{margin-top:20px}
.woocommerce-order-overview{list-style:none;padding:0;display:grid;gap:10px;grid-template-columns:1fr}
@media (min-width:700px){ .woocommerce-order-overview{grid-template-columns:repeat(4,1fr)} }
.woocommerce-order-overview li{background:var(--coal);border:1px solid var(--edge);border-radius:var(--r);padding:14px;
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2)}
.woocommerce-order-overview li strong{display:block;margin-top:7px;font-family:var(--display);font-size:15px;color:var(--gold-ink);letter-spacing:0;text-transform:none}

/* my account */
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0 0 24px;display:flex;gap:8px;flex-wrap:wrap}
.woocommerce-MyAccount-navigation a{
  display:block;padding:10px 16px;border-radius:999px;border:1px solid var(--edge-2);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);transition:.2s;
}
.woocommerce-MyAccount-navigation a:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.woocommerce-MyAccount-navigation .is-active a{background:var(--bolt);border-color:var(--bolt);color:#000;font-weight:700}
.woocommerce-Address,.woocommerce-Addresses{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){ .woocommerce-Addresses{grid-template-columns:1fr 1fr} }

/* mobile sticky add-to-cart */
.nl-stickybar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;gap:12px;align-items:center;
  padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-top:1px solid var(--edge);transform:translateY(110%);transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.nl-stickybar.show{transform:none}
@media (max-width:960px){ .nl-stickybar{display:flex} }
.nl-stickybar__i{flex:1;min-width:0}
.nl-stickybar__n{font-family:var(--display);font-weight:800;font-size:12.5px;text-transform:uppercase;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nl-stickybar__p{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;color:var(--gold-ink);margin-top:3px}
.nl-stickybar .nl-btn{flex:none;padding:14px 20px}

/* age gate */
.nl-gate{position:fixed;inset:0;z-index:200;background:rgba(255,255,255,.95);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  place-items:center;padding:20px;
  display:none; /* JS opts the gate IN — a JS failure must never lock the site */
}
.nl-gate.is-open{display:grid}
.nl-gate[hidden]{display:none!important}
.nl-gate__box{max-width:440px;width:100%;background:var(--coal);border:1px solid var(--edge-2);border-radius:6px;
  padding:28px 24px;text-align:center;border-top:var(--band) solid var(--bolt)}
.nl-gate__box h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;margin:16px 0 10px;letter-spacing:-.02em}
.nl-gate__box p{color:var(--mist-2);font-size:15px;line-height:1.7;margin:0 0 20px;font-weight:var(--w-body)}
.nl-gate__acts{display:grid;gap:10px}
.nl-gate__fine{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);margin-top:16px;line-height:1.8}

/* ==========================================================================
   ADDRESS PANEL  (cart) + CHECKOUT FORMS — shared field styling
   ========================================================================== */
.nl-addr{margin-top:34px;background:var(--coal);border:1px solid var(--edge);border-radius:4px;padding:20px}
@media (min-width:700px){ .nl-addr{padding:28px} }
.nl-addr__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:22px}
.nl-addr__head h2{font-size:clamp(19px,3vw,26px);margin:0 0 6px}
.nl-addr__head p{margin:0;color:var(--mist-2);font-size:14.5px;line-height:1.6;max-width:52ch;font-weight:var(--w-body)}
.nl-addr__saved{flex:none;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;
  color:var(--good);border:1px solid rgba(21,128,61,.45);border-radius:999px;padding:6px 12px}

.nl-fs{border:0;padding:0;margin:0 0 20px;min-width:0}
.nl-fs legend{font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;
  color:var(--gold-ink);padding:0 0 12px;margin:0;width:100%;border-bottom:1px solid var(--edge)}
.nl-fs>*:first-of-type{margin-top:14px}
.nl-grid2,.nl-grid3{display:grid;grid-template-columns:1fr;gap:0 14px}
@media (min-width:560px){ .nl-grid2{grid-template-columns:1fr 1fr} .nl-grid3{grid-template-columns:1.3fr .8fr .9fr} }
.nl-f{margin:0 0 14px}
.nl-f label,.nl-addr label,.woocommerce-billing-fields label,.woocommerce-shipping-fields label{
  display:block;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;
  color:var(--mist-2);margin-bottom:7px}
.nl-f abbr,.required{color:var(--gold-ink);text-decoration:none;border:0}
.nl-check{display:flex;align-items:center;gap:11px;padding:14px 15px;border:1px solid var(--edge-2);
  border-radius:var(--r);margin-bottom:20px;cursor:pointer;transition:border-color .2s,background .2s}
.nl-check:hover{border-color:var(--gold-ink);background:rgba(212,175,55,.10)}
.nl-check input{width:18px;height:18px;flex:none;accent-color:var(--bolt);margin:0}
.nl-check span{font-size:14.5px;color:var(--paper);font-weight:var(--w-body)}
.nl-shipfs[hidden]{display:none}
.nl-addr__go{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:6px;border-top:1px solid var(--edge)}
.nl-addr__go .nl-btn{margin-top:16px}
.nl-addr__hint{margin-top:16px;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);max-width:34ch;line-height:1.7}


/* ==========================================================================
   CHECKOUT — single authoritative section
   ==========================================================================
   This is the ONLY place checkout is styled. Four earlier blocks used to
   define .nl-checkout, .nl-cosec, .form-row, the billing/shipping wrappers,
   Select2, #payment, #place_order and the review table, each partially
   overriding the last; they have been removed rather than layered over.

   Almost everything is scoped to body.woocommerce-checkout .nl-coform, so
   the cart, account, login, registration and product pages are untouched.
   Select2 and its dropdown are the exception — Select2 renders into the end
   of <body>, outside the form — so those are scoped by body class only.
   ========================================================================== */

/* ---------- page shell ---------- */
body.woocommerce-checkout .nl-coform,
body.woocommerce-checkout .nl-coform *{box-sizing:border-box}
body.woocommerce-checkout .nl-coform{display:block;max-width:100%}
body.woocommerce-checkout .nl-coform>input[type=hidden],
body.woocommerce-checkout .nl-coform>.woocommerce-notices-wrapper:empty{display:none}

body.woocommerce-checkout .nl-checkout{
  display:grid;grid-template-columns:1fr;gap:20px;align-items:start;max-width:100%;
}
/* a stray child injected by a gateway spans the row instead of stealing a column */
body.woocommerce-checkout .nl-checkout>*{grid-column:1 / -1;min-width:0;max-width:100%}
body.woocommerce-checkout .nl-checkout__main,
body.woocommerce-checkout .nl-checkout__side{min-width:0;max-width:100%}
@media (min-width:1040px){
  body.woocommerce-checkout .nl-checkout{grid-template-columns:minmax(0,1.5fr) minmax(360px,.8fr);gap:32px}
  body.woocommerce-checkout .nl-checkout__main{grid-column:1;grid-row:1}
  body.woocommerce-checkout .nl-checkout__side{grid-column:2;grid-row:1;position:sticky;top:calc(var(--hdr-h) + 16px)}
}
@media (min-width:1360px){
  body.woocommerce-checkout .nl-checkout{grid-template-columns:minmax(0,1.6fr) minmax(420px,.75fr);gap:44px}
}
/* Safari's toolbar must not sit on top of the last control */
body.woocommerce-checkout .nl-coform{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}

/* ---------- step indicator ---------- */
body.woocommerce-checkout .nl-costeps{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0 0 18px;
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);line-height:1.5;
}
@media (max-width:359px){ body.woocommerce-checkout .nl-costeps{font-size:10px;letter-spacing:.04em;gap:5px 6px} }
body.woocommerce-checkout .nl-costeps b{color:var(--gold-ink);font-weight:var(--w-label)}
body.woocommerce-checkout .nl-costeps span{opacity:.55}

/* ---------- card ---------- */
body.woocommerce-checkout .nl-cosec{
  background:var(--coal);border:1px solid var(--edge);border-radius:7px;
  padding:20px 18px;margin:0 0 18px;max-width:100%;
}
@media (min-width:390px){ body.woocommerce-checkout .nl-cosec{padding:22px 20px} }
@media (min-width:700px){ body.woocommerce-checkout .nl-cosec{padding:26px 24px} }
@media (min-width:900px){ body.woocommerce-checkout .nl-cosec{padding:30px 34px} }

/* the wrappers WooCommerce injects must never break out of that padding */
body.woocommerce-checkout .nl-cosec #customer_details,
body.woocommerce-checkout .nl-cosec .woocommerce-billing-fields,
body.woocommerce-checkout .nl-cosec .woocommerce-shipping-fields,
body.woocommerce-checkout .nl-cosec .woocommerce-additional-fields,
body.woocommerce-checkout .nl-cosec .col2-set,
body.woocommerce-checkout .nl-cosec .col2-set .col-1,
body.woocommerce-checkout .nl-cosec .col2-set .col-2{
  display:block;float:none;width:100%;max-width:100%;margin-inline:0;padding:0;
}

/* ---------- section header ---------- */
body.woocommerce-checkout .nl-cosec__head{
  display:flex;align-items:flex-start;gap:13px;margin:0 0 18px;padding-bottom:16px;
  border-bottom:1px solid var(--edge);
}
body.woocommerce-checkout .nl-cosec__n{
  width:37px;height:37px;flex:none;display:grid;place-items:center;border-radius:999px;
  background:var(--bolt);color:#000;font-family:var(--ui);font-size:13px;font-weight:700;line-height:1;
}
body.woocommerce-checkout .nl-cosec__t{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;letter-spacing:-.01em;font-size:19px;line-height:1.15;
  color:var(--paper);margin:0 0 5px;padding:0;border:0;
}
@media (min-width:900px){ body.woocommerce-checkout .nl-cosec__t{font-size:clamp(20px,1.6vw,23px)} }
body.woocommerce-checkout .nl-cosec__sub{
  margin:0;font-size:14px;line-height:1.5;color:var(--mist-2);font-weight:var(--w-body);
  max-width:46ch;overflow-wrap:break-word;
}

/* The card already says "Billing & shipping", so WooCommerce's own heading is
   redundant. Hidden visually, still read by screen readers, hooks untouched. */
body.woocommerce-checkout .nl-cosec .woocommerce-billing-fields>h3,
body.woocommerce-checkout .nl-cosec .woocommerce-additional-fields>h3{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

/* ---------- field rows ----------
   Flex with margins, not grid gaps: a zero-width injected node must not be
   handed a column or eat a gutter. */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{
  display:flex;flex-wrap:wrap;gap:0;width:100%;max-width:100%;margin-inline:0;padding:0;
}
body.woocommerce-checkout .nl-cosec .form-row{
  flex:0 1 100%;min-width:0;max-width:100%;margin:0 0 16px;padding:0;text-align:left;
}
/* two columns only from tablet — first and last name stay stacked on phones */
@media (min-width:640px){
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper>.form-row-first,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper>.form-row-first{
    flex:0 1 calc(50% - 9px);margin-right:18px;
  }
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper>.form-row-last,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper>.form-row-last{flex:0 1 calc(50% - 9px)}
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper>.form-row-wide,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper>.form-row-wide{flex:0 1 100%}
}

/* ---------- labels ---------- */
body.woocommerce-checkout .nl-cosec .form-row>label{
  display:block;text-align:left;font-family:var(--body);font-size:14px;font-weight:600;
  letter-spacing:0;text-transform:none;line-height:1.35;color:var(--mist-2);margin:0 0 8px;
}
body.woocommerce-checkout .nl-cosec .form-row .required,
body.woocommerce-checkout .nl-cosec .form-row abbr{
  color:var(--gold-ink);text-decoration:none;border:0;margin-left:3px;
}
body.woocommerce-checkout .nl-cosec .form-row .optional{color:var(--mist);font-weight:var(--w-body)}
body.woocommerce-checkout .nl-cosec .form-row>span.woocommerce-input-wrapper{display:block;width:100%}

/* ---------- controls: one treatment for every field type ---------- */
body.woocommerce-checkout .nl-cosec input[type=text],
body.woocommerce-checkout .nl-cosec input[type=email],
body.woocommerce-checkout .nl-cosec input[type=tel],
body.woocommerce-checkout .nl-cosec input[type=password],
body.woocommerce-checkout .nl-cosec input[type=number],
body.woocommerce-checkout .nl-cosec select,
body.woocommerce-checkout .nl-cosec .input-text{
  width:100%;max-width:100%;height:54px;padding:0 15px;border-radius:6px;
  background:var(--coal);border:1px solid var(--edge-2);color:var(--paper);
  font-family:var(--body);font-size:16px;line-height:1.2;   /* 16px stops iOS zooming */
  transition:border-color .2s,background .2s,box-shadow .2s;
}
body.woocommerce-checkout .nl-cosec textarea{
  width:100%;max-width:100%;min-height:108px;padding:14px 15px;border-radius:6px;
  background:var(--coal);border:1px solid var(--edge-2);color:var(--paper);
  font-family:var(--body);font-size:16px;line-height:1.55;resize:vertical;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
body.woocommerce-checkout .nl-cosec input:focus,
body.woocommerce-checkout .nl-cosec select:focus,
body.woocommerce-checkout .nl-cosec textarea:focus{
  border-color:var(--gold-ink);background:var(--void);outline:none;
  box-shadow:0 0 0 3px rgba(212,175,55,.20);
}
body.woocommerce-checkout .nl-cosec ::placeholder{color:var(--hint);opacity:1}
body.woocommerce-checkout .woocommerce-invalid input,
body.woocommerce-checkout .woocommerce-invalid select,
body.woocommerce-checkout .woocommerce-invalid .select2-selection{border-color:var(--bad)!important}
body.woocommerce-checkout .woocommerce-validated input,
body.woocommerce-checkout .woocommerce-validated select{border-color:rgba(21,128,61,.5)}

/* Select2 renders outside the form, so it is scoped by body class only.
   Heights are matched to the inputs above exactly. */
body.woocommerce-checkout .select2-container--default .select2-selection--single{
  height:54px!important;border-radius:6px!important;
  background:var(--coal)!important;border:1px solid var(--edge-2)!important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:54px!important;padding-left:15px!important;padding-right:34px!important;
  font-size:16px!important;color:var(--paper)!important;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:54px!important}
body.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single{border-color:var(--gold-ink)!important}
.select2-dropdown{background:#FFFFFF!important;border-color:var(--edge-2)!important;color:var(--paper)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--bolt)!important;color:#000!important}
.select2-container--default .select2-results__option{font-size:15px;padding:11px 14px}

/* ---------- checkbox rows ----------
   Opt-in, create-account and ship-to-different-address only. Deliberately not
   matched on any one newsletter plugin's class: any checkbox inside a checkout
   form row gets this treatment. Payment radios are excluded. */
body.woocommerce-checkout .nl-cosec .form-row input[type=checkbox],
body.woocommerce-checkout .nl-cosec .woocommerce-form__input-checkbox,
body.woocommerce-checkout #ship-to-different-address input[type=checkbox]{
  width:20px;height:20px;flex:none;margin:0;accent-color:var(--bolt);
}
body.woocommerce-checkout .nl-cosec .form-row.woocommerce-validated input[type=checkbox]{border-color:var(--edge-2)}
body.woocommerce-checkout .nl-cosec .form-row label.checkbox,
body.woocommerce-checkout .nl-cosec .form-row .woocommerce-form__label-for-checkbox,
body.woocommerce-checkout #ship-to-different-address label{
  display:flex;align-items:flex-start;gap:11px;min-height:44px;padding:10px 0;margin:0;
  font-family:var(--body);font-size:14.5px;font-weight:var(--w-body);line-height:1.45;
  letter-spacing:0;text-transform:none;color:var(--mist-2);cursor:pointer;
  max-width:100%;overflow-wrap:break-word;
}
body.woocommerce-checkout .nl-cosec .form-row label.checkbox span,
body.woocommerce-checkout .nl-cosec .form-row .woocommerce-form__label-for-checkbox span,
body.woocommerce-checkout #ship-to-different-address label span{
  font-family:var(--body);font-size:14.5px;font-weight:var(--w-body);line-height:1.45;
  letter-spacing:0;text-transform:none;min-width:0;
}
/* "Ship to a different address?" is a heading in WooCommerce — make it read as a row */
body.woocommerce-checkout #ship-to-different-address{
  margin:0 0 14px;padding:0;border:0;font-size:inherit;
}
body.woocommerce-checkout #ship-to-different-address label{color:var(--paper);font-weight:600}
/* payment radios keep their own styling */
body.woocommerce-checkout #payment .payment_methods label{display:inline-flex;min-height:0;padding:0}

/* ---------- order review ---------- */
body.woocommerce-checkout .nl-review{
  background:var(--coal);border:1px solid var(--edge);border-radius:7px;overflow:hidden;
  border-top:var(--band) solid var(--bolt);max-width:100%;
}
body.woocommerce-checkout .nl-review__t{
  font-family:var(--display);font-weight:800;font-size:15px;
  letter-spacing:.02em;margin:0;padding:18px 20px;border-bottom:1px solid var(--edge);color:var(--paper);
}
body.woocommerce-checkout .nl-review__in{padding:6px 20px 20px}
body.woocommerce-checkout .woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;table-layout:fixed}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead{display:none}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:13px 0;
  border-bottom:1px solid var(--edge);
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td{display:block;padding:0;border:0}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{
  font-size:14.5px;line-height:1.45;color:var(--paper);font-weight:var(--w-strong);
  min-width:0;overflow-wrap:anywhere;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .product-quantity{
  display:inline-block;font-family:var(--ui);font-weight:var(--w-label);font-size:11px;
  color:var(--mist-2);letter-spacing:0;
}
/* thumb beside the name rather than stacked under it */
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{
  display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:12px;row-gap:3px;align-items:center;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .nl-rthumb{grid-row:1 / span 2;grid-column:1}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .nl-rname{grid-column:2;align-self:end;min-width:0}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name .product-quantity{
  grid-column:2;align-self:start;margin:0;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-total{
  font-family:var(--display);font-weight:800;font-size:15px;text-align:right;white-space:nowrap;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--edge);
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{
  display:block;padding:0;border:0;text-align:right;min-width:0;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th{
  font-family:var(--ui);font-size:11px;letter-spacing:0;
  color:var(--mist-2);font-weight:var(--w-label);text-align:left;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total{border-bottom:0;padding-top:15px}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total .amount{
  font-family:var(--display);font-weight:800;font-size:23px;color:var(--gold-ink-lg);letter-spacing:-.03em;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method{
  text-align:right;list-style:none;padding:0;margin:0;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method li{
  margin-bottom:6px;font-size:14px;font-weight:var(--w-body);
}
body.woocommerce-checkout .nl-rname{display:block;font-weight:var(--w-strong)}
body.woocommerce-checkout .nl-review__foot{padding:14px 20px;border-top:1px solid var(--edge);text-align:center}
body.woocommerce-checkout .nl-review__foot a{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);transition:.2s;
}
body.woocommerce-checkout .nl-review__foot a:hover{color:var(--gold-ink)}

/* ---------- summary: order on mobile, sticky column on desktop ----------
   One #order_review only — duplicating it would give WooCommerce's AJAX two
   matches for .woocommerce-checkout-review-order-table and break the refresh.
   Mobile puts it first with flex order instead. */
@media (max-width:1039px){
  body.woocommerce-checkout .nl-checkout{display:flex;flex-direction:column;gap:18px}
  body.woocommerce-checkout .nl-checkout__side{order:-1}
  body.woocommerce-checkout .nl-review{position:static}
}
body.woocommerce-checkout .nl-review__toggle{
  display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  padding:16px 20px;background:none;border:0;border-bottom:1px solid var(--edge);
  text-align:left;cursor:default;color:var(--paper);
}
body.woocommerce-checkout .nl-review__t{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;font-size:15px;letter-spacing:.02em;color:var(--paper);margin:0;padding:0;border:0;
}
body.woocommerce-checkout .nl-review__meta{display:flex;align-items:center;gap:10px}
body.woocommerce-checkout .nl-review__count{
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);
}
body.woocommerce-checkout .nl-review__chev{display:none;font-size:12px;color:var(--mist-2);transition:transform .25s}
body.woocommerce-checkout .nl-review__panel{display:block}

/* collapsible only where the toggle is useful */
@media (max-width:1039px){
  body.woocommerce-checkout .nl-review__toggle{cursor:pointer;min-height:56px}
  body.woocommerce-checkout .nl-review__toggle:focus-visible{outline:2px solid var(--gold-ink);outline-offset:-3px}
  body.woocommerce-checkout .nl-review__chev{display:inline-block}
  body.woocommerce-checkout .nl-review__toggle[aria-expanded="false"] .nl-review__chev{transform:rotate(-90deg)}
  body.woocommerce-checkout .nl-review__toggle[aria-expanded="false"]+.nl-review__panel{display:none}
}

/* ---------- trust block ---------- */
body.woocommerce-checkout .nl-cotrust{
  list-style:none;margin:0;padding:14px 20px 4px;display:grid;gap:10px;border-top:1px solid var(--edge);
}
body.woocommerce-checkout .nl-cotrust li{
  display:flex;align-items:flex-start;gap:10px;min-width:0;
  font-size:12.5px;line-height:1.5;font-weight:var(--w-body);color:var(--mist-2);overflow-wrap:anywhere;
}
body.woocommerce-checkout .nl-cotrust span{flex:none;color:var(--gold-ink);font-size:12px;line-height:1.5}
body.woocommerce-checkout .nl-cotrust code{
  font-family:var(--mono);font-size:11.5px;background:var(--graph);
  padding:1px 5px;border-radius:3px;color:var(--paper);
}

/* ---------- distraction-free header on checkout ----------
   Markup untouched; the nav simply isn't shown while paying. */
body.woocommerce-checkout .nl-ticker,
body.woocommerce-checkout .nl-hdr__nav,
body.woocommerce-checkout .nl-burger,
body.woocommerce-checkout .nl-hdr__end .nl-icobtn{display:none}
body.woocommerce-checkout .nl-hdr__in{grid-template-columns:auto 1fr auto}
body.woocommerce-checkout .nl-policies{margin-bottom:18px}

/* ---------- payment ---------- */
body.woocommerce-checkout #payment{background:transparent;padding:0;margin-top:14px;max-width:100%}
body.woocommerce-checkout #payment .payment_methods{list-style:none;padding:0;margin:0 0 14px;border:0}
body.woocommerce-checkout #payment .payment_methods>li{
  padding:14px;border:1px solid var(--edge);border-radius:6px;margin-bottom:9px;
  background:var(--graph);transition:border-color .2s;
}
body.woocommerce-checkout #payment .payment_methods>li:hover{border-color:var(--edge-2)}
body.woocommerce-checkout #payment .payment_methods>li label{
  align-items:center;gap:10px;min-height:44px;font-family:var(--body);font-size:15px;
  text-transform:none;letter-spacing:0;color:var(--paper);margin:0;cursor:pointer;font-weight:var(--w-body);
}
body.woocommerce-checkout #payment .payment_methods input[type=radio]{width:18px;height:18px;accent-color:var(--bolt);margin:0}
body.woocommerce-checkout #payment .payment_box{
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;padding:14px;margin-top:11px;
  font-size:13.5px;color:var(--mist-2);line-height:1.6;font-weight:var(--w-body);
}
body.woocommerce-checkout #payment .payment_box::before{display:none}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{
  font-size:13.5px;color:var(--mist-2);margin-bottom:14px;line-height:1.6;font-weight:var(--w-body);
}
body.woocommerce-checkout .nl-ack{margin:0 0 14px}
body.woocommerce-checkout .nl-ack label{
  display:flex;align-items:flex-start;gap:11px;min-height:44px;padding:8px 0;
  font-family:var(--body);font-size:13.5px;letter-spacing:0;text-transform:none;
  color:var(--mist-2);line-height:1.55;cursor:pointer;font-weight:var(--w-body);
}
body.woocommerce-checkout .nl-ack input{width:20px;height:20px;flex:none;accent-color:var(--bolt);margin:0}
body.woocommerce-checkout #place_order{
  width:100%;min-height:54px;padding:17px 20px;font-size:16px;border-radius:999px;margin-top:4px;
}
body.woocommerce-checkout .nl-copay{
  margin:14px 0 0;display:grid;gap:8px;font-family:var(--ui);font-weight:var(--w-label);
  font-size:10.5px;letter-spacing:0;color:var(--mist-2);
  text-align:center;line-height:1.7;
}

/* ==========================================================================
   PRODUCT PAGE — floating vial, halo, chips, jump nav
   ========================================================================== */
.nl-pdp__gal{position:relative;background:radial-gradient(120% 90% at 50% 35%,#FFFFFF,#F0F0EB 70%);
  border:1px solid var(--edge);border-radius:4px;overflow:hidden;padding:22px;isolation:isolate}
@media (min-width:960px){ .nl-pdp__gal{position:sticky;top:calc(var(--hdr-h) + 16px);padding:36px} }
.nl-pdp__halo{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);z-index:0;
  width:min(460px,88%);aspect-ratio:1/1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at center,rgba(212,175,55,.28),rgba(212,175,55,.10) 45%,transparent 70%);
  filter:blur(10px);animation:nl-halo 6s ease-in-out infinite alternate}
@keyframes nl-halo{from{transform:translate(-50%,-50%) scale(.94);opacity:.75}to{transform:translate(-50%,-50%) scale(1.06);opacity:1}}
.nl-pdp__pool{position:absolute;left:50%;bottom:2%;transform:translateX(-50%);width:52%;height:20px;
  border-radius:50%;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(212,175,55,.48),rgba(212,175,55,.10) 55%,transparent 72%);
  filter:blur(10px);animation:nl-pool 5.2s ease-in-out infinite alternate}

.nl-pdp__galinner{position:relative;z-index:1;display:grid;place-items:center;min-height:290px}
@media (min-width:960px){ .nl-pdp__galinner{min-height:450px} }
.nl-pdp__galinner img{width:auto;max-height:400px;margin-inline:auto;
  filter:drop-shadow(0 30px 38px rgba(17,17,17,.20));
  animation:nl-bob 5.2s ease-in-out infinite alternate;--rA:-3deg;--rB:1deg;transform-origin:50% 92%}
.nl-pdp__galinner .woocommerce-product-gallery__wrapper{display:grid;place-items:center}
.nl-pdp__galinner .flex-control-thumbs{display:flex;gap:8px;justify-content:center;list-style:none;
  padding:16px 0 0;margin:0;flex-wrap:wrap;position:relative;z-index:2}
.nl-pdp__galinner .flex-control-thumbs li{width:54px}
.nl-pdp__galinner .flex-control-thumbs img{animation:none;filter:none;border:1px solid var(--edge);
  border-radius:2px;cursor:pointer;opacity:.5;transition:.2s;max-height:none}
.nl-pdp__galinner .flex-control-thumbs img:hover,.nl-pdp__galinner .flex-control-thumbs img.flex-active{opacity:1;border-color:var(--gold-ink)}

.nl-pdp__chips{position:absolute;inset:0;z-index:2;pointer-events:none;display:none}
@media (min-width:700px){ .nl-pdp__chips{display:block} }
.nl-pdp__chip{position:absolute;background:rgba(255,255,255,.80);border:1px solid rgba(212,175,55,.45);
  border-radius:3px;padding:8px 12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:nl-float 7s ease-in-out infinite alternate}
.nl-pdp__chip b{display:block;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--gold-ink)}
.nl-pdp__chip i{display:block;font-style:normal;font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;
  text-transform:uppercase;color:var(--mist-2);margin-top:3px}
.nl-pdp__chip--a{top:16%;left:6%}
.nl-pdp__chip--b{bottom:18%;right:6%;animation-delay:-3s}
@keyframes nl-float{from{transform:translateY(6px)}to{transform:translateY(-10px)}}

.nl-pdp__short{color:var(--mist-2);font-size:15px;line-height:1.7;margin:0 0 16px}
.nl-pdp__short p{margin:0 0 10px}
.nl-pdp__pricerow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.nl-pdp__save{font-family:var(--ui);font-size:10.5px;letter-spacing:0;
  background:var(--bolt);color:#000;padding:5px 11px;border-radius:999px;font-weight:700}

.nl-ships__sep{opacity:.4;margin:0 6px}
.nl-ships.is-out .nl-ships__dot{background:var(--bad);animation:none}
#nl-cutdown b{color:var(--gold-ink)}

.nl-trust{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:9px}
@media (min-width:560px){ .nl-trust{grid-template-columns:repeat(3,1fr);gap:12px} }
.nl-trust li{display:flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:0;color:var(--mist-2);line-height:1.5}
.nl-trust span{color:var(--gold-ink);flex:none}

/* size pills for variable products */
.nl-sizes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.nl-sizes button{padding:12px 18px;border-radius:999px;border:1.5px solid var(--edge-2);
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--mist-2);transition:.22s}
.nl-sizes button:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.nl-sizes button[aria-pressed="true"]{background:var(--bolt);border-color:var(--bolt);color:#000}
.nl-pdp .variations.is-hidden{display:none}

/* jump nav */
.nl-jump{position:sticky;top:var(--hdr-h);z-index:40;background:rgba(255,255,255,.92);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--edge);border-bottom:1px solid var(--edge);margin-top:36px}
.nl-jump__in{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:0}
.nl-jump__in::-webkit-scrollbar{display:none}
.nl-jump a{flex:none;padding:15px 14px;font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);position:relative;white-space:nowrap;transition:color .2s}
.nl-jump a::after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:2px;background:var(--gold-ink);
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.nl-jump a:hover{color:var(--paper)}
.nl-jump a.is-on{color:var(--gold-ink)}
.nl-jump a.is-on::after{transform:scaleX(1)}

/* endotoxin block */
.nl-endo{margin-top:48px;padding-top:38px;border-top:1px solid var(--edge)}
.nl-endo__t{font-size:clamp(18px,3vw,26px);margin:0 0 8px}
.nl-endo__d{color:var(--mist-2);font-size:15px;line-height:1.7;margin:0;max-width:62ch;font-weight:var(--w-body)}

/* ---------- per-strength certificates ----------
   One row per size, each linking to its own document. A variable product
   sells several lots at once and the product-level panel can only describe
   one of them, so this is where a customer confirms the size they are
   actually buying. */
.nl-coavar{margin-top:48px;padding-top:38px;border-top:1px solid var(--edge)}
.nl-coavar__h{font-family:var(--display);font-size:clamp(18px,3vw,26px);margin:0 0 8px;letter-spacing:-.02em}
.nl-coavar__s{color:var(--mist-2);font-size:15px;line-height:1.7;margin:0 0 22px;max-width:62ch;font-weight:var(--w-body)}
.nl-coavar__list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.nl-coavar__row{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;
  padding:14px 18px;border:1px solid var(--edge);border-radius:8px;background:var(--coal);
  transition:border-color .2s,background .2s;
}
.nl-coavar__row:hover{border-color:var(--edge-2);background:var(--void,#FFFFFF)}
.nl-coavar__row.is-pending{background:transparent;border-style:dashed}
/* highlighted when the shopper picks that size above */
.nl-coavar__row.is-active{border-color:var(--bolt);box-shadow:0 0 0 3px rgba(212,175,55,.18)}
.nl-coavar__size{
  flex:0 0 auto;min-width:92px;font-family:var(--ui);font-weight:800;font-size:15px;
  color:var(--paper);letter-spacing:-.01em;
}
.nl-coavar__meta{display:flex;flex-wrap:wrap;gap:8px 14px;flex:1 1 auto;min-width:0}
.nl-coavar__lot,.nl-coavar__pur{
  font-family:var(--mono);font-size:12px;font-weight:600;color:var(--mist-2);white-space:nowrap;
}
.nl-coavar__pur{color:var(--gold-ink)}
.nl-coavar__links{flex:0 0 auto;display:flex;gap:8px}
.nl-coavar__go{
  display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:999px;
  border:1.5px solid var(--edge-2);background:transparent;color:var(--paper);
  font-family:var(--ui);font-size:12.5px;font-weight:700;text-decoration:none;
  transition:border-color .2s,color .2s,background .2s;
}
.nl-coavar__go:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.nl-coavar__go:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}
.nl-coavar__none{
  flex:1 1 auto;font-size:13px;color:var(--mist);font-weight:var(--w-body);font-style:italic;
}
@media (max-width:600px){
  .nl-coavar__row{gap:8px 12px;padding:13px 15px}
  .nl-coavar__size{flex:1 0 100%;min-width:0}
  .nl-coavar__links{flex:1 0 100%}
  .nl-coavar__go{width:100%;justify-content:center;min-height:44px}
}

/* ==========================================================================
   GLOBAL FORM CONTROLS + BUTTONS
   (restored: these underpin cart, checkout, account and every Woo form)
   ========================================================================== */
input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=password],
input[type=number],input[type=search],input[type=url],input[type=date],textarea,select,.input-text{
  width:100%;background:var(--coal);border:1px solid var(--edge-2);border-radius:var(--r);
  color:var(--paper);padding:14px 15px;font-family:var(--body);font-size:16px;line-height:1.3;
  transition:border-color .2s,background .2s;appearance:none;-webkit-appearance:none;
}
textarea{min-height:110px;resize:vertical}
select{
  padding-right:40px;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--gold-ink) 50%),
                   linear-gradient(135deg,var(--gold-ink) 50%,transparent 50%);
  background-position:calc(100% - 21px) 55%,calc(100% - 16px) 55%;
  background-size:6px 6px;background-repeat:no-repeat;
}
input:focus,textarea:focus,select:focus{border-color:var(--gold-ink);outline:none;background:var(--graph)}
input::placeholder,textarea::placeholder{color:var(--hint)}
input[type=checkbox],input[type=radio]{
  width:18px;height:18px;accent-color:var(--bolt);cursor:pointer;
  appearance:auto;-webkit-appearance:auto;background:none;border:0;padding:0;
}
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

button.button,a.button,input.button,.wp-element-button,#place_order,
.woocommerce-button,.wc-block-components-button{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--bolt);color:#000;border:1.5px solid transparent;border-radius:999px;cursor:pointer;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.05em;font-size:13px;line-height:1;padding:15px 24px;
  text-align:center;transition:background .25s,transform .25s,border-color .25s,color .25s;
}
button.button:hover,a.button:hover,input.button:hover,#place_order:hover{
  background:var(--gold-press);color:#000;transform:translateY(-2px);
}
.button.wc-backward,.button.wc-forward:not(.checkout-button){
  background:transparent;color:var(--paper);border-color:var(--edge-2);
}
.button.wc-backward:hover{border-color:var(--gold-ink);color:var(--gold-ink);background:transparent}
button[disabled],.button.disabled,#place_order[disabled]{opacity:.45;pointer-events:none}

/* the quantity stepper must keep its own borderless inputs */
.nl-qty input,.nl-qty .qty{
  width:44px;height:52px;text-align:center;background:transparent;border:0;border-radius:0;
  color:var(--paper);font-family:var(--ui);font-weight:600;font-size:14px;padding:0;
}
.nl-qty input:focus{background:transparent;border:0}
.nl-qty--sm input,.nl-qty--sm .qty{width:40px;height:42px;font-size:13px}

/* select2 (checkout country/state) */
.select2-container--default .select2-selection--single{
  background:var(--coal)!important;border:1px solid var(--edge-2)!important;
  border-radius:var(--r)!important;height:50px!important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--paper)!important;line-height:50px!important;padding-left:15px!important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:50px!important}
.select2-dropdown{background:#FFFFFF!important;border-color:var(--edge-2)!important;color:var(--paper)}
.select2-container--default .select2-results__option{background:transparent;color:var(--mist-2)}
.select2-container--default .select2-results__option--highlighted[aria-selected]{
  background:var(--bolt)!important;color:#000!important;
}
.select2-search--dropdown .select2-search__field{background:var(--graph)!important;border-color:var(--edge-2)!important;color:var(--paper)!important}

/* Woo notices */
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
  list-style:none;margin:0 0 18px;padding:14px 16px;border-radius:var(--r);
  background:var(--coal);border:1px solid var(--edge-2);color:var(--mist-2);font-size:14.5px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-weight:var(--w-body)}
.woocommerce-message{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.12);color:var(--paper)}
.woocommerce-error{border-color:rgba(179,38,30,.45);background:rgba(179,38,30,.08);color:#7F1D1D;display:block}
.woocommerce-error li{margin-bottom:5px}
.woocommerce-message .button,.woocommerce-info .button{margin-left:auto;padding:10px 18px;font-size:11px}

/* my account */
.woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0 0 24px;display:flex;gap:8px;flex-wrap:wrap}
.woocommerce-MyAccount-navigation a{
  display:block;padding:10px 16px;border-radius:999px;border:1px solid var(--edge-2);
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;
  color:var(--mist-2);transition:.2s;
}
.woocommerce-MyAccount-navigation a:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.woocommerce-MyAccount-navigation .is-active a{background:var(--bolt);border-color:var(--bolt);color:#000;font-weight:700}
.woocommerce-Addresses{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:700px){ .woocommerce-Addresses{grid-template-columns:1fr 1fr} }
.woocommerce-order-overview{list-style:none;padding:0;display:grid;gap:10px;grid-template-columns:1fr;margin:20px 0}
@media (min-width:700px){ .woocommerce-order-overview{grid-template-columns:repeat(4,1fr)} }
.woocommerce-order-overview li{
  background:var(--coal);border:1px solid var(--edge);border-radius:var(--r);padding:14px;
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);
}
.woocommerce-order-overview li strong{
  display:block;margin-top:7px;font-family:var(--display);font-size:15px;color:var(--gold-ink);
  letter-spacing:0;text-transform:none;
}

/* custom checkbox + radio — native white boxes read badly on black */
input[type=checkbox],input[type=radio]{
  appearance:none;-webkit-appearance:none;width:19px;height:19px;flex:none;margin:0;
  border:1.5px solid var(--edge-2);background:var(--coal);cursor:pointer;
  display:inline-grid;place-content:center;transition:border-color .2s,background .2s;
}
input[type=checkbox]{border-radius:4px}
input[type=radio]{border-radius:50%}
input[type=checkbox]:hover,input[type=radio]:hover{border-color:var(--gold-ink)}
input[type=checkbox]::before{
  content:"";width:10px;height:10px;transform:scale(0);transition:transform .18s cubic-bezier(.3,1.5,.5,1);
  background:#000;clip-path:polygon(14% 44%,0 60%,39% 100%,100% 18%,84% 4%,39% 68%);
}
input[type=radio]::before{content:"";width:9px;height:9px;border-radius:50%;background:#000;transform:scale(0);transition:transform .18s cubic-bezier(.3,1.5,.5,1)}
input[type=checkbox]:checked,input[type=radio]:checked{background:var(--bolt);border-color:var(--bolt)}
input[type=checkbox]:checked::before,input[type=radio]:checked::before{transform:scale(1)}
input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}

.nl-addr__hint{max-width:none;flex:1;min-width:200px}
.nl-check span{flex:1}

/* checkout review thumbnails (layout itself lives in the CHECKOUT section) */
.nl-rthumb{position:relative;width:46px;height:46px;flex:none;display:block;
  background:var(--graph);border:1px solid var(--edge);border-radius:3px;overflow:hidden}
.nl-rthumb img{width:100%;height:100%;object-fit:contain;padding:5px}
.nl-rqty{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:999px;
  background:var(--bolt);color:#000;font-family:var(--mono);font-size:10.5px;font-weight:700;
  display:grid;place-items:center;padding:0 4px}
.nl-xsell{margin-top:44px;padding-top:34px}
@media (min-width:1000px){ .nl-xsell .nl-grid{grid-template-columns:repeat(4,1fr)} }

/* ==========================================================================
   CART — clean, card-based, price only
   ========================================================================== */

/* header band */
.nl-cbar{
  display:flex;flex-direction:column;gap:16px;
  background:linear-gradient(115deg,#FFFFFF,#F2F2EE 60%);
  border:1px solid var(--edge);border-top:var(--band) solid var(--bolt);
  border-radius:6px;padding:22px;margin-bottom:16px;
}
@media (min-width:760px){ .nl-cbar{flex-direction:row;align-items:center;justify-content:space-between;gap:26px;padding:28px 30px} }
.nl-cbar__t{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:-.025em;line-height:1;
  font-size:clamp(26px,4.4vw,44px);color:var(--paper);margin:0 0 10px;
}
.nl-cbar__d{
  margin:0;font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;
  color:var(--mist-2);line-height:1.8;
}
.nl-cbar__d span{opacity:.4;margin:0 7px}
.nl-cbar__go{
  flex:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--bolt);color:#000;border-radius:999px;padding:15px 26px;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.05em;font-size:13px;
  transition:background .25s,transform .25s;
}
.nl-cbar__go:hover{background:var(--gold-press);color:#000;transform:translateY(-2px)}
.nl-cbar__go i{font-style:normal;transition:transform .25s}
.nl-cbar__go:hover i{transform:translateX(4px)}

/* free-shipping unlock card */
.nl-unlock{
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;
  padding:18px 20px;margin-bottom:16px;
}
.nl-unlock.is-won{border-color:rgba(212,175,55,.55);background:rgba(212,175,55,.10)}
.nl-unlock__row{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}
.nl-unlock__ic{
  flex:none;width:34px;height:34px;border-radius:999px;display:grid;place-items:center;
  background:rgba(212,175,55,.20);color:var(--gold-ink);font-size:14px;
}
.nl-unlock.is-won .nl-unlock__ic{background:var(--bolt);color:#000}
.nl-unlock__b{flex:1;min-width:0}
.nl-unlock__t{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.01em;font-size:14px;color:var(--paper);margin:0 0 5px;
}
.nl-unlock__d{margin:0;color:var(--mist-2);font-size:14px;line-height:1.6;max-width:70ch;font-weight:var(--w-body)}
.nl-unlock__tag{
  flex:none;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--gold-ink);border:1px solid rgba(212,175,55,.50);border-radius:999px;padding:6px 12px;
}
.nl-unlock.is-won .nl-unlock__tag{background:var(--bolt);color:#000;border-color:var(--bolt);font-weight:700}
.nl-unlock__bar{display:block;height:5px;border-radius:999px;background:var(--raise);overflow:hidden}
.nl-unlock__bar i{
  display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--bolt-lo),var(--bolt),var(--bolt-hi));
  transition:width .7s cubic-bezier(.16,1,.3,1);
}

/* item rows */
.nl-clist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.nl-crow{
  display:grid;grid-template-columns:84px 1fr;gap:16px;align-items:start;
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;padding:16px;
  transition:border-color .3s,background .3s;
}
.nl-crow:hover{border-color:rgba(212,175,55,.45);background:var(--graph)}
@media (min-width:820px){
  .nl-crow{grid-template-columns:104px 1fr auto;gap:22px;padding:20px 22px;align-items:center}
}

.nl-crow__media{
  position:relative;isolation:isolate;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden;
  background:radial-gradient(120% 100% at 50% 30%,#FFFFFF,#F2F2EE 72%);
  border:1px solid var(--edge);border-radius:5px;
}
.nl-crow__glow{
  position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:0;
  width:130%;aspect-ratio:1/1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at center,rgba(212,175,55,.30),transparent 66%);filter:blur(9px);
}
.nl-crow__media a,.nl-crow__media img{position:relative;z-index:1;display:block}
.nl-crow__media img{
  max-width:78%;max-height:80%;width:auto;height:auto;object-fit:contain;
  filter:drop-shadow(0 12px 16px rgba(17,17,17,.18));
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.nl-crow:hover .nl-crow__media img{transform:translateY(-5px) rotate(-4deg) scale(1.05)}
.nl-crow__coa{
  position:absolute;top:7px;left:7px;z-index:2;
  font-family:var(--ui);font-size:10.5px;font-weight:700;letter-spacing:.04em;
  background:var(--bolt);color:#000;padding:3px 8px;border-radius:999px;
}

.nl-crow__info{min-width:0;display:flex;flex-direction:column;gap:8px}
.nl-crow__cat{
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--gold-ink);
}
.nl-crow__n{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:17px;line-height:1.15;letter-spacing:-.015em;text-transform:uppercase;color:var(--paper);margin:0;
}
@media (min-width:820px){ .nl-crow__n{font-size:21px} }
.nl-crow__n a{color:inherit;text-decoration:none;transition:color .2s}
.nl-crow__n a:hover{color:var(--gold-ink)}
.nl-crow__var{font-family:var(--mono);font-weight:var(--w-label);font-size:11px;letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2)}
.nl-crow__chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.nl-chipx{
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--mist-2);border:1px solid var(--edge-2);border-radius:999px;padding:5px 11px;line-height:1.3;
}
.nl-chipx--go{color:var(--gold-ink);border-color:rgba(212,175,55,.55);transition:.2s}
.nl-chipx--go:hover{background:rgba(212,175,55,.18)}

.nl-crow__buy{
  grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding-top:14px;border-top:1px solid var(--edge);
}
@media (min-width:820px){
  .nl-crow__buy{
    grid-column:auto;flex-direction:column;align-items:flex-end;justify-content:center;
    gap:10px;padding-top:0;border-top:0;min-width:170px;text-align:right;
  }
}
.nl-crow__total{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:24px;letter-spacing:-.03em;color:var(--paper);line-height:1;
}
.nl-crow__each{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2)}
.nl-crow__qty{display:flex;align-items:center;gap:10px}
.nl-crow__qtyl{font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2)}
.nl-crow__one{font-family:var(--mono);font-size:13px;color:var(--paper)}
.nl-crow__x{
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;
  color:var(--mist);transition:color .2s;
}
.nl-crow__x:hover{color:var(--bad)}

/* promo + actions */
.nl-cfoot{
  display:flex;flex-direction:column;gap:16px;margin-top:14px;
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;padding:18px 20px;
}
@media (min-width:820px){ .nl-cfoot{flex-direction:row;align-items:center;justify-content:space-between;gap:24px} }
.nl-cfoot__promo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1}
.nl-cfoot__pl{
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);
  margin:0;flex:none;
}
.nl-cfoot__promo input{flex:1;min-width:140px;max-width:260px;padding:12px 14px;font-size:14px}
.nl-cfoot__promo .nl-btn{flex:none;padding:12px 20px}
.nl-cfoot__acts{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.nl-cfoot__link{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);
  background:none;border:0;border-bottom:1px solid transparent;padding:0 0 2px;cursor:pointer;transition:.2s;
}
.nl-cfoot__link:hover{color:var(--gold-ink);border-bottom-color:var(--gold-ink)}

/* totals */
.nl-ctot{
  margin-top:16px;background:var(--coal);border:1px solid var(--edge);
  border-top:var(--band) solid var(--bolt);border-radius:6px;padding:20px;
}
@media (min-width:820px){ .nl-ctot{padding:26px 30px} }
.nl-ctot__total{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  max-width:520px;margin-left:auto;padding:18px 0 4px;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.03em;font-size:14px;color:var(--paper);
}
.nl-ctot__amt,.nl-ctot__amt .amount{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:clamp(28px,4vw,38px);letter-spacing:-.035em;color:var(--gold-ink-lg);line-height:1;
}
.nl-ctot__go{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:20px;
  background:var(--bolt);color:#000;border-radius:999px;padding:19px 26px;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.05em;font-size:15px;
  transition:background .25s,transform .25s;
}
.nl-ctot__go:hover{background:var(--gold-press);color:#000;transform:translateY(-2px)}
.nl-ctot__go i{font-style:normal;transition:transform .25s}
.nl-ctot__go:hover i{transform:translateX(5px)}
.nl-ctot__trust{
  list-style:none;padding:0;margin:18px 0 0;display:grid;gap:9px;justify-items:center;text-align:center;
  font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;letter-spacing:0;color:var(--mist-2);
}
@media (min-width:700px){ .nl-ctot__trust{grid-template-columns:repeat(3,1fr)} }

/* ---------- checkout policy cards ---------- */
.nl-policies{display:grid;gap:10px;margin-bottom:22px}
@media (min-width:900px){ .nl-policies{grid-template-columns:repeat(3,1fr);gap:12px} }
.nl-policy{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;padding:16px 18px;
}
.nl-policy__ic{
  flex:none;width:26px;height:26px;border-radius:999px;display:grid;place-items:center;
  background:rgba(212,175,55,.20);color:var(--gold-ink);font-size:11px;
}
.nl-policy p{margin:0;font-size:14px;line-height:1.65;color:var(--mist-2);font-weight:var(--w-body)}
.nl-policy b{color:var(--paper);font-weight:600}
.nl-policy code{
  font-family:var(--mono);font-weight:600;font-size:11px;background:var(--void);color:var(--gold-ink);
  border:1px solid rgba(212,175,55,.45);
  padding:2px 7px;border-radius:3px;letter-spacing:.02em;
}
.nl-costeps{margin-bottom:20px}
.nl-costeps a{color:var(--mist-2)}
.nl-costeps a:hover{color:var(--gold-ink)}

/* checkout form: consistent rhythm, no orphan half-width rows */
.nl-cosec .form-row{margin:0 0 16px}
.nl-cosec .form-row label{margin-bottom:8px}
.woocommerce-billing-fields__field-wrapper,.woocommerce-shipping-fields__field-wrapper{gap:0 16px}
#billing_company_field,#billing_address_1_field,#billing_address_2_field,
#billing_email_field,#billing_phone_field,#shipping_company_field,
#shipping_address_1_field,#shipping_address_2_field{grid-column:1 / -1}
.nl-cosec .woocommerce-billing-fields h3{margin-top:0}
.woocommerce-shipping-fields{margin-top:6px;padding-top:18px;border-top:1px solid var(--edge)}
.woocommerce-additional-fields{margin-top:18px;padding-top:18px;border-top:1px solid var(--edge)}

/* totals read as a deliberate block rather than a half-empty bar */

/* cross-sell (restored) */
.nl-xsell{margin-top:44px;padding-top:34px;border-top:1px solid var(--edge)}
.nl-xsell__t{font-size:clamp(20px,3.2vw,28px);margin:0 0 6px;color:var(--paper)}
.nl-xsell__d{margin:0 0 20px;color:var(--mist-2);font-size:15px;line-height:1.6;font-weight:var(--w-body)}
.nl-xsell .nl-grid{grid-template-columns:repeat(2,1fr)}
@media (min-width:900px){ .nl-xsell .nl-grid{grid-template-columns:repeat(4,1fr)} }

/* ==========================================================================
   STORE PAGES (cart / checkout / account)
   Full-bleed container. Never wrapped in .nl-prose.
   ========================================================================== */
.nl-wrap--wide{max-width:1560px}
.nl-store{padding:26px 0 80px}
@media (min-width:820px){ .nl-store{padding:34px 0 110px} }
.nl-store .nl-crumbs{margin-bottom:20px}

/* Hard guarantee: if any prose-style container ever wraps store markup again,
   these win. Cheap insurance against a one-line regression breaking checkout. */
.nl-prose .nl-cbar,.nl-prose .nl-unlock,.nl-prose .nl-clist,.nl-prose .nl-cfoot,
.nl-prose .nl-ctot,.nl-prose .nl-checkout,.nl-prose .nl-policies,.nl-prose .nl-xsell{max-width:none}
.nl-prose .nl-cbar__go,.nl-prose .nl-ctot__go,.nl-prose .nl-btn,.nl-prose .nl-card__cta,
.nl-prose .nl-chipx,.nl-prose .nl-crow__n a,.nl-prose .nl-card__name a{text-decoration:none}
.nl-prose .nl-cbar__go,.nl-prose .nl-ctot__go{color:#000}
.nl-prose .nl-crow__n a,.nl-prose .nl-card__name a{color:inherit}
.nl-prose .nl-cbar__t{font-size:clamp(26px,4.4vw,44px);margin:0 0 10px}
.nl-prose .nl-unlock__t{font-size:15px;margin:0 0 5px}
.nl-prose .nl-crow__n{font-size:21px;margin:0}

/* fill the wider container properly on large screens */
@media (min-width:1200px){
  .nl-cbar{padding:34px 38px}
  .nl-cbar__t{font-size:clamp(34px,3.4vw,52px)}
  .nl-cbar__d{font-size:11px}
  .nl-cbar__go{padding:17px 32px;font-size:14px}
  .nl-unlock{padding:22px 26px}
  .nl-unlock__t{font-size:15px}
  .nl-unlock__d{font-size:15px}
  .nl-crow{grid-template-columns:124px 1fr auto;padding:24px 28px;gap:26px}
  .nl-crow__n{font-size:23px}
  .nl-crow__total{font-size:27px}
  .nl-crow__buy{min-width:200px}
  .nl-cfoot{padding:22px 26px}
  .nl-ctot{padding:30px 38px}
  .nl-clist{gap:14px}
}

/* totals footer: reassurance left, money right */
.nl-ctot{display:grid;grid-template-columns:1fr;gap:26px}
@media (min-width:1000px){
  .nl-ctot{grid-template-columns:1fr minmax(380px,460px);gap:56px;align-items:start}
}
.nl-ctot__lt{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(16px,2vw,21px);
  color:var(--paper);margin:0 0 16px;max-width:22ch;line-height:1.15;
}
.nl-ctot__trust{
  list-style:none;padding:0;margin:0;display:grid;gap:12px;justify-items:start;text-align:left;
  grid-template-columns:1fr;
}
.nl-ctot__trust li{
  display:flex;gap:10px;align-items:flex-start;
  font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;
  color:var(--mist-2);line-height:1.6;font-weight:var(--w-body)}
.nl-ctot__trust span{color:var(--gold-ink);flex:none}
.nl-ctot__rows{display:grid;gap:0;max-width:none;margin:0}
.nl-ctot__r1{
  display:flex;justify-content:space-between;gap:16px;padding:12px 0;
  border-bottom:1px solid var(--edge);font-size:15px;color:var(--mist-2);font-weight:var(--w-body)}
.nl-ctot__r1>span:last-child{color:var(--paper);text-align:right}
.nl-ctot__r1--good>span:last-child{color:var(--good)}
.nl-ctot__r1--mute>span:last-child{
  color:var(--mist-2);font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;
}
.nl-ctot__total{max-width:none;margin:0;padding:18px 0 4px}
.nl-ctot__go{max-width:none;margin-top:18px}
.nl-ctot__money{min-width:0}
.nl-ctot__note{
  margin:12px 0 0;text-align:center;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:0;color:var(--mist-2);
}

/* ---------- cart: larger vial, tighter number column ---------- */
.nl-crow{grid-template-columns:104px 1fr;gap:16px}
@media (min-width:820px){ .nl-crow{grid-template-columns:150px 1fr auto;gap:24px} }
@media (min-width:1200px){ .nl-crow{grid-template-columns:176px 1fr auto;gap:30px;padding:26px 30px} }
.nl-crow__media{border-radius:6px}
.nl-crow__media img{
  max-width:none;max-height:none;width:100%;height:100%;object-fit:contain;padding:8%;
}
.nl-crow__glow{width:150%}

.nl-crow__buy{gap:12px}
@media (min-width:820px){ .nl-crow__buy{min-width:210px;gap:12px} }
.nl-crow__total{font-size:26px}
@media (min-width:1200px){ .nl-crow__total{font-size:30px} }
.nl-crow__each{margin-top:-4px}
.nl-crow__qty{
  display:flex;align-items:center;gap:10px;margin-top:4px;
}
.nl-crow__qty .nl-qty{border-radius:999px;overflow:hidden}
.nl-crow__qty .nl-qty button{width:38px;height:44px;font-size:17px;line-height:1}
.nl-crow__qty .nl-qty input,.nl-crow__qty .nl-qty .qty{width:46px;height:44px;font-size:14px}
.nl-crow__x{margin-top:2px}

/* keep the quantity label from Woo out of the way */
.nl-qty .quantity{display:contents}
.nl-qty label,.nl-qty .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* absolutely pin the vial inside its square so it always fills, whatever the
   source image aspect ratio happens to be */
.nl-crow__media{position:relative;overflow:hidden}
.nl-crow__media>a{position:absolute;inset:0;display:block;z-index:1}
.nl-crow__media img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  padding:9%;max-width:none;max-height:none;
}

/* ==========================================================================
   FAQ PAGE
   ========================================================================== */
.nl-faqwrap{display:grid;gap:0}
.nl-faqgroup{padding-top:34px;scroll-margin-top:calc(var(--hdr-h) + 24px)}
.nl-faqgroup:first-child{padding-top:6px}
.nl-faqgroup__t{
  display:flex;align-items:center;gap:12px;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(17px,2.4vw,24px);
  color:var(--paper);margin:0 0 6px;
}
.nl-faqgroup__t span{
  font-family:var(--ui);font-size:10.5px;letter-spacing:0;color:var(--gold-ink);
  border:1px solid rgba(212,175,55,.50);border-radius:999px;padding:4px 9px;font-weight:var(--w-label);
}
.nl-faqgroup.is-hidden{display:none}
.nl-q.is-hidden{display:none}
#nl-faqnav{margin-bottom:8px}

/* ==========================================================================
   CERTIFICATE LIBRARY
   ========================================================================== */
.nl-coastat{
  background:var(--coal);border:1px solid var(--edge);border-radius:6px;
  padding:20px 22px;margin-bottom:22px;
}
@media (min-width:900px){ .nl-coastat{padding:24px 28px} }
.nl-coastat__row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}
.nl-coastat__t{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(15px,2vw,20px);
  color:var(--paper);margin:0 0 6px;
}
.nl-coastat__d{margin:0;color:var(--mist-2);font-size:15px;line-height:1.65;max-width:74ch;font-weight:var(--w-body)}
.nl-coastat__pct{
  flex:none;font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:clamp(26px,4vw,40px);letter-spacing:-.03em;color:var(--gold-ink-lg);line-height:1;
}
.nl-coabar{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}
@media (min-width:900px){ .nl-coabar{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:26px} }
.nl-coabar__search{flex:1;max-width:460px}
.nl-coabar__search label{display:block;color:var(--mist-2);margin-bottom:8px}
.nl-coabar .nl-filters{margin:0;flex:none}

.nl-coaitem{align-items:center;gap:14px}
.nl-coaitem__state{flex:none}
.nl-coatag{
  display:inline-block;font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;letter-spacing:.02em;
  text-transform:uppercase;color:var(--mist-2);border:1px solid var(--edge-2);
  border-radius:999px;padding:6px 11px;white-space:nowrap;
}
.nl-coatag--ok{color:var(--gold-ink);border-color:rgba(212,175,55,.58);background:rgba(212,175,55,.12)}
.nl-coaitem.is-pending{opacity:.72}
.nl-coaitem.is-pending:hover{opacity:1;border-color:var(--edge-2)}
.nl-coaitem.is-pending .nl-coaitem__thumb img{filter:grayscale(1);opacity:.65}
.nl-coaitem.is-hidden{display:none}

/* ==========================================================================
   TESTING PAGE — compound roster
   ========================================================================== */
.nl-roster{margin-top:56px;padding-top:38px;border-top:1px solid var(--edge)}
.nl-roster__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.nl-roster__count{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;
  color:var(--gold-ink);border:1px solid rgba(212,175,55,.50);border-radius:999px;padding:7px 13px;
}
.nl-roster__list{list-style:none;padding:0;margin:0;border-top:1px solid var(--edge)}
.nl-roster__i{border-bottom:1px solid var(--edge)}
.nl-roster__i a{
  display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;
  padding:15px 4px;transition:background .2s,padding .2s;
}
@media (min-width:700px){
  .nl-roster__i a{grid-template-columns:1fr 160px 130px;padding:16px 12px}
}
.nl-roster__i a:hover{background:var(--coal)}
.nl-roster__n{
  font-family:var(--display);font-weight:700;font-variation-settings:'wght' 700;
  font-size:15px;text-transform:uppercase;letter-spacing:-.01em;color:var(--paper);
}
.nl-roster__lot{font-family:var(--mono);font-weight:var(--w-label);font-size:11px;letter-spacing:.02em;color:var(--mist-2)}
.nl-roster__i .nl-coatag{justify-self:start}
@media (min-width:700px){ .nl-roster__i .nl-coatag{justify-self:end} }
.nl-roster__i.is-pending .nl-roster__n{color:var(--mist-2)}
.nl-roster__note{margin:20px 0 0;color:var(--mist-2);font-size:14.5px;line-height:1.7;max-width:80ch;font-weight:var(--w-body)}

/* footer trigger for the welcome offer */
.nl-ft__offer{padding:0 0 26px}
.nl-ft__offer .nlp-open-offer{
  display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:999px;
  background:var(--bolt);color:#000;border:0;cursor:pointer;
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  text-transform:uppercase;letter-spacing:.05em;font-size:12px;
  transition:background .25s,transform .25s;
}
.nl-ft__offer .nlp-open-offer:hover{background:var(--gold-press);transform:translateY(-2px)}

/* ==========================================================================
   STICKY 15% OFFER TAB (bottom right)
   ========================================================================== */
.nl-offertab{
  position:fixed;right:18px;bottom:18px;z-index:70;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;
  width:66px;height:66px;border-radius:50%;border:0;cursor:pointer;
  background:var(--bolt);color:#000;
  box-shadow:0 10px 30px rgba(17,17,17,.22),0 0 0 0 rgba(212,175,55,.65);
  transition:transform .25s cubic-bezier(.2,.9,.25,1),box-shadow .25s;
  animation:nl-tabpulse 3.4s ease-out infinite;
}
.nl-offertab:hover{transform:translateY(-3px) scale(1.05)}
.nl-offertab__pct{
  font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;
  font-size:19px;line-height:1;letter-spacing:-.02em;
}
.nl-offertab__t{
  font-family:var(--ui);font-size:10.5px;letter-spacing:.04em;margin-top:2px;font-weight:700;
}
@keyframes nl-tabpulse{
  0%{box-shadow:0 10px 30px rgba(17,17,17,.22),0 0 0 0 rgba(212,175,55,.62)}
  70%{box-shadow:0 10px 30px rgba(17,17,17,.22),0 0 0 16px rgba(212,175,55,0)}
  100%{box-shadow:0 10px 30px rgba(17,17,17,.22),0 0 0 0 rgba(212,175,55,0)}
}
@media (max-width:520px){
  .nl-offertab{right:14px;bottom:14px;width:58px;height:58px}
  .nl-offertab__pct{font-size:17px}
}
/* keep it clear of the product page sticky bar */
body.nl-has-stickybar .nl-offertab{bottom:calc(84px + env(safe-area-inset-bottom))}
@media (prefers-reduced-motion:reduce){ .nl-offertab{animation:none} }
/* the tab must never sit on top of readable content */
@media (max-width:1100px){ .nl-offertab{right:12px;bottom:12px} }
.woocommerce-account .nl-offertab{opacity:.92}
.woocommerce-account .nl-offertab:hover{opacity:1}

/* ==========================================================================
   CART DRAWER
   Bottom sheet on phones, right-hand drawer from 720px. Everything inside is
   rendered in PHP and swapped through WooCommerce's fragment system.
   ========================================================================== */
body.nl-noscroll{overflow:hidden}

.nl-drawer{position:fixed;inset:0;z-index:300;display:block}
.nl-drawer[hidden]{display:none}
.nl-drawer__veil{
  position:absolute;inset:0;background:rgba(17,17,17,.48);opacity:0;
  transition:opacity .26s ease;-webkit-tap-highlight-color:transparent;
}
.nl-drawer.is-open .nl-drawer__veil{opacity:1}

.nl-drawer__panel{
  position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;
  max-height:min(88vh,760px);background:var(--void);
  border-top:3px solid var(--bolt);border-radius:16px 16px 0 0;
  box-shadow:0 -18px 48px rgba(17,17,17,.22);
  transform:translateY(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
.nl-drawer.is-open .nl-drawer__panel{transform:none}

@media (min-width:720px){
  .nl-drawer__panel{
    left:auto;top:0;bottom:0;width:min(420px,92vw);max-height:none;height:100%;
    border-radius:0;border-top:0;border-left:3px solid var(--bolt);
    box-shadow:-18px 0 48px rgba(17,17,17,.18);transform:translateX(100%);
  }
}

.nl-drawer.is-busy .nl-drawer__panel{opacity:.65;pointer-events:none}

/* ---------- head ---------- */
.nl-drawer__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex:none;
  padding:20px 20px 16px;border-bottom:1px solid var(--edge);
}
.nl-drawer__t{
  margin:0 0 3px;font-family:var(--display);font-weight:800;font-variation-settings:'wght' 800;letter-spacing:-.02em;font-size:22px;line-height:1;color:var(--paper);
}
.nl-drawer__s{
  margin:0;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:0;color:var(--mist-2);
}
.nl-drawer__x{
  flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:999px;
  background:var(--coal);border:1px solid var(--edge-2);color:var(--paper);
  font-size:20px;line-height:1;cursor:pointer;transition:.2s;
}
.nl-drawer__x:hover{border-color:var(--gold-ink);color:var(--gold-ink)}
.nl-drawer__x:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}

.nl-drawer__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}
.nl-drawer__body{flex:1 1 auto;padding:16px 20px 4px}

/* ---------- lines ---------- */
.nl-dlist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.nl-drow{
  position:relative;display:grid;grid-template-columns:62px minmax(0,1fr) 30px;gap:12px;align-items:start;
  padding:12px;border:1px solid var(--edge);border-radius:8px;background:var(--coal);
}
.nl-drow.is-gift{border-color:rgba(212,175,55,.5);background:rgba(212,175,55,.07)}
.nl-drow__thumb{width:62px;height:62px;border-radius:6px;overflow:hidden;background:var(--void);border:1px solid var(--edge);display:block}
.nl-drow__thumb img{width:100%;height:100%;object-fit:contain;padding:5px;display:block}
.nl-drow__main{min-width:0}
.nl-drow__name{margin:0 0 3px;font-size:14.5px;line-height:1.35;font-weight:var(--w-strong);color:var(--paper);overflow-wrap:anywhere}
.nl-drow__name a{color:inherit}
.nl-drow__name a:hover{color:var(--gold-ink)}
.nl-drow__var{
  margin:0 0 6px;font-family:var(--mono);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:.02em;text-transform:uppercase;color:var(--mist-2);
}
.nl-drow__gift{
  display:inline-block;margin:0 0 6px;padding:3px 8px;border-radius:999px;
  background:var(--bolt);color:#000;font-family:var(--ui);font-weight:700;
  font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;
}
.nl-drow__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.nl-drow__price{font-family:var(--display);font-weight:800;font-size:15px;color:var(--paper);white-space:nowrap}
.nl-drow__free{color:var(--gold-ink-lg);font-weight:800}
.nl-drow__x{
  width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:999px;
  background:transparent;border:1px solid var(--edge-2);color:var(--mist-2);
  font-size:15px;line-height:1;cursor:pointer;transition:.2s;
}
.nl-drow__x:hover{border-color:var(--bad);color:var(--bad)}
.nl-drow__x:focus-visible{outline:2px solid var(--gold-ink);outline-offset:2px}

/* quantity stepper */
.nl-dq{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--edge-2);border-radius:999px;background:var(--void)}
.nl-dq__b{
  width:34px;height:34px;display:grid;place-items:center;border:0;background:none;
  color:var(--paper);font-size:16px;line-height:1;cursor:pointer;border-radius:999px;transition:.2s;
}
.nl-dq__b:hover{background:var(--graph);color:var(--gold-ink)}
.nl-dq__b:focus-visible{outline:2px solid var(--gold-ink);outline-offset:-2px}
.nl-dq__n{min-width:26px;text-align:center;font-family:var(--ui);font-weight:700;font-size:13px;color:var(--paper)}
.nl-dq--fixed{
  padding:8px 12px;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:0;color:var(--mist-2);background:var(--void);
}

/* ---------- promotion + shipping progress ---------- */
.nl-dbar{display:block;height:6px;border-radius:999px;background:var(--raise);overflow:hidden;margin-top:10px}
.nl-dbar i{
  display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--bolt-lo),var(--bolt),var(--bolt-hi));
  transition:width .45s cubic-bezier(.16,1,.3,1);
}
.nl-dpromo{
  margin:14px 0 0;padding:14px;border:1px solid rgba(212,175,55,.45);border-radius:8px;
  background:rgba(212,175,55,.08);
}
.nl-dpromo.is-won{border-color:var(--bolt);background:rgba(212,175,55,.16)}
.nl-dpromo__t{margin:0 0 4px;font-size:14.5px;font-weight:700;line-height:1.35;color:var(--paper)}
.nl-dpromo__s{margin:0;font-size:12.5px;line-height:1.5;font-weight:var(--w-body);color:var(--mist-2)}
.nl-dship{margin:10px 0 0;padding:12px 14px;border:1px solid var(--edge);border-radius:8px;background:var(--coal)}
.nl-dship__t{
  display:block;font-family:var(--ui);font-weight:var(--w-label);font-size:10.5px;
  letter-spacing:0;color:var(--mist-2);
}
.nl-dship.is-won .nl-dship__t{color:var(--gold-ink)}

/* ---------- totals + actions ---------- */
.nl-drawer__foot{
  flex:none;padding:16px 20px 20px;border-top:1px solid var(--edge);background:var(--void);
}
.nl-dtot{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:6px}
.nl-dtot__k{
  font-family:var(--ui);font-weight:var(--w-label);font-size:11px;letter-spacing:0;color:var(--mist-2);
}
.nl-dtot__v{font-family:var(--display);font-weight:800;font-size:21px;color:var(--paper);letter-spacing:-.02em}
.nl-dtot--disc .nl-dtot__v{font-size:15px;color:var(--good);font-weight:800}
.nl-dtot__note{margin:6px 0 14px;font-size:12.5px;line-height:1.5;color:var(--mist-2);font-weight:var(--w-body)}
.nl-drawer__acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nl-drawer__acts .nl-btn{width:100%;min-height:52px;justify-content:center;padding:15px 16px}

/* ---------- empty ---------- */
.nl-drawer__empty{padding:34px 6px 30px;text-align:center}
.nl-drawer__emptyt{
  margin:0 0 8px;font-family:var(--display);font-weight:800;
  font-size:19px;color:var(--paper);letter-spacing:-.01em;
}
.nl-drawer__emptys{margin:0 auto 20px;max-width:34ch;font-size:14px;line-height:1.6;color:var(--mist-2);font-weight:var(--w-body)}
.nl-drawer__go{min-height:52px}

/* the FREE GIFT tag WooCommerce prints on the cart and checkout pages */
.nl-gifttag{
  display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;
  background:var(--bolt);color:#000;font-family:var(--ui);font-weight:700;
  font-size:9px;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;
}
.nl-dq__fixed{font-family:var(--ui);font-weight:700;font-size:13px;color:var(--mist-2)}

@media (prefers-reduced-motion:reduce){
  .nl-drawer__panel,.nl-drawer__veil,.nl-dbar i{transition:none}
}
