/*
 * custom.css — La Délicieuse
 *
 * Sections:
 *   §1  Animations          — product grid/list animations used by theme.js
 *   §2  Ecolife patches     — catalog sizing, CreativeElements compatibility
 *   §3  Design system       — fonts, tokens, helpers, buttons, cards
 *   §4  Header              — desktop nav, megamenu, mobile drawer, cart widget
 *   §5  Footer
 *   §6  Home                — hero, tiles, reassurance, products, producers
 *   §7  Mobile tab bar
 *   §8  Category/listing    — header, toolbar, filters, grid, SEO
 *   §9  Product             — layout, gallery, buy box, tabs, cross-sell
 *   §10 Editorial pages     — manufacturer, CMS, search, SmartBlog
 *   §11 Account/cart/order  — customer, auth, cart, checkout surfaces
 *   §12 Desktop overrides   — final scoped page adjustments
 */

/* Product grid/list animations used by theme.js. */
.animated {
  -webkit-animation-duration: 1s;
  animation-duration: 1s;
  -webkit-animation-fill-mode: both;
  animation-fill-mode: both;
}

@-webkit-keyframes fadeInRight {
  from { opacity: 0; -webkit-transform: translate3d(10%, 0, 0); transform: translate3d(10%, 0, 0); }
  to { opacity: 1; -webkit-transform: none; transform: none; }
}
@keyframes fadeInRight {
  from { opacity: 0; -webkit-transform: translate3d(10%, 0, 0); transform: translate3d(10%, 0, 0); }
  to { opacity: 1; -webkit-transform: none; transform: none; }
}
.fadeInRight {
  -webkit-animation-name: fadeInRight;
  animation-name: fadeInRight;
}

@-webkit-keyframes zoomIn {
  from { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); }
  50% { opacity: 1; }
}
@keyframes zoomIn {
  from { opacity: 0; -webkit-transform: scale3d(0.3, 0.3, 0.3); transform: scale3d(0.3, 0.3, 0.3); }
  50% { opacity: 1; }
}
.zoomIn {
  -webkit-animation-name: zoomIn;
  animation-name: zoomIn;
}

/* =============================================================================
   Ecolife theme patches
   (.list-bigger-image: catalog "bigger image" BO display option)
   (elementor-*: CreativeElements / Elementor compat on non-home pages)
   ============================================================================= */

.list-bigger-image .style_product_list .img_block {
  max-width: 170px;
}

/* Load-bearing against CreativeElements wrapper CSS; remove only with CE page checks. */
.has-section-inner .elementor-widget-wrap {
  display: block !important;
}
.elementor-widget-wrap > section {
  width: 100% !important;
}
.elementor-editor-active .elementor.elementor-edit-mode .elementor-top-column .elementor-widget-wrap .elementor-inner-section {
  margin-top: 0;
}

/* =============================================================================
   La Délicieuse design system
   Brand palette · typography · components
   ============================================================================= */

/* Fonts ---------------------------------------------------------------------- */
@font-face {
  font-family: 'BonaNovaSC';
  src: url('fonts/BonaNovaSC-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'UrbanistThin';
  src: url('fonts/Urbanist-Thin.ttf') format('truetype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Acumin';
  src: url('fonts/AcuminVariableConcept.otf') format('opentype');
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

/* Variables ------------------------------------------------------------------ */
:root {
  /* Brand palette */
  --ld-ink:          #1d1d1b;
  --ld-ink-soft:     #2a2724;
  --ld-ink-mute:     #6a625a;
  --ld-line:         #e6dfd0;
  --ld-line-soft:    #f0e9d8;
  --ld-paper:        #faf6ec;
  --ld-paper-2:      #f4ecd9;
  --ld-paper-3:      #efe5cb;
  --ld-cream:        #eddbb3;
  --ld-cream-deep:   #e3cf9d;
  --ld-gold:         #a99373;
  --ld-gold-deep:    #8c7757;
  --ld-success:      #4a7a3a;
  --ld-warn:         #b65b2a;

  /* Shadows */
  --ld-shadow-card:  0 1px 0 rgba(29,29,27,.04), 0 4px 16px -8px rgba(60,42,16,.18);
  --ld-shadow-hover: 0 8px 28px -10px rgba(60,42,16,.35);

  /* Type stacks */
  --ld-f-display: 'UrbanistThin', system-ui, sans-serif;
  --ld-f-serif:   'BonaNovaSC', Georgia, serif;
  --ld-f-body:    'Acumin', system-ui, -apple-system, sans-serif;
  --ld-f-thin:    'UrbanistThin', system-ui, sans-serif;
}

/* Base overrides ------------------------------------------------------------- */
body {
  font-family: var(--ld-f-body);
  color: var(--ld-ink);
  background: var(--ld-paper);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#wrapper,
#content-wrapper,
#main,
.page-index #wrapper,
.page-index #content-wrapper {
  background: var(--ld-paper);
}

/* Keep horizontal clipping without making <main> the sticky scroll container. */
main {
  overflow-x: clip;
  overflow-y: visible;
}

/* Boxed layout is not used by this project (layout_wide is active), but keep
   its framed look from silently re-breaking sticky if ever toggled in the BO.
   Only the overflow is changed; the max-width / centering / background that
   make the boxed frame (theme.css) stay in effect. */
@media (min-width: 1025px) {
  .layout_boxed main {
    overflow-x: clip;
    overflow-y: visible;
  }
}

/* Typography utilities ------------------------------------------------------- */
.t-display {
  font-family: var(--ld-f-display);
  font-weight: 200;
  letter-spacing: 0.005em;
  line-height: 1.02;
}
.t-serif {
  font-family: var(--ld-f-serif);
  letter-spacing: 0.02em;
  line-height: 1.15;
}
.t-body {
  font-family: var(--ld-f-body);
  line-height: 1.55;
}
.t-meta {
  font-family: var(--ld-f-thin);
  font-weight: 100;
  letter-spacing: 0.06em;
}
.t-eyebrow {
  font-family: var(--ld-f-display);
  font-weight: 200;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  font-size: 11px;
  color: var(--ld-gold);
}
.t-eyebrow-mute {
  color: var(--ld-ink-mute);
}

/* Layout helpers (ld- prefix avoids Bootstrap conflicts) ---------------------- */
.ld-row   { display: flex; }
.ld-col   { display: flex; flex-direction: column; }
.ld-grow  { flex: 1 1 0; min-width: 0; }
.ld-center { display: flex; align-items: center; justify-content: center; }
.ld-ac    { align-items: center; }
.ld-jb    { justify-content: space-between; }
.ld-je    { justify-content: flex-end; }
.ld-jc    { justify-content: center; }
.ld-wrap  { flex-wrap: wrap; }
.ld-g-4  { gap: 4px; }
.ld-g-8  { gap: 8px; }
.ld-g-12 { gap: 12px; }
.ld-g-16 { gap: 16px; }
.ld-g-20 { gap: 20px; }
.ld-g-24 { gap: 24px; }
.ld-g-32 { gap: 32px; }
.ld-g-40 { gap: 40px; }
.ld-g-48 { gap: 48px; }

/* Horizontal scroll without visible scrollbar */
.ld-scroll-x { overflow-x: auto; scrollbar-width: none; }
.ld-scroll-x::-webkit-scrollbar { display: none; }

/* Divider */
.ld-divider { height: 1px; background: var(--ld-line); }
.ld-divider.dashed { background: transparent; border-top: 1px dashed var(--ld-line); }

/* Buttons (ld- prefix avoids Bootstrap/PS8 .btn overrides) ------------------- */
.ld-btn {
  border: 1px solid var(--ld-ink);
  background: var(--ld-ink);
  color: var(--ld-paper);
  font-family: var(--ld-f-body);
  font-weight: 500;
  font-size: 13px;
  padding: 10px 16px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: background .15s, transform .1s, box-shadow .15s;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
}
.ld-btn:hover { background: #000; transform: translateY(-1px); color: var(--ld-paper); text-decoration: none; }
.ld-btn.outline { background: transparent; color: var(--ld-ink); }
.ld-btn.outline:hover { background: var(--ld-ink); color: var(--ld-paper); }
.ld-btn.gold { background: var(--ld-gold); border-color: var(--ld-gold); color: #fff; }
.ld-btn.gold:hover { background: var(--ld-gold-deep); border-color: var(--ld-gold-deep); }
.ld-btn.ghost { border-color: transparent; background: transparent; color: var(--ld-ink); }
.ld-btn.ghost:hover { background: var(--ld-paper-2); }
.ld-btn.lg { font-size: 14px; padding: 14px 22px; }
.ld-btn.sm { font-size: 12px; padding: 7px 12px; }
.ld-btn.block { width: 100%; justify-content: center; }
.ld-btn.icon-only { padding: 10px; }

/* Round icon buttons */
.ld-iconbtn {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ld-paper);
  border: 1px solid var(--ld-line);
  cursor: pointer;
  transition: background .15s, border .15s;
}
.ld-iconbtn:hover { background: var(--ld-cream); border-color: var(--ld-gold); }
.ld-iconbtn.dark { background: var(--ld-ink); border-color: var(--ld-ink); color: var(--ld-paper); }
.ld-iconbtn.dark:hover { background: #000; }
.ld-iconbtn.lg { width: 44px; height: 44px; }

/* Chips / tags --------------------------------------------------------------- */
.ld-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  border-radius: 999px;
  font-family: var(--ld-f-body);
  font-weight: 500;
  font-size: 12px;
  background: var(--ld-paper);
  border: 1px solid var(--ld-line);
  color: var(--ld-ink);
  cursor: pointer;
  transition: all .15s;
  white-space: nowrap;
}
.ld-chip:hover { border-color: var(--ld-gold); }
.ld-chip.active { background: var(--ld-ink); color: var(--ld-paper); border-color: var(--ld-ink); }
.ld-chip.gold { background: var(--ld-gold); color: #fff; border-color: var(--ld-gold); }
.ld-chip.cream { background: var(--ld-cream); border-color: var(--ld-cream-deep); color: var(--ld-ink); }
.ld-chip.sm { padding: 4px 9px; font-size: 11px; }

/* Badges --------------------------------------------------------------------- */
.ld-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  border-radius: 3px;
  font-family: var(--ld-f-body);
  font-weight: 600;
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: var(--ld-ink);
  color: var(--ld-paper);
}
.ld-badge.gold  { background: var(--ld-gold); color: #fff; }
.ld-badge.cream { background: var(--ld-cream); color: var(--ld-ink); }
.ld-badge.white { background: rgba(255,255,255,0.95); color: var(--ld-ink); box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.ld-badge.outline { background: rgba(255,255,255,0.95); color: var(--ld-ink); border: 1px solid var(--ld-ink); }

/* Product cards -------------------------------------------------------------- */
.ld-card {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 6px;
  overflow: hidden;
  transition: box-shadow .2s, transform .2s;
}
.ld-card:hover { box-shadow: var(--ld-shadow-hover); transform: translateY(-2px); }
.ld-card.flat  { box-shadow: var(--ld-shadow-card); }
.ld-card.cream { background: var(--ld-paper-2); border-color: var(--ld-cream-deep); }

/* Composite wordmark --------------------------------------------------------- */
.ld-wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
  gap: 1px;
}
.ld-wordmark .arc  { font-family: var(--ld-f-display); font-weight: 200; color: var(--ld-gold); letter-spacing: 0.28em; }
.ld-wordmark .name { font-family: var(--ld-f-serif); letter-spacing: 0.04em; color: var(--ld-ink); }
.ld-wordmark .tag  { font-family: var(--ld-f-display); font-weight: 200; color: var(--ld-ink-mute); letter-spacing: 0.18em; }

/* Free-shipping progress bar ------------------------------------------------- */
.ld-franco { background: var(--ld-paper-2); border: 1px solid var(--ld-cream-deep); border-radius: 6px; padding: 10px 12px; }
.ld-franco-bar { height: 4px; background: var(--ld-cream-deep); border-radius: 2px; overflow: hidden; }
.ld-franco-bar > i { display: block; height: 100%; background: var(--ld-gold); border-radius: 2px; transition: width .3s; }

/* Star rating ---------------------------------------------------------------- */
.ld-stars { color: var(--ld-gold); display: inline-flex; gap: 1px; }

/* Stock indicator ------------------------------------------------------------ */
.ld-stock-dot {
  width: 7px; height: 7px;
  border-radius: 999px;
  display: inline-block;
  background: var(--ld-success);
  box-shadow: 0 0 0 3px rgba(74,122,58,0.15);
}
.ld-stock-dot.out { background: var(--ld-warn); box-shadow: 0 0 0 3px rgba(182,91,42,0.15); }

/* Form fields ---------------------------------------------------------------- */
.ld-input {
  padding: 10px 14px;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: #fff;
  font-family: var(--ld-f-body);
  font-size: 14px;
  color: var(--ld-ink);
}
.ld-input::placeholder { color: var(--ld-ink-mute); }
.ld-input:focus { outline: none; border-color: var(--ld-gold); box-shadow: 0 0 0 3px rgba(169,147,115,0.15); }

/* Animations ---------------------------------------------------------------- */
@keyframes ld-fadein { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
.ld-fadein { animation: ld-fadein .35s ease-out; }

/* Image placeholder ---------------------------------------------------------- */
.ld-ph {
  background: var(--ld-cream-deep);
  position: relative;
  overflow: hidden;
  display: block;
}
.ld-ph::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(0,0,0,0.06)),
              radial-gradient(circle at 30% 30%, rgba(255,255,255,0.15), transparent 60%);
}
.ld-ph img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

/* Mobile-first responsive helpers ------------------------------------------- */
/* Intentional utility helpers: breakpoint wins should not depend on selector weight. */
@media (min-width: 768px) {
  .ld-hide-md { display: none !important; }
}
@media (max-width: 767.98px) {
  .ld-hide-xs { display: none !important; }
}

/* =============================================================================
   Header
   ============================================================================= */

/* Outer <header id="header"> from layout-both-columns.tpl */
#header {
  background: var(--ld-paper);
  position: relative;
  z-index: 200;
}
#header.use-sticky { position: sticky; top: 0; }


/* ---- Top bar: logo · search · account · cart ------------------------------ */
.ld-header__top {
  display: flex;
  align-items: center;
  gap: clamp(32px, 4vw, 72px);
  padding: 14px clamp(52px, 6vw, 96px) 12px;
  max-width: 1880px;
  margin: 0 auto;
  border-bottom: 1px solid var(--ld-line);
}

/* Hamburger — hidden on desktop */
.ld-header__hamburger {
  display: none;
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--ld-ink);
  flex-shrink: 0;
  line-height: 0;
}

/* Contextual mobile header (category / product) — hidden by default, revealed
   on those pages in the mobile media query. */
.ld-header__back,
.ld-header__context-title { display: none; }

/* Logo */
.ld-header__logo {
  text-decoration: none;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}
.ld-header__logo img {
  width: auto;
  max-width: 240px;
  height: auto;
  max-height: 92px;
  display: block;
  /* JPG logo on white: blend it into the cream header. */
  mix-blend-mode: multiply;
}
.ld-header__logo:hover { text-decoration: none; }

@media (min-width: 768px) {
  .ld-header__logo .ld-header__logo-img {
    max-width: 300px;
    max-height: 124px;
  }
}

/* Home desktop frame: header, nav, and content share the same width. */
@media (min-width: 768px) {
  body#index { --ld-home-frame: clamp(1440px, 95vw, 1800px); }

  body#index #wrapper > .container { width: var(--ld-home-frame); }

  body#index .ld-header__top,
  body#index .ld-drawer__nav {
    max-width: var(--ld-home-frame);
    padding-left: 55px;
    padding-right: 55px;
  }
}

/* Search — fills all available space between logo and icons */
.ld-header__top .pos-search-wrapper {
  flex: 1 1 auto;
  min-width: 0;
}
.ld-header__search-wrap {
  flex: 1 1 auto;
  min-width: 280px;
  max-width: 1120px;
}
.ld-header__mobile-search {
  display: none;
}

/* Icons group — tighter gap than main header gap */
.ld-header__actions {
  display: flex;
  align-items: center;
  gap: clamp(22px, 2vw, 40px);
  flex-shrink: 0;
}

/* Account */
.ld-header__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-decoration: none;
  color: var(--ld-ink);
  flex-shrink: 0;
}
.ld-header__action span {
  font-size: 10px;
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
}
.ld-header__action:hover { color: var(--ld-ink); text-decoration: none; }
.ld-header__action:hover span { color: var(--ld-gold); }

/* Cart */
.ld-header__top #_desktop_cart_block { flex-shrink: 0; }

/* Search wrap — hidden on mobile (mobile search is below the logo row) */
@media (max-width: 767.98px) {
  .ld-header__search-wrap { display: none; }
  .ld-header__action--account span { display: none; }
  .ld-header__action--wishlist { display: none; }
}

/* =============================================================================
   Drawer — desktop: horizontal nav bar / mobile: slide-in panel
   ============================================================================= */

/* ---- Base (desktop: static nav bar) --------------------------------------- */
.ld-drawer {
  background: var(--ld-paper);
  border-bottom: 1px solid var(--ld-line);
}
.ld-drawer__header,
.ld-drawer__search,
.ld-drawer__secondary,
.ld-drawer__account { display: none; }
.ld-drawer__overlay  { display: none; }
/* Category counts are injected into every menu item but only shown in the
   mobile drawer accordion (revealed in the max-width:767.98px block below). */
.ld-drawer__count { display: none; }

/* ---- Desktop nav — megamenu row ------------------------------------------ */
.ld-drawer__nav {
  max-width: 1880px;
  margin: 0 auto;
  padding: 0 clamp(52px, 6vw, 96px);
}
.ld-drawer__nav .main-menu  { border: none; background: transparent; }
.ld-drawer__nav .pos-menu-horizontal { padding: 0 0 14px; }

/* Nav items — use #_desktop_megamenu to beat front.css specificity */
#_desktop_megamenu .pos-menu-horizontal .menu-content { padding-left: 0; }
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item {
  position: relative;
  padding: 0; /* reset module's padding:15px 0 — spacing comes from the <a> padding */
}
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a {
  font-family: var(--ld-f-body);
  font-size: 15px;
  font-weight: 500;
  color: var(--ld-ink);
  padding: 14px 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-transform: none;
  background: transparent;
  line-height: 1;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.active > a,
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:hover > a {
  color: var(--ld-gold-deep);
  font-weight: 600;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.active > a::after,
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:hover > a::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--ld-gold);
  border-radius: 1px;
}

/* Chevron icon on items with submenu */
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a i.icon-rt-arrow-down {
  font-size: 10px;
  color: var(--ld-ink-mute);
  display: inline-block;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:hover > a i.icon-rt-arrow-down,
#_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.active > a i.icon-rt-arrow-down {
  color: var(--ld-gold);
}

/* Tablet: keep the nav on one row. */
@media (min-width: 768px) and (max-width: 991.98px) {
  .ld-header__top { padding-left: 28px; padding-right: 28px; }
  .ld-drawer__nav { padding-left: 28px; padding-right: 28px; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a {
    font-size: 15px;
    gap: 3px;
  }
}

/* ---- Desktop mega-menu dropdown -------------------------------------------
   Anchor dropdowns to the full-width drawer and flex the injected container. */
@media (min-width: 768px) {
  /* flow-root contains the module's floated menu items without clipping overflow. */
  .ld-drawer { position: relative; }
  #_desktop_megamenu .pos-menu-horizontal {
    position: static;
    display: flow-root;
    padding-bottom: 0; /* hover gap fix: spacing comes from <a> padding-bottom:14px */
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.dropdown-mega {
    position: static;
  }
  /* Beats posmegamenu inline JS left/right/width positioning. */
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.dropdown-mega > .menu-dropdown {
    left: 0 !important;
    right: 0 !important;
    width: auto !important;
    top: 100% !important;
    padding-top: 0;
  }
}

#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown {
  padding-top: 0;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner {
  background: var(--ld-paper-2);
  border-top: 1px solid var(--ld-cream-deep);
  border-bottom: 2px solid var(--ld-cream-deep);
  box-shadow: 0 8px 32px -8px rgba(0,0,0,0.12);
  padding: 28px 40px;
  display: flex;
  align-items: flex-start;
  gap: 0;
}
/* 100vw dropdowns use Bootstrap .container — strip double-padding, flex the container */
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown[data-width="100vw"] .pos-sub-inner {
  padding: 0;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner > .container {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 28px 40px;
  padding-left: 40px;
  padding-right: 40px;
  max-width: none;
  width: 100%;
  box-sizing: border-box;
  margin: 0;
}

/* ---- LEFT PANEL ---- */
#_desktop_megamenu .ld-megamenu__intro {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 220px;
  max-width: 220px;
  flex-shrink: 0;
  padding-right: 40px;
  border-right: 1px solid var(--ld-line);
  align-self: stretch;
}
#_desktop_megamenu .ld-megamenu__intro-header {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
#_desktop_megamenu .ld-megamenu__eyebrow {
  font-family: var(--ld-f-body);
  font-size: 10px;
  font-weight: 400;
  color: var(--ld-gold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
#_desktop_megamenu .ld-megamenu__cat-title {
  font-family: var(--ld-f-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--ld-ink);
  line-height: 1.1;
  text-decoration: none;
  display: block;
}
#_desktop_megamenu .ld-megamenu__cat-title:hover { color: var(--ld-gold-deep); }
#_desktop_megamenu .ld-megamenu__subtitle {
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 400;
  color: var(--ld-ink-mute);
  display: block;
  margin-top: 2px;
}
#_desktop_megamenu .ld-megamenu__cta {
  display: inline-block;
  align-self: flex-start;
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  background: var(--ld-gold-deep);
  border-radius: 4px;
  padding: 9px 16px;
  text-decoration: none;
  transition: background 0.15s;
  white-space: nowrap;
}
#_desktop_megamenu .ld-megamenu__cta:hover { background: var(--ld-ink); color: #fff; }

/* ---- RIGHT PANEL ---- */
#_desktop_megamenu .ld-megamenu__cols {
  flex: 1;
  padding-left: 40px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#_desktop_megamenu .ld-megamenu__cols-eyebrow {
  font-family: var(--ld-f-body);
  font-size: 10px;
  font-weight: 600;
  color: var(--ld-ink-mute);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 4px;
  display: block;
}
#_desktop_megamenu .ld-megamenu__cols .pos-menu-row {
  margin-bottom: 0;
  display: block;
  width: 100%;
}
#_desktop_megamenu .ld-megamenu__cols .pos-menu-col { float: none; width: 100%; }

/* Column title — only shown when BO adds a col title (rare) */
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .column_title {
  font-family: var(--ld-f-body);
  font-size: 11px;
  font-weight: 600;
  color: var(--ld-ink-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 8px;
  display: block;
}

/* Subcategory grid — 2 columns in right panel */
#_desktop_megamenu .ld-megamenu__cols .ul-column {
  display: grid;
  grid-template-columns: repeat(2, minmax(240px, 1fr));
  gap: 10px 18px;
}

#_desktop_megamenu .ld-megamenu__cols--compact .ul-column,
#_desktop_megamenu .ld-megamenu__cols--balanced .ul-column {
  grid-template-columns: repeat(2, minmax(220px, 360px));
  justify-content: start;
}

#_desktop_megamenu .ld-megamenu__cols .ul-column .submenu-item {
  margin-bottom: 0;
}

/* Subcategory links */
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a,
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a {
  font-family: var(--ld-f-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--ld-ink);
  line-height: 1.25;
  min-height: 42px;
  padding: 10px 13px;
  border: 1px solid rgba(169,147,115,0.22);
  border-radius: 8px;
  background: rgba(255,255,255,0.38);
  display: flex;
  align-items: center;
  gap: 10px;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
  text-transform: none;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a::before,
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--ld-gold);
  flex-shrink: 0;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a::after,
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a::after {
  content: '›';
  margin-left: auto;
  font-size: 18px;
  line-height: 1;
  color: var(--ld-gold-deep);
  opacity: 0.75;
  flex-shrink: 0;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a:hover,
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a:hover {
  background: rgba(255,255,255,0.72);
  border-color: var(--ld-gold);
  transform: none;
  color: var(--ld-ink);
}

/* ---- Search widget -------------------------------------------------------- */
.ld-header__search-wrap .pos-search-wrapper,
.ld-header__mobile-search .pos-search-wrapper { width: 100%; }
.ld-header__search-wrap .pos-search,
.ld-header__mobile-search .pos-search {
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
  width: 100%;
}
.ld-header__search-wrap .pos-search__container,
.ld-header__mobile-search .pos-search__container {
  display: flex;
  align-items: stretch;
  gap: 0;
}
.ld-header__search-wrap .search-input-container,
.ld-header__mobile-search .search-input-container {
  flex: 1;
  display: flex;
  align-items: center;
  padding: 0 14px;
}
.ld-header__search-wrap .pos-search__input,
.ld-header__mobile-search .pos-search__input {
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink);
  border: none;
  background: transparent;
  outline: none;
  width: 100%;
  padding: 12px 0;
  line-height: 1;
}
.ld-header__search-wrap .pos-search__input { font-size: 15px; }
.ld-header__search-wrap .pos-search__input::placeholder,
.ld-header__mobile-search .pos-search__input::placeholder { color: var(--ld-ink-mute); }
.ld-header__search-wrap .pos-search__submit,
.ld-header__mobile-search .pos-search__submit {
  background: var(--ld-gold-deep);
  border: none;
  cursor: pointer;
  color: #fff;
  padding: 0 18px;
  min-height: 42px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
  flex-shrink: 0;
}
.ld-header__search-wrap .pos-search__submit:hover,
.ld-header__mobile-search .pos-search__submit:hover { background: var(--ld-ink); }
.ld-header__search-wrap .pos-search__submit i,
.ld-header__mobile-search .pos-search__submit i { font-size: 16px; }
.ld-header__search-wrap .pos-search:focus-within,
.ld-header__mobile-search .pos-search:focus-within {
  border-color: var(--ld-gold);
  box-shadow: 0 0 0 3px rgba(169,147,115,0.12);
}
/* search-clear button */
.ld-header__search-wrap .search-clear,
.ld-header__mobile-search .search-clear { display: none; }

/* ---- Cart widget ---------------------------------------------------------- */
.ld-header__top .blockcart a.ld-header__action {
  text-decoration: none;
  color: var(--ld-ink);
}
.ld-cart__icon-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ld-cart__label {
  font-size: 10px;
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
}
.ld-header__top .blockcart .cart-products-count {
  position: absolute;
  top: -5px;
  right: -9px;
  background: var(--ld-gold);
  color: #fff;
  border-radius: 999px;
  font-size: 9px;
  padding: 1px 5px;
  font-weight: 700;
  line-height: 1.3;
  font-family: var(--ld-f-body);
}

