/*
 * Luxury-JHenMedia — full-site PrestaShop storefront skin
 * Developer: JHenMedia
 */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap");

:root {
  /* One content lane for every page — keep heroes/chrome outside this */
  --max: 1280px;
  --rb-max: 1280px;
  --rb-gutter: clamp(1.25rem, 4vw, 2rem);
  --rb-section-y: clamp(2.75rem, 5vw, 4.5rem);
  --rb-radius: 0;
  --rb-transition: 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  --rb-nav-bp: 1100px;
}

/* —— Global shell (mobile-first) —— */
html {
  scroll-behavior: smooth;
  width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  color: var(--text, #1a1a1a) !important;
  background: var(--cream, #f8f5f0) !important;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Page chrome is always edge-to-edge */
#header,
#wrapper,
#footer,
#content-wrapper,
#wrapper > .container,
#wrapper > .container-fluid,
#footer > .container,
.breadcrumb .container {
  max-width: none !important;
  width: 100% !important;
  box-shadow: none !important;
  background: transparent !important;
}

#wrapper {
  padding: 0 !important;
  margin: 0 !important;
}

#wrapper > .container,
#wrapper > .container-fluid {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

#content-wrapper,
#content-wrapper.col-md-12,
#content-wrapper.col-xs-12,
#wrapper .row {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  flex: 0 0 100% !important;
}

/*
 * Layout system
 * 1) Full-bleed: heroes, header, footer, section backgrounds
 * 2) Content lane: same max-width + gutters on every page
 */
.rb-bleed,
.rb-hero,
.hero,
.rb-category-hero,
.category-hero,
.rb-contact-hero,
.contact-hero,
.rb-product-hero,
.rb-announce,
.rb-header,
.site-header,
.rb-footer,
.site-footer,
.rb-collection,
.rb-commitment,
.rb-home-alerts,
.featured-products,
body#product .product-accessories.rb-related,
body#product .rb-related {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* Shared content container — use this width everywhere */
.rb-container,
.rb-lane,
.header-inner,
.section-inner,
.hero-inner,
.category-hero-inner,
.rb-home-alerts-inner,
.rb-catalog-main,
.rb-pdp-inner,
.footer-top,
.footer-bottom,
body#product .tabs.rb-pdp-tabs,
body#product .rb-pdp-tabs,
body#checkout .checkout-container,
body#contact .page-content {
  width: 100%;
  max-width: var(--rb-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rb-gutter);
  padding-right: var(--rb-gutter);
  box-sizing: border-box;
}

/* Default #main is full-bleed (home / PDP shell / pages with heroes) */
#main {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

/* When #main itself is the content lane */
#main.rb-catalog-main,
body#cms #main,
body#my-account #main,
body#identity #main,
body#address #main,
body#addresses #main,
body#history #main,
body#order-slip #main,
body#order-follow #main,
body#discount #main,
body#module-ps_emailalerts-account #main,
body#authentication #main,
body#registration #main,
body#password #main,
body#guest-tracking #main,
body#stores #main,
body#sitemap #main,
body#cart #main,
body#cart .rb-cart-page {
  width: 100% !important;
  max-width: var(--rb-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--rb-gutter) !important;
  padding-right: var(--rb-gutter) !important;
  box-sizing: border-box;
}

