/* ============================================================
   SHOPMAG ENHANCED v4 — Full overhaul + bug fixes
   - Fixed hamburger X animation (respects original transform-origin)
   - Fixed menu-overlay (mobile-only, doesn't break desktop)
   - Fixed image display (removed conflicting img block rule)
   - Fixed footer layout conflicts
   - Added: Reviews, Wishlist UX, Toast notifications, Live search
   ============================================================ */

/* ── 1. GOOGLE FONTS ─────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600&family=Jost:wght@300;400;500;600&display=swap');

/* ── 2. DESIGN TOKENS ───────────────────────────────────────── */
:root {
  --em-black:       #0d0d0d;
  --em-white:       #ffffff;
  --em-off-white:   #f7f5f0;
  --em-cream:       #ede9e0;
  --em-accent:      #c8a96e;
  --em-accent-dark: #9e7c44;
  --em-text:        #1a1a1a;
  --em-muted:       #737373;
  --em-border:      #e2ddd4;
  --em-surface:     #faf9f6;
  --em-success:     #2e7d52;
  --em-danger:      #c0392b;

  --em-font-display: 'Playfair Display', Georgia, serif;
  --em-font-body:    'Jost', 'Helvetica Neue', sans-serif;

  --em-radius-sm:   4px;
  --em-radius-md:   8px;
  --em-radius-lg:   16px;
  --em-radius-pill: 100px;

  --em-t: .28s cubic-bezier(.4,0,.2,1);
  --em-shadow-sm: 0 1px 4px rgba(0,0,0,.06);
  --em-shadow-md: 0 4px 20px rgba(0,0,0,.08);
  --em-shadow-lg: 0 12px 48px rgba(0,0,0,.12);
}

/* ── 3. BASE ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--em-font-body);
  font-size: 15px;
  color: var(--em-text);
  background: var(--em-white);
  -webkit-font-smoothing: antialiased;
}

a { text-decoration: none; color: inherit; transition: color var(--em-t); }

/* FIX: do NOT set img { display: block } globally — breaks Microweber inline images */
img { max-width: 100%; height: auto; }

::selection { background: var(--em-accent); color: var(--em-white); }

/* ── 4. ANNOUNCEMENT BAR ────────────────────────────────────── */
.em-announcement-bar {
  background: var(--em-black);
  color: var(--em-white);
  text-align: center;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 9px 16px;
  font-weight: 500;
}

/* ── 5. NAVIGATION ──────────────────────────────────────────── */
.navigation-holder {
  position: sticky;
  top: 0;
  z-index: 200;
  background: var(--em-white);
  border-bottom: 1px solid var(--em-border);
  transition: box-shadow var(--em-t);
}
.navigation-holder.scrolled { box-shadow: var(--em-shadow-md); }
.navigation { background: var(--em-white); }

/* Nav links */
.navigation .list > li > a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--em-text);
  padding: .7rem .8rem;
  position: relative;
}
.navigation .list > li > a::before {
  content: '';
  position: absolute;
  bottom: 2px; left: 50%;
  transform: translateX(-50%);
  width: 0; height: 1.5px;
  background: var(--em-accent);
  transition: width var(--em-t);
}
.navigation .list > li > a:hover::before,
.navigation .list > li.active > a::before { width: 55%; }

/* Dropdown */
.navigation .dropdown-menu,
.navigation .list > li > .dropdown-menu {
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-md) !important;
  padding: 6px 0 !important;
  box-shadow: var(--em-shadow-lg) !important;
  background: var(--em-white) !important;
  min-width: 180px;
  margin-top: 4px !important;
}
.navigation .dropdown-menu .dropdown-item,
.navigation .list > li > .dropdown-menu li > a {
  font-size: 13px !important;
  padding: 9px 18px !important;
  color: var(--em-text) !important;
  transition: background var(--em-t), color var(--em-t);
}
.navigation .dropdown-menu .dropdown-item:hover,
.navigation .list > li > .dropdown-menu li > a:hover {
  background: var(--em-off-white) !important;
  color: var(--em-accent-dark) !important;
}

/* Member nav icons */
.member-nav a, .member-nav i { color: var(--em-text) !important; transition: color var(--em-t); }
.member-nav a:hover, .member-nav a:hover i { color: var(--em-accent) !important; }

/* Cart badge */
.shopping-basket-label, .cart-label-count {
  background: var(--em-accent) !important;
  color: var(--em-white) !important;
  border-radius: var(--em-radius-pill) !important;
  font-size: 9px !important; font-weight: 700 !important;
}

/* ── 6. HAMBURGER — FIX (preserve original transform-origin) ── */
/* BUG FIX: original uses transform-origin: 0 center on spans 1 & 3
   Our previous override used translate(5px,5px) which caused the V shape.
   We now only control color — let main.css handle the animation. */
.mobile-menu-btn span {
  background: var(--em-black) !important;
  transition: all 0.5s ease !important;
}
.not-transparent.navigation-holder .mobile-menu-btn span,
.navigation.sticky .mobile-menu-btn span {
  background: var(--em-black) !important;
}
/* DO NOT override .mobile-menu-btn.active span transforms — leave to main.css */

/* ── 7. MOBILE SLIDE MENU — FIX (mobile only, not desktop) ──── */
/* Backdrop */
.em-menu-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0);
  z-index: 198;
  pointer-events: none;
  transition: background var(--em-t);
  display: none;
}
.em-menu-backdrop.em-backdrop-active {
  display: block;
  background: rgba(0,0,0,.45);
  pointer-events: all;
}
body.em-menu-is-open { overflow: hidden; }

/* Mobile: slide drawer. ONLY apply below 992px */
@media (max-width: 991px) {
  .navigation .menu-overlay {
    position: fixed !important;
    top: 0 !important;
    left: -310px !important;
    width: 290px !important;
    height: 100dvh !important;
    height: 100vh !important;
    background: var(--em-white) !important;
    z-index: 199 !important;
    overflow-y: auto !important;
    transition: left .32s cubic-bezier(.4,0,.2,1) !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    display: block !important;
    flex: none !important;
  }
  .navigation .menu-overlay.em-menu-open {
    left: 0 !important;
    box-shadow: var(--em-shadow-lg) !important;
  }
  /* Drawer top bar */
  .navigation .menu-overlay .menu {
    padding-top: 0 !important;
  }
  .navigation .menu-overlay .toggle-inside-menu {
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 16px;
    border-bottom: 1px solid var(--em-border);
  }
  /* Nav items in drawer */
  html:not(.sidebar-nav-website) .navigation .menu .list > li > a {
    font-size: 13px !important;
    padding: 13px 20px !important;
    border-bottom: 1px solid var(--em-border) !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
  }
  html:not(.sidebar-nav-website) .navigation .menu .list > li > a:hover {
    background: var(--em-off-white) !important;
    color: var(--em-accent) !important;
  }
  html:not(.sidebar-nav-website) .navigation .menu .list > li > a::before { display: none; }
  /* Submenus in drawer */
  .navigation .menu-overlay .dropdown-menu {
    position: static !important;
    display: none !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: var(--em-off-white) !important;
    padding: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    opacity: 1 !important;
  }
  .navigation .menu-overlay .dropdown-menu .dropdown-item {
    font-size: 12px !important;
    padding: 11px 32px !important;
    border-bottom: 1px solid var(--em-border) !important;
    color: var(--em-muted) !important;
  }
  .navigation .menu-overlay .dropdown-menu .dropdown-item:hover {
    background: var(--em-cream) !important;
    color: var(--em-accent-dark) !important;
  }
  /* Show submenu when parent has open class */
  .navigation .menu-overlay .em-sub-open > .dropdown-menu { display: block !important; }
}

/* Dark mode mobile menu */
[data-theme="dark"] .navigation .menu-overlay { background: #1e1b18 !important; }
[data-theme="dark"] .navigation .menu-overlay .toggle-inside-menu { border-bottom-color: #302c26 !important; }
[data-theme="dark"] html:not(.sidebar-nav-website) .navigation .menu .list > li > a { border-bottom-color: #302c26 !important; }
[data-theme="dark"] .navigation .menu-overlay .dropdown-menu { background: #252018 !important; }
[data-theme="dark"] .navigation .menu-overlay .dropdown-menu .dropdown-item { border-bottom-color: #302c26 !important; }

/* ── 8. BUTTONS ─────────────────────────────────────────────── */
.btn-primary, .btn.btn-primary, a.btn-primary {
  background: var(--em-black) !important;
  color: var(--em-white) !important;
  border: 1.5px solid var(--em-black) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  padding: 13px 32px !important;
  transition: all var(--em-t) !important;
}
.btn-primary:hover, a.btn-primary:hover {
  background: transparent !important;
  color: var(--em-black) !important;
}
.btn-outline-primary, .btn.btn-outline-primary {
  background: transparent !important;
  color: var(--em-black) !important;
  border: 1.5px solid var(--em-black) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
  transition: all var(--em-t) !important;
}
.btn-outline-primary:hover {
  background: var(--em-black) !important;
  color: var(--em-white) !important;
}

/* ── 9. HOME PANELS ─────────────────────────────────────────── */
.shopmag-home-image {
  width: 100%; height: 520px;
  background-size: cover; background-position: center;
  position: relative; overflow: hidden;
  border-radius: var(--em-radius-md);
}
.shopmag-home-image::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(0,0,0,.42) 0%, transparent 55%);
  transition: opacity var(--em-t);
}
.shopmag-home-image:hover::after { opacity: .65; }
.effect-zoom-overlay { overflow: hidden; border-radius: var(--em-radius-md); }
.effect-zoom-overlay .shopmag-home-image { transition: transform .6s cubic-bezier(.4,0,.2,1); }
.effect-zoom-overlay:hover .shopmag-home-image { transform: scale(1.04); }
[class*="shopmag-home-button"] { position: absolute; bottom: 24px; left: 24px; z-index: 2; }

/* ── 10. PRODUCT CARDS ──────────────────────────────────────── */
.product { position: relative; background: transparent; }
.product .image {
  width: 100%; aspect-ratio: 3 / 4;
  background-size: cover; background-position: center top;
  position: relative; overflow: hidden;
  border-radius: var(--em-radius-md); display: block;
}
.product .image::after {
  content: ''; position: absolute; inset: 0;
  background: rgba(0,0,0,0); transition: background var(--em-t);
  pointer-events: none;
}
.product:hover .image::after { background: rgba(0,0,0,.1); }
.product .image .hover {
  position: absolute; bottom: 14px; left: 50%;
  transform: translateX(-50%) translateY(10px);
  display: flex; gap: 7px;
  opacity: 0; transition: all var(--em-t); z-index: 3;
}
.product:hover .image .hover { opacity: 1; transform: translateX(-50%) translateY(0); }
.product .image .hover .btn {
  width: 38px; height: 38px; padding: 0 !important;
  display: flex; align-items: center; justify-content: center;
  background: var(--em-white) !important; color: var(--em-black) !important;
  border: none !important; border-radius: var(--em-radius-pill) !important;
  font-size: 15px; box-shadow: var(--em-shadow-md);
  transition: all var(--em-t) !important;
  letter-spacing: 0 !important; text-transform: none !important;
}
.product .image .hover .btn:hover {
  background: var(--em-black) !important; color: var(--em-white) !important;
  transform: translateY(-2px); box-shadow: var(--em-shadow-lg) !important;
}
/* Clicking the product image (or the overlay's empty space) opens the product page;
   the action buttons stay interactive. */
.product .image .hover { pointer-events: none; }
.product .image .hover a,
.product .image .hover .btn { pointer-events: auto; }
.product .title {
  font-size: 13px; font-weight: 500; color: var(--em-text);
  line-height: 1.4; margin-top: 12px; transition: color var(--em-t);
}
.product:hover .title { color: var(--em-accent-dark); }
.product .money, .product .price { font-size: 13px; font-weight: 600; color: var(--em-text); }
.product .price-old { font-size: 12px; color: var(--em-muted); text-decoration: line-through; margin-right: 5px; }

/* ── 11. SHOP FILTER PANEL ──────────────────────────────────── */
.shopmag-shop-left-column { padding-right: 28px; }
.shopmag-shop-left-column .card {
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-md) !important;
  overflow: hidden; margin-bottom: 16px;
}
.shopmag-shop-left-column .card-header,
.shopmag-shop-left-column h5 {
  font-size: 10px !important; font-weight: 700 !important;
  letter-spacing: .12em !important; text-transform: uppercase !important;
  color: var(--em-muted) !important;
  padding: 10px 14px !important;
  background: var(--em-off-white) !important;
  border-bottom: 1px solid var(--em-border) !important;
}
.shopmag-shop-left-column .form-check-input:checked {
  background-color: var(--em-accent) !important;
  border-color: var(--em-accent) !important;
}
input[type="range"] { accent-color: var(--em-accent); }

/* ── 12. PRODUCT DETAIL ─────────────────────────────────────── */
.shop-inner-page h1 {
  font-family: var(--em-font-display);
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 600; letter-spacing: -.02em; line-height: 1.2;
  color: var(--em-text); margin-bottom: 12px;
}
.shop-inner-page .main-price .price { font-size: 22px; font-weight: 700; color: var(--em-text); }
.shop-inner-page .main-price .price-old { font-size: 15px; color: var(--em-muted); text-decoration: line-through; margin-right: 8px; }

/* FIX: product thumbnails — don't force display:block on images */
.shop-inner-page .image-thumb { border-radius: var(--em-radius-md) !important; overflow: hidden; }
.shop-inner-page .thumbnails .image-thumb {
  border: 2px solid transparent !important;
  transition: border-color var(--em-t) !important;
  border-radius: var(--em-radius-sm) !important;
  cursor: pointer;
}
.shop-inner-page .thumbnails .image-thumb:hover,
.shop-inner-page .thumbnails .image-thumb.active { border-color: var(--em-accent) !important; }

/* Qty field */
.mw-qty-field {
  display: flex; align-items: center;
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  overflow: hidden; width: fit-content;
}
.mw-qty-field .cartDecreaseProductsNumber,
.mw-qty-field .cartIncreaseProductsNumber,
.mw-qty-field button {
  width: 40px; height: 44px;
  background: var(--em-off-white) !important;
  border: none !important; font-size: 16px;
  cursor: pointer; color: var(--em-text) !important;
  transition: background var(--em-t);
  display: flex; align-items: center; justify-content: center;
  border-radius: 0 !important;
}
.mw-qty-field button:hover { background: var(--em-cream) !important; }
.mw-qty-field input {
  width: 52px; height: 44px;
  border: none !important;
  border-left: 1px solid var(--em-border) !important;
  border-right: 1px solid var(--em-border) !important;
  text-align: center; font-size: 15px; font-weight: 500;
  color: var(--em-text) !important; background: var(--em-white) !important;
  border-radius: 0 !important;
}

/* ── 13. SECTION HEADINGS ────────────────────────────────────── */
.section-title, h2.section-heading {
  font-family: var(--em-font-display);
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 600; letter-spacing: -.02em; line-height: 1.2; color: var(--em-text);
}

/* ── 14. BREADCRUMB ──────────────────────────────────────────── */
.breadcrumb { background: transparent !important; padding: 0 !important; font-size: 12px !important; color: var(--em-muted); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--em-border) !important; }
.breadcrumb-item a { color: var(--em-muted); }
.breadcrumb-item a:hover { color: var(--em-accent); }
.breadcrumb-item.active { color: var(--em-text); }

.deified-page-titlebar {
  display: flex;
  align-items: baseline;
  gap: 18px;
  flex-wrap: wrap;
}

.deified-page-titlebar-right {
  justify-content: space-between;
}

.deified-page-titlebar-heading {
  flex: 0 0 auto;
}

.deified-page-titlebar-breadcrumb {
  flex: 1 1 auto;
  min-width: 220px;
}

.deified-page-titlebar-breadcrumb .breadcrumb {
  margin-bottom: 0;
}

/* ── 15. PAGINATION ──────────────────────────────────────────── */
.pagination .page-link {
  border: 1px solid var(--em-border) !important;
  color: var(--em-text) !important; font-size: 13px;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--em-radius-sm) !important;
  margin: 0 3px; transition: all var(--em-t);
  background: var(--em-white) !important;
}
.pagination .page-link:hover,
.pagination .page-item.active .page-link {
  background: var(--em-black) !important;
  border-color: var(--em-black) !important;
  color: var(--em-white) !important;
}

/* ── 16. FORMS ───────────────────────────────────────────────── */
.form-control,
input[type="email"], input[type="text"],
input[type="password"], input[type="search"],
textarea, select {
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  font-size: 14px; padding: 11px 14px;
  color: var(--em-text); background: var(--em-white);
  font-family: var(--em-font-body);
  transition: border-color var(--em-t), box-shadow var(--em-t);
  width: 100%;
}
.form-control:focus, input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--em-accent);
  box-shadow: 0 0 0 3px rgba(200,169,110,.14);
}
label {
  font-size: 11px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--em-muted); margin-bottom: 6px;
}

/* ── 17. BLOG ────────────────────────────────────────────────── */
.posts-list .post-item, .blog-list .post-item {
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  overflow: hidden; transition: box-shadow var(--em-t);
  background: var(--em-white);
}
.posts-list .post-item:hover, .blog-list .post-item:hover { box-shadow: var(--em-shadow-md); }
.posts-list .post-title, .blog-list h3 {
  font-family: var(--em-font-display);
  font-size: 18px; font-weight: 600; color: var(--em-text); line-height: 1.3;
  transition: color var(--em-t);
}
.posts-list .post-item:hover .post-title { color: var(--em-accent-dark); }
.blog-inner-page .section h1 {
  font-family: var(--em-font-display);
  font-size: clamp(26px, 4vw, 48px);
  font-weight: 700; letter-spacing: -.03em; line-height: 1.1; color: var(--em-text);
}
.blog-inner-page .description { font-size: 16px; line-height: 1.85; color: #3a3a3a; }
.blog-inner-page .description blockquote {
  border-left: 3px solid var(--em-accent);
  padding: 12px 20px; margin: 1.5em 0;
  background: var(--em-off-white);
  border-radius: 0 var(--em-radius-sm) var(--em-radius-sm) 0;
  font-style: italic; color: var(--em-muted);
}

/* ── 18. LOGIN / REGISTER ────────────────────────────────────── */
section.section h1, .login-page h1, .register-page h1 {
  font-family: var(--em-font-display);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700; letter-spacing: -.03em; color: var(--em-text);
}
section.section h1 span.text-primary { color: var(--em-accent) !important; }
.mw-login-form, .mw-register-form,
[class*="users-login"], [class*="users-register"] {
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  padding: 36px !important;
  box-shadow: var(--em-shadow-md);
}

/* ── 19. 404 ─────────────────────────────────────────────────── */
.not_found_text h1 {
  font-family: var(--em-font-display);
  font-size: clamp(48px, 8vw, 120px);
  font-weight: 700; letter-spacing: -.04em;
  color: var(--em-black); line-height: 1;
}
.not_found_text p { font-size: 15px; color: var(--em-muted); line-height: 1.7; max-width: 400px; margin-bottom: 28px; }

/* ── 20. FOOTER FIX ──────────────────────────────────────────── */
/* FIX: be more specific so we don't break footer layout columns */
.site-footer {
  background: var(--em-black) !important;
  color: rgba(255,255,255,.6);
  padding-top: 0;
  margin-top: 72px;
}
.site-footer .middle-footer {
  padding-top: 52px !important;
  padding-bottom: 40px !important;
}
.site-footer h3, .site-footer .footer-titles {
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .15em !important; text-transform: uppercase !important;
  color: var(--em-white) !important; margin-bottom: 16px !important;
}
/* FIX: only target anchor tags that are direct text links, not image wrappers */
.site-footer .vertical-link-list-wrapper a,
.site-footer .horizontal-link-list-wrapper a {
  font-size: 13px; color: rgba(255,255,255,.5);
  display: block; padding: 4px 0; transition: color var(--em-t);
}
.site-footer .vertical-link-list-wrapper a:hover,
.site-footer .horizontal-link-list-wrapper a:hover { color: var(--em-accent) !important; }
.site-footer .footer-link-list {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.site-footer .footer-link-list li {
  margin: 0 !important;
  padding: 0 !important;
}
.site-footer .footer-link-list a {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 2px 0;
  transition: color var(--em-t), transform var(--em-t) !important;
}
.site-footer .footer-link-list:not(.footer-legal-links) a::after {
  content: "\2192";
  margin-left: 7px;
  opacity: 0;
  transform: translateX(-5px);
  transition: opacity var(--em-t), transform var(--em-t);
}
.site-footer .footer-link-list:not(.footer-legal-links) a:hover {
  transform: translateX(3px);
}
.site-footer .footer-link-list:not(.footer-legal-links) a:hover::after {
  opacity: 1;
  transform: translateX(0);
}
.site-footer .footer-link-list a:focus-visible {
  border-radius: 2px;
  outline: 2px solid var(--em-accent);
  outline-offset: 4px;
}
.site-footer .horizontal-link-list-wrapper .footer-legal-links {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px 18px !important;
}

@media (min-width: 992px) {
  .site-footer .middle-footer .row {
    display: grid;
    grid-template-columns: minmax(110px, .75fr) minmax(155px, 1fr) minmax(180px, 1.2fr) minmax(0, 2.5fr);
    gap: 22px;
  }
  .site-footer .middle-footer .gp-footer-block {
    width: auto !important;
    max-width: none !important;
    padding-right: 0;
    padding-left: 0;
  }

  .site-footer .middle-footer .position-4 {
    min-width: 0;
  }
}
.site-footer .newsletter-wrapper .content,
.site-footer .newsletter-wrapper .description {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

@media (min-width: 992px) and (max-width: 1199px) {
  .site-footer #footer_socials .footer-socials {
    display: flex;
    flex-wrap: nowrap;
    gap: 4px;
  }

  .site-footer #footer_socials .footer-socials li,
  .site-footer #footer_socials .footer-socials li a {
    margin-right: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  .site-footer .middle-footer .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 32px 48px;
  }

  .site-footer .middle-footer .gp-footer-block {
    width: auto !important;
    max-width: none !important;
    padding-right: 0;
    padding-left: 0;
  }

  .site-footer .middle-footer .position-4 {
    min-width: 0;
  }
}
.site-footer .description, .site-footer p.description {
  font-size: 12px; color: rgba(255,255,255,.4);
  margin-bottom: 14px; line-height: 1.6;
}
.site-footer .contact_form input[type="email"],
.site-footer .contact_form input[type="text"] {
  background: rgba(255,255,255,.07) !important;
  border: 1px solid rgba(255,255,255,.15) !important;
  border-radius: var(--em-radius-sm) !important;
  color: var(--em-white) !important; font-size: 13px !important;
  padding: 11px 14px !important;
  transition: border-color var(--em-t) !important;
}
.site-footer .contact_form input:focus {
  border-color: var(--em-accent) !important;
  background: rgba(255,255,255,.1) !important;
  box-shadow: none !important;
  outline: none !important;
}
.site-footer .contact_form input::placeholder { color: rgba(255,255,255,.3) !important; }
.site-footer .contact_form button,
.site-footer .contact_form .mw-btn-submit,
.site-footer .contact_form input[type="submit"] {
  background: var(--em-accent) !important; color: var(--em-white) !important;
  border: none !important; border-radius: var(--em-radius-sm) !important;
  font-size: 11px !important; font-weight: 700 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important;
  padding: 12px 24px !important; cursor: pointer;
  margin-top: 8px; width: 100%;
  transition: background var(--em-t) !important;
}
.site-footer .contact_form button:hover { background: var(--em-accent-dark) !important; }

/* Social icons */
.site-footer .social-links-holder a,
.site-footer [class*="social"] a {
  width: 34px; height: 34px; border-radius: var(--em-radius-pill);
  border: 1px solid rgba(255,255,255,.2) !important;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; color: rgba(255,255,255,.55) !important;
  margin-right: 6px; padding: 0 !important;
  transition: all var(--em-t) !important;
}
.site-footer .social-links-holder a:hover,
.site-footer [class*="social"] a:hover {
  border-color: var(--em-accent) !important;
  color: var(--em-accent) !important;
}
.site-footer .footer-socials.style-2 li a i {
  width: auto;
  height: auto;
  border: 0;
  line-height: 1;
}
.bottom-footer {
  border-top: 1px solid rgba(255,255,255,.1) !important;
  padding: 14px 0;
  margin-top: 0;
}
.bottom-footer .content, .bottom-footer p { font-size: 11px; color: rgba(255,255,255,.3); }
.bottom-footer .text-wrapper.align-right { text-align: right !important; }
.bottom-footer .horizontal-link-list-wrapper a {
  font-size: 11px; display: inline; padding: 0 8px 0 0;
}

/* ── 21. MODAL FIX ───────────────────────────────────────────── */
.modal-content {
  border: none !important;
  border-radius: var(--em-radius-lg) !important;
  box-shadow: var(--em-shadow-lg) !important;
  overflow: hidden;
}
.modal-header { padding: 18px 22px !important; border-bottom: 1px solid var(--em-border) !important; }
.modal-body { padding: 22px !important; }

/* ── 22. BACK TO TOP ─────────────────────────────────────────── */
#to-top {
  position: fixed; bottom: 24px; right: 24px;
  width: 44px; height: 44px; border-radius: var(--em-radius-pill);
  background: var(--em-black); color: var(--em-white);
  border: none; font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--em-shadow-md); cursor: pointer;
  transition: all var(--em-t); z-index: 999;
}
#to-top:hover { background: var(--em-accent); transform: translateY(-3px); box-shadow: var(--em-shadow-lg); }