/* ---- Mobile: drawer becomes slide-in panel ------------------------------- */
@media (max-width: 767.98px) {
  .ld-header__top {
    padding: 10px 16px 10px;
    gap: 14px;
    border-bottom: none;
  }

  .ld-header__hamburger { display: flex; }

  /* Compact mobile logo keeps the header short. */
  .ld-header__logo {
    flex: 1;
    justify-content: center;
  }
  .ld-header__logo img { width: auto; max-width: 150px; height: auto; max-height: 58px; }

  .ld-header__mobile-search {
    display: block;
    padding: 0 16px 12px;
    border-bottom: 1px solid var(--ld-line);
  }

  .ld-header__mobile-search .pos-search {
    border: 1px solid var(--ld-line);
    border-radius: 6px;
    box-shadow: none;
  }

  .ld-header__mobile-search .search-input-container {
    padding: 0 14px;
  }

  .ld-header__mobile-search .pos-search__input {
    font-size: 14px;
    padding: 11px 0;
  }

  .ld-header__mobile-search .pos-search__submit {
    display: none;
  }

  /* Account icon only — label already hidden in base mobile rule */
  .ld-header__action--account { display: flex; }

  /* Contextual header on category/product (mobile): a back button + centered
     page title replace the logo/search row; account + cart actions are kept. */
  body#category .ld-header__hamburger,
  body#product .ld-header__hamburger,
  body#category .ld-header__logo,
  body#product .ld-header__logo,
  body#category .ld-header__mobile-search,
  body#product .ld-header__mobile-search { display: none; }

  body#category .ld-header__top,
  body#product .ld-header__top { border-bottom: 1px solid var(--ld-line); }

  body#category .ld-header__back,
  body#product .ld-header__back {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    padding: 4px;
    margin-left: -4px;
    color: var(--ld-ink);
    cursor: pointer;
    flex-shrink: 0;
    line-height: 0;
  }
  body#category .ld-header__context-title,
  body#product .ld-header__context-title {
    display: block;
    flex: 1;
    min-width: 0;
    text-align: center;
    font-family: var(--ld-f-serif, Georgia, serif);
    font-size: 18px;
    line-height: 1.2;
    color: var(--ld-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 8px;
  }

  /* The category title now lives in the contextual header — visually hide the
     content <h1> (kept in the a11y / SEO tree). */
  body#category .ld-cat-h1 {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* Overlay */
  .ld-drawer__overlay {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(29, 29, 27, 0.55);
    z-index: 499;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
  }
  .ld-drawer__overlay.is-visible { opacity: 1; pointer-events: auto; }

  /* Drawer: slide-in from left */
  .ld-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(340px, calc(100vw - 40px));
    max-width: none;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    z-index: 500;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-bottom: none;
  }
  .ld-drawer.is-open {
    transform: translateX(0);
    box-shadow: 8px 0 32px -8px rgba(0, 0, 0, 0.2);
  }
  body.ld-noscroll { overflow: hidden; }
  /* Raise header stacking context above tab bar (z-index:200) when drawer is open */
  body.ld-noscroll #header { z-index: 600; }

  /* Drawer inner elements — shown on mobile */
  .ld-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ld-line);
    flex-shrink: 0;
  }
  .ld-drawer__close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--ld-ink);
    padding: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .ld-drawer__logo img { width: 80px; height: auto; mix-blend-mode: multiply; }

  .ld-drawer__search {
    display: block;
    padding: 10px 16px;
    border-bottom: 1px solid var(--ld-line);
    flex-shrink: 0;
  }
  .ld-drawer__search-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--ld-paper-2);
    border: 1px solid var(--ld-line);
    border-radius: 6px;
    padding: 9px 12px;
    color: var(--ld-ink-mute);
    font-size: 13px;
    font-family: var(--ld-f-body);
  }

  /* Reset desktop nav framing so the mobile category list is full-width. */
  .ld-drawer__nav { flex: 1; overflow-y: auto; min-height: 0; max-width: none; margin: 0; padding: 0; }
  .ld-drawer__nav {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .ld-drawer__secondary {
    display: flex;
    flex-direction: column;
    border-top: 2px solid var(--ld-paper-2);
    flex-shrink: 0;
    background: var(--ld-paper);
  }
  .ld-drawer__secondary-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--ld-line);
    text-decoration: none;
    color: var(--ld-ink);
  }
  .ld-drawer__secondary-item:hover { background: var(--ld-paper-2); }
  .ld-drawer__secondary-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: var(--ld-cream);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ld-gold-deep);
    flex-shrink: 0;
  }
  .ld-drawer__secondary-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
  }
  .ld-drawer__secondary-text strong {
    font-size: 13px;
    font-weight: 600;
    color: var(--ld-ink);
    font-family: var(--ld-f-body);
  }
  .ld-drawer__secondary-text small {
    font-size: 11px;
    color: var(--ld-ink-mute);
    font-family: var(--ld-f-body);
  }

  .ld-drawer__account {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
    text-decoration: none;
    background: var(--ld-ink);
    color: rgba(250, 246, 236, 0.4);
    flex-shrink: 0;
  }
  .ld-drawer__account:hover { background: var(--ld-ink-soft); }
  .ld-drawer__account-avatar {
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: rgba(250, 246, 236, 0.12);
    border: 1px solid rgba(250, 246, 236, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ld-paper);
    flex-shrink: 0;
  }
  .ld-drawer__account-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .ld-drawer__account-text strong {
    font-size: 13px;
    font-weight: 600;
    color: var(--ld-paper);
    font-family: var(--ld-f-body);
  }
  .ld-drawer__account-text small {
    font-size: 11px;
    color: rgba(250, 246, 236, 0.6);
    font-family: var(--ld-f-body);
  }

  /* Nav — reset desktop megamenu layout */
  #_desktop_megamenu { background: transparent; border: none; }
  #_desktop_megamenu .pos-menu-horizontal { padding: 0; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content {
    display: block;
    padding-left: 0;
  }

  /* Top-level menu items — override module's float:left / margin-left:43px.
     The module never resets these for mobile context because it uses a
     separate #_mobile_megamenu element; we share one render, so we force it. */
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item {
    float: none;
    clear: both;
    display: block;
    width: 100%;
    margin-left: 0;
    padding: 0;
    position: relative; /* keep for icon-drop-mobile absolute positioning */
  }

  /* Block anchor fills full row width, right-pad for the toggle button */
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-left: 0; /* reset theme's .main-menu @media(max-width:1199px) margin-left:0.9375rem */
    font-family: var(--ld-f-body);
    font-size: 15px;
    font-weight: 400;
    color: var(--ld-ink);
    min-height: 48px;
    padding: 14px 16px;
    padding-right: 86px;
    border-top: 1px solid var(--ld-line);
    line-height: 1.4;
    text-transform: none;
    background: transparent;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:last-child > a {
    border-bottom: 1px solid var(--ld-line);
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a span { display: block; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a i.icon-rt-arrow-down { display: none; }

  /* Open state — full-width background on the whole li */
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.ld-item-open {
    background: var(--ld-paper-2);
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.ld-item-open > a {
    font-weight: 600;
    background: transparent;
    color: var(--ld-ink);
  }

  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a .ld-drawer__count {
    display: block;
    position: absolute;
    right: 54px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--ld-f-body);
    font-size: 11px;
    font-weight: 400;
    color: var(--ld-ink-mute);
  }

  /* Toggle button — absolute, aligned right on the li row */
  #_desktop_megamenu .pos-menu-horizontal .menu-item .icon-drop-mobile {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    right: 0;
    top: 0;
    width: 48px;
    height: 48px;
    color: var(--ld-ink-mute);
    cursor: pointer;
    z-index: 1;
  }
  /* Draw the chevron ourselves instead of relying on the module's icon font.
     This keeps the arrow optically centred on every category row. */
  #_desktop_megamenu .pos-menu-horizontal .menu-item .icon-drop-mobile i { display: none; }
  #_desktop_megamenu .pos-menu-horizontal .menu-item .icon-drop-mobile::before {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transform-origin: center;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-item.ld-item-open > .icon-drop-mobile::before,
  #_desktop_megamenu .pos-menu-horizontal .menu-item .icon-drop-mobile.open_menu::before {
    transform: rotate(225deg) translateY(-2px);
  }

  /* Submenu — inline when expanded. Important beats posmegamenu desktop transforms and JS slide styles. */
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > .menu-dropdown {
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    box-shadow: none !important;
    padding-top: 0;
    transform: none !important;
    display: none;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.ld-item-open > .menu-dropdown { display: block; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner {
    background: var(--ld-cream);
    border-top: 1px solid var(--ld-cream-deep);
    border-bottom: 1px solid var(--ld-cream-deep);
    box-shadow: none;
    padding: 0;
    display: block;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner > .container {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }
  /* Hide left intro panel on mobile */
  #_desktop_megamenu .ld-megamenu__intro { display: none; }
  #_desktop_megamenu .ld-megamenu__cols { flex: 1; padding-left: 0; gap: 0; }
  #_desktop_megamenu .ld-megamenu__cols-eyebrow { display: none; }
  #_desktop_megamenu .ld-megamenu__cols .ul-column { display: block; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-menu-row { margin: 0; float: none; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-menu-col {
    float: none;
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
    padding: 0;
    border: none;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .column_title {
    font-family: var(--ld-f-body);
    font-size: 11px;
    font-weight: 600;
    color: var(--ld-ink-mute);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 12px 16px 8px;
    margin-bottom: 0;
    display: block;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .column_title::before { display: none; }

  /* Subcategory links */
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a,
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a {
    font-size: 13px;
    color: var(--ld-ink-soft);
    min-height: 42px;
    padding: 11px 48px 11px 28px;
    border-radius: 0;
    border-bottom: 1px solid var(--ld-cream-deep);
    background: transparent;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    transform: none !important;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a::before,
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a::before {
    content: '';
    display: block;
    width: 4px;
    height: 4px;
    border-radius: 999px;
    background: var(--ld-gold);
    flex: 0 0 auto;
    margin-left: -12px;
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a::after,
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a::after {
    content: '';
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--ld-ink-mute);
    border-bottom: 1.5px solid var(--ld-ink-mute);
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .ul-column { display: block; }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item > a:hover,
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu a:hover {
    background: var(--ld-paper-2);
  }
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .submenu-item:last-child > a,
  #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .category-sub-menu li:last-child a {
    border-bottom: none;
  }
}

/* =============================================================================
   Footer
   ============================================================================= */

/* Outer <footer id="footer"> -- neutralise margin-top de theme.css */
#footer { margin-top: 0; }

.ld-footer {
  background: var(--ld-ink);
  color: var(--ld-paper);
}

.ld-footer__inner {
  display: flex;
  align-items: flex-start;
  gap: 64px;
  padding: 64px 40px 32px;
  max-width: var(--ld-home-frame, 1680px);
  margin: 0 auto;
}

/* Col 1 — Brand */
.ld-footer__logo img {
  height: 80px;
  width: auto;
  display: block;
  filter: brightness(0) invert(1) sepia(.22) saturate(.9);
  opacity: .9;
}
.ld-footer__brand {
  flex: 1.4;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ld-footer__tagline {
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: rgba(250,246,236,0.72);
  line-height: 1.6;
  margin: 0;
}
.ld-footer__social {
  display: flex;
  gap: 16px;
}
.ld-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(250,246,236,0.28);
  border-radius: 50%;
  color: rgba(250,246,236,0.72);
  text-decoration: none;
  font-size: 15px;
  font-family: var(--ld-f-body);
  line-height: 1;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.ld-footer__social a:hover {
  background: var(--ld-paper);
  border-color: var(--ld-paper);
  color: var(--ld-ink);
}

/* Cols liens */
.ld-footer__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ld-footer__col-title {
  color: #fff;
  font-family: var(--ld-f-body);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.ld-footer__col a {
  color: rgba(250,246,236,0.7);
  text-decoration: none;
  font-size: 13px;
  font-family: var(--ld-f-body);
  transition: color .15s;
}
.ld-footer__col a:hover { color: var(--ld-paper); }

/* Col newsletter */
.ld-footer__newsletter {
  flex: 1.5;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ld-footer__newsletter-pitch {
  font-size: 20px;
  color: var(--ld-paper);
  line-height: 1.2;
  margin: 0;
}
/* ps_emailsubscription widget overrides dans le footer */
.ld-footer__newsletter .block_newsletter h4 { display: none; }
.ld-footer__newsletter .block_newsletter form {
  display: flex;
  border: 1px solid rgba(250,246,236,0.25);
  border-radius: 4px;
  padding: 3px;
  background: rgba(250,246,236,0.04);
}
.ld-footer__newsletter .block_newsletter input[type="email"] {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  padding: 8px 10px;
  color: var(--ld-paper);
  font-family: var(--ld-f-body);
  font-size: 13px;
}
.ld-footer__newsletter .block_newsletter input[type="email"]::placeholder {
  color: rgba(250,246,236,0.45);
}
.ld-footer__newsletter .block_newsletter input[type="submit"] {
  background: var(--ld-gold);
  border: none;
  border-radius: 3px;
  color: #fff;
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 500;
  padding: 7px 14px;
  cursor: pointer;
  transition: background .15s;
}
.ld-footer__newsletter .block_newsletter input[type="submit"]:hover { background: var(--ld-gold-deep); }
.ld-footer__newsletter-disclaimer {
  font-size: 11px;
  color: rgba(250,246,236,0.55);
  font-family: var(--ld-f-body);
}

/* Newsletter popup */
.ld-newsletter-popup[hidden] { display: none; }
.ld-newsletter-popup {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.ld-newsletter-popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(25, 22, 18, .62);
  backdrop-filter: blur(3px);
}
.ld-newsletter-popup__dialog {
  position: relative;
  width: min(100%, 520px);
  overflow: hidden;
  border: 1px solid rgba(157, 112, 62, .22);
  border-radius: 8px;
  background: var(--ld-paper);
  box-shadow: 0 24px 70px rgba(25, 22, 18, .28);
}
.ld-newsletter-popup__dialog::before {
  content: "";
  display: block;
  height: 8px;
  background: linear-gradient(90deg, var(--ld-gold-deep), var(--ld-gold), #6f8b57);
}
.ld-newsletter-popup__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(42, 36, 28, .14);
  border-radius: 50%;
  background: rgba(255,255,255,.72);
  color: var(--ld-ink);
  font-size: 24px;
  line-height: 30px;
  cursor: pointer;
}
.ld-newsletter-popup__close:hover { border-color: var(--ld-gold); color: var(--ld-gold-deep); }
.ld-newsletter-popup__content {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 36px clamp(22px, 5vw, 46px) 34px;
}
.ld-newsletter-popup__eyebrow {
  color: var(--ld-gold-deep);
  font-size: 11px;
  font-weight: 700;
}
.ld-newsletter-popup__title {
  max-width: 430px;
  margin: 0;
  color: var(--ld-ink);
  font-size: 34px;
  line-height: 1.05;
  text-transform: none;
}
.ld-newsletter-popup__text {
  max-width: 430px;
  margin: 0;
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
  font-size: 15px;
  line-height: 1.6;
}
.ld-newsletter-popup .ld-newsletter-popup__form {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.ld-newsletter-popup .ld-newsletter-popup__form input[type="email"] {
  flex: 1 1 auto;
  min-width: 0;
  height: 46px;
  border: 1px solid rgba(42, 36, 28, .16);
  border-radius: 4px;
  background: #fff;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 14px;
  padding: 0 13px;
}
.ld-newsletter-popup .ld-newsletter-popup__form input[type="email"]:focus {
  border-color: var(--ld-gold);
  outline: 2px solid rgba(157, 112, 62, .16);
  outline-offset: 1px;
}
.ld-newsletter-popup .ld-newsletter-popup__form input[type="submit"] {
  flex: 0 0 auto;
  height: 46px;
  border: 0;
  border-radius: 4px;
  background: var(--ld-gold-deep);
  color: #fff;
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 700;
  padding: 0 20px;
  cursor: pointer;
}
.ld-newsletter-popup .ld-newsletter-popup__form input[type="submit"]:hover { background: var(--ld-gold); }
.ld-newsletter-popup .block_newsletter_alert {
  flex: 0 0 100%;
  order: 3;
  margin: 4px 0 0;
  font-family: var(--ld-f-body);
  font-size: 12px;
  line-height: 1.4;
}
.ld-newsletter-popup__note {
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
  font-size: 11px;
}
.ld-newsletter-popup__dismiss {
  align-self: flex-start;
  border: 0;
  background: transparent;
  color: var(--ld-gold-deep);
  font-family: var(--ld-f-body);
  font-size: 12px;
  padding: 0;
  text-decoration: underline;
  cursor: pointer;
}
.ld-newsletter-popup__dismiss:hover {
  color: var(--ld-ink);
}
body.ld-newsletter-popup-open { overflow: hidden; }

/* Barre basse */
.ld-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 16px 40px 24px;
  max-width: 1440px;
  margin: 0 auto;
  border-top: 1px solid rgba(250,246,236,0.12);
}
.ld-footer__copy {
  font-size: 11px;
  color: rgba(250,246,236,0.5);
  font-family: var(--ld-f-body);
}
.ld-footer__payment {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ld-footer__payment span:first-child {
  font-size: 11px;
  color: rgba(250,246,236,0.5);
  font-family: var(--ld-f-body);
}
.ld-footer__pay-badge {
  padding: 4px 7px;
  border: 1px solid rgba(250,246,236,0.25);
  border-radius: 3px;
  font-size: 10px;
  font-family: var(--ld-f-body);
  font-weight: 600;
  color: rgba(250,246,236,0.75);
  letter-spacing: 0.04em;
}

/* Mobile footer */
@media (max-width: 767.98px) {
  .ld-footer {
    padding-bottom: calc(var(--ld-tabbar-h, 65px) + env(safe-area-inset-bottom, 0px));
  }

  .ld-footer__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px 18px 14px;
  }

  .ld-footer__brand {
    max-width: 100%;
    gap: 9px;
  }

  .ld-footer__logo img {
    height: 56px;
  }

  .ld-footer__tagline {
    display: none;
  }

  .ld-footer__social a {
    width: 30px;
    height: 30px;
    font-size: 14px;
  }

  .ld-footer__col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px 16px;
    padding: 10px 0 0;
    border-top: 1px solid rgba(250,246,236,.12);
  }

  .ld-footer__col-title {
    grid-column: 1 / -1;
    margin: 0 0 1px;
    font-size: 10px;
    letter-spacing: .12em;
  }

  .ld-footer__col a {
    font-size: 12px;
    line-height: 1.35;
  }

  .ld-footer__newsletter {
    min-width: 0;
    gap: 10px;
    padding-top: 2px;
  }

  .ld-footer__newsletter-pitch {
    font-size: 16px;
    line-height: 1.25;
  }

  .ld-footer__newsletter .block_newsletter form {
    max-width: 100%;
  }

  .ld-footer__newsletter .block_newsletter input[type="email"] {
    min-width: 0;
    padding: 7px 9px;
    font-size: 12px;
  }

  .ld-footer__newsletter .block_newsletter input[type="submit"] {
    padding: 7px 10px;
    font-size: 11px;
  }

  .ld-footer__newsletter-disclaimer {
    font-size: 10px;
  }

  .ld-newsletter-popup {
    align-items: flex-end;
    padding: 12px;
  }

  .ld-newsletter-popup__dialog {
    width: 100%;
    border-radius: 8px;
  }

  .ld-newsletter-popup__content {
    gap: 11px;
    padding: 30px 18px 22px;
  }

  .ld-newsletter-popup__title {
    font-size: 27px;
    line-height: 1.08;
  }

  .ld-newsletter-popup__text {
    font-size: 14px;
    line-height: 1.5;
  }

  .ld-newsletter-popup .ld-newsletter-popup__form {
    flex-direction: column;
  }

  .ld-newsletter-popup .ld-newsletter-popup__form input[type="email"],
  .ld-newsletter-popup .ld-newsletter-popup__form input[type="submit"] {
    width: 100%;
  }

  .ld-footer__bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px 18px 16px;
  }

  .ld-footer__payment {
    flex-wrap: wrap;
    gap: 7px;
  }

  .ld-footer__pay-badge {
    padding: 3px 6px;
  }
}

/* =============================================================================
   Home hero slider
   ============================================================================= */
/* Base = mobile */
.ld-hero-slider {
  position: relative;
  height: 360px;
  overflow: hidden;
  border-radius: 12px;
  background: var(--ld-paper-2);
}
.ld-hero-slider--empty {
  background: var(--ld-paper-2);
  border: 1px dashed var(--ld-cream-deep);
}

.ld-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}
.ld-hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.ld-hero-slide__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Base = mobile vertical gradient */
.ld-hero-slide__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(29,29,27,.05) 30%, rgba(29,29,27,.72) 95%);
}

/* Base = mobile: caption anchored bottom-left */
.ld-hero-slide__caption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  top: auto;
  transform: none;
  max-width: 82%;
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: var(--ld-paper);
  z-index: 1;
}

.ld-hero-slide__tag {
  font-size: 11px;
  color: var(--ld-cream);
  letter-spacing: .32em;
  text-transform: uppercase;
  font-family: var(--ld-f-body);
  font-weight: 500;
}

/* Base = mobile */
.ld-hero-slide__title {
  font-family: var(--ld-f-serif);
  font-size: 26px;
  line-height: 1.08;
  margin: 0;
  color: #fff;
}

/* Base = mobile */
.ld-hero-slide__desc {
  font-size: 12px;
  color: rgba(255,255,255,.88);
  line-height: 1.6;
  margin: 0;
}
.ld-hero-slide__desc p,
.ld-hero-slide__desc h2,
.ld-hero-slide__desc h3 { margin: 0; }

.ld-hero-slide__actions { margin-top: 6px; }

/* Base = mobile: dots bottom-right */
.ld-hero-dots {
  position: absolute;
  left: auto;
  right: 16px;
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 6px;
  z-index: 2;
}

.ld-hero-dot {
  width: 12px;
  height: 4px;
  border-radius: 2px;
  background: rgba(250,246,236,.4);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: width .2s ease, background .2s ease;
}
.ld-hero-dot.is-active {
  width: 32px;
  background: var(--ld-paper);
}

/* Mobile hero styles are now in the base rules above (mobile-first). */

/* =============================================================================
   Home hero tiles
   ============================================================================= */

/* Mobile: tiles hidden; scroll treatment belongs with mobile polish. */
.ld-hero-tiles-wrap { display: none; }

.ld-home {
  background: var(--ld-paper);
}

/* Base = mobile padding */
.ld-section--hero {
  padding: 14px 14px 0;
}

.ld-section--hero .ld-hero-slider {
  width: 100%;
}

@media (min-width: 768px) {
  /* Hero section: slider left + tile column right */
  .ld-section--hero {
    display: flex;
    align-items: stretch;
    max-width: var(--ld-home-frame, 1680px);
    margin: 0 auto;
    padding: 32px 40px 28px;
    gap: 24px;
  }

  .ld-section--hero .ld-hero-slider {
    flex: 1.35;
    border-radius: 12px;
  }

  /* Tile column — flex container so .ld-hero-tiles fills full height */
  .ld-hero-tiles-wrap {
    display: flex;
    flex-direction: column;
    flex: 1;
    height: 520px;
    min-width: 0;
    min-height: 0;
  }

  /* Hero: restore desktop values */
  .ld-hero-slider { height: 520px; }
  .ld-hero-slide__caption {
    left: 44px;
    right: auto;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    max-width: 440px;
    gap: 16px;
  }
  .ld-hero-slide__title { font-size: 64px; line-height: 1.02; }
  .ld-hero-slide__desc  { font-size: 16px; }
  .ld-hero-dots { left: 44px; right: auto; bottom: 44px; }
}

/* ── Tiles stack ─────────────────────────────────── */

.ld-hero-tiles {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
}

/* ── Panel = face (image) + subtiles (sub-rays) ─── */

.ld-hero-tile-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  overflow: hidden;
  border-radius: 6px;
  box-shadow: var(--ld-shadow-card);
  transition: box-shadow 0.25s ease;
}

.ld-hero-tile-panel.is-open {
  box-shadow: var(--ld-shadow-hover);
}

/* ── Face — image area, acts as the expand trigger ─ */

.ld-hero-tile-panel__face {
  flex: 1;
  min-width: 0;
  min-height: 0;
  position: relative;
  display: flex;
  align-items: flex-end;
  background: var(--ld-cream-deep);
  overflow: hidden;
  cursor: pointer;
  /* reset button-like defaults */
  border: none;
  padding: 0;
  text-align: left;
}

.ld-hero-tile__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-color: var(--ld-cream-deep);
  transition: transform 0.4s ease;
}

.ld-hero-tile-panel__face:hover .ld-hero-tile__bg {
  transform: scale(1.04);
}

.ld-hero-tile-panel.is-open .ld-hero-tile__bg {
  transform: scale(1.04);
}

.ld-hero-tile__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(29,29,27,.78) 0%, rgba(29,29,27,.28) 100%);
}

/* No-image fallback: hide dark overlay, switch to dark-on-cream palette */
.ld-hero-tile-panel--no-image .ld-hero-tile__overlay {
  display: none;
}

.ld-hero-tile-panel--no-image .ld-hero-tile__label {
  color: var(--ld-ink);
}

.ld-hero-tile-panel--no-image .ld-hero-tile__count {
  color: var(--ld-ink-mute);
}

.ld-hero-tile-panel--no-image .ld-hero-tile__arrow {
  color: var(--ld-gold-deep);
  opacity: 1;
}

.ld-hero-tile-panel--no-image.ld-hero-tile-panel.is-open .ld-hero-tile__arrow {
  opacity: 0;
}

.ld-hero-tile-panel--no-image .ld-hero-tile__close {
  background: rgba(29,29,27,.12);
  border-color: rgba(29,29,27,.22);
  color: var(--ld-ink);
}

.ld-hero-tile__inner {
  position: relative;
  z-index: 1;
  padding: 18px 20px;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

/* meta = label + count stacked — NO <br>, use flex-column */
.ld-hero-tile__meta {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 6px;
}

.ld-hero-tile__badge {
  position: absolute;
  top: 18px;
  left: 20px;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 4px;
  background: var(--ld-cream);
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 2px 5px rgba(29,29,27,.08);
}

.ld-hero-tile__label {
  font-family: var(--ld-f-serif);
  font-size: 22px;
  color: #fff;
  line-height: 1.1;
  letter-spacing: .02em;
}

.ld-hero-tile__count {
  font-family: var(--ld-f-body);
  font-size: 11px;
  font-weight: 600;
  color: rgba(250,246,236,.92);
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Arrow — visible when closed, fades out when open */
.ld-hero-tile__arrow {
  color: rgba(255,255,255,.7);
  font-size: 18px;
  flex-shrink: 0;
  transition: opacity 0.15s ease;
}

.ld-hero-tile-panel.is-open .ld-hero-tile__arrow {
  opacity: 0;
}

/* Close × button — hidden when closed, appears when open */
.ld-hero-tile__close {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(29,29,27,.35);
  color: #fff;
  font-size: 17px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease 0s, background 0.15s ease;
}

.ld-hero-tile__close span {
  display: none;
}

.ld-hero-tile__close::before,
.ld-hero-tile__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 11px;
  height: 1.5px;
  border-radius: 999px;
  background: currentColor;
  transform-origin: center;
}

.ld-hero-tile__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.ld-hero-tile__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.ld-hero-tile-panel.is-open .ld-hero-tile__close {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.18s ease 0.28s, background 0.15s ease; /* delay = after expand */
}

.ld-hero-tile__close:hover {
  background: rgba(29,29,27,.6);
}

/* ── Subtiles panel — right side, revealed on open ─ */

.ld-hero-subtiles {
  /* collapsed: zero flex-basis, grows to 58% when is-open */
  flex: 0 0 0%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--ld-paper);
  /* no border-left here — would show as 2px gold sliver when closed */
  opacity: 0;
  transition: flex-basis 0.38s cubic-bezier(0.4, 0, 0.2, 1),
              opacity     0.18s ease 0s;
}

.ld-hero-tile-panel.is-open .ld-hero-subtiles {
  flex: 0 0 58%;
  border-left: 2px solid var(--ld-gold);
  opacity: 1;
  transition: flex-basis 0.38s cubic-bezier(0.4, 0, 0.2, 1),
              opacity     0.20s ease 0.25s;
}

.ld-hero-subtiles__inner {
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 160px; /* prevents text collapse during animation */
}

.ld-hero-subtiles__eyebrow {
  font-family: var(--ld-f-display);
  font-size: 10px;
  font-weight: 200;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--ld-gold);
  margin-bottom: 14px;
  white-space: nowrap;
}

/* Subcategory links */
.ld-hero-subtile-link {
  display: block;
  font-family: var(--ld-f-serif);
  font-size: 16px;
  color: var(--ld-ink);
  text-decoration: none;
  padding: 10px 0;
  border-bottom: 1px solid var(--ld-line-soft);
  transition: color 0.15s ease, padding-left 0.15s ease;
  white-space: nowrap;
}

.ld-hero-subtile-link:last-child {
  border-bottom: none;
}

.ld-hero-subtile-link:hover {
  color: var(--ld-gold-deep);
  padding-left: 5px;
}

/* "Voir tout le rayon" — lighter, body font */
.ld-hero-subtile-link--all {
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 500;
  color: var(--ld-ink-mute);
  letter-spacing: .05em;
  border-top: none;
  border-bottom: none;
  padding-top: 12px;
  margin-top: 0;
}

.ld-hero-subtile-link--all:hover {
  color: var(--ld-ink);
  padding-left: 5px;
}

/* =============================================================================
   Home reassurance bar
   ============================================================================= */

/* Base = mobile: visible, compact scroll-x */
.ld-section--reassurance {
  display: block;
}

/* Mobile: 2x2 grid, all four items visible. */
.ld-reassurance {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 12px;
  row-gap: 10px;
  background: var(--ld-paper-2);
  border-top: 1px solid var(--ld-cream-deep);
  border-bottom: 1px solid var(--ld-cream-deep);
  padding: 12px 14px;
}
.ld-reassurance::-webkit-scrollbar { display: none; }

.ld-reassurance__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  min-width: 0;
}

.ld-reassurance__icon {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  border-radius: 50%;
  background: var(--ld-cream);
  color: var(--ld-gold-deep);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ld-reassurance__icon svg {
  width: 14px;
  height: 14px;
}

/* flex-column stacking — no <br> (Firefox bug #1547246) */
.ld-reassurance__label {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.ld-reassurance__title {
  font-family: var(--ld-f-body);
  font-size: 11px;
  font-weight: 600;
  color: var(--ld-ink);
  line-height: 1.3;
  white-space: nowrap;
}

.ld-reassurance__sub {
  display: none;
}

@media (min-width: 768px) {
  /* Reassurance: desktop = single flex row (base is a 2×2 grid on mobile) */
  .ld-reassurance {
    display: flex;
    flex-wrap: wrap;
    max-width: var(--ld-home-frame, 1680px);
    margin: 0 auto 40px;
    justify-content: space-around;
    align-items: center;
    padding: 20px 40px;
    gap: 32px;
  }

  .ld-reassurance__item {
    gap: 10px;
    padding: 0;
    flex: initial;
  }

  .ld-reassurance__icon {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .ld-reassurance__icon svg {
    width: 18px;
    height: 18px;
  }

  .ld-reassurance__title {
    font-size: 13px;
  }

  .ld-reassurance__sub {
    display: block;
    font-family: var(--ld-f-body);
    font-size: 11px;
    color: var(--ld-ink-mute);
    white-space: nowrap;
  }
}

/* Section hero mobile padding is now in the base rule above (mobile-first). */

/* =============================================================================
   Home product cards
   ============================================================================= */

/* Section wrappers — mobile base */
.ld-section--bestsellers,
.ld-section--newproducts {
  padding: 24px 14px 0;
}

/* Base = mobile: compact spacing */
.ld-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.ld-section__title {
  font-size: 22px;
  margin: 0;
  line-height: 1.05;
  color: var(--ld-ink, #1d1d1b);
}

.ld-section__all {
  flex-shrink: 0;
}

.ld-section__footer {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

/* Nav buttons on newproducts (future carousel) */
.ld-iconbtn--nav {
  width: 40px;
  height: 40px;
}

/* Product grid — 2 cols mobile */
.ld-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

/* ── Card ── */
.ld-product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: var(--ld-shadow-card);
  transition: box-shadow .2s, transform .2s;
  position: relative;
}

.ld-product-card:hover {
  box-shadow: var(--ld-shadow-hover);
  transform: translateY(-2px);
}

/* Image zone */
.ld-product-card__img-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--ld-paper-2);
  overflow: hidden;
  flex-shrink: 0;
}

.ld-product-card__img-link {
  display: block;
  position: absolute;
  inset: 0;
}

.ld-product-card__img-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s;
  display: block;
}

.ld-product-card:hover .ld-product-card__img-link img {
  transform: scale(1.04);
}

/* Badges */
.ld-product-card__badges {
  position: absolute;
  top: 8px;
  left: 8px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  z-index: 1;
  pointer-events: none;
}

/* Wishlist hook */
.ld-product-card__wish {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
}

.ld-product-card__wish a,
.ld-product-card__wish button {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255,255,255,0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  color: var(--ld-ink);
  transition: background .15s;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}

.ld-product-card__wish a:hover,
.ld-product-card__wish button:hover { background: #fff; }

/* Out of stock overlay */
.ld-product-card__oos {
  position: absolute;
  inset: 0;
  background: rgba(250,246,236,0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
}

/* Hover CTA — hidden (visibility+opacity) so it's not focusable when invisible */
.ld-product-card__hover-add {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px;
  background: linear-gradient(transparent, rgba(0,0,0,0.55));
  z-index: 4;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s, visibility .2s;
}

.ld-product-card:hover .ld-product-card__hover-add,
.ld-product-card:focus-within .ld-product-card__hover-add {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

/* Info zone */
.ld-product-card__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px;
  flex: 1;
}

.ld-product-card__producer {
  font-size: 9px;
  color: var(--ld-gold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  /* Reserve one line so cards align when producer is empty. */
  min-height: 1.2em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ld-product-card__name {
  font-size: 13px;
  line-height: 1.2;
  color: var(--ld-ink);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ld-product-card__name a {
  color: inherit;
  text-decoration: none;
}

.ld-product-card__name a:hover { color: var(--ld-gold-deep); }

.ld-product-card__pack {
  min-height: 1.25em;
  font-size: 12px;
  font-style: italic;
  color: var(--ld-ink-mute);
  line-height: 1.25;
}

/* Price row */
.ld-product-card__price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 6px;
  gap: 6px;
}

.ld-product-card__prices {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
}

.ld-product-card__old-price {
  font-size: 11px;
  color: var(--ld-ink-mute);
  text-decoration: line-through;
}

.ld-product-card__price {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  font-size: 15px;
  font-weight: 700;
  font-family: var(--ld-f-body);
  font-style: italic;
  color: var(--ld-ink);
  white-space: nowrap;
}

.ld-price-tax-label {
  font-size: 1em;
  font-weight: inherit;
  font-style: inherit;
  color: currentColor;
  white-space: nowrap;
}

.ld-register-pro-link,
.ld-b2b-request__intro {
  color: var(--ld-ink-mute);
}

.ld-b2b-request {
  max-width: 720px;
}

.ld-b2b-request__website {
  position: absolute;
  left: -9999px;
}

.ld-product-card__oos-link {
  font-size: 10px;
  color: var(--ld-warn);
  flex-shrink: 0;
}

/* Quick add form wrapper */
.ld-product-card__quick-add {
  margin: 0;
  flex-shrink: 0;
}

.ld-product-card__cart-state {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  width: fit-content;
  margin-top: 2px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(74,122,58,.1);
  color: var(--ld-success);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
}

.ld-product-card.is-in-cart {
  border-color: rgba(74,122,58,.55);
  box-shadow: 0 0 0 1px rgba(74,122,58,.14), var(--ld-shadow-card);
}

.ld-product-card.is-in-cart .ld-iconbtn.dark,
.ld-product-card .ld-iconbtn.dark.is-added {
  background: var(--ld-success);
  color: #fff;
}

.ld-product-card__qty-stepper {
  display: inline-grid;
  grid-template-columns: 30px minmax(24px, auto) 30px;
  align-items: center;
  height: 40px;
  min-width: 92px;
  border: 1px solid var(--ld-ink);
  border-radius: 999px;
  background: var(--ld-ink);
  color: #fff;
  overflow: hidden;
}

.ld-product-card__qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 38px;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: var(--ld-f-body);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.ld-product-card__qty-btn:hover,
.ld-product-card__qty-btn:focus-visible {
  background: rgba(255,255,255,.12);
}

.ld-product-card__qty-btn:disabled {
  cursor: default;
  opacity: .55;
}

.ld-product-card__qty-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

@media (max-width: 767.98px) {
  .ld-product-card.is-in-cart .ld-product-card__price-row {
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 3px;
  }

  .ld-product-card.is-in-cart .ld-product-card__prices {
    flex-basis: 100%;
  }

  .ld-product-card.is-in-cart .ld-product-card__cart-state {
    padding: 2px 5px;
    font-size: 9.5px;
    line-height: 1.1;
  }

  .ld-product-card__qty-stepper {
    grid-template-columns: 23px 20px 23px;
    height: 34px;
    min-width: 66px;
  }

  .ld-product-card__qty-btn {
    width: 23px;
    height: 32px;
    font-size: 14px;
  }

  .ld-product-card__qty-count {
    min-width: 20px;
    font-size: 11.5px;
  }
}

.ld-product-card__hover-add .ld-btn.is-added {
  background: var(--ld-success);
  border-color: var(--ld-success);
  color: #fff;
}

/* Category chips row — mobile: scroll horizontally */
.ld-section__chips {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 2px;
  min-width: 0;
}
.ld-section__chips::-webkit-scrollbar { display: none; }

/* Mobile: chips forced to own line below title+CTA, full viewport width */
@media (max-width: 767.98px) {
  .ld-section__chips {
    order: 10;
    flex-basis: 100%;
    max-width: 100%;
  }
}

/* Desktop overrides */
@media (min-width: 768px) {
  .ld-section--bestsellers,
  .ld-section--newproducts {
    padding: 64px 40px 0;
  }

  .ld-section__title {
    font-size: 44px;
  }

  .ld-section__header {
    align-items: flex-end;
    margin-bottom: 28px;
  }

.ld-products-grid {
    grid-template-columns: repeat(5, 1fr);
    gap: 18px;
    align-items: stretch;
  }

  /* Desktop: one clean row of five cards. */
  .ld-section--bestsellers .ld-products-grid > :nth-child(n+6),
  .ld-section--newproducts .ld-products-grid > :nth-child(n+6) {
    display: none;
  }

  /* Global desktop card defaults — category / cross-sell keep these. */
  .ld-product-card__info {
    padding: 12px;
  }

  .ld-product-card__producer {
    font-size: 10px;
  }

  .ld-product-card__name {
    font-size: 16px;
  }

  .ld-product-card__price {
    font-size: 20px;
  }

  /* Home product grids only; category and cross-sell keep their own scale. */
  body#index .ld-products-grid .ld-product-card__img-wrap {
    aspect-ratio: 4 / 5;
  }
  body#index .ld-products-grid .ld-product-card__info {
    padding: 14px 14px 16px;
    gap: 5px;
  }
  body#index .ld-products-grid .ld-product-card__producer {
    font-size: 11px;
  }
  body#index .ld-products-grid .ld-product-card__name {
    font-size: 17px;
  }
  body#index .ld-products-grid .ld-product-card__price {
    font-size: 22px;
  }
}

/* =============================================================================
   Home visual fixes
   ============================================================================= */

/* Eyebrow readability — restricted to bestsellers/newproducts to avoid
   bleeding into hero or any future .ld-section variant */
.ld-section--bestsellers .t-eyebrow,
.ld-section--newproducts .t-eyebrow {
  color: var(--ld-gold-deep);
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.18em;
}

/* Wishlist button: hide empty Vue placeholder from blockwishlist when
   it renders as an empty <div class="wishlist-button"> mount point */
.ld-product-card__wish .wishlist-button:empty {
  display: none;
}

/* Ensure the poswishlist override link is styled as the round icon button */
.ld-product-card__wish .ld-wish-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  color: var(--ld-ink);
  text-decoration: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  transition: background 0.15s, color 0.15s;
}
.ld-product-card__wish .ld-wish-btn:hover {
  background: #fff;
  color: var(--ld-warn);
}

/* ==========================================================================
   Home new products
   ========================================================================== */

.ld-section--newproducts {
  margin-top: 40px;
  padding-bottom: 64px;
}

/* The dedicated page keeps all eight latest-product cards instead of the
   concise home preview. */
body.page-new-products .ld-section--newproducts {
  margin-top: 0;
  padding-bottom: 64px;
}

body.page-new-products .ld-section--newproducts .ld-products-grid > :nth-child(n) {
  display: flex;
}

/* Dedicated best-sellers page: retain the full eight-card selection instead
   of the concise home preview. */
body.page-best-sales .ld-section--bestsellers {
  margin-top: 0;
  padding-bottom: 64px;
}

body.page-best-sales .ld-section--bestsellers-listing .ld-products-grid > .ld-product-card:nth-child(n) {
  display: flex;
}

@media (min-width: 768px) {
  .ld-section--newproducts {
    display: block;
    margin-top: 0;
    padding: 88px 40px 0;
  }
  .ld-section--newproducts .ld-products-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 18px;
    overflow: visible;
  }

  body.page-new-products .ld-section--newproducts .ld-products-grid {
    grid-template-columns: repeat(4, 1fr);
  }

  body.page-best-sales .ld-section--bestsellers .ld-products-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* =============================================================================
   Home producers section
   ============================================================================= */

.ld-section--producers {
  padding: 24px 14px 0;
}

/* Mobile: horizontal scroll carousel */
.ld-producers-grid {
  display: flex;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0 0 4px;
}
.ld-producers-grid::-webkit-scrollbar { display: none; }

/* Card — fixed width in mobile scroll */
.ld-producer-card {
  flex: 0 0 180px;
  border: 1px solid var(--ld-line);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--ld-shadow-card);
  transition: box-shadow .2s, transform .2s;
}

.ld-producer-card:hover {
  box-shadow: var(--ld-shadow-hover);
  transform: translateY(-2px);
}

.ld-producer-card__link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  height: 100%;
}

/* Image */
.ld-producer-card__img-wrap {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--ld-paper-2);
  flex-shrink: 0;
}

.ld-producer-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s;
}

.ld-producer-card:hover .ld-producer-card__img {
  transform: scale(1.04);
}

/* Fallback when a producer has no logo. */
.ld-producer-card__img-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--ld-cream) 0%, var(--ld-paper-2) 100%);
}

.ld-producer-card__monogram {
  font-family: var(--ld-f-serif);
  font-size: 42px;
  line-height: 1;
  color: var(--ld-gold);
  letter-spacing: 0.04em;
  opacity: .9;
}

