/** Shopify CDN: Minification failed

Line 4748:0 Unexpected "}"

**/
/* ============================================================
   SNAP SOLVES — Brand Theme
   Navy #0d2545  ·  Gold #d4956a  ·  Cream #faf8f5
   Bold, premium, editorial — 3D Models Store
   ============================================================ */

/* Cross-document View Transitions — smooth fade between pages instead of
   blank white flash. Chrome 126+; all other browsers fall back to normal. */
@view-transition { navigation: auto; }

::view-transition-old(root) {
  animation: 180ms ease-in forwards snap-vt-out;
}
::view-transition-new(root) {
  animation: 280ms ease-out forwards snap-vt-in;
}
@keyframes snap-vt-out {
  to { opacity: 0; transform: scale(0.99); }
}
@keyframes snap-vt-in {
  from { opacity: 0; transform: scale(1.01); }
}

/* Global pointer cursor for all interactive elements and their children */
a, a *,
button, button *,
[role="button"], [role="button"] *,
summary, summary *,
select,
input[type="submit"], input[type="button"],
input[type="reset"], input[type="checkbox"], input[type="radio"],
label[for] {
  cursor: pointer !important;
}

:root {
  /* Brand Colors */
  --navy:         #0d2545;
  --navy-dark:    #081830;
  --navy-mid:     #163260;
  --navy-light:   #1e3f78;
  --gold:         #d4956a;
  --gold-light:   #e8b48e;
  --gold-dark:    #b8784e;
  --gold-muted:   #f5e8dc;

  /* Neutrals */
  --cream:        #faf8f5;
  --white:        #ffffff;
  --gray-50:      #f7f7f8;
  --gray-100:     #f0f0f2;
  --gray-200:     #e4e4e8;
  --gray-300:     #d0d0d6;
  --gray-500:     #8a8a96;
  --gray-700:     #3d3d4a;
  --black:        #0a0a0f;

  /* Shadows */
  --shadow-xs: 0 1px 3px rgba(13,37,69,0.06);
  --shadow-sm: 0 2px 10px rgba(13,37,69,0.09), 0 1px 3px rgba(13,37,69,0.05);
  --shadow-md: 0 8px 28px rgba(13,37,69,0.12), 0 2px 8px rgba(13,37,69,0.06);
  --shadow-lg: 0 20px 56px rgba(13,37,69,0.14), 0 6px 18px rgba(13,37,69,0.07);
  --shadow-gold: 0 4px 20px rgba(212,149,106,0.25);

  /* Typography */
  --font-display: 'IBM Plex Sans', system-ui, sans-serif;
  --font-body:    'IBM Plex Sans', system-ui, sans-serif;

  /* Radii */
  --r-xs: 4px;
  --r-sm: 8px;
  --r:    14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --r-full: 9999px;

  /* Motion */
  --ease:  cubic-bezier(0.22, 1, 0.36, 1);
  --fast:  0.16s;
  --mid:   0.28s;
  --slow:  0.42s;
}

/* Hide inline newsletter section — using popup instead */
.newsletter,
.shopify-section:has(.newsletter) { display: none !important; }

/* =====================
   POPUP SECTION
   ===================== */
.snap-popup-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
  backdrop-filter: blur(4px);
}
.snap-popup-overlay.snap-popup--open {
  opacity: 1;
  visibility: visible;
}
.snap-popup__card {
  position: relative;
  background: #fff;
  border-radius: 20px;
  padding: 48px 40px 36px;
  max-width: 460px;
  width: 100%;
  text-align: center;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.22);
  transform: translateY(24px) scale(0.97);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.snap-popup--open .snap-popup__card {
  transform: translateY(0) scale(1);
}
.snap-popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: none;
  border: none;
  cursor: pointer;
  color: #888;
  padding: 6px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, color 0.15s ease;
}
.snap-popup__close:hover { background: #f0f0f0; color: #222; }
.snap-popup__badge {
  display: inline-block;
  background: var(--gold);
  color: var(--navy);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 100px;
  margin-bottom: 18px;
}
.snap-popup__heading {
  font-family: var(--font-display);
  font-size: 2.6rem;
  font-weight: 800;
  color: var(--navy);
  margin: 0 0 10px;
  line-height: 1.2;
}
.snap-popup__sub {
  font-family: var(--font-body);
  font-size: 1.45rem;
  color: #555;
  margin: 0 0 28px;
  line-height: 1.6;
}
.snap-popup__form { width: 100%; }
.snap-popup__field {
  display: flex;
  border: 1.5px solid #e0e0e0;
  border-radius: 100px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}
.snap-popup__field:focus-within { border-color: var(--navy); }
.snap-popup__field input[type="email"] {
  flex: 1;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  padding: 13px 20px;
  font-family: var(--font-body);
  font-size: 1.4rem;
  color: var(--navy);
  background: none;
  min-width: 0;
}
.snap-popup__field input[type="email"]:focus,
.snap-popup__field input[type="email"]:focus-visible { outline: none !important; box-shadow: none !important; }
.snap-popup__field input[type="email"]::placeholder { color: #bbb; }
.snap-popup__submit {
  background: var(--navy);
  color: #fff;
  border: none;
  border-radius: 100px;
  padding: 13px 24px;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.2s ease;
  margin: 4px;
}
.snap-popup__submit:hover { background: var(--gold); color: var(--navy); }
.snap-popup__success {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #22c55e;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 600;
  padding: 16px 0;
}
.snap-popup__error { color: #e53e3e; font-size: 1.2rem; margin-top: 8px; }
.snap-popup__note { font-size: 1.15rem; color: #aaa; margin: 16px 0 0; }

@media (max-width: 480px) {
  .snap-popup__card { padding: 36px 24px 28px; }
  .snap-popup__heading { font-size: 2rem; }
  .snap-popup__field { flex-direction: column; border-radius: 12px; }
  .snap-popup__field input[type="email"] { border-radius: 12px 12px 0 0; }
  .snap-popup__submit { border-radius: 0 0 12px 12px; margin: 0; }
}

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

body {
  background: var(--cream) !important;
  color: var(--navy) !important;
  font-family: var(--font-body) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 1.5rem !important;
}

/* ── Universal page background ── */
html,
body,
.gradient,
.shopify-section,
.shopify-section-group,
[class*="color-scheme-"],
main,
#MainContent,
.content-for-layout {
  background-color: #f9f9f8 !important;
  color: var(--navy) !important;
}

/* Keep --cream in sync */
:root { --cream: #f9f9f8; --gray-50: #f9f9f8; }

h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 {
  font-family: var(--font-display) !important;
  color: var(--navy) !important;
  letter-spacing: -0.025em;
  line-height: 1.1;
}
p { color: var(--gray-700); line-height: 1.75; }
a { color: var(--navy); transition: color var(--fast) ease; }
a:hover { color: var(--gold-dark); }

::selection { background: var(--gold-muted); color: var(--navy); }

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--gray-300); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--gray-500); }

/* =====================
   LOADER
   ===================== */
/* Custom cursor — anchored at 0,0; movement via transform only (no layout reflow) */
#snap-cursor,
#snap-cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  will-change: transform;
  transform: translate(0, 0);
}

/* Loader is permanently hidden — never used for navigation */
#snap-loader { display: none; }


/* =============================================
   PRODUCT CARD SKELETON OVERLAY
   A full-card skeleton is injected over each
   card and fades out once the image loads.
   ============================================= */
@keyframes snap-shimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}

.card-wrapper { position: relative; }

/* Full-card skeleton overlay */
.snap-card-skeleton {
  position: absolute;
  inset: 0;
  z-index: 10;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--card-corner-radius, 0.6rem);
  background: rgb(var(--color-background));
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.snap-card-skeleton--done { opacity: 0; }

/* Shimmer — solid grays so it's clearly visible */
.snap-card-skeleton__img,
.snap-card-skeleton__line,
.snap-card-skeleton__price {
  background: linear-gradient(
    90deg,
    #f0f0f2 25%,
    #e4e4e8 50%,
    #f0f0f2 75%
  );
  background-size: 400% 100%;
  animation: snap-shimmer 1.5s ease-in-out infinite;
}

/* Image block — fills the image ratio area */
.snap-card-skeleton__img {
  flex: 1;
  min-height: 0;
}

/* Text bars below the image */
.snap-card-skeleton__info {
  padding: 1.2rem 1rem 1.4rem;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
  background: rgb(var(--color-background));
}
.snap-card-skeleton__line {
  height: 14px;
  border-radius: 5px;
  width: 72%;
}
.snap-card-skeleton__line--med { width: 48%; }
.snap-card-skeleton__price {
  height: 13px;
  width: 35%;
  border-radius: 5px;
}

.snap-loader__ring {
  stroke-dasharray: 377;
  transform-origin: 70px 70px;
  animation:
    snap-ring-rotate 2s linear infinite,
    snap-ring-morph 2s ease-in-out infinite;
}

@keyframes snap-ring-rotate {
  from { transform: rotate(-90deg); }
  to   { transform: rotate(270deg); }
}

@keyframes snap-ring-morph {
  0%   { stroke-dashoffset: 0;   stroke-width: 2;   opacity: 0.5; }
  50%  { stroke-dashoffset: 283; stroke-width: 9;   opacity: 1;   }
  100% { stroke-dashoffset: 0;   stroke-width: 2;   opacity: 0.5; }
}

/* =====================
   ANNOUNCEMENT BAR
   ===================== */
.announcement-bar,
.announcement-bar__message {
  background: var(--navy-dark) !important;
  color: var(--gold-light) !important;
}
.announcement-bar *, .announcement-bar__link {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important; font-weight: 500 !important;
  color: var(--gold-light) !important; letter-spacing: 0.03em;
}

/* =====================
   HEADER / NAVBAR
   ===================== */
.shopify-section-group-header-group,
.section-header { position: sticky !important; top: 0 !important; z-index: 200 !important; }

.header-wrapper {
  background: #f9f9f8 !important;
  border-bottom: 1px solid var(--gray-200) !important;
  box-shadow: none !important;
  transition: box-shadow var(--mid) ease !important;
  padding-bottom: 1.2rem !important;
}
.snap-header--scrolled .header-wrapper {
  box-shadow: 0 2px 16px rgba(13,37,69,0.08) !important;
}


/* Header: tall, centered layout */
.header {
  height: 88px !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  gap: 24px !important;
}

/* Nav on the LEFT */
header-drawer,
.header__menu-drawer { grid-column: 1; }

.header__inline-menu,
.header nav {
  grid-column: 1 !important;
  justify-self: start !important;
}

/* Logo CENTERED */
.header__heading {
  grid-column: 2 !important;
  justify-self: center !important;
  margin: 0 !important;
}
.header__heading-link {
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Logo */
.header__heading-logo-wrapper {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  border: none !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}
.snap-logo-wrapper svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}
.header__heading-logo-wrapper img,
.header__heading-logo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

/* Logo text fallback */
.header__heading-link span.h2,
.header__heading-link .h2 {
  font-family: var(--font-display) !important;
  font-size: 2rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.04em !important;
  color: var(--navy) !important;
  -webkit-text-fill-color: var(--navy) !important;
  background: none !important;
}

/* Icons on the RIGHT */
.header__icons {
  grid-column: 3 !important;
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}

/* Nav links — with animated underline */
.header__menu-item > a,
.header__menu-item > span,
.header__inline-menu .list-menu__item--link {
  font-family: var(--font-display) !important;
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  color: var(--gray-700) !important;
  letter-spacing: 0.01em !important;
  text-decoration: none !important;
  position: relative !important;
  padding-bottom: 3px !important;
  transition: color var(--mid) ease !important;
}

/* Animated underline — expands from left on hover */
.header__menu-item > a::after,
.header__inline-menu .list-menu__item--link::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--gold) !important;
  border-radius: 2px !important;
  transition: width var(--mid) var(--ease) !important;
}
.header__menu-item > a:hover::after,
.header__inline-menu .list-menu__item--link:hover::after {
  width: 100% !important;
}

/* Text color + subtle lift on hover */
.header__menu-item > a:hover,
.header__inline-menu .list-menu__item--link:hover {
  color: var(--navy) !important;
  transform: translateY(-1px) !important;
}

/* Active/current page link */
.header__menu-item > a[aria-current="page"]::after,
.list-menu__item--active::after {
  width: 100% !important;
}
.header__menu-item > a[aria-current="page"],
.list-menu__item--active {
  color: var(--navy) !important;
  font-weight: 600 !important;
}

/* Icon buttons — pill style with bounce */
.header__icon,
.header__icon--search,
.header__icon--account,
.header__icon--cart {
  color: var(--gray-700) !important;
  background: transparent !important;
  border: none !important;
  border-radius: var(--r-full) !important;
  padding: 8px !important;
  transition:
    background var(--fast) ease,
    color var(--fast) ease,
    transform var(--mid) var(--ease) !important;
}
.header__icon:hover,
.header__icon--search:hover,
.header__icon--account:hover,
.header__icon--cart:hover {
  background: var(--gray-200) !important;
  color: var(--navy) !important;
  transform: translateY(-2px) scale(1.1) !important;
}
.header__icon:active {
  transform: translateY(0) scale(0.95) !important;
}
.header__icon svg { fill: none !important; }

/* Cart count bubble */
.cart-count-bubble {
  background: var(--navy) !important;
  color: #fff !important;
  border: 2px solid #f9f9f8 !important;
  font-family: var(--font-display) !important;
  font-weight: 800 !important;
  font-size: 1rem !important;
  border-radius: var(--r-full) !important;
}

/* Dropdown */
.mega-menu__content, .header__submenu {
  background: var(--white) !important;
  border: 1px solid var(--gray-200) !important;
  border-radius: var(--r) !important;
  box-shadow: var(--shadow-lg) !important;
}
.header__submenu .list-menu__item--link {
  color: var(--navy) !important;
}
.header__submenu .list-menu__item--link:hover {
  color: var(--gold-dark) !important;
}

/* =====================
   HERO SECTION
   ===================== */
.snap-hero {
  position: relative; min-height: 90vh;
  display: flex; align-items: center;
  background: var(--navy);
  overflow: hidden; padding: 100px 0 80px;
}

/* Hero background */
.snap-hero__bg { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }

.snap-hero__grid-overlay {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 52px 52px;
  opacity: 0.5;
}

.snap-hero__glow {
  position: absolute; border-radius: 50%; filter: blur(100px);
  animation: glow 9s ease-in-out infinite;
}
.snap-hero__glow--1 {
  width: 600px; height: 600px;
  background: rgba(212,149,106,0.12);
  top: -100px; right: -50px;
}
.snap-hero__glow--2 {
  width: 400px; height: 400px;
  background: rgba(30,63,120,0.6);
  bottom: -80px; left: -60px;
  animation-delay: 4s;
}
.snap-hero__glow--3 {
  width: 300px; height: 300px;
  background: rgba(212,149,106,0.07);
  top: 50%; left: 40%;
  animation-delay: 7s;
}
@keyframes glow { 0%,100%{transform:translate(0,0)} 50%{transform:translate(20px,-15px)} }

/* Hero layout */
.snap-hero__content {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 55% 45%;
  gap: 72px; align-items: center;
  width: 100%; max-width: 1280px;
  margin: 0 auto; padding: 0 48px;
}
@media (max-width: 990px) {
  .snap-hero__content { grid-template-columns: 1fr; gap: 56px; text-align: center; padding: 0 24px; }
  .snap-hero { min-height: auto; padding: 80px 0 64px; }
}

