/* =====================================================
   LUMINA PREMIUM — Shopify OS 2.0 Theme
   Luxury • Modern • Trustworthy • Conversion-focused
   ===================================================== */

/* ---------- CSS Custom Properties ---------- */
:root {
  --color-primary: #111111;
  --color-secondary: #F7F5F2;
  --color-accent: #B08D57;
  --color-bg: #FFFFFF;
  --color-soft-bg: #F5F5F3;
  --color-text: #171717;
  --color-text-secondary: #6B6B6B;
  --color-border: #E8E5E0;
  --color-success: #287A52;
  --color-sale: #B42318;
  --color-white: #FFFFFF;
  --color-black: #000000;

  --font-primary: 'Manrope', system-ui, -apple-system, sans-serif;
  --font-scale: 1;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;

  --shadow-sm: 0 1px 2px rgba(17,17,17,0.04);
  --shadow-md: 0 4px 12px rgba(17,17,17,0.06);
  --shadow-lg: 0 12px 32px rgba(17,17,17,0.08);
  --shadow-drawer: -8px 0 40px rgba(17,17,17,0.12);

  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 350ms ease;

  --header-height: 64px;
  --announcement-height: 36px;
  --bottom-nav-height: 60px;
  --z-header: 100;
  --z-drawer: 200;
  --z-modal: 300;
  --z-toast: 400;

  --container-max: 1440px;
  --container-pad: 1.25rem;
}

@media (min-width: 768px) {
  :root {
    --header-height: 72px;
    --container-pad: 2rem;
  }
}

@media (min-width: 1024px) {
  :root {
    --container-pad: 2.5rem;
  }
}

/* ---------- Reset & Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: calc(16px * var(--font-scale));
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-primary);
  font-weight: 400;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

img, video, svg { display: block; max-width: 100%; height: auto; }
img { object-fit: cover; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
input, select, textarea { font-family: inherit; font-size: inherit; }

/* Focus visible for a11y */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

/* ---------- Typography ---------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-primary);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--color-text);
}

h1 { font-size: clamp(1.75rem, 4vw, 3rem); font-weight: 700; }
h2 { font-size: clamp(1.375rem, 3vw, 2rem); }
h3 { font-size: clamp(1.125rem, 2.5vw, 1.5rem); }
h4 { font-size: 1.125rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.875rem; letter-spacing: 0.04em; text-transform: uppercase; }

.body-lg { font-size: 1.0625rem; line-height: 1.65; }
.body-sm { font-size: 0.8125rem; line-height: 1.5; }
.caption { font-size: 0.75rem; line-height: 1.4; letter-spacing: 0.02em; }
.price { font-weight: 600; font-size: 1rem; }
.price--compare { font-weight: 400; color: var(--color-text-secondary); text-decoration: line-through; }
.price--sale { color: var(--color-sale); }

/* ---------- Layout Utilities ---------- */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.section { padding-block: var(--space-12); }
@media (min-width: 768px) { .section { padding-block: var(--space-16); } }
@media (min-width: 1024px) { .section { padding-block: var(--space-20); } }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.visually-hidden {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: 0.75rem 1.75rem;
  font-family: var(--font-primary);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  transition: all var(--transition-fast);
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  user-select: none;
}

.btn:active { transform: scale(0.98); }
.btn:disabled, .btn[aria-disabled="true"] {
  opacity: 0.5; cursor: not-allowed; pointer-events: none;
}

.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
}
.btn--primary:hover {
  background: #2a2a2a;
}

.btn--secondary {
  background: transparent;
  color: var(--color-primary);
  border: 1.5px solid var(--color-primary);
}
.btn--secondary:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.btn--accent {
  background: var(--color-accent);
  color: var(--color-white);
}
.btn--accent:hover {
  background: #9a7a4a;
}

.btn--ghost {
  background: transparent;
  color: var(--color-text);
  min-height: 40px;
  padding: 0.5rem 1rem;
}
.btn--ghost:hover { background: var(--color-soft-bg); }

.btn--full { width: 100%; }
.btn--sm { min-height: 40px; padding: 0.5rem 1.25rem; font-size: 0.75rem; }
.btn--lg { min-height: 56px; padding: 1rem 2.25rem; font-size: 0.875rem; }

.btn__spinner {
  width: 18px; height: 18px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  display: none;
}
.btn.is-loading .btn__text { visibility: hidden; }
.btn.is-loading .btn__spinner { display: block; position: absolute; }

@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Badges ---------- */
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.25rem 0.5rem;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: var(--radius-sm);
  line-height: 1.2;
}

.badge--sale { background: var(--color-sale); color: var(--color-white); }
.badge--prepaid { background: var(--color-accent); color: var(--color-white); }
.badge--new { background: var(--color-primary); color: var(--color-white); }
.badge--success { background: var(--color-success); color: var(--color-white); }
.badge--soft { background: var(--color-soft-bg); color: var(--color-text); }

/* ---------- Icons ---------- */
.icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.icon--sm { width: 18px; height: 18px; }
.icon--xs { width: 14px; height: 14px; }
.icon--lg { width: 28px; height: 28px; }
.icon--fill { fill: currentColor; stroke: none; }

/* ---------- Announcement Bar ---------- */
.announcement {
  background: var(--announcement-bg, var(--color-primary));
  color: var(--announcement-text, var(--color-white));
  height: var(--announcement-height);
  overflow: hidden;
  position: relative;
  z-index: calc(var(--z-header) + 1);
}
.announcement__track {
  display: flex;
  height: 100%;
  transition: transform var(--transition-slow);
}
.announcement__item {
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0 var(--space-4);
  text-align: center;
}

/* ---------- Header ---------- */
.header {
  position: relative;
  z-index: var(--z-header);
  background: var(--color-bg);
  border-bottom: 1px solid transparent;
  transition: background var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);
}
.header.is-sticky {
  position: sticky;
  top: 0;
}
.header.is-scrolled {
  border-bottom-color: var(--color-border);
  box-shadow: var(--shadow-sm);
}
.header.is-transparent {
  background: transparent;
  position: absolute;
  top: var(--announcement-height);
  left: 0; right: 0;
}
.header.is-transparent .header__link,
.header.is-transparent .header__icon-btn { color: var(--color-white); }
.header.is-transparent.is-scrolled {
  background: var(--color-bg);
  position: sticky;
  top: 0;
}
.header.is-transparent.is-scrolled .header__link,
.header.is-transparent.is-scrolled .header__icon-btn { color: var(--color-text); }

.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  gap: var(--space-4);
}

.header__logo {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.header__logo img { width: auto; height: auto; max-height: 36px; }
.header__logo-text {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.header__nav {
  display: none;
  align-items: center;
  gap: var(--space-8);
}
@media (min-width: 1024px) {
  .header__nav { display: flex; }
}
.header__link {
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  position: relative;
  padding: var(--space-2) 0;
  transition: color var(--transition-fast);
}
.header__link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1.5px;
  background: var(--color-accent);
  transition: width var(--transition-base);
}
.header__link:hover::after { width: 100%; }

.header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-1);
}
.header__icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  color: var(--color-text);
  position: relative;
  transition: color var(--transition-fast);
  border-radius: var(--radius-sm);
}
.header__icon-btn:hover { color: var(--color-accent); }
.header__cart-count {
  position: absolute;
  top: 6px; right: 6px;
  min-width: 16px; height: 16px;
  padding: 0 4px;
  background: var(--color-accent);
  color: var(--color-white);
  font-size: 0.625rem;
  font-weight: 700;
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}

.header__menu-btn { display: flex; }
@media (min-width: 1024px) { .header__menu-btn { display: none; } }

/* ---------- Mobile Drawer Nav ---------- */
.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  pointer-events: none;
  visibility: hidden;
}
.mobile-nav.is-open {
  pointer-events: auto;
  visibility: visible;
}
.mobile-nav__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17,17,17,0.4);
  opacity: 0;
  transition: opacity var(--transition-base);
}
.mobile-nav.is-open .mobile-nav__overlay { opacity: 1; }
.mobile-nav__panel {
  position: absolute;
  top: 0; left: 0;
  width: min(340px, 88vw);
  height: 100%;
  background: var(--color-bg);
  transform: translateX(-100%);
  transition: transform var(--transition-slow);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.mobile-nav.is-open .mobile-nav__panel { transform: translateX(0); }
.mobile-nav__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.mobile-nav__links {
  padding: var(--space-4) 0;
  flex: 1;
}
.mobile-nav__link {
  display: block;
  padding: var(--space-3) var(--space-5);
  font-size: 0.9375rem;
  font-weight: 500;
  transition: background var(--transition-fast);
}
.mobile-nav__link:hover { background: var(--color-soft-bg); }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: 70vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}
@media (min-width: 768px) { .hero { min-height: 80vh; } }
.hero__media {
  position: absolute;
  inset: 0;
}
.hero__media img, .hero__media video {
  width: 100%; height: 100%;
  object-fit: cover;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(17,17,17,0.55) 0%, rgba(17,17,17,0.2) 60%, transparent 100%);
}
.hero__content {
  position: relative;
  z-index: 2;
  max-width: 560px;
  padding: var(--space-12) 0;
  color: var(--color-white);
}
.hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: var(--space-4);
  opacity: 0.9;
}
.hero__title {
  color: var(--color-white);
  margin-bottom: var(--space-4);
}
.hero__subtitle {
  font-size: 1.0625rem;
  font-weight: 400;
  opacity: 0.85;
  margin-bottom: var(--space-8);
  line-height: 1.6;
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.hero__actions .btn--secondary {
  border-color: var(--color-white);
  color: var(--color-white);
}
.hero__actions .btn--secondary:hover {
  background: var(--color-white);
  color: var(--color-primary);
}

/* Entrance animation */
.hero__content > * {
  opacity: 0;
  transform: translateY(16px);
  animation: fadeUp 0.6s ease forwards;
}
.hero__content > *:nth-child(1) { animation-delay: 0.1s; }
.hero__content > *:nth-child(2) { animation-delay: 0.2s; }
.hero__content > *:nth-child(3) { animation-delay: 0.3s; }
.hero__content > *:nth-child(4) { animation-delay: 0.4s; }

@keyframes fadeUp {
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- Category Grid ---------- */
.category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-3);
}
@media (min-width: 768px) {
  .category-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
}
@media (min-width: 1024px) {
  .category-grid { grid-template-columns: repeat(6, 1fr); }
}

.category-card {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: var(--radius-md);
  display: block;
}
.category-card__img {
  width: 100%; height: 100%;
  transition: transform var(--transition-slow);
}
.category-card:hover .category-card__img { transform: scale(1.03); }
.category-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(17,17,17,0.6) 0%, transparent 50%);
  display: flex;
  align-items: flex-end;
  padding: var(--space-4);
}
.category-card__title {
  color: var(--color-white);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.category-card__arrow {
  opacity: 0;
  transform: translateX(-4px);
  transition: all var(--transition-base);
}
.category-card:hover .category-card__arrow {
  opacity: 1;
  transform: translateX(0);
}

/* ---------- Product Card ---------- */
.product-card {
  position: relative;
  display: flex;
  flex-direction: column;
}
.product-card__media {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-soft-bg);
  margin-bottom: var(--space-3);
}
.product-card__img {
  width: 100%; height: 100%;
  transition: transform var(--transition-slow), opacity var(--transition-base);
}
.product-card__img--hover {
  position: absolute; inset: 0;
  opacity: 0;
}
.product-card:hover .product-card__img--primary { opacity: 0; }
.product-card:hover .product-card__img--hover { opacity: 1; }
.product-card:hover .product-card__img { transform: scale(1.03); }

.product-card__badges {
  position: absolute;
  top: var(--space-3); left: var(--space-3);
  display: flex; flex-direction: column; gap: var(--space-1);
  z-index: 2;
}
.product-card__actions {
  position: absolute;
  top: var(--space-3); right: var(--space-3);
  display: flex; flex-direction: column; gap: var(--space-2);
  z-index: 2;
  opacity: 0;
  transform: translateY(-4px);
  transition: all var(--transition-base);
}
.product-card:hover .product-card__actions { opacity: 1; transform: translateY(0); }
@media (max-width: 1023px) {
  .product-card__actions { opacity: 1; transform: none; }
}

.product-card__action-btn {
  width: 36px; height: 36px;
  display: flex; align-items: center; justify-content: center;
  background: var(--color-white);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
  color: var(--color-text);
  transition: all var(--transition-fast);
}
.product-card__action-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.product-card__action-btn.is-active { color: var(--color-sale); }
.product-card__action-btn.is-active:hover { background: var(--color-sale); color: var(--color-white); }

.product-card__quick-add {
  position: absolute;
  bottom: var(--space-3); left: var(--space-3); right: var(--space-3);
  opacity: 0;
  transform: translateY(8px);
  transition: all var(--transition-base);
  z-index: 2;
}
.product-card:hover .product-card__quick-add { opacity: 1; transform: translateY(0); }
@media (max-width: 1023px) {
  .product-card__quick-add { opacity: 1; transform: none; position: static; margin-top: var(--space-2); }
}

.product-card__info { display: flex; flex-direction: column; gap: var(--space-1); }
.product-card__rating {
  display: flex; align-items: center; gap: 4px;
  font-size: 0.75rem; color: var(--color-text-secondary);
}
.product-card__stars { display: flex; gap: 1px; color: var(--color-accent); }
.product-card__title {
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-card__prices {
  display: flex; align-items: baseline; gap: var(--space-2); flex-wrap: wrap;
}
.product-card__discount {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-success);
}

/* ---------- Product Grid ---------- */
.product-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4) var(--space-3);
}
@media (min-width: 768px) {
  .product-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-6) var(--space-4); }
}
@media (min-width: 1024px) {
  .product-grid { grid-template-columns: repeat(4, 1fr); gap: var(--space-8) var(--space-5); }
}

/* ---------- Product Page ---------- */
.product-page {
  display: grid;
  gap: var(--space-8);
  padding-block: var(--space-6);
}
@media (min-width: 1024px) {
  .product-page {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-12);
    padding-block: var(--space-10);
  }
}

.product-gallery { position: relative; }
.product-gallery__main {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-soft-bg);
  margin-bottom: var(--space-3);
}
.product-gallery__main img {
  width: 100%; height: 100%;
  cursor: zoom-in;
}
.product-gallery__counter {
  position: absolute;
  bottom: var(--space-3); right: var(--space-3);
  background: rgba(17,17,17,0.7);
  color: var(--color-white);
  font-size: 0.6875rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
  border-radius: var(--radius-sm);
}
.product-gallery__thumbs {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.product-gallery__thumbs::-webkit-scrollbar { display: none; }
.product-gallery__thumb {
  flex: 0 0 72px;
  aspect-ratio: 4/5;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 2px solid transparent;
  cursor: pointer;
  opacity: 0.6;
  transition: all var(--transition-fast);
}
.product-gallery__thumb.is-active,
.product-gallery__thumb:hover {
  border-color: var(--color-primary);
  opacity: 1;
}
.product-gallery__thumb img { width: 100%; height: 100%; }

@media (max-width: 1023px) {
  .product-gallery__main { border-radius: 0; margin-inline: calc(-1 * var(--container-pad)); }
  .product-gallery__thumbs { padding-inline: var(--container-pad); }
}

.product-info { display: flex; flex-direction: column; gap: var(--space-5); }
.product-info__breadcrumb {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  display: flex; gap: var(--space-2); flex-wrap: wrap;
}
.product-info__breadcrumb a:hover { color: var(--color-accent); }
.product-info__title { margin: 0; }
.product-info__rating {
  display: flex; align-items: center; gap: var(--space-2);
  font-size: 0.8125rem;
}
.product-info__prices {
  display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap;
}
.product-info__price { font-size: 1.5rem; font-weight: 600; }
.product-info__compare { font-size: 1.125rem; }
.product-info__save {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-success);
}