/* PDP keeps #main full-bleed; .rb-pdp-inner is the lane */
#main.rb-pdp,
body#product #main {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Nested Bootstrap containers inherit the same lane (no double-narrowing) */
body .container:not(#wrapper > .container),
body .container-fluid:not(#wrapper > .container-fluid) {
  max-width: var(--rb-max);
  width: 100%;
  padding-left: var(--rb-gutter);
  padding-right: var(--rb-gutter);
  box-sizing: border-box;
}

h1, h2, h3, .h1, .h2, .h3,
.page-header h1,
.product-title {
  font-family: var(--font-display, "Playfair Display", Georgia, serif) !important;
  font-weight: 500;
  letter-spacing: 0.04em;
}

a {
  transition: color var(--rb-transition);
}

a:hover {
  color: var(--gold-dim, #a88845);
}

/* —— Forms / buttons fluid —— */
.btn,
button.btn,
input.btn,
.btn-primary,
.btn-secondary,
.btn-tertiary,
.add-to-cart,
.search-widget form button,
.product-add-to-cart .add {
  border-radius: var(--rb-radius) !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
  font-size: 0.72rem;
  min-height: 48px;
  transition: background var(--rb-transition), border-color var(--rb-transition),
    color var(--rb-transition), opacity var(--rb-transition), transform var(--rb-transition);
}

.btn-primary,
.add-to-cart,
.product-add-to-cart .add-to-cart,
#search_widget button,
.cart-detailed-actions .btn-primary,
.checkout .btn-primary,
.continue.btn-primary {
  background: var(--gold, #c5a059) !important;
  border-color: var(--gold, #c5a059) !important;
  color: #000 !important;
}

.btn-primary:hover,
.add-to-cart:hover {
  background: var(--gold-bright, #d4b36e) !important;
  border-color: var(--gold-bright, #d4b36e) !important;
  color: #000 !important;
}

.btn-secondary,
.btn-tertiary,
.btn-outline {
  background: transparent !important;
  border: 1px solid var(--gold, #c5a059) !important;
  color: var(--gold, #c5a059) !important;
}

input.form-control,
select.form-control,
textarea.form-control,
.input-group .form-control,
.product-variants select,
#quantity_wanted {
  border-radius: var(--rb-radius) !important;
  border-color: rgba(0, 0, 0, 0.18) !important;
  min-height: 48px;
  background: #fff;
}

/* —— Header (mobile-first) —— */
#header {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  z-index: 100;
  width: 100% !important;
}

#header .header-banner,
.rb-announce {
  width: 100%;
  background: linear-gradient(90deg, #b8924a 0%, #e5d5b8 45%, #c5a059 100%);
  color: #000;
}

#header .header-nav,
#header .header-top,
.rb-header,
.site-header {
  width: 100%;
  background: var(--black, #000) !important;
  color: #fff;
}

.rb-header .header-inner,
.site-header .header-inner {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 0.5rem 0.75rem;
  min-height: 52px;
  padding:
    max(0.35rem, env(safe-area-inset-top, 0px))
    max(0.75rem, env(safe-area-inset-right, 0px))
    0.35rem
    max(0.75rem, env(safe-area-inset-left, 0px));
  box-sizing: border-box;
}

.rb-header .logo {
  justify-self: start;
  line-height: 0;
}

.rb-header .header-actions {
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 0.2rem;
}

.rb-header .header-utils {
  display: flex;
  align-items: center;
  gap: 0.15rem;
}

.rb-header .logo img,
#header .logo img {
  max-height: 34px;
  width: auto;
  display: block;
}

/* Hamburger default (mobile app bar) */
.rb-header .nav-toggle,
.site-header .nav-toggle {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(197, 160, 89, 0.65);
  background: transparent;
  color: var(--gold, #c5a059);
  cursor: pointer;
  line-height: 1;
  flex: 0 0 40px;
}

.rb-header .nav-toggle-bars,
.site-header .nav-toggle-bars {
  display: block;
  width: 16px;
  height: 2px;
  background: currentColor;
  box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

body.rb-nav-open .rb-header .nav-toggle-bars {
  height: 2px;
  box-shadow: none;
  transform: rotate(45deg);
}

body.rb-nav-open .rb-header .nav-toggle-bars::after {
  content: "";
  display: block;
  width: 16px;
  height: 2px;
  background: currentColor;
  transform: rotate(-90deg);
}

/* Mobile drawer — off-canvas from the right (hamburger sits right) */
.rb-nav.nav-main {
  display: flex !important;
  position: fixed;
  top: 0;
  right: 0;
  left: auto;
  bottom: 0;
  width: min(86vw, 300px);
  z-index: 140;
  flex-direction: column;
  align-items: stretch;
  gap: 0.15rem;
  padding:
    calc(env(safe-area-inset-top, 0px) + 4.75rem)
    1.15rem
    max(1.5rem, env(safe-area-inset-bottom, 0px));
  background: #0a0a0a;
  border-left: 1px solid rgba(197, 160, 89, 0.28);
  border-right: 0;
  box-shadow: -18px 0 40px rgba(0, 0, 0, 0.45);
  transform: translateX(105%);
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.28s;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.rb-nav.nav-main.is-open {
  transform: translateX(0);
  visibility: visible;
  pointer-events: auto;
}

.rb-nav-drawer-title {
  display: block;
  margin: 0 0 0.85rem;
  font-family: var(--font-ui) !important;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
}

.rb-nav-backdrop {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 130;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  cursor: pointer;
}

.rb-nav-backdrop.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.rb-nav-open {
  overflow: hidden;
  touch-action: none;
}

.rb-header {
  position: sticky;
  top: 0;
  z-index: 150;
}

.rb-header .header-inner {
  position: relative;
  z-index: 151;
}

/* Flatten Classic ps_mainmenu — ignore hidden-sm-down inside our nav */
.rb-nav #_desktop_top_menu,
.rb-nav .menu.js-top-menu,
.rb-nav .menu.hidden-sm-down,
.rb-nav .hidden-sm-down {
  display: block !important;
  position: static !important;
  width: 100% !important;
  float: none !important;
  background: transparent !important;
}

.rb-nav .top-menu,
.rb-nav ul.top-menu {
  display: flex !important;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.15rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  width: 100%;
  background: transparent !important;
}

.rb-nav .top-menu > li {
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.rb-nav .top-menu > li > a,
.rb-nav .top-menu .dropdown-item,
.rb-nav a.dropdown-item {
  display: block !important;
  width: 100%;
  padding: 0.7rem 0 !important;
  color: #fff !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  white-space: nowrap;
  background: transparent !important;
  border: 0 !important;
}

.rb-nav .top-menu > li > a:hover,
.rb-nav .top-menu .dropdown-item:hover {
  color: var(--gold, #c5a059) !important;
}

/* Hide deep popovers on mobile drawer; keep top-level only */
.rb-nav .top-menu .popover,
.rb-nav .top-menu .submenu,
.rb-nav .top-menu ul[data-depth],
.rb-nav .top-menu .collapse,
#_mobile_top_menu {
  display: none !important;
}

#header .header-nav .material-icons,
#header .blockcart .header,
#_desktop_cart,
#_desktop_user_info,
#_desktop_search_widget,
.rb-header .header-utils,
.rb-header .header-utils a {
  color: var(--gold, #c5a059) !important;
}

/* Desktop: one-row nav */
@media (min-width: 1100px) {
  .rb-header .nav-toggle,
  .site-header .nav-toggle {
    display: none !important;
  }

  .rb-header .header-inner,
  .site-header .header-inner {
    grid-template-columns: auto 1fr auto;
    gap: 1rem 1.25rem;
    min-height: 72px;
  }

  .rb-header .logo img,
  #header .logo img {
    max-height: 48px;
  }

  .rb-header .logo,
  .rb-header .logo.logo-img {
    order: 1;
  }

  .rb-nav.nav-main {
    order: 2;
    display: flex !important;
    position: static;
    width: auto;
    height: auto;
    right: auto;
    left: auto;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-left: 0;
    border-right: 0;
    background: transparent;
    box-shadow: none;
    transform: none;
    visibility: visible;
    pointer-events: auto;
    overflow: visible;
    transition: none;
  }

  .rb-header .header-actions {
    order: 3;
    gap: 0.85rem;
  }

  .rb-header .header-utils {
    gap: 0.85rem;
  }

  .rb-nav-drawer-title,
  .rb-nav-backdrop {
    display: none !important;
  }

  .rb-nav #_desktop_top_menu,
  .rb-nav .menu.js-top-menu {
    width: auto !important;
  }

  .rb-nav .top-menu,
  .rb-nav ul.top-menu {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center;
    justify-content: center;
    gap: 0 clamp(0.85rem, 1.6vw, 1.65rem);
    width: auto;
  }

  .rb-nav .top-menu > li {
    width: auto;
    flex: 0 0 auto;
  }

  .rb-nav .top-menu > li > a,
  .rb-nav .top-menu .dropdown-item {
    width: auto;
    padding: 0.4rem 0.15rem !important;
    font-size: clamp(0.6rem, 0.7vw, 0.68rem) !important;
    letter-spacing: 0.12em !important;
  }
}

/* —— Header search: icon only, expands on click —— */
.rb-header .header-utils {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  position: relative;
}

.rb-header #search_widget,
.rb-header .search-widget,
.rb-header .search-widgets {
  position: relative;
  display: flex;
  align-items: center;
  margin: 0 !important;
  flex: 0 0 auto;
}

.rb-header #search_widget form,
.rb-header .search-widgets form {
  display: flex;
  align-items: center;
  margin: 0;
  position: relative;
}

.rb-header #search_widget input[type="text"],
.rb-header .search-widgets input[type="text"] {
  width: 0;
  min-width: 0;
  max-width: 0;
  opacity: 0;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  outline: none;
  overflow: hidden;
  pointer-events: none;
  transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    max-width 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.25s ease,
    padding 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.25s ease;
}

.rb-header #search_widget .material-icons.search,
.rb-header .search-widgets .material-icons.search {
  cursor: pointer;
  font-size: 22px !important;
  color: var(--gold, #c5a059) !important;
  line-height: 1;
  z-index: 2;
}

.rb-header #search_widget .material-icons.clear,
.rb-header .search-widgets .material-icons.clear {
  display: none;
  position: absolute;
  right: 0.35rem;
  cursor: pointer;
  font-size: 18px !important;
  color: rgba(255, 255, 255, 0.65) !important;
}

.rb-header #search_widget.is-open input[type="text"],
.rb-header .search-widgets.is-open input[type="text"],
.rb-header.rb-search-open #search_widget input[type="text"] {
  width: min(42vw, 220px);
  max-width: 220px;
  opacity: 1;
  pointer-events: auto;
  padding: 0.45rem 1.75rem 0.45rem 0.65rem;
  margin-left: 0.35rem;
  border-bottom: 1px solid rgba(197, 160, 89, 0.55);
  background: transparent;
}

.rb-header #search_widget.is-open .material-icons.clear,
.rb-header .search-widgets.is-open .material-icons.clear {
  display: inline-block;
}

/* Never leave a full search field sitting in the nav row */
.rb-nav #search_widget,
.rb-nav .search-widget,
.rb-nav .search-widgets {
  display: none !important;
}

.rb-header #_desktop_user_info .hidden-sm-down,
.rb-header #_desktop_cart .hidden-sm-down {
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-left: 0.25rem;
}

/* —— Breadcrumb — full-bleed bar, content lane aligned —— */
#wrapper > .breadcrumb,
#wrapper .breadcrumb,
.rb-breadcrumb-bar {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 1.25rem 0 1rem !important;
  box-sizing: border-box;
  background: transparent !important;
  border: 0 !important;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: var(--text-muted, #5a5a5a);
}

/* Nested breadcrumb inside our bar shouldn't double the padding */
.rb-breadcrumb-bar .breadcrumb {
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
}

#wrapper > .breadcrumb ol,
#wrapper .breadcrumb ol,
.rb-breadcrumb-bar .breadcrumb ol,
.breadcrumb ol {
  max-width: var(--rb-max);
  width: 100%;
  margin: 0 auto !important;
  padding: 0 var(--rb-gutter) !important;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  list-style: none;
  box-sizing: border-box;
}

.rb-breadcrumb-bar .breadcrumb a:hover,
#wrapper .breadcrumb a:hover {
  color: var(--gold-dim, #a8843f);
}

/* —— Category / catalog —— */
.rb-category-hero,
.category-hero {
  position: relative;
  width: 100%;
  min-height: clamp(200px, 28vw, 300px);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  overflow: hidden;
  background: #000;
  margin: 0;
}

.rb-category-hero .category-hero-bg,
.category-hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.55)),
    url("../img/scenes/rock-bg.png") center / cover no-repeat;
}

.rb-category-hero .category-hero-inner,
.category-hero-inner {
  position: relative;
  z-index: 1;
  padding-top: clamp(2rem, 4vw, 3.5rem);
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

.rb-category-hero h1,
.rb-category-hero h2,
.category-hero h1 {
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 4rem);
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.rb-category-hero p,
.rb-category-hero .rb-category-sub {
  margin: 0.75rem auto 0;
  font-size: 0.9rem;
  letter-spacing: 0.04em;
  text-transform: none;
  text-align: center;
  color: rgba(255, 255, 255, 0.85);
  font-family: var(--font-ui) !important;
  font-weight: 400;
  line-height: 1.5;
  max-width: 48rem;
}

#js-product-list-header:not(.sr-only),
.block-category {
  max-width: none;
  margin: 0;
  padding: 1.5rem 0 0;
}

#js-product-list-header .block-category h1 {
  font-size: clamp(1.75rem, 3vw, 2.4rem);
}

/* Subcategory menu (Home / parent categories) — text row, no empty image frames */
.rb-subcategories,
#subcategories.rb-subcategories {
  max-width: none;
  margin: 0 0 1.25rem;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.rb-subcategories-label {
  margin: 0 0 0.65rem;
  font-family: var(--font-ui) !important;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-muted, #5a5a5a);
}

.rb-subcategories-list,
#subcategories .rb-subcategories-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.65rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.rb-subcategories-list > li {
  margin: 0;
  padding: 0;
  width: auto;
  float: none;
  text-align: left;
}

.rb-subcategory-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.5rem;
  padding: 0.45rem 0.95rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #fff;
  color: var(--text, #1a1a1a) !important;
  font-family: var(--font-ui) !important;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}

.rb-subcategory-link:hover,
.rb-subcategory-link:focus {
  border-color: var(--gold, #c5a059);
  color: var(--gold-dim, #a88845) !important;
  background: #fff;
  outline: none;
}

.rb-subcategory-thumb {
  display: inline-flex;
  width: 1.5rem;
  height: 1.5rem;
  overflow: hidden;
  background: #f3f1ec;
  flex: 0 0 1.5rem;
}

.rb-subcategory-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rb-subcategory-name {
  line-height: 1.2;
}

/* Catalog: full-width product grid (inherits .rb-container lane; no facets) */
.rb-catalog-main {
  padding-top: 0.5rem;
  padding-bottom: var(--rb-section-y, 3rem);
}

.rb-catalog-layout {
  display: block;
  margin-top: 1rem;
  width: 100%;
}

.rb-catalog-products {
  min-width: 0;
  width: 100%;
}

/* Hide leftover faceted-search / review chrome if modules still partially render */
#search_filters,
#search_filters_wrapper,
.rb-facets,
.rb-active-filters,
.js-search-filters-clear-all,
#_desktop_search_filters_clear_all,
#_mobile_search_filters_clear_all,
#search_filter_toggler,
.filter-button,
.facet,
.product-list-reviews,
.comments-note,
.product-comments,
#product-comments-list-header,
#product-comments-list,
.product-comment-modal,
.btn-comment,
.product-comment-list-item,
[id^="extra-"].product-comments {
  display: none !important;
}

/* Standalone listing wrappers (home / accessories). Inside .rb-catalog-main
   padding/max-width already apply — do not double-constrain the grid. */
#products,
#js-product-list,
.product-accessories,
.products-selection {
  box-sizing: border-box;
}

.featured-products #products,
.featured-products,
.product-accessories {
  max-width: var(--rb-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rb-gutter);
  padding-right: var(--rb-gutter);
}

.rb-catalog-main #products,
.rb-catalog-main #js-product-list,
.rb-catalog-main .products-selection {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  width: 100%;
}

.products-selection {
  padding-top: 1rem;
  padding-bottom: 1rem;
  border: 0;
}

#products .products,
.featured-products .products,
.product-accessories .products,
#js-product-list .products {
  display: grid !important;
  grid-template-columns: repeat(var(--rb-cols, 4), minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  margin: 0 0 var(--rb-section-y);
}

#products .products > .js-product,
.featured-products .products > .js-product,
.product-accessories .products > .js-product,
.products > .product {
  width: 100%;
  min-width: 0;
  margin: 0;
  float: none;
}

.product-miniature,
article.product-miniature {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.04);
  padding: 1.15rem;
  text-align: center;
  transition: transform var(--rb-transition), box-shadow var(--rb-transition);
}

.product-miniature:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
}

/* Square media frame — absolute fill so Classic flex/max-width rules can’t
   collapse the <a>/<img> on resize and leave grey letterboxing. */
.product-miniature .thumbnail-container,
.product-miniature .thumbnail-container.product-card-media,
.product-card-media {
  position: relative !important;
  display: block !important;
  width: 100%;
  aspect-ratio: 1 / 1;
  background: #f3f1ec;
  margin-bottom: 1rem;
  overflow: hidden;
  align-items: unset;
  justify-content: unset;
}

.product-miniature .thumbnail-top,
.product-miniature .thumbnail-container .product-thumbnail,
.product-miniature .thumbnail-container a.thumbnail {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.product-miniature .thumbnail-container img,
.product-miniature .product-thumbnail img,
.product-card-media img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transition: transform 0.5s var(--ease, ease);
}

.product-miniature:hover .thumbnail-container img {
  transform: scale(1.04);
}

.product-miniature .product-title,
.product-card h3 {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em;
  margin: 0 !important;
  color: var(--text, #1a1a1a) !important;
}

/* Titles stay ink — not link/price red (readability on cards) */
.product-miniature .product-title a,
.product-miniature .product-title a:link,
.product-miniature .product-title a:visited,
.product-card .product-title a,
.product-card .product-title a:link,
.product-card .product-title a:visited {
  color: var(--text, #1a1a1a) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
}

.product-miniature .product-title a:hover,
.product-miniature .product-title a:focus,
.product-card .product-title a:hover,
.product-card .product-title a:focus {
  color: var(--gold-dim, #a88845) !important;
  text-decoration: none !important;
}

.product-miniature .meta {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  color: var(--text-muted, #5a5a5a);
  font-family: var(--font-ui) !important;
}

.product-miniature .product-price-and-shipping,
.product-card .price {
  margin: 0.55rem 0 1rem;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.9rem;
  font-weight: 600;
}

/* Prices: only accent red on cards / PDP / cart (titles & CTAs stay dark) */
.product-miniature .price,
.product-card .price,
.product-price-and-shipping .price,
body#product .current-price,
body#product .current-price .price,
body#product .current-price-value,
body#product .product-price,
body#product .product-price .current-price-value,
body#product .product-prices .current-price,
body#product .product-prices .price,
.modal.quickview .current-price,
.modal.quickview .current-price-value,
.modal.quickview .price,
div[id^="quickview-modal"] .current-price,
div[id^="quickview-modal"] .price,
body#cart .product-price,
body#cart .product-price strong,
body#cart .cart-item .price,
#blockcart-modal .product-price,
.cart-summary .product-price,
.product-miniature .prange_module,
.product-miniature .prange_module span,
.product-card .prange_module,
.product-card .prange_module span,
.js-product-miniature .prange_module,
.js-product-miniature .prange_module span {
  color: var(--price, #b3122a) !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
}

/* Card CTA — black on gold; kill link underline/red bleed */
.product-miniature a.btn-gold,
.product-miniature a.btn-gold:link,
.product-miniature a.btn-gold:visited,
.product-miniature a.btn-gold:hover,
.product-miniature a.btn-gold:focus,
.product-card a.btn-gold,
.product-card a.btn-gold:link,
.product-card a.btn-gold:visited,
.product-card a.btn-gold:hover,
.product-card a.btn-gold:focus {
  color: var(--btn-text, #000) !important;
  background: var(--btn-bg, var(--gold, #c5a059)) !important;
  border-color: var(--btn-bg, var(--gold, #c5a059)) !important;
  text-decoration: none !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-weight: 600 !important;
}

.product-miniature a.btn-gold:hover,
.product-miniature a.btn-gold:focus,
.product-card a.btn-gold:hover,
.product-card a.btn-gold:focus {
  background: var(--btn-hover, var(--gold-bright, #d4b36e)) !important;
  border-color: var(--btn-hover, var(--gold-bright, #d4b36e)) !important;
  color: var(--btn-text, #000) !important;
}

.product-miniature .regular-price,
.product-card .regular-price,
body#product .regular-price,
.modal.quickview .regular-price {
  color: var(--text-muted, #5a5a5a) !important;
}

/* Listing cards: show prange range; hide duplicate base .price */
.product-price-and-shipping:has(.prange_module) > .price {
  display: none !important;
}

.product-miniature .prange_module,
.product-card .prange_module,
.js-product-miniature .prange_module {
  display: block !important;
  margin: 0;
  font-family: var(--font-ui) !important;
  font-size: 0.9rem;
  font-weight: 500;
}

/* PDP only: range ABOVE price — smaller muted grey (not red) */
body#product .product-prices.js-product-prices {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

body#product .product-prices > .prange_module {
  order: 1;
  display: block !important;
  margin: 0;
  padding: 0;
  font-family: var(--font-ui) !important;
  font-size: 0.78rem !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--text-muted, #5a5a5a) !important;
}

body#product .product-prices > .prange_module span {
  color: var(--text-muted, #5a5a5a) !important;
  font-size: inherit !important;
  font-weight: inherit !important;
}

body#product .product-prices .current-price-value,
body#product .product-prices .current-price {
  color: var(--price, #b3122a) !important;
}

body#product .product-prices > .product-discount {
  order: 2;
}

body#product .product-prices > .product-price {
  order: 3;
  margin: 0.15rem 0 0 !important;
}

body#product .product-prices > .tax-shipping-delivery-label,
body#product .product-prices > .product-without-taxes,
body#product .product-prices > .product-pack-price,
body#product .product-prices > .price-ecotax {
  order: 4;
}

/* Quick view — show on hover (Classic js-quick-view) */
.product-miniature .highlighted-informations {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.55));
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.product-miniature:hover .highlighted-informations,
.product-miniature:focus-within .highlighted-informations {
  opacity: 1;
  pointer-events: auto;
}

.product-miniature .rb-quick-view,
.product-miniature .quick-view {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.55rem 0.9rem;
  background: var(--gold, #c5a059);
  color: #000 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none !important;
  border: none;
}

.product-miniature .rb-quick-view .material-icons,
.product-miniature .quick-view .material-icons {
  font-size: 1.1rem;
  line-height: 1;
}

/* Wishlist disabled site-wide */
.wishlist-button,
.wishlist-button-add,
.product-miniature .wishlist-button,
.product-miniature .wishlist-button-add,
body#product .wishlist-button,
body#product .wishlist-button-add,
.product-card-wish,
#block-wishlist,
.wishlist,
a[href*="module/blockwishlist"] {
  display: none !important;
}

/* Legacy wishlist heart styles (kept inert while module is disabled) */
.product-miniature .wishlist-button,
.product-miniature .wishlist-button-add {
  position: absolute !important;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 4;
  margin: 0 !important;
}

.product-miniature .wishlist-button-add {
  height: 2.4rem !important;
  width: 2.4rem !important;
  min-width: 2.4rem !important;
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08) !important;
  border-radius: 50% !important;
}

.product-miniature .wishlist-button-add i {
  color: var(--gold, #c5a059) !important;
}

.product-miniature .wishlist-button-add:hover {
  opacity: 1 !important;
  background: var(--cream, #f8f5f0) !important;
}

/* Product image zoom modal — fluid, subtle, with close control */
#product-modal.modal,
.js-product-images-modal.modal {
  padding: 0 !important;
}

#product-modal .modal-dialog,
.js-product-images-modal .modal-dialog {
  max-width: min(720px, 88vw) !important;
  width: auto !important;
  margin: clamp(0.75rem, 3vh, 2rem) auto !important;
}

#product-modal .modal-content,
.js-product-images-modal .modal-content {
  position: relative;
  background: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28);
  overflow: visible;
}

#product-modal .rb-modal-close,
#product-modal .modal-content > .close,
.js-product-images-modal .rb-modal-close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 5;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.92);
  color: #1a1a1a;
  font-size: 1.75rem;
  line-height: 1;
  font-weight: 300;
  opacity: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
  transition: background 0.2s ease, color 0.2s ease;
}

#product-modal .rb-modal-close:hover,
#product-modal .rb-modal-close:focus,
.js-product-images-modal .rb-modal-close:hover {
  background: #1a1a1a;
  color: #fff;
  opacity: 1;
  outline: none;
}

#product-modal .modal-body,
.js-product-images-modal .modal-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  margin-left: 0 !important;
  padding: clamp(0.75rem, 2vw, 1.15rem) !important;
  gap: clamp(0.65rem, 1.5vw, 1rem);
}

#product-modal .rb-modal-figure,
#product-modal figure,
.js-product-images-modal figure {
  width: 100%;
  margin: 0;
  background: #f7f5f1;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

#product-modal .rb-modal-figure picture,
#product-modal figure picture {
  display: contents;
}

#product-modal .product-cover-modal,
#product-modal .js-modal-product-cover,
.js-product-images-modal .product-cover-modal,
.js-product-images-modal .js-modal-product-cover {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: min(70vh, 680px) !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: transparent;
}

#product-modal .image-caption,
.js-product-images-modal .image-caption {
  display: none !important;
}

#product-modal .thumbnails,
#product-modal .js-thumbnails,
.js-product-images-modal .thumbnails {
  width: 100% !important;
  margin: 0 !important;
  position: static !important;
}

#product-modal .js-modal-mask.mask,
#product-modal .mask,
.js-product-images-modal .mask {
  max-height: none !important;
  margin: 0 !important;
  overflow: visible !important;
  width: 100% !important;
}

#product-modal .product-images,
#product-modal .js-modal-product-images,
.js-product-images-modal .product-images {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.4rem;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

#product-modal .product-images .thumb-container,
#product-modal .js-modal-product-images .thumb-container {
  width: clamp(52px, 8vw, 64px) !important;
  flex: 0 0 clamp(52px, 8vw, 64px);
  margin: 0 !important;
}

#product-modal .product-images img,
#product-modal .js-modal-thumb {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1;
  object-fit: cover !important;
  border: 1px solid rgba(0, 0, 0, 0.1);
  cursor: pointer;
  background: #fff;
  opacity: 0.8;
  transition: opacity 0.2s ease, border-color 0.2s ease;
}

#product-modal .product-images img:hover,
#product-modal .js-modal-thumb:hover,
#product-modal .js-thumb-container.selected img {
  opacity: 1;
  border-color: var(--gold, #c5a059);
}

#product-modal .arrows,
.js-product-images-modal .arrows {
  display: none !important;
}

@media (max-width: 700px) {
  #product-modal .modal-dialog,
  .js-product-images-modal .modal-dialog {
    max-width: 94vw !important;
    margin: 0.6rem auto !important;
  }

  #product-modal .rb-modal-figure,
  #product-modal figure {
    aspect-ratio: auto;
    max-height: 68vh;
  }

  #product-modal .product-cover-modal,
  #product-modal .js-modal-product-cover {
    max-height: 68vh !important;
    height: auto !important;
  }

  #product-modal .rb-modal-close {
    top: 0.4rem;
    right: 0.4rem;
    width: 2.25rem;
    height: 2.25rem;
  }
}

/* Classic Quick view modal — product details + add to cart without leaving the page */
.modal.quickview .modal-dialog,
div[id^="quickview-modal"] .modal-dialog {
  max-width: 920px;
}

.modal.quickview .modal-content,
div[id^="quickview-modal"] .modal-content {
  border: none;
  border-radius: 0;
  background: var(--cream, #f8f5f0);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.35);
}

.modal.quickview .modal-header,
div[id^="quickview-modal"] .modal-header {
  border: none;
  padding: 0.75rem 1rem 0;
}

.modal.quickview .modal-body,
div[id^="quickview-modal"] .modal-body {
  padding: 1.25rem 1.5rem 1.5rem;
}

.modal.quickview .modal-body .h1,
div[id^="quickview-modal"] .modal-body .h1 {
  font-family: var(--font-display, Georgia, serif) !important;
  font-size: 2rem !important;
  letter-spacing: 0.04em;
}

.modal.quickview .product-prices,
.modal.quickview #product-description-short,
div[id^="quickview-modal"] .product-prices,
div[id^="quickview-modal"] #product-description-short {
  font-family: var(--font-ui, system-ui, sans-serif);
}

.modal.quickview .product-add-to-cart .btn-primary,
.modal.quickview .add-to-cart,
div[id^="quickview-modal"] .add-to-cart {
  background: var(--gold, #c5a059) !important;
  border-color: var(--gold, #c5a059) !important;
  color: #000 !important;
  border-radius: 0 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.modal.quickview .modal-footer,
div[id^="quickview-modal"] .modal-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  justify-content: flex-start;
}

/* PDP heart next to add-to-cart */
.product-actions .wishlist-button,
.rb-add-to-cart .wishlist-button,
#product .wishlist-button-add {
  vertical-align: middle;
}

#product .wishlist-button-add i {
  color: var(--gold, #c5a059);
}

.product-miniature .product-flags {
  position: absolute;
  top: 0.65rem;
  left: 0.65rem;
  z-index: 2;
}

.pagination {
  margin: 0 auto var(--rb-section-y);
  max-width: var(--rb-max);
  padding: 0 var(--rb-gutter);
}

.pagination .page-list li {
  margin: 0 0.2rem;
}

.pagination .page-list a,
.pagination .page-list span {
  border-radius: 0 !important;
  border-color: rgba(0, 0, 0, 0.12);
}

.pagination .current a {
  background: var(--gold, #c5a059) !important;
  border-color: var(--gold, #c5a059) !important;
  color: #000 !important;
}

/* —— Product page (mockup) —— */
body#product {
  background: var(--cream, #f8f5f0);
}

body#product .rb-product-hero,
body#product .rb-category-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 0;
}

body#product #main.rb-pdp,
body#product #main {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 0 var(--rb-section-y) !important;
  background: transparent !important;
}

body#product .rb-pdp-inner {
  padding-top: 2rem;
  padding-bottom: 1rem;
}

body#product .rb-breadcrumb-bar {
  max-width: none;
  margin: 0;
  padding: 1.25rem 0 1rem;
}

/* Gallery | buybox */
body#product .product-container,
body#product .row.product-container.rb-pdp-main {
  display: grid !important;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
  margin: 0 !important;
  width: 100%;
}

body#product .row.product-container.rb-pdp-main > [class*="col-"] {
  float: none !important;
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 900px) {
  body#product .product-container,
  body#product .row.product-container.rb-pdp-main {
    grid-template-columns: 1fr;
  }
}

/* Thumbs left of cover (mockup gallery) — only when thumbs exist */
body#product .images-container.js-images-container {
  display: block;
  width: 100%;
}

body#product .images-container.js-images-container.rb-has-thumbs {
  display: grid !important;
  grid-template-columns: 72px 1fr;
  gap: 0.85rem;
  align-items: start;
}

body#product .images-container .product-cover {
  margin: 0 !important;
  aspect-ratio: 1;
  background: #f3f1ec;
  border: 1px solid rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

body#product .images-container.rb-has-thumbs .product-cover {
  grid-column: 2;
  grid-row: 1;
}

body#product .images-container .js-qv-mask.mask,
body#product .images-container .mask {
  grid-column: 1;
  grid-row: 1;
  width: 72px !important;
  max-width: 72px !important;
  max-height: min(100%, 36rem) !important;
  margin: 0 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  white-space: normal !important;
  align-self: start;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

/* Scope to on-page gallery only — not #product-modal */
body#product .images-container .product-images.js-qv-product-images {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  gap: 0.65rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  width: 72px;
  height: auto !important;
  transform: none !important;
}

body#product .images-container .product-images .thumb-container {
  width: 72px;
  margin: 0 !important;
}

body#product .images-container .product-images img,
body#product .images-container .product-images .thumb {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1;
  object-fit: cover;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 0;
  opacity: 0.75;
  cursor: pointer;
  padding: 0.25rem;
  background: #fff;
}

body#product .images-container .product-images .thumb-container.js-thumb-selected img,
body#product .images-container .product-images .thumb.selected,
body#product .images-container .product-images .thumb.js-thumb-selected {
  opacity: 1;
  border-color: var(--gold, #c5a059);
}

body#product .product-cover img,
body#product .js-qv-product-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #f3f1ec;
}

body#product .scroll-box-arrows {
  display: none !important;
}