/* Badge */
.snap-hero__badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(212,149,106,0.15);
  border: 1px solid rgba(212,149,106,0.3);
  color: var(--gold-light);
  font-family: var(--font-display);
  font-size: 1.2rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 6px 14px; border-radius: var(--r-full);
  margin-bottom: 24px;
}
.snap-hero__badge-dot {
  width: 6px; height: 6px; background: var(--gold);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--gold);
  animation: pdot 2.5s ease-in-out infinite;
}
@keyframes pdot { 0%,100%{opacity:1} 50%{opacity:0.3} }

/* Heading */
.snap-hero__title {
  font-family: var(--font-display) !important;
  font-size: clamp(4rem, 5.5vw, 7rem) !important;
  font-weight: 800 !important; line-height: 1.02 !important;
  letter-spacing: -0.04em !important; margin: 0 0 22px !important;
  color: var(--white) !important;
}
.snap-hero__title-line { display: block; }
.snap-hero__title-gradient {
  color: var(--gold) !important;
  -webkit-text-fill-color: var(--gold) !important;
  background: none !important;
}

#snap-typewriter { border-bottom: 2px solid var(--gold); padding-bottom: 2px; }

/* Subtitle */
.snap-hero__subtitle {
  font-size: 1.65rem; line-height: 1.75;
  color: rgba(255,255,255,0.6);
  margin: 0 0 40px; max-width: 500px;
}
@media (max-width: 990px) { .snap-hero__subtitle { margin: 0 auto 40px; } }

/* CTA */
.snap-hero__cta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 48px; }
@media (max-width: 990px) { .snap-hero__cta { justify-content: center; } }

/* Stats */
.snap-hero__stats { display: flex; align-items: center; gap: 32px; }
@media (max-width: 990px) { .snap-hero__stats { justify-content: center; } }
.snap-hero__stat-number {
  display: block; font-family: var(--font-display);
  font-size: 2.6rem; font-weight: 800;
  color: var(--gold); letter-spacing: -0.04em; line-height: 1;
}
.snap-hero__stat-label { display: block; font-size: 1.2rem; color: rgba(255,255,255,0.45); margin-top: 3px; font-weight: 500; }
.snap-hero__stat-divider { width: 1px; height: 40px; background: rgba(255,255,255,0.1); }

/* Hero visual */
.snap-hero__visual { display: flex; align-items: center; justify-content: center; }
.snap-hero__model-showcase { position: relative; width: 440px; height: 440px; }
@media (max-width: 990px) { .snap-hero__model-showcase { width: 320px; height: 320px; } }

.snap-hero__model-card--main {
  position: absolute; inset: 40px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(212,149,106,0.2);
  border-radius: var(--r-xl);
  backdrop-filter: blur(20px);
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(212,149,106,0.08), var(--shadow-lg);
  animation: hFloat 7s ease-in-out infinite;
}
@keyframes hFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }

.snap-hero__model-card-inner {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(ellipse at 35% 35%, rgba(212,149,106,0.1), transparent 65%),
              radial-gradient(ellipse at 70% 70%, rgba(30,63,120,0.2), transparent 65%);
}
.snap-hero__3d-icon { width: 180px; height: 180px; }

/* Float cards */
.snap-hero__float-card {
  position: absolute;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(212,149,106,0.25);
  backdrop-filter: blur(16px);
  border-radius: var(--r);
  padding: 11px 18px;
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-display); font-size: 1.3rem; font-weight: 600;
  color: rgba(255,255,255,0.9);
  box-shadow: var(--shadow-md); white-space: nowrap; z-index: 10;
}
.snap-hero__float-card--1 { top: 18px; left: -18px; animation: fA 5.5s ease-in-out infinite; }
.snap-hero__float-card--2 { bottom: 60px; left: -28px; animation: fB 6s ease-in-out infinite; }
.snap-hero__float-card--3 { top: 60px; right: -18px; animation: fC 4.5s ease-in-out infinite; }
@keyframes fA { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes fB { 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
@keyframes fC { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

/* Scroll indicator */
.snap-hero__scroll-indicator {
  position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  font-family: var(--font-display); font-size: 1.1rem; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  color: rgba(255,255,255,0.3); z-index: 2;
  animation: sBob 3s ease-in-out infinite;
}
@keyframes sBob { 0%,100%{opacity:0.4;transform:translateX(-50%) translateY(0)} 50%{opacity:0.9;transform:translateX(-50%) translateY(5px)} }
.snap-hero__scroll-line {
  width: 1px; height: 40px;
  background: linear-gradient(to bottom, rgba(212,149,106,0.5), transparent);
}

/* =====================
   BUTTONS
   ===================== */
.snap-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display) !important;
  font-size: 1.45rem !important; font-weight: 600 !important;
  padding: 13px 26px; border-radius: var(--r-sm);
  cursor: pointer; text-decoration: none !important; border: none;
  transition: all var(--mid) var(--ease) !important; white-space: nowrap;
}
.snap-btn--primary {
  background: var(--gold) !important; color: var(--navy) !important;
  box-shadow: var(--shadow-gold) !important;
}
.snap-btn--primary:hover {
  background: var(--gold-light) !important; color: var(--navy) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 32px rgba(212,149,106,0.4) !important;
}
.snap-btn--ghost {
  background: rgba(255,255,255,0.1) !important;
  color: rgba(255,255,255,0.8) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
}
.snap-btn--ghost:hover {
  background: rgba(255,255,255,0.18) !important;
  color: #fff !important; border-color: rgba(255,255,255,0.35) !important;
}

/* Override theme buttons globally */
.button, input[type="submit"] {
  font-family: var(--font-display) !important;
  font-weight: 700 !important; border-radius: var(--r-sm) !important;
  transition: all var(--mid) var(--ease) !important;
}
.button:not(.button--secondary) {
  background: var(--navy) !important; border-color: var(--navy) !important; color: #fff !important;
}
.button:not(.button--secondary):hover {
  background: var(--navy-dark) !important;
  transform: translateY(-1px) !important; box-shadow: var(--shadow-md) !important;
}
.button--secondary {
  background: transparent !important;
  border: 1.5px solid var(--gray-300) !important; color: var(--navy) !important;
}
.button--secondary:hover { background: var(--gray-50) !important; border-color: var(--navy) !important; }

/* =====================
   MARQUEE
   ===================== */
.snap-marquee {
  overflow: hidden; padding: 18px 0;
  background: var(--navy-dark);
  border-top: 1px solid rgba(255,255,255,0.05);
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.snap-marquee__track {
  display: flex; gap: 48px; width: max-content;
  animation: mScroll 26s linear infinite;
}
.snap-marquee__item {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--font-display); font-size: 1.3rem;
  font-weight: 500; color: rgba(255,255,255,0.4); white-space: nowrap;
}
.snap-marquee__item span { color: var(--gold); font-weight: 600; }
.snap-marquee__dot { width: 3px; height: 3px; background: rgba(212,149,106,0.4); border-radius: 50%; }
@keyframes mScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* =====================
   FEATURES
   ===================== */
.snap-features {
  padding: 80px 0;
  background: #f9f9f8;
  border-top: 1px solid rgba(13,37,69,0.07);
}
.snap-features__grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  border: 1px solid var(--gray-200);
  border-radius: var(--r-lg); overflow: hidden;
  max-width: 1120px; margin: 0 auto;
}
@media (max-width: 768px) { .snap-features__grid { grid-template-columns: 1fr 1fr; } }

.snap-feature {
  background: var(--white); padding: 36px 28px;
  border-right: 1px solid var(--gray-200);
  display: flex; flex-direction: column; gap: 14px;
  transition: background var(--mid) ease;
}
.snap-feature:last-child { border-right: none; }
.snap-feature:hover { background: var(--cream); }

.snap-feature__icon {
  width: 44px; height: 44px; border-radius: var(--r-sm);
  background: var(--gold-muted);
  display: flex; align-items: center; justify-content: center;
  color: var(--gold-dark);
  transition: background var(--mid) ease, transform var(--mid) var(--ease);
}
.snap-feature:hover .snap-feature__icon { background: var(--gold-dark); color: #fff; transform: scale(1.08); }

.snap-feature__title {
  font-family: var(--font-display) !important;
  font-size: 1.55rem !important; font-weight: 700 !important;
  color: var(--navy) !important; margin: 0 !important;
}
.snap-feature__desc { font-size: 1.35rem; color: var(--gray-500); line-height: 1.65; margin: 0; }

/* =====================
   FEATURED COLLECTION
   ===================== */
.featured-collection,
.shopify-section:has(.featured-collection) {
  background: #f9f9f8 !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

.featured-collection .title,
.featured-collection h2.title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.8rem, 4vw, 4.4rem) !important;
  font-weight: 800 !important; letter-spacing: -0.04em !important;
  color: var(--navy) !important; margin-bottom: 12px !important;
}
.featured-collection .description,
.featured-collection .description p {
  font-size: 1.5rem !important; color: var(--gray-500) !important; line-height: 1.75 !important;
}

/* Section divider accent */
.featured-collection .collection__title-wrapper::after {
  content: '';
  display: block; width: 48px; height: 3px;
  background: var(--gold); border-radius: 2px;
  margin-top: 16px;
}

/* =====================
   PRODUCT CARDS
   ===================== */
.card-wrapper { transition: none !important; }
.card-wrapper:hover { transform: none !important; }

.card, .card--product {
  background: #ffffff !important;
  border: 1px solid rgba(13,37,69,0.08) !important;
  border-radius: var(--r) !important;
  overflow: hidden !important;
  box-shadow: var(--shadow-xs) !important;
  transition: border-color var(--mid) ease, box-shadow var(--mid) ease !important;
}
.card:hover, .card--product:hover {
  border-color: var(--gold) !important;
  box-shadow: none !important;
}