/* Body */
.ld-producer-card__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  flex-grow: 1;
}

.ld-producer-card__name {
  font-family: var(--ld-f-serif);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ld-ink);
}

.ld-producer-card__desc {
  font-size: 12px;
  line-height: 1.4;
  color: var(--ld-ink-mute);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ld-producer-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 8px;
}

.ld-producer-card__count {
  font-size: 11px;
  color: var(--ld-ink-mute);
}

.ld-producer-card__arrow {
  font-size: 14px;
  line-height: 1;
  color: var(--ld-gold-deep);
  transition: transform .2s ease;
}

.ld-producer-card:hover .ld-producer-card__arrow {
  transform: translateX(3px);
}

/* Desktop: 5 cols — producers */
@media (min-width: 768px) {
  .ld-section--producers {
    padding: 58px 32px 0;
  }

  .ld-section--producers .ld-section__header {
    align-items: flex-end;
    margin-bottom: 22px;
  }

  .ld-section--producers .ld-section__title {
    font-size: clamp(34px, 2.4vw, 44px);
    line-height: 1.02;
  }

  .ld-section--producers .ld-section__all {
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid var(--ld-ink-soft);
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ld-ink);
    background: transparent;
  }

  .ld-producers-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    overflow-x: visible;
    padding-bottom: 0;
  }

  .ld-producer-card {
    flex: initial;
  }

  .ld-producer-card__body {
    padding: 14px 16px 16px;
  }

  .ld-producer-card__name {
    font-size: 16px;
  }

  .ld-producer-card__desc {
    font-size: 13px;
  }
}

.ld-producers-map { display: none; }

@media (min-width: 768px) {
  .ld-producers-layout {
    display: flex;
    align-items: stretch;
    gap: 24px;
  }

  .ld-producers-list {
    flex: 1 1 0;
    min-width: 0;
  }

  /* Left: real Leaflet slot. The fallback only appears while producer
     coordinates are not filled in ps_ld_producer_geo. */
  .ld-producers-map {
    display: flex;
    flex: 0 0 46%;
    min-width: 0;
    min-height: 318px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ld-ink);
    padding: 0;
    overflow: visible;
    position: relative;
  }
  .ld-producers-map .ld-map {
    width: 100%;
    min-height: 318px;
    height: 100%;
    border: 1px solid var(--ld-cream-deep);
    border-radius: 10px;
    box-sizing: border-box;
  }
  .ld-producers-map__fallback {
    display: none;
  }
  .ld-producers-map.is-empty .ld-producers-map__fallback {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: absolute;
    inset: 0;
    gap: 12px;
    padding: 30px 34px;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(250,246,236,.82), rgba(250,246,236,.56));
  }
  .ld-producers-map__kicker { color: var(--ld-gold-deep); }
  .ld-producers-map__lead {
    font-family: var(--ld-f-serif);
    font-size: 19px;
    line-height: 1.25;
    color: var(--ld-ink);
    margin: 0;
    max-width: 28ch;
  }

  /* Right: producer list as vertical rows (overrides the 5-col grid). */
  .ld-producers-layout .ld-producers-grid {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    gap: 12px;
  }
  .ld-producers-layout .ld-producer-card { flex: 0 0 auto; }
  .ld-producers-layout .ld-producer-card__link {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    height: auto;
    min-height: 74px;
    padding: 9px 16px;
  }
  .ld-producers-layout .ld-producer-card__img-wrap {
    width: 54px;
    height: 54px;
    aspect-ratio: 1;
    border-radius: 50%;
    flex: 0 0 54px;
    background: #fff;
    border: 1px solid var(--ld-line);
  }
  .ld-producers-layout .ld-producer-card__img { object-fit: contain; padding: 0; }
  .ld-producers-layout .ld-producer-card__body {
    padding: 0;
    flex: 1;
    gap: 2px;
  }
  .ld-producers-layout .ld-producer-card__foot {
    min-width: 74px;
    margin-top: 0;
    padding-top: 2px;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
  }
  .ld-producers-layout .ld-producer-card__count {
    font-family: var(--ld-f-serif);
    font-size: 18px;
    line-height: 1;
    color: var(--ld-gold-deep);
    text-align: right;
  }
  .ld-producers-layout .ld-producer-card__count small {
    display: block;
    margin-top: 2px;
    font-family: var(--ld-f-body);
    font-size: 10px;
    font-style: italic;
    color: var(--ld-ink-mute);
  }
  .ld-producers-layout .ld-producer-card__arrow {
    display: none;
  }
  .ld-producers-layout .ld-producer-card:nth-child(n+5) { display: none; }

  .ld-producers-more {
    display: inline-flex;
    align-self: flex-start;
    margin-top: 14px;
    font-size: 14px;
    font-weight: 600;
    font-style: italic;
    color: var(--ld-ink);
    text-decoration: none;
  }

  /* The map panel carries the desktop "voir tous" CTA, drop the duplicate
     footer CTA. */
  .ld-section--producers .ld-section__footer { display: none; }
}

/* =============================================================================
   Home gift-box band
   ============================================================================= */

/* Mobile: banner image with overlay */
.ld-section--coffrets {
  margin-top: 24px;
  padding: 0 14px;
}

.ld-coffrets {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 10px;
  background: var(--ld-ink);
  min-height: 200px;
}

/* Mobile gradient overlay */
.ld-coffrets::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(29,29,27,.88) 0%, rgba(29,29,27,.5) 55%, rgba(29,29,27,.12) 100%);
  z-index: 1;
}

.ld-coffrets__text {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 16px;
  max-width: 72%;
  color: var(--ld-paper);
}

/* Show image as absolute bg on mobile */
.ld-coffrets__media {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
}

.ld-coffrets__img {
  width: 100%;
  height: 100%;
  min-height: 200px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.ld-coffrets__title {
  font-size: 22px;
  line-height: 1.05;
  margin: 0;
  color: #fff;
}

.ld-coffrets__title em {
  font-style: italic;
}

.ld-coffrets__desc {
  font-size: 12px;
  line-height: 1.55;
  color: rgba(250,246,236,.82);
  margin: 0;
}

.ld-coffrets__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 4px;
}

/* Ghost button light variant on dark bg */
.ld-coffrets__actions .ld-btn.ghost {
  color: var(--ld-paper);
  border-color: rgba(250,246,236,.55);
}
.ld-coffrets__actions .ld-btn.ghost:hover {
  background: rgba(250,246,236,.12);
}

/* Desktop full-bleed bands inside the home container. */
@media (min-width: 768px) {
  .ld-home > .ld-section--reassurance,
  .ld-home > .ld-section--coffrets {
    margin-left: -15px;
    margin-right: -15px;
  }
}

@media (min-width: 768px) {
  .ld-section--coffrets {
    background: var(--ld-cream);
    padding: 0;
    margin-top: 64px;
  }

  /* Desktop: 2-col row, text left and image right. */
  .ld-coffrets {
    flex-direction: row;
    height: 380px;
    min-height: 380px;
    position: static;
    overflow: visible;
    border-radius: 0;
    background: transparent;
    max-width: var(--ld-home-frame, 1800px);
    margin: 0 auto;
  }

  .ld-coffrets::before {
    display: none;
  }

  .ld-coffrets__text {
    position: static;
    z-index: auto;
    flex: 0 0 40%;
    padding: 58px 52px 58px 56px;
    justify-content: center;
    max-width: none;
    color: var(--ld-ink);
    gap: 16px;
  }

  .ld-coffrets__title {
    font-size: clamp(42px, 2.8vw, 54px);
    color: var(--ld-ink);
  }

  .ld-coffrets__desc {
    font-size: 15px;
    line-height: 1.65;
    color: var(--ld-ink-soft);
    max-width: 460px;
  }

  .ld-coffrets__actions .ld-btn.ghost {
    background: var(--ld-ink);
    color: var(--ld-paper);
    border-color: var(--ld-ink);
  }
  .ld-coffrets__actions .ld-btn.ghost:hover {
    background: #000;
    border-color: #000;
  }

  .ld-coffrets__media {
    display: block;
    position: static;
    flex: 1 1 auto;
    overflow: hidden;
  }

  .ld-coffrets__img {
    width: 100%;
    height: 100%;
    min-height: unset;
    object-fit: cover;
    object-position: center;
  }
}

/* =============================================================================
   Home story section
   ============================================================================= */

/* Mobile: compact horizontal card */
.ld-section--history {
  padding: 24px 14px 40px;
}

.ld-histoire {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--ld-line);
  background: var(--ld-paper-2);
}

.ld-histoire__text {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
  flex: 1;
  min-width: 0;
}

.ld-histoire__title {
  font-size: 16px;
  line-height: 1.15;
  margin: 0;
}

.ld-histoire__body {
  font-size: 11px;
  line-height: 1.5;
  color: var(--ld-ink-mute);
  margin: 0;
}

/* Hide second para on mobile */
.ld-histoire__body + .ld-histoire__body {
  display: none;
}

/* Stats row — hidden on mobile */
.ld-histoire__stats {
  display: none;
}

.ld-histoire__stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ld-histoire__stat-value {
  font-family: var(--ld-f-serif);
  font-size: 30px;
  line-height: 1;
  color: var(--ld-gold);
  letter-spacing: 0.02em;
}

.ld-histoire__stat-label {
  font-size: 11px;
  color: var(--ld-ink-mute);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-family: var(--ld-f-body);
}

/* Portrait — first on mobile (left side) */
.ld-histoire__portrait {
  flex: 0 0 110px;
  order: -1;
  border-radius: 0;
  overflow: hidden;
  flex-shrink: 0;
}

.ld-histoire__portrait-img {
  width: 110px;
  height: 100%;
  min-height: 130px;
  object-fit: cover;
  object-position: center top;
  display: block;
  aspect-ratio: unset;
}

@media (min-width: 768px) {
  .ld-section--history {
    padding: 64px 32px 80px;
  }

  /* Desktop: reset compact card, show full layout */
  .ld-histoire {
    flex-direction: row;
    gap: 64px;
    align-items: center;
    overflow: visible;
    border-radius: 0;
    border: none;
    background: transparent;
  }

  .ld-histoire__text {
    flex: 1;
    gap: 20px;
    padding: 0;
  }

  .ld-histoire__title {
    font-size: 44px;
    line-height: 1.1;
  }

  .ld-histoire__body {
    font-size: 15px;
    line-height: 1.7;
    color: var(--ld-ink-soft);
  }

  .ld-histoire__body + .ld-histoire__body {
    display: block;
  }

  .ld-histoire__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--ld-line);
  }

  .ld-histoire__portrait {
    flex: 0 0 38%;
    order: 0;
    border-radius: 8px;
    aspect-ratio: 4 / 5;
    height: auto;
  }

  .ld-histoire__portrait-img {
    width: 100%;
    height: 100%;
    min-height: unset;
    aspect-ratio: 4 / 5;
  }
}

/* =============================================================================
   Home mobile cleanup
   ============================================================================= */

/* ── Reassurance mobile styles: in base rules above (mobile-first). ── */

/* ── Nouveautés: compact mobile grid ─────────────────────────────────────── */
@media (max-width: 767.98px) {
  .ld-section--newproducts .ld-products-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 12px;
    padding: 0;
  }

  .ld-section--newproducts .ld-products-grid::-webkit-scrollbar { display: none; }

  .ld-section--newproducts .ld-products-grid .ld-product-card {
    flex: initial;
    min-width: 0;
  }

  .ld-section--newproducts {
    padding-bottom: 28px;
  }
}

/* ── Section header mobile styles: in base rule above (mobile-first). ── */
.ld-section--bestsellers .ld-section__footer,
.ld-section--producers .ld-section__footer {
  margin-top: 16px;
}
@media (min-width: 768px) {
  .ld-section--bestsellers .ld-section__footer,
  .ld-section--producers .ld-section__footer {
    margin-top: 28px;
  }
}

/* Home mobile order and extra sections. */

/* Mobile-only sections (Tous les rayons, Le Carnet) — hidden everywhere by
   default; revealed inside the mobile media query below. */
.ld-section--rayons,
.ld-section--carnet {
  display: none;
}

@media (max-width: 767.98px) {
  /* Mobile section order without touching the DOM. */
  .ld-home {
    display: flex;
    flex-direction: column;
  }
  .ld-home > .ld-section--hero        { order: 1; }
  .ld-home > .ld-section--bestsellers { order: 2; }
  .ld-home > .ld-section--coffrets    { order: 3; }
  .ld-home > .ld-section--rayons      { order: 4; display: block; }
  .ld-home > .ld-section--newproducts { order: 5; }
  .ld-home > .ld-section--producers   { order: 6; }
  .ld-home > .ld-section--carnet      { order: 7; display: block; }
  .ld-home > .ld-section--reassurance { order: 8; }

  .ld-section--producers {
    padding-bottom: 28px;
  }

  .ld-section--producers .ld-producers-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 12px;
    padding: 0;
  }

  .ld-section--producers .ld-producer-card {
    flex: initial;
  }

  .ld-section--producers .ld-producer-card__body {
    padding-bottom: 6px;
  }

  .ld-section--producers .ld-producer-card__foot {
    margin-top: 0;
    padding: 8px 12px 12px;
    border-top: 1px solid rgba(169,147,115,.16);
  }

  .ld-section--producers .ld-producer-card:nth-child(n+3) {
    display: none;
  }

  .ld-section--producers .ld-producers-more,
  .ld-section--producers .ld-section__footer {
    display: none;
  }

  /* Hide the desktop-only history section on mobile. */
  .ld-home > .ld-section--history { display: none; }

  /* !important overrides the inline display set by the chips JS. */
  .ld-section--bestsellers .ld-section__chips { display: none !important; }

  /* Best-sellers: 4 products only on mobile (2×2 grid). */
  .ld-section--bestsellers .ld-products-grid > .ld-product-card:nth-child(n+5) {
    display: none;
  }

  /* Keep section CTA top-aligned when the title wraps. */
  .ld-section--bestsellers .ld-section__header,
  .ld-section--newproducts .ld-section__header,
  .ld-section--carnet .ld-section__header {
    align-items: flex-start;
    flex-wrap: nowrap;
  }
  .ld-section--bestsellers .ld-section__all,
  .ld-section--newproducts .ld-section__all,
  .ld-section--carnet .ld-section__all {
    border: 0;
    background: none;
    padding: 0;
    align-self: flex-start;
    color: var(--ld-gold-deep);
    font-weight: 500;
    font-size: 12px;
    white-space: nowrap;
  }
}

/* "Tous les rayons" — mobile category grid (section hidden on desktop via the
   .ld-section--rayons base rule above, so these only ever render on mobile). */
.ld-section--rayons {
  padding: 28px 14px 0;
}
.ld-rayons__title {
  font-size: 22px;
  line-height: 1.05;
  margin: 0 0 12px;
}
.ld-rayons__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.ld-rayon-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 96px;
  padding: 12px;
  border-radius: 8px;
  overflow: hidden;
  background-color: var(--ld-cream-deep, #e3cf9d);
  background-size: cover;
  background-position: center;
  text-decoration: none;
}
.ld-rayon-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(29,29,27,0.75), rgba(29,29,27,0.3));
}
.ld-rayon-card__count {
  position: relative;
  align-self: flex-start;
  margin-bottom: auto;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 3px;
  background: rgba(255,255,255,0.92);
  color: var(--ld-ink, #1d1d1b);
}
.ld-rayon-card__name {
  position: relative;
  margin-top: 8px;
  font-family: var(--ld-f-serif, Georgia, serif);
  font-size: 15px;
  line-height: 1.1;
  color: #fff;
}

/* "Le Carnet / Nos recettes" — mobile blog teaser (section hidden on desktop). */
.ld-section--carnet {
  padding: 28px 0 0;
}
.ld-section--carnet .ld-section__header {
  padding: 0 14px;
}
.ld-carnet__scroll {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 14px 4px;
}
.ld-carnet__scroll::-webkit-scrollbar { display: none; }
.ld-carnet-card {
  flex: 0 0 190px;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  text-decoration: none;
  color: inherit;
}
.ld-carnet-card__media {
  display: block;
  height: 110px;
  background-size: cover;
  background-position: center;
}
.ld-carnet-card__media--empty {
  background: linear-gradient(135deg, var(--ld-cream, #eddbb3), var(--ld-gold, #a99373));
}
.ld-carnet-card__body {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 10px 12px;
}
.ld-carnet-card__badge {
  align-self: flex-start;
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 3px;
  background: var(--ld-cream, #eddbb3);
  color: var(--ld-gold-deep, #8c7757);
}
.ld-carnet-card__title {
  font-size: 13px;
  line-height: 1.25;
  color: var(--ld-ink, #1d1d1b);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ── Mobile visual refinements ────────────────────────────────────────────── */
@media (max-width: 767.98px) {
  /* Mobile eyebrow is just "BEST-SELLERS". */
  .ld-section--bestsellers .t-eyebrow .ld-bs-month { display: none; }

  /* Keep the home section concise. */
  .ld-section--newproducts .ld-products-grid > .ld-product-card:nth-child(n+5) {
    display: none;
  }

  .ld-section--carnet .ld-carnet__scroll {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
    gap: 10px;
    padding: 0 14px 4px;
  }

  .ld-section--carnet .ld-carnet-card {
    flex: initial;
    min-width: 0;
  }

  .ld-section--carnet .ld-carnet-card:nth-child(n+3) {
    display: none;
  }

  /* Filled gold CTA on the dark banner. */
  .ld-section--coffrets .ld-coffrets__actions .ld-btn.ghost {
    background: var(--ld-gold);
    border-color: var(--ld-gold);
    color: #fff;
  }
  .ld-section--coffrets .ld-coffrets__actions .ld-btn.ghost:hover {
    background: var(--ld-gold-deep);
    border-color: var(--ld-gold-deep);
  }

  /* Réassurance mobile: compact 2×2 grid, all promises visible and readable. */
  .ld-section--reassurance {
    padding-bottom: 24px;
  }

  .ld-section--reassurance .ld-reassurance {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 10px 12px;
  }
  .ld-section--reassurance .ld-reassurance__item {
    min-height: 48px;
    padding: 8px;
    min-width: 0;
    border: 1px solid rgba(169,147,115,.18);
    border-radius: 8px;
    background: rgba(250,246,236,.52);
  }
  .ld-section--reassurance .ld-reassurance__icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
  }
  .ld-section--reassurance .ld-reassurance__title {
    font-size: 10px;
    white-space: normal;
  }
}

/* =========================================================
   Mobile tab bar
   ========================================================= */

/* Suppress Ecolife's built-in quickmenu-mobile — replaced by .ld-tabbar
   posquickmenu.js does $('.quickmenu-mobile').show() which sets inline display:block.
   !important is required to win over that inline style. */
.quickmenu-mobile {
  display: none !important;
}

/* Tab bar height token — single source of truth for body clearance and cookie offset */
:root {
  --ld-tabbar-h: 65px;
}

/* Body clearance — prevent tab bar from overlapping page content */
body {
  padding-bottom: var(--ld-tabbar-h);
}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  body {
    padding-bottom: calc(var(--ld-tabbar-h) + env(safe-area-inset-bottom));
  }
}
@media (min-width: 768px) {
  body {
    padding-bottom: 0;
  }
}

/* Push the cookie-law banner above the tab bar on mobile so both are visible */
#poscookielaw {
  bottom: var(--ld-tabbar-h);
}
@supports (bottom: env(safe-area-inset-bottom)) {
  #poscookielaw {
    bottom: calc(var(--ld-tabbar-h) + env(safe-area-inset-bottom));
  }
}
@media (min-width: 768px) {
  #poscookielaw {
    bottom: 0;
  }
}

/* Tab bar container */
.ld-tabbar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: stretch;
  background: var(--ld-paper);
  border-top: 1px solid var(--ld-line);
  padding: 8px 8px 14px;
  box-shadow: 0 -4px 16px -8px rgba(0, 0, 0, 0.06);
  z-index: 200;
}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .ld-tabbar {
    padding-bottom: max(14px, env(safe-area-inset-bottom));
  }
}

/* Hidden on desktop */
@media (min-width: 768px) {
  .ld-tabbar {
    display: none;
  }
}

/* Tab item */
.ld-tabbar__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px 0;
  text-decoration: none;
  color: var(--ld-ink-mute);
  position: relative;
  -webkit-tap-highlight-color: transparent;
}

.ld-tabbar__item:hover,
.ld-tabbar__item:focus {
  text-decoration: none;
  outline: none;
}

/* Active state — gold bar on top */
.ld-tabbar__item.is-active::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 2px;
  background: var(--ld-gold);
  border-radius: 2px;
}

/* Active icon color */
.ld-tabbar__item.is-active .ld-tabbar__icon {
  color: var(--ld-gold);
}

/* Active label */
.ld-tabbar__item.is-active .ld-tabbar__label {
  color: var(--ld-ink);
  font-weight: 600;
}

.ld-tabbar__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.ld-tabbar__icon--cart {
  position: relative;
}

.ld-tabbar__cart-count {
  position: absolute;
  top: -8px;
  right: -10px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--ld-gold);
  color: var(--ld-paper);
  font-family: var(--ld-f-body);
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  box-shadow: 0 0 0 2px var(--ld-paper);
}

.ld-tabbar__cart-count[hidden] {
  display: none;
}

.ld-tabbar__label {
  font-family: var(--ld-f-body);
  font-size: 9.5px;
  font-weight: 400;
  line-height: 1;
  color: inherit;
  white-space: nowrap;
}

/* =============================================================================
   Category header
   ============================================================================= */

/* ---- Outer wrapper --------------------------------------------------------- */
.ld-cat-header {
  background: var(--ld-paper);
  border-bottom: 1px solid var(--ld-line);
}

/* ---- Breadcrumb strip ------------------------------------------------------ */
.ld-cat-header__breadcrumb {
  padding: 10px 14px;
  border-bottom: 1px solid var(--ld-line-soft);
}

/* Override Bootstrap / PS8 breadcrumb defaults */
.ld-cat-header__breadcrumb .breadcrumb {
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
}
.ld-cat-header__breadcrumb .breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ld-cat-header__breadcrumb .breadcrumb li {
  display: flex;
  align-items: center;
  font-family: var(--ld-f-thin);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--ld-ink-mute);
  line-height: 1.4;
}
.ld-cat-header__breadcrumb .breadcrumb li + li::before {
  content: '›';
  margin: 0 5px;
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
  font-size: 11px;
  line-height: 1;
}
.ld-cat-header__breadcrumb .breadcrumb li a,
.ld-cat-header__breadcrumb .breadcrumb li a span {
  color: var(--ld-ink-mute);
  text-decoration: none;
  font-family: var(--ld-f-thin);
  font-size: 10px;
  letter-spacing: 0.04em;
}
.ld-cat-header__breadcrumb .breadcrumb li a:hover {
  color: var(--ld-gold-deep);
  text-decoration: none;
}
/* Current page (last item) */
.ld-cat-header__breadcrumb .breadcrumb li:last-child span {
  color: var(--ld-ink);
  font-weight: 600;
}

/* ---- Hero block ------------------------------------------------------------ */
/* Mobile: stacked column */
.ld-cat-header__hero {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 14px 14px 20px;
}

/* ---- Text column ----------------------------------------------------------- */
.ld-cat-header__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ---- Eyebrow --------------------------------------------------------------- */
.ld-cat-eyebrow {
  font-family: var(--ld-f-thin);
  font-weight: 100;
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ld-gold-deep);
  line-height: 1.2;
}

/* ---- H1 -------------------------------------------------------------------- */
.ld-cat-h1 {
  font-family: var(--ld-f-serif);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: var(--ld-ink);
  margin: 0;
}

/* ---- Short description ----------------------------------------------------- */
.ld-cat-desc {
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink-mute);
  line-height: 1.6;
  margin: 0;
}

/* ---- Stats ----------------------------------------------------------------- */
.ld-cat-stats {
  display: flex;
  flex-direction: row;
  gap: 20px;
}
.ld-cat-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ld-cat-stat__value {
  font-family: var(--ld-f-serif);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--ld-gold);
  line-height: 1;
}
.ld-cat-stat__label {
  font-family: var(--ld-f-thin);
  font-size: 9px;
  font-weight: 100;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ld-ink-mute);
  line-height: 1.2;
}

/* ---- Desktop (≥ 768px) ----------------------------------------------------- */
@media (min-width: 768px) {
  .ld-cat-header__breadcrumb {
    padding: 14px 40px;
  }
  .ld-cat-header__breadcrumb .breadcrumb li,
  .ld-cat-header__breadcrumb .breadcrumb li a,
  .ld-cat-header__breadcrumb .breadcrumb li a span {
    font-size: 11px;
  }

  .ld-cat-header__hero {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
    padding: 20px 40px 32px;
  }

  .ld-cat-header__text {
    max-width: 720px;
    gap: 10px;
  }

  .ld-cat-eyebrow {
    font-size: 11px;
  }

  .ld-cat-h1 {
    font-size: 56px;
    line-height: 1.02;
  }

  .ld-cat-desc {
    font-size: 15px;
  }

  .ld-cat-stats {
    flex-shrink: 0;
    align-items: flex-end;
    gap: 24px;
    padding-bottom: 4px;
  }

  .ld-cat-stat__value {
    font-size: 36px;
  }

  .ld-cat-stat__label {
    font-size: 10px;
  }

  body#category .ld-cat-eyebrow {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--ld-gold-deep);
  }

  body#category .ld-cat-desc,
  body#category #category-description,
  body#category .category-description {
    font-size: 16px;
    line-height: 1.65;
  }
}

/* =============================================================================
   Category product listing grid
   ============================================================================= */

/* Neutralize Bootstrap/Ecolife padding on the listing section so our grid
   controls the horizontal spacing instead of the Bootstrap column */
#products-list {
  padding-left: 0;
  padding-right: 0;
}
#products-list > div {
  padding: 0;
}

/* Grid — 2 columns mobile (base, no media query) */
.ld-cat-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 14px 14px 32px;
}

/* Each grid cell is a flex container so the card fills its height */
.ld-cat-products-grid .item-product {
  display: flex;
  min-width: 0;
}

.ld-cat-products-grid .item-product .ld-product-card {
  flex: 1;
  min-width: 0;
}

/* Tablet — 2 columns; 4 columns start on desktop once cards have enough width. */
@media (min-width: 768px) {
  .ld-cat-products-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 24px 40px 56px;
  }

  body#category .ld-cat-products-grid .ld-product-card__img-wrap { aspect-ratio: 4 / 5; }
  body#category .ld-cat-products-grid .ld-product-card__info { padding: 14px 14px 16px; gap: 5px; }
  body#category .ld-cat-products-grid .ld-product-card__producer { font-size: 11px; font-weight: 600; }
  body#category .ld-cat-products-grid .ld-product-card__name { font-size: 17px; }
  body#category .ld-cat-products-grid .ld-product-card__price { font-size: 22px; }
}

@media (min-width: 992px) {
  .ld-cat-products-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* =============================================================================
   Category sort toolbar and view toggle
   ============================================================================= */

/* Toolbar container */
.ld-cat-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--ld-line-soft);
  background: var(--ld-paper);
}

/* Mobile-only short description strip (rendered after the chips). Hidden by
   default; desktop shows the description in the .ld-cat-header hero. */
.ld-cat-subcat-desc { display: none; }

/* Mobile Filtres button + load-more. Hidden by default; desktop keeps its own
   filter handling and the numeric pagination. */
.ld-cat-filters-btn { display: none; }
.ld-cat-loadmore { display: none; }

/* =============================================================================
   Category mobile composition
   ============================================================================= */
@media (max-width: 767.98px) {
  /* Title + breadcrumb are in the contextual header; hide the desktop hero. */
  body#category .ld-cat-header { display: none; }

  body#category .ld-cat-subcat-chips {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 10px 14px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: var(--ld-paper);
    border-bottom: 1px solid var(--ld-line);
  }

  body#category .ld-cat-subcat-chips::-webkit-scrollbar { display: none; }

  body#category .ld-cat-subcat-chip {
    min-height: 32px;
    padding: 7px 13px;
    font-size: 12px;
    font-weight: 600;
    background: #fff;
    border-color: var(--ld-line);
    color: var(--ld-ink);
    flex-shrink: 0;
  }

  body#category .ld-cat-subcat-chip.active {
    background: var(--ld-ink);
    border-color: var(--ld-ink);
    color: var(--ld-paper);
  }

  /* Short description right under the sub-category chips. */
  body#category .ld-cat-subcat-desc {
    display: block;
    margin: 0;
    padding: 8px 14px 10px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--ld-ink-mute);
    background: var(--ld-paper);
    border-bottom: 1px solid var(--ld-line);
  }

  /* Toolbar container kept for native AJAX replacement. */
  body#category #js-product-list-top.products-selection {
    padding: 0;
  }

  body#category .ld-cat-toolbar {
    min-height: 54px;
    padding: 9px 14px;
    border-bottom: 1px solid var(--ld-line);
    background: var(--ld-paper);
  }

  /* No grid/list view toggle on mobile. */
  body#category .ld-view-toggle { display: none; }

  /* Count centered; sort stays right. */
  body#category .ld-cat-toolbar__count { flex: 1; text-align: center; }

  /* Filter button at the left of the toolbar. */
  body#category .ld-cat-filters-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    order: -1;
    flex-shrink: 0;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid var(--ld-ink);
    background: var(--ld-ink);
    color: var(--ld-paper);
    font-family: var(--ld-f-body);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
  }

  body#category .ld-cat-toolbar__right {
    gap: 0;
    flex-shrink: 0;
  }

  body#category .ld-cat-toolbar__sort .select-title {
    max-width: 150px;
    min-height: 34px;
    padding: 7px 12px;
    font-size: 12px;
    border-radius: 999px;
  }

  body#category .ld-cat-toolbar__filter-btn {
    display: none;
  }
  /* No facets available: keep the button non-operational. */
  body#category .ld-cat-filters-btn--empty {
    cursor: default;
  }

  /* Listing footer: hide the numeric pagination, show the load-more button. */
  body#category .pagination .page-list { display: none; }
  body#category .ld-cat-loadmore {
    display: flex;
    justify-content: center;
    padding: 20px 14px 10px;
  }
  body#category .ld-cat-loadmore__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    max-width: 100%;
    padding: 12px 22px;
    border: 1px solid var(--ld-ink);
    border-radius: 4px;
    background: transparent;
    color: var(--ld-ink);
    font-family: var(--ld-f-body);
    font-size: 13px;
    font-style: italic;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    text-align: center;
  }
  body#category .ld-cat-loadmore__btn:hover { background: var(--ld-paper-2); }
  body#category .ld-cat-loadmore__btn.is-loading { opacity: 0.6; pointer-events: none; }
}

/* Left: product count */
.ld-cat-toolbar__count { flex-shrink: 0; }

.ld-cat-toolbar__count-text {
  font-family: var(--ld-f-body);
  font-size: 12px;
  color: var(--ld-ink-mute);
  white-space: nowrap;
}

/* Right: sort + toggle + filter */
.ld-cat-toolbar__right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  justify-content: flex-end;
}

/* Sort wrapper — neutralise Bootstrap col classes from sort-orders.tpl */
.ld-cat-toolbar__sort {
  display: flex;
  align-items: center;
  gap: 0;
}

.ld-cat-toolbar__sort .sort-by,
.ld-cat-toolbar__sort .products-sort-order {
  float: none;
  width: auto;
  max-width: none;
  padding: 0;
  flex-shrink: 0;
}

.ld-cat-toolbar__sort .sort-by {
  display: none;
}

.ld-cat-toolbar__sort .products-sort-order {
  position: relative;
}

.ld-cat-toolbar__sort .select-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 13px;
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-ink);
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s, color 0.15s;
}

.ld-cat-toolbar__sort .select-title:hover,
.ld-cat-toolbar__sort .select-title:focus {
  border-color: var(--ld-gold);
  color: var(--ld-gold-deep);
  outline: none;
}

.ld-cat-toolbar__sort .select-title .material-icons {
  font-size: 15px;
  line-height: 1;
  color: var(--ld-ink-mute);
}

.ld-cat-toolbar__sort .dropdown-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 200;
  min-width: 180px;
  background: var(--ld-paper);
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  box-shadow: var(--ld-shadow-card);
  padding: 4px 0;
}

.ld-cat-toolbar__sort .dropdown-menu .select-list {
  display: block;
  padding: 8px 14px;
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink);
  text-decoration: none;
  transition: background 0.12s, color 0.12s;
}

.ld-cat-toolbar__sort .dropdown-menu .select-list:hover {
  background: var(--ld-paper-2);
}

.ld-cat-toolbar__sort .dropdown-menu .select-list.current {
  background: var(--ld-cream);
  color: var(--ld-gold-deep);
}

/* View toggle */
.ld-view-toggle {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--ld-line);
  border-radius: 6px;
  overflow: hidden;
  flex-shrink: 0;
}

.ld-view-toggle__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: var(--ld-paper);
  border: none;
  color: var(--ld-ink-mute);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.ld-view-toggle__btn + .ld-view-toggle__btn {
  border-left: 1px solid var(--ld-line);
}

.ld-view-toggle__btn:hover {
  background: var(--ld-paper-2);
  color: var(--ld-ink);
}

.ld-view-toggle__btn[aria-pressed="true"] {
  background: var(--ld-cream);
  color: var(--ld-gold-deep);
}

/* Filter button compatibility */
.ld-cat-toolbar__filter-btn {
  flex-shrink: 0;
  font-size: 13px;
  padding: 5px 12px;
}

/* Tablet */
@media (min-width: 768px) {
  .ld-cat-toolbar {
    padding: 12px 40px;
  }

  .ld-cat-toolbar__count-text { font-size: 13px; }

  body#category .products-sort-order .select-title,
  body#category .ld-cat-count,
  body#category .pagination,
  body#category .pagination a,
  body#category .pagination span { font-size: 15px; }

  .ld-cat-toolbar__right { gap: 12px; }

  .ld-cat-toolbar__sort .sort-by {
    display: inline;
    font-family: var(--ld-f-body);
    font-size: 13px;
    color: var(--ld-ink-mute);
    white-space: nowrap;
  }
}

/* =============================================================================
   Category list view
   ============================================================================= */

/* Single-column layout */
.ld-cat-products-grid--list {
  grid-template-columns: 1fr;
  gap: 10px;
  padding-left: 14px;
  padding-right: 14px;
}

