/* ==========================================================================
   lp-retail.css (t3, 15 Nov 2026) - Laporsa retail layer, laporsa_theme_468_verified (PS 9.2)
   Mobile first. Styles server-rendered markup; lp-retail.js only toggles classes
   (html.lp-buybar-on, html.lp-scroll-down, html.has-lpc-sticky, .is-on, .is-paused, .is-end, img.lp-img-broken).
   Tokens: radius 12px (chips 6px; round call/WhatsApp + 15% pill keep their shape),
   one button (.lp-btn + theme .btn-primary / .add-to-cart), type scale 14/16/20/28/40.
   Price, unit, VAT, stock, delivery and calculator text: styled only, never re-typed.
   RULE: never display:none a container that prints module hooks - fixed widgets (15% pill, call/WhatsApp)
   inside it would vanish. Collapse with .lp-collapse pattern (height 0 + visibility hidden) instead.
   ========================================================================== */
:root {
  --lp-orange: #E0662B; --lp-orange-hi: #ec7d48; --lp-ink: #1a1a1a;
  --lp-dark: #20332f; --lp-light: #f5f5f3; --lp-muted: #4a5250; --lp-line: #e2e4e1;
  --lp-in: #1a7f4b; --lp-no: #a4262c; --lp-no-bg: #fbeaea;
  --lp-radius: 12px; --lp-radius-chip: 6px;
  --lp-fs-1: 14px; --lp-fs-2: 16px; --lp-fs-3: 20px; --lp-fs-4: 28px; --lp-fs-5: 40px;
  --lp-fab: 48px; --lp-dock: 88px; --lp-buybar-h: 64px;
  --lp-safe: env(safe-area-inset-bottom, 0px);
}
@media (max-width: 767.98px) { :root { --lp-fab: 44px; } }