/* Image area */
.card__media { background: #ffffff !important; overflow: hidden !important; }

/* Force .media to fill card__media completely */
.card__media .media {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.card__media .media img {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  background: #ffffff !important;
  transition: opacity 0.08s step-end !important;
}
.card-wrapper:not(.collection-card-wrapper):hover .card__media .media img { transform: none !important; }
/* Override theme's slow fade for image swap — make it instant */
.card .media.media--hover-effect > img:only-child,
.card-wrapper .media.media--hover-effect > img:only-child {
  transition: none !important;
}
.card-wrapper:hover .media.media--hover-effect > img + img {
  transition: none !important;
  transform: none !important;
}
.card-wrapper:hover .media.media--hover-effect > img:first-child:not(:only-child) {
  transition: opacity 0.08s step-end !important;
}

/* Card info — only apply to the OUTER card__content (after card__inner), not the inner overlay one */
.card > .card__content,
.card > .card__content .card__information {
  background: var(--white) !important; padding: 18px 20px 20px !important;
}

/* Inner card__content (inside card__inner) — hide completely when there is media */
.card--media .card__inner > .card__content {
  display: none !important;
}
.card__heading, .card__heading a, .card__heading h3 {
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important; font-weight: 600 !important;
  color: var(--navy) !important; letter-spacing: -0.015em !important;
  text-decoration: none !important;
  transition: color var(--fast) ease !important;
}
.card__heading a:hover { color: var(--gold-dark) !important; }

/* Price */
.price, .price__container,
.price .price-item--regular,
.price .price-item--sale,
.price-item, .price--large {
  font-family: var(--font-display) !important;
  font-weight: 400 !important; font-size: 1.5rem !important;
  color: var(--navy) !important;
  background: none !important; -webkit-text-fill-color: var(--navy) !important;
}
.price--on-sale .price-item--regular {
  color: var(--gray-500) !important; -webkit-text-fill-color: var(--gray-500) !important;
  text-decoration: line-through !important; font-weight: 400 !important;
}
.price--on-sale .price-item--sale {
  color: var(--gold-dark) !important; -webkit-text-fill-color: var(--gold-dark) !important;
}

/* Badge */
.badge {
  background: var(--gray-500) !important; border: none !important;
  color: #fff !important; font-family: var(--font-display) !important;
  font-weight: 700 !important; font-size: 1rem !important;
  border-radius: var(--r-full) !important; padding: 3px 9px !important;
  letter-spacing: 0.03em;
}
.badge--sale { background: var(--gold-dark) !important; color: var(--white) !important; }
.badge--new { background: var(--navy) !important; color: var(--white) !important; font-size: 1.1rem !important; padding: 4px 10px !important; font-weight: 700 !important; }
.badge--sold-out { background: var(--gray-500) !important; color: var(--white) !important; font-size: 1.1rem !important; padding: 4px 10px !important; font-weight: 700 !important; }

/* Quick add — eye icon button inline with title (space-between), outer card only */
.card > .card__content > .card__information {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 8px !important;
}
.snap-card-info-text {
  flex: 1 1 0;
  min-width: 0;
}
.quick-add.no-js-hidden {
  flex-shrink: 0;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
  z-index: 2;
}
.quick-add.no-js-hidden modal-opener {
  display: block;
  line-height: 0;
}
.snap-quick-eye-btn {
  width: 36px !important;
  height: 36px !important;
  aspect-ratio: 1 / 1 !important;
  min-width: unset !important;
  min-height: unset !important;
  padding: 0 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  outline: none !important;
  cursor: pointer !important;
  transition: background var(--mid) ease, transform var(--mid) ease !important;
}
.snap-quick-eye-btn::after {
  box-shadow: none !important;
}
.snap-quick-eye-btn:hover {
  background: var(--gold-dark) !important;
  transform: scale(1.08) !important;
}

/* =====================
   QUICK ADD MODAL
   ===================== */

/* Overlay — above header (z-index 200), blurred backdrop */
.quick-add-modal[open] {
  z-index: 9900 !important;
  background: rgba(13, 37, 69, 0.45) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

/* Modal card — shrinks to fit content, caps at viewport height */
.quick-add-modal__content {
  position: fixed !important;
  top: 50% !important;
  bottom: auto !important;
  left: 50% !important;
  right: auto !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  width: calc(100% - 3rem) !important;
  max-width: 520px !important;
  height: auto !important;
  max-height: calc(100dvh - var(--header-height, 6rem) - 4rem) !important;
  border-radius: 16px !important;
  overflow-y: auto !important;
  box-shadow: 0 16px 64px rgba(0,0,0,0.32) !important;
  z-index: 9901 !important;
}

/* Inner content — breathing room */
.quick-add-modal__content-info {
  padding: 2.4rem 2.4rem 2.8rem !important;
}

/* Lock background scroll when quick-add modal is open */
body:has(quick-add-modal[open]) {
  overflow: hidden !important;
}

/* Show only the active media item — higher specificity (0,3,1) beats Dawn's lazy-loaded (0,2,1) */
quick-add-modal .product__media-list .product__media-item:not(.is-active) {
  display: none !important;
}
quick-add-modal .product__media-list .product__media-item.is-active {
  display: list-item !important;
}
/* Fallback: no is-active during variant switch — show first child */
quick-add-modal .product__media-list:not(:has(.product__media-item.is-active)) .product__media-item:first-child {
  display: list-item !important;
}

/* Show thumbnail strip below main image in quick-add modal */
quick-add-modal .thumbnail-slider.quick-add-hidden {
  display: block !important;
}

quick-add-modal .thumbnail-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 8px !important;
  padding: 8px 0 4px !important;
  margin: 0 !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
  list-style: none !important;
}

quick-add-modal .thumbnail-list::-webkit-scrollbar {
  display: none !important;
}

quick-add-modal .thumbnail-list__item {
  flex: 0 0 64px !important;
  width: 64px !important;
  height: 64px !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

quick-add-modal .thumbnail-list__item .thumbnail {
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  border: 2px solid transparent !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  opacity: 0.7 !important;
  transition: opacity 0.2s, border-color 0.2s !important;
}

quick-add-modal .thumbnail-list__item .thumbnail[aria-current="true"] {
  border-color: var(--navy) !important;
  opacity: 1 !important;
}

quick-add-modal .thumbnail-list__item .thumbnail:hover {
  opacity: 1 !important;
}

quick-add-modal .thumbnail-list__item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Hide prev/next slider arrows in thumbnail strip */
quick-add-modal .thumbnail-slider .slider-button {
  display: none !important;
}

/* Product title — not a link in the modal */
quick-add-modal .product__title > a {
  pointer-events: none !important;
  cursor: default !important;
  text-decoration: none !important;
  color: inherit !important;
}

/* Scrollbar — inset from edges to respect border-radius */
.quick-add-modal__content::-webkit-scrollbar {
  width: 4px !important;
}
.quick-add-modal__content::-webkit-scrollbar-track {
  background: transparent !important;
  margin-top: 16px !important;
  margin-bottom: 16px !important;
}
.quick-add-modal__content::-webkit-scrollbar-thumb {
  background: rgba(13, 37, 69, 0.2) !important;
  border-radius: 4px !important;
}
.quick-add-modal__content::-webkit-scrollbar-thumb:hover {
  background: rgba(13, 37, 69, 0.4) !important;
}

/* Close button — top-right inside card */
quick-add-modal .quick-add-modal__toggle,
.quick-add-modal__toggle {
  position: absolute !important;
  top: 1.2rem !important;
  right: 1.2rem !important;
  left: auto !important;
}

/* Desktop — slightly wider */
@media screen and (min-width: 990px) {
  .quick-add-modal__content {
    max-width: 640px !important;
    border-radius: 20px !important;
  }
  .quick-add-modal__content-info {
    padding: 3rem 3rem 3.2rem !important;
  }
}

/* =====================
   PRODUCT PAGE
   ===================== */
.main-product, .product { background: var(--cream) !important; }
.product__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.6rem, 3.5vw, 4rem) !important;
  font-weight: 800 !important; letter-spacing: -0.035em !important;
  color: var(--navy) !important;
}
.product__description, .product__description p {
  font-family: var(--font-body) !important;
  color: var(--gray-700) !important; font-size: 1.5rem !important; line-height: 1.8 !important;
}
.product__media-wrapper, .product-media-container {
  background: var(--gray-50) !important;
  border-radius: var(--r-lg) !important;
  overflow: visible !important;
  padding-bottom: 12px !important;
}
/* Main product image — no extra card border on the image itself */
.product__media-item .product__media {
  border-radius: var(--r-lg) var(--r-lg) 0 0 !important;
}
.product-form__submit {
  background: var(--navy) !important; color: #fff !important;
  border: none !important; border-radius: var(--r-sm) !important;
  font-family: var(--font-display) !important; font-weight: 700 !important;
  font-size: 1.6rem !important; padding: 16px 36px !important;
  width: 100% !important; letter-spacing: -0.01em;
  transition: all var(--mid) ease !important;
}
.product-form__submit:hover {
  background: var(--gold) !important; color: var(--navy) !important;
  box-shadow: var(--shadow-gold) !important; transform: translateY(-2px) !important;
}

/* Variants */
.swatch__input:checked + .swatch__label {
  background: var(--navy) !important; border-color: var(--navy) !important; color: #fff !important;
}
.swatch__input + .swatch__label {
  font-family: var(--font-display) !important;
  border: 1.5px solid var(--gray-300) !important;
  border-radius: var(--r-sm) !important;
  transition: all var(--fast) ease !important;
}
.swatch__input + .swatch__label:hover { border-color: var(--navy) !important; }

/* =====================
   COLLECTION PAGE
   ===================== */
.main-collection-banner {
  background: var(--navy) !important; padding: 56px 0 !important;
}
.collection-hero__title,
.main-collection-banner .collection__title {
  font-family: var(--font-display) !important;
  font-size: clamp(3rem, 5vw, 5.5rem) !important;
  font-weight: 800 !important; letter-spacing: -0.04em !important;
  color: var(--gold) !important; -webkit-text-fill-color: var(--gold) !important;
}
.main-collection-banner .collection__description {
  color: rgba(255,255,255,0.6) !important; font-size: 1.5rem !important;
}

/* =====================
   FACETS / FILTERS
   ===================== */

/* Bar container */
.facets-wrapper {
  background: transparent !important;
  border: none !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.facets-container {
  padding-top: 0 !important;
}

.facets__form {
  align-items: center !important;
  gap: 0 !important;
  min-height: 5.6rem !important;
}

/* "Filter:" heading label — hidden */
.facets__heading.caption-large {
  display: none !important;
}

/* ── Filter trigger pills ── */
.facets__wrapper {
  gap: 0.6rem !important;
  align-items: center !important;
  padding: 1rem 0 !important;
}

.facets__disclosure {
  margin-right: 0 !important;
}

.facets__summary {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  font-family: var(--font-display) !important;
  font-size: 1.35rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em !important;
  text-transform: capitalize !important;
  color: var(--navy) !important;
  background: var(--gray-50) !important;
  border: 1.5px solid var(--gray-200) !important;
  border-radius: var(--r-full) !important;
  height: 3.6rem !important;
  padding: 0 3.2rem 0 1.6rem !important;
  min-width: unset !important;
  margin-bottom: 0 !important;
  cursor: pointer !important;
  transition: background var(--fast) ease, border-color var(--fast) ease, color var(--fast) ease, box-shadow var(--fast) ease !important;
}
.facets__summary:hover {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
  color: var(--white) !important;
  box-shadow: var(--shadow-sm) !important;
}
.facets__disclosure[open] > .facets__summary {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
  color: var(--white) !important;
}
.facets__summary .icon-caret {
  width: 1rem !important;
  right: 1.4rem !important;
  transition: transform var(--fast) ease !important;
}
.facets__disclosure[open] > .facets__summary .icon-caret {
  transform: rotate(180deg) !important;
}
.facets__summary:hover .icon-caret {
  color: var(--white) !important;
}

/* Count badge on the pill */
.facets__summary .facets__count {
  background: var(--gold) !important;
  color: var(--white) !important;
  border-radius: var(--r-full) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  min-width: 1.8rem !important;
  height: 1.8rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 0.4rem !important;
}

/* ── Dropdown popup ── */
.facets__display {
  background: var(--white) !important;
  border: 1.5px solid var(--gray-200) !important;
  border-radius: var(--r) !important;
  box-shadow: var(--shadow-lg) !important;
  padding: 0 !important;
  overflow: hidden !important;
  min-width: 22rem !important;
}

.facets__header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  background: var(--gray-50) !important;
  border-bottom: 1px solid var(--gray-100) !important;
  padding: 1rem 1.6rem !important;
}
.facets__header facet-remove:only-child {
  margin-left: auto !important;
}
.facets__selected {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  text-transform: capitalize !important;
  letter-spacing: 0.01em !important;
  color: var(--navy) !important;
}
.facets__reset.link {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  color: var(--gold-dark) !important;
  text-decoration: none !important;
  transition: color var(--fast) ease !important;
}
.facets__reset.link:hover {
  color: var(--navy) !important;
}

/* Checkbox option rows */
.facets__item {
  border-bottom: 1px solid var(--gray-100) !important;
}
.facets__item:last-child {
  border-bottom: none !important;
}
.facets__label,
.facet-checkbox {
  font-family: var(--font-body) !important;
  font-size: 1.4rem !important;
  color: var(--gray-700) !important;
  padding: 1.2rem 2rem !important;
  cursor: pointer !important;
  transition: background var(--fast) ease !important;
  width: 100% !important;
}
.facets-wrap {
  padding: 0.4rem 0 !important;
}
.facets__label:hover {
  background: var(--gray-50) !important;
  color: var(--navy) !important;
}
.facets__label.active,
.facets__label.active .facet-checkbox__text-label {
  color: var(--navy) !important;
  font-weight: 600 !important;
}
.facet-checkbox > svg { color: var(--gray-300) !important; }
.facets__label.active .facet-checkbox > svg { color: var(--navy) !important; }
.facet-checkbox > .svg-wrapper { color: var(--gold-dark) !important; }

/* ── Active filter pills ── */
.active-facets {
  padding: 0.8rem 0 !important;
}
.active-facets__button-inner.button {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  text-transform: capitalize !important;
  background: var(--navy) !important;
  color: var(--white) !important;
  border: none !important;
  border-radius: var(--r-full) !important;
  padding: 0.45rem 1rem 0.45rem 1.2rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  transition: background var(--fast) ease !important;
}
.active-facets__button:hover .active-facets__button-inner.button {
  background: var(--gold-dark) !important;
}
.active-facets__button-inner .svg-wrapper svg {
  width: 1.2rem !important;
  height: 1.2rem !important;
  color: rgba(255,255,255,0.7) !important;
}

/* ── Product count — hidden ── */
.product-count {
  display: none !important;
}

/* ── Sort by section ── */
.facet-filters {
  border-left: 1px solid var(--gray-100) !important;
  padding-left: 2rem !important;
  align-items: center !important;
  height: 5.6rem !important;
}
.facet-filters__label {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  text-transform: capitalize !important;
  color: var(--gray-500) !important;
  margin-right: 1rem !important;
  white-space: nowrap !important;
}
/* Wrap the native select to look like our filter pills */
.facet-filters__field {
  position: relative !important;
}
.facet-filters__field::after {
  content: '' !important;
  position: absolute !important;
  right: 1.2rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 4px solid transparent !important;
  border-right: 4px solid transparent !important;
  border-top: 5px solid var(--navy) !important;
}
.facet-filters__sort {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  color: var(--navy) !important;
  background: var(--gray-50) !important;
  border: 1.5px solid var(--gray-200) !important;
  border-radius: var(--r-full) !important;
  height: 3.4rem !important;
  padding: 0 3.2rem 0 1.4rem !important;
  min-width: 16rem !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  transition: border-color var(--fast) ease, background var(--fast) ease !important;
  box-shadow: none !important;
  filter: none !important;
}
.facet-filters__sort:hover,
.facet-filters__sort:focus {
  border-color: var(--navy) !important;
  background: var(--white) !important;
  outline: none !important;
}

/* Mobile: stack filter/sort vertically */
@media screen and (max-width: 749px) {
  .facets__form {
    grid-template-columns: 1fr !important;
    min-height: unset !important;
    padding: 1rem 0 !important;
  }
  .facet-filters {
    border-left: none !important;
    border-top: 1px solid var(--gray-100) !important;
    padding-left: 0 !important;
    padding-top: 1rem !important;
    height: auto !important;
  }
  .facets__summary {
    height: 3.2rem !important;
    font-size: 1.15rem !important;
  }
  .facet-filters__sort {
    min-width: 14rem !important;
  }
}

/* =====================
   CART DRAWER
   ===================== */

/* Quantity container — pill shape */
.cart-drawer .quantity {
  border-radius: var(--r-full) !important;
  min-height: unset !important;
  height: 3.6rem !important;
  background: var(--gray-50) !important;
  gap: 0.2rem !important;
  padding: 0.4rem !important;
  box-shadow: none !important;
}
.cart-drawer .quantity::before {
  border-radius: var(--r-full) !important;
  box-shadow: none !important;
  background: transparent !important;
}
.cart-drawer .quantity::after {
  box-shadow: none !important;
  border: none !important;
}

/* +/− buttons — circles inside the pill */
.cart-drawer .quantity__button {
  width: 2.6rem !important;
  height: 2.6rem !important;
  min-width: unset !important;
  min-height: unset !important;
  flex-shrink: 0 !important;
  border-radius: 50% !important;
  background: var(--white) !important;
  border: none !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  color: var(--navy) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08) !important;
  transition: background var(--fast) ease, box-shadow var(--fast) ease !important;
  z-index: 1 !important;
}
.cart-drawer .quantity__button:first-child,
.cart-drawer .quantity__button:last-child {
  margin: 0 !important;
  border-radius: 50% !important;
}
.cart-drawer .quantity__button:hover {
  background: var(--navy) !important;
  color: var(--white) !important;
  box-shadow: none !important;
}

/* Number input — clean center */
.cart-drawer .quantity__input {
  font-family: var(--font-display) !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--navy) !important;
  min-width: 2.4rem !important;
  width: auto !important;
  padding: 0 0.4rem !important;
  background: transparent !important;
}

/* Remove button — circular, spaced from quantity */
.cart-drawer cart-remove-button {
  margin-left: 1.2rem !important;
  flex-shrink: 0 !important;
}

.cart-drawer cart-remove-button .button.cart-remove-button {
  width: 3.2rem !important;
  height: 3.2rem !important;
  min-width: unset !important;
  min-height: unset !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--gray-100) !important;
  border: none !important;
  color: var(--gray-700) !important;
  transition: background var(--fast) ease, color var(--fast) ease !important;
}

.cart-drawer cart-remove-button .button.cart-remove-button:hover {
  background: #fee2e2 !important;
  color: #dc2626 !important;
}

.cart-drawer cart-remove-button .icon-remove {
  width: 1.4rem !important;
  height: 1.4rem !important;
}

@keyframes snap-drawer-bounce {
  0%   { transform: translateX(100%); }
  60%  { transform: translateX(-12px); }
  75%  { transform: translateX(6px); }
  88%  { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}

/* Override theme transition with bounce animation when drawer opens */
.drawer.active .drawer__inner {
  animation: snap-drawer-bounce 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  transition: none !important;
}

/* Keep instant close (translateX back) */
.drawer:not(.active) .drawer__inner {
  transition: transform 0.25s ease !important;
}
.cart-drawer { background: unset !important; border-left: none !important; }
.cart-drawer__header {
  background: var(--navy) !important; border-bottom: none !important;
}
.cart-drawer__header h2, .cart-drawer__header .title {
  font-family: var(--font-display) !important;
  font-weight: 700 !important; color: var(--gold) !important;
}
.cart-drawer__close-button svg { color: rgba(255,255,255,0.7) !important; }
.cart-item__name a { font-family: var(--font-display) !important; color: var(--navy) !important; }
.totals__total-value {
  font-family: var(--font-display) !important;
  font-weight: 400 !important; font-size: 2rem !important; color: var(--navy) !important;
}

/* Add to cart button */
.product-form__submit {
  position: relative !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.8rem !important;
  border-radius: var(--r-full) !important;
  transition: color var(--mid) ease, box-shadow var(--mid) ease !important;
  z-index: 0 !important;
}
.product-form__submit::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--gold-dark) !important;
  transform: scaleX(0) !important;
  transform-origin: left center !important;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  z-index: -1 !important;
}
.product-form__submit:hover:not(:disabled)::before {
  transform: scaleX(1) !important;
}
.product-form__submit:hover:not(:disabled) {
  color: #fff !important;
  box-shadow: var(--shadow-gold) !important;
  border-color: transparent !important;
}
.product-form__cart-icon {
  flex-shrink: 0 !important;
}