@media (min-width: 768px) {
  .ld-cat-products-grid--list {
    gap: 12px;
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media (min-width: 1200px) {
  .ld-cat-products-grid--list {
    gap: 14px;
    padding-left: 40px;
    padding-right: 40px;
  }
}

/* Card: horizontal row */
.ld-cat-products-grid--list .ld-product-card {
  flex-direction: row;
  align-items: stretch;
}

/* Image: fixed-width, fills card height */
.ld-cat-products-grid--list .ld-product-card__img-wrap {
  flex-shrink: 0;
  width: 100px;
  aspect-ratio: auto;
  align-self: stretch;
}

@media (min-width: 768px) {
  .ld-cat-products-grid--list .ld-product-card__img-wrap { width: 130px; }
}

@media (min-width: 1200px) {
  .ld-cat-products-grid--list .ld-product-card__img-wrap { width: 160px; }
}

/* Info zone fills remaining space */
.ld-cat-products-grid--list .ld-product-card__info {
  flex: 1;
  min-width: 0;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Hover CTA overlay doesn't make sense in list view */
.ld-cat-products-grid--list .ld-product-card__hover-add {
  display: none;
}

/* =============================================================================
   Category faceted search wrapper
   ============================================================================= */

/* ── Filter bar wrapper (ps_facetedsearch.tpl #search_filters_wrapper) ──────── */

.ld-filter-bar {
  background: var(--ld-paper-2);
  border-top: 1px solid var(--ld-cream-deep);
  border-bottom: 1px solid var(--ld-cream-deep);
  position: sticky;
  top: 0;
  z-index: 40;
  /* Mobile: hidden until toggled — drawer mode handled by Ecolife JS */
  display: none;
}

/* Mobile: filter bar appears as a slide-in panel when toggler is clicked */
.ld-filter-bar.open,
.ld-filter-bar.opened {
  display: block;
}

@media (min-width: 768px) {
  /* Desktop: always visible as the sticky inline chip bar */
  .ld-filter-bar,
  .search_filters_top.ld-filter-bar {
    display: block;
    padding: 0 24px;
  }

  .search_filters_top.ld-filter-bar {
    position: static;
    left: auto;
    top: auto;
    bottom: auto;
    width: auto;
    max-width: none;
    min-width: 0;
    height: auto;
    min-height: 0;
    overflow: visible;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
  }

  .search_filters_top.ld-filter-bar .close-filter {
    display: none;
  }
}

@media (min-width: 1200px) {
  .ld-filter-bar { padding: 0 40px; }
}

/* Mobile controls header (OK button + clear-all target) */
.ld-filter-bar__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--ld-line);
}

/* Overlay backdrop (mobile) */
.ld-filter-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(29, 29, 27, 0.4);
  z-index: 39;
}

.ld-filter-overlay.open { display: block; }

@media (max-width: 767.98px) {
  body#category .search_filters_top.ld-filter-bar {
    position: fixed;
    top: 68px;
    right: 0;
    bottom: var(--ld-tabbar-h, 65px);
    left: 0;
    width: 100%;
    max-width: none;
    min-width: 0;
    height: auto;
    padding: 0;
    background: var(--ld-paper);
    border-top: 1px solid var(--ld-line);
    border-bottom: 0;
    overflow-y: auto;
    z-index: 90;
    transform: translateX(-100%);
  }

  body#category .search_filters_top.ld-filter-bar.opened {
    transform: translateX(0);
  }

  body#category .search_filters_top.ld-filter-bar .close-filter {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ld-line);
    border-radius: 999px;
    background: #fff;
    color: var(--ld-ink);
    font-size: 18px;
  }

  body#category .search_filters_top.ld-filter-bar .close-filter i {
    line-height: 1;
  }

  body#category .search_filters_overlay.opened {
    display: block;
    z-index: 89;
  }
}

/* ── #search_filters — the facets container ──────────────────────────────────── */

.ld-facets {
  /* Mobile: vertical stack inside the drawer */
  padding: 0 14px 16px;
  margin: 0;
}

@media (min-width: 768px) {
  .ld-facets {
    /* Desktop: horizontal flex row of chip dropdowns */
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-height: 54px;
    padding: 9px 0;
    margin: 0;
  }
}

/* Facets title — hidden on desktop (chips are self-labelled) */
.ld-facets__title { display: none; }
.ld-facets__title--mobile {
  font-family: var(--ld-f-thin);
  font-weight: 100;
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--ld-ink-mute);
  padding: 14px 0 8px;
}

@media (max-width: 767.98px) {
  body#category .ld-facets {
    height: auto;
    padding: 0 14px 24px;
    margin: 0;
  }

  body#category .ld-facets__title--mobile {
    display: block;
    min-height: 64px;
    margin: 0;
    padding: 18px 52px 14px 2px;
    font-family: var(--ld-f-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: var(--ld-ink);
    border-bottom: 1px solid var(--ld-line);
  }
}

@media (min-width: 768px) {
  .ld-facets__title--mobile { display: none; }
}

/* Clear-all button (desktop — inside chip row) */
.ld-facets__clearall {
  display: none;
  order: 999;
}

.ld-facets__clearall-btn {
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--ld-gold-deep);
  background: none;
  border: none;
  padding: 0 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.12s;
}

.ld-facets__clearall-btn:hover { color: var(--ld-gold-text); }

/* Chips wrapper — inline flex row */
.ld-facets__chips {
  display: flex;
  flex-direction: column;
  gap: 0;
}

@media (max-width: 767.98px) {
  body#category .ld-facets__chips {
    gap: 0;
  }
}

@media (min-width: 768px) {
  .ld-facets__chips {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
  }
}

/* ── Individual facet section ────────────────────────────────────────────────── */

.ld-facet {
  position: relative;
  /* Mobile: full-width accordion section */
  border-bottom: 1px solid var(--ld-line-soft);
}

@media (max-width: 767.98px) {
  body#category .ld-facet {
    border-bottom: 1px solid var(--ld-line);
  }
}

.ld-facet:last-child { border-bottom: none; }

@media (min-width: 768px) {
  .ld-facet {
    border-bottom: none;
    padding: 0;
    /* Desktop: the chip is the only visible element; panel is a dropdown */
  }
}

/* ── Chip trigger button (desktop facet dropdown) ────────────────────────────── */

.ld-facet__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 36px;
  padding: 8px 14px;
  border-radius: 999px;
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 600;
  background: #fff;
  border: 1px solid var(--ld-line);
  color: var(--ld-ink);
  cursor: pointer;
  white-space: nowrap;
  transition: border-color 0.15s, background 0.15s;
  /* Hidden on mobile — mobile uses .ld-facet__mobile-title accordion */
  display: none;
}

@media (min-width: 768px) {
  .ld-facet__chip { display: inline-flex; }
}

.ld-facet__chip:hover { border-color: var(--ld-gold); }

.ld-facet__chip--active {
  background: var(--ld-ink);
  border-color: var(--ld-ink);
  color: var(--ld-paper);
}

.ld-facet__chip--active:hover { border-color: var(--ld-ink); }

.ld-facet__chip-label { color: var(--ld-ink-mute); }
.ld-facet__chip--active .ld-facet__chip-label { color: var(--ld-paper); }

.ld-facet__chip-value {
  font-weight: 700;
  color: var(--ld-ink);
}

.ld-facet__chip--active .ld-facet__chip-value { color: var(--ld-paper); }

.ld-facet__chip-chevron {
  flex-shrink: 0;
  transition: transform 0.2s;
}

.ld-facet__chip[aria-expanded="true"] .ld-facet__chip-chevron {
  transform: rotate(180deg);
}

/* ── Mobile accordion title ──────────────────────────────────────────────────── */

.ld-facet__mobile-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  cursor: pointer;
}

.ld-facet__mobile-title .facet-title {
  font-family: var(--ld-f-body);
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-ink);
  margin: 0;
}

@media (max-width: 767.98px) {
  body#category .ld-facet__mobile-title {
    min-height: 52px;
    padding: 0 2px;
  }

  body#category .ld-facet__mobile-title .facet-title {
    font-size: 15px;
    font-weight: 700;
  }

  body#category .ld-facet__mobile-title .collapse-icons {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    color: var(--ld-gold-deep);
  }
}

@media (min-width: 768px) {
  /* Already hidden by .hidden-md-up Bootstrap class; belt-and-suspenders */
  .ld-facet__mobile-title { display: none; }
}

/* ── Filter item panel (dropdown on desktop, collapse on mobile) ─────────────── */

.ld-facet__panel {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
}

@media (max-width: 767.98px) {
  body#category .ld-facet__panel {
    margin: 0 0 10px;
    padding: 2px 0 10px;
  }

  body#category #search_filters .ld-facet__panel.collapse:not(.in):not(.show) {
    display: none;
  }

  body#category #search_filters .ld-facet__panel.collapse.in,
  body#category #search_filters .ld-facet__panel.collapse.show {
    display: block;
  }
}

@media (min-width: 768px) {
  .ld-facet__panel {
    /* Desktop: absolute dropdown below the chip */
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    min-width: 200px;
    max-width: 280px;
    background: #fff;
    border: 1px solid var(--ld-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(29, 29, 27, 0.12);
    padding: 10px 0;
    margin: 0;
    z-index: 50;
    /* PS8 Bootstrap collapse controls visibility — we add desktop positioning */
  }

  #search_filters .ld-facet__panel.collapse:not(.in):not(.show) {
    display: none;
  }

  #search_filters .ld-facet__panel.collapse.in,
  #search_filters .ld-facet__panel.collapse.show {
    display: block;
  }
}

/* Filter list items */
.ld-facet__item {
  padding: 0;
}

.ld-facet__label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 16px;
  cursor: pointer;
  transition: background 0.1s;
  width: 100%;
}

.ld-facet__label:hover { background: var(--ld-paper-2); }
.ld-facet__label.active { background: var(--ld-cream); }

@media (max-width: 767.98px) {
  body#category .ld-facet__label {
    min-height: 42px;
    padding: 8px 4px;
    gap: 10px;
  }

  body#category .ld-facet__link {
    font-size: 14px;
    line-height: 1.35;
  }

  body#category .ld-facet__count {
    margin-left: 3px;
  }
}

@media (min-width: 768px) {
  .ld-facet[data-type="availability"] .ld-facet__panel {
    min-width: 330px;
  }

  .ld-facet__label--stockonly {
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
  }

  .ld-facet__label--stockonly .ld-facet__link {
    font-size: 14px;
    line-height: 1.35;
  }
}

.ld-facet__link {
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink);
  text-decoration: none;
  flex: 1;
}

#search_filters .facet .ld-facet__label .ld-facet__link {
  display: flex;
  align-items: center;
  min-height: 18px;
  margin-top: 0;
}

.ld-facet__count {
  font-size: 11px;
  color: var(--ld-ink-mute);
}

/* Custom checkbox / radio — keep PS8 native styles, add minor tweaks */
.ld-facet__checkbox,
.ld-facet__radio {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0;
}

#search_filters .facet .ld-facet__checkbox input[type='checkbox'] {
  margin-top: 0;
}

#search_filters .facet .ld-facet__checkbox input[type='checkbox'] + span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-right: 0;
  vertical-align: middle;
}

/* Slider panel */
.ld-facet__slider-wrap {
  padding: 8px 16px;
}

/* ── Dropdown facet widget ────────────────────────────────────────────────────── */

.ld-facet__dropdown { position: relative; }

.ld-facet__dropdown-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 7px 14px;
  cursor: pointer;
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink);
}

.ld-facet__dropdown-option {
  display: block;
  padding: 6px 16px;
  font-family: var(--ld-f-body);
  font-size: 13px;
  color: var(--ld-ink);
  text-decoration: none;
  transition: background 0.1s;
}

.ld-facet__dropdown-option:hover { background: var(--ld-paper-2); }

/* ── Active filters strip (.ld-active-filters-strip wrapper + #js-active-search-filters) */

.ld-active-filters-strip {
  background: var(--ld-paper);
  border-bottom: 1px solid var(--ld-line);
}

.ld-active-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  padding: 8px 14px;
  background: transparent;
}

.ld-active-filters--empty { display: none; }

@media (min-width: 768px) {
  .ld-active-filters {
    min-height: 48px;
    padding: 8px 24px;
  }
}

@media (min-width: 1200px) {
  .ld-active-filters { padding: 8px 40px; }
}

/* "FILTRES ACTIFS :" eyebrow label */
.ld-active-filters__eyebrow {
  font-family: var(--ld-f-thin);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ld-gold-deep);
  white-space: nowrap;
  flex-shrink: 0;
}

/* Chip row — horizontally scrollable on mobile */
.ld-active-filters__chips {
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  flex: 1;
  min-width: 0;
}

.ld-active-filters__chips::-webkit-scrollbar { display: none; }

/* Active filter chip (badge style) */
.ld-active-filters__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 5px 11px;
  border-radius: 999px;
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 600;
  background: #fff;
  border: 1px solid var(--ld-line);
  color: var(--ld-ink);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
  flex-shrink: 0;
}

.ld-active-filters__chip:hover {
  background: var(--ld-paper-2);
  border-color: var(--ld-gold);
  color: var(--ld-ink);
  text-decoration: none;
}

.ld-active-filters__chip-text { line-height: 1.3; }

.ld-active-filters__chip-close {
  flex-shrink: 0;
  opacity: 0.65;
}

/* "Clear all" text link */
.ld-active-filters__clearall {
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--ld-gold-deep);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  margin-left: 4px;
  transition: color 0.12s;
}

.ld-active-filters__clearall:hover {
  color: var(--ld-gold-text);
  text-decoration: none;
}

@media (max-width: 767.98px) {
  body#category .ld-active-filters-strip {
    background: var(--ld-paper);
    border-bottom: 1px solid var(--ld-line);
  }

  body#category .ld-active-filters {
    padding: 8px 14px 10px;
    gap: 8px;
  }

  body#category .ld-active-filters__eyebrow {
    display: none;
  }

  body#category .ld-active-filters__chip {
    min-height: 30px;
    padding: 6px 11px;
    background: var(--ld-ink);
    border-color: var(--ld-ink);
    color: var(--ld-paper);
    font-size: 12px;
    font-weight: 600;
  }

  body#category .ld-active-filters__chip:hover {
    background: var(--ld-ink-soft);
    border-color: var(--ld-ink-soft);
    color: var(--ld-paper);
  }

  body#category .ld-active-filters__clearall {
    font-size: 12px;
  }
}

/* ── Filter button in toolbar ───────────────────────────────────────────────── */
/* .ld-cat-toolbar__filter-btn styles already defined in the toolbar section above */

/* Mobile: show filter count badge on the toggler when filters active */
.ld-cat-toolbar__filter-btn[data-active-count]::after {
  content: attr(data-active-count);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  margin-left: 5px;
  border-radius: 999px;
  background: var(--ld-gold);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  vertical-align: middle;
}

/* ── Empty state ─────────────────────────────────────────────────────────────── */

#search_filters:empty,
#search_filters[style*="display:none"] {
  display: none;
}

/* ========================
   Category SEO section
   ======================== */