/* ---------- Base ---------- */
body { color: var(--lp-ink); font-size: var(--lp-fs-2); line-height: 1.5; overflow-x: clip; padding-bottom: calc(var(--lp-dock) + var(--lp-safe)); }
body#product { padding-bottom: calc(var(--lp-buybar-h) + var(--lp-dock) + var(--lp-safe)); }
body#checkout { padding-bottom: 0; }
h1, .h1 { font-size: var(--lp-fs-4); line-height: 1.2; font-weight: 700; letter-spacing: 0; text-transform: none; }
h2, .h2 { font-size: var(--lp-fs-3); line-height: 1.25; font-weight: 700; letter-spacing: 0; text-transform: none; }
h3, .h3 { font-size: var(--lp-fs-2); line-height: 1.3; font-weight: 700; text-transform: none; }
@media (min-width: 992px) { h2, .h2 { font-size: var(--lp-fs-4); } }
:focus-visible { outline: 3px solid var(--lp-orange); outline-offset: 2px; }
a[href^="tel"] { white-space: nowrap; }
img.lp-img-broken { display: none !important; }
.breadcrumb-wrapper, nav.breadcrumb { margin: 0; padding-top: 8px; padding-bottom: 8px; }
.breadcrumb { margin: 0; padding: 0; background: none; font-size: var(--lp-fs-1); }
@media (max-width: 767.98px) {
  .breadcrumb ol, ol.breadcrumb, .breadcrumb > ul { flex-wrap: nowrap !important; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
  .breadcrumb ol::-webkit-scrollbar { display: none; }
}
body#index :is(.breadcrumb-wrapper, nav.breadcrumb) { display: none; }
body#index :is(#wrapper, .main-content, #content-wrapper) { padding-top: 0; margin-top: 0; }
.js-product-attributes-destination:empty, .js-product-availability-destination:empty { display: none; }

/* ---------- One button ---------- */
.lp-btn, body .btn-primary, body #product .product-add-to-cart .add-to-cart, body .lp-card .buttons-sections .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 20px; border: 2px solid var(--lp-orange); border-radius: var(--lp-radius);
  background: var(--lp-orange); color: var(--lp-ink); font-size: var(--lp-fs-2); font-weight: 700; line-height: 1.2;
  text-decoration: none; text-transform: none; letter-spacing: 0; box-shadow: none; cursor: pointer;
}
.lp-btn:hover, body .btn-primary:hover, body #product .product-add-to-cart .add-to-cart:hover, body .lp-card .buttons-sections .btn:hover {
  background: var(--lp-orange-hi); border-color: var(--lp-orange-hi); color: var(--lp-ink); text-decoration: none;
}
.lp-btn *, body .btn-primary *, body #product .add-to-cart *, body .lp-card .buttons-sections .btn * { color: inherit; }
.lp-btn--ghost, .lp-btn--ghost:hover { background: #fff; border-color: var(--lp-dark); color: var(--lp-ink); }
.lp-btn--light, .lp-btn--light:hover { background: #fff; border-color: #fff; color: var(--lp-ink); }
.lp-btn[disabled], .lp-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ---------- Stock pill: green = in stock, green outline = available to order, red = unavailable ---------- */
.lp-stock { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border: 1px solid transparent; border-radius: var(--lp-radius-chip); font-size: 12px; font-weight: 700; line-height: 1.3; box-shadow: none; }
body .lp-stock--in { background: var(--lp-in) !important; border-color: var(--lp-in) !important; color: #fff !important; }
.lp-stock--in::before { content: "\2713"; }
body .lp-stock--order { background: #fff !important; border-color: var(--lp-in) !important; color: var(--lp-in) !important; }
body .lp-stock--out { background: var(--lp-no-bg) !important; border-color: #f0c8ca !important; color: var(--lp-no) !important; }
body .lp-stock--neutral { background: var(--lp-light) !important; border-color: var(--lp-line) !important; color: var(--lp-ink) !important; }
/* Module rows that print their own markup: same green family, small */
body .product-availability > span:not(.lp-stock) { display: inline-flex; padding: 3px 8px; border: 1px solid var(--lp-in); border-radius: var(--lp-radius-chip); background: #fff; color: var(--lp-in); font-size: 12px; font-weight: 700; box-shadow: none; }
body .product-availability > span.unavailable:not(.lp-stock) { border-color: #f0c8ca; background: var(--lp-no-bg); color: var(--lp-no); }

/* ---------- Utility row: desktop only (tiling link + displayNav2). Collapsed, not removed, below 992px ---------- */
.lp-util { background: var(--lp-light); border-bottom: 1px solid var(--lp-line); font-size: var(--lp-fs-1); }
.lp-util__inner { display: flex; align-items: center; justify-content: flex-end; gap: 20px; min-height: 32px; }
.lp-util a { color: var(--lp-ink); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
.lp-util__nav2 { display: flex; align-items: center; }
.lp-util__nav2 :is(a, button, span, .dropdown-toggle, .expand-more) { color: var(--lp-ink); background: transparent; border: 0; font-size: var(--lp-fs-1); }
.lp-util__nav2 .dropdown-menu { z-index: 1100; }
@media (max-width: 991.98px) {
  .lp-util, .lp-header .header-bottom { height: 0; min-height: 0; margin: 0; padding: 0; border: 0; overflow: hidden; visibility: hidden; }
}

/* ---------- Header: phone = [menu][logo][cart] / [search]; desktop = logo | search | account | cart ---------- */
.lp-header .main-header { background: #fff; border-bottom: 1px solid var(--lp-line); }
.lp-header .header-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 8px 0; }
.lp-header .lp-mobile-menu { order: 0; flex: 0 0 auto; }
.lp-header .lp-mobile-menu-toggle {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  border: 1px solid var(--lp-line); border-radius: var(--lp-radius); font-size: 22px; cursor: pointer; list-style: none;
}
.lp-header .lp-mobile-menu-toggle::-webkit-details-marker { display: none; }
.lp-header .header-logo { order: 1; flex: 1 1 auto; min-width: 0; }
.lp-header .header-logo img { display: block; max-height: 40px; width: auto; height: auto; }
.lp-header .header-right { order: 2; }
.lp-header :is(#search_widget, .search-widget) input[type="text"] {
  height: 44px; font-size: 16px; border-radius: var(--lp-radius); background: var(--lp-light); border: 1px solid var(--lp-line); color: var(--lp-ink);
}
.lp-header :is(#search_widget, .search-widget) input::placeholder { color: var(--lp-muted); }
@media (max-width: 991.98px) {
  .lp-header .header-right, .lp-header .display-top { display: contents !important; }
  .lp-header .display-top > * { order: 2; }
  .lp-header .display-top > :is(#search_widget, .search-widget, [class*="search"]) { order: 3; flex: 1 0 100%; max-width: 100%; margin: 0; }
}
@media (min-width: 992px) {
  .lp-header .header-wrapper { flex-wrap: nowrap; gap: 24px; min-height: 80px; padding: 12px 0; }
  .lp-header .lp-mobile-menu { display: none; }
  .lp-header .header-logo { flex: 0 0 auto; }
  .lp-header .header-logo img { max-height: 52px; }
  .lp-header .header-right { flex: 1 1 auto; min-width: 0; }
  .lp-header .display-top { flex-wrap: nowrap !important; gap: 16px; }
  .lp-header .display-top > :is(#search_widget, .search-widget) { flex: 1 1 auto; max-width: 640px; margin: 0 auto 0 0; }
  .lp-header .header-bottom { background: var(--lp-dark); }
  .lp-header .header-bottom :is(.anav-top > li > .amenu-link, .header-main-menu-wrapper > ul > li > a) { color: #fff; font-size: 15px; font-weight: 600; text-transform: none; letter-spacing: 0; }
  .lp-header .header-bottom :is(.anav-top > li:hover > .amenu-link, .header-main-menu-wrapper > ul > li > a:hover) { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
}

/* Phone department strip: fade + chevron + snap */
.lp-deptstrip { position: relative; background: var(--lp-dark); }
.lp-deptstrip__list {
  display: flex; gap: 2px; margin: 0; padding: 0 52px 0 8px; list-style: none; overflow-x: auto; scrollbar-width: none;
  scroll-snap-type: x proximity; scroll-padding-inline: 8px 52px;
  -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 96px), transparent calc(100% - 44px));
  mask-image: linear-gradient(90deg, #000 calc(100% - 96px), transparent calc(100% - 44px));
}
.lp-deptstrip__list::-webkit-scrollbar { display: none; }
.lp-deptstrip__list > li { flex: 0 0 auto; scroll-snap-align: start; }
.lp-deptstrip a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; color: #fff; font-size: var(--lp-fs-2); font-weight: 700; white-space: nowrap; text-decoration: none; }
.lp-deptstrip a.is-sale { color: var(--lp-orange-hi); }
.lp-deptstrip__more { position: absolute; top: 0; right: 0; bottom: 0; width: 44px; padding: 0; border: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; background: var(--lp-dark); color: #fff; font-size: 26px; font-weight: 700; }
.lp-deptstrip__more span { transition: transform .2s; }
.lp-deptstrip.is-end .lp-deptstrip__list { -webkit-mask-image: none; mask-image: none; }
.lp-deptstrip.is-end .lp-deptstrip__more span { transform: rotate(180deg); }
.lp-deptstrip.is-static .lp-deptstrip__more { display: none; }
@media (min-width: 992px) { .lp-deptstrip { display: none; } }

/* ---------- 15% pill (bottom-left) + call/WhatsApp column (bottom-right): module markup, position only.
   visibility:visible lets them show even if the hook container is collapsed. Hidden only while scrolling
   DOWN past the first screen (lp-retail.js), while a modal is open, and in checkout. ---------- */
body .lpw-launch {
  position: fixed !important; left: 12px !important; right: auto !important; top: auto !important;
  bottom: calc(12px + var(--lp-safe)) !important; z-index: 1001; visibility: visible; opacity: 1;
  transition: opacity .2s, visibility .2s, bottom .2s;
}
body #lpc-fab {
  position: fixed !important; right: 12px !important; left: auto !important; top: auto !important;
  bottom: calc(12px + var(--lp-safe)) !important; z-index: 1001; visibility: visible;
  display: flex; flex-direction: column; gap: 8px; transition: opacity .2s, visibility .2s, bottom .2s;
}
body #lpc-fab > :is(a, button) { width: var(--lp-fab); height: var(--lp-fab); min-width: 0; }
/* The 15% pill moves up so it never sits on the bottom-left call/WhatsApp stack */
html body .lpw-launch { bottom: calc(116px + var(--lp-bottom-stack)) !important; }
html.lp-scroll-down body .lpw-launch { opacity: 0; visibility: hidden; pointer-events: none; }
@media (max-width: 767.98px) {
  html.lp-scroll-down:not(.lp-buybar-on) body #lpc-fab { opacity: 0; visibility: hidden; pointer-events: none; }
  body#cart :is(.lpw-launch, #lpc-fab) { bottom: calc(84px + var(--lp-safe)) !important; }
}
@media (max-width: 480px) { html.lp-buybar-on #lpc-fab > :is(a[href*="wa.me"], a[href*="whatsapp"], [class*="whatsapp"]) { display: none; } }
body.modal-open :is(.lpw-launch, #lpc-fab, .lp-buybar) { visibility: hidden !important; }
body#checkout :is(.lpw-launch, #lpc-fab) { display: none !important; }

/* ---------- Cart modal: bottom sheet sized to content on phones (Checkout near the thumb) ---------- */
#blockcart-modal { z-index: 1100; }
#blockcart-modal :is(.modal-body, .modal-header) { padding: 16px 20px; }
#blockcart-modal .modal-content { height: auto !important; min-height: 0 !important; border-radius: var(--lp-radius); }
#blockcart-modal .cart-content-btn { display: flex; flex-direction: column; gap: 8px; }
#blockcart-modal .cart-content-btn .btn { width: 100%; }
@media (max-width: 767.98px) {
  #blockcart-modal .modal-dialog { position: fixed; left: 0; right: 0; bottom: 0; top: auto; height: auto !important; max-width: none; margin: 0; transform: none; }
  #blockcart-modal .modal-content { max-height: 85vh; max-height: 85dvh; overflow: auto; border-radius: var(--lp-radius) var(--lp-radius) 0 0; padding-bottom: var(--lp-safe); }
}

/* ---------- Sections ---------- */
.lp-section { padding: 24px 0; }
.lp-section__title { font-size: var(--lp-fs-3); margin: 0 0 12px; }
.lp-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.lp-section__head .lp-section__title { margin: 0; }
.lp-section__head a { color: var(--lp-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
[id] { scroll-margin-top: 16px; }
@media (min-width: 992px) { .lp-section { padding: 40px 0; } .lp-section__title { font-size: var(--lp-fs-4); } }

/* ---------- Home: hero ---------- */
.lp-hero { position: relative; overflow: hidden; background: var(--lp-dark); color: #fff; }
.lp-hero__img { display: block; width: 100%; height: 280px; object-fit: cover; object-position: 50% 45%; }
.lp-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.62) 50%, rgba(0,0,0,.12) 88%); }
.lp-hero__copy { position: absolute; left: 0; right: 0; bottom: 0; padding-bottom: 16px; }
.lp-hero__title { color: #fff; font-size: var(--lp-fs-4); line-height: 1.15; margin: 0 0 14px; max-width: 15em; text-wrap: balance; text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.lp-hero__ctas { display: flex; gap: 10px; }
.lp-hero__ctas .lp-btn { flex: 1 1 0; padding: 0 12px; }
.lp-hero__chips { display: none; }
@media (min-width: 992px) {
  .lp-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .lp-hero__media { order: 2; }
  .lp-hero__img { height: 500px; }
  .lp-hero__shade { display: none; }
  .lp-hero__copy { position: static; display: flex; align-items: center; padding: 48px 0; }
  .lp-hero__panel { max-width: 560px; margin-left: auto; padding-right: 24px; }
  .lp-hero__title { font-size: var(--lp-fs-5); text-shadow: none; }
  .lp-hero__ctas .lp-btn { flex: 0 0 auto; padding: 0 24px; }
  .lp-hero__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 0; padding: 0; list-style: none; }
  .lp-hero__chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid rgba(255,255,255,.6); border-radius: var(--lp-radius); color: #fff; font-weight: 700; text-decoration: none; }
  .lp-hero__chips a:hover { background: rgba(255,255,255,.12); color: #fff; }
}

/* ---------- Home: trust strip. Phones: ONE 44px row, rotating; pause shows all. Desktop: all chips ---------- */
.lp-home-trust { background: #fff; border-bottom: 1px solid var(--lp-line); }
.lp-home-trust__inner { display: flex; align-items: center; gap: 8px; padding-top: 8px; padding-bottom: 8px; }
.lp-trust__list { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; list-style: none; }
.lp-trust__item { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 12px; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: var(--lp-light); font-size: var(--lp-fs-1); font-weight: 600; }
.lp-trust__item a { display: inline-flex; align-items: center; min-height: 44px; color: var(--lp-ink); text-decoration: underline; text-underline-offset: 2px; }
.lp-trust__item .material-icons { font-size: 18px; width: 18px; color: var(--lp-orange); }
.lp-trust__pause { display: none; }
@media (max-width: 767.98px) {
  .lp-home-trust__inner { padding-right: calc(var(--lp-fab) + 24px); }
  .lp-trust__pause { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: #fff; color: var(--lp-ink); font-size: 12px; cursor: pointer; }
  .lp-trust__pause[aria-pressed="true"] span { font-size: 0; }
  .lp-trust__pause[aria-pressed="true"] span::before { content: "\25B6"; font-size: 14px; }
}
@media (max-width: 767.98px) and (prefers-reduced-motion: no-preference) {
  .lp-trust--rotate:not(.is-paused) .lp-trust__item { display: none; }
  .lp-trust--rotate:not(.is-paused) .lp-trust__item.is-on { display: flex; }
}
@media (prefers-reduced-motion: reduce) { .lp-trust__pause { display: none !important; } }
.lp-home-saleladder { margin-top: 16px; margin-bottom: 8px; }

/* ---------- Home: departments ---------- */
.lp-depts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.lp-dept { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: #fff; color: var(--lp-ink); border: 1px solid var(--lp-line); border-radius: var(--lp-radius); text-decoration: none; }
.lp-dept:hover { border-color: var(--lp-dark); color: var(--lp-ink); text-decoration: none; }
.lp-dept img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; background: var(--lp-light); }
.lp-dept__label { padding: 10px 12px; font-weight: 700; }
.lp-dept__label::after, .lp-dept__sub::after { content: " \203A"; }
.lp-depts__sale { grid-column: 1 / -1; }
.lp-dept--sale { justify-content: center; min-height: 88px; padding: 14px 16px; background: var(--lp-orange); border-color: var(--lp-orange); }
.lp-dept--sale:hover { background: var(--lp-orange-hi); }
.lp-dept__big { font-size: var(--lp-fs-4); font-weight: 800; line-height: 1.1; }
.lp-dept__sub { font-weight: 700; }
.lp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.lp-chips a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: var(--lp-light); color: var(--lp-ink); font-weight: 600; text-decoration: none; }
@media (min-width: 992px) { .lp-depts { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; } .lp-depts__sale { grid-column: auto; } }

/* ---------- Home: rows, promos, quote, visit, brands ---------- */
.lp-home-rows { padding: 8px 0 16px; }
.lp-home-bathroom { margin-bottom: 24px; }
.lp-home-rows :is(.title-block, .products-section-title, .lp-home-products-heading h2) { font-size: var(--lp-fs-3); text-transform: none; letter-spacing: 0; }
.lp-promos { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .lp-promos { grid-template-columns: 1fr 1fr; gap: 16px; } }
.lp-promo { position: relative; display: block; overflow: hidden; border-radius: var(--lp-radius); background: var(--lp-dark); color: #fff; text-decoration: none; }
.lp-promo img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.lp-promo__copy { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: 2px; padding: 40px 16px 16px; background: linear-gradient(to top, rgba(0,0,0,.8), rgba(0,0,0,0)); }
.lp-promo__title { font-size: var(--lp-fs-3); font-weight: 700; color: #fff; }
.lp-promo__cta { font-weight: 700; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.lp-quote__box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; border-radius: var(--lp-radius); background: var(--lp-dark); color: #fff; }
.lp-quote__box h2 { color: #fff; margin: 0 0 4px; font-size: var(--lp-fs-3); }
.lp-quote__box p { margin: 0; color: #fff; }
.lp-quote__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.lp-visit { background: var(--lp-light); }
.lp-visit__media { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.lp-visit__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lp-radius); background: var(--lp-line); }
.lp-visit__video { display: none; }
@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .lp-visit__video { display: block; grid-column: 1 / -1; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--lp-radius); background: #111; }
}
.lp-visit__cards { display: grid; gap: 12px; }
.lp-visit__card { padding: 16px; background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); }
.lp-visit__card h3 { margin: 0 0 4px; }
.lp-visit__card p { margin: 0 0 12px; }
@media (min-width: 992px) {
  .lp-visit__grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; align-items: start; }
  .lp-visit__media { margin: 0; }
  .lp-visit__cards { grid-template-columns: 1fr 1fr; }
  .lp-visit__call { grid-column: 1 / -1; justify-self: start; }
}
.lm-brand-showcase .lm-brand-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lm-brand-showcase .lm-brand-card { display: flex; align-items: center; justify-content: center; min-height: 88px; padding: 8px; background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); }
.lm-brand-showcase .lm-brand-card img { max-width: 100%; height: auto; }
@media (min-width: 768px) { .lm-brand-showcase .lm-brand-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Badges: one frame (ON SALE!, -%, New, Pack) ---------- */
.product-flags { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0; }
.product-flags .product-flag {
  border: 0; border-radius: var(--lp-radius-chip); background: var(--lp-orange); color: var(--lp-ink); box-shadow: none;
  font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px;
}
.product-flags .product-flag > * { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; color: inherit !important; }
.product-flags .product-flag::before, .product-flags .product-flag::after { display: none !important; }
.product-flags .product-flag.new, .product-flags .product-flag.pack { background: var(--lp-dark); color: #fff; }

/* ---------- Product card ---------- */
.lp-card { height: 100%; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); box-shadow: none; text-align: left; }
.lp-card__inner { display: flex; flex-direction: column; flex: 1 1 auto; border: 0; box-shadow: none; }
.lp-card__media { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; }
.lp-card__media :is(.product-thumbnail, a.thumbnail, picture) { display: block; width: 100%; height: 100%; }
.lp-card__media img { display: block; width: 100%; height: 100% !important; object-fit: contain; background: #fff; }
.lp-card .product-flags { position: absolute; top: 8px; left: 8px; z-index: 2; display: flex; flex-wrap: wrap; gap: 4px; margin: 0; }
.lp-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 12px; }
.lp-card__title { margin: 0; font-size: var(--lp-fs-2); line-height: 1.3; font-weight: 600; min-height: 2.6em; }
.lp-card__title a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--lp-ink); }
.lp-card__size { margin: 2px 0 0; min-height: 1.5em; font-size: var(--lp-fs-1); color: var(--lp-muted); }
.lp-card .product-availability { margin: 6px 0 0; }
.lp-card .product-description-short { display: none; }
.lp-card__foot { margin-top: auto; padding-top: 10px; }
.lp-card .product-price-and-shipping { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.lp-card .product-price-and-shipping .price { font-size: var(--lp-fs-2); font-weight: 700; color: var(--lp-ink); }
.lp-card .regular-price { font-size: var(--lp-fs-1); color: var(--lp-muted); text-decoration: line-through; }
.lp-card :is(.unit-price, .product-unit-price) { font-size: var(--lp-fs-1); font-weight: 600; color: var(--lp-ink); }
.lp-card .tax-shipping-delivery-label { font-size: var(--lp-fs-1); color: var(--lp-muted); }
.lp-card .buttons-sections .btn { width: 100%; margin-top: 10px; padding: 0 6px; font-size: 15px; white-space: nowrap; }

/* ---------- Listing + category header ---------- */
.lp-listing__head h1 { font-size: var(--lp-fs-4); margin: 12px 0 8px; }
#category .block-category { margin: 8px 0 12px; padding: 20px; border-radius: var(--lp-radius); }
#category .block-category h1 { font-size: var(--lp-fs-4); margin: 0 0 8px; }
#category .block-category :is(.btn, button, [class*="read-more"]) { margin-top: 12px; }
@media (max-width: 767.98px) {
  #category .block-category { padding: 14px 16px; margin-bottom: 8px; }
  #category .block-category :is([class*="eyebrow"], [class*="kicker"]) { display: none; }
  #category .block-category h1 { font-size: var(--lp-fs-3); margin-bottom: 4px; }
  #category .block-category :is(.h2, h2) { font-size: var(--lp-fs-2); margin: 0 0 4px; }
  #category .block-category :is(.btn, button, [class*="read-more"]) { min-height: 40px; margin-top: 8px; font-size: var(--lp-fs-1); }
}
.lp-listing__subtitle { margin-top: 8px; }
.lp-listing__toolbar { position: sticky; top: 0; z-index: 20; margin: 0 0 12px; padding: 8px 0; background: #fff; border-bottom: 1px solid var(--lp-line); }
.lp-listing__toolbar .total-products { font-size: var(--lp-fs-1); color: var(--lp-muted); margin: 0 0 6px; }
.products-sort-order .select-title, #search_filter_toggler, .js-search-toggler {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; padding: 0 14px;
  background: #fff; color: var(--lp-ink); border: 2px solid var(--lp-dark); border-radius: var(--lp-radius); font-weight: 700; white-space: nowrap;
}
.products-sort-order .select-title .material-icons { display: none; }
.products-sort-order .select-title::after { content: ""; flex: 0 0 auto; width: 8px; height: 8px; margin: -4px 2px 0 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.products-sort-order .dropdown-menu { border-radius: var(--lp-radius); }
#js-active-search-filters ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; padding: 0; list-style: none; }
#js-active-search-filters .filter-block { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 6px 0 12px; background: var(--lp-light); border: 1px solid var(--lp-dark); border-radius: var(--lp-radius); font-size: var(--lp-fs-1); font-weight: 600; }
:is(#js-product-list, .lp-salehead) .products { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
:is(#js-product-list, .lp-salehead) .products > * { display: flex; flex-direction: column; width: auto !important; max-width: none !important; flex: none !important; margin: 0 !important; padding: 0 !important; }
:is(#js-product-list, .lp-salehead) .products > * > .product-miniature { flex: 1 1 auto; }
@media (min-width: 768px) { :is(#js-product-list, .lp-salehead) .products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 16px; } }
@media (min-width: 1200px) { :is(#js-product-list, .lp-salehead) .products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pagination .page-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.pagination .page-list li :is(a, span) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); color: var(--lp-ink); }
.pagination .page-list li.current a { background: var(--lp-dark); border-color: var(--lp-dark); color: #fff; }

/* Sale page: Moe's lp-sale-top.tpl (live markup, styled only) */
.lp-salehead { margin: 8px 0 16px; }
.lp-salehead img { max-width: 100%; height: auto; border-radius: var(--lp-radius); }
.lp-salehead :is(a.btn, .btn, button.btn) { min-height: 48px; border-radius: var(--lp-radius); text-transform: none; letter-spacing: 0; }
.lp-salehead :is(h1, .h1) { font-size: var(--lp-fs-4); }
.lp-salehead :is(h2, .h2) { font-size: var(--lp-fs-3); }
@media (min-width: 992px) { .lp-salehead :is(h1, .h1) { font-size: var(--lp-fs-5); } }

/* ---------- Product page ---------- */
.lp-pdp { padding-top: 0; }
#product .lm-product-shell { margin-top: 0; }
#product .lp-pdp__gallery { position: relative; padding: 0; overflow: hidden; background: #fff; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); }
#product .lp-pdp__gallery :is(.product-cover, .product-cover-container, .slick-list, .slick-track, .slick-slide, .swiper-wrapper, .swiper-slide) { min-height: 0; height: auto; margin: 0; padding: 0; background: #fff; }
/* Phones: compact frame (title, stock, price and Add to basket follow on the first screen); image fills edge to edge */
#product .lp-pdp__gallery :is(.product-cover img, .slick-slide img, .swiper-slide img) {
  display: block; width: 100% !important; max-width: none; height: auto !important; aspect-ratio: 4 / 3; max-height: 36vh;
  object-fit: contain; margin: 0; background: #fff;
}
#product .lp-pdp--tile .lp-pdp__gallery :is(.product-cover img, .slick-slide img, .swiper-slide img) { aspect-ratio: 3 / 2; object-fit: cover; }
#product .lp-pdp__gallery :is(.slick-arrow, .slick-prev, .slick-next, .swiper-button-prev, .swiper-button-next, button[class*="prev"], button[class*="next"]) {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 44px; height: 44px; margin: 0; overflow: visible;
  display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: rgba(32, 51, 47, .9); color: #fff;
}
#product .lp-pdp__gallery :is(.slick-prev, .swiper-button-prev, button[class*="prev"]) { left: 8px !important; right: auto !important; }
#product .lp-pdp__gallery :is(.slick-next, .swiper-button-next, button[class*="next"]) { right: 8px !important; left: auto !important; }
#product .lp-pdp__gallery .product-images { padding: 8px; }
#product .lp-pdp__gallery .product-images .thumb { border: 2px solid transparent; border-radius: var(--lp-radius-chip); }
#product .lp-pdp__gallery :is(.product-images .selected .thumb, .thumb.selected) { border-color: var(--lp-dark); }
#product .lp-pdp__gallery .product-flags { position: absolute; top: 10px; left: 10px; z-index: 4; display: flex !important; flex-wrap: wrap; gap: 4px; margin: 0; max-width: 60%; }
#product .lp-pdp__gallery .product-flags .product-flag { display: inline-block !important; }
.lp-pdp__zoom {
  position: absolute; top: 8px; right: 8px; z-index: 4; display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 10px;
  border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: rgba(255,255,255,.94); color: var(--lp-ink); font-size: 12px; font-weight: 600; cursor: zoom-in;
}
.lp-pdp__zoom .material-icons { font-size: 18px; }
@media (max-width: 767.98px) { #product .lp-pdp__gallery .product-images { display: none; } }
@media (min-width: 992px) {
  #product .lp-pdp__gallery :is(.product-cover img, .slick-slide img, .swiper-slide img),
  #product .lp-pdp--tile .lp-pdp__gallery :is(.product-cover img, .slick-slide img, .swiper-slide img) { aspect-ratio: 1 / 1; max-height: none; object-fit: contain; }
  .lp-pdp__zoom { top: auto; bottom: 8px; font-size: var(--lp-fs-1); }
  #product .lp-pdp__gallery .product-images + .lp-pdp__zoom, #product .lp-pdp__gallery .lp-pdp__zoom { bottom: auto; top: 8px; }
}
#product .lm-product-title { font-size: var(--lp-fs-3); margin: 12px 0 6px; }
@media (min-width: 992px) { #product .lm-product-title { font-size: var(--lp-fs-4); margin-top: 0; } }
.lp-pdp__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 8px; font-size: var(--lp-fs-1); color: var(--lp-muted); }
.lp-pdp__meta .lp-stock { padding: 4px 10px; font-size: var(--lp-fs-1); }
/* The pill above is the visible stock line; hide the duplicate the theme prints / moves inside the buy box */
.lp-has-stock :is(.js-product-availability-destination, .lp-pdp__buybox #product-availability) { display: none !important; }
#product #product-availability { display: inline-flex; align-items: center; gap: 6px; font-size: var(--lp-fs-1); font-weight: 700; }
#product #product-availability .material-icons { display: none; }
.lpc-top-price[hidden] { display: none !important; }
#product .product-prices { margin: 4px 0 12px; padding: 10px 12px; background: var(--lp-light); border-radius: var(--lp-radius); }
#product .product-prices .current-price-value { font-size: var(--lp-fs-4); font-weight: 700; color: var(--lp-ink); line-height: 1.2; }
#product .product-prices .regular-price { font-size: var(--lp-fs-2); color: var(--lp-muted); }
#product .product-prices :is(.discount-percentage, .discount-amount) { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: var(--lp-radius-chip); background: var(--lp-orange); color: var(--lp-ink); font-weight: 700; font-size: var(--lp-fs-1); }
#product .product-prices :is(.tax-label, .product-unit-price, .delivery-information, .show-more-without-taxes) { font-size: var(--lp-fs-1); color: var(--lp-muted); font-style: normal; opacity: 1; }
/* Moe's calculator: layout only, no figures touched */
#product .lp-purchase-controls { display: flex; flex-direction: column; gap: 12px; }
#product .lp-tile-order:not([hidden]) { display: flex; flex-direction: column; gap: 6px; }
#product :is(.lp-tile-order label, .lp-tile-count-label) { font-weight: 700; font-size: var(--lp-fs-2); }
#product .lp-order-summary { margin: 4px 0 0; padding: 10px 12px; border-radius: var(--lp-radius); background: var(--lp-light); font-size: var(--lp-fs-2); font-weight: 700; color: var(--lp-ink); }
#product :is(.lp-tile-order small, .lp-purchase-total small) { font-size: var(--lp-fs-1); color: var(--lp-muted); }
#product .lp-waste { display: flex; align-items: flex-start; gap: 10px; width: 100%; max-width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); font-weight: 600; white-space: normal; overflow-wrap: anywhere; }
#product .lp-waste input { flex: 0 0 22px; width: 22px; height: 22px; accent-color: var(--lp-orange); margin: 0; }
#product .product-add-to-cart :is(input[type="number"], input[type="text"], select) { min-height: 48px; font-size: 16px; border: 1px solid #b9bfbc; border-radius: var(--lp-radius); box-shadow: none; color: var(--lp-ink); }
#product .product-add-to-cart :is(input, select):focus { outline: 2px solid var(--lp-orange); outline-offset: 0; border-color: var(--lp-orange); }
#product .lp-purchase-total:not([hidden]) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
#product .product-add-to-cart .add { display: flex; }
#product .product-add-to-cart .add-to-cart { flex: 1 1 auto; width: 100%; font-size: 17px; }
#product .product-add-to-cart :is([class*="paypal"], [class*="express"]):not(:empty) { width: 100%; margin-top: 8px; border-radius: var(--lp-radius); overflow: hidden; }
/* Separate tile calculator only on tile (m²) products; Moe's .lp-tile-order is not matched */
#product .lp-pdp--item :is([class*="tile-calc" i], [class*="tilecalc" i], [class*="tile_calc" i], [id*="tile-calc" i], [id*="tilecalc" i], [id*="tile_calc" i]) { display: none !important; }
.lp-pdp__assure { display: grid; gap: 8px; margin: 12px 0; padding: 12px 14px; list-style: none; border: 1px solid var(--lp-line); border-radius: var(--lp-radius); }
.lp-pdp__assure li { display: flex; align-items: flex-start; gap: 10px; font-size: var(--lp-fs-1); }
.lp-pdp__assure .material-icons { font-size: 20px; color: var(--lp-dark); }
.lp-pdp__assure a { color: var(--lp-ink); font-weight: 700; }
#product .lm-product-intro { min-height: 0; border: 0; padding: 0; margin: 12px 0; }
#product :is(.product-additional-info, .lm-product-reassurance, .product-out-of-stock):empty { display: none; }
#product .tabs .nav-link { color: var(--lp-muted); font-weight: 700; border: 0; }
#product .tabs .nav-link.active { color: var(--lp-ink); box-shadow: inset 0 -3px 0 var(--lp-orange); }

/* Sticky add-to-basket bar: only after the real button has scrolled above the viewport (lpconvert's #lpc-sticky used if printed) */
.lp-buybar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; display: flex; align-items: center; gap: 12px;
  min-height: var(--lp-buybar-h); padding: 8px 16px calc(8px + var(--lp-safe)); background: #fff;
  border-top: 1px solid var(--lp-line); box-shadow: 0 -4px 16px rgba(0,0,0,.08);
  transform: translateY(110%); visibility: hidden; transition: transform .2s, visibility .2s;
}
html.lp-buybar-on .lp-buybar { transform: none; visibility: visible; }
html.has-lpc-sticky .lp-buybar { display: none; }
html.has-lpc-sticky:not(.lp-buybar-on) #lpc-sticky { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.lp-buybar__info { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.lp-buybar__name { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--lp-fs-1); color: var(--lp-muted); }
.lp-buybar__price { font-size: var(--lp-fs-3); font-weight: 700; line-height: 1.2; }
.lp-buybar .lp-btn { flex: 0 0 auto; }
@media (min-width: 992px) { .lp-buybar { padding-left: max(16px, calc((100vw - 1140px) / 2)); padding-right: max(16px, calc((100vw - 1140px) / 2)); } }

/* ---------- Basket ---------- */
#cart :is(.promo-code-button > a, .block-promo .collapse-button) {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; padding: 0 14px;
  border: 1px solid var(--lp-line); border-radius: var(--lp-radius); background: #fff; color: var(--lp-ink) !important; font-weight: 700; text-decoration: none;
}
#cart :is(.promo-code-button > a, .block-promo .collapse-button)::after { content: ""; width: 8px; height: 8px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
#cart :is(.promo-code-button > a, .block-promo .collapse-button)[aria-expanded="true"]::after { margin-top: 4px; transform: rotate(-135deg); }
#cart .block-promo .promo-code form { display: flex; gap: 8px; margin-top: 8px; }
#cart .block-promo .promo-code :is(input, .btn) { min-height: 48px; border-radius: var(--lp-radius); }
#cart .cart-grid :is(.card, .card-block, .block-reassurance, .cart-detailed-actions):empty { display: none; }
@media (max-width: 767.98px) {
  #cart .cart-summary .cart-detailed-actions { position: sticky; bottom: 0; z-index: 5; padding: 8px 0 calc(8px + var(--lp-safe)); background: #fff; box-shadow: 0 -4px 12px rgba(0,0,0,.06); }
}

/* ---------- Footer: one chevron per toggle, 44px rows on phones ---------- */
.footer-container :is(.collapse-icons, .navbar-toggler) > :nth-child(n+2) { display: none !important; }
.footer-container [aria-expanded="true"] :is(.collapse-icons, .navbar-toggler) > :first-child:not(:last-child) { display: none !important; }
.footer-container [aria-expanded="true"] :is(.collapse-icons, .navbar-toggler) > :nth-child(2) { display: inline-block !important; }
@media (max-width: 767.98px) {
  .footer-container :is([data-toggle="collapse"], [data-bs-toggle="collapse"]) { display: flex; align-items: center; justify-content: space-between; min-height: 44px; }
}
@media (min-width: 768px) { .footer-container .collapse-icons { display: none !important; } }

@media (prefers-reduced-motion: reduce) { .lp-buybar, body .lpw-launch, body #lpc-fab, .lp-deptstrip__more span { transition: none; } }

/* ==========================================================================
   Design review round: one sticky system, home order, category toolbar, cards, product stock line, basket
   ========================================================================== */

/* ---- 1. One sticky system. --lp-bottom-stack and --lp-cookie-h are kept up to date by lp-retail.js ---- */
:root { --lp-bottom-stack: env(safe-area-inset-bottom, 0px); --lp-cookie-h: 0px; --lp-fab: 44px; }
html body, html body#product, html body#cart { padding-bottom: 0 !important; }
html.lp-has-bar body, html.lp-has-bar body#product, html.lp-has-bar body#cart { padding-bottom: var(--lp-bottom-stack) !important; }
/* triple id selector beats the module CSS and the custom.css !important rules */
html body #lpc-fab#lpc-fab#lpc-fab {
  position: fixed !important; left: 12px !important; right: auto !important; top: auto !important;
  bottom: calc(12px + var(--lp-bottom-stack)) !important; z-index: 1001;
  display: flex; flex-direction: column; gap: 8px;
}
html body #lpc-fab#lpc-fab#lpc-fab .lpc-fab__call,
html body #lpc-fab#lpc-fab#lpc-fab .lpc-fab__wa {
  display: flex !important; align-items: center; justify-content: center;
  width: 44px !important; height: 44px !important; min-width: 44px;
}
/* hidden: basket drawer / modal open, keyboard (field focused), basket and checkout pages */
html.lp-fab-off #lpc-fab#lpc-fab#lpc-fab,
body#cart #lpc-fab#lpc-fab#lpc-fab,
body#checkout #lpc-fab#lpc-fab#lpc-fab { display: none !important; }
/* sticky buy bar sits above the cookie banner */
.lp-buybar { bottom: var(--lp-cookie-h, 0px); }

/* ---- 2. Home ---- */
/* bathrooms and tiles before mosaics in the sale cards (DOM order is mosaics, tiles, bathrooms) */
.lp-sale-cards .lp-sale-card:nth-child(3) { order: 1; }
.lp-sale-cards .lp-sale-card:nth-child(2) { order: 2; }
.lp-sale-cards .lp-sale-card:nth-child(1) { order: 3; }
/* section heading + "Show more" link: separate items, never joined */
.lp-home-rows :is(.title-block, .products-section-title, .lp-home-products-heading, .section-title) { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.lp-home-rows a.lp-showmore { display: inline-flex; align-items: center; min-height: 44px; margin-left: .5em; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
/* old and new price: current price first, struck old price after it, always separated */
.lp-card .product-price-and-shipping .price { order: 1; }
.lp-card .product-price-and-shipping .regular-price { order: 2; }
.lp-card .product-price-and-shipping :is(.discount-percentage, .discount-amount) { order: 3; }
:is(.product-price-and-shipping, .lp-home-rows) .regular-price { display: inline-block; margin: 0 .35em; font-weight: 400; color: var(--lp-muted); text-decoration: line-through; }
:is(.product-price-and-shipping, .lp-home-rows) .price { display: inline-block; }

/* ---- 3. Category pages ---- */
#category .lm-category-header { margin: 0; }
#category .lm-category-hero { display: block !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; color: var(--lp-ink) !important; }
#category .lm-category-copy { padding: 0 !important; }
#category .lm-category-hero .page-heading { color: var(--lp-ink) !important; font-size: var(--lp-fs-4); margin: 8px 0 4px; }
#category :is(.lm-category-image, .lm-category-hero .lm-eyebrow) { display: none !important; }
.lp-listing__toolbar #js-product-list-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.lp-listing__toolbar .lm-products-count .lm-eyebrow { display: none; }
.lp-listing__toolbar .lm-products-count strong { font-size: var(--lp-fs-2); }
.lp-listing__toolbar .lm-products-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.lp-catdesc { margin: 0 0 12px; font-size: var(--lp-fs-1); color: var(--lp-muted); }
.lp-catdesc__body :is(h1, h2, h3, h4, p) { font-size: inherit; line-height: 1.5; margin: 0; font-weight: inherit; }
.lp-catdesc.is-clamped .lp-catdesc__body { max-height: 3em; overflow: hidden; }
.lp-catdesc__toggle { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: var(--lp-ink); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* cards: same image frame, whole tile visible, price/action pinned to the bottom */
.lp-card__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: #fff; }
.lp-card__media img { object-fit: contain !important; padding: 6px; }
.lp-card__foot, .lp-card__foot .buttons-sections { margin-top: auto; }

/* ---- 5. Sale page ---- */
.lps-all { scroll-margin-top: 16px; }

/* ---- 7. Product: stock / lead-time line next to the price, above Add to basket ---- */
#product .lp-stock-line { margin: 0 0 10px; }
#product .lp-stock-line .lp-stock { padding: 6px 12px; font-size: var(--lp-fs-1); white-space: normal; }

/* ---- 8. Basket ---- */
#cart .product-line-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#cart .product-quantity-touchspin :is(.btn, button, .bootstrap-touchspin .btn, .input-group-btn-vertical > .btn) { min-width: 44px; min-height: 44px; }
#cart .product-quantity-touchspin input.js-cart-line-product-quantity { min-width: 56px; min-height: 44px; text-align: center; font-size: 16px; }
#cart a.remove-from-cart { display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; padding: 0 10px; color: var(--lp-ink); font-weight: 600; text-decoration: underline; visibility: visible; opacity: 1; }
#cart .lp-remove-label { font-size: var(--lp-fs-1); }
#cart .cart-detailed-totals { display: flex; flex-direction: column; }
#cart .cart-detailed-totals .cart-products-count { order: 0; margin: 0 0 6px; padding: 6px 10px; font-size: var(--lp-fs-1); }
#cart .cart-detailed-totals .cart-summary-subtotals { order: 1; }
#cart .cart-detailed-totals .cart-summary-totals { order: 2; }
#cart .cart-detailed-totals .lp-cart-delivery-note { order: 3; margin: 6px 0 0; font-size: var(--lp-fs-1); color: var(--lp-muted); }
#cart .cart-detailed-totals .block-promo { order: 4; margin: 8px 0 0; }
#cart .block-promo :is(.promo-code-button > a, .collapse-button) { min-height: 44px; padding: 0; border: 0; background: none; justify-content: flex-start; font-size: var(--lp-fs-1); font-weight: 600; text-decoration: underline; }

/* ---- ROUND B (2 Nov): no floating contact buttons. Call + WhatsApp live in the top contact bar (.lpc-bar);
   the tawk.to chat bubble is the only floating control. ---- */
html body #lpc-fab#lpc-fab#lpc-fab { display: none !important; }
html body .lpw-launch { bottom: calc(12px + var(--lp-bottom-stack)) !important; }
.lpc-bar .lpb-wa { display: inline-flex; align-items: center; gap: 4px; margin-left: 12px; color: #0f7a3d; font-weight: 700; white-space: nowrap; }
.lpc-bar .lpb-wa svg { width: 16px; height: 16px; }
.lpc-bar__in { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; row-gap: 2px; }
/* ROUND B: keep the cookie banner's Accept button clear of the tawk.to chat bubble (bottom-right) */
#cookieMessage .cookie-message-wrapper { padding-right: 92px; }
@media (min-width: 768px) { #cookieMessage .cookie-message-wrapper { padding-right: 110px; } }

/* T006 BASKET V2 START - append this section after the installed retail rules.
   Scoped to the basket; no quantities, prices or shipping are calculated. */
body#cart .lp-basket-line {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px;
  color: #20332f;
}
body#cart .lp-basket-line .product-line-grid-left {
  display: grid; grid-template-columns: 76px minmax(0, 1fr);
  align-items: start; gap: 14px; width: auto; min-width: 0;
}
body#cart .lp-basket-line .product-image {
  width: 76px; height: 76px; margin: 0; background: #f7f5f0;
  border: 1px solid #e2e5e2; border-radius: 8px; overflow: hidden;
}
body#cart .lp-basket-line .product-image img {
  display: block; width: 100%; height: 100%; object-fit: contain;
}
body#cart .lp-basket-line .product-line-grid-body {
  width: auto; min-width: 0; padding: 0;
}
body#cart .lp-basket-line .product-name {
  margin: 0 0 10px; font-size: 16px; line-height: 1.4;
}
body#cart .lp-basket-line .product-name a {
  color: #20332f; white-space: normal; overflow-wrap: anywhere;
}
body#cart .lp-basket-line .lp-basket-label {
  display: block; margin: 0 0 5px; font: 600 12px/1.4 Arial, Helvetica, sans-serif;
  color: #4c5954;
}
body#cart .lp-basket-line .product-prices { line-height: 1.5; }
body#cart .lp-basket-line .lp-basket-unit { font-weight: 400; font-size: 13px; }
body#cart .lp-basket-line .unit-price-cart { display: block; font-size: 13px; }
body#cart .lp-basket-line .product-line-info { margin-top: 4px; overflow-wrap: anywhere; }
body#cart .lp-basket-line .product-line-info i { font-style: normal; }
body#cart .lp-basket-line .product-line-grid-right {
  display: grid; grid-template-columns: minmax(150px, 1fr) minmax(0, auto);
  align-items: start; gap: 12px; width: auto; min-width: 0;
  margin: 0; padding: 14px; border: 1px solid #e2e5e2;
  border-radius: 10px; background: #f7f5f0;
}
body#cart .lp-basket-line .qty-col::before { content: none; display: none; }
body#cart .lp-basket-line .qty-col { margin: 0; }
body#cart .lp-basket-line .price-col {
  min-width: 0; margin: 0; text-align: right; overflow-wrap: anywhere;
}
body#cart .lp-basket-line .price-col .price { font-size: 20px; line-height: 1.4; }
body#cart .lp-basket-line .cart-line-product-actions { grid-column: 1 / -1; min-width: 0; }
body#cart .lp-basket-line a.remove-from-cart { padding: 0 6px; justify-content: flex-start; }
body#cart .lp-basket-line :is(a, input, button):focus-visible {
  outline: 3px solid #20332f; outline-offset: 3px;
}
body#cart .cart-detailed-totals .cart-summary-line {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 12px; padding-top: 10px; padding-bottom: 10px;
}
body#cart .cart-detailed-totals .cart-summary-line .value {
  text-align: right; overflow-wrap: anywhere; min-width: 0;
}
body#cart .cart-detailed-totals .lp-cart-delivery-note {
  display: block; margin: 8px 0 0; color: #4c5954; font-size: 13px; line-height: 1.5;
}
body#cart .cart-summary .cart-detailed-actions a.btn {
  min-height: 52px; white-space: normal; line-height: 1.4;
}
@media (min-width: 1200px) {
  body#cart .lp-basket-line {
    grid-template-columns: minmax(0, 1fr) minmax(290px, 0.85fr);
    align-items: start;
  }
}
@media (max-width: 359px) {
  body#cart .lp-basket-line .product-line-grid-left {
    grid-template-columns: 60px minmax(0, 1fr); gap: 10px;
  }
  body#cart .lp-basket-line .product-image { width: 60px; height: 60px; }
  body#cart .lp-basket-line .product-line-grid-right { grid-template-columns: minmax(0, 1fr); }
  body#cart .lp-basket-line .price-col { text-align: left; }
}
@media (forced-colors: active) {
  body#cart .lp-basket-line .product-line-grid-right { border-color: CanvasText; }
}
/* T006 BASKET V2 END */
/* V010: home-v2 category treatment. Load in the existing lp-retail slot,
   after lp-d10.css. Every added selector is category-scoped. No new assets. */
#category .lp-listing {
  --lp-v3-ink: #1b1b1b;
  --lp-v3-muted: #55524e;
  --lp-v3-rule: #dcd9d3;
  --lp-v3-grout: #efece7;
  --lp-v3-sale: #b9471a;
  color: var(--lp-v3-ink);
  font-family: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
}
#category .lp-listing .page-heading,
#category .lm-category-hero .page-heading,
#category h1.js-category-page {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.01em;
  margin: 16px 0 24px !important;
}
#category .lp-listing .lp-listing__toolbar {
  /* Ordinary document flow avoids guessing the shared sticky header height. */
  position: relative;
  top: auto;
  z-index: auto;
  padding: 12px 0;
  margin-bottom: 20px;
  border-top: 1px solid var(--lp-v3-rule);
  border-bottom: 1px solid var(--lp-v3-rule);
  background: #fff;
}
#category .lp-listing .lp-card {
  border-color: var(--lp-v3-rule);
  border-radius: 6px;
  text-align: left;
}
#category .lp-listing .lp-card:hover { border-color: var(--lp-v3-ink); }
#category .lp-listing .lp-card__media { background: var(--lp-v3-grout); }
#category .lp-listing .lp-card__media img { object-fit: contain !important; padding: 0; }
#category .lp-listing .lp-card__body { padding: 14px 16px 16px; }
#category .lp-listing .lp-card__title {
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  min-height: 0;
  max-height: none;
  overflow: visible;
  display: block;
  -webkit-line-clamp: unset;
}
#category .lp-listing .lp-card__title a {
  display: block;
  white-space: normal;
  overflow: visible;
  overflow-wrap: anywhere;
  -webkit-line-clamp: unset;
}
#category .lp-listing .lp-card .btn {
  border-radius: 6px;
  min-height: 44px;
  height: auto;
  padding: 10px 12px;
  white-space: normal;
  line-height: 1.3;
}
#category .lp-listing .lp-category-about {
  margin: 40px 0 24px;
  padding-top: 24px;
  border-top: 1px solid var(--lp-v3-rule);
  color: var(--lp-v3-muted);
  line-height: 1.6;
}
#category .lp-listing .lp-category-about h2 {
  display: inline;
  font-family: "Source Serif 4", Georgia, serif;
  font-size: 26px;
  font-weight: 600;
  color: var(--lp-v3-ink);
}
#category .lp-listing .lp-category-about summary {
  min-height: 44px;
  padding: 6px 0;
  cursor: pointer;
}
#category .lp-listing .lp-category-about__body { margin-top: 16px; max-width: 72ch; }
#category .lp-listing .lp-category-about__body img { max-width: 100%; height: auto; }
#category .lp-listing :is(a, button, summary, select):focus-visible {
  outline: 2px solid var(--lp-v3-ink);
  outline-offset: 3px;
}
@media (max-width: 767.98px) {
  #category .lp-listing .page-heading,
  #category .lm-category-hero .page-heading,
  #category h1.js-category-page { margin: 12px 0 16px !important; }
  #category .lp-listing .lp-listing__toolbar { margin-bottom: 14px; }
  #category .lp-listing .lp-card__body { padding: 12px 10px; }
  #category .lp-listing .lp-card__title { font-size: 14px; }
  #category .lp-listing .lp-category-about { margin-top: 28px; }
}
/* V023: category filters and cards. Append-only; native presenters and AJAX own data. */
#category {
  --lp-v3-ink: #1b1b1b; --lp-v3-muted: #55524e; --lp-v3-rule: #dcd9d3;
  --lp-v3-grout: #efece7; --lp-v3-sale: #b9471a;
}
#category #search_filters,
#category .lp-listing .lm-products-toolbar {
  font-family: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  color: var(--lp-v3-ink);
}
#category .lp-listing .lm-products-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 12px 24px; min-width: 0;
}
#category .lp-listing .lm-products-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
#category .lp-listing .lm-products-count .lm-eyebrow {
  font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--lp-v3-muted);
}
#category .lp-listing .lm-products-count strong { font-size: 15px; }
#category .lp-listing .lm-products-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; }
#category .lp-listing .products-sort-order { min-width: 0; max-width: 100%; }
#category .lp-listing :is(.products-sort-order .select-title, #search_filter_toggler) {
  min-height: 48px; height: auto; padding: 12px 14px; max-width: 100%;
  background: #fff; color: var(--lp-v3-ink); border: 1px solid var(--lp-v3-ink);
  border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1.4; white-space: normal;
}
#category .lp-listing #search_filter_toggler { background: var(--lp-v3-ink); color: #fff; }
#category .lp-listing .products-sort-order .dropdown-menu {
  max-width: calc(100vw - 32px); border: 1px solid var(--lp-v3-rule); border-radius: 6px;
  background: #fff; padding: 6px; color: var(--lp-v3-ink);
}
#category .lp-listing .products-sort-order .dropdown-item {
  min-height: 44px; padding: 12px; white-space: normal; overflow-wrap: anywhere; line-height: 1.4;
}
#category .lp-listing .products-sort-order .dropdown-item:is(:hover, :focus, .current) {
  background: var(--lp-v3-grout); color: var(--lp-v3-ink);
}
/* Style the supplied native facet contract, including when moved into the mobile panel.
   Do not force collapse visibility, reposition a drawer, or override module interaction. */