/* Buy it now button */
.shopify-payment-button {
  margin-top: 0 !important;
}
.shopify-payment-button__button {
  border-radius: var(--r-full) !important;
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  min-height: 4.5rem !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}
.shopify-payment-button__button:hover {
  opacity: 0.88 !important;
  transform: translateY(-1px) !important;
}
.shopify-payment-button__button--unbranded {
  background: var(--navy) !important;
  color: #fff !important;
}

/* Cart drawer checkout button */
.cart__checkout-button,
#CartDrawer-Checkout {
  position: relative !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.8rem !important;
  background: var(--navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-full) !important;
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  padding: 16px 32px !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: color var(--mid) ease !important;
  z-index: 0 !important;
}

/* Left-to-right fill on hover */
.cart__checkout-button::before,
#CartDrawer-Checkout::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--gold-dark) !important;
  transform: scaleX(0) !important;
  transform-origin: left center !important;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  z-index: -1 !important;
}
.cart__checkout-button:hover:not(:disabled)::before,
#CartDrawer-Checkout:hover:not(:disabled)::before {
  transform: scaleX(1) !important;
}
.cart__checkout-button:hover:not(:disabled),
#CartDrawer-Checkout:hover:not(:disabled) {
  color: #fff !important;
  box-shadow: var(--shadow-gold) !important;
}
.cart__checkout-button:disabled,
#CartDrawer-Checkout:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
}

/* Start Shopping button (empty cart) */
.snap-start-shopping-btn {
  position: relative !important;
  overflow: hidden !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 100px !important;
  font-family: var(--font-display) !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0.02em !important;
  padding: 14px 28px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  width: auto !important;
  margin-bottom: 20px !important;
  transition: color var(--mid) ease, box-shadow var(--mid) ease !important;
  z-index: 0 !important;
}
.snap-start-shopping-btn::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--gold-dark) !important;
  transform: scaleX(0) !important;
  transform-origin: left center !important;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) !important;
  z-index: -1 !important;
}
.snap-start-shopping-btn:hover {
  color: #fff !important;
  text-decoration: none !important;
  box-shadow: var(--shadow-gold) !important;
}
.snap-start-shopping-btn:hover::before {
  transform: scaleX(1) !important;
}

/* Sign in link in empty cart */
.cart__login-title {
  font-family: var(--font-display) !important;
  font-size: 1.6rem !important;
  font-weight: 700 !important;
  color: var(--navy) !important;
  margin-top: 24px !important;
}
.cart__login-paragraph {
  font-family: var(--font-body) !important;
  font-size: 1.4rem !important;
  color: var(--gray-500) !important;
}
.cart__login-paragraph .link {
  color: var(--navy) !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
}

/* =====================
   SEARCH
   ===================== */
.field__input, .search__input {
  font-family: var(--font-body) !important;
  background: var(--white) !important;
  color: var(--navy) !important; border-radius: var(--r-sm) !important;
  transition: border-color var(--fast) ease, box-shadow var(--fast) ease !important;
}
.field__input:focus, .search__input:focus {
  border-color: var(--navy) !important;
  outline: none !important;
}
.field__input::placeholder, .search__input::placeholder { color: var(--gray-500) !important; }
.predictive-search {
  background: var(--white) !important;
  border-radius: var(--r) !important; box-shadow: var(--shadow-lg) !important;
}

/* =====================
   NEWSLETTER SECTION
   ===================== */
.email-signup-banner,
.shopify-section:has(.email-signup-banner) {
  background: var(--navy) !important;
  border: none !important;
}
.email-signup-banner .title {
  font-family: var(--font-display) !important;
  color: var(--white) !important; font-weight: 800 !important;
}
.email-signup-banner .field__label,
.email-signup-banner p { color: rgba(255,255,255,0.6) !important; }
.email-signup-banner .field__input {
  background: rgba(255,255,255,0.1) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  color: #fff !important; border-radius: var(--r-sm) 0 0 var(--r-sm) !important;
}
.email-signup-banner .field__input::placeholder { color: rgba(255,255,255,0.4) !important; }
.email-signup-banner .button {
  background: var(--gold) !important; color: var(--navy) !important;
  border-color: var(--gold) !important; font-weight: 700 !important;
  border-radius: 0 var(--r-sm) var(--r-sm) 0 !important;
}
.email-signup-banner .button:hover { background: var(--gold-light) !important; }

/* =====================
   FOOTER
   ===================== */
.shopify-section-group-footer-group,
.section-footer, .footer-section {
  background: var(--navy-dark) !important;
}
.footer, .footer__content-top, .footer__content-bottom {
  background: var(--navy-dark) !important;
  color: rgba(255,255,255,0.45) !important;
}
/* Collapse all default footer sections — keep only snap-footer-bottom */
.footer__content-top { display: none !important; }
.footer__content-bottom { display: none !important; }

/* Footer padding is controlled via Shopify theme editor */
.footer__column-header, .footer__heading,
[class*="footer"] h2, [class*="footer"] h3 {
  font-family: var(--font-display) !important;
  font-size: 1.3rem !important; font-weight: 700 !important;
  color: var(--gold) !important;
  letter-spacing: 0.08em !important; text-transform: uppercase !important;
  margin-bottom: 20px !important;
}
.footer__list-item a, .footer a {
  font-family: var(--font-body) !important; font-size: 1.4rem !important;
  color: rgba(255,255,255,0.45) !important;
  text-decoration: none !important; line-height: 2.2;
  transition: color var(--fast) ease !important;
}
.footer__list-item a:hover, .footer a:hover { color: var(--gold-light) !important; }
.footer__content-bottom {
  padding: 24px 0 !important;
  border-top: 1px solid rgba(255,255,255,0.07) !important;
}
.footer__content-bottom p,
.footer__content-bottom span,
.footer__content-bottom a {
  font-size: 1.25rem !important; color: rgba(255,255,255,0.25) !important;
}
.footer .list-social__link svg { fill: rgba(255,255,255,0.35) !important; transition: fill var(--fast) ease !important; }
.footer .list-social__link:hover svg { fill: var(--gold) !important; }

/* Footer logo */
.footer .header__heading-logo-wrapper {
  width: 52px !important; height: 52px !important;
  border-radius: 50% !important; overflow: hidden !important;
  border: 2px solid var(--gold) !important;
}

/* =====================
   FOOTER BOTTOM BAR
   ===================== */
.snap-footer-bottom {
  background: var(--navy-dark);
}
.snap-footer-bottom__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  gap: 16px;
}
.snap-footer-bottom__copy {
  font-family: var(--font-body);
  font-size: 1.3rem;
  color: rgba(255,255,255,0.3);
}
.snap-footer-bottom__social {
  display: flex;
  align-items: center;
  gap: 8px;
}
.snap-social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border-radius: 50%;
  background: rgba(255,255,255,0.07);
  color: rgba(255,255,255,0.45);
  transition: background var(--fast) ease, color var(--fast) ease;
  text-decoration: none;
}
.snap-social-icon:hover {
  background: var(--gold);
  color: var(--navy);
}
@media (max-width: 749px) {
  .snap-footer-bottom__inner { flex-direction: column; gap: 12px; padding: 20px 0; text-align: center; }
}

/* ============================================================
   ANNOUNCEMENT BAR — Full width + marquee scroll
   ============================================================ */

/* Stretch to full viewport width */
.announcement-bar-section .utility-bar {
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: #1b2a4a !important;
}

.announcement-bar-section .utility-bar .page-width {
  max-width: 100% !important;
  padding: 0 !important;
}

/* Bar container — clip the scrolling track */
.announcement-bar {
  overflow: hidden !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  border-radius: 0 !important;
}

/* Remove ALL border-radius from bar section */
.announcement-bar-section,
.announcement-bar-section *,
.announcement-bar-section .utility-bar,
.announcement-bar-section .utility-bar__grid,
.announcement-bar-section .gradient {
  border-radius: 0 !important;
}

/* Stretch the grid row so children fill the full bar height */
.announcement-bar-section .utility-bar__grid {
  display: flex !important;
  align-items: stretch !important;
  min-height: 44px !important;
}

/* Make announcement-bar fill height and center vertically */
.announcement-bar-section .utility-bar .announcement-bar {
  flex: 1 !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Marquee outer wrapper */
.snap-ann-marquee {
  flex: 1 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  min-height: 42px !important;
  white-space: nowrap !important;
}

/* Scrolling track — content duplicated in Liquid for seamless loop */
.snap-ann-track {
  display: inline-flex !important;
  align-items: center !important;
  width: max-content !important;
  animation: snap-ann-scroll 30s linear infinite !important;
}

.snap-ann-marquee:hover .snap-ann-track {
  animation-play-state: paused !important;
}

/* Brand name wordmark in announcement */
.snap-brand-wordmark {
  height: 1.1em !important;
  width: auto !important;
  display: inline-block !important;
  vertical-align: middle !important;
  position: relative !important;
  top: -0.05em !important;
}

/* Each message item */
.snap-ann-item {
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  padding: 0 2.4rem !important;
  font-size: 1.3rem !important;
  letter-spacing: 0.06em !important;
  font-weight: 500 !important;
  color: #e8edf5 !important;
}

/* Separator between items */
.snap-ann-sep {
  flex-shrink: 0 !important;
  opacity: 0.35 !important;
  font-size: 1rem !important;
  padding: 0 0.4rem !important;
  color: #e8edf5 !important;
}

@keyframes snap-ann-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-12.5%); }
}

/* =====================
   MOBILE BURGER + DRAWER
   ===================== */

/* Burger icon — visible on light header */
.header__icon--menu,
.header__icon--summary {
  color: var(--navy) !important;
  background: transparent !important;
  border: none !important;
  padding: 8px !important;
  border-radius: var(--r-sm) !important;
  transition: background var(--fast) ease !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.header__icon--menu:hover,
.header__icon--summary:hover {
  background: var(--gray-200) !important;
}
.header__icon--menu svg,
.header__icon--summary svg {
  width: 22px !important;
  height: 22px !important;
  stroke: var(--navy) !important;
  fill: none !important;
}

/* Drawer panel — full-height side panel */
.menu-drawer,
#menu-drawer {
  background: var(--navy) !important;
  color: #fff !important;
  width: min(320px, 85vw) !important;
  height: 100vh !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 9999 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow-y: auto !important;
  box-shadow: 4px 0 40px rgba(0,0,0,0.2) !important;
  padding: 0 !important;
}

/* Drawer inner */
.menu-drawer__inner-container {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 0 !important;
}

.menu-drawer__navigation-container {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  padding: 0 !important;
}

/* Drawer header strip with logo area */
.menu-drawer__navigation {
  padding: 24px 0 16px !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

/* Nav links inside drawer — with left-border slide animation */
.menu-drawer__menu-item,
.menu-drawer__menu .list-menu__item,
.menu-drawer__menu a {
  font-family: var(--font-display) !important;
  font-size: 1.6rem !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.75) !important;
  padding: 14px 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  text-decoration: none !important;
  border: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
  border-left: 3px solid transparent !important;
  letter-spacing: -0.01em !important;
  position: relative !important;
  transition:
    background var(--mid) ease,
    color var(--mid) ease,
    border-color var(--mid) ease,
    padding-left var(--mid) var(--ease) !important;
}
.menu-drawer__menu-item:hover,
.menu-drawer__menu a:hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--gold) !important;
  border-left-color: var(--gold) !important;
  padding-left: 34px !important;
}
.menu-drawer__menu-item--active,
.menu-drawer__menu a[aria-current="page"] {
  color: var(--gold) !important;
  background: rgba(212,149,106,0.08) !important;
  border-left-color: var(--gold) !important;
  padding-left: 34px !important;
}

/* Arrow icons inside drawer links */
.menu-drawer__menu-item .svg-wrapper svg,
.menu-drawer__menu a .svg-wrapper svg {
  fill: rgba(255,255,255,0.55) !important;
  stroke: none !important;
  width: 16px !important; height: 16px !important;
}

/* Sub-menu back button */
.menu-drawer__close-button {
  font-family: var(--font-display) !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--gold) !important;
  padding: 16px 28px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: transparent !important;
  border: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  width: 100% !important;
  cursor: pointer !important;
}

/* ── Explore accordion (inline expand, no JS/overlay required) ── */

/* 1. Remove browser disclosure triangle */
.menu-drawer details > summary.menu-drawer__menu-item {
  list-style: none !important;
}
.menu-drawer details > summary.menu-drawer__menu-item::-webkit-details-marker {
  display: none !important;
}
.menu-drawer details > summary.menu-drawer__menu-item::marker {
  content: '' !important;
}

/* 2. Override Dawn's overlay submenu — make it inline */
.menu-drawer .menu-drawer__submenu,
.js .menu-drawer .menu-drawer__submenu {
  position: static !important;
  transform: none !important;
  visibility: visible !important;
  display: none !important;
  height: auto !important;
  background: transparent !important;
  z-index: auto !important;
  overflow: visible !important;
}

/* 3. Show submenu — driven by .snap-open class (set by our JS) + native [open] as fallback */
.menu-drawer details[open] > .menu-drawer__submenu,
.menu-drawer details.snap-open > .menu-drawer__submenu {
  display: block !important;
}

/* 4. Hide the back-button (not needed for accordion) */
.menu-drawer .menu-drawer__close-button {
  display: none !important;
}

/* 5. Arrow icon — rotate ↓ when open to signal expand/collapse */
.menu-drawer details > summary.menu-drawer__menu-item .svg-wrapper svg {
  fill: rgba(255,255,255,0.55) !important;
  stroke: none !important;
  width: 16px !important;
  height: 16px !important;
  transition: transform 0.2s ease !important;
}
.menu-drawer details[open] > summary.menu-drawer__menu-item .svg-wrapper svg {
  transform: rotate(90deg) !important;
}

/* 6. Summary hover/open state — same gold border as <a> items */
.menu-drawer details > summary.menu-drawer__menu-item:hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--gold) !important;
  border-left-color: var(--gold) !important;
  padding-left: 34px !important;
}
.menu-drawer details[open] > summary.menu-drawer__menu-item {
  color: var(--gold) !important;
  border-left-color: var(--gold) !important;
}

/* 7. Collection child links — indented, smaller, same hover style */
.menu-drawer .menu-drawer__inner-submenu .menu-drawer__menu-item {
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  padding: 11px 28px 11px 40px !important;
  color: rgba(255,255,255,0.6) !important;
  border-left: 3px solid transparent !important;
  border-bottom: 1px solid rgba(255,255,255,0.04) !important;
  background: rgba(0,0,0,0.12) !important;
}
.menu-drawer .menu-drawer__inner-submenu .menu-drawer__menu-item:hover {
  color: var(--gold) !important;
  border-left-color: var(--gold) !important;
  background: rgba(255,255,255,0.04) !important;
  padding-left: 46px !important;
}

/* Utility area at bottom of drawer */
.menu-drawer__utility-links {
  padding: 24px 28px !important;
  border-top: 1px solid rgba(255,255,255,0.08) !important;
  margin-top: auto !important;
}