@media (max-width: 900px) {
  body#product .images-container.js-images-container.rb-has-thumbs {
    grid-template-columns: 1fr;
  }

  body#product .images-container.rb-has-thumbs .product-cover {
    grid-column: 1;
    grid-row: 1;
  }

  body#product .images-container .js-qv-mask.mask,
  body#product .images-container .mask {
    grid-column: 1;
    grid-row: 2;
    width: 100% !important;
    max-width: none !important;
  }

  body#product .images-container .product-images.js-qv-product-images {
    flex-direction: row;
    width: 100%;
    overflow-x: auto;
  }

  body#product .images-container .product-images .thumb-container {
    width: 64px;
    flex: 0 0 64px;
  }
}

/* Buybox */
body#product .h1.rb-product-title,
body#product h1[itemprop="name"] {
  font-family: var(--font-display, Georgia, serif) !important;
  font-size: clamp(2.4rem, 4vw, 3.4rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0 0 0.35rem !important;
}

body#product .subtitle {
  font-family: var(--font-ui) !important;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted, #5a5a5a);
  margin: 0.5rem 0 1rem;
}

body#product .current-price,
body#product .product-price,
body#product .product-prices {
  font-size: 1.45rem;
  font-weight: 500;
  margin-bottom: 1rem;
}