/* Mobile base: compact SEO strip. */
.ld-cat-seo {
  padding: 14px 14px 24px;
  background: var(--ld-cream, #faf9f6);
  border-top: 1px solid var(--ld-line, #e8e4dd);
  overflow: hidden;
  box-sizing: border-box;
}

.ld-cat-seo__inner {
  max-width: 860px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

.ld-cat-seo__body {
  font-size: 0.875rem;
  line-height: 1.75;
  color: var(--ld-ink-mute, #666);
  overflow-wrap: break-word;
  word-break: break-word;
}

.ld-cat-seo__body p {
  margin: 0 0 0.75rem;
}

.ld-cat-seo__body p:last-child {
  margin-bottom: 0;
}

.ld-cat-seo__body span {
  display: inline;
}

/* BO HTML safety: prevent images or tables from causing horizontal overflow */
.ld-cat-seo__body img {
  max-width: 100%;
  height: auto;
}

.ld-cat-seo__body table {
  max-width: 100%;
  overflow-x: auto;
  display: block;
}

@media (min-width: 768px) {
  .ld-cat-seo {
    padding: 2.5rem 2rem 3rem;
  }

  .ld-cat-seo__body {
    font-size: 0.9375rem;
    column-count: 2;
    column-gap: 3rem;
  }

  .ld-cat-seo__body p {
    break-inside: avoid;
  }
}

@media (min-width: 1200px) {
  .ld-cat-seo {
    padding: 3rem 2rem 3.5rem;
  }
}

/* =============================================================================
   Mobile category polish
   ============================================================================= */

/* ── 1. Sidebar hidden on all viewports ───────────────────────────────────── */
body.page-category #left-column {
  display: none;
}

/* Content wrapper fills 100% at every breakpoint once the sidebar is gone
   (col-sm-8/col-md-9 would otherwise leave 25–33% empty). */
body.page-category #content-wrapper {
  flex: 0 0 100%;
  max-width: 100%;
}

/* ── 2. Category header: compact mobile view ───────────────────────────────── */
/* Eyebrow is redundant at compact mobile height */
@media (max-width: 767.98px) {
  .ld-cat-eyebrow {
    display: none;
  }

  .ld-cat-header__hero {
    padding: 10px 14px 14px;
    gap: 8px;
  }

  .ld-cat-h1 {
    font-size: 24px;
    line-height: 1.1;
  }

  /* Clamp description to 2 lines — full text is in the SEO section */
  .ld-cat-desc {
    font-size: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Stat block: product count is already shown in the toolbar */
  .ld-cat-stats {
    display: none;
  }
}

/* ── 3. Toolbar: view toggle hidden on mobile ──────────────────────────────── */
@media (max-width: 767.98px) {
  .ld-view-toggle {
    display: none;
  }

  /* Prevent sort label from overflowing on narrow screens */
  .ld-cat-toolbar__sort .select-title {
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

}

/* ── 4. Product grid: slightly tighter on 390px ─────────────────────────────── */
/* 10px gap prevents cards from feeling cramped at 390px (2 cols × ~180px each) */
@media (max-width: 767.98px) {
  .ld-cat-products-grid {
    gap: 10px;
    padding-left: 12px;
    padding-right: 12px;
  }
}

/* ── 5. Pagination: accessible tap targets ─────────────────────────────────── */
@media (max-width: 767.98px) {
  #js-pagination .page-link {
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  #js-pagination .pagination {
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
  }
}

/* ── 7. Force grid view on mobile regardless of localStorage preference ──────── */
@media (max-width: 767.98px) {
  .ld-cat-products-grid--list {
    grid-template-columns: repeat(2, 1fr);
  }

  .ld-cat-products-grid--list .ld-product-card {
    flex-direction: column;
    align-items: stretch;
  }

  .ld-cat-products-grid--list .ld-product-card__img-wrap {
    width: auto;
    aspect-ratio: 1 / 1;
    align-self: auto;
  }

  .ld-cat-products-grid--list .ld-product-card__info {
    padding: 10px;
    justify-content: flex-start;
  }

  /* Re-enable hover CTA which is suppressed in list view */
  .ld-cat-products-grid--list .ld-product-card__hover-add {
    display: block;
  }
}

/* Mobile sub-category chips. */
.ld-cat-subcat-chips { display: none; }

/* ==========================================================================
   Product page skeleton
   ========================================================================== */

/* ── Page wrapper ─────────────────────────────────────────────────────────── */
.ld-product-page {
  padding: 0 0 48px;
}

/* ── Mobile: single column (base) ────────────────────────────────────────── */
.ld-product-layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 16px 16px 0;
}

.ld-product-gallery-col,
.ld-product-info-col {
  width: 100%;
  min-width: 0;
}

/* ── H1 ───────────────────────────────────────────────────────────────────── */
.ld-product__name {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--ld-ink, #1d1d1b);
  margin: 0 0 8px;
}

/* ── Manufacturer ────────────────────────────────────────────────────────── */
.ld-product__manufacturer {
  color: var(--ld-ink-mute, #6a625a);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin: 0 0 16px;
}

/* ── Short description ───────────────────────────────────────────────────── */
.ld-product__desc-short {
  color: var(--ld-ink-soft, #2a2724);
  font-size: 0.9375rem;
  line-height: 1.65;
  margin: 12px 0 16px;
}

/* ── Tabs row ─────────────────────────────────────────────────────────────── */
.ld-product-tabs-row {
  margin-top: 0;
  padding: 0;
  /* Keep tab overflow scrolling active inside grid/flex layouts. */
  min-width: 0;
}

/* ── Desktop: 2 columns at 768px+ ───────────────────────────────────────── */
@media (min-width: 768px) {
  /* Desktop product layout: one page scroll, gallery and buy box aligned in a
     shared frame. The buy column stays in normal flow; no internal/sticky scroll
     behavior is used on desktop. */
  .ld-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 58fr) minmax(360px, 42fr);
    grid-template-rows: auto 1fr;
    grid-template-areas:
      "gallery info"
      "tabs    info";
    column-gap: clamp(42px, 5vw, 76px);
    align-items: start;
    width: min(1500px, calc(100vw - 96px));
    margin-inline: auto;
    padding: 36px 0 0;
  }

  .ld-product-gallery-col {
    grid-area: gallery;
    max-width: 100%;
  }

  .ld-product-info-col {
    grid-area: info;
    position: static;
    align-self: start;
  }

  .ld-product-tabs-row {
    grid-area: tabs;
  }

  .ld-product__name {
    font-size: 2.5rem;
    line-height: 1.05;
  }
}

/* ==========================================================================
   Product gallery
   ========================================================================== */

/* ── Gallery wrapper ─────────────────────────────────────────────────────── */
/* Mobile: main image stacked above thumbnails */
.ld-gallery {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ── Main image wrap (position:relative for badge overlay) ───────────────── */
.ld-gallery__main-wrap {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: transparent;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ld-gallery__img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(78vw, 430px);
  object-fit: contain;
  mix-blend-mode: multiply;
  transform: none;
  transition: opacity 0.12s ease;
}

/* ── Flags / badges (overlaid on main image) ─────────────────────────────── */
.ld-gallery__flags {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  display: flex;
  flex-direction: column;  /* NO <br> — flex-column stacks items natively */
  gap: 4px;
  list-style: none;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.ld-gallery__badge {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 4px;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.4;
  white-space: nowrap;
  background: var(--ld-ink-mute, #6a625a);
  color: #fff;
}

/* Badge colour variants — PS8 flag types */
.ld-gallery__badge--discount,
.ld-gallery__badge--reduction,
.ld-gallery__badge--on-sale {
  background: var(--ld-gold, #a99373);
}

.ld-gallery__badge--new {
  background: var(--ld-success, #4a7a3a);
}

.ld-gallery__badge--out_of_stock,
.ld-gallery__badge--out-of-stock {
  background: var(--ld-ink-mute, #6a625a);
}

/* ── Thumbnail strip ─────────────────────────────────────────────────────── */
/* Mobile: horizontal scroll row */
.ld-gallery__thumbs {
  display: flex;
  flex-direction: row;
  gap: 6px;
  overflow-x: auto;
  overflow-y: visible;
  padding: 4px 0;
  /* Hide scrollbar cross-browser */
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.ld-gallery__thumbs::-webkit-scrollbar {
  display: none;
}

.ld-gallery__thumb-btn {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  padding: 0;
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 4px;
  background: var(--ld-paper-2, #f4ecd9);
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.12s ease;
}

.ld-gallery__thumb-btn:hover {
  border-color: var(--ld-gold, #a99373);
}

.ld-gallery__thumb-btn.is-active {
  border: 2px solid var(--ld-gold, #a99373);
}

.ld-gallery__thumb-btn img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Desktop: row with vertical thumb column on the left ─────────────────── */
@media (min-width: 768px) {
  .ld-gallery {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
  }

  /* Thumbs move to the left via order:-1 (HTML order: main first, thumbs second) */
  .ld-gallery__thumbs {
    flex-direction: column;
    flex: 0 0 80px;
    width: 80px;
    order: -1;
    overflow-x: visible;
    overflow-y: visible;
    padding: 0;
    gap: 8px;
    max-height: none;
  }

  .ld-gallery__thumb-btn {
    flex: 0 0 80px;
    width: 80px;
    height: 80px;
    border-radius: 6px;
  }

  .ld-gallery__main-wrap {
    flex: 1;
    min-width: 0;
    max-width: 660px;
    margin-inline: 0;
  }

  .ld-gallery__img {
    max-height: 660px;
    transform: none;
  }
}

/* ==========================================================================
   Product buy box
   ========================================================================== */

/* ── Buy box wrapper ──────────────────────────────────────────────────────── */
.ld-product-buy-box {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 16px;
}

/* ── Prices ───────────────────────────────────────────────────────────────── */
/* Reset Ecolife/PS8 default margin */
.ld-product-buy-box .product-prices,
.ld-product-info-col .product-prices {
  margin-top: 0;
}

.ld-product-buy-box .product-prices > div {
  margin-bottom: 0;
}

/* Discount row: old price + badge inline */
.ld-product-info-col .product-discount {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

/* Barré price */
.ld-product-info-col .product-discount .regular-price {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 0.875rem;
  color: var(--ld-ink-mute, #6a625a);
  font-weight: 400;
  text-decoration: line-through;
  margin-right: 0;
}

/* Discount badge (Save %) */
.ld-product-info-col .discount.discount-percentage,
.ld-product-info-col .discount.discount-amount {
  display: inline-block;
  padding: 2px 8px;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  font-weight: 700;
  border-radius: 4px;
  background: var(--ld-gold, #a99373);
  color: #fff;
  border: none;
}

/* Price row: current value */
.ld-product-info-col .product-price {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

.ld-product-info-col .current-price {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

/* Current price: body font, bold. Extra specificity beats posthemeoptions_s_1.css. */
.ld-product-info-col .product-prices .current-price .current-price-value {
  font-family: var(--ld-f-body, system-ui, -apple-system, sans-serif);
  font-size: 36px;
  font-weight: 700;
  line-height: 1;
  color: var(--ld-ink, #1d1d1b);
}

.ld-product-info-col .ld-product-tax-label {
  color: var(--ld-ink-mute, #6a625a);
  font-family: var(--ld-f-body, system-ui, -apple-system, sans-serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}

/* Unit price */
.ld-product-info-col .product-unit-price {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  color: var(--ld-ink-mute, #6a625a);
  margin: 0;
}

/* Tax / delivery label */
.ld-product-info-col .tax-shipping-delivery-label {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  color: var(--ld-ink-mute, #6a625a);
  line-height: 1.5;
}

.ld-product-info-col .tax-shipping-delivery-label .delivery-information {
  color: var(--ld-ink-mute, #6a625a);
  font-weight: 400;
  padding-left: 0;
}

.ld-product-info-col .tax-shipping-delivery-label .delivery-information::before {
  content: '·';
  padding: 0 4px;
}

.ld-product-info-col .product-without-taxes {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  color: var(--ld-ink-mute, #6a625a);
  margin: 0;
}

/* ── Availability ─────────────────────────────────────────────────────────── */
.ld-product-info-col #product-availability {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 12px;
  font-weight: 600;
}

.ld-product-info-col #product-availability.is-empty {
  display: none;
}

/* Replace material icon glyph with a colored dot */
.ld-product-info-col #product-availability .material-icons {
  font-size: 0;
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  vertical-align: middle;
  flex-shrink: 0;
}

.ld-product-info-col #product-availability .material-icons.product-available {
  background: var(--ld-success, #4a7a3a);
  box-shadow: 0 0 0 3px rgba(74, 122, 58, 0.2);
}

.ld-product-info-col #product-availability .material-icons.product-last-items {
  background: var(--ld-warn, #b65b2a);
  box-shadow: 0 0 0 3px rgba(182, 91, 42, 0.2);
}

.ld-product-info-col #product-availability .material-icons.product-unavailable {
  background: var(--ld-ink-mute, #6a625a);
}

/* ── Product variants ─────────────────────────────────────────────────────── */
.ld-product-info-col .product-variants {
  display: flex;
  flex-direction: column; /* NO <br> — flex-column stacks naturally */
  gap: 16px;
}

.ld-product-info-col .product-variants-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  float: none;
  clear: both;
}

/* Label above each variant group */
.ld-product-info-col .product-variants-item > .control-label {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Selected value shown inline */
.ld-product-info-col .product-variants-item > .control-label span {
  text-transform: none;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--ld-ink-mute, #6a625a);
}

/* Select dropdown */
.ld-product-info-col .form-control-select {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  width: 100%;
  max-width: 240px;
  padding: 10px 36px 10px 12px;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 14px;
  color: var(--ld-ink, #1d1d1b);
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath stroke='%231d1d1b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1 1 5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  border: 1.5px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color 0.15s ease;
}

.ld-product-info-col .form-control-select:focus {
  outline: none;
  border-color: var(--ld-gold, #a99373);
  box-shadow: 0 0 0 3px rgba(169, 147, 115, 0.15);
}

/* Radio variant list */
.ld-product-info-col .product-variants-item ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ld-product-info-col .product-variants-item ul li,
.ld-product-info-col .product-variants-item li.input-container {
  float: none;
  margin: 0;
}

/* Hide native radio/checkbox input */
.ld-product-info-col .product-variants-item .input-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

/* Radio pill */
.ld-product-info-col .product-variants-item .input-radio + .radio-label {
  display: inline-grid;
  place-items: center;
  min-width: 60px;
  height: 36px;
  padding: 0 14px;
  box-sizing: border-box;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 13px;
  font-weight: 400;
  color: var(--ld-ink, #1d1d1b);
  background: #fff;
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
  user-select: none;
  line-height: 1;
  text-align: center;
}

.ld-product-info-col .product-variants-item .input-radio:checked + .radio-label {
  background: var(--ld-ink, #1d1d1b);
  color: var(--ld-paper, #faf6ec);
  border-color: var(--ld-ink, #1d1d1b);
  font-weight: 600;
}

.ld-product-info-col .product-variants-item .input-radio + .radio-label:hover {
  border-color: var(--ld-gold, #a99373);
}

/* Color swatch */
.ld-product-info-col .product-variants-item .input-color {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.ld-product-info-col .product-variants-item label {
  display: inline-block;
  margin: 0;
  cursor: pointer;
}

.ld-product-info-col .product-variants-item .color {
  display: inline-block;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1.5px var(--ld-line, #e6dfd0);
  cursor: pointer;
  transition: box-shadow 0.15s ease;
}

.ld-product-info-col .product-variants-item .input-color:checked ~ .color,
.ld-product-info-col .product-variants-item .input-color:checked + .color {
  box-shadow: 0 0 0 2px var(--ld-ink, #1d1d1b);
}

/* ── Volume discounts table ───────────────────────────────────────────────── */
.ld-product-info-col .product-discounts {
  margin: 0;
}

.ld-product-info-col .product-discounts-title {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 12px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}

.ld-product-info-col .table-product-discounts {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 13px;
}

.ld-product-info-col .table-product-discounts thead th {
  background: var(--ld-paper-2, #f4ecd9);
  color: var(--ld-ink-mute, #6a625a);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 8px 12px;
  border: 1px solid var(--ld-line, #e6dfd0);
  text-align: left;
  font-weight: 600;
}

.ld-product-info-col .table-product-discounts tbody td {
  padding: 8px 12px;
  border: 1px solid var(--ld-line, #e6dfd0);
  color: var(--ld-ink, #1d1d1b);
}

.ld-product-info-col .table-product-discounts tbody tr:nth-child(even) {
  background: var(--ld-paper-2, #f4ecd9);
}

/* ── Add to cart zone ─────────────────────────────────────────────────────── */
.ld-product-info-col .product-add-to-cart {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ld-product-info-col .product-add-to-cart > .control-label {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Qty + CTA row. flex-wrap: wrap so .cart_button (wishlist) drops to row 2
   without squishing the add-to-cart button. */
.ld-product-info-col .product-quantity {
  display: flex;
  align-items: stretch;
  gap: 10px;
  flex-wrap: wrap;
}

/* Qty container */
.ld-product-info-col .product-quantity .qty {
  flex: 0 0 auto;
  margin-right: 0;
  margin-bottom: 0;
  display: flex;
  align-items: stretch;
}

/* Custom stepper wrap injected by product quantity JS. */
.ld-product-info-col .ld-qty-wrap {
  display: flex;
  align-items: stretch;
  border: 1.5px solid var(--ld-ink, #1d1d1b);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

/* −/+ buttons */
.ld-product-info-col .ld-qty-btn {
  width: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--ld-ink, #1d1d1b);
  transition: background 0.12s ease;
  flex-shrink: 0;
  padding: 0;
  min-height: 48px;
}

.ld-product-info-col .ld-qty-btn:hover {
  background: var(--ld-paper-2, #f4ecd9);
}

.ld-product-info-col .ld-qty-btn:disabled {
  opacity: 0.35;
  cursor: default;
}

/* Native qty input inside stepper */
.ld-product-info-col .ld-qty-wrap #quantity_wanted {
  width: 36px;
  min-height: 48px;
  padding: 0;
  text-align: center;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  background: transparent;
  border: none;
  border-left: 1px solid var(--ld-line, #e6dfd0);
  border-right: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 0;
  outline: none;
  -moz-appearance: textfield;
}

.ld-product-info-col .ld-qty-wrap #quantity_wanted::-webkit-outer-spin-button,
.ld-product-info-col .ld-qty-wrap #quantity_wanted::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Plain input fallback (no stepper injected) */
.ld-product-info-col .product-quantity .qty > #quantity_wanted {
  width: 40px;
  min-height: 48px;
  padding: 0 4px;
  text-align: center;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  border: 1.5px solid var(--ld-ink, #1d1d1b);
  border-radius: 6px;
  background: #fff;
  outline: none;
  -moz-appearance: textfield;
}

/* Bootstrap TouchSpin overrides (if theme.js initialises it) */
.ld-product-info-col .product-quantity .bootstrap-touchspin {
  display: flex;
  align-items: stretch;
  border: 1.5px solid var(--ld-ink, #1d1d1b);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
  float: none;
}

.ld-product-info-col .product-quantity .bootstrap-touchspin .input-group {
  display: flex;
  align-items: stretch;
  border: none;
}

.ld-product-info-col .product-quantity .bootstrap-touchspin input.input-group,
.ld-product-info-col .product-quantity .bootstrap-touchspin input.form-control {
  float: none;
  width: 40px;
  min-height: 48px;
  border: none;
  border-left: 1px solid var(--ld-line, #e6dfd0);
  border-right: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 0;
  text-align: center;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 15px;
  font-weight: 600;
  color: var(--ld-ink, #1d1d1b);
  background: transparent;
  padding: 0;
}

.ld-product-info-col .product-quantity .input-group-btn-vertical {
  display: flex;
  flex-direction: column;
  float: none;
  width: auto;
}

.ld-product-info-col .product-quantity .btn-touchspin {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  min-height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--ld-ink, #1d1d1b);
  transition: background 0.12s ease;
  padding: 0;
  height: auto;
}

.ld-product-info-col .product-quantity .btn-touchspin:hover {
  background: var(--ld-paper-2, #f4ecd9);
}

/* Add button container */
.ld-product-info-col .product-quantity .add {
  flex: 1;
  min-width: 0;
  display: flex;
  margin-bottom: 0;
}

/* Add-to-cart button — gold, full height */
.ld-product-info-col .product-quantity .add .btn.add-to-cart {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 50px;
  padding: 0 20px;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  background: var(--ld-gold, #a99373);
  border: 1.5px solid var(--ld-gold, #a99373);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
  text-decoration: none;
  letter-spacing: 0.01em;
}

.ld-product-info-col .product-quantity .add .btn.add-to-cart:hover {
  background: var(--ld-gold-deep, #8c7757);
  border-color: var(--ld-gold-deep, #8c7757);
}

.ld-product-info-col .product-quantity .add .btn.add-to-cart:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Hide Material icon inside add-to-cart. */
.ld-product-info-col .product-quantity .add .btn.add-to-cart .material-icons {
  display: none;
}

/* Hide buy-now button. */
.ld-product-info-col .product-quantity .buy {
  display: none;
}

/* cart_button hook area (blockwishlist + compare).
   Forced to 100% flex-basis so it always wraps to a new row,
   keeping the [qty][add-to-cart] row intact. */
.ld-product-info-col .product-quantity .cart_button {
  display: none;
  flex: 0 0 100%;
}

.ld-product-info-col .product-quantity .cart_button:not(:empty) {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Availability inside add-to-cart zone */
.ld-product-info-col .product-add-to-cart #product-availability {
  margin-top: 4px;
}

/* Minimal quantity notice */
.ld-product-info-col .product-minimal-quantity {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 11px;
  color: var(--ld-ink-mute, #6a625a);
  margin: 0;
  min-height: 0;
}

.ld-product-info-col .product-minimal-quantity:empty {
  display: none;
}

/* ── Desktop overrides ────────────────────────────────────────────────────── */
@media (min-width: 768px) {

  /* Larger current price (same high-specificity selector as mobile) */
  .ld-product-info-col .product-prices .current-price .current-price-value {
    font-size: 46px;
  }

  .ld-product-info-col .add .btn.add-to-cart .ld-atc-price {
    font-weight: 700;
    white-space: nowrap;
  }
  .ld-product-info-col .add .btn.add-to-cart .ld-atc-price::before {
    content: '·';
    margin-right: 4px;
    opacity: 0.75;
  }

  /* Availability as a green pill */
  .ld-product-info-col #product-availability:not(.is-empty):not(:empty) {
    display: inline-flex;
    padding: 6px 12px;
    background: rgba(74, 122, 58, 0.08);
    border: 1px solid rgba(74, 122, 58, 0.3);
    border-radius: 6px;
    align-self: flex-start;
    width: auto;
  }

  /* Slightly taller add-to-cart on desktop */
  .ld-product-info-col .product-quantity .add .btn.add-to-cart {
    font-size: 15px;
    min-height: 54px;
  }

  .ld-product-info-col .ld-qty-btn {
    min-height: 54px;
  }

  .ld-product-info-col .ld-qty-wrap #quantity_wanted {
    min-height: 54px;
  }
}


/* ============================================================
   Product tabs
   ============================================================ */

/* ── Row wrapper ──────────────────────────────────────────────────────────── */
.ld-product-tabs-row {
  padding: 24px 0 8px;
}

@media (min-width: 768px) {
  .ld-product-tabs-row {
    padding: 0;
    margin: 40px 0 0;
    max-width: none;
  }
}

/* ── Tab container ─────────────────────────────────────────── */
.ld-tabs {
  width: 100%;
}

/* ── Nav wrapper — scroll on mobile ───────────────────────── */
.ld-tabs__nav-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  border-bottom: 1.5px solid var(--ld-ink, #1d1d1b);
}

.ld-tabs__nav-wrapper::-webkit-scrollbar {
  display: none;
}

.ld-tabs__nav {
  display: flex;
  gap: 0;
  width: max-content;
  min-width: 100%;
  /* End padding lets the last mobile tab clear the viewport edge. */
  padding-right: 16px;
}

/* ── Tab buttons ───────────────────────────────────────────── */
.ld-tabs__btn {
  flex-shrink: 0;
  padding: 12px 0;
  margin-right: 20px;
  margin-bottom: -1.5px;
  border: none;
  border-bottom: 2px solid transparent;
  background: none;
  font-family: var(--ld-f-body, sans-serif);
  font-size: 13px;
  font-weight: 400;
  color: var(--ld-ink-mute, #6a625a);
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
  line-height: 1.4;
}

.ld-tabs__btn:last-child {
  margin-right: 0;
}

.ld-tabs__btn:hover {
  color: var(--ld-ink, #1d1d1b);
}

.ld-tabs__btn.is-active {
  color: var(--ld-ink, #1d1d1b);
  font-weight: 600;
  border-bottom-color: var(--ld-ink, #1d1d1b);
}

.ld-tabs__btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(169, 147, 115, 0.35);
  border-radius: 2px;
}

@media (min-width: 768px) {
  .ld-tabs__btn {
    font-size: 14px;
    margin-right: 28px;
  }
}

/* ── Tab panels ────────────────────────────────────────────── */
.ld-tabs__content {
  padding-top: 24px;
}

.ld-tabs__pane {
  display: none;
}

.ld-tabs__pane.is-active {
  display: block;
}

/* ── Description panel ─────────────────────────────────────── */
.ld-tab-description {
  font-size: 14px;
  line-height: 1.8;
  color: var(--ld-ink-soft, #2a2724);
  max-width: 760px;
}

.ld-tab-description p {
  margin: 0 0 14px;
}

.ld-tab-description p:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .ld-tab-description {
    font-size: 15px;
  }
}

/* ── Features list (composition, conservation, other) ──────── */
.ld-features-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  max-width: 760px;
}

.ld-feature-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 16px 0;
  border-bottom: 1px solid var(--ld-line, #e6dfd0);
}

.ld-feature-item:first-child {
  padding-top: 0;
}

.ld-feature-item:last-child {
  border-bottom: none;
}

.ld-feature-label {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ld-ink-mute, #6a625a);
}

.ld-feature-value {
  font-family: var(--ld-f-body, sans-serif);
  font-size: 14px;
  color: var(--ld-ink-soft, #2a2724);
  line-height: 1.65;
  margin: 0;
}

@media (min-width: 600px) {
  .ld-feature-item {
    grid-template-columns: 160px 1fr;
    gap: 16px;
    align-items: baseline;
  }
}

@media (min-width: 768px) {
  .ld-feature-value {
    font-size: 15px;
  }
}

/* ── Producer card ─────────────────────────────────────────── */
.ld-tab-producer {
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: var(--ld-ink, #1d1d1b);
  color: var(--ld-paper, #faf6ec);
  border-radius: 8px;
  padding: 20px;
  max-width: 640px;
}

.ld-producer-eyebrow {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ld-gold, #a99373);
}

.ld-producer-header {
  display: flex;
  align-items: center;
  gap: 16px;
}

.ld-producer-logo {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid rgba(250, 246, 236, 0.15);
}

.ld-producer-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.ld-producer-name {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-size: 18px;
  color: var(--ld-paper, #faf6ec);
  line-height: 1.2;
}

.ld-producer-subtitle {
  font-size: 12px;
  color: rgba(250, 246, 236, 0.65);
  line-height: 1.4;
}

.ld-producer-description {
  font-size: 13px;
  line-height: 1.65;
  color: rgba(250, 246, 236, 0.85);
  font-style: italic;
  margin: 0;
}

.ld-producer-link {
  align-self: flex-start;
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-gold, #a99373);
  text-decoration: none;
  border: 1.5px solid rgba(250, 246, 236, 0.25);
  border-radius: 5px;
  padding: 8px 16px;
  transition: border-color 0.15s, color 0.15s;
}

.ld-producer-link:hover {
  color: var(--ld-paper, #faf6ec);
  border-color: rgba(250, 246, 236, 0.5);
}

@media (min-width: 768px) {
  .ld-tab-producer {
    padding: 24px 28px;
  }

  .ld-producer-logo {
    width: 68px;
    height: 68px;
  }

  .ld-producer-name {
    font-size: 21px;
  }
}

/* ── Attachments ───────────────────────────────────────────── */
.ld-attachments {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 640px;
}

.ld-attachment-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  padding: 14px 16px;
  background: var(--ld-paper-2, #f4ecd9);
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  text-decoration: none;
  color: var(--ld-ink, #1d1d1b);
  font-size: 14px;
  transition: border-color 0.15s;
}

.ld-attachment-item:hover {
  border-color: var(--ld-gold, #a99373);
}

.ld-attachment-name {
  font-weight: 600;
  flex: 1 1 auto;
}

.ld-attachment-desc {
  color: var(--ld-ink-mute, #6a625a);
  font-size: 13px;
  flex: 0 0 100%;
}

.ld-attachment-size {
  font-size: 12px;
  color: var(--ld-ink-mute, #6a625a);
  flex-shrink: 0;
}

/* ── Hook extra (review modules etc.) ─────────────────────── */
.ld-tabs__hook-extra {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--ld-line, #e6dfd0);
}

/* ══════════════════════════════════════════════════════════════════════════
   Product reassurance row, producer card, and wishlist
   Mobile-first. Lives inside .ld-product-info-col (buy column). Tokens --ld-*.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Reassurance row (native blockreassurance, theme-restyled) ────────────── */
.ld-product-info-col .ld-reassurance-row {
  display: flex;
  align-items: stretch;
  gap: 4px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--ld-line, #e6dfd0);
}

.ld-product-info-col .ld-reassurance-item {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 4px 6px;
  color: var(--ld-ink, #1d1d1b);
  text-decoration: none;
}

.ld-product-info-col .ld-reassurance-item + .ld-reassurance-item {
  border-left: 1px solid var(--ld-line, #e6dfd0);
}

.ld-product-info-col .ld-reassurance-item--link {
  cursor: pointer;
  transition: color .15s ease;
}
.ld-product-info-col .ld-reassurance-item--link:hover {
  color: var(--ld-gold-deep, #8c7757);
}

.ld-product-info-col .ld-reassurance-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ld-gold-deep, #8c7757);
  margin-bottom: 2px;
}
.ld-product-info-col .ld-reassurance-item__bo-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.ld-product-info-col .ld-reassurance-item__title {
  font-size: 11px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--ld-ink, #1d1d1b);
}

.ld-product-info-col .ld-reassurance-item__sub {
  font-size: 10px;
  line-height: 1.25;
  color: var(--ld-ink-mute, #6a625a);
}

/* ── Buy-box producer card (dark) ──────────────────────────────────────────
   Short teaser; full content is in the "Producteur" tab. */
.ld-buybox-producer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding: 16px;
  border-radius: 8px;
  background: var(--ld-ink, #1d1d1b);
  color: var(--ld-paper, #faf6ec);
  text-decoration: none;
}

.ld-buybox-producer--link {
  transition: transform .15s ease, box-shadow .15s ease;
}
.ld-buybox-producer--link:hover {
  box-shadow: var(--ld-shadow-hover, 0 8px 28px -10px rgba(60,42,16,.35));
}
.ld-buybox-producer--link:hover .ld-buybox-producer__chevron {
  transform: translateX(3px);
}

.ld-buybox-producer__media {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(250, 246, 236, .1);
}

.ld-buybox-producer__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ld-buybox-producer__monogram {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-size: 22px;
  line-height: 1;
  color: var(--ld-cream, #eddbb3);
  text-transform: uppercase;
}

.ld-buybox-producer__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.ld-buybox-producer__eyebrow {
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ld-gold, #a99373);
}

.ld-buybox-producer__name {
  font-size: 16px;
  line-height: 1.15;
  color: #fff;
}

.ld-buybox-producer__sub {
  font-size: 11px;
  line-height: 1.3;
  color: rgba(250, 246, 236, .7);
  overflow: hidden;
  text-overflow: ellipsis;
}

.ld-buybox-producer__chevron {
  flex: 0 0 auto;
  color: rgba(250, 246, 236, .75);
  transition: transform .15s ease;
}

/* ── Wishlist button (poswishlist, theme-restyled to FR) + hide compare ───── */
.ld-product-info-col .cart_button {
  display: flex;
  align-items: center;
  margin-top: 8px;
}

.ld-product-info-col .cart_button .poscompare-add,
.ld-product-info-col .cart_button .compare-button {
  display: none;
}

/* Redundant Ecolife payment-trust block; reassurance already covers it. */
.ld-product-info-col .product-information > .payment-detail {
  display: none;
}

.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn {
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ld-ink-mute, #6a625a);
  font-family: var(--ld-f-body, system-ui, sans-serif);
  font-size: 13px;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: color .15s ease;
}
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn:hover {
  color: var(--ld-warn, #b65b2a);
  background: none;
  border: 0;
}
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn .ld-wishlist-btn__icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
}
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn .ld-wishlist-btn__label {
  font-size: 13px;
}
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn.checked,
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn.added {
  color: var(--ld-warn, #b65b2a);
}
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn.checked .ld-wishlist-btn__icon,
.ld-product-info-col .cart_button a#wishlist_button.ld-wishlist-btn.added .ld-wishlist-btn__icon {
  fill: var(--ld-warn, #b65b2a);
}

/* ── Desktop refinements ───────────────────────────────────────────────── */
@media (min-width: 768px) {
  .ld-product-info-col .ld-reassurance-item__title { font-size: 11px; }
  .ld-buybox-producer { padding: 16px; }
}

/* Buy column vertical rhythm. */
.ld-product-info-col .product-information {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ld-product-info-col .ld-product__desc-short {
  margin: 0;
  padding: 0;
  /* Ecolife's .product-description adds a bottom rule; the only intentional
     divider in the buy box is above the reassurance row. */
  border: 0;
}

.ld-product-info-col .product-actions {
  padding-top: 0;
}

/* Reassurance row + producer card: spacing now comes from the flex gap above;
   the reassurance keeps its own border-top + padding-top as the divider. */
.ld-product-info-col .ld-reassurance-row {
  margin-top: 0;
}

.ld-product-info-col .ld-buybox-producer {
  margin-top: 0;
}

/* ==========================================================================
   Product cross-sell and related products
   ========================================================================== */
.ld-cross-sell {
  margin-top: 48px;
  padding: 0 16px;
}

.ld-cross-sell__header {
  margin-bottom: 16px;
}

.ld-cross-sell__title {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-size: 1.375rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--ld-ink, #1d1d1b);
  margin: 0;
}

@media (min-width: 768px) {
  .ld-cross-sell {
    margin-top: 64px;
    padding: 0;
  }

  .ld-cross-sell__header {
    margin-bottom: 24px;
  }

  .ld-cross-sell__title {
    font-size: 1.875rem; /* 30px — hi-fi desktop */
  }
}

/* Same-category cross-sell needs footer breathing room. */
.ld-cross-sell--category {
  margin-bottom: 32px;
}

@media (min-width: 768px) {
  .ld-cross-sell--category {
    margin-bottom: 48px;
  }
}

/* Product mobile overrides. */

/* Stock state is a mobile-only element (hidden by default → no desktop change). */
.ld-stock-state { display: none; }
/* Product tabs become a vertical accordion on mobile (6 tabs overflow the
   390px strip). The accordion headers are injected by product.tpl JS and are
   hidden on desktop, where the horizontal tab nav is used instead. */
.ld-acc-header { display: none; }
.ld-stock-dot {
  flex: 0 0 7px;
}

/* Desktop in-stock pill. */
@media (min-width: 768px) {
  .ld-product-info-col .ld-stock-state--in {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    margin: 0;
    padding: 6px 12px;
    border-radius: 6px;
    background: rgba(74, 122, 58, 0.08);
    border: 1px solid rgba(74, 122, 58, 0.3);
    font-family: var(--ld-f-body, sans-serif);
    font-size: 12px;
    font-weight: 600;
    color: var(--ld-success, #4a7a3a);
  }
}

@media (max-width: 767.98px) {
  /* Native breadcrumb is redundant with the contextual header (back + title). */
  body#product .page-title-wrapper { display: none; }

  /* Hide generic reassurance on mobile only; desktop buy box keeps it. */
  body#product .ld-reassurance-row { display: none; }

  /* Stock state under the price (in-stock only, real $product.quantity). */
  body#product .ld-stock-state {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 10px 0 0;
    font-family: var(--ld-f-body, sans-serif);
    font-size: 12px;
    font-weight: 600;
    color: var(--ld-success, #4a7a3a);
  }

  /* ── Sticky add-to-cart bar ───────────────────────────────────────────
     The native qty + add-to-cart row is pinned to the bottom, above the tab
     bar. The form/DOM is unchanged, so native PS8 add-to-cart JS still binds. */
  body#product .ld-product-info-col .product-add-to-cart > .control-label { display: none; }

  body#product .ld-product-info-col .product-quantity {
    position: fixed;
    left: 0;
    right: 0;
    bottom: var(--ld-tabbar-h);
    z-index: 150;
    margin: 0;
    padding: 10px 14px 12px;
    gap: 8px;
    flex-wrap: nowrap;
    align-items: center;
    background: rgba(250, 246, 236, 0.96);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-top: 1px solid var(--ld-line);
    box-shadow: 0 -6px 20px -10px rgba(0, 0, 0, 0.12);
  }
  @supports (bottom: env(safe-area-inset-bottom)) {
    body#product .ld-product-info-col .product-quantity {
      bottom: calc(var(--ld-tabbar-h) + env(safe-area-inset-bottom));
    }
  }

  /* Sticky bar keeps only qty stepper + add-to-cart. */
  body#product .ld-product-info-col .product-quantity .buy,
  body#product .ld-product-info-col .product-quantity .cart_button { display: none; }

  body#product .ld-product-info-col .product-quantity .add {
    flex: 1;
    margin: 0;
  }
  body#product .ld-product-info-col .product-quantity .add .btn.add-to-cart {
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }
  /* Out of stock: the JS drops the price (no "Ajouter au panier 8,50 €" on an
     unbuyable product) — re-center the lone label so it is not left-hugging. */
  body#product .ld-product-info-col .product-quantity .add .btn.add-to-cart:disabled {
    justify-content: center;
  }
  /* Live price on the right of the CTA (injected by product.tpl JS). */
  body#product .ld-atc-price {
    font-weight: 700;
    white-space: nowrap;
  }

  /* Native availability ("Rupture de stock") stays in flow under the buy box. */
  body#product .ld-product-info-col #product-availability { margin-top: 8px; }

  /* Bottom clearance so the footer / last section clears bar + tab bar. */
  body#product { padding-bottom: calc(var(--ld-tabbar-h) + 78px); }
  @supports (padding-bottom: env(safe-area-inset-bottom)) {
    body#product {
      padding-bottom: calc(var(--ld-tabbar-h) + 78px + env(safe-area-inset-bottom));
    }
  }

  /* ── Cross-sell → compact horizontal carousel ──────────────────────────
     Same-category ("Dans le même rayon") and BO accessories ("Souvent
     achetés ensemble") both reuse .ld-cross-sell__grid. Turning the 2-col
     grid into a scroll strip keeps the page short and matches the carousel. */
  body#product .ld-cross-sell__grid {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  body#product .ld-cross-sell__grid::-webkit-scrollbar { display: none; }
  body#product .ld-cross-sell__grid > * {
    flex: 0 0 150px;
    scroll-snap-align: start;
    height: 282px;
  }

  body#product .ld-cross-sell__grid .ld-product-card__img-wrap {
    aspect-ratio: auto;
    height: 146px;
  }

  body#product .ld-cross-sell__grid .ld-product-card__info {
    min-height: 136px;
  }

  body#product .ld-cross-sell__grid .ld-product-card__name {
    font-size: 13px;
  }

  body#product .ld-cross-sell__grid .ld-product-card__price {
    font-size: 16px;
  }

  /* ── Tabs → vertical accordion on mobile ─────────────────────────────── */
  body#product .ld-tabs__nav-wrapper { display: none; }
  body#product .ld-tabs__content { padding-top: 0; }

  body#product .ld-acc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 15px 2px;
    background: none;
    border: 0;
    border-top: 1px solid var(--ld-line);
    font-family: var(--ld-f-serif, Georgia, serif);
    font-size: 15px;
    font-weight: 400;
    color: var(--ld-ink, #1d1d1b);
    text-align: left;
    cursor: pointer;
  }
  body#product .ld-tabs__content > .ld-acc-header:first-child { border-top: 0; }
  body#product .ld-acc-header.is-open { font-weight: 600; }

  /* Chevron (CSS-only) */
  body#product .ld-acc-header__icon {
    width: 9px;
    height: 9px;
    border-right: 1.5px solid var(--ld-ink-mute, #6a625a);
    border-bottom: 1.5px solid var(--ld-ink-mute, #6a625a);
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-right: 4px;
  }
  body#product .ld-acc-header.is-open .ld-acc-header__icon {
    transform: rotate(-135deg);
  }

  /* Pane visibility on mobile is driven by .is-open (accordion), not .is-active
     (desktop tabs). Higher specificity overrides the base .is-active rule. */
  body#product .ld-tabs__content .ld-tabs__pane { display: none; }
  body#product .ld-tabs__content .ld-tabs__pane.is-open {
    display: block;
    padding: 2px 2px 18px;
  }

  /* Close the list with a divider under the last row. */
  body#product .ld-tabs__content { border-bottom: 1px solid var(--ld-line); }
}

/* Product-card placeholder image. */
.ld-product-card__img--placeholder {
  object-fit: contain;
  padding: 18%;
  opacity: 0.5;
}

/* Product desktop overrides. */
@media (min-width: 1200px) {
  body#product {
    --ld-product-frame: clamp(1320px, 88vw, 1560px);
  }

  body#product #wrapper > .container,
  body#product .ld-product-layout,
  body#product .page-footer {
    width: var(--ld-product-frame);
    max-width: var(--ld-product-frame);
    margin-left: auto;
    margin-right: auto;
  }

  body#product #wrapper > .container {
    padding-left: 0;
    padding-right: 0;
  }

  body#product .breadcrumb {
    width: var(--ld-product-frame);
    max-width: var(--ld-product-frame);
    margin: 0 auto;
    padding: 22px 0 18px;
  }

  body#product .ld-product-layout {
    grid-template-columns: minmax(0, 54fr) minmax(460px, 46fr);
    column-gap: clamp(52px, 5vw, 84px);
    padding-top: 34px;
  }

  body#product .ld-gallery {
    gap: 18px;
  }

  body#product .ld-gallery__thumbs {
    flex-basis: 92px;
    width: 92px;
    max-height: none;
    overflow-y: visible;
    gap: 12px;
  }

  body#product .ld-gallery__thumb-btn {
    flex-basis: 92px;
    width: 92px;
    height: 92px;
    border-radius: 8px;
  }

  body#product .ld-gallery__main-wrap {
    max-width: 760px;
    border-radius: 10px;
  }

  body#product .ld-gallery__img {
    max-height: 760px;
    transform: none;
  }

  body#product .ld-product-info-col {
    max-width: 660px;
  }

  body#product .ld-product__manufacturer {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--ld-gold-deep);
    margin-bottom: 12px;
  }

  body#product .ld-product__name {
    font-size: clamp(48px, 3.1vw, 60px);
    line-height: 1.04;
    letter-spacing: 0.035em;
    margin-bottom: 16px;
  }

  body#product .ld-product__desc-short {
    max-width: 620px;
    font-size: 18px;
    line-height: 1.65;
    color: var(--ld-ink-soft);
    margin: 22px 0 24px;
  }

  body#product .ld-product-buy-box {
    gap: 20px;
    margin-top: 8px;
  }

  body#product .ld-product-info-col .product-prices .current-price .current-price-value {
    font-size: clamp(44px, 3vw, 56px);
  }

  body#product .ld-stock-state,
  body#product .ld-product-info-col #product-availability:not(.is-empty):not(:empty) {
    font-size: 14px;
    padding: 8px 14px;
  }

  body#product .ld-product-info-col .product-variants {
    gap: 18px;
  }

  body#product .ld-product-info-col .product-variants-item > .control-label,
  body#product .ld-product-info-col .product-add-to-cart > .control-label {
    font-size: 12px;
    letter-spacing: 0.12em;
  }

  body#product .ld-product-info-col .product-quantity {
    gap: 12px;
  }

  body#product .ld-product-info-col .ld-qty-wrap,
  body#product .ld-product-info-col .product-quantity .bootstrap-touchspin {
    border-radius: 7px;
  }

  body#product .ld-product-info-col .ld-qty-btn,
  body#product .ld-product-info-col .ld-qty-wrap #quantity_wanted,
  body#product .ld-product-info-col .product-quantity .bootstrap-touchspin input.form-control {
    min-height: 60px;
    font-size: 16px;
  }

  body#product .ld-product-info-col .ld-qty-btn {
    width: 46px;
  }

  body#product .ld-product-info-col .ld-qty-wrap #quantity_wanted {
    width: 44px;
  }

  body#product .ld-product-info-col .product-quantity .add .btn.add-to-cart {
    min-height: 60px;
    font-size: 16px;
    font-weight: 700;
    border-radius: 7px;
  }

  body#product .ld-product-info-col .product-additional-info,
  body#product .ld-product-info-col .product-actions .compare,
  body#product .ld-product-info-col .product-actions .js-compare,
  body#product .ld-product-info-col .product-actions .poscompare-add,
  body#product .ld-product-info-col .product-actions .compare-button {
    display: none;
  }

  body#product .ld-product-tabs-row {
    margin-top: 48px;
  }

  body#product .ld-tabs__btn {
    font-size: 15px;
    margin-right: 28px;
  }
}


/* =========================================================================
   Manufacturer page
   ========================================================================= */
.ld-brand-hero {
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-align: center;
  max-width: 680px;
  margin: 8px auto 4px;
  padding: 0 4px;
}

.ld-brand-hero__eyebrow {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ld-gold-deep);
}

.ld-brand-hero__title {
  font-size: 30px;
  line-height: 1.1;
  margin: 0;
  color: var(--ld-ink);
}

.ld-brand-hero__lead {
  margin: 4px 0 0;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ld-ink-mute);
}

/* Craft / presentation — readable BO-content column. ------------------------ */
.ld-brand-craft {
  max-width: 720px;
  margin: 20px auto 8px;
  padding: 0 4px;
}

.ld-brand-craft__text {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ld-ink-soft);
}

.ld-brand-craft__text > *:first-child { margin-top: 0; }
.ld-brand-craft__text > *:last-child  { margin-bottom: 0; }
.ld-brand-craft__text p { margin: 0 0 14px; }

.ld-brand-craft__text h2,
.ld-brand-craft__text h3 {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-weight: 400;
  color: var(--ld-ink);
  line-height: 1.2;
  margin: 24px 0 10px;
}
.ld-brand-craft__text h2 { font-size: 22px; }
.ld-brand-craft__text h3 { font-size: 18px; }

.ld-brand-craft__text ul,
.ld-brand-craft__text ol { margin: 0 0 14px; padding-left: 1.1em; }
.ld-brand-craft__text li { margin: 0 0 6px; }

.ld-brand-craft__text a {
  color: var(--ld-gold-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.ld-brand-craft__text img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* Back-link to the curated producers page (after pagination). --------------- */
.ld-brand-footnav {
  display: flex;
  justify-content: center;
  margin: 28px 0 8px;
  padding-top: 24px;
  border-top: 1px solid var(--ld-line);
}

.ld-brand-footnav__link {
  text-align: center;
}

@media (min-width: 768px) {
  .ld-brand-hero {
    margin-top: 16px;
    gap: 10px;
  }
  .ld-brand-hero__title { font-size: 40px; }
  .ld-brand-craft { margin: 28px auto 12px; }
  .ld-brand-footnav { margin: 40px 0 16px; }
}

@media (min-width: 1200px) {
  .ld-brand-hero__title { font-size: 46px; }
}

/* =========================================================================
   Native CMS pages
   ========================================================================= */

.ld-cms.page-content {
  background: transparent;
}

/* Sober editorial header — our single <h1> (breadcrumb stays in the themed band). */
.ld-cms__head {
  max-width: 760px;
  margin: 4px auto 0;
  padding: 0 4px;
  text-align: center;
}

.ld-cms__title {
  margin: 0;
  font-size: 30px;          /* mobile */
  line-height: 1.12;
  color: var(--ld-ink);
}

/* Readable content column. ---------------------------------------------------- */
.ld-cms__content {
  max-width: 760px;
  margin: 20px auto 8px;
  padding: 0 4px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--ld-ink-soft);
  overflow-wrap: break-word;   /* long URLs / refs in legal text never overflow */
}

.ld-cms__content > *:first-child,
.ld-blog-article__body > *:first-child { margin-top: 0; }
.ld-cms__content > *:last-child,
.ld-blog-article__body > *:last-child { margin-bottom: 0; }
.ld-cms__content p,
.ld-blog-article__body p { margin: 0 0 16px; }

/* Headings — serif, design-system. h2 carries the gold-line rule. ------------- */
.ld-cms__content h2,
.ld-cms__content h3,
.ld-cms__content h4,
.ld-blog-article__body h2,
.ld-blog-article__body h3,
.ld-blog-article__body h4 {
  font-family: var(--ld-f-serif, Georgia, serif);
  font-weight: 400;
  color: var(--ld-ink);
  line-height: 1.2;
}
.ld-cms__content h2,
.ld-blog-article__body h2 {
  font-size: 24px;
  margin: 32px 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ld-line);
}
.ld-cms__content h3,
.ld-blog-article__body h3 { font-size: 19px; margin: 26px 0 10px; }
.ld-cms__content h4,
.ld-blog-article__body h4 { font-size: 16px; margin: 22px 0 8px; }

/* Lists — ordered keep numbers; unordered get gold em-dash markers.
   The compound .ld-cms.page-cms prefix (both classes sit on the same <section>)
   raises specificity to 0,3,1 so these beat the theme's `.page-content.page-cms ul`
   rules (0,2,1) that would otherwise re-add a disc bullet and recolor the text. */
.ld-cms.page-cms .ld-cms__content ol { margin: 0 0 16px; padding-left: 1.4em; }
.ld-cms.page-cms .ld-cms__content ul {
  margin: 0 0 16px;
  padding-left: 1.2em;
  list-style: none;
}
.ld-cms.page-cms .ld-cms__content li {
  margin: 0 0 8px;
  font-size: 15px;
  color: var(--ld-ink-soft);
}
.ld-cms.page-cms .ld-cms__content ul > li { position: relative; padding-left: 0.4em; }
.ld-cms.page-cms .ld-cms__content ul > li::before {
  content: "•";
  position: absolute;
  left: -1.1em;
  color: var(--ld-gold);
}

/* Links — visible and accessible. -------------------------------------------- */
.ld-cms__content a,
.ld-blog-article__body a {
  color: var(--ld-gold-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ld-cms__content a:hover,
.ld-cms__content a:focus,
.ld-blog-article__body a:hover,
.ld-blog-article__body a:focus { color: var(--ld-ink); }

/* Images — never overflow their column. -------------------------------------- */
.ld-cms__content img,
.ld-blog-article__body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* Tables — design-system look + horizontal scroll on small screens.
   display:block turns the table into its own scroll container without a wrapper
   div (BO content is a single HTML blob we cannot wrap per-table). The CSS border
   beats the legacy presentational border="1" attribute, softening legacy tables. */
.ld-cms__content table,
.ld-blog-article__body table {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 18px;
  border-collapse: collapse;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  font-size: 14px;
}
.ld-cms__content th,
.ld-cms__content td,
.ld-blog-article__body th,
.ld-blog-article__body td {
  padding: 10px 12px;
  border: 1px solid var(--ld-line);
  text-align: left;
  vertical-align: top;
}
.ld-cms__content th,
.ld-cms__content thead td,
.ld-blog-article__body th,
.ld-blog-article__body thead td {
  background: var(--ld-paper-2);
  font-weight: 600;
}

/* Misc legacy elements. ------------------------------------------------------ */
.ld-cms__content blockquote,
.ld-blog-article__body blockquote {
  margin: 0 0 16px;
  padding: 4px 0 4px 16px;
  border-left: 3px solid var(--ld-gold);
  color: var(--ld-ink-mute);
}
.ld-cms__content hr,
.ld-blog-article__body hr {
  border: 0;
  border-top: 1px solid var(--ld-line);
  margin: 28px 0;
}
.ld-cms__content iframe,
.ld-cms__content video,
.ld-blog-article__body iframe,
.ld-blog-article__body video { max-width: 100%; }

/* Native CMS hooks (print button / dispute info) breathing room. */
.ld-cms .cms_dispute_information,
.ld-cms .page-cms-print {
  max-width: 760px;
  margin: 16px auto 0;
  padding: 0 4px;
}

@media (min-width: 768px) {
  .ld-cms__head { margin-top: 12px; }
  .ld-cms__title { font-size: 40px; }
  .ld-cms__content { margin: 28px auto 16px; }
  .ld-cms__content h2 { font-size: 28px; }
  .ld-cms__content h3 { font-size: 21px; }
}

@media (min-width: 1200px) {
  .ld-cms__title { font-size: 48px; }
  .ld-cms__content h2 { font-size: 30px; }
}

/* =========================================================================
   Search results page
   ========================================================================= */

/* Search results have no sidebar; category nav stays in the megamenu. */
body.page-search #left-column {
  display: none;
}
body.page-search #content-wrapper {
  flex: 0 0 100%;
  max-width: 100%;
  width: 100%;
}

/* Search heading — same look as .ld-cat-h1, but query strings are arbitrary
   user input, so allow long/no-space queries to wrap instead of overflowing. */
.ld-search-h1 {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Result count — sober muted line under the heading. */
.ld-search-count {
  margin: 0;
  font-family: var(--ld-f-thin);
  font-weight: 100;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ld-ink-mute);
  line-height: 1.3;
}

/* ---- Empty state (0 result) ----------------------------------------------- */
/* Rendered inside #products-list (which zeroes its horizontal padding), so this
   block carries its own padding to stay readable on 390px. */
.ld-search-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
  max-width: 560px;
  margin: 8px auto;
  padding: 28px 16px 36px;
}

body.page-search #js-product-list .page-not-found {
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
}

body.page-search #js-product-list {
  padding-bottom: 48px;
}

.ld-category-empty {
  max-width: 620px;
  margin: 18px auto 48px;
  padding: 30px 24px;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.52);
  text-align: center;
  box-shadow: 0 10px 26px rgba(42, 35, 24, 0.06);
}

.ld-category-empty__mark {
  display: block;
  width: 38px;
  height: 38px;
  margin: 0 auto 18px;
  border-radius: 999px;
  background: var(--ld-sand);
}

.ld-category-empty h4 {
  max-width: 460px;
  margin: 0 auto 10px;
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.15;
  text-transform: none;
}

.ld-category-empty p {
  max-width: 480px;
  margin: 0 auto;
  color: var(--ld-ink-mute);
  font-size: 15px;
  line-height: 1.65;
}

@media (max-width: 767px) {
  .ld-category-empty {
    margin: 12px 0 34px;
    padding: 24px 18px;
  }

  .ld-category-empty h4 {
    font-size: 23px;
  }
}

/* ---- Wishlist (poswishlist) ----------------------------------------------- */
#mywishlist .ld-wishlist-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  margin-top: 10px;
  padding: 9px 14px;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: transparent;
  color: var(--ld-ink);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}

#mywishlist .ld-wishlist-remove:hover,
#mywishlist .ld-wishlist-remove:focus-visible {
  border-color: var(--ld-ink);
  background: var(--ld-ink);
  color: #fff;
}

#wishlistModal .modal-dialog {
  max-width: 430px;
}

#wishlistModal .modal-content {
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  box-shadow: 0 20px 50px rgba(42, 35, 24, 0.16);
}

#wishlistModal button.close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  background: transparent;
  color: var(--ld-ink);
  opacity: 1;
}

#wishlistModal .modal-body {
  padding: 34px 32px 32px;
  text-align: center;
}

#wishlistModal .modal-body > img {
  display: block;
  max-width: min(260px, 100%);
  max-height: 320px;
  margin: 0 auto 22px;
  object-fit: contain;
}

#wishlistModal h4 {
  margin: 0 0 10px;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.25;
  text-transform: none;
}

#wishlistModal .wishlist-modal-message {
  margin: 0 0 22px;
  color: var(--ld-ink-mute);
  font-size: 14px;
  line-height: 1.5;
}

#wishlistModal .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid var(--ld-ink);
  border-radius: 4px;
  background: var(--ld-ink);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

#mywishlist .wishlistLinkBottom {
  max-width: 560px;
  margin: 30px 0 52px;
  padding: 22px;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.52);
  box-shadow: 0 10px 26px rgba(42, 35, 24, 0.05);
}

#mywishlist .wishlistLinkBottom .title_account_second {
  margin: 0 0 14px;
  color: var(--ld-ink);
  font-size: 17px;
  font-weight: 600;
}

#mywishlist .wishlistLinkBottom .input-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
}

#mywishlist .wishlistLinkBottom .form-control {
  width: 100%;
  height: 48px;
  border: 1px solid var(--ld-line);
  background: #fff;
  color: var(--ld-ink);
}

#mywishlist .wishlistLinkBottom .input-group-append {
  display: block !important;
  margin: 0 !important;
}

#mywishlist .wishlistLinkBottom #posCopyLink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 22px;
  border-radius: 4px;
  white-space: nowrap;
}

@media (max-width: 767px) {
  #wishlistModal .modal-dialog {
    margin: 18px;
  }

  #wishlistModal .modal-body {
    padding: 30px 24px 26px;
  }

  #mywishlist .wishlistLinkBottom {
    margin: 26px 16px 40px;
    padding: 18px;
  }

  #mywishlist .wishlistLinkBottom .input-group {
    grid-template-columns: 1fr;
  }

  #mywishlist .wishlistLinkBottom #posCopyLink {
    width: 100%;
  }
}