/* Account link in drawer */
.menu-drawer__account {
  font-family: var(--font-display) !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.6) !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 0 16px !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  margin-bottom: 16px !important;
}
.menu-drawer__account svg {
  stroke: rgba(255,255,255,0.5) !important;
  fill: none !important;
}
.menu-drawer__account:hover { color: var(--gold) !important; }

/* Social icons in drawer */
.menu-drawer__utility-links .list-social {
  display: flex !important;
  gap: 12px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  flex-wrap: wrap !important;
}
.menu-drawer__utility-links .list-social__link {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important; height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.5) !important;
  transition: background var(--fast) ease, color var(--fast) ease !important;
}
.menu-drawer__utility-links .list-social__link:hover {
  background: var(--gold) !important;
  color: var(--navy) !important;
}
.menu-drawer__utility-links .list-social__link svg {
  width: 16px !important; height: 16px !important;
  fill: currentColor !important;
  stroke: none !important;
}

/* Dark overlay behind drawer */
.menu-drawer-container[open] ~ .header,
.menu-drawer-container[open] {
  position: relative !important;
}
.menu-overlay {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.4) !important;
  z-index: 9998 !important;
  backdrop-filter: blur(2px) !important;
  animation: overlayIn 0.25s ease forwards !important;
}
@keyframes overlayIn { from{opacity:0} to{opacity:1} }

/* =====================
   SCROLL ANIMATIONS
   ===================== */
.snap-fade-up {
  opacity: 0; transform: translateY(28px);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
.snap-fade-up.snap-visible { opacity: 1; transform: translateY(0); }
.snap-fade-in { opacity: 0; transition: opacity 0.6s var(--ease); }
.snap-fade-in.snap-visible { opacity: 1; }
.snap-scale-in { opacity: 0; transform: scale(0.95); transition: opacity 0.55s var(--ease), transform 0.55s var(--ease); }
.snap-scale-in.snap-visible { opacity: 1; transform: scale(1); }
.snap-delay-1 { transition-delay: 0.08s !important; }
.snap-delay-2 { transition-delay: 0.16s !important; }
.snap-delay-3 { transition-delay: 0.24s !important; }
.snap-delay-4 { transition-delay: 0.32s !important; }
.snap-delay-5 { transition-delay: 0.40s !important; }

/* ============================================================
   DESKTOP NAV LINK STYLING (Home, Catalog, Contact)
   ============================================================ */

/* Hide inline nav — links live in the side panel instead */
.header__inline-menu,
.header-menu {
  display: none !important;
}

/* Hide search button from header — it moves to featured collection */
summary.header__icon--search {
  display: none !important;
}

/* Collection page search wrapper */
.snap-collection-search-wrapper {
  display: flex;
  justify-content: flex-end;
  padding: 16px 0 8px;
}

/* Search button inside featured collection */
/* Inline search — collapsed (pill button) */
.snap-collection-search {
  display: flex;
  align-items: center;
  gap: 6px;
  background: none;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--r-full);
  padding: 7px 16px 7px 12px;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--gray-700);
  cursor: pointer;
  width: auto;
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.2s ease,
              background 0.2s ease;
  white-space: nowrap;
  overflow: hidden;
}

.snap-collection-search:hover {
  border-color: var(--navy);
  color: var(--navy);
  background: var(--gray-50);
}

.snap-collection-search svg { flex-shrink: 0; }

/* Hidden input in collapsed state */
.snap-search-input {
  display: none;
  border: none;
  outline: none;
  background: none;
  font-family: var(--font-display);
  font-size: 1.35rem;
  color: var(--navy);
  width: 0;
  padding: 0;
  min-width: 0;
  transition: width 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.snap-search-input::placeholder { color: #c0c0c0; font-size: 1.2rem; }
/* Hide native browser search clear button */
.snap-search-input::-webkit-search-cancel-button,
.snap-search-input::-webkit-search-decoration { display: none; -webkit-appearance: none; }
.snap-search-input[type="search"] { -webkit-appearance: none; }
.snap-collection-search:focus-within,
.snap-collection-search:focus { outline: none !important; box-shadow: none !important; }
.snap-search-input:focus { outline: none !important; box-shadow: none !important; }

.snap-search-close {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  color: var(--gray-500);
  line-height: 1;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.2s ease, color 0.15s ease;
}
.snap-search-close:hover { color: var(--navy); }
.snap-collection-search.snap-search--open .snap-search-close {
  display: flex;
  opacity: 1;
}

/* Live search grid feedback */
ul.product-grid {
  transition: opacity 0.2s ease;
}
.snap-no-results {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  justify-content: center;
  align-items: center;
  padding: 80px 20px;
  text-align: center;
}
.snap-no-results p {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--gray-500);
  text-align: center;
  letter-spacing: 0.01em;
}
.snap-no-results p::before {
  content: '';
  display: block;
  width: 52px;
  height: 52px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23b0b0b0' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M16.5 16.5L21 21' stroke-linecap='round'/%3E%3Cpath d='M9 9l4 4m0-4l-4 4' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  opacity: 0.45;
}

/* Expanded state */
.snap-collection-search.snap-search--open {
  width: 260px;
  border-color: var(--navy);
  background: var(--white);
  cursor: default;
}
.snap-collection-search.snap-search--open .snap-search-label {
  display: none;
}
.snap-collection-search.snap-search--open .snap-search-input {
  display: block;
  width: 100%;
  flex: 1;
}
.snap-collection-search.snap-search--open .snap-search-close {
  display: flex;
}

/* Banner buttons — always rounded, no hover style changes */
.banner__buttons .button {
  border-radius: 100px !important;
}
.banner__buttons .button::before,
.banner__buttons .button::after {
  border-radius: 100px !important;
}
.banner__buttons .button:not([disabled]):hover::after {
  --border-offset: var(--buttons-border-offset) !important;
  box-shadow: 0 0 0 calc(var(--buttons-border-width) + var(--buttons-border-offset))
    rgba(var(--color-button-text), var(--border-opacity)),
    0 0 0 var(--buttons-border-width) rgba(var(--color-button), var(--alpha-button-background)) !important;
}
.banner__buttons .button:not([disabled]):hover {
  box-shadow: none !important;
}

/* Make the title row flex so search floats right */
.collection__title.snap-title-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}


.header__inline-menu .list-menu__item--link,
.header__menu-item > a {
  font-family: var(--font-display) !important;
  font-size: 1.3rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  position: relative !important;
  padding: 6px 4px !important;
  transition: color 0.2s ease, opacity 0.2s ease !important;
  text-decoration: none !important;
  opacity: 0.85;
}

.header__inline-menu .list-menu__item--link:hover,
.header__menu-item > a:hover {
  opacity: 1 !important;
}

.header__inline-menu .list-menu__item--link::after,
.header__menu-item > a::after {
  content: '' !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 0 !important;
  height: 2px !important;
  background: currentColor !important;
  border-radius: 2px !important;
  transition: width 0.28s cubic-bezier(0.22, 1, 0.36, 1) !important;
}

.header__inline-menu .list-menu__item--link:hover::after,
.header__menu-item > a:hover::after,
.header__inline-menu .list-menu__item--link[aria-current="page"]::after {
  width: 70% !important;
}

.header__inline-menu .list-menu__item--link[aria-current="page"] {
  opacity: 1 !important;
}

/* Spacing between nav items */
.header__inline-menu .list-menu--inline {
  gap: 8px !important;
}

/* ============================================================
   SIDE NAV PANEL
   ============================================================ */

/* Hide the fixed trigger — we use the header burger instead */
#snap-sidenav-trigger {
  display: none !important;
}

/* Show the header burger on desktop too */
header-drawer {
  display: flex !important;
}

/* Backdrop overlay */
#snap-sidenav-overlay {
  position: fixed;
  inset: 0;
  z-index: 1099;
  background: rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

#snap-sidenav-overlay.snap-active {
  opacity: 1;
  pointer-events: all;
}

/* Banner clickable cursor */
slideshow-component {
  cursor: pointer;
}
slideshow-component button {
  cursor: default;
}

/* Clickable slide cursor */
.slideshow__slide[data-url] {
  cursor: pointer;
}

/* ── Slideshow controls: minimal dots inside banner ── */
slideshow-component .slideshow__controls,
slideshow-component .slideshow__controls--top {
  position: absolute !important;
  bottom: 16px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 5 !important;
  order: unset !important;
  border: none !important;
  background: none !important;
  padding: 0 !important;
  width: auto !important;
  display: flex !important;
  align-items: center !important;
}

/* Hide prev/next arrows and autoplay button */
slideshow-component .slider-button--prev,
slideshow-component .slider-button--next,
slideshow-component .slideshow__autoplay {
  display: none !important;
}

/* Dots wrapper — tight gap */
slideshow-component .slideshow__control-wrapper {
  gap: 6px !important;
  margin: 0 !important;
}

/* Dot button — remove padding so dots sit close */
slideshow-component .slider-counter__link--dots {
  padding: 3px !important;
}

/* Dot shape — smaller, white */
slideshow-component .slider-counter__link--dots .dot {
  width: 5px !important;
  height: 5px !important;
  border: none !important;
  background: rgba(255, 255, 255, 0.45) !important;
  border-radius: 50% !important;
  transition: background 0.25s ease, transform 0.25s ease !important;
}

/* Active dot */
slideshow-component .slider-counter__link--active.slider-counter__link--dots .dot {
  background: #fff !important;
  transform: scale(1.4) !important;
}

/* Hover dot */
slideshow-component .slider-counter__link--dots:not(.slider-counter__link--active):hover .dot {
  background: rgba(255, 255, 255, 0.75) !important;
}

/* ── Full-width multi-product hero ── */
slideshow-component .slideshow.banner {
  min-height: unset !important;
}
.snap-split-slide {
  position: relative !important;
  display: block !important;
  height: 55vh !important;
  max-height: 480px !important;
  min-height: 280px !important;
  overflow: hidden;
}

/* Product images fill the entire banner */
.snap-hero-right {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  gap: 3px !important;
}
.snap-hero-right--mobile {
  display: none !important;
}
.snap-hero-product {
  flex: 1;
  overflow: hidden;
  min-width: 0;
}
.snap-hero-prod-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  transition: filter 0.45s ease, transform 0.45s ease !important;
}

/* Soft blur on images when slide is hovered */
.snap-split-slide:hover .snap-hero-prod-img {
  filter: blur(3px) !important;
  transform: scale(1.03) !important;
}

/* Full-cover overlay — tints on hover */
.snap-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(10, 20, 45, 0) !important;
  transition: background 0.45s ease !important;
}
.snap-split-slide:hover .snap-hero-overlay {
  background: rgba(10, 20, 45, 0.32) !important;
}

/* Centered text block */
.snap-hero-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 3rem;
}

/* Collection name — always visible */
.snap-hero-heading {
  color: #fff !important;
  font-size: clamp(3rem, 4.5vw, 5.5rem) !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55);
  transition: transform 0.4s ease !important;
}
.snap-split-slide:hover .snap-hero-heading {
  transform: translateY(-10px);
}

/* Subtext + CTA — hidden, revealed on hover */
.snap-hero-hover-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 1.2rem;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.4s ease 0.05s, transform 0.4s ease 0.05s;
}
.snap-split-slide:hover .snap-hero-hover-content {
  opacity: 1;
  transform: translateY(0);
}
.snap-hero-sub {
  color: rgba(255, 255, 255, 0.88);
  font-size: 1.15rem;
  margin: 0 0 1.8rem;
  line-height: 1.5;
}
.snap-hero-cta {
  display: inline-flex !important;
  align-items: center;
  background: #c8950a !important;
  border: none !important;
  color: #fff !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  padding: 1.1rem 2.4rem !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
}
.snap-hero-cta:hover {
  background: #d9a40e !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: none !important;
}

/* ── Mobile: portrait image + frosted pill badge ── */
@media screen and (max-width: 749px) {
  /* Tall portrait-feel banner */
  .snap-split-slide {
    height: 108vw !important;
    max-height: 540px !important;
    min-height: 320px !important;
  }

  /* Swap to portrait mobile image */
  .snap-hero-right--desktop {
    display: none !important;
  }
  .snap-hero-right--mobile {
    display: flex !important;
    gap: 0 !important;
  }
  .snap-hero-prod-img {
    filter: none !important;
    transform: none !important;
    object-position: center top !important;
  }

  /* No overlay — clean image */
  .snap-hero-overlay {
    background: none !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding-bottom: 2.4rem !important;
  }

  /* Pill badge — centered at bottom */
  .snap-hero-center {
    align-items: center !important;
    text-align: center !important;
    padding: 0 !important;
    width: auto !important;
  }
  .snap-hero-heading {
    display: inline-block !important;
    background: rgba(8, 8, 10, 0.80) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    color: #fff !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    padding: 1rem 2.6rem !important;
    border-radius: 100px !important;
    text-shadow: none !important;
    transform: none !important;
    line-height: 1 !important;
    margin: 0 !important;
  }

  /* Hide subtext and CTA inside the slide on mobile */
  .snap-hero-hover-content {
    display: none !important;
  }

  /* Move slide dots below the banner on mobile */
  slideshow-component .slideshow__controls,
  slideshow-component .slideshow__controls--top {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    padding: 1.4rem 0 !important;
    border: none !important;
    background: transparent !important;
    width: 100% !important;
  }
}

/* Blur whole page when sidenav or cart drawer opens */
body > *:not(#snap-sidenav):not(#snap-sidenav-overlay):not(#snap-sidenav-trigger):not(cart-drawer) {
  transition: filter 0.35s ease;
}
body.snap-nav-open > *:not(#snap-sidenav):not(#snap-sidenav-overlay):not(#snap-sidenav-trigger) {
  filter: blur(4px);
  pointer-events: none;
  user-select: none;
}

/* Panel */
#snap-sidenav {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 290px;
  z-index: 1100;
  background: rgb(var(--color-background));
  color: rgb(var(--color-foreground));
  transform: translateX(-100%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  display: flex;
  flex-direction: column;
  box-shadow: 4px 0 32px rgba(0,0,0,0.12);
  border-right: 0.1rem solid rgba(var(--color-foreground), 0.2);
}

#snap-sidenav.snap-open {
  transform: translateX(0);
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.snap-sidenav__head {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 18px 18px 14px;
}

.snap-sidenav__brand {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgb(var(--color-foreground));
}

.snap-sidenav__close {
  background: none;
  border: none;
  color: rgba(var(--color-foreground), 0.6);
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, color 0.15s ease;
}

.snap-sidenav__close:hover {
  background: rgba(var(--color-foreground), 0.08);
  color: rgb(var(--color-foreground));
}

.snap-sidenav__links {
  list-style: none;
  margin: 0;
  padding: 20px 0;
  flex: 1;
}

.snap-sidenav__section-label {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 0 22px 8px;
  margin: 0;
  opacity: 0.8;
}

.snap-sidenav__link {
  display: flex;
  align-items: center;
  padding: 13px 22px;
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.75);
  text-decoration: none;
  border-left: 3px solid transparent;
  transition:
    color 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease,
    padding-left 0.2s ease;
}

.snap-sidenav__link:hover {
  color: rgb(var(--color-foreground));
  background: rgba(var(--color-foreground), 0.05);
  border-left-color: rgba(var(--color-foreground), 0.4);
  padding-left: 28px;
}