body#product .rb-product-lead,
body#product .product-information > .product-description {
  color: var(--text-muted, #5a5a5a);
  font-size: 0.92rem;
  max-width: 48ch;
  margin-bottom: 1rem;
}

body#product .product-information,
body#product .product-actions {
  font-family: var(--font-ui) !important;
}

body#product .product-variants > .product-variants-item {
  margin-bottom: 1.15rem;
}

body#product .product-variants-item .control-label {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
}

body#product .product-variants select,
body#product .product-variants .form-control {
  width: 100%;
  min-height: 48px;
  border-radius: 0 !important;
  border: 1px solid rgba(0, 0, 0, 0.18);
  background: #fff;
  appearance: none;
  padding: 0 2.5rem 0 1rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--gold, #c5a059) 50%),
    linear-gradient(135deg, var(--gold, #c5a059) 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.rb-bulk-note {
  margin: 0 0 1.15rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--text-muted, #5a5a5a);
}

/* Product content links — bold red (buybox + tabs only; NOT card .product-description) */
body#product .rb-product-lead a,
body#product .product-information a,
body#product .rb-bulk-note a,
body#product .rb-trust-row a,
body#product .rb-checkout-trust a,
body#product .tabs .tab-content a,
body#product .rb-pdp-tabs .tab-content a,
.rb-bulk-note a {
  color: #d0121a !important;
  font-weight: 700 !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

body#product .rb-product-lead a:hover,
body#product .product-information a:hover,
body#product .rb-bulk-note a:hover,
body#product .rb-trust-row a:hover,
body#product .rb-checkout-trust a:hover,
body#product .tabs .tab-content a:hover,
body#product .rb-pdp-tabs .tab-content a:hover,
.rb-bulk-note a:hover {
  color: #a50e16 !important;
}

/* Related / listing cards on PDP — never inherit content-link red */
body#product .product-miniature .product-title,
body#product .rb-related .product-title,
body#product .product-accessories .product-title,
body#product .product-miniature .product-title a,
body#product .product-miniature .product-title a:link,
body#product .product-miniature .product-title a:visited,
body#product .rb-related .product-title a,
body#product .product-accessories .product-title a {
  color: #1a1a1a !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

body#product .product-miniature .product-title a:hover,
body#product .rb-related .product-title a:hover,
body#product .product-accessories .product-title a:hover {
  color: var(--gold-dim, #a88845) !important;
}

body#product .product-miniature a.btn-gold,
body#product .product-miniature a.btn-gold:link,
body#product .product-miniature a.btn-gold:visited,
body#product .product-miniature a.btn-gold:hover,
body#product .product-miniature a.btn-gold:focus,
body#product .rb-related a.btn-gold,
body#product .product-accessories a.btn-gold {
  color: #000 !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

/* Don't restyle Add to cart / qty controls as content links */
body#product .product-actions .add-to-cart,
body#product .product-actions .rb-qty-btn,
body#product .product-actions .wishlist-button a {
  color: inherit !important;
  font-weight: inherit !important;
  text-decoration: none !important;
}

/* Qty + Add to cart row */
body#product .rb-add-to-cart .control-label,
body#product .product-add-to-cart > .control-label {
  display: none !important;
}