.ld-search-empty__text {
  margin: 0;
  font-family: var(--ld-f-body);
  font-size: 15px;
  line-height: 1.65;
  color: var(--ld-ink-mute);
}

.ld-search-empty__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

@media (min-width: 768px) {
  .ld-search-count { font-size: 13px; }
  .ld-search-empty {
    gap: 22px;
    margin: 16px auto;
    padding: 40px 16px 48px;
  }
  .ld-search-empty__text { font-size: 16px; }
}

/* =========================================================================
   Recipe blog (SmartBlog)
   ========================================================================= */

/* Neutralise the Ecolife .page-content card chrome — the blog sits on --paper. */
.ld-blog {
  background: transparent;
  border: 0;
  box-shadow: none;
  margin: 0 auto;
  padding: 8px 16px 48px;
}
.ld-blog-list {
  width: min(1160px, calc(100vw - 32px));
  max-width: none;
}
/* Detail article reading column. */
.ld-blog-article { max-width: 760px; }

#module-smartblog-details #content.ld-blog-article { margin-left: auto; margin-right: auto; }

/* SmartBlog detail: drop the native right column. */
#module-smartblog-details #right-column { display: none; }
#module-smartblog-details #content-wrapper.right-column {
  width: 100%;
  max-width: 100%;
  flex: 0 0 100%;
}

/* Breadcrumb band — inherits the native .breadcrumb look (same as CMS). */
.ld-blog-breadcrumb { margin: 0; }

/* ---- Listing / category header (sober, single <h1>) ----------------------- */
.ld-blog__head {
  max-width: 760px;
  margin: 4px auto 22px;
  text-align: center;
}
.ld-blog__eyebrow { display: block; margin: 0 0 10px; }
.ld-blog__title {
  margin: 0;
  font-size: 30px;          /* mobile */
  line-height: 1.12;
  color: var(--ld-ink);
}
.ld-blog__count {
  margin: 10px 0 0;
  font-family: var(--ld-f-thin);
  font-weight: 100;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ld-ink-mute);
}

/* ---- Cards grid — CSS Grid adapts to any number of posts ------------------- */
.ld-blog-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* ---- Article card --------------------------------------------------------- */
.ld-blog-card {
  display: flex;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--ld-shadow-card);
  transition: box-shadow .15s, transform .1s;
}
.ld-blog-card:hover { box-shadow: var(--ld-shadow-hover); transform: translateY(-2px); }
.ld-blog-card__link {
  display: flex;
  flex-direction: column;
  width: 100%;
  text-decoration: none;
  color: inherit;
}
.ld-blog-card__link:hover { text-decoration: none; color: inherit; }

/* Real cover (BO upload) — 16/10 ratio, cropped. No article has one today. */
.ld-blog-card__media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--ld-paper-2);
  overflow: hidden;
}
.ld-blog-card__img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* No-cover fallback — discreet branded strip, NOT a placeholder image. Compact
   fixed height so every (currently coverless) card stays uniform and text-led. */
.ld-blog-card__media--blank {
  aspect-ratio: auto;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--ld-paper-2), var(--ld-paper-3));
  border-bottom: 1px solid var(--ld-line-soft);
}
.ld-blog-card__mark {
  font-size: 17px;
  letter-spacing: 0.02em;
  color: var(--ld-gold-deep);
  opacity: 0.6;
}

.ld-blog-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  padding: 16px 18px;
}
.ld-blog-card__cat { align-self: flex-start; }
.ld-blog-card__title {
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
  color: var(--ld-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ld-blog-card__excerpt {
  margin: 0;
  font-size: 13px;
  line-height: 1.55;
  color: var(--ld-ink-mute);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ld-blog-card__foot {
  margin-top: auto;
  padding-top: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.ld-blog-card__date { color: var(--ld-ink-mute); }
.ld-blog-card__more {
  font-family: var(--ld-f-body);
  font-size: 12px;
  font-weight: 600;
  color: var(--ld-gold-deep);
  white-space: nowrap;
}
.ld-blog-card:hover .ld-blog-card__more { color: var(--ld-ink); }

/* ---- Pagination ----------------------------------------------------------- */
.ld-blog-pagination { margin: 36px 0 56px; }
.ld-blog-pagination ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ld-blog-pagination__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border: 1px solid var(--ld-line);
  border-radius: 6px;
  background: #fff;
  font-family: var(--ld-f-body);
  font-size: 14px;
  color: var(--ld-ink);
  text-decoration: none;
  transition: border-color .15s, color .15s;
}
.ld-blog-pagination__item--wide { padding: 0 14px; }
.ld-blog-pagination__ellipsis {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
a.ld-blog-pagination__item:hover { border-color: var(--ld-gold); color: var(--ld-gold-deep); }
.ld-blog-pagination__item.is-active {
  background: var(--ld-ink);
  border-color: var(--ld-ink);
  color: var(--ld-paper);
}

/* ---- Empty state ---------------------------------------------------------- */
.ld-blog-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 18px;
  max-width: 520px;
  margin: 8px auto;
  padding: 28px 16px 40px;
}
.ld-blog-empty__title { margin: 0; font-size: 22px; color: var(--ld-ink); }

/* ---- Detail: header (single <h1>) ----------------------------------------- */
.ld-blog-article__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 760px;
  margin: 4px auto 24px;
  text-align: center;
}
.ld-blog-article__title {
  margin: 0;
  font-size: 30px;
  line-height: 1.14;
  color: var(--ld-ink);
}
.ld-blog-article__date {
  margin: 0;
  font-family: var(--ld-f-thin);
  font-weight: 100;
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ld-ink-mute);
}
.ld-blog-article__cover {
  margin: 0 0 28px;
  border-radius: 10px;
  overflow: hidden;
}
.ld-blog-article__cover img { display: block; width: 100%; height: auto; }

/* ---- Detail: BO content uses shared CMS rich-text rules above. */
.ld-blog-article__body {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ld-ink-soft);
  overflow-wrap: break-word;
}
.ld-blog-article__body ul,
.ld-blog-article__body ol { margin: 0 0 16px; padding-left: 1.35em; }
.ld-blog-article__body li { margin: 0 0 8px; }

.ld-blog-products {
  margin: 30px 0;
  padding: 22px 0 0;
  border-top: 1px solid var(--ld-line);
}
.ld-blog-products__title {
  margin: 0 0 16px;
  font-size: 24px;
  line-height: 1.2;
  color: var(--ld-ink);
}
.ld-blog-products__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

/* ---- Detail: tags + prev/next + back -------------------------------------- */
.ld-blog-article__tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; }

.ld-blog-articlenav {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin: 36px 0 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--ld-line);
}
.ld-blog-articlenav__side a {
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
  padding: 14px 16px;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: #fff;
  text-decoration: none;
  color: var(--ld-ink);
  transition: border-color .15s, box-shadow .15s;
}
.ld-blog-articlenav__side a:hover { border-color: var(--ld-gold); box-shadow: var(--ld-shadow-card); }
.ld-blog-articlenav__label { color: var(--ld-gold-deep); }
.ld-blog-articlenav__name {
  font-size: 15px;
  line-height: 1.25;
  color: var(--ld-ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.ld-blog-article__back { margin: 28px 0 0; text-align: center; }

/* ---- Tablet / desktop ----------------------------------------------------- */
@media (min-width: 560px) {
  .ld-blog-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .ld-blog-products__grid { grid-template-columns: repeat(2, 1fr); }
  .ld-blog-articlenav { grid-template-columns: 1fr 1fr; gap: 16px; }
  .ld-blog-articlenav__side--next { text-align: right; }
  .ld-blog-articlenav__side--next a { align-items: flex-end; }
}

@media (min-width: 768px) {
  .ld-blog { padding: 12px 24px 56px; }
  .ld-blog__title,
  .ld-blog-article__title { font-size: 40px; }
}

@media (min-width: 1024px) {
  .ld-blog-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1200px) {
  .ld-blog__title,
  .ld-blog-article__title { font-size: 46px; }
}

/* Final overrides. */

/* Keep French title casing; the base theme capitalizes headings/buttons. */
.ld-product-card__name,
.ld-product__name,
.ld-cat-h1,
.ld-search-h1,
.ld-section__title,
.ld-cross-sell__title,
.ld-blog__title,
.ld-blog-card__title,
.ld-blog-article__title,
.ld-hero-slide__title,
.ld-coffrets__title,
.ld-histoire__title {
  text-transform: none;
}

/* Product add-to-cart CTA ("Ajouter au panier" / "Acheter") — native .btn-primary
   inside the PDP buy box, capitalized by theme.css. Scoped to the cart block. */
.product-add-to-cart .btn {
  text-transform: none;
}

/* Hero overlay contrast on bright slides. */
.ld-hero-slide__overlay {
  background: linear-gradient(180deg,
    rgba(29,29,27,.12) 0%,
    rgba(29,29,27,.32) 45%,
    rgba(29,29,27,.86) 100%);
}

.ld-hero-slide__title,
.ld-hero-slide__desc,
.ld-hero-slide__tag {
  text-shadow: 0 1px 8px rgba(0,0,0,.38);
}

.ld-hero-slide__actions .ld-btn {
  box-shadow: 0 4px 14px rgba(0,0,0,.22);
}

@media (min-width: 768px) {
  .ld-hero-slide__overlay {
    background: linear-gradient(90deg,
      rgba(29,29,27,.78) 0%,
      rgba(29,29,27,.46) 38%,
      rgba(29,29,27,.08) 72%,
      transparent 100%);
  }
}

/* ==========================================================================
   Account, cart & checkout surfaces
   ========================================================================== */

/* ---- Title band: drop the Ecolife food artwork, brand the H1 ------------- */
body:has(#content.ld-account) .page-title-wrapper,
body.page-authentication .page-title-wrapper,
body.page-registration .page-title-wrapper,
body.page-password .page-title-wrapper {
  background: var(--ld-paper);
  border-top: 1px solid var(--ld-line-soft);
  border-bottom: 1px solid var(--ld-line);
  margin-bottom: 44px;
  padding: 42px 0 34px;
}

body:has(#content.ld-account) .page-header h1,
body.page-authentication .page-header h1,
body.page-registration .page-header h1,
body.page-password .page-header h1,
body.page-cart .page-header h1,
body.page-order .page-header h1 {
  font-family: var(--ld-f-serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.1;
  letter-spacing: 0.02em;
  color: var(--ld-ink);
  text-transform: none;
}
@media (min-width: 768px) {
  body:has(#content.ld-account) .page-header h1,
  body.page-authentication .page-header h1,
  body.page-registration .page-header h1,
  body.page-password .page-header h1,
  body.page-cart .page-header h1,
  body.page-order .page-header h1 { font-size: 38px; }
}

body:has(#content.ld-account) .page-title-wrapper .breadcrumb,
body.page-authentication .page-title-wrapper .breadcrumb,
body.page-registration .page-title-wrapper .breadcrumb,
body.page-password .page-title-wrapper .breadcrumb {
  margin-top: 12px;
  font-size: 13px;
}
body:has(#content.ld-account) .page-title-wrapper .breadcrumb li a,
body:has(#content.ld-account) .page-title-wrapper .breadcrumb li a span {
  color: var(--ld-ink-mute);
}
body:has(#content.ld-account) .page-title-wrapper .breadcrumb li:last-child,
body:has(#content.ld-account) .page-title-wrapper .breadcrumb li:last-child a,
body:has(#content.ld-account) .page-title-wrapper .breadcrumb li:last-child span {
  color: var(--ld-gold-deep);
}

/* ---- Checkout step titles: serif, no FR-capitalize ---------------------- */
body#checkout .step-title,
body.page-order .step-title {
  font-family: var(--ld-f-serif);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.01em;
  color: var(--ld-ink);
}

body#order-confirmation .card-title,
body.page-order-confirmation .card-title,
body#order-confirmation .h1,
body.page-order-confirmation .h1,
body#order-confirmation .h3,
body.page-order-confirmation .h3 {
  text-transform: none !important;
}

body#order-confirmation .order-confirmation-table table {
  width: 100%;
  color: var(--ld-ink);
  border-collapse: separate;
  border-spacing: 0;
}

body#order-confirmation .order-confirmation-table table td {
  padding: 11px 8px;
  border-top: 1px solid var(--ld-line-soft);
  background: transparent;
}

body#order-confirmation .order-confirmation-table table td:last-child {
  text-align: right;
  font-weight: 700;
}

body#order-confirmation .order-confirmation-table table tr.total-value td {
  background: var(--ld-paper-2);
  color: var(--ld-ink);
}

body#order-confirmation #content-hook_payment_return.definition-list dl {
  gap: 0;
  margin: 18px 0 16px;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

body#order-confirmation #content-hook_payment_return.definition-list dl dt,
body#order-confirmation #content-hook_payment_return.definition-list dl dd {
  flex: 0 0 50%;
  margin: 0;
  padding: 14px 16px;
  color: var(--ld-ink);
  border-bottom: 1px solid var(--ld-line-soft);
  background: #fff;
}

body#order-confirmation #content-hook_payment_return.definition-list dl dt {
  font-weight: 500;
  background: var(--ld-paper);
}

body#order-confirmation #content-hook_payment_return.definition-list dl dt:last-of-type,
body#order-confirmation #content-hook_payment_return.definition-list dl dd:last-of-type {
  border-bottom: 0;
}

@media (max-width: 767px) {
  body#order-confirmation #content-hook_payment_return.definition-list dl dt,
  body#order-confirmation #content-hook_payment_return.definition-list dl dd {
    flex: 0 0 100%;
  }

  body#order-confirmation #content-hook_payment_return.definition-list dl dt {
    padding-bottom: 6px;
    border-bottom: 0;
  }

  body#order-confirmation #content-hook_payment_return.definition-list dl dd {
    padding-top: 6px;
  }
}

/* ---- Content column: constrained + centered ----------------------------- */
#content.ld-account {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto;
  background: transparent;
}
#content.ld-account .ld-account-intro {
  color: var(--ld-ink-mute);
  font-size: 15px;
  margin: 0 0 22px;
}

/* ---- Form inputs / selects / textarea ----------------------------------- */
#content.ld-account .form-control,
body.page-authentication #content .form-control,
body.page-registration #content .form-control,
body.page-password #content .form-control,
body.page-cart #main .form-control,
body.page-order #content .form-control {
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: #fff;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
}
#content.ld-account .form-control:focus,
body.page-authentication #content .form-control:focus,
body.page-registration #content .form-control:focus,
body.page-password #content .form-control:focus,
body.page-cart #main .form-control:focus,
body.page-order #content .form-control:focus {
  border-color: var(--ld-gold);
  box-shadow: 0 0 0 3px rgba(169, 147, 115, 0.15);
  outline: none;
}
#content.ld-account .form-control::placeholder,
body.page-authentication #content .form-control::placeholder,
body.page-registration #content .form-control::placeholder,
body.page-password #content .form-control::placeholder,
body.page-cart #main .form-control::placeholder,
body.page-order #content .form-control::placeholder {
  color: var(--ld-ink-mute);
}
/* Keep the cart qty touchspin square (joined to its +/- buttons) */
body.page-cart #main .bootstrap-touchspin .form-control {
  border-radius: 0;
}

/* Input-group: keep input + reveal button joined; soften the reveal chip */
#content.ld-account .input-group .form-control,
body.page-authentication #content .input-group .form-control,
body.page-registration #content .input-group .form-control,
body.page-password #content .input-group .form-control,
body.page-order #content .input-group .form-control {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
#content.ld-account .input-group-btn .btn[data-action="show-password"],
body.page-authentication #content .input-group-btn .btn[data-action="show-password"],
body.page-registration #content .input-group-btn .btn[data-action="show-password"],
body.page-password #content .input-group-btn .btn[data-action="show-password"],
body.page-order #content .input-group-btn .btn[data-action="show-password"] {
  background: var(--ld-paper-2);
  color: var(--ld-ink);
  border: 1px solid var(--ld-line);
  border-left: 0;
  border-radius: 0 4px 4px 0;
  text-transform: none;
  font-family: var(--ld-f-body);
  font-weight: 500;
}
#content.ld-account .input-group-btn .btn[data-action="show-password"]:hover,
body.page-authentication #content .input-group-btn .btn[data-action="show-password"]:hover,
body.page-registration #content .input-group-btn .btn[data-action="show-password"]:hover,
body.page-password #content .input-group-btn .btn[data-action="show-password"]:hover,
body.page-order #content .input-group-btn .btn[data-action="show-password"]:hover {
  background: var(--ld-cream);
}

/* ---- Labels & helper text ----------------------------------------------- */
#content.ld-account .form-control-label,
body.page-authentication #content .form-control-label,
body.page-registration #content .form-control-label,
body.page-password #content .form-control-label,
body.page-cart #main .form-control-label,
body.page-order #content .form-control-label {
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-weight: 600;
}
#content.ld-account .form-control-comment,
body.page-authentication #content .form-control-comment,
body.page-registration #content .form-control-comment,
body.page-password #content .form-control-comment,
body.page-cart #main .form-control-comment,
body.page-order #content .form-control-comment {
  color: var(--ld-ink-mute);
}

/* ---- Buttons → design system (kills slate + FR-capitalize) -------------- */
#content.ld-account .btn-primary,
#content.ld-account button[type="submit"],
body.page-authentication #content .btn-primary,
body.page-authentication #content button[type="submit"],
body.page-registration #content .btn-primary,
body.page-registration #content button[type="submit"],
body.page-password #content .btn-primary,
body.page-password #content button[type="submit"],
body.page-cart #main .btn-primary,
body.page-cart #main button[type="submit"],
body.page-order #content .btn-primary,
body.page-order #content button[type="submit"] {
  background: var(--ld-ink);
  border: 1px solid var(--ld-ink);
  color: var(--ld-paper);
  border-radius: 4px;
  text-transform: none;
  font-family: var(--ld-f-body);
  font-weight: 500;
  letter-spacing: 0.02em;
}
#content.ld-account .btn-primary:hover,
#content.ld-account button[type="submit"]:hover,
body.page-authentication #content .btn-primary:hover,
body.page-authentication #content button[type="submit"]:hover,
body.page-registration #content .btn-primary:hover,
body.page-registration #content button[type="submit"]:hover,
body.page-password #content .btn-primary:hover,
body.page-password #content button[type="submit"]:hover,
body.page-cart #main .btn-primary:hover,
body.page-cart #main button[type="submit"]:hover,
body.page-order #content .btn-primary:hover,
body.page-order #content button[type="submit"]:hover {
  background: #000;
  border-color: #000;
  color: var(--ld-paper);
}
/* Disabled CTA (e.g. empty-cart "Commander") stays clearly inert */
body.page-cart #main .btn-primary.disabled,
body.page-cart #main .btn-primary[disabled],
body.page-order #content .btn-primary.disabled,
body.page-order #content .btn-primary[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Secondary / link buttons inside account content */
#content.ld-account .btn-secondary,
#content.ld-account .btn-default {
  background: var(--ld-paper-2);
  border: 1px solid var(--ld-line);
  color: var(--ld-ink);
  border-radius: 4px;
  text-transform: none;
  font-family: var(--ld-f-body);
  font-weight: 500;
}
#content.ld-account .btn-secondary:hover,
#content.ld-account .btn-default:hover {
  background: var(--ld-cream);
  border-color: var(--ld-gold);
  color: var(--ld-ink);
}

/* ---- Generic cards softened to design-system surfaces ------------------- */
#content.ld-account .card,
body.page-cart #main .card,
body.page-order #content .card {
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  box-shadow: var(--ld-shadow-card);
}

/* ---- Checkout step indicator: green Ecolife accent → brand gold --------- */
body#checkout section.checkout-step.-reachable.-current .step-number,
body#checkout section.checkout-step.-current.-reachable.-complete .step-number {
  background-color: var(--ld-gold);
  border-color: var(--ld-gold);
}

/* ---- Checkout delivery choices: remove legacy grey carrier blocks -------- */
body#checkout section.checkout-step .delivery-options {
  display: grid;
  gap: 12px;
  margin: 18px 0 22px;
}

body#checkout section.checkout-step .delivery-options .delivery-option {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: stretch;
  margin: 0;
  padding: 0;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: rgba(255,255,255,.86);
  box-shadow: var(--ld-shadow-card);
  overflow: hidden;
}

body#checkout section.checkout-step .delivery-options .delivery-option:has(input:checked) {
  border-color: var(--ld-gold);
  background: #fff;
  box-shadow: 0 12px 28px rgba(31, 27, 20, .08);
}

body#checkout section.checkout-step .delivery-options .delivery-option > .col-sm-1,
body#checkout section.checkout-step .delivery-options .delivery-option > .delivery-option-2,
body#checkout section.checkout-step .delivery-options .delivery-option [class*="col-"] {
  float: none;
  width: auto;
  max-width: none;
  min-height: 0;
  padding-left: 0;
  padding-right: 0;
}

body#checkout section.checkout-step .delivery-options .delivery-option > .col-sm-1 {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--ld-line-soft);
  background: var(--ld-paper);
}

body#checkout section.checkout-step .delivery-options .delivery-option:has(input:checked) > .col-sm-1 {
  background: var(--ld-paper-2);
}

body#checkout section.checkout-step .delivery-options .delivery-option .delivery-option-2 {
  display: block;
  margin: 0;
  padding: 16px 18px;
  color: var(--ld-ink);
  cursor: pointer;
}

body#checkout section.checkout-step .delivery-options .delivery-option .delivery-option-2 > .row {
  display: grid;
  grid-template-columns: minmax(150px, 1.1fr) minmax(0, 1.4fr) auto;
  gap: 14px;
  align-items: center;
  margin: 0;
}

body#checkout section.checkout-step .delivery-options .carrier {
  align-items: center;
  margin: 0;
}

body#checkout section.checkout-step .delivery-options .carrier-logo img {
  display: block;
  max-width: 56px;
  max-height: 34px;
  object-fit: contain;
}

body#checkout section.checkout-step .delivery-options .carrier-name {
  display: block;
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
  text-transform: none;
}

body#checkout section.checkout-step .delivery-options .carrier-delay {
  display: block;
  color: var(--ld-ink-mute);
  font-size: 13px;
  line-height: 1.35;
}

body#checkout section.checkout-step .delivery-options .carrier-price {
  display: inline-flex;
  justify-self: end;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid var(--ld-line-soft);
  border-radius: 999px;
  background: var(--ld-paper);
  color: var(--ld-ink);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

body#checkout section.checkout-step .carrier-extra-content {
  margin: -4px 0 12px 44px;
  padding: 0 18px 14px;
  border: 1px solid var(--ld-line);
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: #fff;
}

body#checkout section.checkout-step .order-options {
  margin-top: 10px;
}

body#checkout section.checkout-step .order-options textarea {
  min-height: 86px;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: #fff;
  color: var(--ld-ink);
}

@media (max-width: 767.98px) {
  body#checkout section.checkout-step .delivery-options {
    gap: 10px;
    margin: 14px 0 18px;
  }

  body#checkout section.checkout-step .delivery-options .delivery-option {
    grid-template-columns: 40px minmax(0, 1fr);
    border-radius: 8px;
  }

  body#checkout section.checkout-step .delivery-options .delivery-option .delivery-option-2 {
    padding: 13px 14px;
  }

  body#checkout section.checkout-step .delivery-options .delivery-option .delivery-option-2 > .row {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  body#checkout section.checkout-step .delivery-options .carrier-price {
    justify-self: start;
  }

  body#checkout section.checkout-step .carrier-extra-content {
    margin-left: 40px;
    padding: 0 14px 12px;
  }
}

/* ---- Account links + dividers ------------------------------------------- */
#content.ld-account .no-account a,
#content.ld-account .forgot-password a,
body.page-authentication #content .no-account a,
body.page-authentication #content .forgot-password a,
body.page-cart #main .cart-voucher .promo-code a {
  color: var(--ld-gold);
  font-weight: 500;
}
body.page-registration #content .ld-register-login-link a,
body.page-registration #content .ld-register-pro-link a {
  color: var(--ld-ink);
  font-weight: 700;
}
#content.ld-account .no-account a:hover,
#content.ld-account .forgot-password a:hover,
body.page-authentication #content .no-account a:hover,
body.page-authentication #content .forgot-password a:hover {
  color: var(--ld-gold-deep);
}
body.page-registration #content .ld-register-login-link a:hover,
body.page-registration #content .ld-register-pro-link a:hover {
  color: var(--ld-gold-deep);
}
#content.ld-account hr {
  border: 0;
  border-top: 1px solid var(--ld-line);
}

/* ---- Cart page: product list, summary, voucher, trust block ------------- */
body.page-cart #main {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 24px 64px;
}

body.page-cart #main .cart-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 456px);
  gap: 28px;
  align-items: start;
  margin: 0;
}

body.page-cart #main .cart-grid--empty {
  display: block;
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}

body.page-cart #main .cart-grid-body,
body.page-cart #main .cart-grid-right {
  float: none;
  width: auto;
  max-width: none;
  padding: 0;
}

body.page-cart #main .cart-container,
body.page-cart #main .cart-summary {
  overflow: hidden;
  background: rgba(255,255,255,.72);
}

body.page-cart #main .cart-items {
  margin: 0;
}

body.page-cart #main .ld-cart-empty {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 28px;
  text-align: center;
}

body.page-cart #main .ld-cart-empty__icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--ld-paper-2);
  color: var(--ld-gold-deep);
  line-height: 1;
}

body.page-cart #main .ld-cart-empty__icon .material-icons {
  display: block;
  color: inherit;
  font-size: 29px;
  line-height: 1;
}

body.page-cart #main .ld-cart-empty__title {
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: 30px;
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0;
  text-transform: none;
}

body.page-cart #main .ld-cart-empty__text {
  max-width: 460px;
  margin: 0;
  color: var(--ld-ink-mute);
  font-size: 15px;
  line-height: 1.55;
}

body.page-cart #main .cart-items-title {
  padding: 0;
  border-bottom: 1px solid var(--ld-line);
  background: rgba(250,246,236,.72);
  color: var(--ld-ink);
  font-weight: 600;
}

body.page-cart #main .product-line-grid .row,
body.page-cart #main .product-line-grid {
  margin-left: 0;
  margin-right: 0;
}

body.page-cart #main .cart-items-title-grid,
body.page-cart #main .product-line-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 86px 112px 100px 30px;
  column-gap: 18px;
}

body.page-cart #main .cart-items-title-grid {
  align-items: center;
  min-height: 78px;
  padding: 0 28px;
}

body.page-cart #main .cart-item {
  position: relative;
  border-bottom: 1px solid var(--ld-line-soft);
}

body.page-cart #main .cart-item:last-child {
  border-bottom: 0;
}

body.page-cart #main .product-line-grid {
  align-items: start;
  padding: 32px 28px;
}

body.page-cart #main .product-line-grid-left,
body.page-cart #main .product-line-grid-right,
body.page-cart #main .product-line-grid [class*="col-"] {
  float: none;
  width: auto;
  padding-left: 0;
  padding-right: 0;
}

body.page-cart #main .product-line-grid-left {
  grid-column: 1;
  min-width: 0;
}

body.page-cart #main .product-line-grid-left > .row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

body.page-cart #main .product-image {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 112px;
  border: 1px solid var(--ld-line-soft);
  border-radius: 6px;
  background: #fff;
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

body.page-cart #main a.product-image:hover {
  border-color: var(--ld-gold);
  box-shadow: 0 8px 18px rgba(46,38,26,.08);
}

body.page-cart #main .product-image img {
  display: block;
  width: 96px;
  height: 112px;
  object-fit: contain;
}

body.page-cart #main .product-line-grid-body {
  min-width: 0;
  padding-left: 0;
}

body.page-cart #main .product_name {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--ld-ink);
  font-weight: 700;
  line-height: 1.35;
}

body.page-cart #main .product-line-info {
  margin-bottom: 5px;
}

body.page-cart #main .product-line-info .label,
body.page-cart #main .product-line-info .value {
  color: var(--ld-ink-mute);
  font-size: 13px;
}

body.page-cart #main .product-line-gift-amount .label,
body.page-cart #main .product-line-gift-amount .value {
  color: var(--ld-ink);
  font-weight: 650;
}

body.page-cart #main .product-line-customization {
  display: grid;
  gap: 7px;
  max-width: 420px;
  margin-top: 12px;
  padding: 14px 16px;
  border: 1px solid var(--ld-line-soft);
  border-radius: 6px;
  background: rgba(250,246,236,.45);
}

body.page-cart #main .product-line-customization__row {
  display: block;
}

body.page-cart #main .product-line-customization .label {
  display: inline;
  padding: 0;
  background: transparent;
  color: var(--ld-ink);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.35;
  text-align: left;
}

body.page-cart #main .product-line-customization .value {
  display: inline;
  color: var(--ld-ink-mute);
  font-size: 12px;
  line-height: 1.35;
}

body.page-cart #main .product-line-customization + a {
  display: inline-flex;
  margin-top: 7px;
  color: var(--ld-gold-deep);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}

body.page-cart #main .customization-modal .product-customization-line.row {
  display: block;
  margin-right: 0;
  margin-left: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--ld-line-soft);
}

body.page-cart #main .customization-modal .product-customization-line .label,
body.page-cart #main .customization-modal .product-customization-line .value {
  display: inline;
  float: none;
  width: auto;
  max-width: none;
  padding: 0;
  background: transparent;
  text-align: left;
}

body.page-cart #main .js-cart-line-product-quantity,
body.page-cart #main .bootstrap-touchspin input.js-cart-line-product-quantity {
  order: 2;
  width: 36px;
  height: 34px;
  min-height: 34px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ld-ink);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  box-shadow: none;
}

body.page-cart #main .bootstrap-touchspin {
  display: inline-grid;
  grid-template-columns: 34px 36px 34px;
  justify-self: start;
  height: 34px;
  border: 1.5px solid var(--ld-ink);
  border-radius: 6px;
  overflow: hidden;
  background: #fff;
}

body.page-cart #main .bootstrap-touchspin .input-group-btn-vertical {
  display: contents;
  height: 34px;
}

body.page-cart #main .bootstrap-touchspin .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ld-ink);
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
}

body.page-cart #main .bootstrap-touchspin .bootstrap-touchspin-down {
  order: 1;
  border-right: 1px solid var(--ld-line);
}

body.page-cart #main .bootstrap-touchspin .bootstrap-touchspin-up {
  order: 3;
  border-left: 1px solid var(--ld-line);
}

body.page-cart #main .bootstrap-touchspin .bootstrap-touchspin-down::before {
  content: "−";
}

body.page-cart #main .bootstrap-touchspin .bootstrap-touchspin-up::before {
  content: "+";
}

body.page-cart #main .bootstrap-touchspin .btn i,
body.page-cart #main .bootstrap-touchspin .btn::after {
  display: none;
}

body.page-cart #main .customization-modal .product-customization-line .label {
  color: var(--ld-ink);
  font-weight: 650;
}

body.page-cart #main .product-price-and-shipping,
body.page-cart #main .product-line-grid-right > .row > .price {
  color: var(--ld-ink);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
}

body.page-cart #main .product-line-grid .product-price,
body.page-cart #main .product-line-grid .product-price strong {
  white-space: nowrap;
}

body.page-cart #main .product-line-grid .product-price-and-shipping > .price,
body.page-cart #main .product-line-grid .product-price strong {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

body.page-cart #main .product-line-grid .ld-price-tax-label {
  display: inline;
  min-height: 0;
  margin-left: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: currentColor;
  font-family: inherit;
  font-size: 1em;
  font-style: inherit;
  font-weight: inherit;
  letter-spacing: 0;
  line-height: inherit;
  text-transform: uppercase;
  vertical-align: middle;
  transform: none;
}

body.page-cart #main .product-line-grid-right,
body.page-cart #main .product-line-grid-right > .row {
  display: contents;
}

body.page-cart #main .product-price-and-shipping {
  grid-column: 2;
  justify-self: start;
  min-width: 0;
  margin-top: 2px;
}

body.page-cart #main .product-line-grid-right .qty {
  grid-column: 3;
  justify-self: start;
  min-width: 0;
}

body.page-cart #main .product-line-grid-right > .row > .price {
  grid-column: 4;
  justify-self: start;
  min-width: 0;
}

body.page-cart #main .product-line-grid-right > .row > .text-xs-right {
  grid-column: 5;
  justify-self: end;
  min-width: 0;
}