.snap-sidenav__link.snap-active {
  color: rgb(var(--color-foreground));
  background: rgba(var(--color-foreground), 0.06);
  border-left-color: rgb(var(--color-foreground));
  padding-left: 28px;
  font-weight: 700;
}

.snap-sidenav__foot {
  padding: 18px 22px 28px;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.snap-sidenav__foot-link {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.6);
  text-decoration: none;
  transition: color 0.2s ease;
}

.snap-sidenav__foot-link:hover {
  color: rgb(var(--color-foreground));
  text-decoration: underline;
}

.snap-sidenav__foot-sep {
  margin: 0 0.6rem;
  opacity: 0.35;
  font-size: 1.2rem;
}

/* ── Sidenav accordion (Explore / items with children) ── */

.snap-sidenav__accordion {
  border: none;
}

/* Remove browser disclosure triangle */
.snap-sidenav__accordion > summary {
  list-style: none;
  cursor: pointer;
}
.snap-sidenav__accordion > summary::-webkit-details-marker { display: none; }
.snap-sidenav__accordion > summary::marker { content: ''; }

/* Trigger row shares the same style as regular links */
.snap-sidenav__accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

/* Caret icon */
.snap-sidenav__caret {
  display: flex;
  align-items: center;
  opacity: 0.6;
  transition: transform 0.2s ease, opacity 0.2s ease;
  flex-shrink: 0;
  margin-left: 8px;
}

.snap-sidenav__accordion[open] > summary .snap-sidenav__caret {
  transform: rotate(180deg);
  opacity: 1;
}

/* Sub-link list */
.snap-sidenav__sub-links {
  list-style: none;
  margin: 0;
  padding: 4px 0 8px;
}

.snap-sidenav__sub-link {
  display: block;
  padding: 11px 22px 11px 34px;
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.6);
  text-decoration: none;
  border-left: 3px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease, padding-left 0.15s ease;
}

.snap-sidenav__sub-link:hover {
  color: rgb(var(--color-foreground));
  border-left-color: rgba(var(--color-foreground), 0.4);
  padding-left: 40px;
}

.snap-sidenav__sub-link.snap-active {
  color: rgb(var(--color-foreground));
  border-left-color: rgb(var(--color-foreground));
  font-weight: 700;
  padding-left: 40px;
}

/* =====================
   CARD SLIDESHOW
   ===================== */
.snap-slide-img {
  transition: opacity 0.3s ease;
}

/* Prev / Next arrow buttons */
.snap-slide-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  background: rgba(255,255,255,0.85);
  border: none;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s ease, background 0.15s ease;
  color: var(--navy);
  padding: 0;
  pointer-events: none;
}
.snap-slide-btn--prev { left: 8px; }
.snap-slide-btn--next { right: 8px; }

[data-slideshow]:hover .snap-slide-btn {
  opacity: 1;
  pointer-events: auto;
}
.snap-slide-btn:hover { background: rgba(255,255,255,1); }

/* Dots */
.snap-card-slideshow__dots {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 5px;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.2s ease;
}

[data-slideshow]:hover .snap-card-slideshow__dots {
  opacity: 1;
}

.snap-card-slideshow__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.snap-card-slideshow__dot--active {
  background: var(--white);
  transform: scale(1.3);
}

/* =====================
   PRODUCT GRID — RESPONSIVE CARD SIZING
   ===================== */

/* Large desktop: 3 cols → ~390px cards */
@media (min-width: 1200px) {
  .product-grid.grid--3-col-desktop { gap: 24px !important; }
}

/* Standard desktop (990–1199px): 3 cols → ~330px cards */
@media (min-width: 990px) and (max-width: 1199px) {
  .product-grid.grid--3-col-desktop { gap: 20px !important; }
}

/* Tablet (750–989px): force 2 columns */
@media (min-width: 750px) and (max-width: 989px) {
  .product-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px !important;
  }
}

/* Mobile (< 750px): collection product grid → horizontal carousel */
@media (max-width: 749px) {
  /* Regular collection pages: switch grid to horizontal swipe carousel */
  #product-grid.product-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 1.2rem !important;
    padding: 0 1.5rem 1.6rem !important;
    max-width: none !important;
    margin: 0 !important;
    grid-template-columns: unset !important;
    /* Hide scrollbar for clean look */
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }
  #product-grid.product-grid::-webkit-scrollbar {
    display: none;
  }
  #product-grid.product-grid .grid__item {
    flex: 0 0 78% !important;
    width: 78% !important;
    max-width: 78% !important;
    scroll-snap-align: start;
    margin: 0 !important;
  }

  /* Slider variant (snap-all-collections): horizontal scroll, no wrapping */
  .product-grid.slider {
    gap: 16px !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex-wrap: nowrap !important;
  }

  /* Hero & misc */
  .snap-hero__title { font-size: clamp(3.4rem, 9vw, 5rem) !important; }
  .snap-btn { padding: 12px 22px; font-size: 1.4rem !important; }
  .snap-hero__float-card { display: none; }
  .snap-features__grid { grid-template-columns: 1fr 1fr; }
  .snap-feature { border-right: none; border-bottom: 1px solid var(--gray-200); padding: 26px 20px; }
  .snap-feature:last-child { border-bottom: none; }
}

/* Product page — hide the media zoom toggle button */
.product__media-toggle.quick-add-hidden { display: none !important; }

/* ==============================================
   PRODUCT PAGE — Editorial Style
   ============================================== */

/* Title — uppercase, heavy */
.product__title h1,
.product__title h2.h1,
.product__title .h1 {
  font-family: var(--font-display) !important;
  font-size: clamp(2.6rem, 3.5vw, 4rem) !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: -0.01em !important;
  line-height: 1.08 !important;
  color: #111 !important;
}

/* Price */
.price--large .price-item {
  font-size: 1.7rem !important;
  font-weight: 400 !important;
  color: #111 !important;
  letter-spacing: 0 !important;
}
.price--large .price__badge-sale {
  font-size: 1.1rem !important;
}
/* Hide addon-only products from all collection grids — they only appear as bundle add-ons on product pages */
[data-addon-product] { display: none !important; }
li:has([data-addon-product]) { display: none !important; }

/* Hide sold-out badge globally */
.price__badge-sold-out { display: none !important; }

/* Description inline */
.product__description.rte {
  font-size: 1.4rem !important;
  line-height: 1.7 !important;
  color: #444 !important;
  border: none !important;
}

/* Product image — clean neutral background, object-fit contain, fixed square size */
.product__media-item .media,
.product__media .media {
  background: #f7f7f7 !important;
  border-radius: 0 !important;
}
.product__media-item .media img {
  object-fit: contain !important;
  background: #f7f7f7 !important;
}
/* Force consistent image size — override adaptive aspect ratio */
.product__media-item .product-media-container {
  --ratio-percent: 100% !important;
}
/* Hide zoom/expand icon that appears on hover */
.product__media-icon { display: none !important; }

/* Thumbnails — center the thumbnail strip */
.thumbnail-list {
  justify-content: center !important;
}

/* Desktop: swap 1fr columns (which fill all width and prevent centering)
   for fixed-size auto-fit columns so empty tracks collapse and
   justify-content: center actually works */
@media (min-width: 750px) {
  .thumbnail-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, 100px) !important;
    justify-content: center !important;
  }
}

/* Thumbnails — underline-style active indicator */
.thumbnail-list__item .thumbnail,
.thumbnail-list .thumbnail {
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  padding: 2px !important;
  background: #f0f0f0 !important;
  transition: border-color 0.12s ease !important;
}
.thumbnail-list__item .thumbnail[aria-current="true"],
.thumbnail-list .thumbnail[aria-current="true"] {
  border-bottom-color: #111 !important;
}
.thumbnail-list__item .thumbnail:hover:not([aria-current="true"]) {
  border-bottom-color: #bbb !important;
}
.thumbnail-list__item .thumbnail img {
  object-fit: contain !important;
}