#category #search_filters { background: #fff; }
#category #search_filters .column-title { font-size: 20px; text-transform: none; letter-spacing: 0; }
#category #search_filters .facet { padding: 16px 0; margin: 0; border-bottom: 1px solid var(--lp-v3-rule); }
#category #search_filters .facet-title { margin: 0; font-size: 15px; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; }
#category #search_filters .facet > .title {
  width: 100%; min-height: 48px; padding: 12px 0; text-align: left;
  border: 0; background: #fff; color: var(--lp-v3-ink);
}
#category #search_filters .facet > ul { padding: 8px 0 0; margin: 0; list-style: none; }
#category #search_filters .facet li { min-width: 0; }
#category #search_filters .facet-label { padding: 0; margin: 0; }
#category #search_filters .facet-label :is(.custom-checkbox, .custom-radio) {
  display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; width: 100%;
}
#category #search_filters .check-wrap { flex-shrink: 0; }
#category #search_filters .search-link {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px;
  min-height: 44px; padding: 8px 0; color: var(--lp-v3-ink); font-size: 14px;
  line-height: 1.4; white-space: normal; overflow-wrap: anywhere;
}
#category #search_filters .facet-label.active .search-link { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#category #search_filters .magnitude { color: var(--lp-v3-muted); font-size: 13px; }
#category #search_filters .js-search-filters-clear-all {
  min-height: 44px; padding: 10px 14px; border: 1px solid var(--lp-v3-ink);
  border-radius: 6px; background: #fff; color: var(--lp-v3-ink); white-space: normal;
}
#category #search_filters :is(a, button, input, .dropdown-toggle):focus-visible {
  outline: 2px solid var(--lp-v3-ink); outline-offset: 3px;
}
#category #search_filters .custom-checkbox:focus-within .check-shape,
#category #search_filters .custom-radio:focus-within .check-shape {
  outline: 2px solid var(--lp-v3-ink); outline-offset: 3px;
}
#category #js-active-search-filters .filter-block {
  min-height: 44px; max-width: 100%; border: 1px solid var(--lp-v3-rule); border-radius: 6px;
  background: var(--lp-v3-grout); color: var(--lp-v3-ink); white-space: normal; overflow-wrap: anywhere;
}
#category #js-active-search-filters .filter-block a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; color: inherit; }
/* Complete images, complete names, neutral repeated actions, truthful native sale emphasis. */
#category .lp-listing .lp-card__media .product-cover-link { display: block; width: 100%; height: 100%; }
#category .lp-listing .lp-card__media img { background: var(--lp-v3-grout); }
#category .lp-listing .lp-card__title a { color: var(--lp-v3-ink); }
#category .lp-listing .lp-card__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
#category .lp-listing .lp-card__foot { border-top: 1px solid var(--lp-v3-rule); margin-top: 12px; padding-top: 12px; }
#category .lp-listing .lp-card__body { gap: 12px; }
#category .lp-listing .lp-card__body > .second-block { flex: 1 1 auto; }
#category .lp-listing .lp-card .product-price-and-shipping { gap: 4px 8px; line-height: 1.5; }
#category .lp-listing .lp-card .product-price-and-shipping .price { font-size: 20px; line-height: 1.4; }
#category .lp-listing .lp-card :is(.unit-price, .product-unit-price, .tax-shipping-delivery-label) { font-size: 14px; line-height: 1.5; }
#category .lp-listing .lp-card--discounted .product-price-and-shipping .price { color: var(--lp-v3-sale); }
#category .lp-listing .lp-card .regular-price { color: var(--lp-v3-muted); font-size: 14px; }
#category .lp-listing .lp-card .lp-card-disc {
  display: inline-block; padding: 2px 6px; border-radius: 4px;
  background: #fcebe3; color: var(--lp-v3-sale); font-size: 13px; font-weight: 700;
}
#category .lp-listing .lp-card .buttons-sections .btn {
  min-height: 48px; border-color: var(--lp-v3-ink); background: var(--lp-v3-ink); color: #fff;
  font-size: 14px; line-height: 1.4; white-space: normal; padding: 10px 8px;
}
#category .lp-listing .lp-card .buttons-sections .btn:hover { background: #36332f; border-color: #36332f; color: #fff; }
#category .lp-listing .lp-card .buttons-sections .btn:is(:disabled, [disabled], .disabled) { opacity: .55; cursor: not-allowed; }
#category .lp-listing .lp-card .lp-stock { white-space: normal; overflow-wrap: anywhere; }
#category .lp-listing .pagination .page-list li :is(a, span) { border-radius: 6px; border-color: var(--lp-v3-rule); color: var(--lp-v3-ink); }
#category .lp-listing .pagination .page-list li.current a { background: var(--lp-v3-ink); border-color: var(--lp-v3-ink); color: #fff; }
@media (max-width: 767.98px) {
  #category .lp-listing .lm-products-actions { width: 100%; }
  #category .lp-listing .lm-products-actions > .products-sort-order { flex: 1 1 150px; }
  #category .lp-listing .products-sort-order .sort-select { flex: 1 1 auto; min-width: 0; max-width: 100%; }
  #category .lp-listing .products-sort-order .select-title { width: 100%; }
  #category .lp-listing .lp-card__body { gap: 8px; }
  #category .lp-listing .lp-card .product-price-and-shipping .price { font-size: 18px; }
}
@media (forced-colors: active) {
  #category .lp-listing .lp-card .buttons-sections .btn,
  #category .lp-listing #search_filter_toggler { border: 1px solid ButtonText; }
}
/* V023 END */

/* V031: reach native filters sooner; preserve selected-filter/reset and module ownership. */
@media (max-width: 767.98px) {
  #category .lp-listing .lp-listing__head { margin-bottom: 12px; padding-block: 8px; }
  #category .lp-listing .lp-listing__toolbar { margin-block: 8px 12px; }
  #category .lp-listing .lm-products-toolbar { gap: 8px 12px; }
  #category .lp-listing .lp-card__title { font-size: 15px; line-height: 1.4; }
}