/* Prepaid Offer Box */
.prepaid-offer {
  background: var(--color-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.prepaid-offer__header {
  display: flex; align-items: center; gap: var(--space-2);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-accent);
}
.prepaid-offer__prices {
  display: flex; align-items: baseline; gap: var(--space-3);
}
.prepaid-offer__prepaid { font-size: 1.25rem; font-weight: 600; }
.prepaid-offer__original { font-size: 0.9375rem; }
.prepaid-offer__save {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-success);
}
.prepaid-offer__trust {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

/* Variants */
.variant-picker { display: flex; flex-direction: column; gap: var(--space-4); }
.variant-picker__group { display: flex; flex-direction: column; gap: var(--space-2); }
.variant-picker__label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.variant-picker__options { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.variant-picker__option {
  min-width: 44px; height: 44px;
  padding: 0 var(--space-3);
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  font-weight: 500;
  transition: all var(--transition-fast);
  cursor: pointer;
}
.variant-picker__option:hover { border-color: var(--color-text); }
.variant-picker__option.is-selected {
  border-color: var(--color-primary);
  background: var(--color-primary);
  color: var(--color-white);
}
.variant-picker__option.is-unavailable {
  opacity: 0.4;
  text-decoration: line-through;
  cursor: not-allowed;
}
.variant-picker__swatch {
  width: 32px; height: 32px;
  border-radius: var(--radius-full);
  border: 2px solid transparent;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1);
}
.variant-picker__option.is-selected .variant-picker__swatch {
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.1), 0 0 0 2px var(--color-bg), 0 0 0 3.5px var(--color-primary);
}

/* Quantity */
.quantity-selector {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  height: 48px;
}
.quantity-selector__btn {
  width: 44px; height: 100%;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-text);
  transition: background var(--transition-fast);
}
.quantity-selector__btn:hover { background: var(--color-soft-bg); }
.quantity-selector__input {
  width: 48px;
  height: 100%;
  text-align: center;
  border: none;
  font-weight: 500;
  -moz-appearance: textfield;
}
.quantity-selector__input::-webkit-outer-spin-button,
.quantity-selector__input::-webkit-inner-spin-button { -webkit-appearance: none; }

.product-info__ctas {
  display: flex; flex-direction: column; gap: var(--space-3);
}
@media (min-width: 480px) {
  .product-info__ctas { flex-direction: row; }
  .product-info__ctas .btn { flex: 1; }
}

/* Trust badges on product */
.product-trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}
.product-trust__item {
  display: flex; align-items: center; gap: var(--space-2);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}
.product-trust__item .icon { color: var(--color-accent); }

/* Sticky ATC mobile */
.sticky-atc {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: calc(var(--z-header) - 1);
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  padding: var(--space-3) var(--container-pad);
  display: flex; align-items: center; gap: var(--space-3);
  transform: translateY(100%);
  transition: transform var(--transition-base);
  box-shadow: 0 -4px 20px rgba(17,17,17,0.06);
}
.sticky-atc.is-visible { transform: translateY(0); }
@media (min-width: 1024px) { .sticky-atc { display: none; } }
body.has-bottom-nav .sticky-atc { bottom: var(--bottom-nav-height); }

/* ---------- Cart Drawer ---------- */
.cart-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  pointer-events: none;
  visibility: hidden;
}
.cart-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
.cart-drawer__overlay {
  position: absolute; inset: 0;
  background: rgba(17,17,17,0.4);
  opacity: 0;
  transition: opacity var(--transition-base);
}
.cart-drawer.is-open .cart-drawer__overlay { opacity: 1; }
.cart-drawer__panel {
  position: absolute;
  top: 0; right: 0;
  width: min(420px, 100vw);
  height: 100%;
  background: var(--color-bg);
  transform: translateX(100%);
  transition: transform var(--transition-slow);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-drawer);
}
.cart-drawer.is-open .cart-drawer__panel { transform: translateX(0); }

.cart-drawer__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--space-5);
  border-bottom: 1px solid var(--color-border);
}
.cart-drawer__title { font-size: 1rem; font-weight: 600; }
.cart-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--space-4) var(--space-5);
}
.cart-drawer__empty {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; height: 100%; gap: var(--space-4);
  text-align: center; color: var(--color-text-secondary);
}

.cart-item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-3);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--color-border);
}
.cart-item__img {
  aspect-ratio: 4/5;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-soft-bg);
}
.cart-item__img img { width: 100%; height: 100%; }
.cart-item__details { display: flex; flex-direction: column; gap: var(--space-1); }
.cart-item__title { font-size: 0.875rem; font-weight: 500; }
.cart-item__variant { font-size: 0.75rem; color: var(--color-text-secondary); }
.cart-item__prices { display: flex; align-items: center; gap: var(--space-2); margin-top: auto; }
.cart-item__remove {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  text-decoration: underline;
  margin-top: var(--space-1);
}
.cart-item__remove:hover { color: var(--color-sale); }

.cart-drawer__footer {
  padding: var(--space-5);
  border-top: 1px solid var(--color-border);
  display: flex; flex-direction: column; gap: var(--space-4);
}

/* Free shipping progress */
.shipping-progress { display: flex; flex-direction: column; gap: var(--space-2); }
.shipping-progress__text {
  font-size: 0.75rem;
  font-weight: 500;
  text-align: center;
}
.shipping-progress__bar {
  height: 4px;
  background: var(--color-border);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.shipping-progress__fill {
  height: 100%;
  background: var(--color-accent);
  border-radius: var(--radius-full);
  transition: width var(--transition-base);
}

.cart-drawer__subtotal {
  display: flex; justify-content: space-between; align-items: baseline;
  font-size: 1rem; font-weight: 600;
}
.cart-drawer__prepaid-note {
  font-size: 0.75rem;
  color: var(--color-accent);
  font-weight: 500;
  text-align: center;
}

/* ---------- Trust Section ---------- */
.trust-section {
  background: var(--color-soft-bg);
  padding-block: var(--space-10);
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .trust-grid { grid-template-columns: repeat(4, 1fr); }
}
.trust-item {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: var(--space-3);
}
.trust-item__icon {
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-accent);
}
.trust-item__title {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.trust-item__text {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

/* ---------- Collection Page ---------- */
.collection-header {
  padding-block: var(--space-8);
  text-align: center;
}
.collection-header__title { margin-bottom: var(--space-3); }
.collection-header__desc {
  max-width: 560px;
  margin-inline: auto;
  color: var(--color-text-secondary);
}

.collection-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-4);
  border-bottom: 1px solid var(--color-border);
  margin-bottom: var(--space-6);
  flex-wrap: wrap;
}
.collection-toolbar__count {
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
}
.collection-toolbar__actions {
  display: flex; gap: var(--space-2);
}

/* Filters */
.filter-drawer { /* similar to cart drawer pattern */ }

/* ---------- Search ---------- */
.predictive-search {
  position: absolute;
  top: 100%; left: 0; right: 0;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  max-height: 70vh;
  overflow-y: auto;
  z-index: var(--z-modal);
  display: none;
}
.predictive-search.is-open { display: block; }
.predictive-search__item {
  display: flex; align-items: center; gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  transition: background var(--transition-fast);
}
.predictive-search__item:hover { background: var(--color-soft-bg); }
.predictive-search__img {
  width: 48px; height: 60px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-soft-bg);
  flex-shrink: 0;
}
.predictive-search__img img { width: 100%; height: 100%; }

/* ---------- Quick View Modal ---------- */
.modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  pointer-events: none;
  visibility: hidden;
}
.modal.is-open {
  pointer-events: auto;
  visibility: visible;
}
.modal__overlay {
  position: absolute; inset: 0;
  background: rgba(17,17,17,0.5);
  opacity: 0;
  transition: opacity var(--transition-base);
}
.modal.is-open .modal__overlay { opacity: 1; }
.modal__panel {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -48%) scale(0.96);
  width: min(900px, 94vw);
  max-height: 90vh;
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  overflow: auto;
  opacity: 0;
  transition: all var(--transition-slow);
}
.modal.is-open .modal__panel {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.modal__close {
  position: absolute;
  top: var(--space-4); right: var(--space-4);
  z-index: 2;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  background: var(--color-bg);
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-sm);
}

/* ---------- Bottom Navigation ---------- */
.bottom-nav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: var(--z-header);
  height: var(--bottom-nav-height);
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding-bottom: env(safe-area-inset-bottom, 0);
}
@media (min-width: 1024px) { .bottom-nav { display: none; } }

.bottom-nav__item {
  display: flex; flex-direction: column; align-items: center;
  gap: 2px;
  padding: var(--space-2);
  font-size: 0.625rem;
  font-weight: 500;
  color: var(--color-text-secondary);
  transition: color var(--transition-fast);
  min-width: 56px;
}
.bottom-nav__item.is-active,
.bottom-nav__item:hover { color: var(--color-primary); }
.bottom-nav__item .icon { width: 22px; height: 22px; }
.bottom-nav__badge {
  position: absolute;
  top: 2px; right: 8px;
  min-width: 14px; height: 14px;
  background: var(--color-accent);
  color: var(--color-white);
  font-size: 0.5625rem;
  font-weight: 700;
  border-radius: var(--radius-full);
  display: flex; align-items: center; justify-content: center;
}

body.has-bottom-nav { padding-bottom: var(--bottom-nav-height); }

/* ---------- Footer ---------- */
.footer {
  background: var(--color-secondary);
  padding-block: var(--space-16) var(--space-8);
  border-top: 1px solid var(--color-border);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-8);
  margin-bottom: var(--space-12);
}
@media (min-width: 768px) {
  .footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; }
}
@media (min-width: 1024px) {
  .footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr 1.2fr; }
}
.footer__brand-text {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  margin-top: var(--space-4);
  line-height: 1.6;
  max-width: 280px;
}
.footer__heading {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: var(--space-4);
}
.footer__links { display: flex; flex-direction: column; gap: var(--space-2); }
.footer__link {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  transition: color var(--transition-fast);
}
.footer__link:hover { color: var(--color-primary); }

.footer__newsletter-form {
  display: flex;
  gap: 0;
  margin-top: var(--space-3);
}
.footer__newsletter-input {
  flex: 1;
  height: 48px;
  padding: 0 var(--space-4);
  border: 1.5px solid var(--color-border);
  border-right: none;
  border-radius: var(--radius-sm) 0 0 var(--radius-sm);
  background: var(--color-bg);
  outline: none;
}
.footer__newsletter-input:focus { border-color: var(--color-primary); }
.footer__newsletter-btn {
  height: 48px;
  padding: 0 var(--space-5);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  transition: background var(--transition-fast);
}
.footer__newsletter-btn:hover { background: #2a2a2a; }

.footer__social {
  display: flex; gap: var(--space-3);
  margin-top: var(--space-5);
}
.footer__social-link {
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  color: var(--color-text);
  transition: all var(--transition-fast);
}
.footer__social-link:hover {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}

.footer__bottom {
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between;
  gap: var(--space-4);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-border);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}
.footer__payments { display: flex; gap: var(--space-2); align-items: center; }

/* ---------- Section Headers ---------- */
.section-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: var(--space-8);
  gap: var(--space-4);
}
.section-header__title { margin: 0; }
.section-header__link {
  font-size: 0.8125rem;
  font-weight: 500;
  display: flex; align-items: center; gap: var(--space-1);
  color: var(--color-text-secondary);
  transition: color var(--transition-fast);
  white-space: nowrap;
}
.section-header__link:hover { color: var(--color-accent); }

/* ---------- Wishlist Heart Animation ---------- */
@keyframes heartPop {
  0% { transform: scale(1); }
  50% { transform: scale(1.3); }
  100% { transform: scale(1); }
}
.is-wishlisted .icon { animation: heartPop 0.3s ease; fill: var(--color-sale); stroke: var(--color-sale); }

/* ---------- Skeleton Loading ---------- */
.skeleton {
  background: linear-gradient(90deg, var(--color-soft-bg) 25%, var(--color-border) 50%, var(--color-soft-bg) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--radius-sm);
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ---------- Utilities ---------- */
.text-center { text-align: center; }
.text-accent { color: var(--color-accent); }
.mt-4 { margin-top: var(--space-4); }
.mb-4 { margin-bottom: var(--space-4); }
.gap-4 { gap: var(--space-4); }

/* Hide on mobile / desktop helpers */
.hide-mobile { display: none; }
@media (min-width: 1024px) {
  .hide-mobile { display: initial; }
  .hide-desktop { display: none; }
}

/* =====================================================
   PHASE 2 — Filters, Search Overlay, Auth, Account
   ===================================================== */

/* ---------- Collection Layout + Filters ---------- */
.collection-layout {
  display: grid;
  gap: var(--space-8);
}
@media (min-width: 1024px) {
  .collection-layout {
    grid-template-columns: 240px 1fr;
    gap: var(--space-10);
  }
}

.collection-filters {
  position: sticky;
  top: calc(var(--header-height) + 16px);
}
.collection-filters__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-4);
}
.collection-filters__title {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.collection-filters__actions {
  margin-top: var(--space-6);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.filter-group {
  border-bottom: 1px solid var(--color-border);
  padding-block: var(--space-3);
}
.filter-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: var(--space-2) 0;
  color: var(--color-text);
  cursor: pointer;
}
.filter-group__header .icon {
  transition: transform var(--transition-fast);
}
.filter-group.is-collapsed .filter-group__header .icon {
  transform: rotate(-90deg);
}
.filter-group.is-collapsed .filter-group__body {
  display: none;
}
.filter-group__body {
  padding-bottom: var(--space-2);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.filter-option {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: 0.4rem 0;
  font-size: 0.8125rem;
  cursor: pointer;
  position: relative;
}
.filter-option input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.filter-option__check {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--color-border);
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: transparent;
  transition: all var(--transition-fast);
}
.filter-option input:checked + .filter-option__check {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
}
.filter-option.is-disabled {
  opacity: 0.4;
  pointer-events: none;
}
.filter-option__label { flex: 1; }
.filter-option__count {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

.filter-price {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}
.filter-price__field {
  position: relative;
  flex: 1;
}
.filter-price__currency {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
}
.filter-price__field input {
  width: 100%;
  height: 40px;
  padding: 0 10px 0 24px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  outline: none;
}
.filter-price__field input:focus {
  border-color: var(--color-primary);
}
.filter-price__sep {
  color: var(--color-text-secondary);
}

/* Active filter chips */
.active-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-4);
}
.active-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.3rem 0.6rem;
  background: var(--color-soft-bg);
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 500;
  transition: background var(--transition-fast);
}
.active-filter-chip:hover {
  background: var(--color-border);
}

/* Sort select */
.collection-sort {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.collection-sort__select {
  appearance: none;
  height: 40px;
  padding: 0 32px 0 12px;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  font-weight: 500;
  background: var(--color-bg);
  cursor: pointer;
  outline: none;
}
.collection-sort__select:focus {
  border-color: var(--color-primary);
}
.collection-sort .icon {
  position: absolute;
  right: 10px;
  pointer-events: none;
  color: var(--color-text-secondary);
}

/* Filter drawer (mobile) */
.filter-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  pointer-events: none;
  visibility: hidden;
}
.filter-drawer.is-open {
  pointer-events: auto;
  visibility: visible;
}
.filter-drawer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17,17,17,0.4);
  opacity: 0;
  transition: opacity var(--transition-base);
}
.filter-drawer.is-open .filter-drawer__overlay { opacity: 1; }
.filter-drawer__panel {
  position: absolute;
  top: 0; left: 0;
  width: min(360px, 92vw);
  height: 100%;
  background: var(--color-bg);
  transform: translateX(-100%);
  transition: transform var(--transition-slow);
  overflow-y: auto;
  padding: var(--space-5);
}
.filter-drawer.is-open .filter-drawer__panel { transform: translateX(0); }