/* Quantity selector — pill outline with −/+ circles */
.product-form .quantity,
product-info .quantity {
  border: 1px solid #d0d0d0 !important;
  border-radius: 100px !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 0 2px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.product-form .quantity__button,
product-info .quantity__button {
  background: none !important;
  border: none !important;
  width: 38px !important;
  height: 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  color: #111 !important;
  border-radius: 50% !important;
  transition: background 0.1s ease !important;
}
.product-form .quantity__button:hover,
product-info .quantity__button:hover { background: #f0f0f0 !important; }
.quantity__button.disabled {
  pointer-events: none !important;
  cursor: not-allowed !important;
}
/* Lock quantity controls whenever Dawn marks the submit button as unavailable.
   The disabled attribute is set by toggleSubmitButton() before variantChange
   fires, so this is always in sync with actual variant availability. */
product-info:has(.product-form__submit[disabled]) quantity-input {
  pointer-events: none !important;
  opacity: 0.5;
  cursor: not-allowed;
}
.product-form .quantity__input,
product-info .quantity__input {
  width: 40px !important;
  text-align: center !important;
  border: none !important;
  font-size: 1.4rem !important;
  font-weight: 500 !important;
  background: transparent !important;
  color: #111 !important;
  box-shadow: none !important;
}

/* Add to Cart button — black full-width pill */
.product-form__submit[name="add"] {
  background: #111 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 100px !important;
  font-size: 1.5rem !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  padding: 17px 24px !important;
  transition: background 0.12s ease !important;
  box-shadow: none !important;
}
.product-form__submit[name="add"]:hover:not(:disabled) { background: #333 !important; }
.product-form__submit[name="add"]:disabled { background: #aaa !important; }

/* Collapsible accordion tabs — clean divider style */
.product__accordion.accordion {
  border: none !important;
  box-shadow: none !important;
  margin: 0 !important;
}
.product__accordion.accordion details {
  border-top: 1px solid #e5e5e5 !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.product__accordion.accordion details:last-of-type {
  border-bottom: 1px solid #e5e5e5 !important;
}
.product__accordion.accordion details summary {
  padding: 17px 0 !important;
  background: transparent !important;
  border: none !important;
}
.product__accordion.accordion .accordion__title,
.product__accordion.accordion .summary__title .accordion__title {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #111 !important;
}
.product__accordion.accordion .accordion__content {
  padding: 0 0 18px !important;
  font-size: 1.4rem !important;
  line-height: 1.65 !important;
  color: #555 !important;
}

/* Variant option buttons — pill circles */
.product-form__input--pill .form__label { font-size: 1.3rem !important; color: #111 !important; }
.swatch-input--pill + .swatch__label,
.product-form__input--pill label {
  border-radius: 100px !important;
  border: 1px solid #d0d0d0 !important;
  min-width: 44px !important;
  height: 44px !important;
  font-size: 1.3rem !important;
  font-weight: 500 !important;
  color: #111 !important;
  background: #fff !important;
  transition: background 0.1s ease, border-color 0.1s ease, color 0.1s ease !important;
}
.swatch-input--pill:checked + .swatch__label,
.product-form__input--pill input:checked + label {
  background: #111 !important;
  color: #fff !important;
  border-color: #111 !important;
}

/* Info wrapper — generous spacing */
.product__info-wrapper { padding-top: 8px !important; }
.product__info-container > * + * { margin-top: 18px !important; }


/* ============================================================
   COLLECTIONS LIST PAGE (/collections)
   Editorial grid — bold category cards
   ============================================================ */

/* Page title */
.page-width > .title--primary {
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -0.02em;
  margin-bottom: 48px;
  text-align: center;
  width: 100%;
  display: block;
}

/* Grid override — 3 columns on desktop */
.collection-list.grid--2-col-desktop,
.collection-list.grid--3-col-desktop,
.collection-list.grid--4-col-desktop {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
  margin-bottom: 25px !important;
}

/* Wrapper sets the aspect ratio and clips everything */
.collection-card-wrapper,
.collection-card-wrapper:hover {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  aspect-ratio: 3 / 4 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Card and inner fill wrapper absolutely */
.collection-card-wrapper .card,
.collection-card-wrapper .card__inner {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: none !important;
  background-color: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

/* card__media: wider than card to allow panning */
.collection-card-wrapper .card__media {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  width: 120% !important;
  height: 100% !important;
  overflow: hidden !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  transform: translateX(0);
  will-change: transform;
}

/* media fills card__media fully */
.collection-card-wrapper .media {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  background: none !important;
  padding: 0 !important;
  margin: 0 !important;
  transform: none !important;
}

/* Kill ratio::before */
.collection-card-wrapper .card__inner::before {
  display: none !important;
}

/* Pure pan — no scale */
@keyframes snap-pan-right {
  from { transform: translateX(0);       }
  to   { transform: translateX(-16.67%); }
}

/* Disable theme's media hover-effect transition */
.collection-card-wrapper .media--hover-effect > img,
.collection-card-wrapper .media--hover-effect:hover > img {
  transition: none !important;
}

/* Image fills its container — no scale, no distortion */
.collection-card-wrapper .card__media img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  animation: none !important;
}

/* Hover — pan container to reveal right side */
.collection-card-wrapper:hover .card__media {
  animation: snap-pan-right 3s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}


/* Dark gradient overlay on the card itself — covers both image and name area */
.collection-card-wrapper > .card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 55%,
    rgba(8, 24, 48, 0.65) 80%,
    rgba(8, 24, 48, 0.88) 100%
  );
  border-radius: var(--r-lg);
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.35s var(--ease);
}
.collection-card-wrapper:hover > .card::after {
  opacity: 1;
}

/* Category name overlay — uses outer card__content positioned over the full card */
/* Hide the inner duplicate (inside card__inner) */
.collection-card-wrapper .card__inner .card__content {
  display: none !important;
}

/* Outer card__content — always visible at bottom left */
.collection-card-wrapper > .card > .card__content {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  position: absolute !important;
  inset: 0 !important;
  padding: 16px 20px !important;
  z-index: 3;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  opacity: 1 !important;
  pointer-events: none;
}

/* Centered collection name — strip all backgrounds */
.collection-card-wrapper > .card > .card__content .card__information {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  width: 100% !important;
  text-align: center !important;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
}
.collection-card-wrapper > .card > .card__content,
.collection-card-wrapper > .card > .card__content * {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
.collection-card-wrapper > .card > .card__content .card__heading {
  margin: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  pointer-events: auto;
}
.collection-card-wrapper > .card > .card__content .card__heading a {
  color: var(--white) !important;
  font-size: 1.5rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-shadow: 0 1px 6px rgba(0,0,0,0.5) !important;
}

/* Hide the icon-wrap inside heading (it inherits opacity from parent) */
.collection-card-wrapper > .card > .card__content .icon-wrap {
  display: none !important;
}

/* Permanent gold arrow — pseudo-element on card__content, always visible */
.collection-card-wrapper > .card > .card__content::after {
  content: '';
  position: absolute !important;
  bottom: 14px !important;
  right: 14px !important;
  width: 26px !important;
  height: 26px !important;
  background-color: var(--gold) !important;
  border-radius: 50% !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 11px !important;
  pointer-events: auto;
  cursor: pointer;
  z-index: 4;
  transition: background-color 0.2s, transform 0.3s var(--ease) !important;
}
.collection-card-wrapper:hover > .card > .card__content::after {
  background-color: var(--gold-light) !important;
  transform: translate(2px, -2px) !important;
}

/* Mobile */
@media (max-width: 749px) {
  .collection-list.grid--2-col-desktop,
  .collection-list.grid--3-col-desktop,
  .collection-list.grid--4-col-desktop {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }
  .collection-card-wrapper .card__inner {
    --ratio-percent: 120% !important;
  }
  /* Always show gradient on mobile */
  .collection-card-wrapper > .card::after {
    opacity: 1 !important;
  }
  .collection-card-wrapper > .card > .card__content {
    padding: 14px !important;
  }
  .collection-card-wrapper > .card > .card__content .card__heading a {
    font-size: 1.3rem !important;
  }
}

/* ============================================================
   SNAP FOOTER BOTTOM BAR
   ============================================================ */

/* ══════════════════════════════════════════
   FOOTER BOTTOM BAR
   Layout: [empty] | Customer Care | Social+Payment
   ══════════════════════════════════════════ */

/* ── Left: Newsletter ── */
.snap-footer-bottom__left {
  grid-column: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 280px;
}

.snap-footer-newsletter__tagline {
  margin: 0;
  font-size: 1.3rem;
  color: rgba(232,237,245,0.9);
  line-height: 1.5;
  font-style: italic;
  letter-spacing: 0.01em;
}


.snap-footer-newsletter__form {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.snap-footer-newsletter__field {
  display: flex;
  align-items: center;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 6px;
  overflow: hidden;
  transition: border-color 0.2s;
}

.snap-footer-newsletter__field:focus-within {
  border-color: rgba(241,176,109,0.6);
}

.snap-footer-newsletter__input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 10px 14px;
  font-size: 1.2rem;
  color: rgba(232,237,245,0.9);
  min-width: 0;
}

.snap-footer-newsletter__input::placeholder {
  color: rgba(232,237,245,0.35);
}

.snap-footer-newsletter__btn {
  background: none;
  border: none;
  border-left: 1px solid rgba(255,255,255,0.18);
  padding: 10px 14px;
  color: rgba(232,237,245,0.55);
  cursor: pointer;
  display: flex;
  align-items: center;
  transition: color 0.2s;
  flex-shrink: 0;
}

.snap-footer-newsletter__btn:hover {
  color: #F1B06D;
}

.snap-footer-newsletter__success {
  margin: 0;
  font-size: 1.1rem;
  color: #F1B06D;
}

.snap-footer-newsletter__error {
  margin: 0;
  font-size: 1.1rem;
  color: #e07070;
}

.snap-footer-bottom {
  background: var(--navy-dark);
  color: rgba(232,237,245,0.65);
  font-size: clamp(1.1rem, 1.3vw, 1.3rem);
}

/* ── Desktop grid: 3 equal columns ── */
.snap-footer-bottom__inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  align-items: start;
  padding: 28px clamp(16px, 4vw, 40px);
}

/* Center column */
.snap-footer-bottom__center {
  grid-column: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

/* Right column */
.snap-footer-bottom__right {
  grid-column: 3;
  justify-self: end;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

/* ── Customer Care heading ── */
.snap-footer-center__heading {
  background: none;
  border: none;
  padding: 0;
  margin: 0 0 4px;
  font-size: 1.7rem;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(232,237,245,0.9);
  letter-spacing: 0.03em;
  width: 70%;
  text-align: center;
  cursor: default;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.snap-care-chevron {
  display: none;
  flex-shrink: 0;
  transition: transform 0.22s ease;
}

/* ── Policy links ── */
.snap-policy-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  width: 100%;
}

/* ── Mobile accordion ── */
@media (max-width: 749px) {
  .snap-footer-center__heading {
    cursor: pointer;
    justify-content: space-between;
    padding: 12px 0;
    margin: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }

  .snap-care-chevron {
    display: block;
  }

  .snap-footer-center__heading[aria-expanded="true"] .snap-care-chevron {
    transform: rotate(180deg);
  }

  .snap-policy-links {
    display: none;
    padding: 8px 0 4px;
  }

  .snap-policy-links.is-open {
    display: flex;
    animation: snap-care-open 0.22s ease;
  }

  @keyframes snap-care-open {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
  }
}

.snap-footer-bottom__policy-link {
  font-size: 1.1rem;
  color: rgba(232,237,245,0.5);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.5;
  transition: color 0.18s;
  text-align: center;
  position: relative;
}

.snap-footer-bottom__policy-link::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.snap-footer-bottom__policy-link:hover {
  color: var(--gold);
}

.snap-footer-bottom__policy-link:hover::after {
  transform: scaleX(1);
}

/* ── Social icons ── */
.snap-footer-bottom__brand { display: none; }

.snap-footer-bottom__social {
  display: flex;
  align-items: center;
  gap: 12px;
}

.snap-footer-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.55);
  text-decoration: none;
  transition: color 0.16s;
}

.snap-footer-social__link:hover { color: #fff; }

/* ── Payment badges ── */
.snap-footer-bottom__payments {
  display: flex;
  align-items: center;
  gap: 10px;
}

.snap-pay-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  opacity: 0.8;
  transition: opacity 0.16s;
}

.snap-pay-badge:hover { opacity: 1; }

/* Scroll hint arrow — fades in as user approaches last slide */
.snap-scroll-hint {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--white);
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.12);
  color: var(--navy);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease, transform 0.4s ease;
  translate: 0 -50%;
}
.snap-scroll-hint svg {
  width: 20px;
  height: 20px;
}
.snap-scroll-hint--visible {
  opacity: 1;
  pointer-events: auto;
  cursor: pointer;
  animation: snap-hint-pulse 1.2s ease-in-out infinite;
}
@keyframes snap-hint-pulse {
  0%, 100% { transform: translateX(0); }
  50%       { transform: translateX(5px); }
}

/* Browse All — end-of-carousel slide */
.snap-view-all-slide {
  display: flex !important;
  align-items: stretch !important;
}
.snap-view-all-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
  height: 100%;
  min-height: 200px;
  background: transparent;
  border: none;
  color: var(--navy);
  text-decoration: none;
  padding: 32px 24px;
  transition: color 0.2s ease;
}
.snap-view-all-card:hover {
  color: var(--navy-light);
}
.snap-view-all-card__text {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.snap-view-all-card__arrow {
  width: 28px;
  height: 28px;
  color: var(--gold);
}

/* Hidden until payment icons are ready — remove this block to restore */
.snap-pay-badge--visa,
.snap-pay-badge--mc { display: none !important; }
.snap-cart-pay-icon[aria-label="Visa"],
.snap-cart-pay-icon[aria-label="Mastercard"] { display: none !important; }

/* Hidden until ready — remove to restore */
.snap-trust-badge--hidden { display: none !important; }


/* ── Copyright bar ── */
.snap-footer-copyright {
  padding: 12px clamp(16px, 4vw, 40px) 18px;
  color: rgba(232,237,245,0.85);
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.snap-footer-copyright p { margin: 0; }

/* payments now lives in copyright bar — remove margin-top: auto */
.snap-footer-copyright .snap-footer-bottom__payments {
  margin-top: 0;
}

.snap-footer-brand-name {
  font-family: 'Bernard MT Condensed', 'Copperplate Gothic Bold', serif;
  font-size: 1.3rem;
  letter-spacing: 0.04em;
  color: #C8922A;
  text-decoration: none;
  position: relative;
}

.snap-footer-brand-name::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1px;
  background: #C8922A;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.snap-footer-brand-name:hover::after {
  transform: scaleX(1);
}

.snap-brand-link {
  color: inherit;
  text-decoration: none !important;
}

/* ── Tablet (750px – 989px) ── */
@media (min-width: 750px) and (max-width: 989px) {
  .snap-footer-bottom__inner {
    grid-template-columns: 0.5fr 1fr 0.5fr;
    padding: 24px clamp(16px, 4vw, 40px);
  }

  .snap-footer-bottom__right {
    gap: 10px;
  }
}

/* ── Mobile (< 750px) ── */
@media (max-width: 749px) {
  .snap-footer-bottom__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    padding: 24px 16px;
  }

  .snap-footer-bottom__left {
    max-width: 100%;
    width: 100%;
    align-items: center;
    text-align: center;
  }

  .snap-footer-newsletter__tagline {
    text-align: center;
  }

  .snap-footer-bottom__center {
    align-items: center;
    width: 100%;
  }

  .snap-footer-bottom__right {
    align-items: center;
    gap: 14px;
  }

  .snap-footer-copyright {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
  }
}


/* Placeholder for products with no media — matches real image size */
.snap-card__placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.snap-card__placeholder .media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.snap-placeholder-svg {
  width: 100%;
  height: 100%;
  opacity: 0.15;
}

/* Collections page — gap between grid and footer */
.collection-list-wrapper {
  padding-bottom: 6rem !important;
}

/* 404 page */
.snap-404 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 6rem 2rem;
  text-align: center;
}
.snap-404__code {
  font-family: var(--font-display);
  font-size: clamp(8rem, 20vw, 16rem);
  font-weight: 900;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 2px var(--navy);
  letter-spacing: -0.02em;
  opacity: 0.12;
  position: relative;
  margin-bottom: -2rem;
}
.snap-404__title {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 800;
  color: var(--navy);
  margin: 0 0 1.2rem;
  position: relative;
  z-index: 1;
}
.snap-404__message {
  font-size: 1.6rem;
  color: rgba(0, 38, 69, 0.55);
  margin: 0 0 3.2rem;
  max-width: 36ch;
}
.snap-404__btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  padding: 1.4rem 3.2rem;
  border-radius: var(--r-full);
  background: var(--navy);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.5rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: color var(--mid) ease;
  z-index: 0;
}
.snap-404__btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gold-dark);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: -1;
}
.snap-404__btn:hover::before {
  transform: scaleX(1);
}
.snap-404__btn:hover {
  color: #fff;
  box-shadow: var(--shadow-gold);
}

/* ============================================================
   ANNOUNCEMENT BAR — dismiss button
   ============================================================ */
.snap-ann-dismissible {
  position: relative;
}
.snap-ann-close {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  opacity: 0.7;
  transition: opacity 0.2s;
  color: inherit;
  line-height: 1;
}
.snap-ann-close:hover { opacity: 1; }

/* ============================================================
   TRUST BADGES STRIP
   ============================================================ */
.snap-trust-strip {
  background: #f4f4f4;
  padding: 20px 0;
  border-top: 1px solid #e8e8e8;
  border-bottom: 1px solid #e8e8e8;
}
.snap-trust-strip__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px 40px;
}
.snap-trust-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.snap-trust-badge__icon {
  width: 32px;
  height: 32px;
  color: var(--navy, #0d2545);
  stroke-width: 1.8;
}
.snap-trust-badge__label {
  font-size: 12px;
  font-weight: 600;
  color: var(--navy, #0d2545);
  text-align: center;
  letter-spacing: 0.02em;
}

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.snap-wa-btn {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 999;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(37, 211, 102, 0.4);
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.snap-wa-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 6px 20px rgba(37, 211, 102, 0.55);
}
.snap-wa-icon {
  width: 28px;
  height: 28px;
  flex-shrink: 0;
}
.snap-wa-tooltip {
  position: absolute;
  right: 64px;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.75);
  color: #fff;
  font-size: 12px;
  white-space: nowrap;
  padding: 6px 10px;
  border-radius: 6px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  direction: rtl;
}
.snap-wa-btn:hover .snap-wa-tooltip { opacity: 1; }

/* ============================================================
   PRODUCT PAGE — Dimensions & Materials accordions
   ============================================================ */
.snap-product-meta-accordions {
  margin-top: 16px;
  border-top: 1px solid #e0e0e0;
}
.snap-meta-details {
  border-bottom: 1px solid #e0e0e0;
}
.snap-meta-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  font-size: 1.4rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--navy, #0d2545);
  user-select: none;
}
.snap-meta-summary::-webkit-details-marker { display: none; }
.snap-meta-caret {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform 0.25s ease;
  color: var(--navy, #0d2545);
}
.snap-meta-details[open] > .snap-meta-summary .snap-meta-caret {
  transform: rotate(180deg);
}
.snap-meta-content {
  padding: 0 0 14px;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #444;
}

/* ============================================================
   PRODUCT PAGE — Sticky Add-to-Cart bar (mobile only)
   ============================================================ */
.snap-sticky-atc {
  display: none;
}
@media screen and (max-width: 989px) {
  .snap-sticky-atc {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border-top: 1px solid #e0e0e0;
    padding: 12px 16px;
    transform: translateY(100%);
    transition: transform 0.3s ease;
    /* hidden by default, shown via JS class */
  }
  .snap-sticky-atc.snap-sticky-atc--visible {
    transform: translateY(0);
  }
  .snap-sticky-atc__info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
  }
  .snap-sticky-atc__title {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--navy, #0d2545);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .snap-sticky-atc__price {
    font-size: 1.3rem;
    color: #555;
  }
  .snap-sticky-atc__btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    font-size: 1.3rem;
    font-weight: 700;
    white-space: nowrap;
    background: var(--black, #0a0a0f) !important;
    border-color: var(--black, #0a0a0f) !important;
    color: #fff !important;
    border-radius: var(--r-sm) !important;
    transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease !important;
  }
  .snap-sticky-atc__btn:not(:disabled):hover {
    background: #222 !important;
    transform: translateY(-1px) !important;
    box-shadow: var(--shadow-md) !important;
  }
  .snap-sticky-atc__btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
  }
}

/* ============================================================
   PRODUCT — enforce consistent image aspect ratio
   ============================================================ */
.product__media img,
.product-media-container img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.card__media img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

/* ============================================================
   CART — COD badge & trust line
   ============================================================ */
.snap-cart-trust {
  margin-bottom: 16px;
  text-align: center;
}
.snap-cart-payment-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.snap-cart-pay-icon {
  width: 38px;
  height: 24px;
  border-radius: 4px;
  flex-shrink: 0;
}
.snap-cart-cod-badge {
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #444;
  background: #fafafa;
  letter-spacing: 0.02em;
}
.snap-cart-secure-line {
  font-size: 12px;
  color: #666;
  margin: 0;
}

/* ============================================================
   COLLECTION SEARCH BAR — aligned with filter/sort controls
   ============================================================ */

/* Give the facets wrapper a positioning context */
.snap-facets-wrapper {
  position: relative;
}

/* Desktop: float search to the far right of the filter bar */
@media screen and (min-width: 750px) {
  .snap-collection-search--bar {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    z-index: 2;
  }
}

/* Mobile: full-width pill below the filter controls */
@media screen and (max-width: 749px) {
  .snap-collection-search--bar {
    position: static;
    width: 100%;
    justify-content: center;
    margin-top: 10px;
    border-radius: var(--r-full);
  }
  .snap-collection-search--bar.snap-search--open {
    width: 100%;
  }
}

/* Standalone search (no filters/sort enabled) */
.snap-collection-search-standalone {
  display: flex;
  justify-content: flex-end;
  padding: 12px 0 4px;
}

/* Space between filter/search area and product grid */
#ProductGridContainer {
  margin-top: 2.4rem;
}

