/* ───────────────────────────────────────────────────────────────────────
   NMChem feature styles — official contact block, molecular structure,
   compound comparison. Global, token-based (light/dark inherited).
   ──────────────────────────────────────────────────────────────────────── */

/* Official contact / anti-impersonation (footer) */
.nm-official-contact{
  border-top:1px solid var(--line);
  margin-top:var(--sp-5);
  padding:var(--sp-5) 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-3) var(--sp-7);
  align-items:flex-start;
}
.nm-official-contact__main{ display:flex; flex-direction:column; gap:var(--sp-1); }
.nm-official-contact__label{
  font-size:var(--fs-sm);
  color:var(--ink-2);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.nm-official-contact__num{
  display:inline-flex; align-items:center; gap:var(--sp-2);
  font-size:var(--fs-lg); font-weight:600;
  color:var(--ink); text-decoration:none;
}
.nm-official-contact__num:hover{ color:var(--brand); }
.nm-official-contact__num svg{ flex:0 0 auto; }
.nm-official-contact__note{
  flex:1 1 340px; margin:0;
  font-size:var(--fs-sm); color:var(--ink-2); line-height:1.55;
}
.nm-official-contact__note strong{ color:var(--ink); }

/* Molecular structure (research + product) */
.nm-structure{ margin:var(--sp-5) 0; }
.nm-structure__img{
  display:block;
  background:#fff;                 /* structures are dark-on-transparent — keep legible in dark mode */
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--sp-3);
  max-width:280px; width:100%; height:auto;
}
.nm-structure__cap{
  display:block; margin-top:var(--sp-2);
  font-size:var(--fs-sm); color:var(--ink-2);
}
.nm-structure__cap a{ color:var(--color-link,var(--brand)); }

/* Compound comparison */
.nm-compare__intro{ color:var(--ink-2); margin-bottom:var(--sp-4); }
.nm-compare__form{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:var(--sp-2) var(--sp-5);
  margin:var(--sp-4) 0;
}
.nm-compare__check{
  display:flex; gap:var(--sp-2); align-items:baseline;
  font-size:var(--fs-sm); color:var(--ink);
}
.nm-compare__actions{ margin:var(--sp-5) 0; display:flex; gap:var(--sp-3); align-items:center; flex-wrap:wrap; }
.nm-compare__table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:var(--sp-4) 0; }
.nm-compare__table{ border-collapse:collapse; width:100%; min-width:560px; }
.nm-compare__table th,
.nm-compare__table td{
  border:1px solid var(--line);
  padding:var(--sp-3);
  text-align:left; vertical-align:top;
  font-size:var(--fs-sm); color:var(--ink);
}
.nm-compare__table thead th{ background:var(--surface-2); font-size:var(--fs-md); }
.nm-compare__table th[scope=row]{
  background:var(--surface-2); color:var(--ink-2);
  font-weight:600; white-space:nowrap;
}
.nm-compare__table code{ word-break:break-all; }

/* Low-stock urgency */
.nm-lowstock{
  display:inline-block;
  margin:var(--sp-2) 0;
  font-size:var(--fs-sm); font-weight:600;
  color:#b4541b;
}
[data-theme="dark"] .nm-lowstock{ color:#e6925e; }
.nm-lowstock--loop{ margin:var(--sp-1) 0 0; font-weight:500; }

/* Reconstitution calculator deep-link on products */
.nm-calc-link{ margin:var(--sp-3) 0; font-size:var(--fs-sm); }
.nm-calc-link a{ color:var(--color-link,var(--brand)); }

/* Back-in-stock notify */
.nm-bis{ margin:var(--sp-4) 0; padding:var(--sp-4); background:var(--surface-2); border:1px solid var(--line); border-radius:var(--radius); }
.nm-bis__title{ margin:0 0 var(--sp-2); font-size:var(--fs-md); }
.nm-bis__row{ display:flex; gap:var(--sp-2); flex-wrap:wrap; }
.nm-bis__row input[type=email]{ flex:1 1 220px; padding:var(--sp-2) var(--sp-3); background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); color:var(--ink); font:inherit; }
.nm-bis__msg{ margin:var(--sp-2) 0 0; font-size:var(--fs-sm); color:var(--ink-2); }
.nm-bis__msg.is-ok{ color:#2f7d4f; }

/* Bestseller badge (real sales) — sits in the free bottom-left card corner */
.card-tags--best{ top:auto; bottom:10px; left:10px; right:auto; }
.ctag.is-best{ background:#f4c430; color:#1a1a1a; font-weight:700; }
.nm-badge{ display:inline-block; font-size:var(--fs-sm); font-weight:700; padding:2px 10px; border-radius:999px; margin:0 0 var(--sp-2); }
.nm-badge--best{ background:#f4c430; color:#1a1a1a; }

/* Genuine "save vs retail" */
.nm-rrp{ margin:var(--sp-2) 0; font-size:var(--fs-sm); font-weight:600; color:#2f7d4f; }
[data-theme="dark"] .nm-rrp{ color:#5fbf86; }

/* Cookie consent banner — hidden until JS confirms no choice stored */
.nm-consent{
  display:none;
  position:fixed; left:var(--sp-4); right:var(--sp-4); bottom:var(--sp-4);
  z-index:9999; max-width:680px; margin-inline:auto;
  padding:var(--sp-4) var(--sp-5);
  background:var(--surface); color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:0 10px 40px rgba(0,0,0,.18);
  align-items:center; gap:var(--sp-4);
}
.nm-consent.show{ display:flex; flex-wrap:wrap; }
.nm-consent__text{ margin:0; flex:1 1 320px; font-size:var(--fs-sm); color:var(--ink-2); line-height:1.5; }
.nm-consent__text a{ color:var(--color-link,var(--brand)); }
.nm-consent__btns{ display:flex; gap:var(--sp-3); flex:0 0 auto; }
@media (max-width:560px){ .nm-consent__btns{ flex:1 1 100%; } .nm-consent__btns .btn{ flex:1; } }

/* Scroll-reveal — only active once JS adds .nm-anim to <html> (no-JS safe) */
.nm-anim .nm-reveal{ opacity:0; transform:translateY(14px); transition:opacity .55s ease, transform .55s ease; will-change:opacity, transform; }
.nm-anim .nm-reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .nm-anim .nm-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}