/* ---------- Search Overlay ---------- */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  pointer-events: none;
  visibility: hidden;
}
.search-overlay.is-open {
  pointer-events: auto;
  visibility: visible;
}
.search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(17,17,17,0.45);
  opacity: 0;
  transition: opacity var(--transition-base);
}
.search-overlay.is-open .search-overlay__backdrop { opacity: 1; }
.search-overlay__panel {
  position: absolute;
  top: 0; left: 0; right: 0;
  background: var(--color-bg);
  transform: translateY(-12px);
  opacity: 0;
  transition: all var(--transition-slow);
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-lg);
}
.search-overlay.is-open .search-overlay__panel {
  transform: translateY(0);
  opacity: 1;
}
.search-overlay__header {
  padding: var(--space-4) var(--container-pad);
  border-bottom: 1px solid var(--color-border);
}
.search-overlay__form {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  max-width: var(--container-max);
  margin-inline: auto;
  width: 100%;
}
.search-overlay__input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: var(--space-2);
  height: 48px;
  padding: 0 var(--space-4);
  background: var(--color-soft-bg);
  border-radius: var(--radius-md);
}
.search-overlay__input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 1rem;
  height: 100%;
}
.search-overlay__clear {
  display: flex;
  color: var(--color-text-secondary);
}
.search-overlay__close {
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.search-overlay__body {
  overflow-y: auto;
  padding: var(--space-4) var(--container-pad);
  max-width: var(--container-max);
  margin-inline: auto;
  width: 100%;
}
.search-overlay__empty {
  text-align: center;
  padding: var(--space-12) 0;
  color: var(--color-text-secondary);
}
.search-overlay__section-title {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-3);
  margin-top: var(--space-4);
}
.search-result-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  transition: background var(--transition-fast);
}
.search-result-item:hover {
  background: var(--color-soft-bg);
}
.search-result-item__img {
  width: 56px;
  height: 70px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-soft-bg);
  flex-shrink: 0;
}
.search-result-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.search-result-item__title {
  font-size: 0.875rem;
  font-weight: 500;
}
.search-result-item__price {
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
  margin-top: 2px;
}
.search-result-item--collection .search-result-item__img {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-full);
}

/* ---------- Auth / Account ---------- */
.auth-card {
  max-width: 420px;
  margin-inline: auto;
  padding: var(--space-8);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.auth-card__title {
  font-size: 1.5rem;
  margin-bottom: var(--space-2);
  text-align: center;
}
.auth-card__subtitle {
  text-align: center;
  color: var(--color-text-secondary);
  margin-bottom: var(--space-6);
}
.auth-card__footer {
  text-align: center;
  margin-top: var(--space-6);
  color: var(--color-text-secondary);
}
.auth-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}
.auth-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.auth-form__field label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.auth-form__field input {
  height: 48px;
  padding: 0 var(--space-4);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  outline: none;
  transition: border-color var(--transition-fast);
}
.auth-form__field input:focus {
  border-color: var(--color-primary);
}
.auth-form__label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.auth-form__link {
  color: var(--color-accent);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-form__link:hover {
  color: var(--color-primary);
}
.auth-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}
.auth-form__errors {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  color: var(--color-sale);
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
}

.account-header {
  margin-bottom: var(--space-8);
}
.account-grid {
  display: grid;
  gap: var(--space-6);
}
@media (min-width: 768px) {
  .account-grid {
    grid-template-columns: 1.5fr 1fr;
  }
}
.account-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
}
.account-card__title {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--color-border);
}
.account-order {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-border);
  transition: background var(--transition-fast);
}
.account-order:last-child { border-bottom: none; }
.account-order:hover { background: var(--color-soft-bg); }
.account-order__number {
  font-weight: 600;
  font-size: 0.875rem;
  display: block;
}

/* Utility: hide-mobile / hide-desktop already defined */
@media (max-width: 1023px) {
  .hide-mobile { display: none !important; }
}
@media (min-width: 1024px) {
  .hide-desktop { display: none !important; }
}

/* ---------- Quick View ---------- */
.quick-view__grid {
  display: grid;
  gap: 0;
}
@media (min-width: 768px) {
  .quick-view__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.quick-view__media {
  background: var(--color-soft-bg);
  aspect-ratio: 4/5;
  overflow: hidden;
}
.quick-view__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.quick-view__info {
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  overflow-y: auto;
  max-height: 90vh;
}
.quick-view__title {
  font-size: 1.25rem;
  margin: 0;
}
@media (max-width: 767px) {
  .quick-view__media {
    aspect-ratio: 1;
    max-height: 40vh;
  }
  .modal__panel {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    transform: translateY(100%);
    width: 100%;
    max-height: 92vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }
  .modal.is-open .modal__panel {
    transform: translateY(0);
  }
}

/* Wishlist empty state */
.wishlist-empty .icon {
  margin-inline: auto;
  color: var(--color-text-secondary);
  opacity: 0.5;
}

/* ---------- Free Shipping Progress (enhanced) ---------- */
.shipping-progress {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  background: var(--color-secondary);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
}
.shipping-progress--unlocked {
  background: #F0F7F3;
  border-color: rgba(40, 122, 82, 0.25);
}
.shipping-progress__text {
  font-size: 0.8125rem;
  font-weight: 500;
  text-align: center;
  line-height: 1.4;
  margin: 0;
}
.shipping-progress__text strong {
  font-weight: 600;
}
.shipping-progress__text--success {
  color: var(--color-success);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.shipping-progress__icon {
  display: inline-flex;
  color: var(--color-success);
}
.shipping-progress__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}
.shipping-progress__sep {
  margin: 0 4px;
  opacity: 0.5;
}
.shipping-progress__bar {
  height: 6px;
  background: var(--color-border);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.shipping-progress__fill {
  height: 100%;
  background: var(--color-accent);
  border-radius: var(--radius-full);
  transition: width 400ms ease;
  min-width: 0;
}
.shipping-progress--unlocked .shipping-progress__fill {
  background: var(--color-success);
}
.shipping-progress__pct {
  font-weight: 600;
  color: var(--color-text);
}

/* Product accordions */
.product-accordions { margin-top: 28px; }
.product-accordion {
  border-bottom: 1px solid var(--color-border);
}
.product-accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.product-accordion__summary::-webkit-details-marker { display: none; }
.product-accordion__summary .icon {
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.product-accordion[open] .product-accordion__summary .icon {
  transform: rotate(180deg);
}
.product-accordion__body {
  padding: 0 0 20px;
  color: var(--color-text-secondary);
  line-height: 1.7;
}
.product-accordion__body p { margin: 0 0 0.75em; }
.product-accordion__body p:last-child { margin-bottom: 0; }

.product-info__title {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
}
@media (min-width: 768px) {
  .product-info__title { font-size: 1.75rem; }
}

.product-trust {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 24px;
  padding: 20px 0;
  border-top: 1px solid var(--color-border);
}
.product-trust__item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  line-height: 1.4;
}
.product-trust__item .icon {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--color-text);
}

.breadcrumb a:hover { color: var(--color-text); }

/* Collection upgrades */
.collection-sidebar {
  position: sticky;
  top: calc(var(--header-height, 64px) + 16px);
  align-self: start;
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}
.product-grid--1 {
  grid-template-columns: 1fr !important;
}
.collection-empty .btn { margin-top: 4px; }
.active-filters { margin-bottom: 16px; }
.filter-drawer__header h2 { font-family: inherit; }
.filter-drawer__panel {
  display: flex;
  flex-direction: column;
}

/* Multi-slide hero */
.hero {
  position: relative;
  overflow: hidden;
  min-height: min(85vh, 720px);
  background: #111;
}
.hero__slides {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
}
.hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s ease;
  display: flex;
  align-items: center;
}
.hero__slide.is-active {
  opacity: 1;
  visibility: visible;
  position: relative;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero__media img,
.hero__placeholder {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: #000;
  z-index: 1;
  pointer-events: none;
}
.hero__content {
  position: relative;
  z-index: 2;
  padding: 48px 0;
  max-width: 640px;
  color: #fff;
}
.hero__content--center {
  margin-inline: auto;
  text-align: center;
}
.hero__content--right {
  margin-left: auto;
  text-align: right;
}
.hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 12px;
  opacity: 0.9;
}
.hero__title {
  font-size: clamp(1.75rem, 5vw, 3rem);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 12px;
  color: #fff;
}
.hero__subtitle {
  font-size: 1rem;
  line-height: 1.5;
  opacity: 0.85;
  margin: 0 0 28px;
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.hero__content--center .hero__actions { justify-content: center; }
.hero__content--right .hero__actions { justify-content: flex-end; }
.hero__btn-secondary {
  background: transparent;
  border-color: rgba(255,255,255,0.6);
  color: #fff;
}
.hero__btn-secondary:hover {
  background: rgba(255,255,255,0.12);
  border-color: #fff;
}
.hero__controls {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 16px;
}
.hero__arrow {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.4);
  background: rgba(0,0,0,0.25);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.hero__arrow:hover {
  background: rgba(255,255,255,0.15);
  border-color: #fff;
}
.hero__dots {
  display: flex;
  gap: 8px;
}
.hero__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,0.4);
  padding: 0;
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}
.hero__dot.is-active {
  background: #fff;
  transform: scale(1.25);
}

/* Category shapes */
.category-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, 1fr);
}
.category-grid--2 { grid-template-columns: repeat(2, 1fr); }
.category-grid--3 { grid-template-columns: repeat(2, 1fr); }
.category-grid--4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) {
  .category-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .category-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
.category-card {
  position: relative;
  display: block;
  overflow: hidden;
  text-decoration: none;
  color: #fff;
}
.category-card--square .category-card__media,
.category-card--square {
  border-radius: 0;
}
.category-card--rounded .category-card__media,
.category-card--rounded {
  border-radius: 12px;
}
.category-card--round .category-card__media,
.category-card--round {
  border-radius: 50%;
}
.category-card--rectangle .category-card__media,
.category-card--rectangle {
  border-radius: 8px;
}
.category-card__media {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.category-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  display: block;
}
.category-card:hover .category-card__img {
  transform: scale(1.05);
}
.category-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
}
.category-card--round .category-card__overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 50%);
  align-items: center;
  text-align: center;
  padding: 16px;
}
.category-card__title {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  gap: 6px;
}
.category-card--round .category-card__title {
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}
.category-card__subtitle {
  opacity: 0.85;
  margin-top: 4px;
}
.category-card__arrow {
  display: inline-flex;
  transition: transform 0.2s;
}
.category-card:hover .category-card__arrow {
  transform: translateX(4px);
}

/* Product page fixes */
.breadcrumb {
  padding: 16px 0 8px;
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
}
.breadcrumb a { color: var(--color-text-secondary); text-decoration: none; }
.breadcrumb a:hover { color: var(--color-text); }
.breadcrumb__sep { margin: 0 6px; opacity: 0.5; }
.breadcrumb__current { color: var(--color-text); }

.product-form__variants {
  width: 100%;
  height: 48px;
  margin: 12px 0 16px;
  padding: 0 12px;
  border: 1.5px solid var(--color-border);
  border-radius: 4px;
  font-family: inherit;
  font-size: 0.875rem;
  background: var(--color-bg);
}
.product-form__variants.is-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  border: 0 !important;
}
.product-form__row {
  margin: 16px 0;
}
.product-info__vendor {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin: 0 0 6px;
}
.product-info__wishlist {
  margin-top: 10px;
}
.product-info__prices {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 12px 0 16px;
  flex-wrap: wrap;
}
.product-accordion__icon {
  font-weight: 400;
  font-size: 1.1rem;
  margin-left: auto;
}
.product-accordion[open] .product-accordion__icon {
  transform: none;
}
.product-accordion[open] .product-accordion__icon::before {
  content: none;
}
.product-accordion[open] .product-accordion__summary .product-accordion__icon {
  /* show minus-like */
}
.product-accordion[open] .product-accordion__icon {
  opacity: 0.6;
}
.product-accordion__summary {
  display: flex;
  align-items: center;
  gap: 8px;
}
.btn.is-loading .btn__text { opacity: 0; }
.btn.is-loading .btn__spinner {
  display: block;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  position: absolute;
}
.btn { position: relative; }
.btn__spinner { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }

.sticky-atc.is-visible {
  transform: translateY(0);
}
.sticky-atc {
  transform: translateY(100%);
  transition: transform 0.25s ease;
}

/* Brand: Poppins + palette */
body,
.btn,
input,
select,
textarea,
button {
  font-family: 'Poppins', system-ui, -apple-system, sans-serif;
}
:root {
  --font-primary: 'Poppins', system-ui, sans-serif;
}

/* Product images — auto fit, no crop distortion */
.product-gallery__main {
  aspect-ratio: 1 / 1;
  background: var(--color-soft-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 12px;
}
.product-gallery__main img,
.product-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.product-gallery__thumbs {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  overflow-x: auto;
}
.product-gallery__thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  border: 1.5px solid var(--color-border);
  padding: 0;
  background: var(--color-soft-bg);
  cursor: pointer;
}
.product-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.product-gallery__thumb.is-active {
  border-color: var(--color-primary);
}

.product-card__media {
  background: var(--color-soft-bg);
}
.product-card__img {
  object-fit: contain;
  object-position: center;
}