/* Mobile: People Also Like → horizontal swipe carousel */
@media screen and (max-width: 749px) {
  .related-products .product-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 1.2rem !important;
    padding: 0 1.5rem 1.6rem !important;
    max-width: none !important;
    margin: 0 !important;
    grid-template-columns: unset !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }
  .related-products .product-grid::-webkit-scrollbar {
    display: none;
  }
  .related-products .product-grid .grid__item {
    flex: 0 0 78% !important;
    width: 78% !important;
    max-width: 78% !important;
    scroll-snap-align: start;
    margin: 0 !important;
  }
}

/* ── Policy & page bottom spacing on mobile ────────────────────────── */
@media screen and (max-width: 749px) {
  .template-page .page-width--narrow,
  .template-policies .page-width--narrow {
    padding-bottom: 64px;
  }
}

/* ── Radio-style single-select for Availability filter ─────────────── */

/* Show native radio button; hide the custom square + checkmark SVGs */
.facets__label:has(input[type="radio"]) > svg,
.facets__label:has(input[type="radio"]) > .svg-wrapper,
.mobile-facets__label:has(input[type="radio"]) > svg,
.mobile-facets__label:has(input[type="radio"]) > .svg-wrapper {
  display: none !important;
}

.facets__label:has(input[type="radio"]),
.mobile-facets__label:has(input[type="radio"]) {
  gap: 10px;
}

.facets__label input[type="radio"],
.mobile-facets__label input[type="radio"] {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin: 0;
  accent-color: var(--navy);
  cursor: pointer;
}
.facets__summary:hover .facets__summary-label,
.facets__summary:hover span:first-of-type {
  text-decoration: none !important;
}


}

/* ── Notify Me When Available ── */
.notify-me-btn {
  display: flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.8rem !important;
  background: var(--navy) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-full) !important;
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  min-height: 4.5rem !important;
  width: 100% !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
  cursor: pointer !important;
}
.notify-me-btn:hover {
  opacity: 0.88 !important;
  transform: translateY(-1px) !important;
}
.notify-me-btn:disabled {
  opacity: 0.5 !important;
  transform: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
.notify-me-btn.loading {
  opacity: 0.7 !important;
  pointer-events: none !important;
}
.notify-me-btn.loading svg {
  animation: notify-spin 0.8s linear infinite;
}

.notify-me-login {
  display: flex;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.8rem !important;
  width: 100% !important;
  border-radius: var(--r-full) !important;
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  min-height: 4.5rem !important;
  text-decoration: none !important;
}

.notify-me-btn.notify-me-success {
  background: #1a7a45 !important;
  opacity: 1 !important;
  cursor: default !important;
  pointer-events: none !important;
  transform: none !important;
}
.notify-me-btn.notify-me-error {
  background: #c0392b !important;
  opacity: 1 !important;
  transition: background 0.2s ease !important;
}

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

/* ── Storage Holder Bundle Add-on ── */
.product-addon {
  margin-top: 1.2rem;
  padding: 1.2rem 1.4rem;
  border: 1px solid rgba(13, 37, 69, 0.2);
  border-radius: 4px;
  background: rgba(13, 37, 69, 0.04);
  transition: border-color 0.2s, background 0.2s;
}
.product-addon:has(.product-addon__checkbox:checked) {
  border-color: #0d2545;
  background: rgba(13, 37, 69, 0.08);
}
.product-addon__label {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  cursor: pointer;
  user-select: none;
}
.product-addon__checkbox {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  cursor: pointer;
  accent-color: #0d2545;
}
.product-addon__info {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
}
.product-addon__image {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.product-addon__text {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.product-addon__name {
  font-size: 1.4rem;
  font-weight: 500;
  color: #0d2545;
}
.product-addon__price {
  font-size: 1.3rem;
  color: #0d2545;
  opacity: 0.7;
}
.product-addon__total {
  margin-top: 0.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(13, 37, 69, 0.15);
  font-size: 1.3rem;
  color: #0d2545;
  text-align: right;
}
.product-addon__total strong {
  font-weight: 600;
}

.product-addon__error {
  margin-top: 0.8rem;
  padding: 0 1.2rem 0.8rem;
  color: rgb(var(--color-error));
  font-size: 1.3rem;
}

.product-addon__swatches {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  padding: 0.4rem 1.2rem 1rem;
}

.product-addon__swatch {
  padding: 0.4rem 1.2rem;
  border: 1.5px solid rgba(var(--color-foreground), 0.3);
  border-radius: 2rem;
  font-size: 1.2rem;
  line-height: 1.4;
  background: transparent;
  cursor: pointer;
  color: rgb(var(--color-foreground));
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.product-addon__swatch:hover:not(:disabled) {
  border-color: rgb(var(--color-foreground));
}

.product-addon__swatch--active {
  border-color: rgb(var(--color-foreground));
  background: rgb(var(--color-foreground));
  color: rgb(var(--color-background));
}

.product-addon__swatch--oos {
  opacity: 0.35;
  cursor: not-allowed;
  text-decoration: line-through;
}

/* ── data-sold-out visibility control ── */
/* Hide Add to Cart + Buy it now when sold out */
.product-form__buttons[data-sold-out="true"] .product-form__submit:not(.notify-me-btn):not(.notify-me-login),
.product-form__buttons[data-sold-out="true"] [id^="payment-btn-"] {
  display: none !important;
}
/* Hide notify buttons when in stock */
.product-form__buttons[data-sold-out="false"] .notify-me-btn,
.product-form__buttons[data-sold-out="false"] .notify-me-login {
  display: none !important;
}

/* ── Cart drawer: bundle add-on inline inside parent row ─────── */
.cart-item__addon-inline {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 0.8rem;
  padding: 0.6rem 0.8rem;
  border: 1px solid rgba(212, 149, 106, 0.35);
  border-radius: 4px;
  background: rgba(212, 149, 106, 0.06);
}
.cart-item__addon-inline-img {
  width: 3.6rem;
  height: 3.6rem;
  object-fit: cover;
  border-radius: 3px;
  flex-shrink: 0;
}
.cart-item__addon-inline-info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.cart-item__addon-inline-name {
  font-size: 1.2rem;
  font-weight: 500;
  color: #0d2545;
  line-height: 1.3;
}
.cart-item__addon-inline-color {
  font-size: 1.1rem;
  color: #0d2545;
  opacity: 0.7;
}
.cart-item__addon-inline-price {
  font-size: 1.1rem;
  color: #0d2545;
  opacity: 0.65;
}

/* ── /collections/all — grouped carousel layout ─────────────────────── */
.snap-all-collections {
  display: flex;
  flex-direction: column;
  gap: 5.6rem;
}
.snap-col-group { overflow: hidden; }
.snap-col-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
}
.snap-col-group__title {
  font-family: var(--font-display);
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--navy, #0d2545);
  letter-spacing: 0.01em;
  margin: 0;
}
.snap-col-group__view-all {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--navy, #0d2545);
  text-decoration: none;
  white-space: nowrap;
  opacity: 0.7;
  transition: opacity 0.2s ease, gap 0.2s ease;
}
.snap-col-group__view-all:hover {
  opacity: 1;
  gap: 10px;
}
/* Zero out Dawn's first-slide indent so carousel starts flush with the title */
.snap-all-collections slider-component {
  --desktop-margin-left-first-item: 0rem;
  position: relative; /* anchor for .snap-view-all-overlay */
  display: block;
}
.snap-all-collections .slider--desktop .slider__slide:first-child,
.snap-all-collections .slider--tablet .slider__slide:first-child {
  margin-left: 0 !important;
  scroll-margin-left: 0 !important;
}
.snap-all-collections .slider--desktop,
.snap-all-collections .slider--tablet {
  scroll-padding-left: 0 !important;
  margin-bottom: 0 !important;
  overflow-y: clip !important;
  overscroll-behavior-x: contain;
  touch-action: pan-x;
}
/* Narrow cards slightly so the next card peeks at the right edge */
@media screen and (min-width: 990px) {
  .snap-all-collections .slider--desktop.grid--3-col-desktop .grid__item {
    width: calc(100% / 3.4) !important;
    max-width: calc(100% / 3.4) !important;
  }
}
@media screen and (min-width: 750px) and (max-width: 989px) {
  .snap-all-collections .grid--2-col-tablet-down .grid__item {
    width: calc(100% / 2.2) !important;
    max-width: calc(100% / 2.2) !important;
  }
}
@media screen and (max-width: 749px) {
  .snap-all-collections .grid--2-col-tablet-down .grid__item {
    width: 78% !important;
    max-width: 78% !important;
    flex-shrink: 0;
  }
  /* Ensure horizontal scroll is active and items don't wrap */
  .snap-all-collections .slider--tablet {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* ── Collections filter dropdown ────────────────────────────────────── */
.snap-col-link {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  width: 100%;
  padding: 0.5rem 0;
  text-decoration: none;
  color: inherit;
  font-size: 1.4rem;
  transition: color 0.15s ease;
  cursor: pointer;
}
.snap-col-link:hover { color: var(--navy, #0d2545); }
.snap-col-link--active { font-weight: 600; color: var(--navy, #0d2545); }
.snap-col-link--active::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--navy, #0d2545);
  flex-shrink: 0;
}
.snap-col-link .facets__count {
  margin-left: auto;
  font-size: 1.2rem;
  opacity: 0.6;
}
.snap-col-no-results {
  grid-column: 1 / -1 !important;
  display: flex !important;
  justify-content: center;
  align-items: center;
  padding: 6rem 2rem;
  font-size: 1.4rem;
  color: var(--gray-500, #888);
  text-align: center;
}

/* Slider bar indicators — desktop only, only on multi-page carousels */
.snap-slider-bars {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 14px 0 4px;
  --bar-inactive: 100px;
  --bar-active: 280px;
}
.snap-slider-bar {
  display: block;
  height: 3px;
  width: var(--bar-inactive);
  border-radius: 2px;
  background: rgba(var(--color-foreground), 0.18);
  transition: background 0.25s ease, width 0.25s ease;
  flex-shrink: 0;
}
.snap-slider-bar--active {
  background: rgb(var(--color-foreground));
  width: var(--bar-active);
}
@media screen and (max-width: 749px) {
  .snap-slider-bars { display: none; }
}

/* Explore-more badge — injected by JS into slider-component, floats above the slide row */
.snap-explore-more {
  position: absolute;
  top: 0;
  right: 10px;
  transform: translateY(calc(-100% - 6px));
  z-index: 10;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  background: transparent;
  color: var(--navy, #0d2545);
  font-size: 1.2rem;
  font-weight: 600;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, gap 0.2s ease;
}
.snap-explore-more--visible {
  opacity: 1;
  pointer-events: auto;
}
.snap-explore-more:hover {
  gap: 8px;
}
.snap-explore-more__icon {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  opacity: 0.6;
}

/* ── Cart Drawer Recommendations ── */
.cart-recs {
  padding: 14px 16px 12px;
  border-bottom: 1px solid #ebebeb;
}
.cart-recs[hidden] { display: none; }

.cart-recs__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #888;
  margin: 0 0 10px;
}

.cart-recs__track {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 2px;
}
.cart-recs__track::-webkit-scrollbar { display: none; }

/* Individual card */
.cart-rec-card {
  flex: 0 0 126px;
  width: 126px;
  scroll-snap-align: start;
  border: 1px solid #e4e4e4;
  border-radius: 9px;
  overflow: hidden;
  background: #fff;
  display: flex;
  flex-direction: column;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.cart-rec-card--done {
  opacity: 0.4;
  transform: scale(0.97);
  pointer-events: none;
}

.cart-rec-card__img-wrap {
  display: block;
  background: #f5f5f5;
  line-height: 0;
}
.cart-rec-card__img {
  width: 100%;
  height: 88px;
  object-fit: cover;
  display: block;
}

.cart-rec-card__body {
  padding: 7px 8px 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.cart-rec-card__title {
  font-size: 11px;
  font-weight: 500;
  color: #1a1a1a;
  text-decoration: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.35;
}
.cart-rec-card__title:hover { color: var(--navy, #0d2545); }

.cart-rec-card__meta {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.cart-rec-card__price {
  font-size: 11px;
  font-weight: 700;
  color: #1a1a1a;
}
.cart-rec-card__sold {
  font-size: 9.5px;
  color: #888;
  white-space: nowrap;
}

/* Variant options (swatch row / pill row) */
.cart-rec-card__options {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 1px;
}
.cart-rec-option {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

/* Color swatches */
.cart-rec-swatch {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid transparent;
  outline: 2px solid transparent;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: outline-color 0.15s ease;
}
.cart-rec-swatch--active,
.cart-rec-swatch:hover {
  outline-color: #0d2545;
  outline-offset: 1px;
}

/* Size / other option pills */
.cart-rec-pill {
  font-size: 9.5px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid #d0d0d0;
  background: #fff;
  color: #333;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s, background 0.15s;
  line-height: 1.4;
}
.cart-rec-pill--active,
.cart-rec-pill:hover {
  border-color: #0d2545;
  background: #0d2545;
  color: #fff;
}

/* Add button */
.cart-rec-card__add {
  margin-top: auto;
  width: 100%;
  padding: 5px 6px;
  background: #0d2545;
  color: #fff;
  font-size: 10.5px;
  font-weight: 700;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  transition: background 0.2s, opacity 0.2s;
  white-space: nowrap;
}
.cart-rec-card__add:hover:not(:disabled) { background: #1a3a6c; }
.cart-rec-card__add:disabled {
  background: #c8c8c8;
  cursor: not-allowed;
}
.cart-rec-card__add--done { background: #2a7a2a; }

/* Loading spinner inside add button */
.cart-rec-card__spinner {
  display: inline-block;
  width: 11px;
  height: 11px;
  border: 2px solid rgba(255,255,255,0.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: cart-rec-spin 0.6s linear infinite;
}
@keyframes cart-rec-spin { to { transform: rotate(360deg); } }

/* ── Product carousel: prev/next arrows (all viewports) ──
   The arrow <button>s are injected by initSliderBars() in snap-custom.js
   (the same controller that draws .snap-slider-bars and hides the stock
   .slider-buttons). They are appended to <slider-component>, so we position
   them relative to it. Shown on every multi-page carousel; sized down on
   smaller screens so they stay unobtrusive over the cards. */
slider-component.snap-has-arrows { position: relative; }

.snap-slider-arrow {
  position: absolute;
  top: 42%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--white, #fff);
  color: var(--navy, #0d2545);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, opacity 0.2s ease;
}
.snap-slider-arrow svg {
  width: 20px;
  height: 20px;
  pointer-events: none;
}
.snap-slider-arrow--prev { left: 8px; }
.snap-slider-arrow--next { right: 8px; }

.snap-slider-arrow:hover {
  background: var(--navy, #0d2545);
  color: var(--white, #fff);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.22);
}

/* Fade out the arrow once that direction has nothing left to scroll */
.snap-slider-arrow:disabled {
  opacity: 0;
  pointer-events: none;
}

/* The floating scroll hint is redundant now that arrows are always present */
.snap-slider-wrapper .snap-scroll-hint { display: none; }

/* Tablet & mobile: keep arrows visible but compact so they don't crowd cards */
@media screen and (max-width: 989px) {
  .snap-slider-arrow {
    width: 32px;
    height: 32px;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.18);
  }
  .snap-slider-arrow svg {
    width: 15px;
    height: 15px;
  }
  .snap-slider-arrow--prev { left: 4px; }
  .snap-slider-arrow--next { right: 4px; }
}