/* ── 23. SELECTPICKER ────────────────────────────────────────── */
.bootstrap-select > .dropdown-toggle {
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 12px !important; padding: 9px 14px !important;
  background: var(--em-white) !important; color: var(--em-text) !important;
  height: auto !important;
}
.bootstrap-select > .dropdown-toggle:focus { outline: none !important; box-shadow: none !important; }

/* ══════════════════════════════════════════════════════
   NEW HIGH-PRIORITY FEATURES
   ══════════════════════════════════════════════════════ */

/* ── A. TOAST NOTIFICATIONS ──────────────────────────────────── */
.em-toast-container {
  position: fixed;
  top: 80px; right: 20px;
  z-index: 9999;
  display: flex; flex-direction: column; gap: 10px;
  pointer-events: none;
}
.em-toast {
  min-width: 280px; max-width: 340px;
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  padding: 14px 16px;
  box-shadow: var(--em-shadow-lg);
  display: flex; align-items: flex-start; gap: 12px;
  pointer-events: all;
  transform: translateX(120%);
  transition: transform .35s cubic-bezier(.4,0,.2,1), opacity .35s;
  opacity: 0;
}
.em-toast.em-toast-show { transform: translateX(0); opacity: 1; }
.em-toast.em-toast-hide { transform: translateX(120%); opacity: 0; }