body.page-cart #main .product-line-grid-right .qty,
body.page-cart #main .product-line-grid-right .text-xs-right {
  width: auto;
  max-width: none;
}

body.page-cart #main .cart-line-product-actions {
  display: flex;
  justify-content: flex-end;
}

body.page-cart #main .product-line-grid > .clearfix {
  display: none;
}

body.page-cart #main .remove-from-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  color: var(--ld-ink);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

body.page-cart #main .remove-from-cart:hover {
  background: var(--ld-paper-2);
  color: var(--ld-warn);
}

body.page-cart #main .cart-grid-body > .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 22px;
  padding: 12px 28px;
}

body.page-cart #main .cart-detailed-totals {
  padding: 0;
}

body.page-cart #main .cart-summary .block-promo,
body#cart #main .cart-summary .block-promo,
body.page-cart #main .cart-summary .cart-voucher {
  background: transparent;
}

body.page-cart #main .cart-summary .cart-voucher {
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--ld-line);
}

body.page-cart #main .cart-summary .block-promo {
  margin: 0;
  padding: 0;
}

body.page-cart #main .cart-summary .promo-code {
  padding: 0;
  background: transparent;
}

body.page-cart #main .cart-summary .cart-voucher h5 {
  margin: 0 0 16px;
  padding: 0;
  background: transparent !important;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 18px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}

body#cart #main .cart-summary .cart-voucher,
body#cart #main .cart-summary .block-promo,
body#cart #main .cart-summary .promo-code,
body#cart #main .cart-summary .cart-voucher h5 {
  background: transparent !important;
}

body.page-order .cart-summary .block-promo,
body.page-order .cart-summary .cart-voucher,
body.page-order .cart-summary .promo-code,
body#checkout .cart-summary .block-promo,
body#checkout .cart-summary .cart-voucher,
body#checkout .cart-summary .promo-code {
  background: transparent !important;
}

body#checkout #js-checkout-summary .block-promo h5,
body#checkout #js-checkout-summary #promo-code {
  background: transparent !important;
}

body.page-order .cart-summary .cart-voucher,
body#checkout .cart-summary .cart-voucher {
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--ld-line);
}

body.page-order .cart-summary .cart-voucher h5,
body#checkout .cart-summary .cart-voucher h5 {
  margin: 0 0 16px;
  padding: 0;
  background: transparent !important;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

body.page-cart #main .cart-summary .promo-code form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

body.page-cart #main .cart-summary .promo-input {
  min-height: 46px;
}

body.page-cart #main .cart-summary .cart-detailed-subtotals,
body.page-cart #main .cart-summary .cart-summary-totals {
  padding: 20px 24px;
}

body.page-cart #main .cart-summary-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin: 0;
  padding: 9px 0;
  color: var(--ld-ink);
}

body.page-cart #main .cart-summary-line > .label {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
}

body.page-cart #main .cart-summary-line .value {
  flex: 0 0 auto;
  min-width: max-content;
  margin-left: auto;
  font-weight: 700;
  text-align: right;
}

body.page-cart #main .cart-summary-line > div:not(.label):not(.value) {
  flex: 0 0 100%;
  text-align: right;
}

body.page-cart #main .cart-summary-line > div:has(> small.value:empty) {
  display: none;
}

body.page-cart #main .cart-summary-totals {
  border-top: 1px solid var(--ld-line-soft);
}

body.page-cart #main .cart-detailed-actions {
  padding: 20px 24px 24px;
}

body.page-cart #main .cart-detailed-actions .btn-primary {
  width: 100%;
  min-height: 48px;
}

body.page-cart .ld-cart-trust {
  margin-top: 18px;
  padding: 0;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  background: rgba(255,255,255,.72);
  box-shadow: var(--ld-shadow-card);
  overflow: hidden;
}

body.page-cart .ld-cart-trust .payment-detail {
  display: none;
}

body#checkout .cart-grid-right > .payment-detail {
  display: none;
}

body.page-cart .ld-cart-trust #block-reassurance ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
}

body.page-cart .ld-cart-trust #block-reassurance li {
  margin: 0;
  list-style: none;
  border-bottom: 1px solid var(--ld-line-soft);
}

body.page-cart .ld-cart-trust .block-reassurance-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 50px;
  padding: 12px 18px;
  color: var(--ld-ink);
}

body.page-cart .ld-cart-trust .block-reassurance-item img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

body.page-cart .ld-cart-trust .block-reassurance-item .h6 {
  margin: 0;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
}

body.page-cart .ld-cart-payment-note {
  margin: 0;
  padding: 16px 18px 18px;
  background: var(--ld-paper);
}

body.page-cart .ld-cart-payment-note__title,
body.page-cart .ld-cart-payment-note__methods {
  display: block;
}

body.page-cart .ld-cart-payment-note__title {
  color: var(--ld-ink);
  font-weight: 700;
}

body.page-cart .ld-cart-payment-note__methods {
  margin-top: 3px;
  color: var(--ld-ink-mute);
  font-size: 13px;
  letter-spacing: .02em;
}

@media (min-width: 992px) {
  body.page-cart .ld-cart-trust {
    padding: 16px;
    background: rgba(255,255,255,.82);
  }

  body.page-cart .ld-cart-trust #block-reassurance ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--ld-line-soft);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
  }

  body.page-cart .ld-cart-trust #block-reassurance li {
    border-right: 1px solid var(--ld-line-soft);
    border-bottom: 0;
  }

  body.page-cart .ld-cart-trust #block-reassurance li:last-child {
    border-right: 0;
  }

  body.page-cart .ld-cart-trust .block-reassurance-item {
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    min-height: 88px;
    padding: 16px 10px;
    text-align: center;
  }

  body.page-cart .ld-cart-trust .block-reassurance-item img {
    width: 24px;
    height: 24px;
  }

  body.page-cart .ld-cart-trust .block-reassurance-item .h6 {
    font-size: 13px;
    line-height: 1.25;
  }

  body.page-cart .ld-cart-payment-note {
    margin-top: 14px;
    padding: 14px 16px 0;
    border-top: 1px solid var(--ld-line-soft);
    background: transparent;
  }

  body.page-cart .ld-cart-payment-note__title {
    font-size: 14px;
  }

  body.page-cart .ld-cart-payment-note__methods {
    margin-top: 5px;
    font-size: 13px;
  }
}

@media (max-width: 991px) {
  body.page-cart #main {
    padding: 0 14px 82px;
  }

  body.page-cart #main .cart-grid {
    display: block;
  }

  body.page-cart #main .cart-grid-right {
    margin-top: 22px;
  }

  body.page-cart #main .cart-items-title {
    display: none;
  }

  body.page-cart #main .product-line-grid {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 16px;
    padding: 16px 42px 18px 16px;
  }

  body.page-cart #main .product-line-grid-left,
  body.page-cart #main .product-line-grid-right {
    width: auto;
    max-width: none;
  }

  body.page-cart #main .product-line-grid-left {
    display: contents;
  }

  body.page-cart #main .product-line-grid-left > .row {
    display: contents;
  }

  body.page-cart #main .product-image {
    min-height: 112px;
  }

  body.page-cart #main .product-image img {
    width: 76px;
    height: 100px;
  }

  body.page-cart #main .product-line-grid-body {
    padding-left: 0;
  }

  body.page-cart #main .product-line-grid-right {
    display: block;
    grid-column: 2;
  }

  body.page-cart #main .product-line-grid-right > .row {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 10px 14px;
    align-items: center;
    margin-top: 10px;
  }

  body.page-cart #main .product-price-and-shipping {
    display: none;
  }

  body.page-cart #main .product-line-grid-right .qty {
    grid-column: 1;
  }

  body.page-cart #main .product-line-grid-right > .row > .price {
    grid-column: 1 / -1;
    justify-self: start;
    font-size: 16px;
  }

  body.page-cart #main .product-line-grid-right > .row > .text-xs-right {
    grid-column: 2;
  }

  body.page-cart #main .cart-line-product-actions {
    position: absolute;
    top: 12px;
    right: 12px;
  }

  body.page-cart #main .cart-summary .cart-voucher,
  body.page-cart #main .cart-summary .cart-detailed-subtotals,
  body.page-cart #main .cart-summary .cart-summary-totals,
  body.page-cart #main .cart-detailed-actions {
    padding-left: 18px;
    padding-right: 18px;
  }

  body.page-cart #main .cart-summary .promo-code form {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 768px) and (max-width: 991px) {
  body#cart.page-cart #main .cart-item {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--ld-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--ld-shadow-card);
  }

  body#cart.page-cart #main .product-line-grid {
    grid-template-columns: 132px minmax(0, 1fr) 112px minmax(96px, auto) 32px;
    gap: 20px;
    align-items: center;
    padding: 22px 24px;
  }

  body#cart.page-cart #main .product-line-grid-left,
  body#cart.page-cart #main .product-line-grid-left > .row,
  body#cart.page-cart #main .product-line-grid-right,
  body#cart.page-cart #main .product-line-grid-right > .row {
    display: contents;
  }

  body#cart.page-cart #main .product-image {
    grid-column: 1;
    width: 132px;
    min-height: 132px;
    padding: 10px;
  }

  body#cart.page-cart #main .product-image img {
    width: 96px;
    height: 106px;
  }

  body#cart.page-cart #main .product-line-grid-body {
    grid-column: 2;
    align-self: center;
  }

  body#cart.page-cart #main .product-line-grid-right .qty {
    grid-column: 3;
    justify-self: center;
  }

  body#cart.page-cart #main .product-line-grid-right > .row > .price {
    grid-column: 4;
    justify-self: end;
    font-size: 17px;
  }

  body#cart.page-cart #main .product-line-grid-right > .row > .text-xs-right {
    grid-column: 5;
    justify-self: end;
  }

  body#cart.page-cart #main .cart-line-product-actions {
    position: static;
  }
}

@media (max-width: 767.98px) {
  body#cart.page-cart #main {
    padding: 0 10px 88px;
  }

  body#cart.page-cart #main .cart-grid {
    width: 100%;
    max-width: 390px;
    margin: 0 auto;
  }

  body#cart.page-cart #main .cart-container,
  body#cart.page-cart #main .cart-summary,
  body#cart.page-cart .ld-cart-trust {
    background: rgba(255,255,255,.86);
    border-radius: 8px;
  }

  body#cart.page-cart #main .cart-items {
    display: grid;
    gap: 14px;
    padding: 0;
    list-style: none;
  }

  body#cart.page-cart #main .cart-item {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    grid-template-areas:
      "image body"
      "image qty"
      "image price";
    column-gap: 16px;
    row-gap: 10px;
    align-items: center;
    position: relative;
    overflow: hidden;
    min-height: 132px;
    padding: 14px 42px 14px 14px;
    border: 1px solid var(--ld-line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--ld-shadow-card);
    list-style: none;
  }

  body#cart.page-cart #main .cart-item:last-child {
    border-bottom: 1px solid var(--ld-line);
  }

  /* Cart rows flatten PrestaShop/Bootstrap columns into the mobile CSS grid. */
  body#cart.page-cart #main .product-line-grid {
    display: contents !important;
    margin: 0 !important;
    padding: 0 !important;
  }

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

  body#cart.page-cart #main .product-line-grid-left {
    display: contents !important;
  }

  body#cart.page-cart #main .product-line-grid-left > .row {
    display: contents !important;
    margin: 0 !important;
  }

  body#cart.page-cart #main .product-image {
    grid-area: image;
    position: static !important;
    display: flex !important;
    width: 92px;
    min-height: 104px;
    padding: 8px;
    border: 1px solid var(--ld-line-soft);
    border-radius: 7px;
    background: #fff;
  }

  body#cart.page-cart #main .product-image img {
    width: 76px;
    height: 88px;
    object-fit: contain;
  }

  body#cart.page-cart #main .product-line-grid-body {
    grid-area: body;
    width: auto !important;
    min-width: 0;
    align-self: end;
    padding: 0;
  }

  body#cart.page-cart #main .product_name {
    display: block;
    color: var(--ld-ink);
    font-family: var(--ld-f-serif);
    font-size: 15px;
    font-style: normal;
    font-weight: 400;
    line-height: 1.18;
    letter-spacing: .03em;
  }

  body#cart.page-cart #main .product-line-info {
    margin: 0 0 4px;
  }

  body#cart.page-cart #main .product-line-info .label,
  body#cart.page-cart #main .product-line-info .value {
    color: var(--ld-ink-mute);
    font-size: 12px;
    font-style: italic;
    line-height: 1.3;
  }

  body#cart.page-cart #main .product-line-customization {
    gap: 4px;
    margin-top: 8px;
    padding: 8px 9px;
  }

  body#cart.page-cart #main .product-line-customization__row {
    grid-template-columns: 1fr;
    gap: 1px;
  }

  body#cart.page-cart #main .product-line-grid-right {
    display: contents !important;
  }

  body#cart.page-cart #main .product-line-grid-right > .row {
    display: contents !important;
  }

  body#cart.page-cart #main .product-line-grid-right .qty {
    grid-area: qty;
    width: auto !important;
    align-self: center;
    justify-self: start;
  }

  body#cart.page-cart #main .product-line-grid-right .price {
    grid-area: price;
    justify-self: start;
    width: auto !important;
    align-self: start;
    color: var(--ld-ink);
    font-size: 16px;
    font-style: italic;
    font-weight: 700;
    line-height: 1.1;
  }

  body#cart.page-cart #main .product-line-grid .ld-price-tax-label {
    min-height: 0;
    margin-left: 4px;
    padding: 0;
    font-size: 1em;
    transform: none;
  }

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

  body#cart.page-cart #main .cart-line-product-actions {
    position: absolute;
    top: 10px;
    right: 10px;
  }

  body#cart.page-cart #main .remove-from-cart {
    width: 30px;
    height: 30px;
    background: transparent;
    color: var(--ld-ink);
  }

  body#cart.page-cart #main .cart-grid-body > .btn-primary {
    width: 100%;
    margin-top: 18px;
  }

  body#cart.page-cart #main .cart-grid-right {
    margin-top: 20px;
  }

  body#cart.page-cart #main .cart-summary .cart-voucher {
    padding: 16px;
  }

  body#cart.page-cart #main .cart-summary .cart-voucher h5 {
    margin-bottom: 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--ld-line-soft);
    background: transparent;
    font-size: 17px;
  }

  body#cart.page-cart #main .cart-summary .promo-code form {
    gap: 10px;
  }

  body#cart.page-cart #main .cart-summary .promo-input {
    width: 100%;
    min-height: 44px;
    background: #fff;
  }

  body#cart.page-cart #main .cart-summary .promo-code .btn {
    width: 100%;
    min-height: 44px;
  }

  body#cart.page-cart #main .cart-summary .cart-detailed-subtotals,
  body#cart.page-cart #main .cart-summary .cart-summary-totals {
    padding: 16px;
  }

  body#cart.page-cart #main .cart-summary-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: baseline;
    padding: 10px 0;
    font-size: 15px;
  }

  body#cart.page-cart #main .cart-summary-line .value {
    min-width: 0;
    margin-left: 0;
    justify-self: end;
  }

  body#cart.page-cart #main .cart-summary-line > div:not(.label):not(.value) {
    grid-column: 1 / -1;
    text-align: left;
  }

  body#cart.page-cart #main .cart-summary-line > div:empty {
    display: none;
  }

  body#cart.page-cart #main .cart-detailed-actions {
    padding: 16px;
  }

  body#cart.page-cart .ld-cart-trust {
    padding: 0;
  }

  body#cart.page-cart .ld-cart-trust .ld-reassurance-row {
    padding: 10px 14px 8px;
  }

  body#cart.page-cart .ld-cart-trust .block-reassurance-item {
    min-height: 44px;
    padding: 8px 0;
  }

  body#cart.page-cart .ld-cart-trust .block-reassurance-item img {
    width: 20px;
    height: 20px;
  }

  body#cart.page-cart .ld-cart-payment-note {
    margin: 4px 14px 14px;
    padding: 12px 0 0;
    border-top: 1px solid var(--ld-line-soft);
    background: transparent;
  }
}

/* ---- Auth / register / password card ------------------------------------ */
body.page-authentication #content,
body.page-registration #content,
body.page-password #content {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  box-shadow: var(--ld-shadow-card);
  padding: 32px 24px;
}
@media (min-width: 768px) {
  body.page-authentication #content,
  body.page-registration #content,
  body.page-password #content {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
  }
}
body.page-authentication #login-form,
body.page-registration #customer-form,
body.page-password #content form {
  max-width: 620px;
  margin: 0 auto;
}
body.page-authentication #content .form-footer,
body.page-registration #content .form-footer,
body.page-password #content .form-footer {
  display: flex;
  justify-content: center;
  margin-top: 26px;
}
body.page-authentication #content .btn-primary,
body.page-registration #content .btn-primary,
body.page-password #content .btn-primary {
  min-width: 180px;
  min-height: 48px;
  padding: 12px 22px;
}
body.page-authentication #content .forgot-password {
  margin-top: 14px;
  text-align: center;
}
body.page-authentication #content .no-account {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid var(--ld-line);
  text-align: center;
}
body.page-authentication #content .no-account a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 18px;
  border: 1px solid var(--ld-gold);
  border-radius: 4px;
  color: var(--ld-ink);
  background: var(--ld-paper-2);
}
body.page-authentication #content .no-account a:hover {
  background: var(--ld-cream);
  color: var(--ld-ink);
}

/* ---- Form fields: spacing & sizing (account + auth) --------------------- */
#content.ld-account .form-group,
body.page-authentication #content .form-group,
body.page-registration #content .form-group,
body.page-password #content .form-group {
  margin-bottom: 18px;
}
#content.ld-account .form-control,
body.page-authentication #content .form-control,
body.page-registration #content .form-control,
body.page-password #content .form-control {
  min-height: 46px;
  padding: 10px 14px;
  font-size: 15px;
}
#content.ld-account .input-group-btn .btn[data-action="show-password"],
body.page-authentication #content .input-group-btn .btn[data-action="show-password"],
body.page-registration #content .input-group-btn .btn[data-action="show-password"],
body.page-password #content .input-group-btn .btn[data-action="show-password"] {
  min-height: 46px;
  padding-left: 16px;
  padding-right: 16px;
}

/* ---- Identity & address forms: white card, centered --------------------- */
#content.ld-account #customer-form,
#content.ld-account .address-form {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 12px;
  box-shadow: var(--ld-shadow-card);
  padding: 30px 30px 24px;
}
#content.ld-account #customer-form .form-footer,
#content.ld-account .address-form .form-footer {
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--ld-line-soft);
}
#content.ld-account #customer-form .form-control-submit,
#content.ld-account .address-form .form-control-submit {
  min-height: 48px;
  padding: 12px 26px;
}

/* ---- My-account dashboard cards ----------------------------------------- */
body.page-my-account #content.ld-account {
  max-width: 1280px;
}
#content.ld-account .links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
}
#content.ld-account .links > a {
  width: auto;
  max-width: none;
  padding: 0;
  color: var(--ld-ink);
  text-decoration: none;
}
#content.ld-account .links a span.link-item {
  display: flex;
  min-height: 88px;
  height: 100%;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 14px;
  padding: 18px 20px;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  box-shadow: var(--ld-shadow-card);
  font-family: var(--ld-f-serif);
  font-size: 18px;
  line-height: 1.18;
  color: var(--ld-ink);
  letter-spacing: 0.03em;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
#content.ld-account .links > a:hover .link-item {
  border-color: var(--ld-gold);
  box-shadow: var(--ld-shadow-hover);
  transform: translateY(-2px);
}
#content.ld-account .link-item .material-icons {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  background: var(--ld-paper-2);
  color: var(--ld-gold-deep);
  font-size: 22px;
  line-height: 1;
  transition: background .18s ease, color .18s ease;
}
#content.ld-account .links > a:hover .link-item .material-icons {
  background: var(--ld-cream);
  color: var(--ld-ink);
}
#content.ld-account #logout-link .link-item .material-icons {
  color: var(--ld-warn);
}

@media (max-width: 1199px) {
  #content.ld-account .links {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  #content.ld-account .links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---- Footer account links (Back to account / Home) ---------------------- */
body:has(#content.ld-account) .page-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  max-width: 1120px;
  margin: 34px auto 0;
}
body:has(#content.ld-account) .page-footer .account-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 11px 20px;
  background: rgba(255,255,255,.62);
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  color: var(--ld-ink);
  font-weight: 500;
  text-transform: none;
  text-decoration: none;
  box-shadow: 0 1px 0 rgba(29,29,27,.03);
}
body:has(#content.ld-account) .page-footer .account-link span {
  display: inline-flex;
  align-items: center;
  line-height: 1.15;
}
body:has(#content.ld-account) .page-footer .account-link:hover {
  background: var(--ld-paper-2);
  border-color: var(--ld-gold);
  color: var(--ld-ink);
}
body:has(#content.ld-account) .page-footer .account-link .material-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  font-size: 18px;
  line-height: 18px;
}

/* ---- Add-to-cart modal -------------------------------------------------- */
#blockcart-modal .modal-dialog {
  width: min(1080px, calc(100vw - 48px));
  max-width: min(1080px, calc(100vw - 48px));
  margin: 9vh auto 0;
}

#blockcart-modal .modal-content {
  overflow: hidden;
  border: 1px solid rgba(230,223,208,.95);
  border-radius: 12px;
  background: var(--ld-paper);
  box-shadow: 0 24px 76px rgba(29,29,27,.34);
}

#blockcart-modal .modal-header {
  position: relative;
  min-height: 64px;
  display: flex;
  align-items: center;
  padding: 12px 62px 12px 28px;
  background: var(--ld-ink-soft);
  border: 0;
}

#blockcart-modal .modal-title {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  gap: 12px;
  margin: 0;
  color: var(--ld-paper);
  font-family: var(--ld-f-body);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

#blockcart-modal .modal-title .material-icons {
  color: #6ecf8c;
  font-size: 24px;
  line-height: 1;
}

#blockcart-modal .modal-header .close {
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0;
  padding: 0;
  opacity: 1;
  color: var(--ld-paper);
  text-shadow: none;
}

#blockcart-modal .modal-header .close span {
  display: block;
  line-height: 1;
}

#blockcart-modal .modal-header .close .material-icons {
  color: inherit;
  font-size: 28px;
  line-height: 1;
}

#blockcart-modal .modal-body {
  padding: 0;
  background: var(--ld-paper);
}

#blockcart-modal .ld-cart-modal__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
  gap: 0;
  min-height: 330px;
}

#blockcart-modal .ld-cart-modal__product {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  padding: 44px 46px;
  background: #fff;
  border-right: 1px solid var(--ld-line);
}

#blockcart-modal .ld-cart-modal__image-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 230px;
  border-radius: 10px;
  background: var(--ld-paper);
}

#blockcart-modal .product-image {
  display: block;
  width: min(180px, 82%);
  max-width: 100%;
  height: 220px;
  object-fit: contain;
  margin: 0 auto;
}

#blockcart-modal .ld-cart-modal__product-copy {
  min-width: 0;
}

#blockcart-modal .product-name {
  margin: 0 0 10px;
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: 23px;
  font-weight: 400;
  line-height: 1.16;
  text-transform: none;
}

#blockcart-modal .product-price {
  margin: 0 0 10px;
  color: var(--ld-ink);
  font-size: 18px;
  font-weight: 700;
}

#blockcart-modal .ld-cart-modal__attr {
  display: block;
  margin-bottom: 4px;
  color: var(--ld-ink-mute);
  font-size: 13px;
}

#blockcart-modal .product-quantity,
#blockcart-modal .cart-content p {
  color: var(--ld-ink-mute);
  font-size: 14px;
}

#blockcart-modal .ld-cart-modal__summary {
  padding: 44px 46px;
  background: var(--ld-paper);
}

#blockcart-modal .ld-cart-modal__summary-card {
  height: 100%;
  padding: 4px 0 0;
}

#blockcart-modal .cart-content p.cart-products-count {
  margin: 0 0 22px;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.18;
  text-transform: none;
}

#blockcart-modal .ld-cart-modal__line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--ld-line-soft);
}

#blockcart-modal .ld-cart-modal__line strong {
  font-weight: 500;
}

#blockcart-modal .ld-cart-modal__line span {
  color: var(--ld-ink);
  font-weight: 700;
  text-align: right;
}

#blockcart-modal .product-total {
  margin-top: 14px;
  padding: 14px 14px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

#blockcart-modal .cart-content-btn {
  display: flex;
  gap: 12px;
  margin-top: 28px;
}

#blockcart-modal .cart-content-btn .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 12px 24px;
  border-radius: 6px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}

#blockcart-modal .cart-content-btn .btn-secondary {
  background: #fff;
  border: 1px solid var(--ld-line);
  color: var(--ld-ink);
}

#blockcart-modal .cart-content-btn .btn-primary {
  background: var(--ld-ink);
  border-color: var(--ld-ink);
  color: var(--ld-paper);
}

#blockcart-modal .cart-content-btn .btn-primary .material-icons {
  margin-right: 8px;
  font-size: 19px;
  line-height: 1;
}

@media (max-width: 767px) {
  #blockcart-modal .modal-dialog {
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    margin: 72px auto 0;
  }

  #blockcart-modal .modal-header {
    min-height: 54px;
    padding: 0 58px;
  }

  #blockcart-modal .modal-title {
    justify-content: center;
    padding-right: 0;
    font-size: 16px;
    text-align: center;
  }

  #blockcart-modal .modal-header .close {
    right: 18px;
  }

  #blockcart-modal .modal-body {
    padding: 0;
  }

  #blockcart-modal .ld-cart-modal__grid {
    display: block;
    min-height: 0;
  }

  #blockcart-modal .ld-cart-modal__product {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 24px 20px;
    border-right: 0;
    border-bottom: 1px solid var(--ld-line);
  }

  #blockcart-modal .ld-cart-modal__image-wrap {
    min-height: 130px;
  }

  #blockcart-modal .product-image {
    width: 94px;
    height: 116px;
  }

  #blockcart-modal .product-name {
    font-size: 18px;
  }

  #blockcart-modal .ld-cart-modal__summary {
    padding: 26px 20px 20px;
  }

  #blockcart-modal .cart-content p.cart-products-count {
    font-size: 18px;
  }

  #blockcart-modal .cart-content-btn {
    flex-direction: column;
    margin-top: 20px;
  }

  #blockcart-modal .cart-content-btn .btn {
    width: 100%;
  }
}

/* ---- Data tables (order history, vouchers, credit slips) ---------------- */
#content.ld-account .table {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--ld-shadow-card);
}
#content.ld-account .table thead th {
  border-bottom: 1px solid var(--ld-line);
  background: var(--ld-paper-2);
  color: var(--ld-ink);
  font-weight: 600;
  text-transform: none;
  font-size: 13px;
  letter-spacing: 0.01em;
}
#content.ld-account .table td,
#content.ld-account .table th {
  border-color: var(--ld-line-soft);
  vertical-align: middle;
}
#content.ld-account .table.table-striped tbody tr:nth-of-type(odd) {
  background: var(--ld-paper);
}
#content.ld-account .table tbody tr:hover {
  background: var(--ld-line-soft);
}
#content.ld-account .table .label-pill {
  border-radius: 999px;
  padding: 4px 12px;
  font-weight: 500;
  font-size: 12px;
}
#content.ld-account .order-actions a,
#content.ld-account .table a[data-link-action="view-order-details"] {
  color: var(--ld-gold-deep);
  font-weight: 600;
}
#content.ld-account .order-actions a:hover {
  color: var(--ld-ink);
}

/* Mobile order / voucher / slip cards (hidden-md-up lists) */
#content.ld-account .orders .order,
#content.ld-account .cart-rules .cart-rule,
#content.ld-account .credit-slips .credit-slip {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 10px;
  box-shadow: var(--ld-shadow-card);
  padding: 16px 18px;
  margin-bottom: 14px;
}
#content.ld-account .orders .order h3 {
  font-family: var(--ld-f-serif);
  font-size: 18px;
  margin: 0 0 6px;
}
#content.ld-account .orders .ld-order-card {
  padding: 18px;
}
#content.ld-account .ld-order-card__body {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
#content.ld-account .ld-order-card__main {
  min-width: 0;
}
#content.ld-account .ld-order-card__reference {
  display: inline-block;
  margin-bottom: 8px;
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: 19px;
  line-height: 1.15;
  text-decoration: none;
}
#content.ld-account .ld-order-card__date,
#content.ld-account .ld-order-card__total {
  color: var(--ld-ink-mute);
  font-size: 13px;
  line-height: 1.5;
}
#content.ld-account .ld-order-card .status {
  margin-top: 10px;
}
#content.ld-account .ld-order-card .label-pill {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 5px;
  white-space: normal;
  font-size: 12px;
  line-height: 1.25;
  font-weight: 600;
}
#content.ld-account .ld-order-card__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 0 0 auto;
}
#content.ld-account .ld-order-card__action {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ld-line);
  border-radius: 999px;
  background: var(--ld-paper);
  color: var(--ld-ink);
  text-decoration: none;
}
#content.ld-account .ld-order-card__action .material-icons {
  font-size: 20px;
  line-height: 1;
}

/* ---- Address cards ------------------------------------------------------- */
#content.ld-account .address {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 12px;
  box-shadow: var(--ld-shadow-card);
  overflow: hidden;
  margin-bottom: 24px;
  height: calc(100% - 24px);
  display: flex;
  flex-direction: column;
  transition: border-color .18s ease, box-shadow .18s ease;
}
#content.ld-account .address:hover {
  border-color: var(--ld-gold);
  box-shadow: var(--ld-shadow-hover);
}
#content.ld-account .address .address-body {
  padding: 22px 24px;
  flex: 1 1 auto;
}
#content.ld-account .address .address-body h4 {
  font-family: var(--ld-f-serif);
  font-size: 19px;
  color: var(--ld-ink);
  margin: 0 0 12px;
}
#content.ld-account .address address {
  font-style: normal;
  color: var(--ld-ink-soft);
  line-height: 1.7;
  margin: 0;
}
#content.ld-account .address .address-footer {
  display: flex;
  border-top: 1px solid var(--ld-line-soft);
}
#content.ld-account .address .address-footer a {
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 13px 10px;
  font-size: 13px;
  font-weight: 500;
  color: var(--ld-ink);
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
#content.ld-account .address .address-footer a:first-child {
  border-right: 1px solid var(--ld-line-soft);
}
#content.ld-account .address .address-footer a:hover {
  background: var(--ld-paper-2);
  color: var(--ld-gold-deep);
}
#content.ld-account .address .address-footer .material-icons {
  font-size: 18px;
}

/* "Create new address" CTA */
#content.ld-account .addresses-footer {
  margin-top: 8px;
  text-align: center;
}
#content.ld-account .addresses-footer a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 14px 24px;
  border: 1px solid var(--ld-ink);
  border-radius: 8px;
  background: var(--ld-ink);
  color: var(--ld-paper);
  font-weight: 500;
  text-decoration: none;
  transition: background .15s ease, transform .1s ease;
}
#content.ld-account .addresses-footer a:hover {
  background: #000;
  transform: translateY(-1px);
  color: var(--ld-paper);
}
#content.ld-account .addresses-footer .material-icons {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
}

/* ---- Empty states (history, vouchers, credit slips, addresses) ---------- */
#content.ld-account .ld-account-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  max-width: 480px;
  margin: 8px auto 28px;
  padding: 48px 28px;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 14px;
  box-shadow: var(--ld-shadow-card);
}
#content.ld-account .ld-account-empty__icon {
  width: 72px;
  height: 72px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  background: var(--ld-paper-2);
  color: var(--ld-gold-deep);
  font-size: 36px;
  line-height: 1;
  margin-bottom: 6px;
}
#content.ld-account .ld-account-empty__title {
  font-family: var(--ld-f-serif);
  font-size: 22px;
  color: var(--ld-ink);
  margin: 0;
}
#content.ld-account .ld-account-empty__text {
  color: var(--ld-ink-mute);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
  max-width: 360px;
}
#content.ld-account .ld-account-empty .ld-btn {
  margin-top: 14px;
}

/* ---- Order detail ------------------------------------------------------- */
#content.ld-account #order-infos,
#content.ld-account #order-history,
#content.ld-account #addresses .address,
#content.ld-account .order-items,
#content.ld-account .order-message-form {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 12px;
  box-shadow: var(--ld-shadow-card);
  padding: 22px 24px;
  margin-bottom: 24px;
}
#content.ld-account .box,
#content.ld-account .order-confirmation-table {
  border-radius: 10px;
}
#content.ld-account h3,
#content.ld-account h4 {
  font-family: var(--ld-f-serif);
  font-weight: 400;
  color: var(--ld-ink);
}

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 767px) {
  body:has(#content.ld-account) .page-title-wrapper,
  body.page-authentication .page-title-wrapper,
  body.page-registration .page-title-wrapper,
  body.page-password .page-title-wrapper {
    margin-bottom: 28px;
    padding: 28px 0 24px;
  }
  body.page-authentication #content,
  body.page-registration #content,
  body.page-password #content {
    padding: 24px 18px;
  }
  #content.ld-account .links {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  #content.ld-account .link-item {
    min-height: 70px;
    padding: 14px 16px;
    font-size: 16px;
    justify-content: flex-start;
  }
  #content.ld-account .link-item .material-icons {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    font-size: 20px;
  }
  #content.ld-account #customer-form,
  #content.ld-account .address-form {
    padding: 22px 18px 18px;
  }
  #content.ld-account .ld-account-empty {
    padding: 36px 20px;
  }
  body:has(#content.ld-account) .page-footer {
    flex-direction: column;
  }
  body:has(#content.ld-account) .page-footer .account-link {
    justify-content: center;
  }
}

/* =============================================================================
   Desktop overrides
   Final scoped parity layer; fold into owning sections after frontend freeze.
   ============================================================================= */

/* Desktop typography overrides. Scoped per page/component; no global font-size. */
@media (min-width: 768px) {
  body#index .t-eyebrow {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--ld-gold-deep);
  }

  body#index .ld-section__all {
    font-size: 14px;
    font-weight: 600;
  }

  body#index .ld-hero-slide__desc { font-size: 17px; }

  .ld-header__action span { font-size: 12px; }

  body#index .ld-reassurance__title { font-size: 15px; }
  body#index .ld-reassurance__sub  { font-size: 13px; }

  body#index .ld-products-grid .ld-product-card__producer { font-weight: 600; }

  body#index .ld-producers-layout .ld-producer-card__img-wrap {
    width: 72px;
    height: 72px;
    flex: 0 0 72px;
  }
  body#index .ld-producers-layout .ld-producer-card__name  { font-size: 18px; }
  body#index .ld-producers-layout .ld-producer-card__count { font-size: 13px; }
  body#index .ld-producers-layout .ld-producer-card__arrow { font-size: 18px; }
}