/* Prepaid highlight — violet + lime */
.prepaid-offer {
  background: linear-gradient(135deg, rgba(125, 57, 235, 0.08) 0%, rgba(198, 255, 51, 0.12) 100%);
  border: 1.5px solid var(--color-accent, #7D39EB);
  border-radius: 12px;
  padding: 16px;
  margin: 16px 0 20px;
  position: relative;
}
.prepaid-offer__badge {
  position: absolute;
  top: -10px;
  right: 16px;
  background: var(--color-accent, #7D39EB);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 999px;
  text-transform: uppercase;
}
.prepaid-offer__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--color-primary);
  margin-bottom: 8px;
}
.prepaid-offer__header .icon { color: var(--color-accent, #7D39EB); }
.prepaid-offer__prices {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 4px;
}
.prepaid-offer__prepaid {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-accent, #7D39EB);
}
.prepaid-offer__save {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #287A52;
  margin-bottom: 4px;
}
.prepaid-offer__note {
  font-size: 0.75rem;
  color: var(--color-text-secondary);
  margin: 8px 0 0;
}

/* Accent CTAs optional lime highlight on secondary */
.badge--prepaid {
  background: var(--color-accent, #7D39EB);
  color: #fff;
}
.shipping-progress--unlocked {
  background: rgba(198, 255, 51, 0.15);
  border-radius: 8px;
  padding: 12px;
}
.shipping-progress__text--success {
  color: var(--color-primary);
  font-weight: 500;
}
.shipping-progress__fill {
  background: var(--color-accent, #7D39EB);
}

/* ========== LUXURY DTC DESIGN SYSTEM ========== */
:root {
  --lux-black: #000000;
  --lux-violet: #7D39EB;
  --lux-lime: #C6FF33;
  --lux-white: #FFFFFF;
  --radius: 14px;
  --radius-lg: 18px;
}

html { scroll-behavior: smooth; }
body {
  font-family: 'Poppins', system-ui, -apple-system, sans-serif !important;
  font-weight: 400;
  letter-spacing: -0.01em;
  background: var(--color-bg, #fff);
  color: var(--color-text, #000);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, .section-header__title, .hero__title, .product-info__title, .collection-header__title {
  font-family: 'Poppins', system-ui, sans-serif !important;
  font-weight: 700;
  letter-spacing: -0.03em;
}

.btn {
  font-family: 'Poppins', system-ui, sans-serif !important;
  font-weight: 600;
  border-radius: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.75rem;
  transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.btn--primary {
  background: var(--lux-black) !important;
  color: #fff !important;
  border: none;
}
.btn--primary:hover {
  background: var(--lux-violet) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(125, 57, 235, 0.25);
}
.btn--secondary {
  background: transparent;
  border: 1.5px solid var(--lux-black);
  color: var(--lux-black);
}
.btn--secondary:hover {
  border-color: var(--lux-violet);
  color: var(--lux-violet);
}

/* Announcement — luxury ticker */
.announcement {
  background: var(--announcement-bg, #000) !important;
  color: var(--announcement-text, #fff) !important;
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  overflow: hidden;
  height: 36px;
  display: flex;
  align-items: center;
}
.announcement__track {
  display: flex;
  animation: lux-marquee 28s linear infinite;
  white-space: nowrap;
  gap: 0;
}
.announcement__item {
  padding: 0 48px;
  flex-shrink: 0;
}
.announcement__item strong {
  font-weight: 700;
}
.announcement .lux-lime,
.announcement .lux-violet {
  color: inherit;
}
@keyframes lux-marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Header — black luxury sticky */
.header {
  background: rgba(0, 0, 0, 0.92) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: #fff !important;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  transition: padding 0.25s ease, background 0.25s ease;
}
.header.is-sticky,
.header.is-compact {
  padding-block: 8px;
}
.header__logo-text,
.header__link,
.header__icon-btn {
  color: #fff !important;
}
.header__link {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  position: relative;
  padding: 6px 0;
}
.header__link:hover,
.header__link.is-active {
  color: #fff !important;
}
.header__link.is-active::after,
.header__link:hover::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 2px;
  background: var(--lux-violet);
  border-radius: 2px;
}
.header__cart-count {
  background: var(--lux-violet) !important;
  color: #fff !important;
}
.header__logo img {
  max-height: 40px;
  width: auto;
  object-fit: contain;
}

/* Mobile nav dark */
.mobile-nav__panel {
  background: #000;
  color: #fff;
}
.mobile-nav__link {
  color: #fff !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.875rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  padding: 16px 0;
}
.mobile-nav__link:hover { color: var(--lux-violet) !important; }

/* Hero luxury */
.hero {
  min-height: min(88vh, 780px);
  background: #0a0a0a;
}
.hero__title {
  font-size: clamp(2.25rem, 6vw, 4rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em;
  text-shadow: 0 0 60px rgba(125, 57, 235, 0.35);
}
.hero__eyebrow {
  color: var(--lux-lime) !important;
  font-weight: 600;
}
.hero__dot.is-active { background: var(--lux-violet) !important; }
.hero__arrow:hover { border-color: var(--lux-violet); background: rgba(125,57,235,0.3); }

/* Category cards luxury */
.category-card__overlay {
  background: linear-gradient(to top, rgba(0,0,0,0.75) 0%, transparent 55%);
}
.category-card:hover .category-card__overlay {
  background: linear-gradient(to top, rgba(125, 57, 235, 0.75) 0%, transparent 60%);
}
.category-card--rounded .category-card__media,
.category-card--rounded { border-radius: var(--radius-lg); }

/* Product cards */
.product-card {
  border-radius: var(--radius);
  transition: transform 0.3s ease;
}
.product-card:hover { transform: translateY(-4px); }
.product-card__media {
  border-radius: var(--radius);
  overflow: hidden;
  background: #f5f5f3;
}
.product-card__img { object-fit: contain; }
.badge--new { background: #000; color: #fff; }
.badge--sale { background: var(--lux-lime); color: #000; font-weight: 700; }
.badge--prepaid { background: var(--lux-violet); color: #fff; }

/* Limited drop banner */
.lux-drop {
  background: #000;
  color: #fff;
  padding: 64px 0;
  position: relative;
  overflow: hidden;
}
.lux-drop::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(125,57,235,0.35) 0%, transparent 55%);
  pointer-events: none;
}
.lux-drop__inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 560px;
  margin: 0 auto;
}
.lux-drop__label {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--lux-lime);
  margin-bottom: 16px;
}
.lux-drop__title {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 800;
  margin: 0 0 12px;
}
.lux-drop__text {
  opacity: 0.75;
  margin-bottom: 28px;
}
.lux-drop .btn--primary {
  background: var(--lux-violet) !important;
}
.lux-drop .btn--primary:hover {
  background: #fff !important;
  color: #000 !important;
}

/* Newsletter luxury */
.lux-newsletter {
  background: #000;
  color: #fff;
  padding: 64px 0;
  text-align: center;
}
.lux-newsletter h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  margin-bottom: 8px;
}
.lux-newsletter p {
  opacity: 0.7;
  margin-bottom: 28px;
}
.lux-newsletter__form {
  display: flex;
  max-width: 440px;
  margin: 0 auto;
  gap: 0;
}
.lux-newsletter__form input {
  flex: 1;
  height: 52px;
  border: 1.5px solid rgba(255,255,255,0.2);
  border-right: none;
  border-radius: 12px 0 0 12px;
  background: rgba(255,255,255,0.06);
  color: #fff;
  padding: 0 18px;
  font-family: inherit;
}
.lux-newsletter__form button {
  height: 52px;
  padding: 0 28px;
  background: var(--lux-violet);
  color: #fff;
  border: none;
  border-radius: 0 12px 12px 0;
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
.lux-newsletter__form button:hover { background: #6930d0; }

/* Reviews / social proof */
.lux-reviews {
  padding: 64px 0;
  background: var(--color-soft-bg, #f7f7f5);
  text-align: center;
}
.lux-reviews__stars {
  color: var(--lux-violet);
  font-size: 1.25rem;
  letter-spacing: 4px;
  margin-bottom: 12px;
}
.lux-reviews__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-top: 40px;
  text-align: left;
}
@media (min-width: 768px) {
  .lux-reviews__grid { grid-template-columns: repeat(3, 1fr); }
}
.lux-review-card {
  background: #fff;
  border-radius: var(--radius);
  padding: 24px;
  border: 1px solid var(--color-border);
}
.lux-review-card__stars { color: var(--lux-violet); font-size: 0.85rem; margin-bottom: 8px; }
.lux-review-card__text { font-size: 0.875rem; line-height: 1.6; margin-bottom: 12px; }
.lux-review-card__author { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; }

/* Footer black luxury */
.footer {
  background: #000 !important;
  color: rgba(255,255,255,0.75) !important;
  border-top: none;
}
.footer__heading { color: #fff !important; letter-spacing: 0.08em; }
.footer__link { color: rgba(255,255,255,0.6) !important; }
.footer__link:hover { color: var(--lux-violet) !important; }
.footer__brand-text { color: rgba(255,255,255,0.5); }
.header__logo-text { color: #fff; }
.footer__bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.4);
}
.footer__newsletter-input {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.15);
  color: #fff;
}
.footer__newsletter-btn {
  background: var(--lux-violet) !important;
}

/* Bottom nav luxury */
.bottom-nav {
  background: rgba(0,0,0,0.95) !important;
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255,255,255,0.08);
}
.bottom-nav__item {
  color: rgba(255,255,255,0.5) !important;
}
.bottom-nav__item.is-active,
.bottom-nav__item:hover {
  color: #fff !important;
}
.bottom-nav__item.is-active span { color: var(--lux-violet); }
.bottom-nav__badge { background: var(--lux-violet) !important; }

/* Cart drawer checkout CTA */
.cart-drawer__footer .btn--primary {
  background: var(--lux-violet) !important;
}
.cart-drawer__footer .btn--primary:hover {
  background: #000 !important;
}

/* Prepaid + shipping progress */
.prepaid-offer {
  border-color: var(--lux-violet) !important;
}
.prepaid-offer__badge {
  background: var(--lux-lime) !important;
  color: #000 !important;
}
.prepaid-offer__prepaid { color: var(--lux-violet) !important; }
.shipping-progress__fill { background: var(--lux-violet) !important; }
.shipping-progress--unlocked {
  background: rgba(198, 255, 51, 0.18) !important;
}

/* Section spacing */
.section { padding-block: 56px; }
@media (min-width: 768px) { .section { padding-block: 80px; } }
.section-header__title {
  font-weight: 800;
  letter-spacing: -0.03em;
}


/* =====================================================
   HEPRA MART THEME UPGRADE v2.0
   Stability • Responsive UX • Accessibility • Performance
   ===================================================== */
:root {
  --lux-violet: #7D39EB;
  --lux-lime: #C6FF33;
  --tap-size: 44px;
}

html { scroll-padding-top: calc(var(--header-height) + var(--announcement-height)); }
body { min-width: 320px; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, .btn, .header__icon-btn, .product-card__action-btn, .quantity-selector__btn { min-height: var(--tap-size); }

/* Better responsive category grid */
.category-grid--mobile-1 { grid-template-columns: 1fr; }
.category-grid--mobile-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.category-grid--mobile-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (min-width: 768px) {
  .category-grid--mobile-1, .category-grid--mobile-2, .category-grid--mobile-3 {
    grid-template-columns: repeat(var(--category-cols, 3), minmax(0,1fr));
  }
}

/* Product media: never crop the source product */
.product-gallery__main img,
.product-gallery__thumb img,
.product-card__img,
.cart-item__img img { object-fit: contain; object-position: center; }
.product-gallery__main { background: #f7f7f5; }
.product-gallery__thumb { background: #f7f7f5; }
.product-gallery__thumb:focus-visible, .product-card__action-btn:focus-visible { outline: 2px solid var(--lux-violet); outline-offset: 2px; }

/* Prevent layout jumps while images load */
.product-card__media, .category-card__media, .product-gallery__main { contain: layout paint; }

/* Drawer safety on small screens */
.cart-drawer__panel, .filter-drawer__panel, .mobile-nav__panel { max-height: 100dvh; }
@media (max-width: 767px) {
  .cart-drawer__panel { width: 100vw; }
  .product-page { padding-top: 12px; }
  .product-info { gap: 16px; }
  .product-info__title { font-size: clamp(1.45rem, 6vw, 2rem); }
  .product-form__row { margin: 10px 0; }
  .product-gallery__main { margin-inline: calc(-1 * var(--container-pad)); border-radius: 0; }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Sticky ATC stays above mobile navigation */
@media (max-width: 1023px) {
  body.has-bottom-nav .sticky-atc { bottom: var(--bottom-nav-height); }
}

/* Quick-view */
.quick-view { padding: 24px; }
.quick-view__grid { display:grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
.quick-view__image { width:100%; aspect-ratio:1/1; object-fit:contain; background:#f7f7f5; border-radius:12px; }
.quick-view__title { font-size:1.25rem; margin-bottom:8px; }
.quick-view__price { font-size:1.15rem; font-weight:700; margin-bottom:16px; }
.quick-view__variant { width:100%; min-height:48px; border:1px solid var(--color-border); border-radius:8px; padding:0 12px; background:#fff; margin-bottom:12px; }
@media (min-width: 640px) { .quick-view__grid { grid-template-columns: 1fr 1fr; align-items:center; } }

/* Hide native number spinners for cleaner quantity UI */
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

/* Mobile category labels remain readable in 3-column mode */
@media (max-width: 767px) {
  .category-grid--mobile-3 { gap: 8px; }
  .category-grid--mobile-3 .category-card__overlay { padding: 8px; }
  .category-grid--mobile-3 .category-card__title { font-size: .68rem; line-height: 1.25; }
}


/* HEPRA MART homepage polish / reliability */
.hero__slide { will-change: opacity; }
.hero__slide:not(.is-active) .hero__content > * { pointer-events: none; }
.hero__placeholder, .category-card__placeholder { min-height: 100%; }
.category-card__placeholder { display:block; position:relative; overflow:hidden; }
.category-card__placeholder::after { content:"HEPRA MART"; position:absolute; inset:auto 0 18px; text-align:center; font-size:.72rem; letter-spacing:.16em; font-weight:800; color:rgba(0,0,0,.38); }
.form-message { margin: 0 0 12px; font-size: .875rem; }
.form-message--success { color: #287A52; }
.form-message--error { color: #B42318; }
@media (max-width: 767px) {
  .hero { min-height: min(78vh, 680px); }
  .hero__title { max-width: 13ch; }
  .hero__subtitle { max-width: 34ch; }
  .hero__actions { width:100%; }
  .hero__actions .btn { flex:1 1 auto; min-width:0; }
  .section { padding-top: clamp(40px, 9vw, 64px); padding-bottom: clamp(40px, 9vw, 64px); }
  .category-grid { gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__slide, .hero__slide *, .category-card__img { transition: none !important; animation: none !important; }
}

/* ---------- Premium Product Page v2.2 ---------- */
.product-page {
  align-items: start;
}
@media (min-width: 1024px) {
  .product-gallery { position: sticky; top: 96px; }
}
.product-gallery__main {
  box-shadow: 0 14px 45px rgba(17,17,17,.06);
}
.product-gallery__thumb { transition: border-color .2s ease, opacity .2s ease, transform .2s ease; }
.product-gallery__thumb:hover { transform: translateY(-2px); }
.product-info__title { letter-spacing: -.025em; line-height: 1.12; }
.product-info__prices .price--sale { color: var(--lux-violet, var(--color-primary)); font-size: clamp(1.55rem, 3vw, 2rem); font-weight: 800; }
.product-info__prices .price--compare { color: var(--color-text-secondary); text-decoration: line-through; }
.product-price-badge {
  display: inline-flex; width: fit-content; margin-top: -8px; padding: 5px 9px;
  border-radius: 999px; background: #C6FF33; color: #111; font-size: .72rem; font-weight: 800;
}
.product-purchase-note {
  display: flex; flex-wrap: wrap; gap: 8px 14px; padding: 10px 0;
  color: var(--color-text-secondary); font-size: .72rem; font-weight: 600;
  border-block: 1px solid var(--color-border);
}
.product-form__row--purchase { display:flex; align-items:end; gap:12px; }
.quantity-wrap { display:flex; flex-direction:column; gap:6px; }
.quantity-label { font-size:.72rem; font-weight:700; color:var(--color-text-secondary); }
.product-form .btn--lg { min-height:54px; border-radius:12px; box-shadow:0 8px 20px rgba(125,57,235,.18); }
.product-info__wishlist { border-radius:12px; }
.product-trust { padding:16px 0; }
.product-delivery-strip {
  display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:14px;
  background:linear-gradient(135deg, rgba(198,255,51,.22), rgba(125,57,235,.06));
  border:1px solid var(--color-border); border-radius:14px;
}
.product-delivery-strip div { display:flex; flex-direction:column; gap:3px; }
.product-delivery-strip strong { font-size:.76rem; }
.product-delivery-strip span { font-size:.68rem; color:var(--color-text-secondary); }
.product-accordion { border-radius:12px; }
@media (max-width:767px) {
  .product-page { gap: 20px; }
  .product-info__title { font-size: clamp(1.4rem, 6vw, 1.9rem); }
  .product-purchase-note { font-size:.68rem; gap:7px 10px; }
  .product-form__row--purchase { margin:8px 0 10px; }
  .product-gallery__main { box-shadow:none; }
  .product-delivery-strip { grid-template-columns:1fr 1fr; }
  .product-gallery__thumb { flex-basis:58px; width:58px; height:58px; }
}

/* ---------- Premium Collection Page v2.3 ---------- */
.collection-header {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg, 18px);
  background: var(--color-soft-bg);
  padding: clamp(28px, 5vw, 64px);
  margin-bottom: var(--space-8);
}
.collection-header--with-image {
  min-height: clamp(240px, 34vw, 430px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.collection-header__media { position: absolute; inset: 0; }
.collection-header__image { width: 100%; height: 100%; object-fit: cover; display: block; }
.collection-header__media-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.62));
}
.collection-header__content { position: relative; z-index: 1; max-width: 760px; width: 100%; text-align: center; }
.collection-header--with-image .collection-header__content,
.collection-header--with-image .collection-header__title,
.collection-header--with-image .collection-header__desc,
.collection-header--with-image .breadcrumb,
.collection-header--with-image .breadcrumb a { color: #fff; }
.collection-header__title { font-size: clamp(2rem, 5vw, 4rem); line-height: 1.02; letter-spacing: -.04em; }
.collection-header__desc { font-size: .95rem; line-height: 1.7; }
.collection-toolbar {
  position: sticky; top: calc(var(--header-height, 64px) + 8px); z-index: 10;
  background: color-mix(in srgb, var(--color-bg) 94%, transparent);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--color-border); border-radius: var(--radius-md, 12px);
  padding: 10px 12px; margin-bottom: 18px; box-shadow: 0 8px 30px rgba(0,0,0,.05);
}
.collection-toolbar__left { display:flex; align-items:center; gap:10px; }
.collection-toolbar__label { font-size:.8rem; font-weight:700; }
.collection-toolbar__count { padding-left:10px; border-left:1px solid var(--color-border); }
.collection-toolbar__actions { align-items:center; }
.collection-toolbar__filter-btn { min-height:40px; }
.collection-results-bar { display:flex; gap:7px; align-items:center; margin: 0 0 14px; color:var(--color-text-secondary); font-size:.75rem; }
.collection-results-bar__dot { opacity:.55; }
.product-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 767px) {
  .collection-header { border-radius: 14px; margin-bottom: 18px; padding: 24px 18px; }
  .collection-header--with-image { min-height: 240px; }
  .collection-header__title { font-size: 2rem; }
  .collection-toolbar { top: calc(var(--header-height, 64px) + 4px); padding:8px; }
  .collection-toolbar__label { display:none; }
  .collection-toolbar__count { border-left:0; padding-left:0; }
  .collection-toolbar__actions { width:100%; justify-content:flex-end; }
  .collection-toolbar__filter-btn { flex:1; }
  .collection-sort { flex:1; }
  .collection-sort__select { width:100%; }
  .product-grid--3 { grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px 8px; }
}
@media (min-width: 768px) {
  .product-grid--3 { grid-template-columns:repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .product-grid--3 { grid-template-columns:repeat(4, 1fr); }
}

/* =====================================================
   HEPRA MART CART PAGE v2.4
   Premium cart experience • responsive • conversion focused
   ===================================================== */
.cart-page { padding-top: clamp(32px, 5vw, 64px); }
.cart-page__header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.cart-page__eyebrow { color:var(--lux-violet); font-size:.7rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; margin-bottom:8px; }
.cart-page__subtext { color:var(--color-text-secondary); margin-top:8px; }
.cart-page__continue { font-size:.8rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.cart-page__layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr); gap:32px; align-items:start; }
.cart-page__main { min-width:0; }
.cart-page__items { border-top:1px solid var(--color-border); margin-top:20px; }
.cart-page-item { display:grid; grid-template-columns:112px minmax(0,1fr); gap:20px; padding:20px 0; border-bottom:1px solid var(--color-border); }
.cart-page-item__media { width:112px; aspect-ratio:4/5; overflow:hidden; border-radius:12px; background:#f7f7f5; }
.cart-page-item__media img { width:100%; height:100%; object-fit:contain; }
.cart-page-item__content { display:flex; flex-direction:column; min-width:0; gap:18px; }
.cart-page-item__top,.cart-page-item__bottom { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.cart-page-item__title { font-size:1rem; font-weight:700; line-height:1.35; }
.cart-page-item__variant { color:var(--color-text-secondary); font-size:.78rem; margin-top:5px; }
.cart-page-item__remove { color:var(--color-text-secondary); font-size:.72rem; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.cart-page-item__remove:hover { color:var(--color-sale); }
.cart-page-item__price-group { display:flex; align-items:center; gap:8px; }
.cart-page-item__qty input { width:72px; min-height:44px; padding:8px 10px; border:1px solid var(--color-border); border-radius:8px; text-align:center; background:#fff; }
.cart-page__update { margin-top:20px; }
.cart-page__note { margin-top:32px; padding-top:24px; border-top:1px solid var(--color-border); }
.cart-page__note label { display:block; font-weight:700; font-size:.85rem; margin-bottom:8px; }
.cart-page__note label span { color:var(--color-text-secondary); font-weight:400; }
.cart-page__note textarea { width:100%; border:1px solid var(--color-border); border-radius:10px; padding:12px; resize:vertical; min-height:92px; background:#fff; }
.cart-summary-card { position:sticky; top:calc(var(--header-height) + var(--announcement-height) + 24px); border:1px solid var(--color-border); border-radius:16px; padding:24px; box-shadow:var(--shadow-md); background:#fff; }
.cart-summary-card h2 { font-size:1.2rem; margin-bottom:24px; }
.cart-summary-card__row { display:flex; justify-content:space-between; align-items:center; padding-bottom:16px; border-bottom:1px solid var(--color-border); }
.cart-summary-card__row strong { font-size:1.15rem; }
.cart-summary-card__tax { color:var(--color-text-secondary); font-size:.75rem; line-height:1.5; margin:12px 0 18px; }
.cart-summary-card__checkout { background:var(--lux-violet); color:#fff; justify-content:space-between; padding-inline:20px; }
.cart-summary-card__checkout:hover { background:#6421c9; }
.cart-summary-card__trust { display:grid; grid-template-columns:1fr; gap:8px; margin-top:16px; color:var(--color-text-secondary); font-size:.7rem; }
.cart-page__empty { min-height:420px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:48px 20px; border:1px solid var(--color-border); border-radius:16px; background:linear-gradient(180deg,#fff,#fafafa); }
.cart-page__empty-icon { width:64px; height:64px; display:grid; place-items:center; border-radius:50%; background:rgba(125,57,235,.08); font-size:28px; margin-bottom:20px; }
.cart-page__empty h2 { margin-bottom:8px; }
.cart-page__empty p { color:var(--color-text-secondary); margin-bottom:24px; }
@media (max-width: 900px) { .cart-page__layout { grid-template-columns:1fr; } .cart-summary-card { position:static; } }
@media (max-width: 640px) {
  .cart-page { padding-top:28px; padding-bottom:48px; }
  .cart-page__header { align-items:flex-start; margin-bottom:24px; }
  .cart-page__continue { font-size:.7rem; }
  .cart-page-item { grid-template-columns:88px minmax(0,1fr); gap:14px; padding:16px 0; }
  .cart-page-item__media { width:88px; border-radius:10px; }
  .cart-page-item__content { gap:14px; }
  .cart-page-item__title { font-size:.88rem; }
  .cart-page-item__top,.cart-page-item__bottom { gap:10px; }
  .cart-page-item__bottom { align-items:center; }
  .cart-summary-card { padding:20px; border-radius:14px; }
  .cart-page__update { width:100%; }
}


/* =====================================================
   HEPRA MART COMPLETE SITE UPGRADE v3.0
   Global premium UI • all templates • mobile first
   ===================================================== */
:root{
  --color-primary:#7D39EB;
  --color-accent:#7D39EB;
  --color-secondary:#C6FF33;
  --color-lime:#C6FF33;
  --color-bg:#fff;
  --color-text:#17131f;
  --color-text-secondary:#6f6878;
  --color-border:#e9e5ee;
  --color-soft-bg:#f8f7fb;
  --shadow-brand:0 12px 34px rgba(125,57,235,.14);
  --shadow-card:0 8px 30px rgba(27,17,39,.07);
}
body{background:#fff;color:var(--color-text)}
::selection{background:#7D39EB;color:#fff}

/* Global premium surfaces */
.section{position:relative}
.container{max-width:1440px}
.btn{border-radius:10px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.btn--primary{background:#7D39EB;color:#fff;box-shadow:0 7px 18px rgba(125,57,235,.16)}
.btn--primary:hover{background:#6926d0;box-shadow:0 10px 24px rgba(125,57,235,.22);transform:translateY(-1px)}
.btn--accent{background:#C6FF33;color:#141414}
.btn--accent:hover{background:#b8f22b;transform:translateY(-1px)}
.btn--secondary:hover{background:#7D39EB;border-color:#7D39EB;color:#fff}

/* Header / footer */
.header{backdrop-filter:saturate(130%)}
.header__link:hover{color:#7D39EB}
.header__link::after{background:#7D39EB}
.header__icon-btn:hover{color:#7D39EB;background:rgba(125,57,235,.06);border-radius:10px}
.footer{background:#17131f;color:#fff}
.footer a:hover{color:#C6FF33}

/* Homepage */
.hero{border-radius:0;overflow:hidden}
.hero__content .btn--primary{background:#7D39EB}
.hero__content .btn--secondary{background:#fff;color:#17131f;border-color:#fff}
.category-card,.product-card,.featured-collection__card{border-radius:16px;overflow:hidden}
.category-card{box-shadow:0 6px 24px rgba(0,0,0,.06)}
.product-card{background:#fff;transition:transform .2s ease,box-shadow .2s ease}
.product-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card)}
.product-card__media{background:#f7f6f9}
.product-card__media img{object-fit:contain}
.product-card__title{font-weight:650}

/* Collection */
.collection-header{box-shadow:0 12px 36px rgba(0,0,0,.06)}
.collection-toolbar{box-shadow:0 10px 28px rgba(0,0,0,.06)}
.collection-toolbar select,.collection-sort__select,.collection-toolbar button{border-radius:9px}

/* Search */
.template-search main .section{max-width:1440px}
.template-search main form[role=search]{max-width:720px!important;margin-inline:auto!important}
.template-search main form[role=search] input{background:#fff!important;border-radius:12px 0 0 12px!important;box-shadow:0 6px 22px rgba(0,0,0,.05)}
.template-search main form[role=search] button{background:#7D39EB!important;color:#fff!important;border-radius:0 12px 12px 0!important;font-weight:700}
.template-search .product-grid{margin-top:28px}

/* Content pages: About, policies, FAQ and editorial */
.template-page main .section{max-width:920px!important}
.template-page main .section>h1{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:28px}
.template-page main .section>div{font-size:1rem;line-height:1.85;color:#57505f}
.template-page main .section>div h2{margin:40px 0 14px;color:#17131f}
.template-page main .section>div h3{margin:28px 0 10px;color:#17131f}
.template-page main .section>div a{color:#7D39EB;text-decoration:underline;text-underline-offset:3px}

/* Account / auth */
.template-customers-account main .section,.template-customers-addresses main .section,
.template-customers-register main .section,.template-customers-login main .section,
.template-customers-order main .section{max-width:980px;margin-inline:auto}
.template-customers-account main .section,.template-customers-addresses main .section{background:#fff}
.template-customers-account main .section a:not(.btn),.template-customers-addresses main .section a:not(.btn){color:#7D39EB}
.template-customers-login main form,.template-customers-register main form{max-width:520px;margin-inline:auto}
.template-customers-login input,.template-customers-register input,.template-customers-addresses input,.template-customers-addresses select,
.template-customers-login select,.template-customers-register select{min-height:50px;border:1px solid var(--color-border);border-radius:10px;padding:0 14px;background:#fff}
.template-customers-login input:focus,.template-customers-register input:focus,.template-customers-addresses input:focus{border-color:#7D39EB;box-shadow:0 0 0 3px rgba(125,57,235,.10);outline:none}

/* Order / address tables */
.template-customers-order table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--color-border);border-radius:14px;overflow:hidden}
.template-customers-order th,.template-customers-order td{padding:14px;border-bottom:1px solid var(--color-border);text-align:left}
.template-customers-order th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;background:#faf9fc}

/* Cart */
.cart-page-item__qty{display:flex;align-items:center}
.cart-page-item__qty input{outline:none}
.cart-page-item__qty input:focus{border-color:#7D39EB;box-shadow:0 0 0 3px rgba(125,57,235,.10)}
.cart-summary-card{box-shadow:var(--shadow-card)}
.cart-summary-card__checkout{background:#7D39EB!important}
.cart-summary-card__checkout:hover{background:#6926d0!important}

/* Wishlist / list collections */
.template-page-wishlist .product-grid,.template-list-collections .collection-list{gap:20px}
.template-list-collections .collection-card{border-radius:16px;overflow:hidden;box-shadow:var(--shadow-card)}

/* 404 */
.template-404 main .container{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.template-404 main .container h1{font-size:clamp(4rem,13vw,9rem);line-height:.9;color:#7D39EB;font-weight:800;letter-spacing:-.07em}
.template-404 main .container p{max-width:520px;text-align:center}

/* Gift card / password */
.template-gift-card main,.template-password main{text-align:center}
.template-gift-card input,.template-password input{min-height:50px;border:1px solid var(--color-border);border-radius:10px;padding:0 14px}

/* Forms */
input,select,textarea{transition:border-color .18s ease,box-shadow .18s ease}
input:focus,select:focus,textarea:focus{border-color:#7D39EB!important;box-shadow:0 0 0 3px rgba(125,57,235,.10);outline:none}

/* Bottom navigation */
.bottom-nav{border-top:1px solid var(--color-border);box-shadow:0 -8px 25px rgba(0,0,0,.06);background:rgba(255,255,255,.96);backdrop-filter:blur(14px)}
.bottom-nav a.is-active,.bottom-nav button.is-active{color:#7D39EB}

/* Floating back to top */
.hepra-back-top{position:fixed;right:18px;bottom:86px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#7D39EB;color:#fff;box-shadow:var(--shadow-brand);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s ease;z-index:90}
.hepra-back-top.is-visible{opacity:1;visibility:visible;transform:none}

/* Loading state */
.hepra-page-loading{cursor:progress!important}

@media(max-width:767px){
  .container{padding-inline:16px}
  .section{padding-block:44px}
  .btn{min-height:48px}
  .product-card{border-radius:12px}
  .product-card:hover{transform:none;box-shadow:none}
  .template-search main form[role=search]{padding-inline:0}
  .template-page main .section>div{font-size:.94rem}
  .template-customers-order table{display:block;overflow-x:auto;white-space:nowrap}
  .hepra-back-top{bottom:76px;right:14px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}

.hepra-qty{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:10px;overflow:hidden;background:#fff;min-height:44px}
.hepra-qty__btn{width:38px;height:42px;display:grid;place-items:center;color:#17131f;font-size:18px;line-height:1}
.hepra-qty__btn:hover{background:rgba(125,57,235,.07);color:#7D39EB}
.hepra-qty input[type=number]{width:48px!important;min-height:42px!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:6px 4px!important;text-align:center}
.hepra-qty input[type=number]::-webkit-inner-spin-button,.hepra-qty input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.hepra-qty input[type=number]{-moz-appearance:textfield}

/* Additional template polish */
.auth-card{max-width:520px!important;margin:0 auto;padding:32px!important;border:1px solid var(--color-border);border-radius:18px!important;box-shadow:var(--shadow-card);background:#fff}
.auth-card__title{font-size:clamp(1.8rem,5vw,2.5rem)!important;margin-bottom:24px}
.auth-form{display:grid;gap:16px}
.auth-form__field{display:grid;gap:7px}
.auth-form__field label{font-size:.78rem;font-weight:700}
.auth-form__field input{width:100%;min-height:50px;border:1px solid var(--color-border);border-radius:10px;padding:0 14px}
.auth-form__footer{margin-top:20px;text-align:center}
.auth-form__link{color:#7D39EB;text-decoration:underline;text-underline-offset:3px}
.auth-form__errors{padding:12px;border-radius:10px;background:#fff1f1;color:#a11;border:1px solid #f2cccc;font-size:.85rem}
.template-list-collections .section-header{margin-bottom:28px}
.template-list-collections .section-header__title{font-size:clamp(2rem,5vw,3.5rem);letter-spacing:-.04em}
.template-list-collections .category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.template-list-collections .category-card{aspect-ratio:4/5}
.footer .body-sm,.footer .footer__bottom p{color:rgba(255,255,255,.65)!important}
.footer .header__logo-text{color:#fff}
.footer .header__icon-btn{color:#fff}
@media(max-width:900px){.template-list-collections .category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.auth-card{padding:22px!important;border-radius:14px!important}.template-list-collections .category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}


/* HEPRA MART Premium Mobile Bottom Navigation v3.2.0 */
.hm-bottom-nav{
  --hm-nav-bg: rgba(255,255,255,.94);
  --hm-nav-text: #6b6b73;
  --hm-nav-active: #7D39EB;
  --hm-nav-accent: #C6FF33;
  --hm-nav-border: rgba(18,18,24,.09);
  --hm-nav-shadow: 0 -10px 30px rgba(18,18,24,.08);
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:1000;
  display:none;
  grid-template-columns:repeat(4,minmax(0,1fr));
  min-height:var(--hm-nav-height);
  padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));
  background:var(--hm-nav-bg);
  border-top:1px solid var(--hm-nav-border);
  box-shadow:var(--hm-nav-shadow);
  -webkit-backdrop-filter:blur(var(--hm-nav-blur)) saturate(140%);
  backdrop-filter:blur(var(--hm-nav-blur)) saturate(140%);
}
.hm-bottom-nav__item{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  font:inherit;
  cursor:pointer;
  text-decoration:none;
  position:relative;
  min-width:0;
  min-height:52px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  border-radius:16px;
  color:var(--hm-nav-text);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
  transition:color .2s ease,transform .15s ease,background .2s ease;
}
.hm-bottom-nav__item:active{transform:scale(.96)}
.hm-bottom-nav__item:focus-visible{outline:2px solid var(--hm-nav-active);outline-offset:2px}
.hm-bottom-nav__item.is-active{
  color:var(--hm-nav-active);
  background:color-mix(in srgb,var(--hm-nav-active) 9%,transparent);
}
.hm-bottom-nav__item.is-active::before{
  content:"";
  position:absolute;
  top:2px;
  width:24px;
  height:3px;
  border-radius:999px;
  background:var(--hm-nav-accent);
}
.hm-bottom-nav__icon{width:24px;height:24px;display:grid;place-items:center}
.hm-bottom-nav__icon svg{width:23px;height:23px;display:block}
.hm-bottom-nav__label{font-size:11px;font-weight:700;line-height:1;letter-spacing:.01em;white-space:nowrap}
.hm-bottom-nav__badge{
  position:absolute;
  top:3px;
  right:calc(50% - 25px);
  min-width:17px;height:17px;
  padding:0 4px;
  display:grid;place-items:center;
  border-radius:999px;
  background:var(--hm-nav-badge-bg, var(--hm-nav-active));
  color:var(--hm-nav-badge-text, #fff);
  border:2px solid #fff;
  font-size:9px;
  font-weight:800;
  line-height:1;
}
@media (max-width:749px){
  .hm-bottom-nav{display:grid}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
}
@media (min-width:750px){
  .hm-bottom-nav{display:none!important}
}
@media (prefers-reduced-motion:reduce){
  .hm-bottom-nav__item{transition:none}
}


/* ---------- HEPRA MART v3.3 Header / Search ---------- */
.header { background: var(--header-bg, var(--color-bg)); border-bottom-color: var(--header-border, transparent); color: var(--header-text, var(--color-text)); }
.header__inner { min-height: var(--header-height, 68px); }
.header__logo img { max-height: calc(var(--header-height, 68px) - 22px); }
.header__icon-btn { color: var(--header-text, var(--color-text)); }
.header__icon-btn .icon { width: var(--header-icon-size, 22px); height: var(--header-icon-size, 22px); }
.header__nav-item { position: static; }
.header__chevron { display:inline-flex; margin-left:4px; vertical-align:middle; }
.header__chevron .icon { width:13px; height:13px; }
.header__nav-item.has-mega:hover .mega-menu, .header__nav-item.has-mega:focus-within .mega-menu { opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto; }
.mega-menu { position:absolute; left:0; right:0; top:100%; background:var(--color-bg); border-top:1px solid var(--header-border); border-bottom:1px solid var(--color-border); box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(8px); transition:all .22s ease; pointer-events:none; }
.mega-menu__inner { padding-top:28px; padding-bottom:32px; }
.mega-menu__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.mega-menu__group { min-width:0; }
.mega-menu__title { font-weight:700; display:block; margin-bottom:12px; color:var(--color-text); }
.mega-menu__links { display:grid; gap:9px; }
.mega-menu__links a { color:var(--color-text-secondary); font-size:.85rem; }
.mega-menu__links a:hover { color:var(--color-accent); }
.header.is-transparent-home { background:transparent; border-bottom-color:transparent; position:absolute; left:0; right:0; top:var(--announcement-height,36px); }
.header.is-transparent-home .header__link,.header.is-transparent-home .header__icon-btn,.header.is-transparent-home .header__logo-text { color:#fff; }
.header.is-transparent-home.is-scrolled { background:var(--header-bg); position:sticky; top:0; border-bottom-color:var(--header-border); }
.header.is-transparent-home.is-scrolled .header__link,.header.is-transparent-home.is-scrolled .header__icon-btn,.header.is-transparent-home.is-scrolled .header__logo-text { color:var(--header-text); }
.header__mini-badge { position:absolute; top:4px; right:3px; min-width:15px; height:15px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--color-accent); color:#fff; font-size:9px; font-weight:700; }
.announcement { height:var(--announcement-height,36px); }
.announcement--hide-mobile { display:block; } .announcement--hide-desktop { display:block; }
.announcement__close { position:absolute; z-index:2; right:12px; top:50%; transform:translateY(-50%); width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:inherit; }
.announcement__close .icon { width:14px;height:14px; }
.announcement--marquee .announcement__track { width:max-content; min-width:100%; animation:hm-marquee 22s linear infinite; }
.announcement--marquee .announcement__item { flex:0 0 auto; min-width:auto; padding-inline:40px; }
@keyframes hm-marquee { from{transform:translateX(0)} to{transform:translateX(-25%)} }
.search-overlay__backdrop { cursor:pointer; }
.search-overlay__body { min-height:220px; }
.search-overlay__input-wrap { border:1px solid var(--color-border); background:var(--color-soft-bg); }
.search-overlay__icon { display:flex; color:var(--color-text-secondary); }
.search-discovery { margin-bottom:24px; }
.search-chips { display:flex; flex-wrap:wrap; gap:8px; }
.search-chip { border:1px solid var(--color-border); background:var(--color-bg); border-radius:999px; padding:9px 13px; font-size:.78rem; transition:.2s; }
.search-chip:hover { border-color:var(--color-accent); color:var(--color-accent); transform:translateY(-1px); }
.search-result-item { display:grid; grid-template-columns:58px 1fr; gap:13px; align-items:center; padding:10px 8px; border-radius:10px; }
.search-result-item:hover { background:var(--color-soft-bg); }
.search-result-item__img { width:58px;height:70px;background:var(--color-soft-bg);border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center; }
.search-result-item__img img { width:100%;height:100%;object-fit:cover; }
.search-result-item__title { font-size:.9rem;font-weight:600; }
.search-result-item__price { font-size:.8rem;color:var(--color-text-secondary);margin-top:4px; }
.mobile-nav__search { padding:14px 20px; border-bottom:1px solid var(--color-border); }
.mobile-nav__search button { width:100%; height:46px; display:flex; align-items:center; gap:10px; padding:0 14px; border:1px solid var(--color-border); border-radius:10px; background:var(--color-soft-bg); color:var(--color-text-secondary); }
.mobile-nav__item { border-bottom:1px solid var(--color-border); }
.mobile-nav__link { display:flex; justify-content:space-between; align-items:center; }
.mobile-nav__link .icon { width:16px;height:16px; transition:transform .2s; }
.mobile-nav__sub { display:none; padding:0 20px 10px 34px; }
.mobile-nav__item.is-expanded .mobile-nav__sub { display:grid; gap:2px; }
.mobile-nav__item.is-expanded .mobile-nav__link .icon { transform:rotate(180deg); }
.mobile-nav__sub a { padding:10px 0; color:var(--color-text-secondary); font-size:.88rem; }
@media (max-width: 767px) { .announcement--hide-mobile { display:none; } .header__nav { display:none; } }
@media (min-width: 768px) { .announcement--hide-desktop { display:none; } }
@media (max-width: 1023px) { .mega-menu { display:none; } }
@media (prefers-reduced-motion:reduce) { .announcement--marquee .announcement__track { animation:none; } }


/* ---------- HEPRA MART v3.4 Product Card + Collection UX ---------- */
.product-card { min-width:0; }
.product-card__media { border:1px solid rgba(0,0,0,.06); box-shadow:0 1px 0 rgba(0,0,0,.02); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.product-card:hover .product-card__media { transform:translateY(-2px); box-shadow:0 14px 34px rgba(30,18,55,.10); border-color:rgba(125,57,235,.16); }
.product-card__img { object-fit:cover; }
.product-card__actions { right:10px; top:10px; gap:8px; }
.product-card__action-btn { width:40px; height:40px; border:1px solid rgba(0,0,0,.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.product-card__action-btn:active { transform:scale(.94); }
.product-card__quick-add { left:10px; right:10px; bottom:10px; }
.product-card__quick-add-btn { min-height:42px; border-radius:10px; box-shadow:0 8px 22px rgba(125,57,235,.22); }
.product-card__badges { top:10px; left:10px; gap:6px; }
.product-card .badge { border-radius:7px; padding:5px 8px; font-size:10px; font-weight:800; letter-spacing:.05em; box-shadow:0 3px 10px rgba(0,0,0,.08); }
.product-card .badge--sale { background:#7D39EB; color:#fff; }
.product-card .badge--new { background:#C6FF33; color:#171717; }
.product-card .badge--soldout { background:#171717; color:#fff; }
.product-card__info { padding:0 2px; gap:4px; }
.product-card__vendor { font-size:10px; line-height:1.2; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--color-text-secondary); }
.product-card__title { font-size:.9rem; font-weight:600; line-height:1.35; }
.product-card__title a { transition:color .18s ease; }
.product-card__title a:hover { color:#7D39EB; }
.product-card__meta { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.product-card__discount { font-size:10px; font-weight:800; color:#16803c; white-space:nowrap; }
.collection-results-bar { display:flex; align-items:center; gap:8px; padding:10px 0 14px; font-size:11px; color:var(--color-text-secondary); text-transform:uppercase; letter-spacing:.07em; }
.collection-results-bar__dot { color:#7D39EB; }
@media (max-width:767px) {
  .product-grid { gap:18px 10px; }
  .product-card__media { margin-bottom:8px; border-radius:12px; }
  .product-card__actions { top:8px; right:8px; }
  .product-card__action-btn { width:34px; height:34px; }
  .product-card__quick-add { position:absolute; left:8px; right:8px; bottom:8px; margin:0; opacity:1; transform:none; }
  .product-card__quick-add-btn { min-height:38px; font-size:11px; border-radius:9px; }
  .product-card__vendor { font-size:9px; }
  .product-card__title { font-size:.82rem; }
  .product-card__meta { align-items:flex-start; flex-direction:column; gap:2px; }
  .collection-results-bar { padding-bottom:10px; }
}
@media (hover:none) {
  .product-card:hover .product-card__media { transform:none; box-shadow:none; }
}
@media (prefers-reduced-motion:reduce) {
  .product-card__media,.product-card__img,.product-card__action-btn { transition:none !important; }
}

@media (min-width:1024px){.product-grid--desktop-3{grid-template-columns:repeat(3,1fr)}.product-grid--desktop-4{grid-template-columns:repeat(4,1fr)}.product-grid--desktop-5{grid-template-columns:repeat(5,1fr)}}

/* =====================================================
   HEPRA MART v3.5 — CART + CHECKOUT UX
   ===================================================== */
.cart-drawer__heading{display:flex;flex-direction:column;gap:2px;min-width:0}
.cart-drawer__eyebrow{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--lux-violet,#7D39EB)}
.cart-drawer__header{padding:18px 20px}
.cart-drawer__body{padding:8px 20px 18px}
.cart-item{grid-template-columns:84px 1fr;gap:14px;padding:16px 0}
.cart-item__img{border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 16px rgba(17,17,17,.04)}
.cart-item__img img{object-fit:contain}
.cart-item__title{font-weight:650;line-height:1.35}
.cart-item__qty{border:1px solid var(--color-border);border-radius:10px;padding:3px 5px;width:max-content;background:#fff}
.cart-item__qty .quantity-selector__btn{width:30px;height:30px;border:0;background:transparent;border-radius:7px;display:grid;place-items:center}
.cart-item__qty .quantity-selector__btn:hover{background:rgba(125,57,235,.07)}
.cart-drawer__footer{padding:14px 20px calc(18px + env(safe-area-inset-bottom));gap:10px;background:linear-gradient(180deg,#fff,#fcfbff);box-shadow:0 -10px 30px rgba(17,17,17,.05)}
.cart-drawer__prepaid{display:flex;gap:10px;align-items:center;padding:11px 12px;border:1px solid rgba(125,57,235,.16);border-radius:12px;background:rgba(125,57,235,.055)}
.cart-drawer__prepaid-icon{width:30px;height:30px;border-radius:9px;background:#7D39EB;color:#fff;display:grid;place-items:center;flex:none}
.cart-drawer__prepaid strong,.cart-drawer__prepaid span{display:block}
.cart-drawer__prepaid strong{font-size:.76rem}
.cart-drawer__prepaid span{font-size:.65rem;color:var(--color-text-secondary);margin-top:2px}
.cart-drawer__microcopy{font-size:.64rem;color:var(--color-text-secondary);text-align:center;margin:0}
.cart-drawer__footer .btn--primary{min-height:50px;border-radius:12px;font-weight:800;box-shadow:0 8px 22px rgba(125,57,235,.2)}
.cart-drawer__footer .btn--secondary{min-height:44px;border-radius:11px}

.cart-summary-card__checkout{min-height:54px;border-radius:13px;box-shadow:0 10px 26px rgba(125,57,235,.18)}
.cart-summary-card__trust span{display:flex;align-items:center;gap:6px}
.cart-page-item{transition:transform .2s ease,box-shadow .2s ease}
.cart-page-item:hover{transform:translateY(-1px)}
.cart-page-item__qty{display:flex;align-items:center;border:1px solid var(--color-border);border-radius:10px;background:#fff;overflow:hidden}
.cart-page-item__qty input{border:0!important;width:56px!important;min-height:42px!important}
.cart-page__note textarea:focus{border-color:#7D39EB;box-shadow:0 0 0 3px rgba(125,57,235,.1);outline:none}
@media(max-width:640px){
 .cart-drawer__panel{width:min(100vw,460px)}
 .cart-drawer__header{padding-top:16px}
 .cart-drawer__footer .btn--primary{min-height:52px}
 .cart-page-item:hover{transform:none}
 .cart-summary-card__checkout{min-height:52px}
}


/* HEPRA MART v3.6.0 — premium product conversion UI */
.product-delivery-check{margin-top:16px;padding:14px;border:1px solid rgba(18,18,18,.1);border-radius:16px;background:linear-gradient(180deg,#fff,#faf9ff)}
.product-delivery-check__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.product-delivery-check__head strong{display:block;font-size:14px;font-weight:800}
.product-delivery-check__head span{display:block;margin-top:3px;font-size:12px;opacity:.65}
.product-delivery-check__form{display:grid;grid-template-columns:1fr auto;gap:8px}
.product-delivery-check__form input{width:100%;height:44px;border:1px solid rgba(18,18,18,.14);border-radius:11px;padding:0 13px;font:inherit;outline:none;background:#fff}
.product-delivery-check__form input:focus{border-color:#7D39EB;box-shadow:0 0 0 3px rgba(125,57,235,.12)}
.product-delivery-check__message{margin:8px 0 0;font-size:12px;line-height:1.4;min-height:17px}
.product-delivery-check__message.is-error{color:#b42318}
.product-buy-now{margin-top:10px}
.product-buy-now .btn{border-width:1.5px}
@media(max-width:767px){
  .product-delivery-check{border-radius:14px}
  .product-buy-now{margin-top:8px}
  .product-buy-now .btn{min-height:50px}
}

/* ---------- Product purchase order/alignment v3.9.1 ---------- */
.product-form__row--purchase{display:block;margin:14px 0 10px}
.quantity-wrap{width:100%}
.quantity-selector{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;overflow:hidden}
.quantity-selector__btn{width:auto}
.quantity-selector__input{width:100%;min-width:0}
.product-form > .btn--full{width:100%;display:flex}
.product-buy-now{margin-top:10px}
.product-buy-now .btn{width:100%;display:flex}
.product-info__wishlist{width:100%;display:flex;margin-top:10px}
.product-delivery-check{width:100%;box-sizing:border-box;margin-top:14px}
.product-delivery-check__form{align-items:center}
@media(max-width:767px){
  .product-form__row--purchase{margin:12px 0 10px}
  .quantity-selector{grid-template-columns:54px minmax(0,1fr) 54px;height:50px}
  .product-form > .btn--full,.product-buy-now .btn,.product-info__wishlist{min-height:52px}
  .product-delivery-check{margin-top:14px}
}



/* HEPRA MART v3.7.0 — homepage conversion layer */
.hm-conversion-bar{background:#fff;border-top:1px solid rgba(18,18,18,.07);border-bottom:1px solid rgba(18,18,18,.07)}
.hm-conversion-bar__inner{display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch}
.hm-conversion-bar__item{display:flex;align-items:center;gap:11px;padding:16px 18px;border-right:1px solid rgba(18,18,18,.07);min-width:0}
.hm-conversion-bar__item:last-child{border-right:0}
.hm-conversion-bar__icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#7D39EB;color:#fff;font-weight:900;flex:none;box-shadow:0 6px 16px rgba(125,57,235,.18)}
.hm-conversion-bar__item strong{display:block;font-size:10px;letter-spacing:.08em;font-weight:850;line-height:1.2}
.hm-conversion-bar__item small{display:block;margin-top:4px;color:var(--color-text-secondary);font-size:11px;line-height:1.25}
@media(max-width:767px){
 .hm-conversion-bar__inner{grid-template-columns:repeat(2,1fr)}
 .hm-conversion-bar__item{padding:13px 11px;gap:8px}
 .hm-conversion-bar__item:nth-child(2){border-right:0}
 .hm-conversion-bar__item:nth-child(-n+2){border-bottom:1px solid rgba(18,18,18,.07)}
 .hm-conversion-bar__icon{width:30px;height:30px;border-radius:9px;font-size:12px}
 .hm-conversion-bar__item strong{font-size:9px}
 .hm-conversion-bar__item small{font-size:10px}
}

.hero__microtrust{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.hero__microtrust span{font-size:9px;letter-spacing:.1em;font-weight:800;padding:7px 9px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.09);backdrop-filter:blur(8px)}
@media(max-width:767px){.hero__microtrust{gap:5px;margin-bottom:12px}.hero__microtrust span{font-size:8px;padding:6px 7px}}

/* HEPRA MART v3.8.0 — Mobile UX 2.0 */
.hm-mobile-shop-dock{display:none}
.hm-mobile-sort-sheet{display:none}
@media(max-width:749px){
  .hm-mobile-shop-dock{
    position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));
    z-index:990;display:flex;align-items:center;justify-content:space-evenly;
    min-height:52px;padding:5px 8px;border:1px solid rgba(18,18,24,.10);border-radius:18px;
    background:rgba(255,255,255,.96);box-shadow:0 12px 35px rgba(18,18,24,.14);
    -webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  }
  .hm-mobile-shop-dock__btn{position:relative;flex:1;height:42px;border:0;background:transparent;color:var(--color-text);display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700;border-radius:13px;cursor:pointer}
  .hm-mobile-shop-dock__btn:active{transform:scale(.97);background:var(--color-soft-bg)}
  .hm-mobile-shop-dock__btn .icon{width:18px;height:18px}
  .hm-mobile-shop-dock__btn b{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:10px}
  .hm-mobile-shop-dock__divider{width:1px;height:24px;background:var(--color-border)}
  .hm-mobile-sort-sheet.is-open{display:block;position:fixed;inset:0;z-index:1200}
  .hm-mobile-sort-sheet__overlay{position:absolute;inset:0;background:rgba(0,0,0,.38)}
  .hm-mobile-sort-sheet__panel{position:absolute;left:0;right:0;bottom:0;background:var(--color-bg);border-radius:22px 22px 0 0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -15px 45px rgba(0,0,0,.18);max-height:78dvh;overflow:auto}
  .hm-mobile-sort-sheet__head{height:62px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-border);font-size:16px}
  .hm-mobile-sort-sheet__options{padding:8px 12px}
  .hm-mobile-sort-option{width:100%;min-height:52px;border:0;border-bottom:1px solid var(--color-border);background:transparent;display:flex;align-items:center;justify-content:space-between;padding:0 10px;text-align:left;color:var(--color-text);font-size:14px;font-weight:600}
  .hm-mobile-sort-option__check{opacity:0;color:var(--color-primary);font-size:18px}
  .hm-mobile-sort-option.is-selected{color:var(--color-primary)}
  .hm-mobile-sort-option.is-selected .hm-mobile-sort-option__check{opacity:1}
  .collection-toolbar{margin-bottom:12px}
  .collection-toolbar__actions .collection-sort{display:none}
  .collection-results-bar{margin-bottom:12px}
  .product-grid{padding-bottom:72px}
}
@media(min-width:750px){.hm-mobile-shop-dock,.hm-mobile-sort-sheet{display:none!important}}
@media(prefers-reduced-motion:reduce){.hm-mobile-shop-dock__btn{transition:none}}

/* ---------- v3.9.0 Smart Cart Upsell ---------- */
.hm39-upsell{padding:14px 20px 4px;border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,rgba(125,57,235,.045),transparent)}
.hm39-upsell__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}
.hm39-upsell__eyebrow{display:block;font-size:9px;letter-spacing:.12em;font-weight:800;color:#7D39EB;margin-bottom:3px}
.hm39-upsell__head h3{margin:0;font-size:14px;line-height:1.2}
.hm39-upsell__count{font-size:10px;color:var(--color-text-secondary);white-space:nowrap}
.hm39-upsell__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hm39-upsell-card{min-width:0;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg);overflow:hidden}
.hm39-upsell-card__image{display:block;aspect-ratio:1/1;background:var(--color-soft-bg);overflow:hidden}
.hm39-upsell-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.hm39-upsell-card:hover .hm39-upsell-card__image img{transform:scale(1.035)}
.hm39-upsell-card__info{padding:8px}
.hm39-upsell-card__title{display:block;font-size:11px;line-height:1.35;font-weight:600;min-height:30px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hm39-upsell-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:7px}
.hm39-upsell-card__bottom .price{font-size:12px;font-weight:700}
.hm39-upsell-card__add{width:28px;height:28px;border:0;border-radius:8px;background:#7D39EB;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:transform .18s ease,opacity .18s ease}
.hm39-upsell-card__add:active{transform:scale(.92)}
.hm39-upsell-card__add[disabled]{opacity:.55;cursor:wait}
@media (min-width:700px){.hm39-upsell{padding-inline:20px}.hm39-upsell__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hm39-upsell-card__title{font-size:12px}}
@media (prefers-reduced-motion:reduce){.hm39-upsell-card__image img,.hm39-upsell-card__add{transition:none}}

/* ---------- v3.9.2 Upgraded pages ---------- */
.hm-page {
  padding-block: clamp(32px, 5vw, 64px) clamp(48px, 8vw, 96px);
}
.hm-page--centered {
  min-height: min(70vh, 640px);
  display: flex;
  align-items: center;
}
.hm-page--auth {
  min-height: min(70vh, 720px);
  display: flex;
  align-items: center;
  background: linear-gradient(180deg, rgba(125, 57, 235, 0.04), transparent 40%);
}
.hm-page__narrow { max-width: 760px; }
.hm-page__medium { max-width: 980px; }
.hm-page__header { margin-bottom: clamp(24px, 4vw, 40px); }
.hm-page__header--split {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.hm-page__eyebrow {
  color: #7D39EB;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.hm-page__title {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0;
}
.hm-page__subtext {
  margin-top: 10px;
  color: var(--color-text-secondary);
  font-size: 0.9rem;
}
.hm-page__back {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hm-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.hm-page__content {
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-text);
}
.hm-page__content h2,
.hm-page__content h3 { margin: 1.5em 0 0.6em; }
.hm-page__content p { margin-bottom: 1em; }
.hm-page__content ul,
.hm-page__content ol { padding-left: 1.25em; margin-bottom: 1em; }

/* Empty states */
.hm-empty {
  text-align: center;
  padding: clamp(40px, 8vw, 72px) 20px;
  border: 1px dashed var(--color-border);
  border-radius: 16px;
  background: var(--color-soft-bg);
}
.hm-empty--compact {
  padding: 36px 20px;
  border-style: solid;
  background: transparent;
}
.hm-empty__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--color-border);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #7D39EB;
}
.hm-empty__icon .icon { width: 24px; height: 24px; }
.hm-empty__title {
  font-size: 1.25rem;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
}
.hm-empty__text {
  color: var(--color-text-secondary);
  max-width: 420px;
  margin: 0 auto 20px;
  font-size: 0.925rem;
}
.hm-empty__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 16px;
}
.hm-empty__links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  font-size: 0.85rem;
}
.hm-empty__links a {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: var(--color-text-secondary);
}

/* Auth forms */
.hm-page--auth .auth-card {
  width: min(100%, 440px);
  margin-inline: auto;
  padding: 32px 28px;
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow-md);
}
.auth-card__title {
  font-size: 1.5rem;
  margin: 0 0 8px;
  letter-spacing: -0.02em;
}
.auth-card__subtitle {
  color: var(--color-text-secondary);
  font-size: 0.9rem;
  margin-bottom: 24px;
  line-height: 1.5;
}
.auth-card__footer {
  margin-top: 20px;
  text-align: center;
  font-size: 0.875rem;
  color: var(--color-text-secondary);
}
.auth-card__footer a {
  color: var(--color-text);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.auth-form { display: grid; gap: 14px; }
.auth-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.auth-form__field { display: grid; gap: 6px; }
.auth-form__field label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
}
.auth-form__label-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.auth-form__link {
  font-size: 0.75rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.auth-form__field input[type="text"],
.auth-form__field input[type="email"],
.auth-form__field input[type="password"],
.auth-form__field input[type="tel"],
.auth-form__field input[type="search"],
.auth-form__field select,
.hm-search-form input[type="search"] {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  color: var(--color-text);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.auth-form__field input:focus,
.hm-search-form input:focus {
  outline: none;
  border-color: #7D39EB;
  box-shadow: 0 0 0 3px rgba(125, 57, 235, 0.15);
}
.auth-form__field--check label {
  display: flex;
  align-items: center;
  gap: 8px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
}
.form-message {
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 0.875rem;
  line-height: 1.4;
}
.form-message--error {
  background: #FEF3F2;
  color: #B42318;
  border: 1px solid #FECDCA;
}
.form-message--success {
  background: #ECFDF3;
  color: #027A48;
  border: 1px solid #A6F4C5;
}

/* Account / order panels */
.hm-account-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.8fr);
  gap: 24px;
  align-items: start;
}
.hm-panel {
  border: 1px solid var(--color-border);
  border-radius: 16px;
  background: #fff;
  padding: 20px;
}
.hm-panel + .hm-panel { margin-top: 16px; }
.hm-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.hm-panel__title {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.hm-panel__meta {
  font-size: 0.8rem;
  color: var(--color-text-secondary);
}
.hm-panel__link {
  display: inline-block;
  margin-top: 12px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.hm-order-list { display: grid; }
.hm-order-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border);
  text-decoration: none;
  color: inherit;
  transition: background var(--transition-fast);
}
.hm-order-row:last-child { border-bottom: 0; }
.hm-order-row:hover { background: var(--color-soft-bg); margin-inline: -8px; padding-inline: 8px; border-radius: 8px; }
.hm-order-row__main { display: grid; gap: 2px; min-width: 0; }
.hm-order-row__name { font-weight: 700; }
.hm-order-row__date { font-size: 0.8rem; color: var(--color-text-secondary); }
.hm-order-row__meta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.hm-order-row__total { font-weight: 700; }
.hm-account-links { display: grid; gap: 4px; }
.hm-account-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 10px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.9rem;
  transition: background var(--transition-fast);
}
.hm-account-links a:hover { background: var(--color-soft-bg); }

/* Addresses */
.hm-address-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}
.hm-address-card {
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 18px;
  background: #fff;
  display: grid;
  gap: 12px;
}
.hm-address-card__body { line-height: 1.6; font-size: 0.9rem; }
.hm-address-card__actions { display: flex; gap: 8px; }
.hm-panel--form { margin-top: 8px; }

/* Order detail */
.hm-order-detail {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.85fr);
  gap: 24px;
  align-items: start;
}
.hm-order-items { display: grid; }
.hm-order-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px 0;
  border-bottom: 1px solid var(--color-border);
}
.hm-order-item:last-child { border-bottom: 0; }
.hm-order-item__media {
  width: 72px;
  aspect-ratio: 4/5;
  border-radius: 10px;
  overflow: hidden;
  background: var(--color-soft-bg);
}
.hm-order-item__media img { width: 100%; height: 100%; object-fit: cover; }
.hm-order-item__placeholder { width: 100%; height: 100%; background: var(--color-soft-bg); }
.hm-order-item__title { font-weight: 600; margin: 0 0 4px; }
.hm-order-item__price { font-weight: 700; white-space: nowrap; }
.hm-summary-rows { display: grid; gap: 10px; }
.hm-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.9rem;
}
.hm-summary-row--discount { color: var(--color-success); }
.hm-summary-row--total {
  margin-top: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
  font-weight: 800;
  font-size: 1rem;
}

/* Search */
.hm-search-form { max-width: 560px; }
.hm-search-form__field {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
}

/* Collections list page */
.category-grid--page {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.category-card__img--placeholder {
  width: 100%;
  aspect-ratio: 4/5;
  background: var(--color-soft-bg);
}
.category-card__count {
  display: block;
  margin-top: 4px;
  opacity: 0.85;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

@media (min-width: 768px) {
  .category-grid--page {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (min-width: 1024px) {
  .category-grid--page {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 899px) {
  .hm-account-grid,
  .hm-order-detail {
    grid-template-columns: 1fr;
  }
  .auth-form__row {
    grid-template-columns: 1fr;
  }
  .hm-order-item {
    grid-template-columns: 64px minmax(0, 1fr);
  }
  .hm-order-item__price {
    grid-column: 2;
  }
}
@media (max-width: 640px) {
  .hm-page--auth .auth-card {
    padding: 24px 18px;
    border-radius: 14px;
  }
  .hm-search-form__field {
    grid-template-columns: 1fr;
  }
}

/* ---------- v3.9.3 Wishlist page ---------- */
.hm-wishlist-status {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  color: var(--color-text-secondary);
  font-size: 0.9rem;
}
.hm-wishlist-status__spinner {
  width: 18px;
  height: 18px;
  border: 2px solid var(--color-border);
  border-top-color: #7D39EB;
  border-radius: 50%;
  animation: hm-spin 0.7s linear infinite;
}
@keyframes hm-spin { to { transform: rotate(360deg); } }
.hm-wishlist-card { position: relative; }
.hm-wishlist-card__remove {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: 1px solid var(--color-border);
  background: rgba(255,255,255,0.95);
  color: var(--color-text);
  font-size: 1.25rem;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-fast), background var(--transition-fast);
}
.hm-wishlist-card__remove:hover {
  background: #fff;
  transform: scale(1.05);
}
.hm-wishlist-card__actions {
  margin-top: 10px;
}
.hm-wishlist-setup {
  margin-top: 28px;
  padding: 14px 16px;
  border-radius: 12px;
  background: var(--color-soft-bg);
  color: var(--color-text-secondary);
  line-height: 1.5;
}
.hm-wishlist-setup code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.85em;
  background: #fff;
  border: 1px solid var(--color-border);
  border-radius: 4px;
  padding: 1px 5px;
}
@media (prefers-reduced-motion: reduce) {
  .hm-wishlist-status__spinner { animation: none; }
}

/* ---------- v3.9.5 Product page fixes ---------- */

/* Hide sticky ATC completely */
.sticky-atc,
[data-sticky-atc] {
  display: none !important;
}

/* Quantity selector alignment */
.product-form__row--purchase {
  display: block !important;
  margin: 16px 0 12px !important;
}
.quantity-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  width: auto;
  max-width: 100%;
}
.quantity-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin: 0;
}
.quantity-selector {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between;
  height: 48px;
  width: 140px;
  border: 1px solid var(--color-border);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.quantity-selector__btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 48px;
  min-height: 48px;
  border: 0;
  background: transparent;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1;
  color: var(--color-text);
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
}
.quantity-selector__btn:hover {
  background: var(--color-soft-bg);
}
.quantity-selector__input,
.quantity-selector input[type="number"] {
  flex: 1 1 auto;
  width: 52px !important;
  height: 48px !important;
  min-height: 48px;
  border: 0 !important;
  border-left: 1px solid var(--color-border) !important;
  border-right: 1px solid var(--color-border) !important;
  border-radius: 0 !important;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
  background: #fff;
  -moz-appearance: textfield;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}
.quantity-selector__input::-webkit-outer-spin-button,
.quantity-selector__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Prevent double qty UI from enhancer */
.quantity-selector .hepra-qty,
.quantity-wrap .hepra-qty {
  display: none !important;
}

/* Gallery */
.product-gallery {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.product-gallery__main {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 16px;
  overflow: hidden;
  background: var(--color-soft-bg);
}
.product-gallery__main img,
.product-gallery__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.product-gallery__thumbs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.product-gallery__thumb {
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 10px;
  overflow: hidden;
  background: var(--color-soft-bg);
  cursor: pointer;
  scroll-snap-align: start;
  opacity: 0.75;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}
.product-gallery__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.product-gallery__thumb.is-active {
  border-color: #7D39EB;
  opacity: 1;
}
.product-gallery__thumb:hover {
  opacity: 1;
}
.product-gallery__counter {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 1;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,0.55);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
}

/* Wishlist button active state on product page */
.product-info__wishlist {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.product-info__wishlist.is-wishlisted,
.product-info__wishlist.is-active {
  border-color: #7D39EB;
  color: #7D39EB;
}
.product-info__wishlist.is-wishlisted .icon,
.product-info__wishlist.is-active .icon {
  color: #7D39EB;
  fill: currentColor;
}
.product-card__action-btn.is-wishlisted,
.product-card__action-btn.is-active {
  color: #7D39EB;
}
.product-card__action-btn.is-wishlisted .icon,
.product-card__action-btn.is-active .icon {
  fill: currentColor;
}

@media (min-width: 768px) {
  .product-gallery__thumb {
    width: 80px;
    height: 80px;
  }
}

.hm-blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.hm-blog-card{border:1px solid var(--color-border);border-radius:16px;overflow:hidden;background:#fff}
.hm-blog-card img{width:100%;height:180px;object-fit:cover}
.hm-blog-card h2{font-size:1.05rem;margin:12px 14px 6px}
.hm-blog-card p{margin:0 14px 16px;color:var(--color-text-secondary)}

/* ---------- v3.9.7 Header color sync + logo ---------- */
.header {
  background-color: var(--header-bg, #FFFFFF) !important;
  color: var(--header-text, #111111) !important;
  border-bottom: 1px solid var(--header-border, #EAEAEA) !important;
  height: auto;
  min-height: var(--header-height, 68px);
}
.header .header__inner {
  height: var(--header-height, 68px);
  min-height: var(--header-height, 68px);
}
.header .header__logo-text,
.header .header__link,
.header .header__icon-btn,
.header .header__chevron,
.header .header__actions {
  color: var(--header-text, #111111) !important;
}
.header .header__icon-btn .icon,
.header .header__link .icon {
  stroke: currentColor;
  color: inherit;
}
.header .header__link:hover,
.header .header__icon-btn:hover {
  opacity: 0.75;
}
.header .header__link::after {
  background: var(--header-text, #111111) !important;
}
.header .header__cart-count,
.header .header__mini-badge {
  background: var(--header-text, #111111);
  color: var(--header-bg, #FFFFFF);
}
.header .header__logo img {
  display: block;
  object-fit: contain;
}
.header.is-transparent-home:not(.is-scrolled) {
  background-color: transparent !important;
  border-bottom-color: transparent !important;
}
.header.is-transparent-home:not(.is-scrolled) .header__logo-text,
.header.is-transparent-home:not(.is-scrolled) .header__link,
.header.is-transparent-home:not(.is-scrolled) .header__icon-btn {
  color: #FFFFFF !important;
}
.header.is-transparent-home.is-scrolled {
  background-color: var(--header-bg, #FFFFFF) !important;
  border-bottom-color: var(--header-border, #EAEAEA) !important;
}
.mobile-nav__panel {
  background: var(--header-bg, #FFFFFF);
  color: var(--header-text, #111111);
}
.mobile-nav__link,
.mobile-nav__header .header__logo-text,
.mobile-nav__header .header__icon-btn {
  color: inherit;
}

/* ---------- v3.9.8 Header extra colors ---------- */
.header .header__link:hover,
.header .header__icon-btn:hover {
  color: var(--header-hover, #7D39EB) !important;
  opacity: 1;
}
.header .header__link:hover::after {
  background: var(--header-hover, #7D39EB) !important;
}
.header .header__icon-btn:hover {
  background: var(--header-icon-hover-bg, #F5F5F5);
  border-radius: 8px;
}
.header .header__cart-count,
.header .header__mini-badge {
  background: var(--header-badge-bg, #111111) !important;
  color: var(--header-badge-text, #FFFFFF) !important;
}
.header.is-transparent-home:not(.is-scrolled) .header__logo-text,
.header.is-transparent-home:not(.is-scrolled) .header__link,
.header.is-transparent-home:not(.is-scrolled) .header__icon-btn {
  color: var(--header-transparent-text, #FFFFFF) !important;
}
.header.is-transparent-home:not(.is-scrolled) .header__link::after {
  background: var(--header-transparent-text, #FFFFFF) !important;
}


/* HEPRA MART v3.9.9 — final conflict-safe UI overrides */
.header {
  background: var(--header-bg, var(--color-bg)) !important;
  color: var(--header-text, var(--color-text)) !important;
  border-bottom-color: var(--header-border, var(--color-border)) !important;
}
.header__logo-text,
.header__link,
.header__icon-btn { color: var(--header-text, var(--color-text)) !important; }
.header__link:hover,
.header__link.is-active,
.header__icon-btn:hover { color: var(--header-hover, var(--color-primary)) !important; }
.header__link.is-active::after,
.header__link:hover::after { background: var(--header-hover, var(--color-primary)) !important; }
.header__cart-count { background: var(--header-badge-bg, var(--color-primary)) !important; color: var(--header-badge-text, #fff) !important; }
.header.is-transparent-home,
.header.is-transparent-home.is-scrolled { border-bottom-color: var(--header-border, transparent) !important; }
.header.is-transparent-home .header__link,
.header.is-transparent-home .header__icon-btn,
.header.is-transparent-home .header__logo-text { color: var(--header-transparent-text, #fff) !important; }
.header.is-transparent-home.is-scrolled .header__link,
.header.is-transparent-home.is-scrolled .header__icon-btn,
.header.is-transparent-home.is-scrolled .header__logo-text { color: var(--header-text, var(--color-text)) !important; }
.mobile-nav__panel { background: var(--header-bg, var(--color-bg)) !important; color: var(--header-text, var(--color-text)) !important; }
.mobile-nav__link { color: var(--header-text, var(--color-text)) !important; border-bottom-color: var(--header-border, var(--color-border)) !important; }
.mobile-nav__link:hover { color: var(--header-hover, var(--color-primary)) !important; }
.announcement { background: var(--announcement-bg, var(--color-primary)) !important; color: var(--announcement-text, #fff) !important; height: var(--announcement-height, 36px) !important; }
.btn--primary { background: var(--color-primary) !important; color: #fff !important; }
.btn--primary:hover { background: var(--color-accent) !important; }
.hm-bottom-nav { display: none; }
@media (max-width: 1023px) { .hm-bottom-nav { display: grid; } }
@media (prefers-reduced-motion: reduce) {
  .header, .product-card__media, .btn { transition: none !important; }
}

/* Product purchase stack: one control, equal-width actions, delivery last. */
.product-form__row--purchase { margin: 14px 0 12px !important; }
.quantity-wrap, .quantity-selector { width: 100% !important; }
.quantity-selector { display: grid !important; grid-template-columns: 54px minmax(0,1fr) 54px !important; min-height: 52px; overflow: hidden; border: 1px solid var(--color-border); border-radius: 12px; background: var(--color-bg); }
.quantity-selector__btn { width: auto !important; height: 100%; display: grid; place-items: center; border: 0; background: transparent; }
.quantity-selector__input { width: 100% !important; min-width: 0; height: 100%; border: 0 !important; text-align: center; background: transparent; }
.product-form > .btn--full, .product-buy-now .btn, .product-info__wishlist { width: 100% !important; min-height: 52px; box-sizing: border-box; }
.product-form > .btn--full { margin-top: 0 !important; }
.product-buy-now { width: 100%; margin: 10px 0 0 !important; }
.product-info__wishlist { margin: 10px 0 0 !important; justify-content: center; }
.product-delivery-check { width: 100% !important; margin: 14px 0 0 !important; box-sizing: border-box; }
.product-delivery-check__form { width: 100%; grid-template-columns: minmax(0,1fr) auto; }
.product-delivery-check__form input { min-width: 0; }
@media (max-width: 767px) {
  .product-form__row--purchase { margin: 12px 0 10px !important; }
  .quantity-selector { grid-template-columns: 52px minmax(0,1fr) 52px !important; min-height: 50px; }
  .product-form > .btn--full, .product-buy-now .btn, .product-info__wishlist { min-height: 52px; }
}

/* ---------- HEPRA MART v4.0 Conversion Engine ---------- */
.cart-drawer__savings{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid rgba(125,57,235,.14);background:rgba(125,57,235,.05);border-radius:10px;font-size:.82rem}
.cart-drawer__savings strong{color:#16803c;font-size:.9rem}
.cart-drawer__goal{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(198,255,51,.16),rgba(125,57,235,.05));border:1px solid rgba(125,57,235,.10)}
.cart-drawer__goal strong{font-size:.82rem}.cart-drawer__goal span{font-size:.72rem;color:var(--color-text-secondary);line-height:1.4}
@media(max-width:767px){.cart-drawer__savings,.cart-drawer__goal{font-size:.78rem}.cart-drawer__goal span{font-size:.7rem}}


/* =====================================================
   MOBILE NAV ALIGNMENT FIX — v4.0.1
   Keep menu labels aligned with the mobile search field.
   ===================================================== */
@media (max-width: 1023px) {
  .mobile-nav__links {
    padding-inline: 0;
  }

  .mobile-nav__link {
    width: 100%;
    box-sizing: border-box;
    padding: 16px 20px !important;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .mobile-nav__sub {
    padding-left: 34px;
    padding-right: 20px;
  }
}


/* FINAL PRODUCT WISHLIST ACTIVE STATE */
.product-info__wishlist.is-wishlisted,.product-info__wishlist.is-active{background:#7D39EB!important;border-color:#7D39EB!important;color:#fff!important;box-shadow:0 8px 20px rgba(125,57,235,.18)!important}
.product-info__wishlist.is-wishlisted .icon,.product-info__wishlist.is-active .icon{color:#fff!important;stroke:#fff!important;fill:none!important}
.product-info__wishlist.is-wishlisted .icon path,.product-info__wishlist.is-active .icon path{stroke:#fff!important}
.product-info__wishlist.is-wishlisted [data-wishlist-label],.product-info__wishlist.is-active [data-wishlist-label]{display:inline!important;color:#fff!important;opacity:1!important;visibility:visible!important;font-size:inherit!important;line-height:inherit!important}
.product-info__wishlist:not(.is-wishlisted):not(.is-active){background:#fff!important;color:#7D39EB!important;border-color:#7D39EB!important}
.product-info__wishlist:not(.is-wishlisted):not(.is-active) .icon{color:#7D39EB!important;stroke:#7D39EB!important}


/* HEPRA DESKTOP HEADER VISIBILITY — FINAL OVERRIDE */
@media (min-width:768px){
  .header .container > .header__inner,
  .header .header__inner{
    display:flex!important; flex-flow:row nowrap!important; align-items:center!important;
    justify-content:space-between!important; gap:clamp(12px,2vw,30px)!important;
    width:100%!important; min-height:var(--header-height,68px)!important; height:auto!important;
  }
  .header .header__menu-btn{display:none!important}
  .header .header__logo{
    display:flex!important; flex:0 1 220px!important; order:1!important;
    visibility:visible!important; opacity:1!important; position:relative!important;
    width:auto!important; min-width:100px!important; max-width:220px!important;
    margin:0!important; align-items:center!important; justify-content:flex-start!important;
  }
  .header .header__logo img{
    display:block!important; visibility:visible!important; opacity:1!important;
    width:auto!important; height:auto!important; max-width:220px!important;
    max-height:56px!important; object-fit:contain!important;
  }
  .header .header__nav{
    display:flex!important; flex:1 1 auto!important; order:2!important;
    visibility:visible!important; opacity:1!important; position:relative!important;
    width:auto!important; min-width:0!important; justify-content:center!important;
    align-items:center!important; margin:0!important; gap:clamp(12px,1.8vw,28px)!important;
  }
  .header .header__nav-item,.header .header__link{
    display:flex!important; visibility:visible!important; opacity:1!important;
  }
  .header .header__link{white-space:nowrap!important}
  .header .header__actions{
    display:flex!important; flex:0 0 auto!important; order:3!important;
    visibility:visible!important; opacity:1!important; margin-left:auto!important;
    align-items:center!important; justify-content:flex-end!important; gap:4px!important;
  }
}
@media (min-width:768px) and (max-width:1100px){
  .header .header__logo{flex-basis:150px!important;max-width:150px!important;min-width:90px!important}
  .header .header__logo img{max-width:150px!important;max-height:46px!important}
  .header .header__nav{gap:10px!important}
  .header .header__actions .header__icon-btn{width:36px!important}
  .header .header__actions .hide-mobile{display:none!important}
  .header .header__link{font-size:12px!important}
}


/* Keep mobile navigation behavior after desktop markup fallback */
@media(max-width:767px){
  .header .header__inner{display:flex!important;flex-flow:row nowrap!important;gap:10px!important;justify-content:space-between!important}
  .header .header__menu-btn{display:flex!important;order:0!important}
  .header .header__logo{order:1!important;flex:1 1 auto!important;min-width:0!important;max-width:180px!important}
  .header .header__logo img{max-width:100%!important;max-height:48px!important}
  .header .header__nav{display:none!important}
  .header .header__actions{order:2!important;flex:0 0 auto!important;gap:2px!important}
}


/* HEPRA HEADER — TRUE CENTERED DESKTOP LAYOUT */
@media (min-width: 768px) {
  .header .container > .header__inner,
  .header .header__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: initial !important;
    column-gap: clamp(12px, 2vw, 28px) !important;
    width: 100% !important;
    height: var(--header-height, 68px) !important;
    min-height: var(--header-height, 68px) !important;
  }
  .header .header__menu-btn {
    display: none !important;
  }
  .header .header__logo {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    display: flex !important;
    order: initial !important;
    flex: initial !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: min(100%, 220px) !important;
    margin: 0 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .header .header__logo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(100%, 200px) !important;
    max-height: calc(var(--header-height, 68px) - 14px) !important;
    object-fit: contain !important;
  }
  .header .header__nav {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    display: flex !important;
    order: initial !important;
    flex: initial !important;
    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: clamp(12px, 1.5vw, 24px) !important;
    justify-content: center !important;
    align-items: center !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .header .header__actions {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: center !important;
    display: flex !important;
    order: initial !important;
    flex: initial !important;
    width: max-content !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: clamp(2px, .6vw, 10px) !important;
    align-items: center !important;
    justify-content: flex-end !important;
    white-space: nowrap !important;
  }
  .header .header__link {
    white-space: nowrap !important;
    font-size: 13px !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .header .header__logo { max-width: 145px !important; }
  .header .header__logo img { max-width: 145px !important; }
  .header .header__actions .hide-mobile { display: none !important; }
  .header .header__actions .header__icon-btn { width: 36px !important; }
}