body#product .rb-purchase-row,
body#product .product-quantity.rb-purchase-row {
  display: grid !important;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: stretch;
  margin: 0 0 1.25rem !important;
}

body#product .rb-purchase-row .qty,
body#product .rb-purchase-row .rb-qty {
  margin: 0 !important;
}

body#product .rb-purchase-row .add {
  margin: 0 !important;
  width: 100%;
}

body#product .rb-purchase-row .add .add-to-cart {
  width: 100%;
  min-height: 48px;
  border-radius: 0 !important;
  letter-spacing: 0.12em;
}

body#product .rb-purchase-row .wishlist-button,
body#product .rb-purchase-row [class*="wishlist"] {
  grid-column: 1 / -1;
  justify-self: start;
}

@media (max-width: 560px) {
  body#product .rb-purchase-row,
  body#product .product-quantity.rb-purchase-row {
    grid-template-columns: 1fr;
  }
}

/* Shared luxury quantity: − 1 + (product, cart, quick view) */
input[type="number"].rb-qty-input,
body#product #quantity_wanted,
body#cart input.js-cart-line-product-quantity,
.bootstrap-touchspin input[type="number"],
.rb-qty input[type="number"] {
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}

input[type="number"].rb-qty-input::-webkit-outer-spin-button,
input[type="number"].rb-qty-input::-webkit-inner-spin-button,
body#product #quantity_wanted::-webkit-outer-spin-button,
body#product #quantity_wanted::-webkit-inner-spin-button,
body#cart input.js-cart-line-product-quantity::-webkit-outer-spin-button,
body#cart input.js-cart-line-product-quantity::-webkit-inner-spin-button,
.bootstrap-touchspin input[type="number"]::-webkit-outer-spin-button,
.bootstrap-touchspin input[type="number"]::-webkit-inner-spin-button,
.rb-qty input[type="number"]::-webkit-outer-spin-button,
.rb-qty input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* Kill Classic/TouchSpin chrome when our − / + control is present */
body#product .rb-qty .bootstrap-touchspin,
body#product .rb-qty .input-group-btn,
body#product .rb-qty .btn-touchspin,
body#product .rb-qty .bootstrap-touchspin-up,
body#product .rb-qty .bootstrap-touchspin-down,
body#product .rb-qty .input-group-btn-vertical {
  display: none !important;
}

.rb-qty,
body#product .qty.rb-qty,
body#cart .rb-qty {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: stretch;
  width: auto !important;
  min-width: 136px;
  max-width: 168px;
  height: 48px;
  border: 1px solid rgba(0, 0, 0, 0.18);
  border-radius: 0 !important;
  background: #fff;
  overflow: hidden;
  box-shadow: none !important;
}

.rb-qty .rb-qty-btn {
  flex: 0 0 44px;
  width: 44px !important;
  min-width: 44px;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text, #1a1a1a) !important;
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

.rb-qty .rb-qty-btn:hover {
  background: rgba(197, 160, 89, 0.12) !important;
}

.rb-qty .rb-qty-input,
.rb-qty input#quantity_wanted,
.rb-qty input[type="number"] {
  flex: 1 1 auto;
  width: 52px !important;
  min-width: 48px;
  max-width: 72px;
  height: 48px !important;
  min-height: 48px !important;
  margin: 0 !important;
  padding: 0 0.25rem !important;
  border: 0 !important;
  border-left: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-right: 1px solid rgba(0, 0, 0, 0.12) !important;
  border-radius: 0 !important;
  text-align: center !important;
  box-shadow: none !important;
  background: #fff !important;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--text, #1a1a1a);
}

/* Availability: icon + message on one line */
body#product .product-availability .alert,
body#product .rb-availability-alert {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem;
  margin: 0 0 1rem !important;
  padding: 0.75rem 1rem !important;
  border-radius: 0 !important;
}

body#product .product-availability .alert .alert-content-wrapper,
body#product .product-availability .alert-content-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.55rem;
  width: 100%;
}

body#product .product-availability .alert .material-icons,
body#product .rb-availability-alert .material-icons {
  flex: 0 0 auto;
  margin: 0 !important;
  font-size: 1.25rem;
  line-height: 1;
  display: inline-block !important;
}

body#product .product-availability .alert .rb-availability-text,
body#product .rb-availability-alert .rb-availability-text,
body#product .product-availability .alert-content-wrapper > div:last-child {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0 !important;
  font-weight: 600;
  line-height: 1.35;
}

body#product .product-availability .alert small {
  display: block;
  margin-top: 0.15rem;
  font-weight: 400;
}

.rb-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin: 0 0 1.75rem;
  padding: 1rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  list-style: none;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.rb-trust-row li {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.rb-checkout-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.25rem;
  margin: 0 0 0.5rem;
  padding: 0;
  list-style: none;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted, #5a5a5a);
}

.rb-checkout-trust li {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.rb-checkout-trust li::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold, #c5a059);
  flex: 0 0 8px;
}

/* blockreassurance under buybox — 2×2 (COA / Disclaimer / Delivery / Payments) */
body#product .blockreassurance_product {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem 1rem;
  align-items: start;
  margin: 1.15rem 0 0 !important;
  padding: 1rem 0 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  width: 100%;
  box-sizing: border-box;
}

body#product .blockreassurance_product > div {
  display: flex !important;
  align-items: center;
  gap: 0.55rem;
  min-width: 0;
  margin: 0 !important;
  padding: 0.2rem 0 !important;
  float: none !important;
  width: auto !important;
  clear: none !important;
}

body#product .blockreassurance_product .item-product {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  line-height: 0;
}

body#product .blockreassurance_product .item-product img,
body#product .blockreassurance_product .item-product svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
  max-width: 1.25rem !important;
  max-height: 1.25rem !important;
  object-fit: contain;
  display: block;
}

body#product .blockreassurance_product .block-title {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em;
  line-height: 1.25 !important;
  color: var(--text, #1a1a1a) !important;
  text-align: left !important;
}

@media (max-width: 380px) {
  body#product .blockreassurance_product {
    grid-template-columns: 1fr;
  }
}

/* Tabs sit in the shared content lane */
body#product .tabs.rb-pdp-tabs,
body#product .rb-pdp-tabs {
  margin-top: 3.5rem !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important;
  clear: both;
}

body#product .nav-tabs {
  display: flex !important;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
  gap: 0.25rem 1.75rem !important;
  margin: 0 0 2rem !important;
  padding: 0 !important;
}

body#product .nav-tabs .nav-item {
  margin: 0 !important;
  float: none !important;
}

body#product .nav-tabs .nav-link {
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted, #5a5a5a) !important;
  background: transparent !important;
  padding: 0.85rem 0 !important;
  margin: 0 0 -1px !important;
}

body#product .nav-tabs .nav-link.active {
  color: var(--text, #1a1a1a) !important;
  border-bottom-color: var(--gold, #c5a059) !important;
  background: transparent !important;
}

body#product .tab-content {
  padding-top: 0;
}

body#product .product-description,
body#product .product-features,
body#product #product-details {
  color: var(--text-muted, #5a5a5a);
  font-size: 0.95rem;
}

body#product .rb-tab-split {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2.5rem;
  align-items: start;
}

body#product .rb-tab-split .product-description p {
  margin: 0 0 1rem;
}

@media (max-width: 900px) {
  body#product .rb-tab-split {
    grid-template-columns: 1fr;
  }
}

.rb-key-features {
  background: #f3ebdd;
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 1.5rem 1.5rem 1.25rem;
  margin: 0;
}

.rb-key-features h3 {
  font-family: var(--font-ui) !important;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin: 0 0 1rem;
  color: var(--text, #1a1a1a);
}

.rb-key-features ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rb-key-features li {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin-bottom: 0.65rem;
  font-size: 0.88rem;
  color: var(--text, #1a1a1a);
}

.rb-key-features .check {
  color: var(--gold, #c5a059);
  font-weight: 700;
  line-height: 1.3;
}

.rb-key-features .lab-note {
  margin: 1rem 0 0;
  font-size: 0.72rem;
  color: var(--text-muted, #5a5a5a);
  font-style: italic;
}

/* You may also like — same card/grid language as homepage Featured */
body#product .product-accessories.rb-related,
body#product .rb-related.featured-products {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: var(--rb-section-y, 4.5rem) 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  background: var(--cream, #f8f5f0);
  overflow-x: clip;
}

body#product .rb-related .section-inner {
  max-width: var(--rb-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rb-gutter);
  padding-right: var(--rb-gutter);
  box-sizing: border-box;
}

body#product .rb-related .section-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  margin: 0 0 2rem;
  box-sizing: border-box;
}

body#product .rb-related .section-title .rule {
  flex: 1 1 auto;
  max-width: 120px;
  height: 1px;
  background: rgba(197, 160, 89, 0.55);
}

body#product .rb-related .products-section-title {
  font-family: var(--font-display, Georgia, serif) !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 !important;
  text-align: center;
}

body#product .rb-related .section-title .products-section-title::before,
body#product .rb-related .section-title .products-section-title::after {
  display: none !important;
  content: none !important;
}

body#product .rb-related .products,
body#product .rb-related .product-grid {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(var(--rb-cols, 4), minmax(0, 1fr)) !important;
  gap: clamp(1rem, 2vw, 1.5rem) !important;
}

/* Match homepage featured card chrome (drop compact overrides) */
body#product .rb-related .product-miniature,
body#product .rb-related article.product-miniature {
  padding: 1.15rem !important;
}

body#product .rb-related .product-miniature .thumbnail-container,
body#product .rb-related .product-miniature .thumbnail-container.product-card-media,
body#product .rb-related .product-card-media {
  margin-bottom: 1rem !important;
}

body#product .rb-related .product-title,
body#product .rb-related .product-title a,
body#product .rb-related .product-title a:link,
body#product .rb-related .product-title a:visited {
  font-size: 1.15rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.02em;
  color: #1a1a1a !important;
  text-decoration: none !important;
}

body#product .rb-related .product-miniature .meta {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
}