.em-toast-icon {
  width: 32px; height: 32px; border-radius: var(--em-radius-pill);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; flex-shrink: 0;
}
.em-toast-success .em-toast-icon { background: #e8f5ee; color: var(--em-success); }
.em-toast-error .em-toast-icon   { background: #fde8e8; color: var(--em-danger); }
.em-toast-info .em-toast-icon    { background: #e8f0fd; color: #1a73e8; }
.em-toast-warning .em-toast-icon { background: #fef3e2; color: #e67e22; }

.em-toast-body { flex: 1; min-width: 0; }
.em-toast-title { font-size: 13px; font-weight: 600; color: var(--em-text); margin-bottom: 2px; }
.em-toast-msg   { font-size: 12px; color: var(--em-muted); line-height: 1.5; }

.em-toast-close {
  width: 20px; height: 20px; border: none; background: none;
  cursor: pointer; color: var(--em-muted); font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; padding: 0; transition: color var(--em-t);
}
.em-toast-close:hover { color: var(--em-text); }

.em-toast-progress {
  position: absolute; bottom: 0; left: 0;
  height: 3px; border-radius: 0 0 var(--em-radius-md) var(--em-radius-md);
  animation: em-toast-shrink linear forwards;
}
.em-toast-success .em-toast-progress { background: var(--em-success); }
.em-toast-error .em-toast-progress   { background: var(--em-danger); }
.em-toast-info .em-toast-progress    { background: #1a73e8; }
.em-toast-warning .em-toast-progress { background: #e67e22; }

@keyframes em-toast-shrink {
  from { width: 100%; }
  to   { width: 0; }
}

/* Dark mode toasts */
[data-theme="dark"] .em-toast { background: #1e1b18; border-color: #302c26; }
[data-theme="dark"] .em-toast-title { color: #e8e2d8; }
[data-theme="dark"] .em-toast-success .em-toast-icon { background: #0d2b1a; }
[data-theme="dark"] .em-toast-error .em-toast-icon   { background: #2d0f0f; }
[data-theme="dark"] .em-toast-info .em-toast-icon    { background: #0d1e38; }

/* ── B. LIVE SEARCH ──────────────────────────────────────────── */
.em-search-wrap {
  position: relative;
}
.em-search-input {
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-pill) !important;
  font-size: 13px !important; padding: 8px 16px 8px 38px !important;
  background: var(--em-off-white) !important;
  transition: border-color var(--em-t), background var(--em-t), width var(--em-t) !important;
  width: 180px;
}
.em-search-input:focus {
  border-color: var(--em-accent) !important;
  background: var(--em-white) !important;
  outline: none !important;
  width: 240px;
}
.em-search-icon {
  position: absolute; left: 11px; top: 50%;
  transform: translateY(-50%);
  font-size: 15px; color: var(--em-muted); pointer-events: none;
}
.em-search-dropdown {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0;
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  box-shadow: var(--em-shadow-lg);
  z-index: 500;
  display: none;
  overflow: hidden;
  min-width: 300px;
}
.em-search-dropdown.em-search-open { display: block; }

.em-search-section-label {
  font-size: 10px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--em-muted);
  padding: 10px 14px 6px; border-bottom: 1px solid var(--em-border);
  background: var(--em-off-white);
}
.em-search-result {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px; cursor: pointer;
  transition: background var(--em-t);
  border-bottom: 1px solid var(--em-border);
}
.em-search-result:last-child { border-bottom: none; }
.em-search-result:hover { background: var(--em-off-white); }
.em-search-thumb {
  width: 44px; height: 56px; border-radius: 4px;
  background: var(--em-cream); flex-shrink: 0; overflow: hidden;
}
.em-search-thumb img { width: 100%; height: 100%; object-fit: cover; }
.em-search-name { font-size: 13px; font-weight: 500; color: var(--em-text); }
.em-search-price { font-size: 12px; font-weight: 600; color: var(--em-muted); margin-top: 2px; }
.em-search-match { color: var(--em-accent-dark); }

.em-search-recent {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px; cursor: pointer;
  transition: background var(--em-t);
  font-size: 13px; color: var(--em-text);
}
.em-search-recent:hover { background: var(--em-off-white); }
.em-search-recent i { font-size: 14px; color: var(--em-muted); }
.em-search-recent-clear {
  font-size: 10px; color: var(--em-muted); margin-left: auto;
  padding: 2px 6px; transition: color var(--em-t);
}
.em-search-recent-clear:hover { color: var(--em-danger); }

.em-search-empty {
  padding: 24px 14px; text-align: center;
  font-size: 13px; color: var(--em-muted);
}
.em-search-empty i { font-size: 28px; color: var(--em-border); display: block; margin-bottom: 8px; }
.em-search-view-all {
  display: block; text-align: center;
  font-size: 12px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; color: var(--em-accent-dark);
  padding: 10px 14px; border-top: 1px solid var(--em-border);
  transition: background var(--em-t);
}
.em-search-view-all:hover { background: var(--em-off-white); }

[data-theme="dark"] .em-search-dropdown { background: #1e1b18; border-color: #302c26; }
[data-theme="dark"] .em-search-section-label { background: #252018; border-color: #302c26; }
[data-theme="dark"] .em-search-result { border-color: #302c26; }
[data-theme="dark"] .em-search-result:hover { background: #252018; }
[data-theme="dark"] .em-search-thumb { background: #302c26; }

/* ── C. PRODUCT REVIEWS ──────────────────────────────────────── */
.em-reviews-section { border-top: 1px solid var(--em-border); padding-top: 40px; margin-top: 40px; }
.em-product-comments { border-top: 1px solid var(--em-border); margin-top: 44px; padding-top: 40px; }
.em-product-comments .em-reviews-live { border-top: 0; margin-top: 0; padding-top: 0; }
.em-product-comments .mwcommentsmodule { background: #fff; border: 1px solid var(--em-border); border-radius: 14px; padding: 24px; }
.em-product-comments .comments-template-stylish { margin-bottom: 20px; }
.em-product-comments .comment { border-bottom: 1px solid var(--em-border); padding: 16px 0; }
.em-product-comments .comment:last-child { border-bottom: 0; }
.em-product-comments .comment-author { font-weight: 700; color: var(--em-text); }
.em-product-comments .comment-body { color: var(--em-muted); line-height: 1.7; }
.em-product-comments .form-control { border: 1px solid var(--em-border); border-radius: 10px; box-shadow: none; min-height: 44px; }
.em-product-comments textarea.form-control { min-height: 130px; }
.em-comments-note { color: var(--em-muted); margin: 4px 0 0; }
.em-comments-admin-link { align-self: center; border: 1px solid var(--em-border); border-radius: 999px; color: var(--em-text); font-size: 12px; font-weight: 800; letter-spacing: .08em; padding: 10px 16px; text-transform: uppercase; }
.em-comments-admin-link:hover { color: var(--em-accent); border-color: var(--em-accent); }
.em-reviews-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px; flex-wrap: wrap; gap: 16px; }
.em-reviews-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.em-reviews-title { font-family: var(--em-font-display); font-size: 22px; font-weight: 600; color: var(--em-text); margin-bottom: 4px; }

/* Rating summary */
.em-rating-summary { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.em-rating-big { text-align: center; }
.em-rating-score { font-family: var(--em-font-display); font-size: 52px; font-weight: 700; color: var(--em-text); line-height: 1; }
.em-rating-stars { display: flex; gap: 2px; justify-content: center; margin: 4px 0; }
.em-rating-count { font-size: 11px; color: var(--em-muted); }

/* Star icons */
.em-star { font-size: 16px; color: var(--em-border); }
.em-star.filled { color: var(--em-accent); }
.em-star.half { color: var(--em-accent); opacity: .5; }

/* Histogram */
.em-rating-bars { display: flex; flex-direction: column; gap: 5px; min-width: 180px; }
.em-bar-row { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--em-muted); }
.em-bar-label { min-width: 36px; text-align: right; }
.em-bar-track { flex: 1; height: 6px; background: var(--em-border); border-radius: 3px; overflow: hidden; }
.em-bar-fill { height: 100%; background: var(--em-accent); border-radius: 3px; transition: width .6s cubic-bezier(.4,0,.2,1); }
.em-bar-count { min-width: 20px; }

/* Write review button */
.em-write-review-btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; padding: 12px 24px;
  cursor: pointer; transition: all var(--em-t);
  font-family: var(--em-font-body);
}
.em-write-review-btn:hover { background: var(--em-accent); }

/* Review list */
.em-review-item {
  padding: 20px 0; border-bottom: 1px solid var(--em-border);
}
.em-review-item:last-child { border-bottom: none; }
.em-review-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 8px; flex-wrap: wrap; gap: 8px; }
.em-review-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.em-reviewer { display: flex; align-items: center; gap: 10px; }
.em-reviewer-avatar {
  width: 36px; height: 36px; border-radius: var(--em-radius-pill);
  background: var(--em-cream); color: var(--em-accent-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; flex-shrink: 0;
}
.em-reviewer-name { font-size: 13px; font-weight: 600; color: var(--em-text); }
.em-reviewer-date { font-size: 11px; color: var(--em-muted); }
.em-verified-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: var(--em-success);
  background: #e8f5ee; padding: 2px 8px; border-radius: var(--em-radius-pill);
}
.em-review-body { font-size: 14px; color: var(--em-text); line-height: 1.7; margin-bottom: 8px; }
.em-review-empty { border: 1px dashed var(--em-border); border-radius: var(--em-radius-md); color: var(--em-muted); padding: 22px; text-align: center; }
.em-review-helpful { font-size: 11px; color: var(--em-muted); }
.em-review-helpful button {
  background: none; border: none; cursor: pointer;
  font-size: 11px; color: var(--em-muted); font-family: var(--em-font-body);
  transition: color var(--em-t); padding: 0 4px;
}
.em-review-helpful button:hover { color: var(--em-accent-dark); }
.em-review-helpful button.selected {
  color: var(--em-accent-dark);
  font-weight: 700;
}
.em-review-helpful.voted button:not(.selected) {
  opacity: .55;
}

/* Review form */
.em-review-form { background: var(--em-surface); border: 1px solid var(--em-border); border-radius: var(--em-radius-lg); padding: 24px; margin-top: 28px; }
.em-review-form h4 { font-family: var(--em-font-display); font-size: 18px; font-weight: 600; color: var(--em-text); margin-bottom: 16px; }
.em-star-picker { display: flex; gap: 6px; margin-bottom: 16px; cursor: pointer; }
.em-star-picker span { display: inline-flex; }
.em-star-picker i { font-size: 28px; color: var(--em-border); transition: color .15s; }
.em-star-picker span:hover i { color: var(--em-accent) !important; }
.em-star-picker i.selected { color: var(--em-accent) !important; }

/* ── COMMENT FORM FIELDS (Livewire) ─────────────────────── */
.em-review-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.em-field { margin-bottom: 14px; }
.em-field label {
  font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--em-muted); display: block; margin-bottom: 6px;
}
.em-field input,
.em-field textarea {
  width: 100%; border: 1px solid var(--em-border); border-radius: 10px;
  font-size: 14px; padding: 11px 14px; color: var(--em-text);
  background: var(--em-white); font-family: var(--em-font-body);
  transition: border-color var(--em-t), box-shadow var(--em-t);
}
.em-field input:focus,
.em-field textarea:focus {
  outline: none; border-color: var(--em-accent);
  box-shadow: 0 0 0 3px rgba(200,169,110,.14);
}
.em-field textarea { min-height: 140px; resize: vertical; }
.em-field span { font-size: 12px; color: #c0392b; display: block; margin-top: 4px; }

.em-submit-btn {
  width: 100%; background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; padding: 13px 32px; cursor: pointer;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-submit-btn:hover { background: var(--em-accent); }

.em-ok-btn {
  margin-left: auto; background: #2e7d52; color: #fff; border: none;
  border-radius: 6px; padding: 6px 18px; font-size: 11px;
  font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  cursor: pointer; font-family: var(--em-font-body);
}

.em-review-login-msg { color: var(--em-muted); font-size: 13px; margin-bottom: 12px; }

.em-hp-wrap { position: absolute; left: -9999px; overflow: hidden; width: 1px; height: 1px; opacity: .01; pointer-events: none; }

.em-review-close-btn {
  width: 36px; height: 36px; border: 1px solid var(--em-border);
  border-radius: 50%; background: var(--em-white); color: var(--em-text);
  font-size: 22px; line-height: 1; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: color var(--em-t), border-color var(--em-t), background var(--em-t);
  flex-shrink: 0;
}
.em-review-close-btn:hover { border-color: var(--em-accent); color: var(--em-accent); }

.em-review-form .alert-success {
  background: #e8f5ee; border: 1px solid #c3e6d1; border-radius: 12px;
  color: #2e7d52; padding: 14px 18px; font-size: 14px;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-bottom: 18px;
}

.em-comments-module-root { margin-top: 24px; }

@media (max-width: 575px) {
  .em-review-fields { grid-template-columns: 1fr; }
}
.em-star-picker i.hover, .em-star-picker i.selected { color: var(--em-accent); }

/* Dark mode reviews */
[data-theme="dark"] .em-rating-score { color: #e8e2d8; }
[data-theme="dark"] .em-bar-track { background: #302c26; }
[data-theme="dark"] .em-reviewer-avatar { background: #302c26; }
[data-theme="dark"] .em-verified-badge { background: #0d2b1a; }
[data-theme="dark"] .em-review-form { background: #1e1b18; border-color: #302c26; }

/* ── D. WISHLIST UX ──────────────────────────────────────────── */
/* Animated heart on product cards */
.em-wishlist-btn {
  position: absolute; top: 12px; right: 12px; z-index: 4;
  width: 34px; height: 34px; border-radius: var(--em-radius-pill);
  background: var(--em-white); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--em-shadow-sm);
  opacity: 0; transition: opacity var(--em-t), transform var(--em-t);
  font-family: var(--em-font-body);
}
.product:hover .em-wishlist-btn { opacity: 1; }
.em-wishlist-btn i { font-size: 16px; color: var(--em-muted); transition: color .2s, transform .3s cubic-bezier(.34,1.56,.64,1); }
.em-wishlist-btn.wishlisted i { color: #e74c3c; }
.em-wishlist-btn:hover i { transform: scale(1.2); }
.em-wishlist-btn.em-heart-pop i { animation: em-heart-pop .4s cubic-bezier(.34,1.56,.64,1); }
@keyframes em-heart-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.5); }
  70%  { transform: scale(0.9); }
  100% { transform: scale(1); }
}

/* Wishlist page */
.em-wishlist-page .em-wishlist-empty {
  text-align: center; padding: 60px 24px;
}
.em-wishlist-empty-icon {
  width: 72px; height: 72px; border-radius: var(--em-radius-pill);
  background: var(--em-cream); color: var(--em-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; margin: 0 auto 16px;
}
.em-wishlist-empty h3 {
  font-family: var(--em-font-display);
  font-size: 22px; font-weight: 600; color: var(--em-text); margin-bottom: 8px;
}
.em-wishlist-empty p { font-size: 14px; color: var(--em-muted); margin-bottom: 20px; }

/* Wishlist count badge in nav */
.em-wishlist-count {
  position: absolute; top: -5px; right: -5px;
  width: 16px; height: 16px;
  background: var(--em-accent);
  color: var(--em-white);
  border-radius: var(--em-radius-pill);
  font-size: 9px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}

/* ── E. COLOR / SIZE SWATCHES ────────────────────────────────── */
.em-swatch-wrap { margin-bottom: 14px; }
.em-swatch-wrap > label {
  font-size: 10px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--em-muted);
  margin-bottom: 8px; display: block;
}
.em-swatches { display: flex; flex-wrap: wrap; gap: 8px; }

.em-color-swatch {
  width: 30px; height: 30px; border-radius: var(--em-radius-pill);
  border: 2px solid transparent !important;
  cursor: pointer; position: relative;
  transition: all var(--em-t) !important;
  outline: none;
  letter-spacing: 0 !important; text-transform: none !important;
  padding: 0 !important; font-size: 0 !important;
}
.em-color-swatch::after {
  content: ''; position: absolute; inset: -4px;
  border: 2px solid transparent;
  border-radius: var(--em-radius-pill);
  transition: border-color var(--em-t);
}
.em-color-swatch:hover::after { border-color: var(--em-muted); }
.em-color-swatch.active::after { border-color: var(--em-accent); }

.em-size-swatch {
  min-width: 42px; height: 40px; padding: 0 10px !important;
  border: 1.5px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  background: var(--em-white) !important; color: var(--em-text) !important;
  font-size: 12px !important; font-weight: 600 !important;
  letter-spacing: .04em !important; text-transform: uppercase !important;
  cursor: pointer; transition: all var(--em-t) !important;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--em-font-body) !important;
}
.em-size-swatch:hover { border-color: var(--em-text) !important; background: var(--em-off-white) !important; }
.em-size-swatch.active { border-color: var(--em-black) !important; background: var(--em-black) !important; color: var(--em-white) !important; }
.em-size-swatch.out-of-stock { opacity: .3; text-decoration: line-through; cursor: not-allowed; }

[data-theme="dark"] .em-size-swatch { background: var(--em-off-white) !important; border-color: var(--em-border) !important; }
[data-theme="dark"] .em-size-swatch.active { background: var(--em-accent) !important; border-color: var(--em-accent) !important; color: #141210 !important; }

/* Product detail size selector */
.shop-inner-page .product-custom-fields-holder {
  margin: 18px 0 10px;
}
.shop-inner-page .product-custom-fields-holder,
.shop-inner-page .product-custom-fields-holder .row {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.shop-inner-page .product-custom-fields-holder > .col-lg-3 {
  display: none !important;
}
.shop-inner-page .product-custom-fields-holder > .col-lg-9 {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.shop-inner-page .product-custom-fields-holder .module-custom-fields .row > [class*="col-"] {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.shop-inner-page .product-custom-fields-holder .mw-text-start {
  margin: 0 !important;
}
.shop-inner-page .product-custom-fields-holder .form-label {
  margin: 0 0 8px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--em-text) !important;
}
.shop-inner-page .product-custom-fields-holder select[name*="size"],
.shop-inner-page .product-custom-fields-holder select[name*="Size"] {
  display: none !important;
}
.shop-inner-page .em-size-swatches {
  margin: 0 0 10px;
}
.shop-inner-page .em-size-swatches .em-swatches {
  flex-wrap: nowrap;
  gap: 10px;
  overflow-x: auto;
  padding: 0 0 4px;
  scrollbar-width: thin;
}
.shop-inner-page .em-size-swatch {
  min-width: 112px;
  height: 44px;
  white-space: nowrap;
}
.shop-inner-page .em-size-guide-btn {
  margin-top: 4px;
}

/* Product detail gallery: single view with scrollable thumbnails */
.shop-inner-page .shop-inner-gallery {
  display: grid !important;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  align-self: start;
}
@media (min-width: 768px) {
  .shop-inner-page .product-holder > .col-12:first-child {
    align-self: stretch;
  }
  .shop-inner-page #module-pictures,
  .shop-inner-page .module-pictures {
    position: sticky;
    top: 132px;
    z-index: 2;
    align-self: flex-start;
  }
  .shop-inner-page .shop-inner-gallery {
    position: static;
  }
}
.shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px;
  max-height: min(640px, 72vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-snap-type: y proximity;
  width: auto !important;
  margin-right: 0 !important;
  padding-right: 4px;
  scrollbar-width: none;
}
.shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails a {
  display: block;
  height: 86px !important;
  min-height: 86px;
  margin: 0 !important;
  border: 2px solid transparent;
  border-radius: 14px;
  background-color: var(--em-off-white);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: .7;
  scroll-snap-align: center;
  transition: border-color var(--em-t), box-shadow var(--em-t), opacity var(--em-t);
}
.shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails a.active,
.shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails a.is-visible {
  border-color: var(--em-black);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .12);
  opacity: 1;
}
.shop-inner-page .shop-inner-gallery .shop-inner-big-image {
  min-width: 0;
}
/* When there are no thumbnails (single image), let the big image fill the grid */
.shop-inner-page .shop-inner-gallery > .shop-inner-big-image:first-child {
  grid-column: 1 / -1;
}
/* Hide two sections on the About page (Responsible & sustainable development, Leader Board) */
section[field="layout-about-skin-2-module-layouts-24--1"],
section[field="layout-blockquotes-skin-3-module-layouts-24--2"] {
  display: none !important;
}
.shop-inner-page .shop-inner-gallery .shop-inner-big-image img {
  width: 100%;
  height: min(72vh, 680px);
  object-fit: contain;
  border-radius: 18px;
  background: var(--em-off-white);
}
.shop-inner-page .description .edit[field="content_body"] h4 {
  margin-top: 30px;
  margin-bottom: 12px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--em-text);
}
.shop-inner-page .description .edit[field="content_body"] h4 + ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 36px;
  padding: 0;
  list-style: none;
}
.shop-inner-page .description .edit[field="content_body"] h4 + ul li {
  position: relative;
  margin: 0;
  padding: 11px 12px 11px 34px;
  border: 1px solid var(--em-border);
  border-radius: 14px;
  background: var(--em-off-white);
  color: var(--em-text);
  line-height: 1.45;
}
.shop-inner-page .description .edit[field="content_body"] h4 + ul li::before {
  content: '';
  position: absolute;
  left: 13px;
  top: 17px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--em-accent);
}
.shop-inner-page .description .edit[field="content_body"] h4 + ul + h4 {
  margin-top: 42px;
}
.shop-inner-page .shopmag-tags {
  display: none !important;
}

@media (max-width: 767px) {
  .shop-inner-page .shop-inner-gallery {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails {
    order: 2;
    flex-direction: row !important;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    padding-right: 0;
    padding-bottom: 4px;
    scroll-snap-type: x proximity;
  }
  .shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails a {
    width: 82px;
    min-width: 82px;
  }
  .shop-inner-page .shop-inner-gallery .shop-inner-big-image img {
    height: auto;
    max-height: 68vh;
  }
  .shop-inner-page .description .edit[field="content_body"] h4 + ul {
    grid-template-columns: 1fr;
  }
}

/* ── F. DARK MODE ────────────────────────────────────────────── */
[data-theme="dark"] { --em-black: #f0ece4; --em-white: #141210; --em-off-white: #1e1b18; --em-cream: #252018; --em-accent: #c8a96e; --em-accent-dark: #e0c080; --em-text: #e8e2d8; --em-muted: #8a8070; --em-border: #302c26; --em-surface: #1a1714; }
[data-theme="dark"] body { background: #141210; color: #e8e2d8; }
[data-theme="dark"] .navigation, [data-theme="dark"] .navigation-holder { background: #141210 !important; border-bottom-color: #302c26 !important; }
[data-theme="dark"] .navigation .dropdown-menu { background: #1e1b18 !important; border-color: #302c26 !important; }
[data-theme="dark"] .site-footer { background: #0d0b09 !important; }
[data-theme="dark"] .bottom-footer { border-top-color: rgba(255,255,255,.06) !important; }
[data-theme="dark"] .modal-content { background: #1e1b18 !important; }
[data-theme="dark"] .modal-header { border-bottom-color: #302c26 !important; }
[data-theme="dark"] .form-control, [data-theme="dark"] input[type="email"], [data-theme="dark"] input[type="text"], [data-theme="dark"] input[type="password"], [data-theme="dark"] textarea, [data-theme="dark"] select { background: #1e1b18 !important; border-color: #302c26 !important; color: #e8e2d8 !important; }
[data-theme="dark"] .em-review-form { background: #1e1b18; border-color: #302c26; }

/* Dark mode toggle button */
.em-dark-mode-li { display: flex; align-items: center; }
.em-dark-toggle {
  width: 34px; height: 34px; border-radius: var(--em-radius-pill);
  border: 1px solid var(--em-border); background: transparent;
  color: var(--em-text); display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 15px; transition: all var(--em-t);
}
.em-dark-toggle:hover { border-color: var(--em-accent); color: var(--em-accent); }

/* ── G. CHECKOUT PAGE ────────────────────────────────────────── */
.em-checkout-page { min-height: 100vh; background: var(--em-white); }
.em-checkout-header {
  background: var(--em-white); border-bottom: 1px solid var(--em-border);
  padding: 12px 0; position: sticky; top: 0; z-index: 100;
}
.em-checkout-header .container {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  max-width: 1100px; margin: 0 auto; padding: 0 24px;
}
.em-checkout-steps { display: flex; align-items: center; gap: 0; flex: 1; justify-content: center; }
.em-step { display: flex; align-items: center; gap: 8px; opacity: .35; transition: opacity var(--em-t); }
.em-step.active { opacity: 1; }
.em-step.completed { opacity: .65; }
.em-step-num {
  width: 26px; height: 26px; border-radius: var(--em-radius-pill);
  border: 1.5px solid var(--em-border);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; color: var(--em-muted); transition: all var(--em-t);
}
.em-step.active .em-step-num { background: var(--em-black); border-color: var(--em-black); color: var(--em-white); }
.em-step.completed .em-step-num { background: var(--em-accent); border-color: var(--em-accent); color: var(--em-white); }
.em-step-label { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.em-step-line { width: 40px; height: 1px; background: var(--em-border); margin: 0 10px; }
.em-checkout-back { font-size: 12px; font-weight: 500; color: var(--em-muted); white-space: nowrap; transition: color var(--em-t); }
.em-checkout-back:hover { color: var(--em-accent); }
.em-checkout-body { max-width: 1100px; margin: 0 auto; padding: 40px 24px 80px; }
.em-checkout-form-col { padding-right: 32px; }
.em-order-summary {
  background: var(--em-surface); border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg); overflow: hidden; position: sticky; top: 100px;
}
.em-order-summary-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; border-bottom: 1px solid var(--em-border);
}
.em-order-summary-header h3 { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--em-text); margin: 0; }
.em-order-items { padding: 14px 18px; border-bottom: 1px solid var(--em-border); }
.em-order-totals { padding: 14px 18px; }
.em-total-row { display: flex; justify-content: space-between; align-items: center; padding: 7px 0; font-size: 13px; color: var(--em-text); border-bottom: 1px solid var(--em-border); }
.em-total-row:last-child { border-bottom: none; }
.em-grand-total { font-size: 15px !important; font-weight: 700 !important; padding-top: 12px !important; }
.em-total-big { font-size: 18px !important; font-weight: 700 !important; }
.em-trust-badges { display: flex; flex-direction: column; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--em-border); background: var(--em-off-white); }
.em-trust-badge { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--em-muted); }
.em-trust-badge i { font-size: 15px; color: var(--em-accent); }

/* Coupon field */
.em-coupon-wrap {
  display: flex; gap: 8px; margin: 12px 0;
}
.em-coupon-wrap input {
  flex: 1; border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 13px !important; padding: 10px 12px !important;
  letter-spacing: .06em; text-transform: uppercase;
  font-family: var(--em-font-body) !important;
}
.em-coupon-wrap input::placeholder { text-transform: none; letter-spacing: 0; }
.em-coupon-apply {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 10px 16px;
  cursor: pointer; white-space: nowrap;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-coupon-apply:hover { background: var(--em-accent); }
.em-coupon-success { font-size: 12px; color: var(--em-success); display: none; align-items: center; gap: 6px; margin-top: 4px; }
.em-coupon-success.show { display: flex; }
.em-total-row.em-discount-row .em-total-val { color: var(--em-success); }

[data-theme="dark"] .em-checkout-header { background: #141210 !important; border-bottom-color: #302c26 !important; }
[data-theme="dark"] .em-order-summary { background: #1e1b18 !important; border-color: #302c26 !important; }
[data-theme="dark"] .em-trust-badges { background: #252018 !important; }
[data-theme="dark"] .em-total-row { border-color: #302c26 !important; }

/* ── H. TYPOGRAPHY SCALE ─────────────────────────────────────── */
h1, .em-h1 { font-family: var(--em-font-display); font-size: clamp(32px, 5vw, 64px); font-weight: 700; letter-spacing: -.03em; line-height: 1.1; }
h2, .em-h2 { font-family: var(--em-font-display); font-size: clamp(24px, 3.5vw, 44px); font-weight: 600; letter-spacing: -.025em; line-height: 1.2; }
h3, .em-h3 { font-family: var(--em-font-display); font-size: clamp(19px, 2.5vw, 30px); font-weight: 600; letter-spacing: -.02em; line-height: 1.3; }
h4, .em-h4 { font-family: var(--em-font-body); font-size: clamp(15px, 2vw, 20px); font-weight: 600; letter-spacing: -.01em; line-height: 1.4; }
p, .em-body { font-size: 15px; line-height: 1.75; color: var(--em-text); }
.em-lead { font-size: 18px; line-height: 1.65; font-weight: 300; color: var(--em-muted); }
.em-overline { font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--em-accent); }

/* ── I. RESPONSIVE ───────────────────────────────────────────── */
@media (max-width: 991px) {
  .em-announcement-bar { font-size: 10px; padding: 7px 12px; }
  .shopmag-home-image { height: 340px; }
  .site-footer { padding-top: 48px; margin-top: 56px; }
  .em-checkout-form-col { padding-right: 0; }
  .em-checkout-header .container { flex-wrap: wrap; }
  .em-checkout-steps { order: 3; width: 100%; justify-content: center; }
  .em-order-summary { position: static; margin-top: 28px; }
  #to-top { bottom: 70px; right: 16px; width: 40px; height: 40px; }
}

@media (max-width: 767px) {
  .em-announcement-bar { font-size: 9px; padding: 6px 10px; }
  .shopmag-home-image { height: 260px; border-radius: var(--em-radius-sm); }
  .shop-products .col-md-3 { width: 50%; }
  .shopmag-shop-left-column { padding-right: 0; margin-bottom: 20px; }
  .product .image .hover { opacity: 1 !important; transform: translateX(-50%) translateY(0) !important; }
  .em-wishlist-btn { opacity: 1 !important; }
  .em-checkout-body { padding: 20px 16px 60px; }
  .em-step-label { display: none; }
  .em-step-line { width: 24px; }
  .modal-dialog { margin: 8px !important; max-width: calc(100vw - 16px) !important; }
  .bottom-footer .text-wrapper { text-align: left !important; }
  .em-toast-container { top: 60px; right: 10px; left: 10px; }
  .em-toast { min-width: unset; max-width: 100%; }
  .em-search-dropdown { min-width: unset; left: -80px; right: -20px; }
}

@media (max-width: 480px) {
  .shop-products .col-md-3 { padding: 0 4px 12px; }
  .product .image .hover .btn:last-child { display: none; }
  .em-announcement-bar { display: none; }
  .em-rating-summary { flex-direction: column; align-items: flex-start; }
  .em-reviews-header { flex-direction: column; }
}

/* Utility */
html { scroll-behavior: smooth; }
::selection { background: var(--em-accent); color: var(--em-white); }
hr { border: none; border-top: 1px solid var(--em-border) !important; margin: 20px 0; }

/* ══════════════════════════════════════════════════════════════
   MEDIUM PRIORITY — v5
   1. Quick View Modal  2. Image Zoom  3. Grid/List Toggle
   4. Urgency Elements  5. Accessibility  6. Skeleton Loaders
   7. Empty States      8. Cookie Consent
   ══════════════════════════════════════════════════════════════ */

/* ── 1. QUICK VIEW MODAL ─────────────────────────────────────── */
.js-shopmang2-modal .modal-dialog {
  max-width: 860px !important;
  margin: 40px auto !important;
}
.js-shopmang2-modal .modal-body {
  padding: 0 !important;
}
/* Two-column layout inside quick view */
.js-shopmang2-modal .modal-body .row {
  margin: 0 !important;
  min-height: 480px;
}
.js-shopmang2-modal .modal-body .col-6:first-child {
  padding: 0 !important;
  background: var(--em-cream);
  border-radius: var(--em-radius-lg) 0 0 var(--em-radius-lg);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.js-shopmang2-modal .modal-body .col-6:first-child img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.4,0,.2,1);
}
.js-shopmang2-modal .modal-body .col-6:first-child:hover img {
  transform: scale(1.04);
}
.js-shopmang2-modal .modal-body .col-6:last-child,
.js-shopmang2-modal .modal-body .p-5 {
  padding: 36px !important;
  display: flex !important; flex-direction: column !important;
  justify-content: center !important;
  background: var(--em-white);
}
.js-shopmang2-modal .modal-body h5 {
  font-family: var(--em-font-display);
  font-size: 22px; font-weight: 600;
  letter-spacing: -.02em; color: var(--em-text);
  margin-bottom: 10px; line-height: 1.3;
}
.js-shopmang2-modal .modal-body .price {
  font-size: 20px; font-weight: 700; color: var(--em-text);
}
.js-shopmang2-modal .modal-body .price-old {
  font-size: 14px; color: var(--em-muted);
  text-decoration: line-through; margin-right: 6px;
}
.js-shopmang2-modal .modal-body .price-holder {
  margin-bottom: 16px;
}
/* Quick view buttons */
.js-shopmang2-modal .modal-body .btn-outline-primary {
  background: var(--em-black) !important;
  color: var(--em-white) !important;
  border-color: var(--em-black) !important;
  font-size: 12px !important; font-weight: 600 !important;
  letter-spacing: .1em !important; text-transform: uppercase !important;
  padding: 12px 28px !important; border-radius: var(--em-radius-sm) !important;
  transition: all var(--em-t) !important;
}
.js-shopmang2-modal .modal-body .btn-outline-primary:hover {
  background: transparent !important; color: var(--em-black) !important;
}
/* View full details link */
.js-shopmang2-modal .modal-body .em-qv-full-link {
  display: block; font-size: 12px; color: var(--em-muted);
  margin-top: 12px; transition: color var(--em-t);
  letter-spacing: .04em;
}
.js-shopmang2-modal .modal-body .em-qv-full-link:hover { color: var(--em-accent); }
/* Stock indicator */
.js-shopmang2-modal .text-danger { color: var(--em-danger) !important; font-size: 13px; }
/* Close button */
.js-shopmang2-modal .modal-header {
  position: absolute !important; top: 8px; right: 8px;
  border: none !important; padding: 0 !important; z-index: 10;
  background: transparent !important;
}
.js-shopmang2-modal .btn-close {
  width: 32px; height: 32px; background: rgba(0,0,0,.4) !important;
  border-radius: var(--em-radius-pill) !important;
  opacity: 1 !important; filter: invert(1);
  transition: background var(--em-t) !important;
}
.js-shopmang2-modal .btn-close:hover { background: rgba(0,0,0,.7) !important; }

/* Mobile quick view — stack */
@media (max-width: 767px) {
  .js-shopmang2-modal .modal-dialog { margin: 10px !important; }
  .js-shopmang2-modal .modal-body .col-6 { width: 100% !important; }
  .js-shopmang2-modal .modal-body .col-6:first-child {
    border-radius: var(--em-radius-lg) var(--em-radius-lg) 0 0 !important;
    min-height: 280px;
  }
  .js-shopmang2-modal .modal-body .p-5 { padding: 24px !important; }
}

[data-theme="dark"] .js-shopmang2-modal .modal-body .col-6:last-child,
[data-theme="dark"] .js-shopmang2-modal .modal-body .p-5 { background: #1e1b18 !important; }
[data-theme="dark"] .js-shopmang2-modal .modal-body .col-6:first-child { background: #252018 !important; }

/* ── 2. IMAGE ZOOM ───────────────────────────────────────────── */
/* Zoom container — wraps the main product image */
.em-zoom-wrap {
  position: relative;
  overflow: hidden;
  cursor: zoom-in;
  border-radius: var(--em-radius-md);
  background: var(--em-cream);
}
.em-zoom-wrap img {
  width: 100%; display: block;
  transition: transform .1s linear;
  transform-origin: 0 0;
  pointer-events: none;
}
.em-zoom-wrap.zoomed { cursor: zoom-out; }
.em-zoom-wrap.zoomed img { transform: scale(2); }

/* Lightbox overlay */
.em-lightbox {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.92);
  z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s;
}
.em-lightbox.open { opacity: 1; pointer-events: all; }
.em-lightbox-img {
  max-width: 90vw; max-height: 90vh;
  object-fit: contain;
  border-radius: var(--em-radius-md);
  box-shadow: 0 24px 80px rgba(0,0,0,.6);
  transition: transform .4s cubic-bezier(.4,0,.2,1);
}
.em-lightbox-close {
  position: absolute; top: 20px; right: 20px;
  width: 44px; height: 44px; border-radius: var(--em-radius-pill);
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3);
  color: var(--em-white); font-size: 22px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background var(--em-t);
  line-height: 1;
}
.em-lightbox-close:hover { background: rgba(255,255,255,.3); }
.em-lightbox-prev, .em-lightbox-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px; border-radius: var(--em-radius-pill);
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
  color: var(--em-white); font-size: 20px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background var(--em-t);
}
.em-lightbox-prev { left: 20px; }
.em-lightbox-next { right: 20px; }
.em-lightbox-prev:hover, .em-lightbox-next:hover { background: rgba(255,255,255,.3); }
.em-lightbox-hint {
  position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
  font-size: 11px; color: rgba(255,255,255,.4); letter-spacing: .08em;
}
/* Zoom icon on thumbnail hover */
.shop-inner-page .module-pictures-holder .picture-item {
  position: relative; cursor: pointer;
}
.em-zoom-icon {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0); transition: background var(--em-t);
  border-radius: var(--em-radius-md);
}
.em-zoom-icon i {
  font-size: 24px; color: #fff;
  opacity: 0; transform: scale(.7);
  transition: opacity var(--em-t), transform var(--em-t);
}
.shop-inner-page .module-pictures-holder .picture-item:hover .em-zoom-icon { background: rgba(0,0,0,.25); }
.shop-inner-page .module-pictures-holder .picture-item:hover .em-zoom-icon i { opacity: 1; transform: scale(1); }

/* ── 3. GRID / LIST VIEW TOGGLE ──────────────────────────────── */
.em-view-toggle {
  display: flex; gap: 4px; align-items: center;
}
.em-view-btn {
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  background: var(--em-white); color: var(--em-muted);
  cursor: pointer; font-size: 16px;
  transition: all var(--em-t);
}
.em-view-btn:hover { border-color: var(--em-text); color: var(--em-text); }
.em-view-btn.active {
  background: var(--em-black); color: var(--em-white);
  border-color: var(--em-black);
}
[data-theme="dark"] .em-view-btn { background: var(--em-off-white); border-color: var(--em-border); }
[data-theme="dark"] .em-view-btn.active { background: var(--em-accent); border-color: var(--em-accent); color: #141210; }

/* List view product layout */
.shop-products.em-list-view .col-md-3,
.shop-products.em-list-view .col-lg-3 {
  width: 100% !important;
}
.shop-products.em-list-view .product {
  display: flex !important; gap: 20px; align-items: flex-start;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  padding: 16px; margin-bottom: 12px;
  background: var(--em-white);
  transition: box-shadow var(--em-t);
}
.shop-products.em-list-view .product:hover { box-shadow: var(--em-shadow-md); }
.shop-products.em-list-view .product .image {
  width: 140px !important; height: 180px !important;
  aspect-ratio: unset !important; flex-shrink: 0;
}
.shop-products.em-list-view .product > a {
  display: flex !important; flex: 1; gap: 20px; align-items: flex-start;
}
.shop-products.em-list-view .product .title {
  font-size: 16px !important; font-weight: 600 !important;
  font-family: var(--em-font-display) !important;
}
.shop-products.em-list-view .product .money {
  font-size: 16px !important;
}
.shop-products.em-list-view .product .image .hover {
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
}
[data-theme="dark"] .shop-products.em-list-view .product {
  background: var(--em-off-white) !important; border-color: var(--em-border) !important;
}

/* ── 4. URGENCY ELEMENTS ─────────────────────────────────────── */
/* Low stock warning */
.em-low-stock {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600;
  color: var(--em-danger);
  background: rgba(192,57,43,.08);
  padding: 5px 10px; border-radius: var(--em-radius-pill);
  margin-bottom: 12px;
}
.em-low-stock i { font-size: 14px; }
.em-low-stock-pulse {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--em-danger);
  animation: em-pulse 1.4s ease infinite;
  flex-shrink: 0;
}
@keyframes em-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(1.3); }
}

/* Countdown timer */
.em-countdown {
  display: flex; gap: 8px; align-items: center;
  margin-bottom: 14px;
}
.em-countdown-label {
  font-size: 11px; font-weight: 600; color: var(--em-muted);
  letter-spacing: .06em; text-transform: uppercase; margin-right: 4px;
}
.em-countdown-unit {
  display: flex; flex-direction: column; align-items: center;
  background: var(--em-black); color: var(--em-white);
  border-radius: var(--em-radius-sm);
  min-width: 44px; padding: 6px 8px;
}
.em-countdown-num { font-size: 18px; font-weight: 700; line-height: 1; font-family: var(--em-font-display); }
.em-countdown-sub { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.5); margin-top: 2px; }
.em-countdown-sep { font-size: 18px; font-weight: 700; color: var(--em-muted); align-self: flex-start; margin-top: 6px; }

[data-theme="dark"] .em-countdown-unit { background: var(--em-accent); color: #141210; }
[data-theme="dark"] .em-countdown-sub { color: rgba(0,0,0,.5); }

/* Social proof signal */
.em-social-proof {
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; color: var(--em-muted);
  margin-bottom: 10px;
}
.em-social-proof i { font-size: 14px; color: var(--em-accent); }
.em-social-proof strong { color: var(--em-text); }

/* Sale badge on product cards */
.product .em-sale-badge {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-size: 9px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 4px 9px;
  border-radius: var(--em-radius-pill);
  background: var(--em-accent); color: var(--em-white);
}
.product .em-new-badge {
  position: absolute; top: 10px; left: 10px; z-index: 2;
  font-size: 9px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 4px 9px;
  border-radius: var(--em-radius-pill);
  background: var(--em-black); color: var(--em-white);
}

/* ── 5. ACCESSIBILITY ────────────────────────────────────────── */
/* Skip to content */
.em-skip-link {
  position: absolute; top: -60px; left: 16px;
  background: var(--em-accent); color: var(--em-white);
  font-size: 13px; font-weight: 600; letter-spacing: .06em;
  padding: 10px 20px; border-radius: 0 0 var(--em-radius-sm) var(--em-radius-sm);
  z-index: 9999; transition: top .2s;
  text-transform: uppercase;
}
.em-skip-link:focus { top: 0; color: var(--em-white); }

/* Visible focus rings on all interactive elements */
*:focus-visible {
  outline: 2.5px solid var(--em-accent) !important;
  outline-offset: 3px !important;
  border-radius: var(--em-radius-sm);
}
/* Remove focus ring for mouse users */
*:focus:not(:focus-visible) { outline: none; }

/* High contrast text helpers */
.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;
}

/* ── 6. SKELETON LOADERS ─────────────────────────────────────── */
@keyframes em-shimmer {
  0%   { background-position: -600px 0; }
  100% { background-position: 600px 0; }
}
.em-skeleton {
  background: linear-gradient(90deg, var(--em-cream) 25%, var(--em-off-white) 50%, var(--em-cream) 75%);
  background-size: 600px 100%;
  animation: em-shimmer 1.4s infinite linear;
  border-radius: var(--em-radius-sm);
  display: block;
}
[data-theme="dark"] .em-skeleton {
  background: linear-gradient(90deg, #252018 25%, #302c26 50%, #252018 75%);
  background-size: 600px 100%;
}

/* Product card skeleton */
.em-product-skeleton .em-sk-image {
  width: 100%; aspect-ratio: 3/4;
  border-radius: var(--em-radius-md);
  margin-bottom: 10px;
}
.em-product-skeleton .em-sk-title { height: 14px; width: 75%; margin-bottom: 6px; }
.em-product-skeleton .em-sk-price { height: 14px; width: 40%; }

/* Blog card skeleton */
.em-blog-skeleton .em-sk-img { width: 100%; aspect-ratio: 16/10; border-radius: var(--em-radius-md); margin-bottom: 12px; }
.em-blog-skeleton .em-sk-date { height: 10px; width: 30%; margin-bottom: 8px; }
.em-blog-skeleton .em-sk-title { height: 16px; width: 85%; margin-bottom: 6px; }
.em-blog-skeleton .em-sk-line { height: 12px; margin-bottom: 4px; }
.em-blog-skeleton .em-sk-line:last-child { width: 65%; }

/* ── 7. EMPTY STATES ─────────────────────────────────────────── */
.em-empty-state {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 60px 24px; text-align: center;
}
.em-empty-icon {
  width: 80px; height: 80px; border-radius: var(--em-radius-pill);
  background: var(--em-cream); color: var(--em-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 36px; margin-bottom: 20px;
  transition: background .3s;
}
[data-theme="dark"] .em-empty-icon { background: #302c26; }
.em-empty-title {
  font-family: var(--em-font-display);
  font-size: 22px; font-weight: 600; color: var(--em-text);
  margin-bottom: 8px;
}
.em-empty-text {
  font-size: 14px; color: var(--em-muted);
  line-height: 1.7; max-width: 320px; margin-bottom: 24px;
}
.em-empty-cta {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 28px;
  cursor: pointer; transition: background var(--em-t);
  font-family: var(--em-font-body);
}
.em-empty-cta:hover { background: var(--em-accent); color: var(--em-white); }
[data-theme="dark"] .em-empty-cta { background: var(--em-accent); color: #141210; }

/* Cart-specific empty SVG illustration */
.em-empty-cart-svg { width: 120px; height: 120px; margin-bottom: 20px; opacity: .6; }

/* ── 8. COOKIE CONSENT ───────────────────────────────────────── */
.em-cookie-bar {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--em-black); color: rgba(255,255,255,.75);
  padding: 16px 24px;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
  z-index: 8000;
  transform: translateY(100%);
  transition: transform .4s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 -4px 24px rgba(0,0,0,.2);
}
.em-cookie-bar.show { transform: translateY(0); }
.em-cookie-text {
  flex: 1; font-size: 13px; line-height: 1.6; min-width: 200px;
}
.em-cookie-text a { color: var(--em-accent); border-bottom: 1px solid rgba(200,169,110,.35); }
.em-cookie-text a:hover { border-bottom-color: var(--em-accent); }
.em-cookie-actions { display: flex; gap: 10px; flex-shrink: 0; flex-wrap: wrap; }
.em-cookie-accept {
  background: var(--em-accent); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 10px 20px;
  cursor: pointer; transition: background var(--em-t);
  font-family: var(--em-font-body);
}
.em-cookie-accept:hover { background: var(--em-accent-dark); }
.em-cookie-decline {
  background: transparent; color: rgba(255,255,255,.5);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--em-radius-sm);
  font-size: 11px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; padding: 10px 20px;
  cursor: pointer; transition: all var(--em-t);
  font-family: var(--em-font-body);
}
.em-cookie-decline:hover { color: rgba(255,255,255,.8); border-color: rgba(255,255,255,.4); }
.em-cookie-settings {
  background: none; border: none; color: rgba(255,255,255,.4);
  font-size: 11px; cursor: pointer; text-decoration: underline;
  font-family: var(--em-font-body); transition: color var(--em-t);
  padding: 10px 0;
}
.em-cookie-settings:hover { color: rgba(255,255,255,.7); }

/* Mobile cookie bar */
@media (max-width: 767px) {
  .em-cookie-bar { padding: 14px 16px 24px; flex-direction: column; align-items: stretch; }
  .em-cookie-actions { flex-direction: column; }
  .em-cookie-accept, .em-cookie-decline { width: 100%; text-align: center; }
  /* Offset back-to-top button */
  #to-top { bottom: 100px !important; }
}

/* ══════════════════════════════════════════════════════════════
   BUG FIXES v5 — Based on live site screenshots
   Fix 1: Footer background + contrast (middle-footer overriding)
   Fix 2: Footer bullet points from menu module
   Fix 3: Product images not showing (aspect-ratio vs height:600px)
   ══════════════════════════════════════════════════════════════ */

/* ── FIX 1: FOOTER BACKGROUND + CONTRAST ────────────────────── */
/* .middle-footer has its own background-color: #f4f4f4 in main.css
   We need higher specificity to override it */

.site-footer,
.site-footer.default,
.middle-footer,
body .site-footer,
body .middle-footer,
body .site-footer .middle-footer {
  background-color: #111009 !important;
  background-image: none !important;
  color: rgba(255,255,255,.65) !important;
}

/* Bottom footer */
.bottom-footer,
body .bottom-footer {
  background-color: #0a0908 !important;
  background-image: none !important;
  color: rgba(255,255,255,.4) !important;
  border-top: 1px solid rgba(255,255,255,.1) !important;
}

/* All text inside footer */
.site-footer *,
.middle-footer *,
.bottom-footer * {
  color: rgba(255,255,255,.6);
}

/* Headings inside footer — bright white */
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer .footer-titles,
.site-footer .title-content h3,
.middle-footer h3,
.middle-footer h4 {
  color: #ffffff !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  margin-bottom: 20px !important;
}

/* Description text */
.site-footer p,
.site-footer .description,
.middle-footer p,
.newsletter-wrapper .description {
  color: rgba(255,255,255,.5) !important;
  font-size: 13px !important;
  line-height: 1.6 !important;
}

/* Footer links */
.site-footer a,
.middle-footer a,
.bottom-footer a {
  color: rgba(255,255,255,.55) !important;
  transition: color var(--em-t) !important;
}
.site-footer a:hover,
.middle-footer a:hover,
.bottom-footer a:hover {
  color: var(--em-accent) !important;
}

/* Copyright text */
.bottom-footer .content,
.bottom-footer .text-wrapper,
.bottom-footer p,
.bottom-footer span {
  color: rgba(255,255,255,.35) !important;
  font-size: 12px !important;
}

/* ── FIX 2: REMOVE BULLET POINTS FROM FOOTER MENUS ──────────── */
/* The simple menu template renders a bare <ul> with no class
   Bootstrap's reset adds padding-left: 2rem and list-style bullets */

.site-footer ul,
.middle-footer ul,
.bottom-footer ul,
.site-footer .module-menu ul,
.site-footer .menu ul,
.vertical-link-list-wrapper ul,
.horizontal-link-list-wrapper ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  margin-bottom: 0 !important;
}

.site-footer ul li,
.middle-footer ul li,
.bottom-footer ul li,
.vertical-link-list-wrapper ul li,
.horizontal-link-list-wrapper ul li {
  list-style: none !important;
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  /* Keep original margin-top/bottom from main.css */
}

/* Remove any ::marker pseudo-element bullets */
.site-footer ul li::marker,
.middle-footer ul li::marker,
.bottom-footer ul li::marker,
.vertical-link-list-wrapper ul li::marker,
.horizontal-link-list-wrapper ul li::marker {
  content: none !important;
  display: none !important;
}

/* Horizontal bottom menu — inline */
.horizontal-link-list-wrapper ul {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0 4px !important;
}
.horizontal-link-list-wrapper ul li {
  display: inline-flex !important;
  align-items: center !important;
}
.horizontal-link-list-wrapper ul li::before {
  content: none !important;
}

/* ── FIX 3: PRODUCT IMAGE HEIGHT ─────────────────────────────── */
/* Original main.css uses height: 600px with background-image inline.
   Our aspect-ratio: 3/4 was collapsing the div when the browser
   couldn't resolve both constraints. Fix: use padding-top trick
   instead of aspect-ratio, matching the original approach. */

.shop-products .product .image {
  /* Remove our aspect-ratio override — use the original height */
  aspect-ratio: unset !important;
  /* Ensure the background-image (set inline by Blade template) always shows */
  height: 360px !important;   /* reduced from 600px — better for 4-col layout */
  min-height: 200px !important;
  width: 100% !important;
  display: block !important;
  overflow: hidden !important;
  position: relative !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
  background-color: var(--em-cream) !important;
  border-radius: var(--em-radius-md) !important;
}

.shopmag-shop-right-column > .row:first-child {
  margin-bottom: 32px;
}

.shop-products {
  margin-top: 20px;
}

.home-slider .img-holder {
  position: relative;
  overflow: hidden;
  display: flex;
  background: var(--em-black, #0d0d0d) !important;
}

.home-slider .img-holder .slider-bg-img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  pointer-events: none;
}

.home-slider .img-holder:before {
  background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.50) 30%, rgba(0,0,0,.18) 55%, rgba(0,0,0,0) 80%) !important;
}

.home-slider .shopmag-slider-heading {
  color: #ffffff !important;
  text-shadow: 0 6px 40px rgba(0,0,0,.45);
  font-weight: 600 !important;
  letter-spacing: -0.5px !important;
}

/* Editorial accent line between heading and subtitle */
.home-slider .shopmag-slider-heading::after {
  content: '';
  display: block;
  width: 48px;
  height: 2px;
  background: var(--em-accent, #c8a96e);
  margin-top: 18px;
  margin-bottom: 18px;
}

.home-slider .shopmag-slider-subtitle {
  color: rgba(255,255,255,.8) !important;
  text-shadow: 0 2px 20px rgba(0,0,0,.35);
  font-weight: 300 !important;
  letter-spacing: 0.3px !important;
  max-width: 480px;
  line-height: 1.6 !important;
}

.home-slider .shopmag-btn-skin-home-slider {
  color: var(--em-accent, #c8a96e) !important;
  border-color: var(--em-accent, #c8a96e) !important;
  text-shadow: none;
  background: transparent !important;
  letter-spacing: 1.5px !important;
  font-weight: 500 !important;
  padding: 12px 32px !important;
  min-height: 48px !important;
  transition: all .3s ease !important;
}
.home-slider .shopmag-btn-skin-home-slider:hover {
  background: var(--em-accent, #c8a96e) !important;
  color: #0d0d0d !important;
  border-color: var(--em-accent, #c8a96e) !important;
}

/* 3-column layouts get a slightly taller image */
.shop-products .product .image-square-3-colums-horizontal {
  height: 280px !important;
  aspect-ratio: unset !important;
  border-radius: var(--em-radius-md) !important;
}
/* 2-column layouts */
.shop-products .product .image-square-2-colums-horizontal {
  height: 420px !important;
  aspect-ratio: unset !important;
  border-radius: var(--em-radius-md) !important;
}

/* Hover overlay — keeps working with fixed height */
.shop-products .product .image::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0,0,0,0) !important;
  transition: background var(--em-t) !important;
  border-radius: var(--em-radius-md) !important;
}
.shop-products .product:hover .image::after {
  background: rgba(0,0,0,.12) !important;
}

/* Quick-action hover buttons — bottom of image */
.shop-products .product .hover {
  visibility: hidden !important;
  opacity: 0 !important;
  position: absolute !important;
  bottom: 12px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) translateY(8px) !important;
  display: flex !important;
  gap: 7px !important;
  transition: opacity var(--em-t), transform var(--em-t) !important;
  z-index: 3 !important;
}
.shop-products .product:hover .hover {
  visibility: visible !important;
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
  transition: all var(--em-t) !important;
}
/* Touch: always show action buttons */
@media (hover: none) {
  .shop-products .product .hover {
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(-50%) translateY(0) !important;
  }
}

/* Contact information cards */
.section-22 .box {
  position: relative;
  gap: 18px;
  padding: 24px 28px;
  cursor: default;
}

.section-22 .box .icon-holder {
  flex: 0 0 44px;
  width: 44px;
  text-align: center;
}

.section-22 .box .text-holder {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
}

.section-22 .box .text-holder p {
  margin-bottom: 6px;
}

.section-22 .contact-phone-line {
  display: block;
  white-space: nowrap;
}

.section-22 .contact-phone-line + .contact-phone-line {
  margin-top: 5px;
}

.section-22 .contact-phone-line small {
  color: inherit;
  font-size: 0.78em;
}

.section-22 .socials-holder {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  flex: 0 0 calc(100% - 62px);
  margin: 2px 0 0 62px;
}

.section-22 .contact-social-box {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 8px 18px;
}

.section-22 .contact-social-box .icon-holder {
  grid-row: 1 / span 2;
}

.section-22 .contact-social-box .socials-holder {
  grid-column: 2;
  margin: 0;
  width: 100%;
  justify-self: start;
}

.section-22 .socials-holder ul.socials {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.section-22 .socials-holder ul.socials li {
  margin: 0;
}

.section-22 .socials-holder ul.socials li a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 575px) {
  .section-22 .box {
    gap: 10px;
  }

  .section-22 .socials-holder {
    flex-basis: 100%;
    margin: 8px 0 0;
  }
}
/* Action button styles */
.shop-products .product .hover .btn {
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  flex: 0 0 40px !important;
  height: 40px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #0d0d0d !important;
  border: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  box-shadow: 0 2px 12px rgba(0,0,0,.15) !important;
  line-height: 1 !important;
  transition: all var(--em-t) !important;
}
.shop-products .product .hover .btn:hover {
  background: #0d0d0d !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}

/* Responsive image heights */
@media (max-width: 1200px) {
  .shop-products .product .image { height: 300px !important; }
}
@media (max-width: 991px) {
  .shop-products .product .image { height: 280px !important; }
}
@media (max-width: 767px) {
  .shop-products .product .image { height: 240px !important; border-radius: 6px !important; }
  .shop-products .product .image-square-2-colums-horizontal { height: 220px !important; }
}
@media (max-width: 480px) {
  .shop-products .product .image { height: 200px !important; }
}

/* Home hero uses wide campaign artwork with copy in the open left area. */
@media (min-width: 768px) {
  #module-layouts-1-slider .bx-wrapper,
  #module-layouts-1-slider .bx-viewport,
  #module-layouts-1-slider .slide,
  #module-layouts-1-slider .img-holder {
    height: clamp(500px, 52vw, 640px) !important;
    min-height: clamp(500px, 52vw, 640px) !important;
  }

  #module-layouts-1-slider .img-holder {
    align-items: center;
    justify-content: center;
    background: var(--em-black, #0d0d0d) !important;
  }

  #module-layouts-1-slider .info-holder {
    width: min(50%, 600px);
    max-width: none;
    margin-right: auto;
    margin-left: clamp(80px, 12vw, 180px);
    text-align: left;
  }
}

@media (max-width: 767px) {
  #module-layouts-1-slider .bx-wrapper,
  #module-layouts-1-slider .bx-viewport,
  #module-layouts-1-slider .slide,
  #module-layouts-1-slider .img-holder {
    height: clamp(420px, 130vw, 560px) !important;
    min-height: clamp(420px, 130vw, 560px) !important;
  }

  #module-layouts-1-slider .img-holder {
    background: var(--em-black, #0d0d0d) !important;
  }

  #module-layouts-1-slider .info-holder {
    margin: 0 20px;
    padding: 24px !important;
    background: rgba(0, 0, 0, 0.65);
    border-radius: var(--em-radius-sm);
    backdrop-filter: blur(4px);
  }
}

/* ── EXTRA: NEWSLETTER INPUT IN DARK FOOTER ──────────────────── */
/* More specific selectors for the contact_form module */
.middle-footer .contact_form input,
.middle-footer .contact_form textarea,
.middle-footer input[type="email"],
.middle-footer input[type="text"],
.newsletter-wrapper input[type="email"],
.newsletter-wrapper input[type="text"] {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: var(--em-radius-sm) !important;
  color: #ffffff !important;
  font-size: 14px !important;
  padding: 12px 16px !important;
  width: 100% !important;
}
.middle-footer input::placeholder,
.newsletter-wrapper input::placeholder {
  color: rgba(255,255,255,.35) !important;
}
.middle-footer input:focus,
.newsletter-wrapper input:focus {
  border-color: var(--em-accent) !important;
  outline: none !important;
  box-shadow: none !important;
  background: rgba(255,255,255,.12) !important;
}

/* Subscribe button */
.middle-footer .contact_form button,
.middle-footer .contact_form input[type="submit"],
.middle-footer .contact_form .btn,
.newsletter-wrapper button,
.newsletter-wrapper input[type="submit"],
.newsletter-wrapper .btn-primary {
  background: var(--em-accent) !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  padding: 13px 28px !important;
  cursor: pointer !important;
  margin-top: 8px !important;
  transition: background var(--em-t) !important;
}
.middle-footer .contact_form button:hover,
.newsletter-wrapper button:hover {
  background: var(--em-accent-dark) !important;
}

/* Social icons in dark footer */
.site-footer .footer-socials li a,
.site-footer .footer-socials i,
.site-footer [class*="social"] li a {
  color: rgba(255,255,255,.55) !important;
  transition: color var(--em-t) !important;
}
.site-footer .footer-socials li a:hover,
.site-footer [class*="social"] li a:hover {
  color: var(--em-accent) !important;
}

/* ══════════════════════════════════════════════════════════════
   v6 — Conversion & UX Layer
   1. Sticky ATC bar   2. Recently Viewed   3. Size Guide
   4. Cart Upsell      5. Related Carousel  6. Account Dashboard
   7. UGC/Instagram    8. Lazy load + Print
   ══════════════════════════════════════════════════════════════ */

/* ── 1. STICKY ADD-TO-CART BAR ───────────────────────────────── */
.em-sticky-atc {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--em-white);
  border-top: 1px solid var(--em-border);
  padding: 12px 20px;
  z-index: 500;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 -4px 20px rgba(0,0,0,.08);
  transform: translateY(100%);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
}
.em-sticky-atc.visible { transform: translateY(0); }

.em-sticky-atc-img {
  width: 48px; height: 60px;
  border-radius: var(--em-radius-sm);
  object-fit: cover;
  background: var(--em-cream);
  flex-shrink: 0;
}
.em-sticky-atc-info { flex: 1; min-width: 0; }
.em-sticky-atc-title {
  font-size: 13px; font-weight: 600;
  color: var(--em-text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.em-sticky-atc-price { font-size: 13px; font-weight: 700; color: var(--em-text); margin-top: 2px; }
.em-sticky-atc-btn {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 28px;
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-sticky-atc-btn:hover { background: var(--em-accent); }

[data-theme="dark"] .em-sticky-atc {
  background: #1e1b18 !important;
  border-top-color: #302c26 !important;
}
[data-theme="dark"] .em-sticky-atc-btn { background: var(--em-accent) !important; color: #141210 !important; }

/* Offset back-to-top and cookie bar when sticky ATC is visible */
.em-sticky-atc-active #to-top { bottom: 80px !important; }

@media (max-width: 767px) {
  .em-sticky-atc { padding: 10px 14px; gap: 10px; }
  .em-sticky-atc-img { display: none; }
  .em-sticky-atc-btn { padding: 12px 18px !important; font-size: 11px !important; }
  .em-sticky-atc-active #to-top { bottom: 90px !important; }
  .em-sticky-atc-active .em-cookie-bar { bottom: 68px !important; }
}

/* ── 2. RECENTLY VIEWED ──────────────────────────────────────── */
.em-recently-viewed {
  padding: 48px 0;
  border-top: 1px solid var(--em-border);
  margin-top: 0;
}
.em-recently-viewed-header {
  display: flex; align-items: flex-end;
  justify-content: space-between; margin-bottom: 24px;
}
.em-recently-viewed-title {
  font-family: var(--em-font-display);
  font-size: 22px; font-weight: 600;
  letter-spacing: -.02em; color: var(--em-text);
}
.em-recently-viewed-clear {
  font-size: 11px; color: var(--em-muted);
  cursor: pointer; transition: color var(--em-t);
  border-bottom: 1px solid var(--em-border);
  padding-bottom: 1px;
}
.em-recently-viewed-clear:hover { color: var(--em-danger); border-color: var(--em-danger); }

.em-recently-viewed-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}
.em-rv-item {
  cursor: pointer;
}
.em-rv-img {
  width: 100%; height: 200px;
  border-radius: var(--em-radius-md);
  background: var(--em-cream);
  overflow: hidden;
  margin-bottom: 8px;
  position: relative;
}
.em-rv-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.em-rv-item:hover .em-rv-img img { transform: scale(1.05); }
.em-rv-name { font-size: 12px; font-weight: 500; color: var(--em-text); margin-bottom: 3px; transition: color var(--em-t); }
.em-rv-item:hover .em-rv-name { color: var(--em-accent-dark); }
.em-rv-price { font-size: 12px; font-weight: 600; color: var(--em-text); }

@media (max-width: 991px) { .em-recently-viewed-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 767px) { .em-recently-viewed-grid { grid-template-columns: repeat(3, 1fr); } .em-rv-img { height: 150px; } }
@media (max-width: 480px) { .em-recently-viewed-grid { grid-template-columns: repeat(2, 1fr); } }

/* ── 3. SIZE GUIDE MODAL ─────────────────────────────────────── */
.em-size-guide-btn {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; color: var(--em-muted);
  cursor: pointer; border-bottom: 1px dashed var(--em-border);
  padding-bottom: 1px; transition: all var(--em-t);
  background: none; border-top: none; border-left: none; border-right: none;
  font-family: var(--em-font-body);
  margin-bottom: 14px;
}
.em-size-guide-btn:hover { color: var(--em-accent-dark); border-bottom-color: var(--em-accent); }
.em-size-guide-btn i { font-size: 14px; }

.em-size-guide-modal .modal-dialog { max-width: 640px !important; }
.em-size-guide-modal .modal-header {
  padding: 18px 22px !important;
  border-bottom: 1px solid var(--em-border) !important;
}
.em-size-guide-modal .modal-title {
  font-family: var(--em-font-display);
  font-size: 18px; font-weight: 600;
}

/* Size guide tabs */
.em-sg-tabs {
  display: flex; border-bottom: 1px solid var(--em-border);
  margin-bottom: 20px;
}
.em-sg-tab {
  font-size: 12px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; padding: 10px 16px;
  cursor: pointer; color: var(--em-muted);
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: all var(--em-t);
}
.em-sg-tab.active { color: var(--em-text); border-bottom-color: var(--em-accent); }
.em-sg-content { display: none; }
.em-sg-content.active { display: block; }

/* Size table */
.em-size-table {
  width: 100%; border-collapse: collapse; font-size: 13px;
}
.em-size-table th {
  background: var(--em-off-white);
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  padding: 10px 12px; text-align: center;
  border-bottom: 1px solid var(--em-border);
}
.em-size-table td {
  padding: 10px 12px; text-align: center;
  border-bottom: 1px solid var(--em-border);
  color: var(--em-text); font-size: 13px;
}
.em-size-table tr:last-child td { border-bottom: none; }
.em-size-table tr:hover td { background: var(--em-off-white); }
.em-size-table td:first-child { font-weight: 700; }
.em-sg-note {
  font-size: 12px; color: var(--em-muted); margin-top: 14px;
  padding: 10px 14px; background: var(--em-off-white);
  border-radius: var(--em-radius-sm); line-height: 1.6;
}

[data-theme="dark"] .em-size-table th { background: #252018; }
[data-theme="dark"] .em-size-table tr:hover td { background: #252018; }
[data-theme="dark"] .em-sg-note { background: #252018; }

/* ── 4. CART UPSELL ──────────────────────────────────────────── */
.em-cart-upsell {
  border-top: 1px solid var(--em-border);
  padding: 16px 0 0;
  margin-top: 4px;
}
.em-cart-upsell-title {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  margin-bottom: 12px;
}
.em-upsell-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0; border-bottom: 1px solid var(--em-border);
  cursor: pointer; transition: background var(--em-t);
}
.em-upsell-item:last-child { border-bottom: none; }
.em-upsell-img {
  width: 52px; height: 66px; border-radius: var(--em-radius-sm);
  object-fit: cover; background: var(--em-cream); flex-shrink: 0;
}
.em-upsell-info { flex: 1; min-width: 0; }
.em-upsell-name { font-size: 12px; font-weight: 500; color: var(--em-text); margin-bottom: 2px; }
.em-upsell-price { font-size: 12px; font-weight: 600; color: var(--em-text); }
.em-upsell-add {
  width: 30px; height: 30px; border-radius: var(--em-radius-pill);
  border: 1.5px solid var(--em-border);
  background: transparent; color: var(--em-text);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 16px;
  transition: all var(--em-t); flex-shrink: 0;
}
.em-upsell-add:hover {
  background: var(--em-black); color: var(--em-white);
  border-color: var(--em-black);
}
[data-theme="dark"] .em-upsell-add:hover { background: var(--em-accent); border-color: var(--em-accent); color: #141210; }

/* ── 5. RELATED PRODUCTS CAROUSEL ───────────────────────────── */
.em-carousel-wrap {
  position: relative;
  overflow: hidden;
}
.em-carousel-track {
  display: flex;
  gap: 16px;
  transition: transform .4s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.em-carousel-track .product,
.em-carousel-track .em-carousel-item {
  flex: 0 0 calc(25% - 12px);
  min-width: 0;
}
.em-carousel-btn {
  position: absolute; top: 35%;
  transform: translateY(-50%);
  width: 40px; height: 40px; border-radius: var(--em-radius-pill);
  background: var(--em-white); color: var(--em-text);
  border: 1px solid var(--em-border);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 18px; z-index: 4;
  box-shadow: var(--em-shadow-md);
  transition: all var(--em-t);
}
.em-carousel-btn:hover { background: var(--em-black); color: var(--em-white); border-color: var(--em-black); }
.em-carousel-prev { left: -20px; }
.em-carousel-next { right: -20px; }
.em-carousel-dots {
  display: flex; gap: 6px; justify-content: center; margin-top: 16px;
}
.em-carousel-dot {
  width: 6px; height: 6px; border-radius: 3px;
  background: var(--em-border); cursor: pointer;
  transition: all var(--em-t);
}
.em-carousel-dot.active {
  width: 20px; background: var(--em-accent);
}
[data-theme="dark"] .em-carousel-btn { background: #1e1b18 !important; border-color: #302c26 !important; }
[data-theme="dark"] .em-carousel-btn:hover { background: var(--em-accent) !important; border-color: var(--em-accent) !important; color: #141210 !important; }

@media (max-width: 991px) {
  .em-carousel-track .product,
  .em-carousel-track .em-carousel-item { flex: 0 0 calc(33.333% - 11px); }
}
@media (max-width: 767px) {
  .em-carousel-track .product,
  .em-carousel-track .em-carousel-item { flex: 0 0 calc(50% - 8px); }
  .em-carousel-prev { left: 0; }
  .em-carousel-next { right: 0; }
}

/* ── 6. ACCOUNT DASHBOARD ────────────────────────────────────── */
.em-account-page { padding: 40px 0; }
.em-account-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 28px;
  align-items: start;
}

/* Sidebar nav */
.em-account-sidebar {
  background: var(--em-surface);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  overflow: hidden;
  position: sticky; top: 90px;
}
.em-account-sidebar-header {
  padding: 20px;
  border-bottom: 1px solid var(--em-border);
  background: var(--em-off-white);
}
.em-account-avatar {
  width: 52px; height: 52px; border-radius: var(--em-radius-pill);
  background: var(--em-cream); color: var(--em-accent-dark);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 700; font-family: var(--em-font-display);
  margin-bottom: 10px;
}
.em-account-name { font-size: 14px; font-weight: 600; color: var(--em-text); }
.em-account-email { font-size: 11px; color: var(--em-muted); }

.em-account-nav { padding: 8px 0; }
.em-account-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 18px;
  font-size: 13px; font-weight: 500; color: var(--em-text);
  cursor: pointer; transition: all var(--em-t);
  border-left: 3px solid transparent;
}
.em-account-nav-item i { font-size: 17px; color: var(--em-muted); transition: color var(--em-t); }
.em-account-nav-item:hover { background: var(--em-off-white); color: var(--em-accent-dark); }
.em-account-nav-item:hover i { color: var(--em-accent); }
.em-account-nav-item.active {
  border-left-color: var(--em-accent);
  background: var(--em-off-white);
  color: var(--em-accent-dark);
  font-weight: 600;
}
.em-account-nav-item.active i { color: var(--em-accent); }

/* Account content panels */
.em-account-content { min-width: 0; }
.em-account-panel { display: none; }
.em-account-panel.active { display: block; }

.em-account-section-title {
  font-family: var(--em-font-display);
  font-size: 20px; font-weight: 600;
  letter-spacing: -.02em; color: var(--em-text);
  margin-bottom: 20px; padding-bottom: 12px;
  border-bottom: 1px solid var(--em-border);
}

/* Order history table */
.em-orders-table { width: 100%; border-collapse: collapse; }
.em-orders-table th {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  padding: 10px 14px; border-bottom: 1px solid var(--em-border);
  text-align: left; background: var(--em-off-white);
}
.em-orders-table td {
  padding: 14px; border-bottom: 1px solid var(--em-border);
  font-size: 13px; color: var(--em-text); vertical-align: middle;
}
.em-orders-table tr:last-child td { border-bottom: none; }
.em-orders-table tr:hover td { background: var(--em-off-white); }
.em-order-status {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 10px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 4px 10px;
  border-radius: var(--em-radius-pill);
}
.em-order-status.delivered { background: #e8f5ee; color: #2e7d52; }
.em-order-status.processing { background: #fef3e2; color: #c47d17; }
.em-order-status.shipped { background: #e8f0fd; color: #1a73e8; }
.em-order-status.cancelled { background: #fde8e8; color: #c0392b; }

/* Address cards */
.em-address-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.em-address-card {
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  padding: 16px; position: relative;
  transition: border-color var(--em-t);
}
.em-address-card.default { border-color: var(--em-accent); }
.em-address-card.default::before {
  content: 'Default';
  position: absolute; top: -1px; right: 14px;
  background: var(--em-accent); color: var(--em-white);
  font-size: 9px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 3px 8px;
  border-radius: 0 0 4px 4px;
}
.em-address-name { font-size: 13px; font-weight: 600; color: var(--em-text); margin-bottom: 4px; }
.em-address-line { font-size: 12px; color: var(--em-muted); line-height: 1.6; }
.em-address-actions { display: flex; gap: 8px; margin-top: 12px; }
.em-address-btn {
  font-size: 11px; font-weight: 600; letter-spacing: .06em;
  padding: 6px 12px; border-radius: var(--em-radius-sm);
  cursor: pointer; transition: all var(--em-t); border: 1px solid var(--em-border);
  background: transparent; color: var(--em-muted); font-family: var(--em-font-body);
}
.em-address-btn:hover { border-color: var(--em-text); color: var(--em-text); }

/* Account responsive */
@media (max-width: 991px) {
  .em-account-layout { grid-template-columns: 1fr; }
  .em-account-sidebar { position: static; }
  .em-account-nav { display: flex; overflow-x: auto; padding: 0; }
  .em-account-nav-item { padding: 12px 14px; white-space: nowrap; border-left: none; border-bottom: 2px solid transparent; }
  .em-account-nav-item.active { border-bottom-color: var(--em-accent); border-left: none; }
  .em-address-grid { grid-template-columns: 1fr; }
}

[data-theme="dark"] .em-account-sidebar { background: #1e1b18; border-color: #302c26; }
[data-theme="dark"] .em-account-sidebar-header { background: #252018; border-color: #302c26; }
[data-theme="dark"] .em-account-avatar { background: #302c26; }
[data-theme="dark"] .em-account-nav-item:hover, [data-theme="dark"] .em-account-nav-item.active { background: #252018; }
[data-theme="dark"] .em-orders-table th { background: #252018; }
[data-theme="dark"] .em-orders-table tr:hover td { background: #252018; }
[data-theme="dark"] .em-orders-table td { border-color: #302c26; }
[data-theme="dark"] .em-address-card { border-color: #302c26; }
[data-theme="dark"] .em-order-status.delivered { background: #0d2b1a; }
[data-theme="dark"] .em-order-status.processing { background: #2b1f0d; }
[data-theme="dark"] .em-order-status.shipped { background: #0d1e38; }

/* ── 7. UGC / INSTAGRAM GRID ─────────────────────────────────── */
.em-ugc-section { padding: 56px 0; }
.em-ugc-header { text-align: center; margin-bottom: 28px; }
.em-ugc-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--em-accent); margin-bottom: 8px;
}
.em-ugc-title {
  font-family: var(--em-font-display);
  font-size: 28px; font-weight: 600; letter-spacing: -.02em; color: var(--em-text);
}
.em-ugc-handle {
  font-size: 13px; color: var(--em-muted); margin-top: 4px;
}

.em-ugc-grid {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 4px 2px 14px;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.shop-inner-page .shop-inner-gallery .shop-inner-gallery-thumbnails::-webkit-scrollbar {
  display: none;
}
.em-ugc-grid::-webkit-scrollbar {
  display: none;
}
.em-ugc-item {
  flex: 0 0 calc((100% - 36px) / 4);
  display: block;
  position: relative; overflow: hidden;
  aspect-ratio: 1;
  background: var(--em-cream);
  cursor: pointer;
  scroll-snap-align: start;
}
.em-ugc-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.em-ugc-item:hover img { transform: scale(1.08); }
.em-ugc-overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--em-t);
}
.em-ugc-item:hover .em-ugc-overlay { background: rgba(0,0,0,.35); }
.em-ugc-overlay-icon {
  font-size: 24px; color: var(--em-white);
  opacity: 0; transform: scale(.7);
  transition: opacity var(--em-t), transform var(--em-t);
}
.em-ugc-item:hover .em-ugc-overlay-icon { opacity: 1; transform: scale(1); }

.em-ugc-nav {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 10px;
}
.em-ugc-arrow {
  width: 42px;
  height: 42px;
  border: 1px solid var(--em-border);
  border-radius: 50%;
  background: var(--em-white);
  color: var(--em-text);
  cursor: pointer;
  transition: all var(--em-t);
}
.em-ugc-arrow:hover {
  border-color: var(--em-black);
  background: var(--em-black);
  color: var(--em-white);
}

.em-ugc-cta {
  text-align: center; margin-top: 20px;
}
.em-ugc-follow-btn {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1.5px solid var(--em-border);
  border-radius: var(--em-radius-pill);
  padding: 11px 24px;
  font-size: 12px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; cursor: pointer;
  color: var(--em-text); background: transparent;
  font-family: var(--em-font-body);
  text-decoration: none;
  transition: all var(--em-t);
}
.em-ugc-follow-btn:hover { border-color: var(--em-accent); color: var(--em-accent); }

@media (max-width: 991px) { .em-ugc-item { flex-basis: calc((100% - 24px) / 3); } }
@media (max-width: 767px) {
  .em-ugc-item { flex-basis: 72%; }
  .em-ugc-section { padding: 36px 0; }
  .em-ugc-nav { display: none; }
}

/* ── 8. LAZY LOADING ─────────────────────────────────────────── */
img[data-src] {
  opacity: 0;
  transition: opacity .4s;
}
img[data-src].loaded { opacity: 1; }

/* ── 9. PRINT STYLESHEET ─────────────────────────────────────── */
@media print {
  .navigation-holder, .site-footer, #to-top,
  .em-sticky-atc, .em-cookie-bar, .em-toast-container,
  .em-announcement-bar, .bottom-footer,
  .breadcrumb, .related-title, .em-recently-viewed,
  .em-ugc-section, .em-reviews-section .em-review-form,
  .product .hover, .em-wishlist-btn,
  .modal, .em-lightbox,
  button:not(.em-print-btn), .btn:not(.em-print-btn) {
    display: none !important;
  }

  body { font-size: 12pt; color: #000 !important; background: #fff !important; }

  .shop-inner-page h1 { font-size: 20pt; }
  .shop-inner-page .main-price .price { font-size: 16pt; font-weight: bold; }
  .shop-inner-page .description { font-size: 11pt; line-height: 1.6; }

  /* Order confirmation print */
  .em-order-confirm { padding: 20pt; }
  .em-order-confirm h1 { font-size: 22pt; }
  .em-orders-table { border: 1px solid #ccc; }
  .em-orders-table th, .em-orders-table td { border: 1px solid #ccc; padding: 6pt; }

  a[href]::after { content: none !important; }
  @page { margin: 1.5cm; }
}

/* ══════════════════════════════════════════════════════════════
   v7 — WhatsApp · Currency · Mega Menu · Order Tracking
        Product Comparison · Confetti
   ══════════════════════════════════════════════════════════════ */

/* ── 1. WHATSAPP FLOATING BUTTON ─────────────────────────────── */
.em-whatsapp-btn {
  position: fixed;
  bottom: 28px; left: 24px;
  width: 56px; height: 56px;
  border-radius: var(--em-radius-pill);
  background: #25D366;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  cursor: pointer; z-index: 900;
  text-decoration: none;
  transition: transform var(--em-t), box-shadow var(--em-t);
  border: none;
  touch-action: none;
  user-select: none;
  -webkit-user-drag: none;
}
.em-whatsapp-btn:hover {
  transform: scale(1.1) translateY(-2px);
  box-shadow: 0 8px 32px rgba(37,211,102,.5);
  color: #fff;
}
.em-whatsapp-btn.is-drag-ready {
  cursor: grab;
}
.em-whatsapp-btn.is-dragging {
  cursor: grabbing;
  transition: box-shadow var(--em-t);
  transform: scale(1.04);
}
.em-whatsapp-btn.is-dragging::before,
.em-whatsapp-btn.is-dragging::after {
  display: none;
}
/* Pulse ring */
.em-whatsapp-btn::before {
  content: '';
  position: absolute; inset: -4px;
  border-radius: var(--em-radius-pill);
  background: rgba(37,211,102,.3);
  animation: em-wa-pulse 2s ease infinite;
}
@keyframes em-wa-pulse {
  0%   { transform: scale(1); opacity: .8; }
  70%  { transform: scale(1.3); opacity: 0; }
  100% { transform: scale(1.3); opacity: 0; }
}
/* Tooltip */
.em-whatsapp-btn::after {
  content: 'Chat with us';
  position: absolute; left: 68px; top: 50%;
  transform: translateY(-50%);
  background: var(--em-black); color: var(--em-white);
  font-size: 12px; font-weight: 600;
  padding: 6px 12px; border-radius: var(--em-radius-sm);
  white-space: nowrap; pointer-events: none;
  opacity: 0; transition: opacity var(--em-t);
  font-family: var(--em-font-body);
  letter-spacing: .04em;
}
.em-whatsapp-btn:hover::after { opacity: 1; }

/* Chat panel */
.em-wa-panel {
  position: fixed;
  bottom: 96px; left: 24px;
  width: 300px;
  background: var(--em-white);
  border-radius: var(--em-radius-lg);
  box-shadow: var(--em-shadow-lg);
  z-index: 901;
  overflow: hidden;
  transform: translateY(20px) scale(.95);
  opacity: 0;
  pointer-events: none;
  transition: all .3s cubic-bezier(.4,0,.2,1);
  border: 1px solid var(--em-border);
}
.em-wa-panel.open {
  transform: translateY(0) scale(1);
  opacity: 1;
  pointer-events: all;
}
.em-wa-panel-header {
  background: #075E54;
  padding: 14px 16px;
  display: flex; align-items: center; gap: 10px;
}
.em-wa-panel-avatar {
  width: 40px; height: 40px; border-radius: var(--em-radius-pill);
  background: #25D366;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; flex-shrink: 0;
}
.em-wa-panel-name { font-size: 13px; font-weight: 600; color: #fff; }
.em-wa-panel-status { font-size: 11px; color: rgba(255,255,255,.7); display: flex; align-items: center; gap: 4px; }
.em-wa-online-dot { width: 6px; height: 6px; border-radius: 50%; background: #25D366; }
.em-wa-panel-body { padding: 14px; background: #e5ddd5; }
.em-wa-bubble {
  background: #fff; border-radius: 0 var(--em-radius-md) var(--em-radius-md) var(--em-radius-md);
  padding: 10px 12px; font-size: 13px; color: #1a1a1a;
  box-shadow: 0 1px 2px rgba(0,0,0,.1); line-height: 1.5;
  max-width: 90%; margin-bottom: 4px;
}
.em-wa-bubble-time { font-size: 10px; color: var(--em-muted); text-align: right; }
.em-wa-panel-footer { padding: 12px 14px; border-top: 1px solid var(--em-border); }
.em-wa-start-btn {
  width: 100%; background: #25D366; color: #fff;
  border: none; border-radius: var(--em-radius-pill);
  padding: 11px 16px; font-size: 13px; font-weight: 600;
  cursor: pointer; display: flex; align-items: center;
  justify-content: center; gap: 8px;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-wa-start-btn:hover { background: #1da851; }

[data-theme="dark"] .em-wa-panel { background: #1e1b18; border-color: #302c26; }
[data-theme="dark"] .em-wa-panel-footer { border-top-color: #302c26; }
[data-theme="dark"] .em-wa-bubble { background: #252018; color: #e8e2d8; }

@media (max-width: 767px) {
  .em-whatsapp-btn { bottom: 80px; left: 16px; width: 50px; height: 50px; font-size: 24px; }
  .em-wa-panel { bottom: 142px; left: 12px; right: 12px; width: auto; }
  .em-whatsapp-btn::after { display: none; }
}

/* ── 2. CURRENCY SWITCHER ────────────────────────────────────── */
.em-currency-wrap {
  position: relative;
  display: flex; align-items: center;
}
.em-currency-btn {
  display: flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; letter-spacing: .04em;
  color: var(--em-text); background: none; border: none;
  cursor: pointer; padding: 6px 8px; border-radius: var(--em-radius-sm);
  transition: all var(--em-t); font-family: var(--em-font-body);
}
.em-currency-btn:hover { background: var(--em-off-white); }
.em-currency-btn i { font-size: 12px; color: var(--em-muted); transition: transform var(--em-t); }
.em-currency-btn.open i { transform: rotate(180deg); }

.em-currency-dropdown {
  position: absolute; top: calc(100% + 8px); right: 0;
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  box-shadow: var(--em-shadow-lg);
  min-width: 158px; z-index: 400;
  display: none; overflow: hidden;
}
.em-currency-dropdown.open { display: block; }
.em-currency-option {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px; cursor: pointer;
  font-size: 13px; color: var(--em-text);
  transition: background var(--em-t);
  border-bottom: 1px solid var(--em-border);
}
.em-currency-option:last-child { border-bottom: none; }
.em-currency-option:hover { background: var(--em-off-white); }
.em-currency-option.active { background: var(--em-off-white); font-weight: 600; }
.em-curr-flag,
.em-currency-flag {
  width: 22px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 22px;
  border: 1px solid var(--em-border);
  border-radius: 3px;
  background: var(--em-surface);
  color: var(--em-text);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
}
.em-curr-flag {
  width: 20px;
  height: 14px;
  flex-basis: 20px;
  font-size: 7px;
}
.em-currency-code { font-weight: 700; font-size: 12px; }
.em-currency-name { font-size: 11px; color: var(--em-muted); }
.em-currency-rate { font-size: 10px; color: var(--em-muted); margin-left: auto; }

/* Converted prices */
[data-currency="NGN"] .em-price-display::before { content: '₦'; }
[data-currency="GBP"] .em-price-display::before { content: '£'; }
[data-currency="EUR"] .em-price-display::before { content: '€'; }
[data-currency="USD"] .em-price-display::before { content: '$'; }

[data-theme="dark"] .em-currency-dropdown { background: #1e1b18; border-color: #302c26; }
[data-theme="dark"] .em-currency-option { border-color: #302c26; }
[data-theme="dark"] .em-currency-option:hover,
[data-theme="dark"] .em-currency-option.active { background: #252018; }
[data-theme="dark"] .em-currency-btn:hover { background: var(--em-off-white); }

/* ── 3. MEGA MENU ────────────────────────────────────────────── */
@media (min-width: 992px) {

  /* Container for mega menu — full nav width */
  .navigation .list > li.em-mega-item {
    position: static !important;
  }

  .em-mega-menu {
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--em-white);
    border-top: 2px solid var(--em-accent);
    border-bottom: 1px solid var(--em-border);
    box-shadow: var(--em-shadow-lg);
    z-index: 300;
    display: none;
    padding: 28px 0;
    animation: em-mega-in .22s cubic-bezier(.4,0,.2,1);
  }
  @keyframes em-mega-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .navigation .list > li.em-mega-item:hover .em-mega-menu,
  .navigation .list > li.em-mega-item:focus-within .em-mega-menu {
    display: block;
  }

  .em-mega-inner {
    max-width: 1320px; margin: 0 auto; padding: 0 24px;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 280px;
    gap: 32px;
  }

  .em-mega-col-title {
    font-size: 10px; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--em-muted);
    margin-bottom: 14px; padding-bottom: 8px;
    border-bottom: 1px solid var(--em-border);
  }

  .em-mega-links { display: flex; flex-direction: column; gap: 0; }
  .em-mega-link {
    display: flex; align-items: center; justify-content: space-between;
    padding: 7px 0; font-size: 13px; font-weight: 500;
    color: var(--em-text); border-bottom: 1px solid var(--em-border);
    transition: color var(--em-t); cursor: pointer;
  }
  .em-mega-link:last-child { border-bottom: none; }
  .em-mega-link:hover { color: var(--em-accent-dark); }
  .em-mega-link-badge {
    font-size: 9px; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; padding: 2px 7px;
    border-radius: var(--em-radius-pill);
    background: var(--em-accent); color: var(--em-white);
  }
  .em-mega-link-badge.new { background: var(--em-black); }

  /* Featured image panel */
  .em-mega-featured {
    position: relative; border-radius: var(--em-radius-md);
    overflow: hidden; cursor: pointer;
  }
  .em-mega-featured img {
    width: 100%; height: 260px; object-fit: cover;
    transition: transform .5s cubic-bezier(.4,0,.2,1);
    display: block;
  }
  .em-mega-featured:hover img { transform: scale(1.04); }
  .em-mega-featured-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(0deg, rgba(0,0,0,.55) 0%, transparent 55%);
  }
  .em-mega-featured-label {
    position: absolute; bottom: 16px; left: 16px;
    color: var(--em-white);
  }
  .em-mega-featured-tag {
    font-size: 9px; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--em-accent);
    margin-bottom: 4px;
  }
  .em-mega-featured-title {
    font-family: var(--em-font-display);
    font-size: 16px; font-weight: 600; line-height: 1.2;
  }
  .em-mega-featured-cta {
    display: inline-flex; align-items: center; gap: 5px;
    margin-top: 8px; font-size: 11px; font-weight: 600;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--em-white); opacity: .85;
    transition: opacity var(--em-t);
  }
  .em-mega-featured:hover .em-mega-featured-cta { opacity: 1; }

  [data-theme="dark"] .em-mega-menu { background: #141210; border-color: #302c26; }
  [data-theme="dark"] .em-mega-col-title { border-color: #302c26; }
  [data-theme="dark"] .em-mega-link { border-color: #302c26; }
}

/* ── 4. ORDER TRACKING PAGE ──────────────────────────────────── */
.em-tracking-page { padding: 48px 0 80px; }
.em-tracking-hero {
  text-align: center; padding: 48px 24px 36px;
  background: var(--em-surface); border-radius: var(--em-radius-lg);
  margin-bottom: 32px; border: 1px solid var(--em-border);
}
.em-tracking-hero h1 {
  font-family: var(--em-font-display);
  font-size: clamp(26px, 4vw, 42px);
  font-weight: 700; letter-spacing: -.03em; color: var(--em-text);
  margin-bottom: 8px;
}
.em-tracking-hero p { font-size: 14px; color: var(--em-muted); margin-bottom: 24px; }

/* Search form */
.em-tracking-form {
  display: flex; gap: 10px; max-width: 480px; margin: 0 auto;
}
.em-tracking-input {
  flex: 1; border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 14px !important; padding: 13px 16px !important;
  color: var(--em-text) !important; background: var(--em-white) !important;
  font-family: var(--em-font-body) !important;
  letter-spacing: .06em; text-transform: uppercase;
}
.em-tracking-input::placeholder { text-transform: none; letter-spacing: 0; color: var(--em-muted) !important; }
.em-tracking-input:focus {
  outline: none !important; border-color: var(--em-accent) !important;
  box-shadow: 0 0 0 3px rgba(200,169,110,.14) !important;
}
.em-tracking-submit {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 24px;
  cursor: pointer; white-space: nowrap;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-tracking-submit:hover { background: var(--em-accent); }

/* Result card */
.em-tracking-result {
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  overflow: hidden;
  display: none;
}
.em-tracking-result.show { display: block; }
.em-tracking-result-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--em-border);
  display: flex; align-items: center;
  justify-content: space-between; flex-wrap: wrap; gap: 12px;
  background: var(--em-surface);
}
.em-tracking-order-num {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  margin-bottom: 3px;
}
.em-tracking-order-val { font-size: 18px; font-weight: 700; font-family: var(--em-font-display); color: var(--em-text); }
.em-tracking-eta {
  text-align: right; font-size: 12px; color: var(--em-muted);
}
.em-tracking-eta strong { display: block; font-size: 14px; color: var(--em-text); font-weight: 600; }

/* Progress stepper */
.em-tracking-steps {
  padding: 28px 24px;
  border-bottom: 1px solid var(--em-border);
}
.em-tracking-stepper {
  display: flex; align-items: flex-start;
  position: relative;
}
.em-tracking-stepper::before {
  content: '';
  position: absolute;
  top: 20px; left: 20px; right: 20px;
  height: 2px; background: var(--em-border); z-index: 0;
}
.em-tracking-stepper-fill {
  position: absolute;
  top: 20px; left: 20px;
  height: 2px; background: var(--em-accent);
  z-index: 1; transition: width .6s ease;
}
.em-tracking-step {
  flex: 1; display: flex; flex-direction: column;
  align-items: center; gap: 8px; position: relative; z-index: 2;
}
.em-tracking-step-dot {
  width: 40px; height: 40px; border-radius: var(--em-radius-pill);
  border: 2px solid var(--em-border);
  background: var(--em-white);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: var(--em-muted);
  transition: all .4s ease;
}
.em-tracking-step.done .em-tracking-step-dot {
  background: var(--em-accent); border-color: var(--em-accent);
  color: var(--em-white);
}
.em-tracking-step.active .em-tracking-step-dot {
  background: var(--em-black); border-color: var(--em-black);
  color: var(--em-white);
  box-shadow: 0 0 0 4px rgba(13,13,13,.12);
}
.em-tracking-step-label {
  font-size: 11px; font-weight: 600; letter-spacing: .04em;
  text-align: center; color: var(--em-muted);
  text-transform: uppercase;
}
.em-tracking-step.done .em-tracking-step-label,
.em-tracking-step.active .em-tracking-step-label { color: var(--em-text); }
.em-tracking-step-date { font-size: 10px; color: var(--em-muted); text-align: center; }

/* Order items inside tracking */
.em-tracking-items { padding: 20px 24px; border-bottom: 1px solid var(--em-border); }
.em-tracking-item {
  display: flex; gap: 14px; padding: 10px 0;
  border-bottom: 1px solid var(--em-border);
}
.em-tracking-item:last-child { border-bottom: none; }
.em-tracking-item-img {
  width: 56px; height: 70px; border-radius: var(--em-radius-sm);
  object-fit: cover; background: var(--em-cream); flex-shrink: 0;
}
.em-tracking-item-name { font-size: 13px; font-weight: 500; color: var(--em-text); }
.em-tracking-item-meta { font-size: 11px; color: var(--em-muted); margin-top: 3px; }
.em-tracking-item-price { font-size: 13px; font-weight: 600; color: var(--em-text); margin-left: auto; align-self: center; }

/* Address + timeline */
.em-tracking-footer {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0; padding: 20px 24px;
}
.em-tracking-address h4,
.em-tracking-timeline h4 {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  margin-bottom: 10px;
}
.em-tracking-address p { font-size: 13px; color: var(--em-text); line-height: 1.6; }
.em-tracking-timeline { border-left: 1px solid var(--em-border); padding-left: 20px; }
.em-timeline-entry { display: flex; gap: 10px; margin-bottom: 12px; font-size: 12px; }
.em-timeline-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--em-accent); flex-shrink: 0; margin-top: 4px; }
.em-timeline-text { color: var(--em-text); line-height: 1.5; }
.em-timeline-time { font-size: 10px; color: var(--em-muted); margin-top: 2px; }

[data-theme="dark"] .em-tracking-hero { background: var(--em-off-white) !important; border-color: var(--em-border) !important; }
[data-theme="dark"] .em-tracking-result { background: var(--em-off-white) !important; border-color: var(--em-border) !important; }
[data-theme="dark"] .em-tracking-result-header { background: var(--em-cr) !important; }
[data-theme="dark"] .em-tracking-step-dot { background: var(--em-off-white) !important; }

@media (max-width: 767px) {
  .em-tracking-form { flex-direction: column; }
  .em-tracking-submit { width: 100%; }
  .em-tracking-footer { grid-template-columns: 1fr; }
  .em-tracking-timeline { border-left: none; padding-left: 0; border-top: 1px solid var(--em-border); padding-top: 16px; margin-top: 16px; }
  .em-tracking-step-label { font-size: 9px; }
}

/* ── 5. PRODUCT COMPARISON ───────────────────────────────────── */
/* Compare toggle on product cards */
.em-compare-check {
  position: absolute; top: 46px; right: 12px; z-index: 4;
  width: 28px; height: 28px; border-radius: var(--em-radius-sm);
  background: var(--em-white); border: 1.5px solid var(--em-border);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; font-size: 13px; color: var(--em-muted);
  opacity: 0; transition: all var(--em-t);
  box-shadow: var(--em-shadow-sm);
}
.product:hover .em-compare-check { opacity: 1; }
.em-compare-check.checked {
  opacity: 1; background: var(--em-accent);
  border-color: var(--em-accent); color: var(--em-white);
}

/* Floating comparison tray */
.em-compare-tray {
  position: fixed; bottom: 0; left: 0; right: 0;
  background: var(--em-white);
  border-top: 2px solid var(--em-accent);
  padding: 14px 24px;
  display: flex; align-items: center; gap: 16px;
  z-index: 800;
  transform: translateY(100%);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 -4px 24px rgba(0,0,0,.1);
}
.em-compare-tray.show { transform: translateY(0); }
.em-compare-tray-items { display: flex; gap: 12px; flex: 1; align-items: center; }
.em-compare-slot {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px; border: 1px dashed var(--em-border);
  border-radius: var(--em-radius-sm);
  min-width: 140px; height: 48px;
  font-size: 12px; color: var(--em-muted);
}
.em-compare-slot.filled {
  border: 1px solid var(--em-border); background: var(--em-off-white);
  color: var(--em-text);
}
.em-compare-slot img { width: 32px; height: 40px; object-fit: cover; border-radius: 3px; flex-shrink: 0; }
.em-compare-slot-name { font-size: 11px; font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-compare-slot-remove { width: 16px; height: 16px; border-radius: 50%; background: var(--em-muted); color: #fff; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0; }
.em-compare-slot-remove:hover { background: var(--em-danger); }
.em-compare-count { font-size: 12px; color: var(--em-muted); }
.em-compare-btn {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 12px 24px;
  cursor: pointer; font-family: var(--em-font-body);
  transition: background var(--em-t); white-space: nowrap;
}
.em-compare-btn:hover { background: var(--em-accent); }
.em-compare-btn:disabled { opacity: .4; cursor: not-allowed; }
.em-compare-clear {
  font-size: 11px; color: var(--em-muted); cursor: pointer;
  border-bottom: 1px solid var(--em-border); padding-bottom: 1px;
  background: none; border-top: none; border-left: none; border-right: none;
  font-family: var(--em-font-body); transition: color var(--em-t);
}
.em-compare-clear:hover { color: var(--em-danger); border-color: var(--em-danger); }

/* Comparison modal */
.em-compare-modal .modal-dialog { max-width: 960px !important; }
.em-compare-table { width: 100%; border-collapse: collapse; }
.em-compare-table th, .em-compare-table td {
  padding: 12px 14px; border: 1px solid var(--em-border);
  font-size: 13px; vertical-align: top; text-align: center;
}
.em-compare-table th {
  background: var(--em-off-white); font-weight: 700;
  font-size: 10px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--em-muted); text-align: left; width: 120px;
}
.em-compare-table td:first-child { text-align: left; }
.em-compare-product-img { width: 120px; height: 150px; object-fit: cover; border-radius: var(--em-radius-sm); margin-bottom: 8px; }
.em-compare-product-name { font-family: var(--em-font-display); font-size: 14px; font-weight: 600; }
.em-compare-product-price { font-size: 15px; font-weight: 700; color: var(--em-text); margin-top: 4px; }
.em-compare-check-icon { color: var(--em-success); font-size: 16px; }
.em-compare-x-icon { color: var(--em-muted); font-size: 16px; }

[data-theme="dark"] .em-compare-tray { background: #1e1b18 !important; border-top-color: var(--em-accent) !important; }
[data-theme="dark"] .em-compare-table th { background: #252018 !important; }

@media (max-width: 767px) {
  .em-compare-tray { flex-direction: column; align-items: stretch; padding: 12px 14px; }
  .em-compare-tray-items { overflow-x: auto; padding-bottom: 4px; }
  .em-compare-slot { min-width: 120px; }
  .em-compare-btn { width: 100%; text-align: center; }
}

/* ── 6. CONFETTI ─────────────────────────────────────────────── */
.em-confetti-canvas {
  position: fixed; inset: 0;
  pointer-events: none; z-index: 9999;
  width: 100%; height: 100%;
}

/* ══════════════════════════════════════════════════════════════
   v8 — Exit Intent · Order Tracking (full) · Back-in-Stock
        Bundle / Frequently Bought Together
   ══════════════════════════════════════════════════════════════ */

/* ── 1. EXIT-INTENT POPUP ────────────────────────────────────── */
.em-exit-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.6);
  z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  opacity: 0; pointer-events: none;
  transition: opacity .32s;
  backdrop-filter: blur(3px);
}
.em-exit-overlay.open {
  opacity: 1; pointer-events: all;
}
.em-exit-modal {
  background: var(--em-white);
  border-radius: var(--em-radius-lg);
  overflow: hidden;
  max-width: 680px; width: 100%;
  display: grid; grid-template-columns: 1fr 1fr;
  box-shadow: var(--em-shadow-lg);
  transform: scale(.92) translateY(20px);
  transition: transform .32s cubic-bezier(.4,0,.2,1);
  position: relative;
}
.em-exit-overlay.open .em-exit-modal {
  transform: scale(1) translateY(0);
}
.em-exit-img {
  background: var(--em-cream);
  overflow: hidden; position: relative;
}
.em-exit-img img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.em-exit-body {
  padding: 40px 32px;
  display: flex; flex-direction: column;
  justify-content: center;
}
.em-exit-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase; color: var(--em-accent);
  margin-bottom: 10px;
}
.em-exit-title {
  font-family: var(--em-font-display);
  font-size: 26px; font-weight: 700; letter-spacing: -.02em;
  line-height: 1.2; color: var(--em-text); margin-bottom: 10px;
}
.em-exit-desc {
  font-size: 13px; color: var(--em-muted);
  line-height: 1.7; margin-bottom: 20px;
}
.em-exit-code-box {
  background: var(--em-off-white);
  border: 1.5px dashed var(--em-accent);
  border-radius: var(--em-radius-sm);
  padding: 12px 16px; margin-bottom: 18px;
  display: flex; align-items: center; justify-content: space-between;
}
.em-exit-code {
  font-size: 20px; font-weight: 700;
  letter-spacing: .12em; color: var(--em-accent-dark);
  font-family: var(--em-font-display);
}
.em-exit-copy-btn {
  font-size: 11px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; background: none; border: none;
  color: var(--em-muted); cursor: pointer; font-family: var(--em-font-body);
  transition: color var(--em-t); padding: 4px 6px;
}
.em-exit-copy-btn:hover { color: var(--em-accent-dark); }
.em-exit-cta {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 24px;
  cursor: pointer; width: 100%; font-family: var(--em-font-body);
  transition: background var(--em-t); margin-bottom: 10px;
}
.em-exit-cta:hover { background: var(--em-accent); }
.em-exit-dismiss {
  text-align: center; font-size: 11px; color: var(--em-muted);
  cursor: pointer; background: none; border: none;
  font-family: var(--em-font-body); width: 100%;
  transition: color var(--em-t); padding: 4px;
}
.em-exit-dismiss:hover { color: var(--em-text); }
.em-exit-close {
  position: absolute; top: 12px; right: 12px;
  width: 32px; height: 32px; border-radius: var(--em-radius-pill);
  background: rgba(0,0,0,.5); color: var(--em-white); border: none;
  font-size: 18px; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background var(--em-t); line-height: 1;
  z-index: 2;
}
.em-exit-close:hover { background: rgba(0,0,0,.75); }
.em-exit-timer {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: var(--em-accent);
  transform-origin: left;
  animation: em-exit-timer-shrink linear forwards;
}
@keyframes em-exit-timer-shrink {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}

[data-theme="dark"] .em-exit-modal { background: #1e1b18; }
[data-theme="dark"] .em-exit-code-box { background: #252018; }

@media (max-width: 640px) {
  .em-exit-modal { grid-template-columns: 1fr; }
  .em-exit-img { height: 180px; }
  .em-exit-body { padding: 24px 20px; }
  .em-exit-title { font-size: 22px; }
}

/* ── 2. ORDER TRACKING — ADDITIONS ───────────────────────────── */
/* (base styles already in v7 — adding missing pieces) */
.em-tracking-section-label {
  font-size: 10px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
  margin-bottom: 14px;
}
.em-tracking-form {
  flex-wrap: wrap;
}
.em-tracking-input + .em-tracking-input {
  margin-top: 10px;
}
@media (min-width: 600px) {
  .em-tracking-form { flex-wrap: nowrap; }
  .em-tracking-input + .em-tracking-input { margin-top: 0; }
}
.em-tracking-help-text {
  font-size: 12px; color: var(--em-muted); margin-top: 12px;
}
.em-tracking-help-link {
  color: var(--em-accent-dark); border-bottom: 1px solid rgba(158,124,68,.3);
  transition: border-color var(--em-t);
}
.em-tracking-help-link:hover { border-color: var(--em-accent-dark); }
.em-tracking-status-badge {
  font-size: 11px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 5px 14px;
  border-radius: var(--em-radius-pill);
}
.em-tracking-status-badge.delivered { background: #e8f5ee; color: #2e7d52; }
.em-tracking-status-badge.shipped   { background: #e8f0fd; color: #1a73e8; }
.em-tracking-status-badge.processing{ background: #fef3e2; color: #c47d17; }
.em-tracking-actions {
  display: flex; gap: 10px; padding: 18px 24px;
  border-top: 1px solid var(--em-border); justify-content: flex-end;
}
.em-tracking-action-btn {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; padding: 10px 20px;
  border-radius: var(--em-radius-sm); cursor: pointer;
  font-family: var(--em-font-body); border: 1px solid var(--em-border);
  transition: all var(--em-t);
}
.em-tracking-action-primary {
  background: var(--em-black); color: var(--em-white);
  border-color: var(--em-black);
}
.em-tracking-action-primary:hover { background: var(--em-accent); border-color: var(--em-accent); }
.em-tracking-action-secondary { background: transparent; color: var(--em-text); }
.em-tracking-action-secondary:hover { border-color: var(--em-text); }

[data-theme="dark"] .em-tracking-actions { border-top-color: #302c26; }
[data-theme="dark"] .em-tracking-action-secondary { color: var(--em-text); border-color: var(--em-border); }
[data-theme="dark"] .em-tracking-status-badge.delivered { background: #0d2b1a; }
[data-theme="dark"] .em-tracking-status-badge.shipped   { background: #0d1e38; }
[data-theme="dark"] .em-tracking-status-badge.processing{ background: #2b1f0d; }

/* ── 3. BACK-IN-STOCK ALERTS ─────────────────────────────────── */
.em-bis-wrap {
  margin: 16px 0 4px;
  background: var(--em-surface);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  overflow: hidden;
}
.em-bis-form {
  display: flex; gap: 16px; padding: 20px;
  align-items: flex-start;
}
.em-bis-icon {
  width: 44px; height: 44px; border-radius: var(--em-radius-pill);
  background: var(--em-cream); color: var(--em-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; flex-shrink: 0;
  transition: background .3s;
}
[data-theme="dark"] .em-bis-icon { background: #302c26; }
.em-bis-body { flex: 1; min-width: 0; }
.em-bis-title {
  font-size: 14px; font-weight: 600; color: var(--em-text);
  margin-bottom: 4px;
}
.em-bis-desc {
  font-size: 12px; color: var(--em-muted); line-height: 1.6;
  margin-bottom: 12px;
}
.em-bis-input-row {
  display: flex; gap: 8px;
}
.em-bis-input {
  flex: 1; border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm) !important;
  font-size: 13px !important; padding: 10px 14px !important;
  color: var(--em-text) !important; background: var(--em-white) !important;
  font-family: var(--em-font-body) !important;
  transition: border-color var(--em-t) !important;
  min-width: 0;
}
.em-bis-input:focus {
  outline: none !important; border-color: var(--em-accent) !important;
  box-shadow: 0 0 0 3px rgba(200,169,110,.14) !important;
}
.em-bis-submit {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 10px 18px;
  cursor: pointer; white-space: nowrap; flex-shrink: 0;
  font-family: var(--em-font-body);
  transition: background var(--em-t);
}
.em-bis-submit:hover { background: var(--em-accent); }
.em-bis-success {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 500; color: #2e7d52;
  padding: 10px 14px;
  background: #e8f5ee; border-radius: var(--em-radius-sm);
  margin-top: 4px;
}
.em-bis-success i { font-size: 16px; }
[data-theme="dark"] .em-bis-success { background: #0d2b1a; color: #5cb88a; }

@media (max-width: 480px) {
  .em-bis-form { flex-direction: column; }
  .em-bis-input-row { flex-direction: column; }
  .em-bis-submit { width: 100%; text-align: center; }
}

/* ── 4. BUNDLE / FREQUENTLY BOUGHT TOGETHER ──────────────────── */
.em-bundle-wrap {
  margin: 24px 0;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-lg);
  overflow: hidden;
}
.em-bundle-full-row {
  margin-top: 32px;
}
.em-bundle-full-row .em-bundle-wrap {
  margin: 0;
}
.em-bundle-header {
  padding: 14px 18px;
  border-bottom: 1px solid var(--em-border);
  background: var(--em-off-white);
  display: flex; align-items: center; justify-content: space-between;
  transition: background .3s;
}
.em-bundle-title {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--em-muted);
}
.em-bundle-save-badge {
  font-size: 10px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; padding: 3px 10px;
  border-radius: var(--em-radius-pill);
  background: var(--em-accent); color: var(--em-white);
}
.em-bundle-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 24px;
  align-items: center;
  padding: 20px 22px;
}

/* Bundle items row */
.em-bundle-items {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
  margin-bottom: 0;
}
.em-bundle-item {
  position: relative;
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--em-border);
  border-radius: 16px;
  background: var(--em-white);
}
.em-bundle-item-img {
  width: 92px; height: 112px;
  border-radius: var(--em-radius-sm);
  object-fit: cover; background: var(--em-cream);
  border: 1px solid var(--em-border);
  display: block;
}
.em-bundle-item-name {
  font-size: 13px; font-weight: 600; color: var(--em-text);
  text-align: left;
  max-width: none;
  overflow: visible;
  white-space: normal;
  line-height: 1.35;
}
.em-bundle-item-price {
  font-size: 13px; font-weight: 700; color: var(--em-text);
}
.em-bundle-check {
  width: 18px; height: 18px; border-radius: 3px;
  accent-color: var(--em-accent); cursor: pointer;
}
.em-bundle-plus {
  display: none;
}
.em-bundle-this-item .em-bundle-item-img {
  border: 2px solid var(--em-accent);
}
.em-bundle-this-label {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  font-size: 9px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--em-accent);
  background: var(--em-white);
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-pill);
  padding: 3px 8px;
}
.em-bundle-empty {
  padding: 18px;
}
.em-bundle-empty p {
  margin: 8px 0 0;
  color: var(--em-muted);
  font-size: 13px;
}

/* Totals + CTA */
.em-bundle-footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--em-border);
  border-radius: 16px;
  background: var(--em-off-white);
}
.em-bundle-total-wrap { line-height: 1.4; }
.em-bundle-total-label {
  font-size: 11px; color: var(--em-muted); letter-spacing: .04em;
}
.em-bundle-total-prices {
  display: flex; align-items: baseline; gap: 8px;
}
.em-bundle-total-was {
  font-size: 13px; color: var(--em-muted);
  text-decoration: line-through;
}
.em-bundle-total-now {
  font-size: 20px; font-weight: 700; color: var(--em-text);
  font-family: var(--em-font-display);
}
.em-bundle-saving {
  font-size: 11px; font-weight: 600; color: #2e7d52;
}
.em-bundle-cta {
  background: var(--em-black); color: var(--em-white);
  border: none; border-radius: var(--em-radius-sm);
  font-size: 12px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; padding: 13px 24px;
  cursor: pointer; font-family: var(--em-font-body);
  transition: background var(--em-t); white-space: nowrap;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
}
.em-bundle-cta:hover { background: var(--em-accent); }

[data-theme="dark"] .em-bundle-wrap { border-color: #302c26; }
[data-theme="dark"] .em-bundle-header { background: #252018; border-color: #302c26; }
[data-theme="dark"] .em-bundle-footer { border-color: #302c26; }
[data-theme="dark"] .em-bundle-item-img { border-color: #302c26; background: #302c26; }
[data-theme="dark"] .em-bundle-saving { color: #5cb88a; }

[data-theme="dark"] .em-related-products-grid .shopmag-product-holder {
  background: #1e1b18;
  border-color: #302c26;
}
[data-theme="dark"] .em-related-products-grid .shopmag-product-title a {
  color: #e8e2d8;
}

.em-related-empty {
  padding-top: 16px;
}
.em-related-empty-card {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 22px;
  border: 1px dashed var(--em-border);
  border-radius: var(--em-radius-lg);
  background: var(--em-off-white);
  color: var(--em-text);
}
.em-related-empty-card i {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--em-radius-pill);
  background: var(--em-white);
  color: var(--em-accent);
  font-size: 22px;
  flex-shrink: 0;
}
.em-related-empty-card strong {
  display: block;
  margin-bottom: 3px;
  font-size: 14px;
}
.em-related-empty-card p {
  margin: 0;
  color: var(--em-muted);
  font-size: 13px;
}
/* ══════════════════════════════════════════════════════════════
   RELATED PRODUCTS — GRID (NO SCROLLING)
   Replaced the horizontal carousel with a proper wrapping grid.
   ══════════════════════════════════════════════════════════════ */

/* Outer edit field wrapper — prevent any overflow/scroll */
.edit[field="related_products"] {
  overflow: visible !important;
}

/* The em-related-products-grid — wrapping grid, no scrolling */
.em-related-products-grid {
  display: flex;
  flex-wrap: wrap !important;
  margin-right: -12px;
  margin-left: -12px;
  overflow: visible !important;
}

.em-related-products-grid > [class*="col-"] {
  padding-right: 12px;
  padding-left: 12px;
  margin-bottom: 28px;
  flex: 1 0 auto;
  max-width: 100%;
}

/* Product card inside grid */
.em-related-products-grid .shopmag-product-holder {
  height: 100%;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  overflow: hidden;
  background: var(--em-white);
  transition: box-shadow var(--em-t);
}

.em-related-products-grid .shopmag-product-holder:hover {
  box-shadow: var(--em-shadow-md);
}

.em-related-products-grid .shopmag-product-image {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  background: var(--em-cream);
}

.em-related-products-grid .shopmag-product-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s cubic-bezier(.4,0,.2,1);
}

.em-related-products-grid .shopmag-product-holder:hover .shopmag-product-image img {
  transform: scale(1.04);
}

.em-related-products-grid .shopmag-product-content {
  padding: 14px 16px;
}

.em-related-products-grid .shopmag-product-title {
  font-size: 13px;
  font-weight: 500;
  color: var(--em-text);
  margin: 0 0 4px;
  line-height: 1.4;
  font-family: var(--em-font-body);
}

.em-related-products-grid .shopmag-product-title a {
  color: inherit;
  transition: color var(--em-t);
}

.em-related-products-grid .shopmag-product-title a:hover {
  color: var(--em-accent-dark);
}

.em-related-products-grid .price {
  font-size: 13px;
  font-weight: 600;
  color: var(--em-text);
}

/* Fallback module path — ensure it's a grid too */
.shop-inner-page .related-products {
  display: flex !important;
  flex-wrap: wrap !important;
  overflow: visible !important;
  gap: 0;
  padding-bottom: 0 !important;
}

.shop-inner-page .related-products > [class*="item-"],
.shop-inner-page .related-products > .col-6,
.shop-inner-page .related-products > .col-md-4,
.shop-inner-page .related-products > .col-lg-3 {
  flex: 1 0 auto !important;
  max-width: 100% !important;
  scroll-snap-align: none !important;
  margin-bottom: 20px;
}

.shop-inner-page .related-products .product {
  height: 100%;
}
.shop-inner-page .related-products .product > a.d-flex.h-100.w-100 {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
}
.shop-inner-page .related-products .product .image {
  display: block !important;
  min-height: 280px;
  background-size: cover !important;
  background-position: center top !important;
}
.shop-inner-page .related-products .product .hover {
  left: 50% !important;
  right: auto !important;
  bottom: 14px !important;
  width: auto !important;
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.shop-inner-page .related-products .product .hover > * {
  margin: 0 !important;
}
.shop-inner-page .related-products .product .hover .btn {
  flex: 0 0 40px !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  line-height: 1 !important;
}
.shop-inner-page .related-products .product .hover .btn i {
  display: block !important;
  font-size: 16px !important;
  line-height: 1 !important;
}
.shop-inner-page .related-products .product .product-label {
  left: 12px !important;
  right: auto !important;
  top: 12px !important;
  z-index: 4 !important;
}
.shop-inner-page .related-products .em-wishlist-btn,
.shop-inner-page .related-products .em-compare-check {
  top: 12px !important;
  opacity: 1;
}
.shop-inner-page .related-products .em-wishlist-btn {
  right: 12px !important;
}
.shop-inner-page .related-products .em-compare-check {
  right: 54px !important;
  width: 34px !important;
  height: 34px !important;
  border-radius: var(--em-radius-pill) !important;
}
.shop-inner-page .edit[field="related_products"].py-5 {
  padding-bottom: 0 !important;
}

@media (max-width: 575px) {
  .em-related-products-grid > [class*="col-"] {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .shop-inner-page .related-products > [class*="col-"] {
    width: 100% !important;
    flex: 0 0 100% !important;
  }
  .shop-inner-page .related-products .product .image {
    min-height: 220px;
  }
}

@media (max-width: 480px) {
  .em-bundle-footer { flex-direction: column; align-items: stretch; }
  .em-bundle-cta { width: 100%; justify-content: center; }
}

@media (max-width: 1199px) {
  .em-bundle-body {
    grid-template-columns: 1fr;
  }
  .em-bundle-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
  .em-bundle-cta {
    width: auto;
  }
}

@media (max-width: 991px) {
  .em-bundle-items {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .em-bundle-header,
  .em-bundle-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .em-bundle-body {
    padding: 16px;
  }
  .em-bundle-item {
    grid-template-columns: 76px minmax(0, 1fr) auto;
  }
  .em-bundle-item-img {
    width: 76px;
    height: 92px;
  }
  .em-bundle-cta {
    width: 100%;
  }
}

/* Compact shop filter rails */
#module-layouts-1--2 > .container-fluid {
  padding-bottom: 40px !important;
}

.em-shop-filters-enhanced .em-shop-filter-layout {
  display: block !important;
}
.em-shop-filters-enhanced .em-shop-filter-panel,
.em-shop-filters-enhanced .em-shop-product-area {
  width: 100% !important;
  max-width: none !important;
}
.em-shop-filters-enhanced .em-shop-filter-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 28px;
}
.em-shop-filters-enhanced .em-filter-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.em-shop-filters-enhanced .em-filter-section {
  min-width: 0;
}
.em-shop-filters-enhanced .em-filter-native-label {
  display: none !important;
}
.em-shop-filters-enhanced .em-filter-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  background: var(--em-white);
  color: var(--em-text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.2;
  min-height: 42px;
  padding: 10px 15px;
  text-transform: none;
  white-space: nowrap;
}
.em-shop-filters-enhanced .em-filter-toggle i {
  font-size: 18px;
  transition: transform var(--em-t);
}
.em-shop-filters-enhanced .em-filter-open .em-filter-toggle i {
  transform: rotate(180deg);
}
.em-shop-filters-enhanced .em-filter-toggle[aria-expanded="true"] {
  border-color: var(--em-black);
}
.em-shop-filters-enhanced .em-filter-collapsible > :not(.em-filter-toggle) {
  display: none !important;
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    display .22s allow-discrete;
}
.em-shop-filters-enhanced .em-filter-collapsible.em-filter-open > :not(.em-filter-toggle):not(.em-filter-native-label) {
  display: flex !important;
  opacity: 1;
  transform: translateY(0);
}
.em-shop-filters-enhanced .em-category-rail.em-filter-open > .list-group {
  display: flex !important;
}
.em-shop-filters-enhanced .em-tag-rail.em-filter-open > div:last-child {
  display: flex !important;
}
.em-shop-filters-enhanced .em-category-rail .list-group {
  display: flex;
  flex-flow: row nowrap;
  gap: 8px;
  margin-top: 0 !important;
  overflow-x: auto;
  padding: 0 0 8px;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.em-shop-filters-enhanced .em-category-rail .list-group div {
  display: contents;
}
.em-shop-filters-enhanced .em-category-rail .list-group-item,
.em-shop-filters-enhanced .em-tag-rail .btn {
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
  margin: 0 !important;
  border: 1px solid var(--em-border) !important;
  border-radius: 999px !important;
  background: var(--em-white);
  color: var(--em-text);
  font-family: Jost, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  padding: 9px 16px;
  scroll-snap-align: start;
  text-transform: uppercase;
  white-space: nowrap;
}
.em-shop-filters-enhanced .em-category-rail .list-group-item.active,
.em-shop-filters-enhanced .em-category-rail .list-group-item:hover,
.em-shop-filters-enhanced .em-tag-rail .btn:hover {
  border-color: var(--em-black) !important;
  background: var(--em-black) !important;
  color: var(--em-white) !important;
}
.em-shop-filters-enhanced .em-tag-rail > div:last-child {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 8px;
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
}
.em-shop-filters-enhanced .em-tag-rail [x-show] {
  display: contents !important;
}
.em-shop-filters-enhanced .em-tag-rail .btn-outline-danger {
  display: none !important;
}
.em-shop-filters-enhanced .em-secondary-filter {
  display: none;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    display .22s allow-discrete;
}
.em-shop-filters-enhanced.em-secondary-filters-open .em-secondary-filter {
  display: block;
  opacity: 1;
  transform: translateY(0);
}
.em-shop-filters-enhanced .em-more-filters-toggle,
.em-shop-filters-enhanced .em-search-sort-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  background: var(--em-white);
  color: var(--em-text);
  min-height: 42px;
  padding: 10px 15px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}
.em-shop-filters-enhanced .em-filter-actions > button,
.em-shop-filters-enhanced .em-filter-actions > button span {
  font-family: var(--em-font-body) !important;
  font-size: 12px !important;
  font-style: normal !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
}
.em-shop-filters-enhanced .em-more-filters-toggle i,
.em-shop-filters-enhanced .em-search-sort-toggle i {
  margin-right: 0;
}
.em-shop-filters-enhanced .em-search-sort-toggle i {
  font-size: 18px;
  transition: transform var(--em-t);
}
.em-shop-filters-enhanced.em-secondary-filters-open .em-more-filters-toggle,
.em-shop-filters-enhanced.em-search-sort-open .em-search-sort-toggle {
  border-color: var(--em-black);
}
.em-shop-filters-enhanced.em-search-sort-open .em-search-sort-toggle i {
  transform: rotate(180deg);
}
.em-shop-filters-enhanced .em-search-sort-panel {
  display: none !important;
  width: 100%;
  margin-bottom: 0;
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    display .22s allow-discrete;
}
.em-shop-filters-enhanced.em-search-sort-open .em-search-sort-panel {
  display: flex !important;
  opacity: 1;
  transform: translateY(0);
}

@starting-style {
  .em-shop-filters-enhanced .em-filter-collapsible.em-filter-open > :not(.em-filter-toggle):not(.em-filter-native-label),
  .em-shop-filters-enhanced.em-secondary-filters-open .em-secondary-filter {
    opacity: 0;
    transform: translateY(-8px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .em-shop-filters-enhanced .em-filter-collapsible > :not(.em-filter-toggle),
  .em-shop-filters-enhanced .em-secondary-filter {
    transition: none;
  }
}
.em-shop-filters-enhanced .em-shop-product-area > .d-flex:first-child {
  gap: 12px;
  flex-wrap: wrap;
}
.em-shop-filters-enhanced .em-shop-product-area > .d-flex:first-child > div:first-child {
  flex: 1 1 260px;
}
.em-shop-filters-enhanced .em-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin-right: 0;
  margin-left: 0;
}
.em-shop-filters-enhanced .em-product-grid > [class*="col-"] {
  width: 100%;
  max-width: none;
  margin-bottom: 0 !important;
  padding-right: 0;
  padding-left: 0;
}
.em-shop-filters-enhanced .em-product-grid .background-image-holder {
  height: clamp(260px, 28vw, 380px) !important;
}
.em-shop-filters-enhanced .em-product-grid-hidden {
  display: none !important;
}
.em-shop-filters-enhanced .em-product-grid-more {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}

/* Deified Fraternal header mark */
#header-logo img,
[id*="header-logo"] img {
  width: 92px !important;
  height: 70px !important;
  max-width: 92px !important;
  object-fit: contain;
}

#header-logo > a,
#header-logo > a > .mw-ui-col-x {
  display: inline-flex;
  align-items: center;
  width: auto !important;
  flex-wrap: nowrap !important;
}

.deified-footer-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 0 0 42px;
  max-width: 520px;
}

.deified-footer-signature {
  display: block;
  width: min(170px, 46vw);
  height: auto;
  max-height: 58px;
  object-fit: contain;
  filter: invert(1);
  opacity: .92;
}

.deified-footer-tagline {
  margin: 0;
  max-width: 420px;
  color: rgba(255, 255, 255, .68);
  font-size: 14px;
  line-height: 1.7;
}

.em-related-products-grid .shopmag-product-title {
  margin: 10px 0 4px;
  font-size: 13px;
  font-weight: 500;
  color: var(--em-text);
  line-height: 1.4;
  letter-spacing: 0;
}

.em-related-products-grid .shopmag-product-title a {
  font-size: inherit;
  line-height: inherit;
}

.em-related-products-grid .price {
  font-size: 13px;
  line-height: 1.4;
}

.em-related-products-grid .shopmag-product-content {
  margin-top: 12px;
}

.em-related-products-grid .shopmag-product-content a {
  color: inherit;
  text-decoration: none;
}

.em-product-comments .mwcommentsmodule,
.em-product-comments .module-comments,
.em-product-comments .container,
.em-product-comments .container > .row,
.em-product-comments .container [class*="col-"] {
  width: 100% !important;
  max-width: none !important;
}

.em-product-comments .container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.em-product-comments .bg-silver {
  width: 100% !important;
  max-width: none !important;
}

.em-native-comments-wrap {
  margin-top: 24px;
}

.em-review-hidden { display: none !important; }

/* ── SPAM PROTECTION: hide the honeypot field visually ── */
.em-native-comments-wrap .em-hp-wrap,
.em-product-comments .em-hp-wrap {
  position: absolute !important;
  left: -9999px !important;
  overflow: hidden !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0.01 !important;
  pointer-events: none !important;
}

/* ── REMOVE STALE JS CLONES FROM RELATED PRODUCTS GRID ── */
.em-related-clone,
[class*="item-"][class*="em-related-clone"] {
  display: none !important;
}

.em-native-comments-wrap .bg-silver > .row:not(.leave-review),
.em-native-comments-wrap [id^="comments-list-"] {
  display: none !important;
}

.em-comments-panel,
.em-product-comments .leave-review {
  position: relative;
}

.em-comment-form-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--em-border);
  border-radius: 50%;
  background: var(--em-white);
  color: var(--em-text);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: color var(--em-t), border-color var(--em-t), background var(--em-t);
}

.em-comment-form-close:hover,
.em-comment-form-close:focus-visible {
  border-color: var(--em-accent);
  color: var(--em-accent);
}

.em-cart-mini {
  padding: 4px 0;
}

.em-cart-mini-items {
  display: grid;
  gap: 12px;
}

.em-cart-mini-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 32px;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  background: var(--em-white);
}

.em-cart-mini-img {
  display: block;
  width: 72px;
  height: 72px;
  overflow: hidden;
  border-radius: var(--em-radius-sm);
  background: var(--em-cream);
}

.em-cart-mini-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.em-cart-mini-title {
  display: block;
  color: var(--em-text);
  font-weight: 600;
  line-height: 1.35;
  text-decoration: none;
}

.em-cart-mini-meta {
  display: flex;
  gap: 6px;
  margin-top: 5px;
  color: var(--em-muted);
  font-size: 13px;
}

.em-cart-mini-meta strong {
  color: var(--em-text);
}

.em-cart-mini-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: var(--em-muted);
  text-decoration: none;
}

.em-cart-mini-remove:hover {
  background: var(--em-cream);
  color: var(--em-black);
}

.em-cart-mini-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 14px 0 12px;
  padding-top: 14px;
  border-top: 1px solid var(--em-border);
  font-size: 15px;
}

.em-cart-mini-checkout {
  width: 100%;
  height: 48px;
  border: 0;
  border-radius: var(--em-radius-sm);
  background: var(--em-black);
  color: var(--em-white);
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.em-checkout-core {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.em-checkout-card {
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-md);
  padding: 22px;
  background: var(--em-white);
  box-shadow: 0 14px 35px rgba(0, 0, 0, .04);
}

.em-checkout-card-title {
  margin: 0 0 6px !important;
  font-family: var(--em-font-display);
  font-size: 20px !important;
  line-height: 1.2;
  color: var(--em-text);
}

.em-checkout-card-copy {
  margin: 0 0 16px;
  color: var(--em-muted);
  font-size: 13px;
  line-height: 1.55;
}

.em-checkout-card label {
  display: block;
  margin: 12px 0 6px;
  color: var(--em-text);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.em-checkout-card .form-control {
  min-height: 46px;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  box-shadow: none;
}

.em-logistics-strip,
.em-payment-logo-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 14px;
}

.em-logistics-strip span,
.em-payment-logo-strip span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-pill);
  background: var(--em-off-white);
  color: var(--em-text);
  font-size: 11px;
  font-weight: 700;
}

.em-native-select-wrap select {
  min-height: 46px;
  border-radius: var(--em-radius-sm);
}

.em-shipping-options,
.mw-payment-gateway {
  display: grid !important;
  gap: 10px;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

.em-shipping-option,
.em-payment-option label {
  display: flex !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 58px;
  padding: 12px;
  border: 1px solid var(--em-border);
  border-radius: var(--em-radius-sm);
  background: var(--em-white);
  color: var(--em-text);
  text-align: left;
  cursor: pointer;
}

.em-shipping-option.is-selected,
.em-payment-option label:has(input:checked) {
  border-color: var(--em-black);
  box-shadow: 0 0 0 1px var(--em-black);
}

.em-shipping-logo,
.em-payment-logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 34px;
  padding: 0 8px;
  border-radius: var(--em-radius-sm);
  background: var(--em-black);
  color: var(--em-white);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .03em;
}

.em-shipping-option small {
  display: block;
  margin-top: 3px;
  color: var(--em-muted);
  font-size: 12px;
}

.em-payment-option .mw-ui-check > span:first-of-type {
  margin-right: 0;
}

.em-payment-name {
  color: var(--em-text);
  font-weight: 600;
}

.em-payment-methods #mw-payment-gateway-selected-wrapper,
.em-payment-methods [id^="mw-payment-gateway-selected-"] {
  margin-top: 16px;
}

@media (max-width: 991px) {
  .em-checkout-core {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 991px) {
  .deified-footer-brand {
    align-items: center;
    text-align: center;
  }

  .em-shop-filters-enhanced .em-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  #header-logo img,
  [id*="header-logo"] img {
    width: 66px !important;
    height: 52px !important;
    max-width: 66px !important;
  }
  .em-shop-filters-enhanced .em-shop-filter-panel {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .em-shop-filters-enhanced .em-filter-actions {
    justify-content: flex-start;
  }
  .em-shop-filters-enhanced .em-secondary-filter {
    order: 4;
    width: 100%;
    max-width: none;
  }
  .em-shop-filters-enhanced .em-shop-product-area > .d-flex:first-child,
  .em-shop-filters-enhanced .em-shop-product-area > .d-flex:first-child > .d-flex {
    width: 100%;
  }
  .em-shop-filters-enhanced .em-product-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* Checkout shipping and payment brand badges */
.em-checkout-branded-option {
  display: flex !important;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.em-checkout-brand-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  max-width: 100%;
  min-height: 28px;
  margin-left: auto;
  padding: 4px 8px;
  border: 1px solid var(--em-border, #e7e1dc);
  border-radius: 6px;
  background: #fff;
  color: #171717;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}

.em-checkout-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 18px;
  padding: 0 4px;
  border-radius: 4px;
  background: #171717;
  color: #fff;
  font-size: 9px;
  line-height: 1;
}

.em-brand-dhl .em-checkout-brand-mark {
  background: #ffcc00;
  color: #d40511;
}

.em-brand-ups .em-checkout-brand-mark {
  background: #351c15;
  color: #ffb500;
}

.em-brand-fedex .em-checkout-brand-mark {
  background: linear-gradient(90deg, #4d148c 0 55%, #ff6600 55% 100%);
}

.em-brand-paypal .em-checkout-brand-mark {
  background: #003087;
}

.em-brand-stripe .em-checkout-brand-mark {
  background: #635bff;
}

.em-brand-paystack .em-checkout-brand-mark {
  background: #09a5db;
}

.em-brand-flutterwave .em-checkout-brand-mark {
  background: #f5a623;
  color: #111;
}

.em-brand-visa .em-checkout-brand-mark,
.em-brand-card .em-checkout-brand-mark {
  background: #1a1f71;
}

.em-brand-mastercard .em-checkout-brand-mark {
  background: #eb001b;
}

@media (max-width: 575px) {
  .em-checkout-brand-badge {
    margin-left: 0;
  }
}

/* ── 25. AS SEEN ON INSTAGRAM ───────────────────────────── */
.deified-instagram-section {
  background: var(--em-surface, #faf9f6);
  padding: 80px 0;
}
.deified-instagram-eyebrow {
  font-family: var(--em-font-body, 'Jost', sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--em-accent, #c8a96e);
  margin-bottom: 8px;
}
.deified-instagram-heading {
  font-family: var(--em-font-display, 'Playfair Display', serif);
  font-size: 2.4rem;
  font-weight: 400;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 8px;
}
.deified-instagram-sub {
  font-family: var(--em-font-body, 'Jost', sans-serif);
  font-size: 15px;
  color: var(--em-muted, #737373);
}
.deified-instagram-section .btn-outline-primary {
  border-color: var(--em-accent, #c8a96e);
  color: var(--em-text, #1a1a1a);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
  transition: all var(--em-t, .28s cubic-bezier(.4,0,.2,1));
}
.deified-instagram-section .btn-outline-primary:hover {
  background: var(--em-accent, #c8a96e);
  color: var(--em-white, #fff);
  border-color: var(--em-accent, #c8a96e);
}
.deified-instagram-section .mwembed {
  max-width: 1200px;
  margin: 0 auto;
}

.deified-instagram-section .btn-outline-primary:hover {
  background: var(--em-accent, #c8a96e);
  color: var(--em-white, #fff);
  border-color: var(--em-accent, #c8a96e);
}
.deified-instagram-section .mwembed {
  max-width: 1200px;
  margin: 0 auto;
}

/* ══════════════════════════════════════════════════════════════
   CHECKOUT v2 — Form, Shipping, Contact Information
   Ties into shop/checkout module templates
   ══════════════════════════════════════════════════════════════ */

/* ── CHECKOUT FORM CONTAINER ─────────────────────────────────── */
.em-checkout-form-wrap {
  max-width: 680px;
}
.em-checkout-form-wrap .mw-checkout-form .mw-checkout-btn {
  min-height: 50px;
  padding: 14px 40px !important;
  width: auto;
}

/* ── SECTION HEADERS ─────────────────────────────────────────── */
.em-checkout-section {
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--em-border);
}
.em-checkout-section:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.em-checkout-section-title {
  font-family: var(--em-font-display, 'Playfair Display', serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 4px;
  letter-spacing: -.01em;
}
.em-checkout-section-sub {
  font-size: 13px;
  color: var(--em-muted, #737373);
  margin-bottom: 20px;
  line-height: 1.5;
}

/* ── FORM LAYOUT ─────────────────────────────────────────────── */
.em-checkout-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}
.em-checkout-form-row.em-single-col {
  grid-template-columns: 1fr;
}
@media (max-width: 575px) {
  .em-checkout-form-row {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

.em-field-group {
  display: flex;
  flex-direction: column;
}
.em-field-group label,
.em-checkout-form-wrap label,
.mw-checkout-form label,
.mw-shipping-and-payment label,
#checkout_form label {
  display: block;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--em-text, #1a1a1a);
}
.em-field-group .form-control,
.em-checkout-form-wrap .form-control,
.mw-checkout-form input.form-control,
.mw-checkout-form select.form-control,
.mw-checkout-form textarea.form-control,
#checkout_form input[type="text"],
#checkout_form input[type="email"],
#checkout_form input[type="tel"],
#checkout_form select,
.mw-shipping-and-payment input[type="text"],
.mw-shipping-and-payment input[type="email"],
.mw-shipping-and-payment input[type="tel"],
.mw-shipping-and-payment select {
  min-height: 48px;
  padding: 11px 14px;
  border: 1.5px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  font-size: 15px;
  font-family: var(--em-font-body, 'Jost', sans-serif);
  color: var(--em-text, #1a1a1a);
  background: var(--em-white, #ffffff);
  transition: border-color var(--em-t, .28s), box-shadow var(--em-t, .28s);
  width: 100%;
  box-sizing: border-box;
}
.em-field-group .form-control:focus,
.mw-checkout-form input:focus,
.mw-checkout-form select:focus,
#checkout_form input:focus,
#checkout_form select:focus,
.mw-shipping-and-payment input:focus,
.mw-shipping-and-payment select:focus {
  border-color: var(--em-accent, #c8a96e);
  box-shadow: 0 0 0 3px rgba(200,169,110,.14);
  outline: none;
}
.em-field-group .form-control::placeholder,
.mw-checkout-form input::placeholder {
  color: var(--em-muted, #737373);
  opacity: .6;
}

/* ── REQUIRED FIELD INDICATOR ──────────────────────────────── */
.em-field-required::after {
  content: ' *';
  color: var(--em-danger, #c0392b);
  font-size: .9em;
}

/* ── SHIPPING OPTIONS (overrides for module template) ────────── */
.mw-shipping-select .em-shipping-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}
.mw-shipping-select .em-shipping-option {
  display: flex !important;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 58px;
  padding: 14px 16px;
  border: 1.5px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  background: var(--em-white, #ffffff);
  cursor: pointer;
  transition: all var(--em-t, .28s);
  margin: 0;
}
.mw-shipping-select .em-shipping-option:hover {
  border-color: var(--em-accent, #c8a96e);
  background: var(--em-off-white, #f7f5f0);
}
.mw-shipping-select .em-shipping-option.is-selected {
  border-color: var(--em-black, #0d0d0d);
  box-shadow: 0 0 0 1.5px var(--em-black, #0d0d0d);
  background: var(--em-off-white, #f7f5f0);
}
.mw-shipping-select .em-shipping-option .form-label {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}
.mw-shipping-select .em-shipping-option .form-label small {
  font-size: 12px;
  font-weight: 400;
  color: var(--em-muted, #737373);
}
.mw-shipping-select .em-shipping-option input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--em-black, #0d0d0d);
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
}

/* ── PAYMENT OPTIONS (overrides for module template) ─────────── */
.mw-payment-gateway,
.em-payment-methods .mw-payment-gateway {
  display: flex !important;
  flex-direction: column;
  gap: 10px;
  padding: 0 !important;
  margin: 0 0 20px !important;
  list-style: none !important;
}
.mw-payment-gateway .form-group,
.em-payment-methods .form-group {
  margin: 0 !important;
}
.mw-payment-gateway .custom-control {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 58px;
  padding: 14px 16px;
  border: 1.5px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  background: var(--em-white, #ffffff);
  cursor: pointer;
  transition: all var(--em-t, .28s);
  margin: 0;
}
.mw-payment-gateway .custom-control:hover {
  border-color: var(--em-accent, #c8a96e);
}
.mw-payment-gateway .custom-control:has(input:checked),
.mw-payment-gateway .custom-control.is-selected {
  border-color: var(--em-black, #0d0d0d);
  box-shadow: 0 0 0 1.5px var(--em-black, #0d0d0d);
  background: var(--em-off-white, #f7f5f0);
}
.mw-payment-gateway .custom-control label {
  display: flex !important;
  align-items: center;
  gap: 12px;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  cursor: pointer;
  text-transform: none;
  letter-spacing: 0;
}
.mw-payment-gateway .custom-control input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: var(--em-black, #0d0d0d);
  cursor: pointer;
  flex-shrink: 0;
  margin: 0;
}

/* ── SHIPPING METHOD HEADING ──────────────────────────────────── */
.mw-shipping-select h4 {
  font-family: var(--em-font-display, 'Playfair Display', serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 4px;
  letter-spacing: -.01em;
}
.mw-shipping-select .text-muted,
.mw-shipping-and-payments h4 + .text-muted {
  font-size: 13px;
  color: var(--em-muted, #737373) !important;
  margin-bottom: 20px;
  display: block;
}

/* ── ORDER ACTIONS (buttons row) ─────────────────────────────── */
.em-checkout-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--em-border);
  flex-wrap: wrap;
}
.em-checkout-actions .btn,
.em-checkout-actions button,
.mw-checkout-form .mw-checkout-btn,
.mw-checkout-form .btn-primary,
.mw-checkout-form .btn-default,
#complete_order_button {
  min-height: 50px;
  padding: 13px 36px !important;
  border-radius: var(--em-radius-sm, 4px) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  transition: all var(--em-t, .28s) !important;
  border: 1.5px solid var(--em-black, #0d0d0d) !important;
  cursor: pointer;
  font-family: var(--em-font-body, 'Jost', sans-serif);
  line-height: 1.4;
}
.em-checkout-actions .btn-primary,
.mw-checkout-form .mw-checkout-btn,
#complete_order_button {
  background: var(--em-black, #0d0d0d) !important;
  color: var(--em-white, #ffffff) !important;
}
.em-checkout-actions .btn-primary:hover,
.mw-checkout-form .mw-checkout-btn:hover,
#complete_order_button:hover {
  background: transparent !important;
  color: var(--em-black, #0d0d0d) !important;
}
.em-checkout-actions .btn-outline,
.em-checkout-actions .btn-default,
.mw-checkout-form .btn-default {
  background: transparent !important;
  color: var(--em-black, #0d0d0d) !important;
}
.em-checkout-actions .btn-outline:hover,
.em-checkout-actions .btn-default:hover,
.mw-checkout-form .btn-default:hover {
  background: var(--em-black, #0d0d0d) !important;
  color: var(--em-white, #ffffff) !important;
}

/* ── COMPLETE ORDER BUTTON DISABLED STATE ────────────────────── */
#complete_order_button[disabled],
#complete_order_button:disabled {
  opacity: .4;
  cursor: not-allowed;
  pointer-events: none;
}

/* ── TERMS CHECKBOX ──────────────────────────────────────────── */
.module-shop-checkout-terms {
  margin: 20px 0;
}
.module-shop-checkout-terms .custom-control {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.module-shop-checkout-terms input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--em-black, #0d0d0d);
  flex-shrink: 0;
}
.module-shop-checkout-terms label {
  font-size: 13px;
  color: var(--em-text, #1a1a1a);
  line-height: 1.5;
  text-transform: none;
  letter-spacing: 0;
}
.module-shop-checkout-terms label a {
  color: var(--em-accent-dark, #9e7c44);
  text-decoration: underline;
  font-weight: 500;
}
.module-shop-checkout-terms label a:hover {
  color: var(--em-accent, #c8a96e);
}

/* ── DISCOUNT LINK ───────────────────────────────────────────── */
.mw-checkout-form a[onclick*="shop/coupons"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--em-text, #1a1a1a);
  text-decoration: none;
  border-bottom: 1px dashed var(--em-border, #e2ddd4);
  padding-bottom: 2px;
  transition: all var(--em-t, .28s);
}
.mw-checkout-form a[onclick*="shop/coupons"]:hover {
  color: var(--em-accent, #c8a96e);
  border-bottom-color: var(--em-accent, #c8a96e);
}

/* ── SHIPPING GATEWAY MODULE RENDER ─────────────────────────── */
#mw-shipping-gateway-module-render,
[id^="mw-shipping-gateway-module-render-"],
.js-shipping-gateway-module-box {
  margin-top: 12px;
  padding: 16px;
  background: var(--em-off-white, #f7f5f0);
  border-radius: var(--em-radius-sm, 4px);
  border: 1px solid var(--em-border, #e2ddd4);
}

/* ── ORDER SUMMARY OVERRIDES ─────────────────────────────────── */
.em-order-summary .checkout-modal-products-wrapper {
  max-height: 340px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--em-border) transparent;
}
.em-order-summary .checkout-modal-products-wrapper::-webkit-scrollbar {
  width: 4px;
}
.em-order-summary .checkout-modal-products-wrapper::-webkit-scrollbar-thumb {
  background: var(--em-border);
  border-radius: 2px;
}
.em-order-summary .checkout-modal-product-list-item {
  padding: 12px 0 !important;
  border-bottom: 1px solid var(--em-border);
}
.em-order-summary .checkout-modal-product-list-item:last-child {
  border-bottom: none;
}
.em-order-summary .checkout-modal-product-list-item img {
  border-radius: var(--em-radius-sm, 4px);
  object-fit: cover;
}
.em-order-summary .checkout-modal-product-list-item h6 {
  font-size: 13px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 2px;
}
.em-order-summary .checkout-modal-product-list-item .mw-order-custom-fields {
  font-size: 11px;
  color: var(--em-muted, #737373);
}
.em-order-summary .checkout-modal-product-list-item .mw-qty-field input {
  width: 60px !important;
  height: 34px !important;
  border: 1px solid var(--em-border) !important;
  border-radius: var(--em-radius-sm, 4px) !important;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
}
.em-order-summary .checkout-v2-remove-icon i {
  font-size: 18px !important;
  color: var(--em-muted, #737373) !important;
  transition: color var(--em-t, .28s);
}
.em-order-summary .checkout-v2-remove-icon:hover i {
  color: var(--em-danger, #c0392b) !important;
}

/* ── COUPON INPUT ────────────────────────────────────────────── */
.em-order-summary .checkout-modal-promocode-holder input {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  font-size: 13px;
}
.em-order-summary .checkout-modal-promocode-holder button {
  height: 40px;
  padding: 0 16px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
  border: none;
  border-radius: var(--em-radius-sm, 4px);
  cursor: pointer;
  transition: background var(--em-t, .28s);
}
.em-order-summary .checkout-modal-promocode-holder button:hover {
  background: var(--em-accent, #c8a96e);
}

/* ── ALERTS ──────────────────────────────────────────────────── */
.mw-checkout-form .alert {
  padding: 14px 18px;
  border-radius: var(--em-radius-sm, 4px);
  font-size: 13px;
  line-height: 1.6;
  margin: 16px 0;
}
.mw-checkout-form .alert-danger {
  background: #fde8e8;
  border: 1px solid #f5c6cb;
  color: var(--em-danger, #c0392b);
}
.mw-checkout-form .alert-success {
  background: #e8f5ee;
  border: 1px solid #c3e6cb;
  color: var(--em-success, #2e7d52);
}

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 767px) {
  .mw-shipping-select .em-shipping-option label {
    font-size: 13px;
  }
  .mw-payment-gateway .custom-control label {
    font-size: 13px;
  }
  .em-checkout-actions {
    flex-direction: column-reverse;
  }
  .em-checkout-actions .btn,
  .em-checkout-actions button {
    width: 100%;
    text-align: center;
  }
  .mw-checkout-form .mw-checkout-btn,
  #complete_order_button {
    width: 100%;
  }
}

/* ── [data-theme="dark"] CHECKOUT ────────────────────────────── */
[data-theme="dark"] .em-field-group .form-control,
[data-theme="dark"] .mw-checkout-form input,
[data-theme="dark"] .mw-checkout-form select,
[data-theme="dark"] #checkout_form input,
[data-theme="dark"] #checkout_form select,
[data-theme="dark"] .mw-shipping-and-payment input,
[data-theme="dark"] .mw-shipping-and-payment select {
  background: #1e1b18;
  border-color: #302c26;
  color: #e8e2d8;
}
[data-theme="dark"] .mw-shipping-select .em-shipping-option {
  background: #1e1b18;
  border-color: #302c26;
}
[data-theme="dark"] .mw-shipping-select .em-shipping-option:hover {
  background: #252018;
  border-color: var(--em-accent);
}
[data-theme="dark"] .mw-shipping-select .em-shipping-option.is-selected {
  border-color: var(--em-accent);
  background: #252018;
}
[data-theme="dark"] .mw-payment-gateway .custom-control {
  background: #1e1b18;
  border-color: #302c26;
}
[data-theme="dark"] .mw-payment-gateway .custom-control:has(input:checked),
[data-theme="dark"] .mw-payment-gateway .custom-control.is-selected {
  border-color: var(--em-accent);
  background: #252018;
}
[data-theme="dark"] .em-order-summary .checkout-modal-promocode-holder input {
  background: #1e1b18;
  border-color: #302c26;
  color: #e8e2d8;
}
[data-theme="dark"] .em-checkout-section {
  border-bottom-color: #302c26;
}

/* ══════════════════════════════════════════════════════════════
   SHOP LISTING — Product Grid + Filters
   ══════════════════════════════════════════════════════════════ */

/* ── LAYOUT ──────────────────────────────────────────────────── */
.em-shop-layout {
  max-width: 100%;
}

/* ── TOP TOOLBAR (Search, Sort, Limit) ──────────────────────── */
.em-shop-top-bar {
  margin-bottom: 24px;
}
.em-shop-toolbar {
  display: flex;
  align-items: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}
.em-filter-actions {
  display: flex;
  gap: 10px;
  align-items: flex-end;
  flex-wrap: wrap;
}

/* ── SIDEBAR WIDGETS ────────────────────────────────────────── */
.em-sidebar-widget {
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--em-border, #e2ddd4);
}
.em-sidebar-widget:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.em-widget-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--em-muted, #737373);
  margin: 0 0 14px;
}
.em-widget-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* ── CATEGORIES ──────────────────────────────────────────────── */
.em-category-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.em-cat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  border-radius: var(--em-radius-sm, 4px);
  font-size: 13px;
  font-weight: 500;
  color: var(--em-text, #1a1a1a);
  cursor: pointer;
  transition: all var(--em-t, .28s);
}
.em-cat-item:hover {
  background: var(--em-off-white, #f7f5f0);
  color: var(--em-accent-dark, #9e7c44);
}
.em-cat-item.em-cat-active {
  background: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
  font-weight: 600;
}
.em-cat-count {
  font-size: 11px;
  color: var(--em-muted, #737373);
}
.em-cat-children {
  margin-left: 16px;
}

/* ── PRICE RANGE ─────────────────────────────────────────────── */
.em-price-inputs {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}
.em-price-inputs .em-field-group {
  flex: 1;
  margin-bottom: 0;
}
.em-price-input-wrap {
  position: relative;
}
.em-currency-sign {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  color: var(--em-muted, #737373);
  pointer-events: none;
}
.em-price-input-wrap .em-form-control {
  padding-left: 24px;
  min-height: 42px;
  font-size: 13px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.em-price-sep {
  align-self: center;
  padding-bottom: 10px;
  color: var(--em-muted, #737373);
  font-size: 14px;
}

/* ── OFFERS DROPDOWN ─────────────────────────────────────────── */
.em-sidebar-widget select.em-form-control {
  min-height: 44px;
  font-size: 13px;
  padding: 8px 12px;
}

/* ── TAGS ────────────────────────────────────────────────────── */
.em-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.em-tag-pill {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  background: var(--em-off-white, #f7f5f0);
  border: 1px solid var(--em-border, #e2ddd4);
  color: var(--em-text, #1a1a1a);
  cursor: pointer;
  transition: all var(--em-t, .28s);
}
.em-tag-pill:hover {
  border-color: var(--em-accent, #c8a96e);
  background: var(--em-white, #ffffff);
}
.em-tag-pill.em-tag-active {
  background: var(--em-accent, #c8a96e);
  border-color: var(--em-accent, #c8a96e);
  color: var(--em-white, #ffffff);
}

/* ── CUSTOM FIELD CHECKBOXES ─────────────────────────────────── */
.em-check-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  cursor: pointer;
  font-size: 13px;
  color: var(--em-text, #1a1a1a);
  transition: color var(--em-t, .28s);
}
.em-check-label:hover {
  color: var(--em-accent-dark, #9e7c44);
}
.em-check-input {
  width: 16px;
  height: 16px;
  accent-color: var(--em-black, #0d0d0d);
  flex-shrink: 0;
  margin: 0;
}
.em-check-text {
  user-select: none;
}

/* ── PRODUCT GRID ────────────────────────────────────────────── */
.em-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 32px;
}
@media (max-width: 991px) {
  .em-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .em-product-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ── PRODUCT CARD ────────────────────────────────────────────── */
.em-product-card {
  position: relative;
  background: transparent;
}
.em-product-card-link {
  text-decoration: none;
  color: inherit;
  display: block;
}
.em-product-card .image {
  width: 100%;
  aspect-ratio: 3 / 4;
  background-size: cover;
  background-position: center top;
  position: relative;
  overflow: hidden;
  border-radius: var(--em-radius-md, 8px);
  display: block;
  background-color: var(--em-cream, #ede9e0);
}
.em-product-card .image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0);
  transition: background var(--em-t, .28s);
  border-radius: var(--em-radius-md, 8px);
}
.em-product-card:hover .image::after {
  background: rgba(0,0,0,.08);
}
.em-product-card .title {
  font-size: 13px;
  font-weight: 500;
  color: var(--em-text, #1a1a1a);
  line-height: 1.4;
  margin: 12px 0 4px;
  transition: color var(--em-t, .28s);
}
.em-product-card-link:hover .title {
  color: var(--em-accent-dark, #9e7c44);
}

/* ── PRODUCT CARD HOVER ACTIONS ──────────────────────────────── */
.em-product-card .hover {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  display: flex;
  gap: 7px;
  opacity: 0;
  transition: all var(--em-t, .28s);
  z-index: 3;
}
.em-product-card:hover .hover {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
@media (hover: none) {
  .em-product-card .hover {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}
.em-product-card .hover .btn {
  width: 38px;
  height: 38px;
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--em-white, #ffffff) !important;
  color: var(--em-black, #0d0d0d) !important;
  border: none !important;
  border-radius: 100px !important;
  font-size: 16px;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
  transition: all var(--em-t, .28s) !important;
  cursor: pointer;
}
.em-product-card .hover .btn:hover {
  background: var(--em-black, #0d0d0d) !important;
  color: var(--em-white, #ffffff) !important;
  transform: translateY(-2px);
}

/* ── PRODUCT PRICE ───────────────────────────────────────────── */
.em-product-price-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 0;
}
.em-product-price-row .price {
  font-size: 14px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
}
.em-product-price-row .price-old {
  font-size: 12px;
  color: var(--em-muted, #737373);
  text-decoration: line-through;
}

/* ── TAG BADGE ON PRODUCT ────────────────────────────────────── */
.em-tag-badge {
  display: inline-block;
  font-size: 10px;
  color: var(--em-muted, #737373);
  text-decoration: none;
  margin-right: 4px;
  margin-top: 4px;
  padding: 2px 6px;
  background: var(--em-off-white, #f7f5f0);
  border-radius: 4px;
}
.em-tag-badge:hover {
  color: var(--em-accent-dark, #9e7c44);
}

/* ── PAGINATION ──────────────────────────────────────────────── */
.em-pagination-wrap {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.em-pagination-wrap .pagination .page-link {
  border: 1px solid var(--em-border, #e2ddd4);
  color: var(--em-text, #1a1a1a);
  font-size: 13px;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--em-radius-sm, 4px);
  margin: 0 3px;
  transition: all var(--em-t, .28s);
  background: var(--em-white, #ffffff);
}
.em-pagination-wrap .pagination .page-link:hover,
.em-pagination-wrap .pagination .page-item.active .page-link {
  background: var(--em-black, #0d0d0d);
  border-color: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
}

/* ── EMPTY STATE ─────────────────────────────────────────────── */
.em-shop-product-area .em-empty-state {
  padding: 60px 20px;
}

/* ══════════════════════════════════════════════════════════════
   PRODUCT DETAIL PAGE — Add to Cart + Pricing
   ══════════════════════════════════════════════════════════════ */

/* ── ADD TO CART MODULE ──────────────────────────────────────── */
.em-cart-add-wrap {
  margin-top: 20px;
}
.em-prices-and-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.em-price-action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--em-border, #e2ddd4);
  flex-wrap: wrap;
}
.em-price-action-row:last-child {
  border-bottom: none;
}
.em-price-value {
  font-size: 22px;
  font-weight: 700;
  color: var(--em-text, #1a1a1a);
  font-family: var(--em-font-display, 'Playfair Display', serif);
}
.em-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--em-font-body, 'Jost', sans-serif);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 13px 28px;
  border: none;
  border-radius: var(--em-radius-sm, 4px);
  cursor: pointer;
  transition: background var(--em-t, .28s ease);
  white-space: nowrap;
  line-height: 1.2;
  text-decoration: none;
}
.em-add-to-cart-btn {
  background: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
  min-height: 48px;
  padding: 12px 32px !important;
}
.em-add-to-cart-btn:hover {
  background: var(--em-accent, #c8a96e);
  color: var(--em-white, #ffffff);
}
.em-add-to-cart-btn i {
  font-size: 16px;
}

/* ── PRODUCT INNER PAGE HEADER ───────────────────────────────── */
.shop-inner-page .heading h1 {
  font-family: var(--em-font-display, 'Playfair Display', serif);
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.2;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 12px;
}
.shop-inner-page .next-previous-content .btn {
  width: 36px;
  height: 36px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--em-radius-pill, 100px) !important;
  border: 1px solid var(--em-border, #e2ddd4) !important;
  background: var(--em-white, #ffffff);
  color: var(--em-text, #1a1a1a);
  font-size: 16px;
  margin-left: 4px;
  transition: all var(--em-t, .28s);
}
.shop-inner-page .next-previous-content .btn:hover {
  background: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
  border-color: var(--em-black, #0d0d0d) !important;
}

/* ── PRODUCT INNER AVAILABILITY ──────────────────────────────── */
.shop-inner-page .main-price .price {
  font-size: 24px;
  font-weight: 700;
  color: var(--em-text, #1a1a1a);
  font-family: var(--em-font-display, 'Playfair Display', serif);
}
.shop-inner-page .main-price .price-old {
  font-size: 16px;
  color: var(--em-muted, #737373);
  text-decoration: line-through;
  margin-right: 8px;
}
.shop-inner-page .availability span.text-success {
  color: var(--em-success, #2e7d52) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
}
.shop-inner-page .availability span.text-danger {
  color: var(--em-danger, #c0392b) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .03em;
}
.shop-inner-page .availability span.text-muted {
  font-size: 12px;
  color: var(--em-muted, #737373) !important;
}

/* ── OUT OF STOCK NOTIFY FORM ────────────────────────────────── */
.em-bis-wrap {
  margin: 20px 0;
  padding: 20px;
  background: var(--em-off-white, #f7f5f0);
  border: 1px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-md, 8px);
}
.em-bis-form {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.em-bis-icon {
  width: 40px;
  height: 40px;
  border-radius: 100px;
  background: var(--em-cream, #ede9e0);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 18px;
  color: var(--em-accent, #c8a96e);
}
.em-bis-body { flex: 1; min-width: 0; }
.em-bis-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 4px;
}
.em-bis-desc {
  font-size: 12px;
  color: var(--em-muted, #737373);
  margin-bottom: 12px;
  line-height: 1.5;
}
.em-bis-input-row {
  display: flex;
  gap: 8px;
}
.em-bis-input {
  flex: 1;
  min-height: 44px;
  padding: 10px 14px;
  border: 1.5px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  font-size: 14px;
  font-family: var(--em-font-body, 'Jost', sans-serif);
  transition: border-color var(--em-t, .28s);
}
.em-bis-input:focus {
  border-color: var(--em-accent, #c8a96e);
  outline: none;
  box-shadow: 0 0 0 3px rgba(200,169,110,.14);
}
.em-bis-submit {
  min-height: 44px;
  padding: 0 20px;
  background: var(--em-black, #0d0d0d);
  color: var(--em-white, #ffffff);
  border: none;
  border-radius: var(--em-radius-sm, 4px);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--em-t, .28s);
  font-family: var(--em-font-body, 'Jost', sans-serif);
}
.em-bis-submit:hover {
  background: var(--em-accent, #c8a96e);
}
.em-bis-success {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--em-success, #2e7d52);
  padding: 4px 0;
}

/* ── CUSTOM FIELDS ON PRODUCT PAGE ───────────────────────────── */
.em-cart-add-wrap .mw-custom-field-form-controls select,
.em-cart-add-wrap .mw-custom-field-form-controls input {
  min-height: 44px;
  border: 1.5px solid var(--em-border, #e2ddd4);
  border-radius: var(--em-radius-sm, 4px);
  font-size: 14px;
  font-family: var(--em-font-body, 'Jost', sans-serif);
  padding: 10px 14px;
  width: 100%;
  color: var(--em-text, #1a1a1a);
  background: var(--em-white, #ffffff);
  transition: border-color var(--em-t, .28s);
}
.em-cart-add-wrap .mw-custom-field-form-controls select:focus,
.em-cart-add-wrap .mw-custom-field-form-controls input:focus {
  border-color: var(--em-accent, #c8a96e);
  outline: none;
  box-shadow: 0 0 0 3px rgba(200,169,110,.14);
}
.em-cart-add-wrap .mw-custom-field-form-controls label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--em-text, #1a1a1a);
  margin-bottom: 6px;
  display: block;
}

/* ── PRODUCT INFO LAYOUT ─────────────────────────────────────── */
.shop-inner-page .product-info .description {
  font-size: 14px;
  line-height: 1.8;
  color: var(--em-text, #1a1a1a);
}
.shop-inner-page .product-info .description h1,
.shop-inner-page .product-info .description h2,
.shop-inner-page .product-info .description h3,
.shop-inner-page .product-info .description h4 {
  color: var(--em-text, #1a1a1a);
  font-family: var(--em-font-display, 'Playfair Display', serif);
}

/* ── RESPONSIVE PRODUCT PAGE ─────────────────────────────────── */
@media (max-width: 767px) {
  .em-price-action-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .em-price-value {
    text-align: center;
  }
  .em-add-to-cart-btn {
    width: 100%;
  }
}