@media (min-width: 992px) {
  /* Category has no sidebar; restore this if facets need a desktop column. */
  body#category #content-wrapper {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* Home desktop overrides. */
@media (min-width: 1200px) {
  body#index {
    --ld-home-frame: clamp(1500px, 94vw, 1800px);
    --ld-home-gap: 24px;
  }

  body#index #wrapper > .container {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
  }

  body#index .ld-header__top,
  body#index .ld-drawer__nav {
    width: var(--ld-home-frame);
    max-width: var(--ld-home-frame);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }

  body#index .ld-header__top {
    min-height: 124px;
    padding-top: 16px;
    padding-bottom: 16px;
    gap: 42px;
    border-bottom: 0;
  }

  body#index .ld-header__logo {
    flex: 0 0 292px;
    justify-content: flex-start;
  }

  body#index .ld-header__logo .ld-header__logo-img {
    width: 190px;
    max-width: 292px;
    max-height: 146px;
  }

  body#index .ld-header__search-wrap {
    max-width: none;
    min-width: 0;
  }

  body#index .ld-header__search-wrap .pos-search {
    border-radius: 7px;
  }

  body#index .ld-header__search-wrap .pos-search__input {
    min-height: 48px;
    font-size: 15px;
  }

  body#index .ld-header__actions {
    gap: 30px;
  }

  body#index .ld-header__action svg,
  body#index .ld-header__top #_desktop_cart_block svg {
    width: 22px;
    height: 22px;
  }

  body#index .ld-header__action span {
    font-size: 11px;
    color: var(--ld-ink-soft);
  }

  body#index .ld-drawer {
    border-top: 1px solid var(--ld-line);
    border-bottom: 1px solid var(--ld-line);
  }

  body#index .ld-drawer__nav .pos-menu-horizontal {
    padding: 0;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content {
    display: flex;
    align-items: center;
    gap: 30px;
    min-height: 48px;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item > a {
    min-height: 48px;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.active > a,
  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:hover > a {
    font-weight: 600;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item.active > a::after,
  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content > .menu-item:hover > a::after {
    bottom: 0;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner {
    padding: 0;
    background: var(--ld-paper-2);
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner > .container,
  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner:not(:has(> .container)) {
    width: var(--ld-home-frame);
    max-width: var(--ld-home-frame);
    margin-left: auto;
    margin-right: auto;
    padding: 30px 0;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown .pos-sub-inner:not(:has(> .container)) {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: max(60px, calc((100vw - var(--ld-home-frame)) / 2));
    padding-right: max(60px, calc((100vw - var(--ld-home-frame)) / 2));
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown.ld-megamenu--compact .pos-sub-inner > .container,
  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown.ld-megamenu--compact .pos-sub-inner:not(:has(> .container)) {
    padding-top: 22px;
    padding-bottom: 22px;
  }

  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown.ld-megamenu--balanced .pos-sub-inner > .container,
  body#index #_desktop_megamenu .pos-menu-horizontal .menu-content .menu-dropdown.ld-megamenu--balanced .pos-sub-inner:not(:has(> .container)) {
    padding-top: 26px;
    padding-bottom: 26px;
  }

  body#index #_desktop_megamenu .ld-megamenu__intro {
    min-width: 300px;
    max-width: 300px;
    padding-right: 48px;
    gap: 20px;
  }

  body#index #_desktop_megamenu .ld-megamenu--compact .ld-megamenu__intro,
  body#index #_desktop_megamenu .ld-megamenu--balanced .ld-megamenu__intro {
    min-width: 280px;
    max-width: 280px;
    padding-right: 38px;
    gap: 16px;
  }

  body#index #_desktop_megamenu .ld-megamenu__cat-title {
    font-size: 28px;
    line-height: 1.05;
  }

  body#index #_desktop_megamenu .ld-megamenu__subtitle {
    font-size: 14px;
    line-height: 1.45;
  }

  body#index #_desktop_megamenu .ld-megamenu__cta {
    min-height: 42px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    font-size: 14px;
  }

  body#index .ld-section--hero,
  body#index .ld-reassurance,
  body#index .ld-section--bestsellers,
  body#index .ld-section--producers,
  body#index .ld-section--coffrets,
  body#index .ld-section--history,
  body#index .ld-section--newproducts {
    width: var(--ld-home-frame);
    max-width: var(--ld-home-frame);
    margin-left: auto;
    margin-right: auto;
  }

  body#index .ld-section--hero {
    padding: 34px 0 28px;
    gap: var(--ld-home-gap);
  }

  body#index .ld-section--hero .ld-hero-slider,
  body#index .ld-hero-tiles-wrap {
    height: 560px;
  }

  body#index .ld-section--hero .ld-hero-slider {
    flex: 1.28;
    border-radius: 12px;
  }

  body#index .ld-hero-slide__overlay {
    background:
      linear-gradient(90deg, rgba(29,29,27,.78) 0%, rgba(29,29,27,.54) 38%, rgba(29,29,27,.2) 72%, rgba(29,29,27,.08) 100%),
      linear-gradient(180deg, rgba(29,29,27,.12) 0%, rgba(29,29,27,.28) 100%);
  }

  body#index .ld-hero-slide__caption {
    left: 48px;
    max-width: 560px;
    gap: 18px;
  }

  body#index .ld-hero-slide__tag {
    font-size: 13px;
    font-weight: 700;
    color: var(--ld-cream);
    text-shadow: 0 1px 8px rgba(0,0,0,.35);
  }

  body#index .ld-hero-slide__title {
    font-size: clamp(58px, 3.6vw, 72px);
  }

  body#index .ld-hero-slide__desc {
    max-width: 560px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6;
    color: rgba(255,255,255,.97);
    text-shadow: 0 2px 12px rgba(0,0,0,.55);
  }

  body#index .ld-hero-slide__actions .ld-btn,
  body#index .ld-hero-slide__actions .btn {
    min-height: 52px;
    padding: 0 24px;
    font-size: 16px;
    font-weight: 600;
  }

  body#index .ld-hero-tiles-wrap {
    flex: 0 0 44%;
  }

  body#index .ld-hero-tiles {
    gap: 14px;
  }

  body#index .ld-hero-tile-panel {
    border-radius: 8px;
  }

  body#index .ld-hero-tile__inner {
    padding: 20px 24px;
  }

  body#index .ld-hero-tile__badge {
    left: 24px;
    top: 18px;
    min-height: 32px;
    padding: 0 14px;
    font-size: 12px;
  }

  body#index .ld-hero-tile__label {
    font-size: 28px;
  }

  body#index .ld-hero-subtiles__inner {
    padding: 22px 26px;
  }

  body#index .ld-hero-subtile-link {
    padding: 9px 0;
    font-size: 16px;
  }

  body#index .ld-reassurance {
    margin-top: 4px;
    margin-bottom: 74px;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 22px max(24px, calc((100vw - var(--ld-home-frame)) / 2 + 72px));
    box-sizing: border-box;
    background: var(--ld-paper-2);
    border-top: 1px solid var(--ld-cream-deep);
    border-bottom: 1px solid var(--ld-cream-deep);
    justify-content: space-between;
  }

  body#index .ld-reassurance__item {
    gap: 14px;
  }

  body#index .ld-reassurance__icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  body#index .ld-reassurance__title {
    font-size: 16px;
  }

  body#index .ld-section--bestsellers,
  body#index .ld-section--producers,
  body#index .ld-section--newproducts {
    padding-left: 0;
    padding-right: 0;
  }

  body#index .ld-section--bestsellers {
    padding-top: 0;
  }

  body#index .ld-section__header {
    margin-bottom: 30px;
  }

  body#index .ld-section__title {
    font-size: clamp(42px, 2.7vw, 52px);
  }

  body#index .t-eyebrow {
    font-size: 12px;
    font-weight: 600;
    color: var(--ld-gold-deep);
  }

  body#index .ld-section__all,
  body#index .ld-section__all a {
    font-size: 15px;
    font-weight: 600;
  }

  body#index .ld-section__chips {
    gap: 10px;
  }

  body#index .ld-section__chips .ld-chip {
    min-height: 34px;
    padding: 0 16px;
    font-size: 14px;
  }

  body#index .ld-products-grid {
    gap: 22px;
  }

  body#index .ld-products-grid .ld-product-card {
    border-radius: 8px;
  }

  body#index .ld-products-grid .ld-product-card__img-wrap {
    aspect-ratio: 4 / 4.65;
  }

  body#index .ld-products-grid .ld-product-card__info {
    padding: 16px 16px 18px;
  }

  body#index .ld-products-grid .ld-product-card__name {
    font-size: 18px;
    line-height: 1.18;
  }

  body#index .ld-products-grid .ld-product-card__price {
    font-size: 24px;
  }

  body#index .ld-section--producers {
    padding-top: 72px;
  }

  body#index .ld-producers-layout {
    gap: 32px;
  }

  body#index .ld-producers-map {
    flex: 0 0 47%;
    min-height: 360px;
    padding: 0;
  }

  body#index .ld-producers-map__lead {
    font-size: 28px;
    max-width: 24ch;
  }

  body#index .ld-producers-grid {
    gap: 14px;
  }

  body#index .ld-producer-card--list .ld-producer-card__body,
  body#index .ld-producer-card__body {
    padding: 16px 18px;
  }

  body#index .ld-producer-card__name {
    font-size: 19px;
  }

  body#index .ld-producer-card__count,
  body#index .ld-producer-card__desc {
    font-size: 13px;
  }

  body#index .ld-section--coffrets {
    padding: 88px 0 0;
    background: transparent;
  }

  body#index .ld-coffrets {
    height: 380px;
    min-height: 380px;
    border-radius: 0;
    background: var(--ld-cream);
    overflow: hidden;
    align-items: stretch;
  }

  body#index .ld-coffrets__text {
    flex: 1 1 0;
    max-width: 640px;
    padding: 64px 40px 64px 80px;
  }

  body#index .ld-coffrets__title {
    font-size: clamp(42px, 2.9vw, 56px);
  }

  body#index .ld-coffrets__desc {
    max-width: 460px;
    font-size: 15px;
    line-height: 1.65;
  }

  body#index .ld-coffrets__media {
    flex: .9 1 0;
    min-width: 0;
    display: flex;
  }

  body#index .ld-coffrets__img {
    height: 100%;
    min-height: 380px;
    object-fit: cover;
  }

  body#index .ld-section--history {
    width: var(--ld-home-frame);
    max-width: var(--ld-home-frame);
    padding: 82px 0 0;
  }

  body#index .ld-histoire {
    min-height: 360px;
    max-height: none;
    border-radius: 12px;
    overflow: visible;
    background: transparent;
    border: 0;
    gap: 64px;
    justify-content: space-between;
    padding-left: clamp(48px, 4.2vw, 80px);
    padding-right: clamp(48px, 4.2vw, 80px);
    box-sizing: border-box;
  }

  body#index .ld-histoire__text {
    flex: 1 1 auto;
    max-width: 820px;
    padding: 34px 0;
  }

  body#index .ld-histoire__title {
    max-width: 720px;
    font-size: clamp(38px, 2.45vw, 48px);
  }

  body#index .ld-histoire__body {
    max-width: 780px;
    font-size: 15px;
    line-height: 1.65;
  }

  body#index .ld-histoire__body + .ld-histoire__body {
    display: block;
  }

  body#index .ld-histoire__stats {
    margin-top: 18px;
    gap: 28px;
  }

  body#index .ld-histoire__stat {
    min-width: 116px;
    padding: 0;
  }

  body#index .ld-histoire__stat-value {
    font-size: 28px;
  }

  body#index .ld-histoire__stat-label {
    font-size: 11px;
  }

  body#index .ld-histoire__portrait {
    flex: 0 0 300px;
    max-width: 300px;
    align-self: center;
    aspect-ratio: 4 / 5;
    border-radius: 12px;
    overflow: hidden;
    margin-right: clamp(80px, 8vw, 160px);
    background: var(--ld-cream);
    box-shadow:
      34px 28px 0 var(--ld-cream),
      -22px -18px 0 var(--ld-cream);
  }

  body#index .ld-histoire__portrait-img {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
  }

  body#index .ld-section--newproducts {
    padding: 84px 0 82px;
  }
}


/* Category desktop overrides. */
@media (min-width: 1200px) {
  body#category {
    --ld-cat-frame: clamp(1320px, 88vw, 1680px);
  }

  body#category .ld-header__top {
    border-bottom: 0;
  }

  body#category .ld-header__top,
  body#category .ld-drawer__nav {
    max-width: var(--ld-cat-frame);
    padding-left: 55px;
    padding-right: 55px;
  }

  body#category .ld-drawer {
    border-top: 1px solid var(--ld-line);
    border-bottom: 1px solid var(--ld-line);
  }

  body#category #wrapper > .container,
  body#category .ld-cat-header__breadcrumb,
  body#category .ld-cat-header__hero,
  body#category .ld-active-filters-strip,
  body#category .products-selection,
  body#category .ld-cat-products-grid,
  body#category #js-product-list > .pagination,
  body#category .ld-cat-seo__inner {
    width: var(--ld-cat-frame);
    max-width: var(--ld-cat-frame);
    margin-left: auto;
    margin-right: auto;
  }

  body#category #wrapper > .container,
  body#category #content-wrapper {
    padding-left: 0;
    padding-right: 0;
  }

  body#category .ld-cat-header {
    border-top: 1px solid var(--ld-line-soft);
  }

  body#category .ld-cat-header__breadcrumb {
    padding: 14px 0 12px;
  }

  body#category .ld-cat-header__breadcrumb .breadcrumb li,
  body#category .ld-cat-header__breadcrumb .breadcrumb li a,
  body#category .ld-cat-header__breadcrumb .breadcrumb li a span {
    font-size: 12px;
  }

  body#category .ld-cat-header__hero {
    min-height: 112px;
    padding: 18px 0 24px;
    align-items: center;
  }

  body#category .ld-cat-header__text {
    max-width: 980px;
    gap: 12px;
  }

  body#category .ld-cat-h1 {
    font-size: clamp(48px, 3.2vw, 60px);
    letter-spacing: 0.025em;
  }

  body#category .ld-cat-desc {
    max-width: 760px;
    font-size: 17px;
    line-height: 1.58;
    color: var(--ld-ink-soft);
  }

  body#category .ld-cat-stat {
    align-items: flex-end;
  }

  body#category .ld-cat-stat__value {
    font-size: 38px;
  }

  body#category .ld-cat-stat__label {
    font-size: 12px;
    font-weight: 500;
    color: var(--ld-gold-deep);
  }

  body#category .products-selection {
    background: transparent;
    margin-bottom: 0;
  }

  body#category #search_filters_wrapper {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
    background: var(--ld-paper-2);
    border-color: var(--ld-cream-deep);
  }

  body#category #search_filters {
    width: var(--ld-cat-frame);
    max-width: var(--ld-cat-frame);
    margin: 0 auto;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  body#category .ld-facets__chips {
    gap: 9px;
  }

  body#category #search_filters .ld-facet.facet {
    padding: 0;
  }

  body#category #search_filters .ld-facet__chip {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 13px;
    font-weight: 600;
  }

  body#category .ld-cat-toolbar {
    min-height: 56px;
    padding: 9px 0;
    border-bottom: 1px solid var(--ld-line);
  }

  body#category .ld-cat-filters-btn {
    display: none;
  }

  body#category .ld-cat-filters-btn--empty {
    opacity: 0.45;
    cursor: default;
  }

  body#category .ld-cat-toolbar__count-text,
  body#category .ld-cat-toolbar__sort .sort-by {
    font-size: 15px;
    color: var(--ld-ink-mute);
  }

  body#category .ld-cat-toolbar__sort .select-title {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 13px;
    border-radius: 999px;
  }

  body#category .ld-view-toggle {
    display: none;
  }

  body#category .ld-cat-products-grid,
  body#category .ld-cat-products-grid.ld-cat-products-grid--list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
    padding: 30px 0 64px;
  }

  body#category .ld-cat-products-grid.ld-cat-products-grid--list .ld-product-card {
    flex-direction: column;
    align-items: stretch;
  }

  body#category .ld-cat-products-grid .ld-product-card {
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(29, 29, 27, 0.06);
  }

  body#category .ld-cat-products-grid .ld-product-card__img-wrap,
  body#category .ld-cat-products-grid.ld-cat-products-grid--list .ld-product-card__img-wrap {
    width: auto;
    align-self: auto;
    aspect-ratio: 1 / 1;
    background: #fff;
  }

  body#category .ld-cat-products-grid .ld-product-card__info,
  body#category .ld-cat-products-grid.ld-cat-products-grid--list .ld-product-card__info {
    padding: 13px 13px 15px;
    gap: 5px;
    justify-content: flex-start;
  }

  body#category .ld-cat-products-grid.ld-cat-products-grid--list .ld-product-card__hover-add {
    display: block;
  }

  body#category .ld-cat-products-grid .ld-product-card__producer {
    min-height: 1.2em;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.11em;
    color: var(--ld-gold-deep);
  }

  body#category .ld-cat-products-grid .ld-product-card__name {
    font-size: 16px;
    line-height: 1.18;
  }

  body#category .ld-cat-products-grid .ld-product-card__price {
    font-size: 21px;
  }

  body#category .ld-cat-products-grid .ld-iconbtn.dark {
    width: 40px;
    height: 40px;
  }

  body#category #js-product-list > .pagination {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 0 74px;
  }

  body#category #js-product-list > .pagination .page-list {
    display: none;
  }

  body#category #js-product-list > .pagination .ld-cat-loadmore {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 0;
  }

  body#category #js-product-list > .pagination .ld-cat-loadmore__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    max-width: 100%;
    min-height: 40px;
    padding: 0 20px;
    border: 1px solid var(--ld-ink);
    border-radius: 4px;
    background: transparent;
    color: var(--ld-ink);
    font-family: var(--ld-f-body);
    font-size: 15px;
    font-style: italic;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
  }

  body#category #js-product-list > .pagination .ld-cat-loadmore__btn:hover {
    background: var(--ld-paper-2);
  }
}

/* Final desktop hero readability guard. */
@media (min-width: 768px) {
  body#index .ld-section--hero .ld-hero-slide__title {
    text-shadow: none;
  }

  body#index .ld-section--hero .ld-hero-slide.is-active .ld-hero-slide__desc,
  body#index .ld-section--hero .ld-hero-slide__desc,
  body#index .ld-section--hero .ld-hero-slide__desc p,
  body#index .ld-section--hero .ld-hero-slide__desc h2,
  body#index .ld-section--hero .ld-hero-slide__desc h3 {
    max-width: 580px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.55;
    color: rgba(255,255,255,.82);
    text-shadow: none;
    background: transparent;
    padding: 0;
  }
}

/* Advanced Cookie Banner */
#acb-banner.acb-gdpr {
  left: 50%;
  bottom: 18px;
  width: calc(100% - 48px);
  max-width: 1120px;
  padding: 14px 16px;
  transform: translateX(-50%);
  border: 1px solid rgba(183, 154, 98, 0.45);
  border-radius: 8px;
  background: rgba(29, 29, 27, 0.96) !important;
  box-shadow: 0 18px 42px rgba(29, 29, 27, 0.22);
  color: #fff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 18px;
  align-items: center;
  text-align: left !important;
}

#acb-banner p,
#acb-banner ul li,
#acb-banner ol li,
#acb-banner .acbConsentLabel {
  font-size: 13px !important;
  line-height: 1.45;
}

#acb-content,
#acb-action {
  width: auto !important;
  max-width: none;
  margin: 0 !important;
  align-self: center;
}

#acb-content p {
  margin: 0 !important;
}

#acb_link_information {
  color: #e7d7af !important;
  font-size: 12px !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.acb_link_information_container {
  margin-top: 4px;
}

.acb_link_information_container .material-icons {
  display: none;
}

#acb-banner .acbCheckboxesContainer {
  display: block;
  margin: 0;
}

#acb-banner .acbCheckboxContainer {
  display: none;
}

#acb-banner .acbCheckboxContainer:last-child {
  display: block;
}

#acbCustomize {
  margin-top: 6px;
  color: #e7d7af !important;
  font-size: 12px !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#acb-action {
  display: flex !important;
  gap: 8px;
  justify-content: flex-end !important;
}

#acb-close-button {
  display: none;
}

#acb-banner .acb-button {
  min-height: 34px;
  height: auto;
  margin: 0 !important;
  padding: 8px 13px !important;
  border: 1px solid rgba(231, 215, 175, 0.55) !important;
  border-radius: 4px;
  background: transparent !important;
  color: #fff !important;
  font-family: var(--ld-f-body);
  font-size: 12px !important;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

#acb-accept-all-button {
  border-color: #3c7f54 !important;
  background: #3c7f54 !important;
}

#acb-banner .acb-button:hover,
#acbCustomize:hover {
  box-shadow: none;
  opacity: 0.86;
}

#acb-custom-panel {
  grid-column: 1 / -1;
  max-height: 50vh;
  margin-top: 8px;
  overflow: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(231, 215, 175, 0.2);
}

#acb-custom-panel-title {
  margin-bottom: 6px !important;
  color: #e7d7af !important;
  font-size: 14px !important;
  font-weight: 700;
}

.pmAcbPanelCategoriesContainer {
  gap: 18px;
}

#acb-banner #acb-category-analytics,
#acb-banner #acb-category-marketing,
#acb-custom-panel label[for="acb-e739268863f397545b3cb6c822676b90"],
#acb-custom-panel label[for="acb-ec2b0ad5c780f4ef1ab4059d5cb7aa9c"],
#acb-custom-panel label[for="acb-29fe23d3222d91463720132835c9f734"] {
  color: transparent !important;
  font-size: 0 !important;
}

#acb-banner #acb-category-analytics::before,
#acb-banner #acb-category-marketing::before,
#acb-custom-panel label[for="acb-e739268863f397545b3cb6c822676b90"]::before,
#acb-custom-panel label[for="acb-ec2b0ad5c780f4ef1ab4059d5cb7aa9c"]::before,
#acb-custom-panel label[for="acb-29fe23d3222d91463720132835c9f734"]::before {
  color: #fff;
  font-size: 13px;
  line-height: 1.45;
}

#acb-banner #acb-category-analytics::before {
  content: "Cookies statistiques";
}

#acb-banner #acb-category-marketing::before {
  content: "Cookies marketing";
}

#acb-custom-panel label[for="acb-e739268863f397545b3cb6c822676b90"]::before {
  content: "Mesure d'audience Google Analytics";
}

#acb-custom-panel label[for="acb-ec2b0ad5c780f4ef1ab4059d5cb7aa9c"]::before {
  content: "Marketing Google";
}

#acb-custom-panel label[for="acb-29fe23d3222d91463720132835c9f734"]::before {
  content: "Facebook et Instagram";
}

@media (max-width: 767px) {
  #acb-banner.acb-gdpr {
    top: auto;
    right: 12px !important;
    left: 12px !important;
    bottom: 72px !important;
    width: auto !important;
    max-width: none;
    max-height: min(46vh, 300px);
    margin: 0;
    padding: 12px 14px;
    transform: none !important;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  #acb-banner p,
  #acb-banner ul li,
  #acb-banner ol li,
  #acb-banner .acbConsentLabel {
    font-size: 12px !important;
    line-height: 1.35;
  }

  #acb-content,
  #acb-action {
    padding: 0 !important;
  }

  #acb-content {
    max-height: none !important;
    max-width: calc(100vw - 48px);
    min-width: 0;
    overflow: visible !important;
    overflow-wrap: anywhere;
    width: 100% !important;
  }

  #acb-action {
    display: grid !important;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: calc(100vw - 48px);
    min-width: 0;
    width: 100% !important;
  }

  #acb-banner .acb-button {
    box-sizing: border-box;
    min-height: 40px;
    min-width: 0;
    width: 100%;
    padding-right: 6px !important;
    padding-left: 6px !important;
    font-size: 11px !important;
  }

  .pmAcbPanelCategoriesContainer,
  .pmAcbPanelActionsContainer {
    display: grid;
    gap: 8px;
  }
}

/* Producer listing ------------------------------------------------------------ */
#manufacturer #main .brand-content {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 12px;
  justify-content: initial;
  margin: 0 0 36px;
  padding: 0;
  list-style: none;
}

#manufacturer #main .brand-content .brand {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: auto;
  min-width: 0;
  min-height: 238px;
  margin: 0;
  padding: 16px;
  text-align: left;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--ld-shadow-card);
}

#manufacturer #main .brand-content .brand:not(:last-child) {
  margin-bottom: 0;
}

#manufacturer #main .brand-content .brand-img {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 104px;
  margin: 0 0 14px;
  padding: 12px;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: #fff;
}

#manufacturer #main .brand-content .brand-img a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

#manufacturer #main .brand-content .brand-img img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 80px;
  object-fit: contain;
}

#manufacturer #main .brand-content .brand-infos {
  flex: 1 1 auto;
}

#manufacturer #main .brand-content .brand-infos p {
  margin: 0;
}

#manufacturer #main .brand-content .brand-infos p a {
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 17px;
  font-weight: 650;
  line-height: 1.25;
  text-transform: none;
}

#manufacturer #main .brand-content .brand-infos p a:hover,
#manufacturer #main .brand-content .brand-products a:hover {
  color: var(--ld-gold-deep);
}

#manufacturer #main .brand-content .brand-products {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--ld-line-soft);
}

#manufacturer #main .brand-content .brand-products a {
  color: var(--ld-ink);
  font-size: 13px;
  font-weight: 600;
  text-transform: none;
}

#manufacturer #main .brand-content .brand-products a:not(:last-child) {
  margin-right: 0;
  color: var(--ld-ink-mute);
  font-weight: 500;
}

#manufacturer #main .brand-content .brand-products a:last-child {
  white-space: nowrap;
}

@media (max-width: 575px) {
  #manufacturer #main .brand-content {
    grid-template-columns: 1fr;
  }

  #manufacturer #main .brand-content .brand {
    min-height: 0;
  }
}

/* ---- Product detail: remove legacy grey surfaces ------------------------- */
.product-features > dl.data-sheet dt.name,
.product-features > dl.data-sheet dd.value {
  background: #fff;
  border-color: var(--ld-line-soft);
  color: var(--ld-ink);
}

.product-features > dl.data-sheet dt.name:nth-of-type(even),
.product-features > dl.data-sheet dd.value:nth-of-type(even),
.product-discounts > .table-product-discounts tbody tr:nth-of-type(even) {
  background: var(--ld-paper);
}

.product-discounts > .table-product-discounts tbody tr {
  background: #fff;
}

.product-customization .product-message,
.product-customization .custom-file {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  color: var(--ld-ink);
}

.product-customization .product-message:focus {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(169, 147, 115, 0.15);
  outline: none;
}

.product-customization .ld-gift-delivery-choice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.product-customization .ld-gift-delivery-choice label {
  display: inline-flex;
  margin: 0;
  cursor: pointer;
}

.product-customization .ld-gift-delivery-choice .input-radio {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

.product-customization .ld-gift-delivery-choice .radio-label {
  display: inline-grid;
  place-items: center;
  width: 104px;
  height: 38px;
  padding: 0 14px;
  box-sizing: border-box;
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  background: #fff;
  color: var(--ld-ink, #1d1d1b);
  font-family: var(--ld-f-body, sans-serif);
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.product-customization .ld-gift-delivery-choice .input-radio:checked + .radio-label {
  border-color: var(--ld-ink, #1d1d1b);
  background: var(--ld-ink, #1d1d1b);
  color: var(--ld-paper, #faf6ec);
  font-weight: 650;
}

.product-customization .ld-gift-delivery-choice .input-radio:focus-visible + .radio-label,
.product-customization .ld-gift-delivery-choice .radio-label:hover {
  border-color: var(--ld-gold, #a99373);
}

#giftcard_product #block_amounts .ld-gift-native-amount {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

#giftcard_product .ld-gift-amounts {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 8px auto 22px;
}

#giftcard_product .ld-gift-amount-btn,
#giftcard_product .ld-gift-custom-amount {
  min-height: 44px;
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  background: #fff;
  color: var(--ld-ink, #1d1d1b);
  font-family: var(--ld-f-body, sans-serif);
  font-size: 14px;
}

#giftcard_product .ld-gift-amount-btn {
  min-width: 82px;
  padding: 0 18px;
  font-weight: 650;
}

#giftcard_product .ld-gift-amount-btn.is-active {
  border-color: var(--ld-ink, #1d1d1b);
  background: var(--ld-ink, #1d1d1b);
  color: var(--ld-paper, #faf6ec);
}

#giftcard_product .ld-gift-custom-amount {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px 0 16px;
}

#giftcard_product .ld-gift-custom-amount span {
  color: var(--ld-ink-mute, #6f665a);
  font-size: 13px;
}

#giftcard_product .ld-gift-custom-amount input {
  width: 86px;
  height: 34px;
  border: 0;
  border-left: 1px solid var(--ld-line, #e6dfd0);
  padding: 0 0 0 12px;
  background: transparent;
  color: var(--ld-ink, #1d1d1b);
  font-weight: 650;
  text-align: center;
}

#giftcard_product #block_customization .content > .form-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

#giftcard_product #block_customization .form-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  margin: 0;
  padding: 0 16px;
  border: 1px solid var(--ld-line, #e6dfd0);
  border-radius: 6px;
  background: #fff;
}

#giftcard_product #block_button .row {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-right: 0;
  margin-left: 0;
}

#giftcard_product #block_button [class*="col-"] {
  float: none;
  flex: 1 1 0;
  max-width: 360px;
  padding-right: 0;
  padding-left: 0;
}

#giftcard_product #block_button .content {
  margin: 0;
}

#giftcard_product #block_button .btn {
  width: 100%;
  min-height: 46px;
  right: auto !important;
  left: auto !important;
  border-radius: 6px;
  text-transform: none;
}

/* Contact -------------------------------------------------------------------- */
.page-contact .ld-contact-map {
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) minmax(0, 1.3fr);
  margin: 0 0 48px;
  overflow: hidden;
  border: 1px solid var(--ld-line);
  border-radius: 8px;
  background: #fff;
}

.page-contact .ld-contact-map__details {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 32px;
}

.page-contact .ld-contact-map__eyebrow {
  margin: 0 0 10px;
  color: var(--ld-gold);
  font-family: var(--ld-f-thin);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-contact .ld-contact-map address {
  display: flex;
  flex-direction: column;
  margin: 0 0 18px;
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: 21px;
  font-style: normal;
  line-height: 1.35;
}

.page-contact .ld-contact-map a {
  color: var(--ld-ink);
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-contact .ld-contact-map a:hover {
  color: var(--ld-gold-deep);
}

.page-contact .ld-contact-map iframe {
  display: block;
  width: 100%;
  min-height: 260px;
  border: 0;
}

.page-contact .page-header h1 {
  color: var(--ld-ink);
  font-family: var(--ld-f-serif);
  font-size: clamp(30px, 4vw, 42px);
  font-weight: 400;
  text-transform: none;
}

.page-contact .contact-form {
  max-width: 680px;
  margin: 0 auto 56px;
}

.page-contact .contact-form form,
.page-contact .contact-form .form-fields {
  padding: 0;
  background: transparent;
  box-shadow: none;
}

.page-contact .ld-contact-form__intro {
  margin: 0 0 28px;
  color: var(--ld-ink-mute);
  font-size: 16px;
  line-height: 1.55;
}

.page-contact .ld-contact-form .form-group {
  margin-bottom: 20px;
}

.page-contact .ld-contact-form label {
  display: block;
  margin: 0 0 8px;
  padding: 0;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

.page-contact .ld-contact-form label span {
  color: var(--ld-ink-mute);
  font-weight: 400;
}

.page-contact .ld-contact-form .form-control {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid var(--ld-line);
  border-radius: 4px;
  background: #fff;
  box-shadow: none;
  color: var(--ld-ink);
  font-family: var(--ld-f-body);
  font-size: 15px;
}

.page-contact .ld-contact-form textarea.form-control {
  min-height: 148px;
  resize: vertical;
}

.page-contact .ld-contact-form .form-control:focus {
  border-color: var(--ld-gold);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(169, 147, 115, 0.15);
}

.page-contact .ld-contact-form input[type='file'] {
  display: block;
  width: 100%;
  min-height: 46px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ld-ink-mute);
  font-family: var(--ld-f-body);
  font-size: 14px;
  line-height: 46px;
}

.page-contact .ld-contact-form input[type='file']::file-selector-button {
  height: 38px;
  margin: 0 14px 0 0;
  padding: 0 14px;
  border: 1px solid var(--ld-ink);
  border-radius: 4px;
  background: var(--ld-ink);
  color: var(--ld-paper);
  font: inherit;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}

.page-contact .ld-contact-form input[type='file']::-webkit-file-upload-button {
  height: 38px;
  margin: 0 14px 0 0;
  padding: 0 14px;
  border: 1px solid var(--ld-ink);
  border-radius: 4px;
  background: var(--ld-ink);
  color: var(--ld-paper);
  font: inherit;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}

.page-contact .ld-contact-form input[type='file']::-moz-file-upload-button {
  height: 38px;
  margin: 0 14px 0 0;
  padding: 0 14px;
  border: 1px solid var(--ld-ink);
  border-radius: 4px;
  background: var(--ld-ink);
  color: var(--ld-paper);
  font: inherit;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}

.page-contact .ld-contact-form input[type='file']::file-selector-button:hover,
.page-contact .ld-contact-form input[type='file']::-webkit-file-upload-button:hover,
.page-contact .ld-contact-form input[type='file']::-moz-file-upload-button:hover {
  border-color: #000;
  background: #000;
}

.page-contact .ld-contact-form__gdpr {
  color: var(--ld-ink-mute);
  font-size: 13px;
}

.page-contact .form-footer {
  margin-top: 28px;
  text-align: left;
}

.page-contact .form-footer .btn {
  min-height: 46px;
  border: 1px solid var(--ld-ink);
  border-radius: 4px;
  background: var(--ld-ink);
  color: var(--ld-paper);
  font-family: var(--ld-f-body);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
}

.page-contact .form-footer .btn:hover,
.page-contact .form-footer .btn:focus {
  border-color: #000;
  background: #000;
  color: var(--ld-paper);
}

.ld-contact-form__honeypot {
  display: none !important;
}

@media (max-width: 575px) {
  .page-contact .ld-contact-map {
    grid-template-columns: 1fr;
    margin-bottom: 32px;
  }

  .page-contact .ld-contact-map__details {
    padding: 24px;
  }

  .page-contact .ld-contact-map iframe {
    min-height: 220px;
  }

  #giftcard_product .ld-gift-amounts,
  #giftcard_product #block_customization .content > .form-group,
  #giftcard_product #block_button .row {
    justify-content: stretch;
  }

  #giftcard_product .ld-gift-amount-btn,
  #giftcard_product .ld-gift-custom-amount,
  #giftcard_product #block_customization .form-inline,
  #giftcard_product #block_button [class*="col-"] {
    flex: 1 1 100%;
    max-width: none;
  }
}