body#product .rb-related .product-price-and-shipping,
body#product .rb-related .product-miniature .price,
body#product .rb-related .product-miniature .prange_module,
body#product .rb-related .product-miniature .prange_module span {
  margin: 0.55rem 0 1rem;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
}

body#product .rb-related .product-miniature a.btn-gold,
body#product .rb-related .product-miniature .btn {
  min-height: 48px !important;
  padding: 0.85rem 1.75rem !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.12em;
  color: #000 !important;
  text-decoration: none !important;
}

@media (max-width: 1100px) {
  body#product .rb-related .products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body#product .rb-related .products {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Category / related modules under product footer */
body#product #products .products-section-title,
body#product .featured-products .products-section-title {
  text-align: center;
}

/* —— Cart —— */
body#cart #wrapper > .container,
body#cart #content-wrapper {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

body#cart #main,
body#cart .rb-cart-page {
  padding-top: var(--rb-section-y);
  padding-bottom: var(--rb-section-y);
}

body#cart .cart-grid,
body#cart .row.cart-grid {
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-start;
  margin: 0 !important;
  width: 100%;
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

body#cart .cart-grid-body,
body#cart .cart-grid-right,
body#cart .cart-grid > [class*="col-"] {
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body#cart .cart-grid-body,
body#cart .cart-grid > .cart-grid-body,
body#cart .cart-grid > .col-lg-8 {
  flex: 1 1 58%;
  max-width: 100%;
  min-width: min(100%, 320px);
}

body#cart .cart-grid-right,
body#cart .cart-grid > .cart-grid-right,
body#cart .cart-grid > .col-lg-4 {
  flex: 1 1 280px;
  max-width: 380px;
}

body#cart .card,
body#cart .cart-summary,
body#cart .cart-container,
body#cart .cart-overview,
body#cart .cart-item {
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body#cart .cart-overview,
body#cart .cart-summary,
body#cart .card-block {
  padding: 1.35rem !important;
}

body#cart h1,
body#cart .h1 {
  font-family: var(--font-display, Georgia, serif) !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 1.25rem !important;
}

body#cart .cart-item {
  display: block !important;
  padding: 1rem 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
  background: transparent !important;
}

/* Image | details | qty + line total + delete — no Classic col crush */
body#cart .cart-item .product-line-grid,
body#cart .product-line-grid {
  display: grid !important;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  gap: 1rem 1.25rem;
  align-items: center;
  width: 100%;
  margin: 0;
}

body#cart .product-line-grid-left,
body#cart .product-line-grid-body,
body#cart .product-line-grid-right {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  position: static !important;
}

body#cart .product-line-grid-body {
  min-width: 0;
}

body#cart .product-line-grid-right {
  display: flex !important;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  min-width: 0;
}

body#cart .product-line-grid-right > .row,
body#cart .product-line-grid-right .row {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  gap: 1rem;
  margin: 0 !important;
  width: auto !important;
  max-width: none !important;
}

body#cart .product-line-grid-right [class*="col-"] {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}

body#cart .product-line-grid-right .hidden-md-up {
  display: none !important;
}

/* Kill Classic width:100% that stacks/overlaps qty + price */
body#cart .product-line-grid-right .qty,
body#cart .product-line-grid-right .price {
  width: auto !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  line-height: 1.2 !important;
}

body#cart .product-line-grid-right .qty {
  min-width: 136px;
}

body#cart .product-line-grid-right .price,
body#cart .product-line-grid-right .product-price,
body#cart .product-line-grid-right .product-price strong {
  white-space: nowrap !important;
  text-align: right;
  min-width: 4.25rem;
  margin: 0 !important;
  line-height: 1.2 !important;
  color: var(--text, #1a1a1a) !important;
  font-weight: 600;
}

body#cart .product-line-grid-right .cart-line-product-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1 !important;
  margin: 0 !important;
}

body#cart .product-line-grid-right .remove-from-cart {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  color: var(--text, #1a1a1a) !important;
}

body#cart .product-line-grid .clearfix {
  display: none !important;
}

body#cart .cart-item img,
body#cart .product-image img {
  width: 88px;
  height: 88px;
  object-fit: cover;
  background: #f3f1ec;
}

@media (max-width: 767px) {
  body#cart .cart-item .product-line-grid,
  body#cart .product-line-grid {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 0.85rem;
  }

  body#cart .product-line-grid-right {
    grid-column: 1 / -1;
    justify-content: space-between;
    width: 100%;
  }

  body#cart .product-line-grid-right > .row,
  body#cart .product-line-grid-right .row {
    width: 100% !important;
    justify-content: space-between;
  }
}

/* Cart qty uses shared .rb-qty / .bootstrap-touchspin rules above */

body#cart .cart-detailed-actions,
body#cart .checkout {
  margin-top: 1rem;
}

body#cart .cart-detailed-actions .btn,
body#cart .cart-detailed-actions a.btn,
body#cart .checkout a.btn,
body#cart a.btn-primary {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 52px !important;
  height: auto !important;
  padding: 0.95rem 1.25rem !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  text-align: center;
  font-size: 0.72rem !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 600;
  border-radius: 0 !important;
}

body#cart .product-price,
body#cart .product-price strong,
body#cart .cart-item .price {
  color: var(--text, #1a1a1a) !important;
  font-weight: 600;
}

/* —— Checkout —— */
body#checkout #content-wrapper {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
}

body#checkout .checkout-container {
  padding-top: var(--rb-section-y);
  padding-bottom: var(--rb-section-y);
}

body#checkout .checkout-step {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 0;
  margin-bottom: 1rem;
  padding: 1.25rem 1.5rem;
}

body#checkout .checkout-step .-current .step-title,
body#checkout .checkout-step .step-title {
  font-family: var(--font-display) !important;
  letter-spacing: 0.06em;
}

body#checkout #-js-checkout-summary,
body#checkout .cart-summary {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 1.25rem;
}

/* —— Contact: full-bleed hero, form uses content lane —— */
body#contact #wrapper,
body#contact #main {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body#contact .rb-contact-hero,
body#contact .contact-hero {
  width: 100% !important;
  max-width: none !important;
}

body#contact .page-header,
body#contact .page-header h1:not(.sr-only) {
  /* Title lives in the hero artwork */
  display: none !important;
}

/* —— CMS / account content cards (lane already on #main) —— */
body#cms #main,
body#my-account #main,
body#identity #main,
body#address #main,
body#addresses #main,
body#history #main,
body#order-slip #main,
body#order-follow #main,
body#discount #main,
body#module-ps_emailalerts-account #main,
body#authentication #main,
body#registration #main,
body#password #main,
body#guest-tracking #main,
body#stores #main,
body#sitemap #main {
  padding-top: 0.35rem !important;
  padding-bottom: var(--rb-section-y) !important;
}

body#cms .page-content,
.page-customer-account {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  padding: clamp(1.25rem, 3vw, 2.25rem);
}

body#contact .page-content {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  padding: clamp(1.25rem, 3vw, 2.25rem);
  margin-top: var(--rb-section-y, 4.5rem);
  margin-bottom: var(--rb-section-y, 4.5rem);
}

body#cms .page-header h1,
body#my-account .page-header h1 {
  margin-bottom: 1.25rem;
}

.contact-form .form-control,
#customer-form .form-control,
#login-form .form-control {
  margin-bottom: 0.75rem;
}

/*
 * Auth / register / password — Classic centers #content at 640px, which
 * breaks the shared content lane. Keep the lane; put the form in a full-width card.
 */
body#authentication #main,
body#registration #main,
body#password #main,
.page-authentication #main,
.page-registration #main,
.page-password #main {
  max-width: var(--rb-max) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--rb-gutter) !important;
  padding-right: var(--rb-gutter) !important;
}

body#authentication .page-header,
body#registration .page-header,
body#password .page-header,
.page-authentication .page-header,
.page-registration .page-header,
.page-password .page-header {
  margin: 0.5rem 0 1.25rem !important;
}

body#authentication .page-header h1,
body#registration .page-header h1,
body#password .page-header h1 {
  margin: 0 !important;
  font-size: clamp(1.5rem, 3vw, 2rem) !important;
  font-weight: 600 !important;
  color: var(--text, #1a1a1a) !important;
}

body#authentication #content,
body#authentication .page-content,
body#registration #content,
body#registration .page-content,
body#password #content,
body#password .page-content,
.page-authentication #content,
.page-registration #content,
.page-password #content,
body#authentication .page-customer-account,
body#registration .page-customer-account,
body#password .page-customer-account {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.05) !important;
  padding: clamp(1.5rem, 3vw, 2.5rem) !important;
  box-sizing: border-box;
}

body#authentication .rb-account-page,
body#registration .rb-account-page,
body#password .rb-account-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Login / register form — readable column, left-aligned to the lane */
body#authentication .login-form,
body#authentication #login-form,
body#registration #customer-form,
body#password #form-forgot-password,
body#password form {
  max-width: 32rem;
  width: 100%;
  margin: 0;
}

body#authentication #login-form .form-group,
body#registration #customer-form .form-group,
body#password .form-group {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  margin: 0 0 1rem !important;
  width: 100%;
}

body#authentication #login-form .form-control-label,
body#registration #customer-form .form-control-label,
body#password .form-control-label {
  flex: 0 0 6.5rem;
  max-width: 6.5rem;
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  color: var(--text, #1a1a1a) !important;
}

body#authentication #login-form .form-control-comment,
body#registration #customer-form .form-control-comment {
  display: none;
}

body#authentication #login-form .col-md-6,
body#authentication #login-form .col-md-3,
body#authentication #login-form [class*="col-"],
body#registration #customer-form [class*="col-"],
body#password [class*="col-"] {
  flex: 1 1 auto !important;
  max-width: none !important;
  width: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}

body#authentication #login-form .form-control-label[class*="col-"],
body#registration #customer-form .form-control-label[class*="col-"] {
  flex: 0 0 6.5rem !important;
  max-width: 6.5rem !important;
  width: 6.5rem !important;
}

body#authentication #login-form input.form-control,
body#registration #customer-form input.form-control,
body#password input.form-control {
  width: 100% !important;
  max-width: none !important;
  background: #fff !important;
  border: 1px solid rgba(0, 0, 0, 0.18) !important;
  min-height: 48px;
}

body#authentication .forgot-password,
body#authentication #content .forgot-password {
  text-align: left !important;
  margin: 0.25rem 0 1.25rem !important;
  padding: 0 !important;
  font-size: 0.85rem !important;
}

body#authentication .forgot-password a {
  color: var(--text-muted, #5a5a5a) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

body#authentication .forgot-password a:hover {
  color: var(--gold-dim, #a88845) !important;
}

body#authentication #submit-login,
body#authentication button[data-link-action="sign-in"],
body#authentication .form-footer .btn,
body#registration .form-footer .btn,
body#password .form-footer .btn {
  width: 100%;
  max-width: 32rem;
  min-height: 48px !important;
  background: var(--btn-bg, var(--gold, #c5a059)) !important;
  border-color: var(--btn-bg, var(--gold, #c5a059)) !important;
  color: var(--btn-text, #000) !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
}

body#authentication hr,
body#registration hr {
  margin: 1.75rem 0 1.25rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

body#authentication .no-account,
body#authentication #content .no-account {
  text-align: left !important;
  font-size: 0.95rem !important;
  color: var(--text, #1a1a1a);
}

body#authentication .no-account a {
  color: #d0121a !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 560px) {
  body#authentication #login-form .form-group,
  body#registration #customer-form .form-group {
    flex-direction: column;
    align-items: stretch;
  }

  body#authentication #login-form .form-control-label,
  body#authentication #login-form .form-control-label[class*="col-"],
  body#registration #customer-form .form-control-label,
  body#registration #customer-form .form-control-label[class*="col-"] {
    flex: 0 0 auto !important;
    max-width: none !important;
    width: 100% !important;
  }
}

/* —— Homepage modules —— */
.featured-products {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--rb-section-y, 4.5rem) 0;
  background: var(--cream, #f8f5f0);
  box-sizing: border-box;
  overflow-x: clip;
}

.featured-products .section-inner {
  max-width: var(--rb-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rb-gutter);
  padding-right: var(--rb-gutter);
  box-sizing: border-box;
}

.featured-products .products,
.featured-products .product-grid {
  max-width: none;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100%;
  min-width: 0;
}

.featured-products .section-title .products-section-title,
.featured-products .products-section-title {
  margin: 0 !important;
  max-width: none;
  font-size: inherit !important;
  letter-spacing: inherit;
}

/* Prefer mockup .section-title .rule; hide legacy pseudo rules when rules are present */
.featured-products .section-title .products-section-title::before,
.featured-products .section-title .products-section-title::after {
  display: none !important;
  content: none !important;
}

.featured-products .products-section-title:not(.section-title h2)::before,
.featured-products .products-section-title:not(.section-title h2)::after {
  content: "";
  flex: 1 1 2rem;
  min-width: 1.5rem;
  max-width: 100px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold, #c5a059), transparent);
}

/* Newsletter above footer */
.rb-footer-before {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
}

/* Newsletter — full viewport width (Classic used col-lg-8 = white gap) */
.block_newsletter,
.rb-newsletter,
#blockEmailSubscription_displayHome,
#blockEmailSubscription_displayFooterBefore,
.rb-footer-before .block_newsletter,
.footer-container .block_newsletter,
body#index .block_newsletter,
body .block_newsletter.col-lg-8,
body .block_newsletter[class*="col-"] {
  position: relative;
  display: block !important;
  float: none !important;
  width: 100vw !important;
  max-width: 100vw !important;
  flex: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  left: auto !important;
  right: auto !important;
  padding: clamp(3.5rem, 6vw, 4.5rem) var(--rb-gutter, 1.5rem) !important;
  text-align: center;
  border: 0 !important;
  clear: both;
  overflow: hidden;
  background: var(--cream-deep, #efe6d6);
  box-sizing: border-box;
}

.block_newsletter::before,
.rb-newsletter::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 15% 50%, rgba(197, 160, 89, 0.28), transparent 42%),
    radial-gradient(ellipse at 85% 40%, rgba(197, 160, 89, 0.2), transparent 45%),
    linear-gradient(120deg, #f7f2e8, #efe6d6 50%, #f8f5f0);
}

.rb-newsletter-inner,
.block_newsletter > .row {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  display: block !important;
  float: none !important;
}

.block_newsletter > .row > [class*="col-"] {
  width: 100% !important;
  max-width: none !important;
  flex: none !important;
  float: none !important;
  padding: 0 !important;
  text-align: center;
}

.block_newsletter p,
.block_newsletter h3,
.block_newsletter h4,
.block_newsletter .title,
.rb-newsletter-title,
#block-newsletter-label {
  font-family: var(--font-display, Georgia, serif) !important;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem) !important;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--text, #1a1a1a) !important;
  margin: 0 0 0.75rem !important;
  float: none !important;
  width: 100% !important;
  max-width: none !important;
}

.rb-newsletter-form,
.block_newsletter form,
.block_newsletter .rb-newsletter-form {
  max-width: 520px;
  width: 100%;
  margin: 1.25rem auto 0 !important;
  display: flex !important;
  align-items: stretch;
  border: 1px solid rgba(0, 0, 0, 0.12);
  background: #fff;
  float: none !important;
}

.block_newsletter form .row,
.block_newsletter form [class*="col-"],
.block_newsletter .input-wrapper {
  width: 100% !important;
  max-width: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: contents;
}

.rb-newsletter-form input[type="email"],
.block_newsletter input[type="email"] {
  flex: 1 1 auto;
  min-width: 0;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 48px;
  padding: 0.95rem 1.1rem !important;
  background: transparent !important;
  box-shadow: none !important;
  float: none !important;
}

.rb-newsletter-form .btn,
.rb-newsletter-form button,
.block_newsletter button,
.block_newsletter input[type="submit"],
.block_newsletter .btn-primary {
  flex: 0 0 auto;
  border: 0 !important;
  border-radius: 0 !important;
  min-height: 48px;
  margin: 0 !important;
  float: none !important;
  padding: 0 1.75rem !important;
  background: var(--gold, #c5a059) !important;
  color: #000 !important;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 600;
}

.rb-newsletter-note,
.block_newsletter .rb-newsletter-note,
.block_newsletter form + p,
.block_newsletter .col-xs-12 > p:not(.alert) {
  margin: 1rem auto 0 !important;
  max-width: 48ch;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted, #5a5a5a);
  line-height: 1.5;
}

/*
 * Age verification — ETS Soft ets_ageverification
 * Restyle popup to Luxury-JHenMedia (black / gold / cream).
 * Keep overlays above sticky header and cart toast.
 */
.ets_av_overload,
[id*="ets_age"],
[id*="ageverification"],
[id*="age-verification"],
[class*="ets_age"],
[class*="ageverification"],
[class*="age-verification"],
.ets-age-verification,
#ets_ageverification_popup,
#ets_ageverification {
  z-index: 100100 !important;
}

.ets_av_overload {
  background: rgba(0, 0, 0, 0.82) !important;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

.ets_av_table {
  max-width: min(28rem, calc(100vw - 2rem)) !important;
  width: 100% !important;
}

.ets_av_table_cell {
  padding: clamp(1.25rem, 4vw, 2.5rem) 0 !important;
}

.ets_av_content_popup {
  background: var(--cream, #f8f5f0) !important;
  color: var(--text, #1a1a1a) !important;
  border: 1px solid var(--border, rgba(197, 160, 89, 0.45)) !important;
  border-radius: 0 !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45) !important;
  padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 4vw, 2.25rem) !important;
  text-align: center !important;
  position: relative;
}

.ets_av_content_popup::before {
  content: "";
  display: block;
  width: 3.5rem;
  height: 1px;
  margin: 0 auto 1.35rem;
  background: linear-gradient(90deg, transparent, var(--gold, #c5a059), transparent);
}

.ets_av_ageverification {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

.ets_av_ageverification > img.img-thumbnail {
  display: block !important;
  max-width: 4.25rem !important;
  width: 4.25rem !important;
  height: auto !important;
  margin: 0 auto 1.15rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  filter: grayscale(1) contrast(1.05) brightness(0.92) sepia(0.45) saturate(1.6);
  opacity: 0.88;
}

h4.ets_av_title,
.ets_av_content_popup .ets_av_title {
  margin: 0 0 0.65rem !important;
  font-family: var(--font-display, "Playfair Display", Georgia, serif) !important;
  font-size: clamp(1.55rem, 3.5vw, 2rem) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.04em !important;
  color: var(--black, #000) !important;
  text-transform: none !important;
}

.ets_av_content_popup .ets_av_desc,
.ets_av_desc {
  margin: 0 auto 1.5rem !important;
  max-width: 34ch;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: 0.02em !important;
  color: var(--text-muted, #5a5a5a) !important;
}

.ets_av_content_popup .fieldset .heading h4,
#ets_av_age_verification .heading h4 {
  margin: 0 0 0.85rem !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--black, #000) !important;
}

#ets_av_age_verification .wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.65rem !important;
}

#ets_av_age_verification .wrapper label {
  margin: 0 !important;
  flex: 1 1 5.5rem;
  min-width: 5.5rem;
  max-width: 8.5rem;
  text-align: left !important;
}

#ets_av_age_verification span.title_label {
  margin-bottom: 0.35rem !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--text-muted, #5a5a5a) !important;
}

.ets_av_content_popup select,
#ets_av_age_verification select {
  width: 100% !important;
  min-height: 48px !important;
  padding: 0.55rem 0.7rem !important;
  border: 1px solid rgba(0, 0, 0, 0.18) !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--text, #1a1a1a) !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.8rem !important;
  appearance: none;
  -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--gold, #c5a059) 50%),
    linear-gradient(135deg, var(--gold, #c5a059) 50%, transparent 50%);
  background-position: calc(100% - 14px) calc(50% - 2px), calc(100% - 9px) calc(50% - 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
  transition: border-color var(--rb-transition, 0.28s ease), box-shadow var(--rb-transition, 0.28s ease);
}

.ets_av_content_popup select:focus,
#ets_av_age_verification select:focus {
  outline: none !important;
  border-color: var(--gold, #c5a059) !important;
  box-shadow: 0 0 0 1px var(--gold, #c5a059) !important;
}

.ets_av_content_popup .error_box {
  min-height: 1.25rem !important;
  margin-top: 0.35rem !important;
}

.error_box .ets_av_error {
  color: var(--price, #b3122a) !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.75rem !important;
}

.ets_av_content_popup .footer {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 0.75rem !important;
  margin-top: 1.35rem !important;
}

.ets_av_content_popup .footer .btn,
.ets_av_content_popup .footer a.btn,
.ets_av_content_popup .footer button.btn {
  flex: 1 1 8rem;
  max-width: 11rem;
  margin: 0 !important;
  min-height: 48px !important;
  min-width: 0 !important;
  border-radius: 0 !important;
  font-family: var(--font-ui, "Montserrat", sans-serif) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background var(--rb-transition, 0.28s ease), border-color var(--rb-transition, 0.28s ease),
    color var(--rb-transition, 0.28s ease) !important;
  box-shadow: none !important;
}

.ets_av_content_popup .footer a.btn.btn-default.ets_av_cancel,
.ets_av_cancel {
  background: transparent !important;
  border: 1px solid var(--gold, #c5a059) !important;
  color: var(--black, #000) !important;
}

.ets_av_content_popup .footer a.btn.btn-default.ets_av_cancel:hover,
.ets_av_cancel:hover {
  background: rgba(197, 160, 89, 0.12) !important;
  border-color: var(--gold-bright, #d4b36e) !important;
  color: var(--black, #000) !important;
}

.ets_av_content_popup .footer .btn.btn-primary.ets_av_primary,
.ets_av_primary {
  background: var(--gold, #c5a059) !important;
  border: 1px solid var(--gold, #c5a059) !important;
  color: #000 !important;
}

.ets_av_content_popup .footer .btn.btn-primary.ets_av_primary:hover,
.ets_av_primary:hover {
  background: var(--gold-bright, #d4b36e) !important;
  border-color: var(--gold-bright, #d4b36e) !important;
  color: #000 !important;
}

/* Self-declaration yes/no mode (if enabled in module) */
.ets_av_verification_type .btn,
.ets_av_content_popup .ets_av_yes,
.ets_av_content_popup .ets_av_no {
  border-radius: 0 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-weight: 600 !important;
  min-height: 48px;
}

@media (max-width: 480px) {
  #ets_av_age_verification .wrapper label {
    flex: 1 1 100%;
    max-width: none;
  }

  .ets_av_content_popup .footer .btn,
  .ets_av_content_popup .footer a.btn {
    flex: 1 1 100%;
    max-width: none;
  }
}

/* Added-to-cart toast — fade up from bottom-right, then out */
.rb-cart-toast {
  position: fixed;
  right: max(1.25rem, env(safe-area-inset-right, 0px));
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  z-index: 10060;
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  min-width: 220px;
  max-width: min(22rem, calc(100vw - 2.5rem));
  padding: 0.95rem 1.15rem;
  background: #e8f5ec;
  border: 1px solid #2f8a55;
  color: #14532d;
  box-shadow: 0 12px 36px rgba(20, 83, 45, 0.12);
  opacity: 0;
  transform: translateY(18px);
  pointer-events: none;
  transition: opacity 0.35s ease, transform 0.35s ease;
}

.rb-cart-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.rb-cart-toast.is-leaving {
  opacity: 0;
  transform: translateY(12px);
}

.rb-cart-toast-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.55rem;
  height: 1.55rem;
  margin-top: 0.05rem;
  border-radius: 999px;
  background: #2f8a55;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1;
}

.rb-cart-toast-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.rb-cart-toast-title {
  font-family: var(--font-ui, "Montserrat", sans-serif);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.3;
  color: #14532d;
}

.rb-cart-toast-detail {
  font-family: var(--font-ui, "Montserrat", sans-serif);
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.35;
  color: #1f6b40;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rb-cart-toast-detail[hidden] {
  display: none !important;
}

/* Cart icon + badge */
.rb-header .blockcart,
.rb-header #_desktop_cart,
.header-utils .blockcart {
  position: relative;
}

.rb-header .rb-cart-link,
.header-utils .blockcart .header a {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  color: var(--gold, #c5a059) !important;
  text-decoration: none !important;
  min-width: 28px;
  min-height: 28px;
}

.rb-header .cart-products-count,
.header-utils .cart-products-count {
  position: absolute;
  top: -0.35rem;
  right: -0.55rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.25rem;
  border-radius: 999px;
  background: var(--gold, #c5a059);
  color: #000 !important;
  font-family: var(--font-ui) !important;
  font-size: 0.62rem !important;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.1rem;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.rb-header .blockcart .header span.hidden-sm-down,
.header-utils .blockcart .header span.hidden-sm-down {
  display: none !important;
}

/* —— Footer —— */
#footer,
.footer-container,
.rb-footer {
  background: var(--black, #000) !important;
  color: rgba(255, 255, 255, 0.75) !important;
  margin-top: 0 !important;
  box-shadow: none !important;
}

#footer a,
.footer-container a {
  color: rgba(255, 255, 255, 0.85) !important;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#footer a:hover,
.footer-container a:hover {
  color: var(--gold, #c5a059) !important;
}

#footer .block-contact,
#footer .links,
#footer .block-social {
  margin-bottom: 1.25rem;
}

.footer-bottom {
  border-top: 1px solid rgba(197, 160, 89, 0.25);
  padding-top: 1.25rem;
  margin-top: 1.25rem;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.5);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
}

.footer-bottom-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.85rem;
}

.footer-bottom-meta p {
  margin: 0;
}

.footer-bottom .footer-legal {
  color: rgba(255, 255, 255, 0.42) !important;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(197, 160, 89, 0.35);
  padding-bottom: 1px;
}

.footer-bottom .footer-legal:hover,
.footer-bottom .footer-legal:focus {
  color: rgba(255, 255, 255, 0.72) !important;
  border-bottom-color: rgba(197, 160, 89, 0.7);
}

/* —— Notifications —— */
.alert {
  border-radius: 0 !important;
}

.alert-success {
  border-color: var(--gold, #c5a059);
}

/* —— Fluid breakpoints —— */
@media (max-width: 1199px) {
  :root {
    --rb-cols: 3;
  }
}

@media (max-width: 991px) {
  :root {
    --rb-cols: 2;
  }

  body#product .row.product-container > .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
  }

  body#cart .cart-grid {
    grid-template-columns: 1fr;
  }

  .rb-header .header-inner {
    grid-template-columns: auto 1fr auto;
  }
}

@media (max-width: 575px) {
  :root {
    --rb-cols: 1;
  }

  .block_newsletter form {
    flex-direction: column;
  }

  .footer-bottom {
    flex-direction: column;
  }
}

/* Utility: full-bleed sections on home */
body#index #content-wrapper,
body#index #main {
  padding: 0 !important;
  max-width: none;
}

body#index .rb-home {
  width: 100%;
}

/* —— Kill Classic / previous-theme leftovers (mockup homepage) —— */
body#index #carousel,
body#index .carousel,
body#index .ets-htmlBox-hook,
body#index #custom-text,
body#index a.banner,
body#index .banner,
body#index .featured-products:not(#featured),
body#index #content > .featured-products.mt-3 {
  display: none !important;
}

.rb-footer-hooks,
.rb-footer-hooks[hidden],
#footer .rb-footer-hooks .links,
#footer .rb-footer-hooks .block-contact,
#footer .rb-footer-hooks .wrapper {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

.rb-announce {
  display: block;
  width: 100%;
  overflow: hidden;
  background: linear-gradient(90deg, #b8924a 0%, #e5d5b8 45%, #c5a059 100%);
  color: #000;
}

.rb-announce .announce,
.rb-announce .rb-announce-inner {
  display: block;
  min-height: 36px;
  padding: 0;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  overflow: hidden;
}

.rb-announce-track {
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: center;
}

.rb-announce-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  padding: 0.45rem 1.25rem;
}

.rb-announce-group span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  white-space: nowrap;
  flex: 0 0 auto;
}

.rb-announce-group--clone {
  display: none;
}

@media (max-width: 1099.98px) {
  .rb-announce .announce,
  .rb-announce .rb-announce-inner {
    min-height: 32px;
    font-size: 0.56rem;
    letter-spacing: 0.08em;
    overflow: hidden;
  }

  .rb-announce-track {
    display: flex;
    width: max-content;
    justify-content: flex-start;
    will-change: transform;
    animation: rb-announce-marquee 28s linear infinite;
  }

  .rb-announce-group {
    flex: 0 0 auto;
    gap: 1.75rem;
    padding: 0.4rem 1.5rem;
  }

  .rb-announce-group--clone {
    display: flex;
  }

  .rb-announce-group svg {
    width: 11px;
    height: 11px;
  }

  @keyframes rb-announce-marquee {
    from {
      transform: translate3d(0, 0, 0);
    }
    to {
      transform: translate3d(-50%, 0, 0);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .rb-announce-track {
      width: 100%;
      justify-content: flex-start;
      overflow-x: auto;
      animation: none;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }

    .rb-announce-group--clone {
      display: none;
    }
  }

  .rb-header .header-utils {
    gap: 0.1rem !important;
  }

  .rb-header .header-utils .hidden-sm-down,
  .rb-header #_desktop_user_info .hidden-sm-down {
    display: none !important;
  }

  #wrapper > .breadcrumb,
  #wrapper .breadcrumb,
  .rb-breadcrumb-bar {
    padding: 1rem 0 0.85rem !important;
  }
}

.rb-announce #_desktop_contact_link,
.rb-announce #_mobile_contact_link,
.rb-announce .contact-link,
.rb-announce > a {
  display: none !important;
}

.rb-header .header-utils {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: var(--gold, #c5a059);
}

.rb-header .header-utils a,
.rb-header .header-utils .cart-preview {
  color: var(--gold, #c5a059) !important;
}

.rb-header .material-icons,
#header .material-icons {
  font-family: "Material Icons" !important;
  font-style: normal;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  line-height: 1;
  font-size: 22px;
  color: var(--gold, #c5a059) !important;
  -webkit-font-smoothing: antialiased;
}

/* Cap featured grid to mockup density when BO still lists many products */
#featured .products > *:nth-child(n + 9) {
  display: none !important;
}
