/**
 * Platform modules + CMS components — responsive BEM (all storefront layouts).
 * Build: 20260531-platform-modules-v48
 * Load after platform-bem.css; does not replace layout1-page.css (layout1 bold).
 * Scope: .mega-store main content only — not .l1-header / admin.
 * v16: complete module + CMS prose DESIGN baseline for non-bold modern layouts
 *      (layout2/3), see "Non-bold modern layouts" section at end of file.
 * v17: graceful empty-content handling so sparse shops still read as a clean,
 *      complete site (see "Graceful empty-content" section at end of file).
 * v18: responsive content-module / CMS prose TABLES — image/layout tables
 *      scale (no scroll/blur), data tables keep touch-scroll on phones.
 * v19: Services / Features module (module_type=services_list) responsive
 *      card grid — see "SERVICES / FEATURES MODULE" section above.
 * v22: services_list optional photo per card (image field; icon fallback).
 * v23: CMS prose feature blocks, pricing tables, responsive #contentpagehere
 *      grid cols + desktop CMS page media/body split; hide empty headings.
 * v24: price_list module mobile horizontal inset — page edge + table cell padding.
 * v25: price_list gross header — accent color scoped to price cells only (not thead).
 * v26: price_list header typography unified; PDF + validity CSS vars on storefront.
 * v27: module gradient backgrounds (admin builder + storefront apply).
 * v37: price_list intro/footer notes outside table; long header wrap; layout2 CMS fallback.
 * v38: price_list platform CMS entry point; meta/row normalize; shop lang sync; admin cms_inline auto.
 * v39: module title spacing — flex gap on services_list (no margin collapse).
 * v47: module title band — em-scaled padding on colored head bands (all module types).
 * v20: equal-height multi-column module bands (body_2/3, body_6/7) on all
 *      layouts — see "MULTI-COLUMN MODULE BANDS" section above.
 * v21: hero legibility scrim for the legacy hero (layout2/3) + 4K copy cap —
 *      see "HERO legibility scrim" section above.
 */

.mega-store.layout-page {
  --mega-mod-max: min(100%, 75rem);
  --mega-mod-pad-x: clamp(0.75rem, 3vw, 1.25rem);
  --mega-mod-pad-y: clamp(0.85rem, 2.5vw, 1.35rem);
  --mega-mod-gap: clamp(0.75rem, 2.5vw, 1.25rem);
  --mega-mod-radius: 12px;
}

.mega-store.layout-page .layout-page__main,
.mega-store.layout-page .storefront__main,
.mega-store.layout-page #layout-main {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  box-sizing: border-box;
}

/* Module shells (all layouts) */
.mega-store .content-module,
.mega-store .storefront-bold__module-section,
.mega-store .storefront-bold__module-section--compact,
.mega-store .saf_about_wrapper,
.mega-store .saf_blog_wrapper,
.mega-store .bolxdatabooking {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  float: none !important;
  clear: both;
}

.mega-store .container.layout-page__module-row,
.mega-store .container.storefront-bold__module-row,
.mega-store .storefront-bold__module-container {
  width: 100% !important;
  max-width: var(--mega-mod-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--mega-mod-pad-x) !important;
  padding-right: var(--mega-mod-pad-x) !important;
  float: none !important;
  box-sizing: border-box !important;
}

/* Neutralize legacy Bootstrap grid inside modules (not site header) */
.mega-store .layout-page__main .content-module .row,
.mega-store .layout-page__main .storefront-bold__module-section .row,
.mega-store .layout-page__main .saf_about_wrapper .row,
.mega-store .layout-page__main .saf_about_detail .row,
.mega-store .layout-page__main .storefront-bold__module-row-inner {
  display: flex !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  float: none !important;
  gap: var(--mega-mod-gap);
}

.mega-store .layout-page__main .content-module [class*="col-"],
.mega-store .layout-page__main .saf_about_wrapper [class*="col-"],
.mega-store .layout-page__main .saf_about_detail [class*="col-"] {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  width: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
  position: relative !important;
}

@media (min-width: 576px) {
  .mega-store .layout-page__main .content-module .col-sm-6,
  .mega-store .layout-page__main .content-module [class*="col-sm-6"],
  .mega-store .layout-page__main .saf_about_wrapper .col-sm-6 {
    flex: 1 1 calc(50% - var(--mega-mod-gap)) !important;
    max-width: calc(50% - var(--mega-mod-gap) / 2) !important;
  }
}

@media (min-width: 768px) {
  .mega-store .layout-page__main .content-module .col-md-4,
  .mega-store .layout-page__main .content-module [class*="col-md-4"] {
    flex: 1 1 calc(33.333% - var(--mega-mod-gap)) !important;
    max-width: calc(33.333% - var(--mega-mod-gap) / 1.5) !important;
  }

  .mega-store .layout-page__main .content-module .col-md-6,
  .mega-store .layout-page__main .content-module [class*="col-md-6"] {
    flex: 1 1 calc(50% - var(--mega-mod-gap)) !important;
    max-width: calc(50% - var(--mega-mod-gap) / 2) !important;
  }
}

/* Fluid media inside module HTML */
.mega-store .layout-page__main .content-module img,
.mega-store .layout-page__main .content-module video,
.mega-store .layout-page__main .content-module iframe,
.mega-store .layout-page__main .content-module embed,
.mega-store .layout-page__main .content-module object,
.mega-store .layout-page__main .storefront-bold__prose img,
.mega-store .layout-page__main #contentpagehere img {
  max-width: 100% !important;
  height: auto !important;
  box-sizing: border-box;
}

.mega-store .layout-page__main .content-module table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
}

@media (max-width: 767.98px) {
  /* Only DATA tables scroll on phones; image/layout tables (handled below)
     stay as fit-to-width grids so images keep scaling with their captions. */
  .mega-store .layout-page__main .content-module table:not(:has(td img)) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Kill harmful inline floats in module bodies */
.mega-store .layout-page__main .saf_about_detail [style*="float:left"],
.mega-store .layout-page__main .saf_about_detail [style*="float: left"],
.mega-store .layout-page__main .saf_about_detail [style*="float:right"],
.mega-store .layout-page__main .saf_about_detail [style*="float: right"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 0 var(--mega-mod-gap) !important;
  box-sizing: border-box !important;
}

.mega-store .layout-page__main .saf_about_detail [style*="float"] img {
  display: block;
  width: 100%;
  max-width: 24rem;
  margin: 0 auto var(--mega-mod-gap);
}

/* Swiper / sliders inside modules */
.mega-store .layout-page__main .blogSlider,
.mega-store .layout-page__main .partner_slider,
.mega-store .layout-page__main .swiper-container {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
  box-sizing: border-box;
}

.mega-store .layout-page__main .swiper-wrapper,
.mega-store .layout-page__main .swiper-slide {
  box-sizing: border-box;
}

.mega-store .layout-page__main .swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* Image box / booking grids */
.mega-store .layout-page__main .bolxdatabooking,
.mega-store .layout-page__main .saf_blog_thumb {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  box-sizing: border-box !important;
}

.mega-store .layout-page__main .saf_blog_page_wrapper .row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--mega-mod-gap);
}

@media (max-width: 575.98px) {
  .mega-store .layout-page__main .saf_blog_page_wrapper .row {
    grid-template-columns: 1fr !important;
  }
}

/* Module split (bold) */
.mega-store .storefront-bold__module-split {
  display: flex;
  flex-direction: column;
  gap: var(--mega-mod-gap);
  width: 100%;
}

.mega-store .storefront-bold__module-split-media {
  width: 100%;
  margin: 0;
}

.mega-store .storefront-bold__module-split-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--mega-mod-radius);
}

@media (min-width: 768px) {
  .mega-store .storefront-bold__module-split--right,
  .mega-store .storefront-bold__module-split:not(.storefront-bold__module-split--top):not(.storefront-bold__module-split--bottom) {
    flex-direction: row;
    align-items: flex-start;
  }

  .mega-store .storefront-bold__module-split--right .storefront-bold__module-split-media {
    order: 2;
    flex: 0 0 min(42%, 22rem);
  }

  .mega-store .storefront-bold__module-split--right .storefront-bold__module-split-body {
    order: 1;
    flex: 1 1 auto;
    min-width: 0;
  }

  .mega-store .storefront-bold__module-split:not(.storefront-bold__module-split--right) .storefront-bold__module-split-media {
    flex: 0 0 min(42%, 22rem);
  }

  .mega-store .storefront-bold__module-split-body {
    flex: 1 1 auto;
    min-width: 0;
  }
}

/* ===== Layout2 / Layout3 skins (no storefront-bold) ===== */
body.mega-store.theme-layout2 .layout-page__main .content-module,
body.mega-store.theme-layout3 .layout-page__main .content-module {
  padding: var(--mega-mod-pad-y) var(--mega-mod-pad-x);
}

body.mega-store.theme-layout2 .saf_pagetitle .container,
body.mega-store.theme-layout3 .saf_pagetitle .container {
  max-width: var(--mega-mod-max);
}

body.mega-store.theme-layout2 .saf_blog_wrapper .saf_blog_thumb,
body.mega-store.theme-layout3 .saf_blog_wrapper .saf_blog_thumb {
  margin-bottom: var(--mega-mod-gap);
}

/* Ecom basic (empty theme class) */
body.mega-store:not(.theme-layout1):not(.theme-layout2):not(.theme-layout3) .layout-page__main .container {
  max-width: var(--mega-mod-max);
  margin-left: auto;
  margin-right: auto;
}

/* Forms in modules */
.mega-store .layout-page__main .content-module input[type="text"],
.mega-store .layout-page__main .content-module input[type="email"],
.mega-store .layout-page__main .content-module input[type="tel"],
.mega-store .layout-page__main .content-module select,
.mega-store .layout-page__main .content-module textarea {
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 575.98px) {
  .mega-store .layout-page__main .content-module .btn,
  .mega-store .layout-page__main .content-module button[type="submit"] {
    width: 100%;
    max-width: 100%;
  }
}

/* ===== Image gallery BEM (layout1/2/3 PHP markup) ===== */
.mega-store .l1-mod-gallery {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-gallery__grid {
  display: grid;
  grid-template-columns: repeat(var(--l1-gallery-cols, 2), minmax(0, 1fr));
  gap: var(--mega-mod-gap);
  width: 100%;
}

@media (max-width: 575.98px) {
  .mega-store .l1-mod-gallery__grid {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 576px) and (max-width: 767.98px) {
  .mega-store .l1-mod-gallery__grid {
    grid-template-columns: repeat(min(var(--l1-gallery-cols, 2), 2), minmax(0, 1fr));
  }
}

.mega-store .l1-mod-gallery__item,
.mega-store .l1-mod-gallery__slide {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-gallery__link {
  display: block;
  width: 100%;
  text-decoration: none;
}

.mega-store .l1-mod-gallery__img,
.mega-store .l1-mod-gallery__link img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--mega-mod-radius);
  box-sizing: border-box;
}

.mega-store .l1-mod-gallery__slider-wrap {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.mega-store .l1-mod-gallery__intro {
  margin-bottom: var(--mega-mod-gap);
}

/* Events cards — neutralize legacy inline floats */
.mega-store .layout-page__main .saf_blog_thumb[style*="float"],
.mega-store .layout-page__main .saf_blog_thumb [style*="float:left"],
.mega-store .layout-page__main .saf_blog_thumb [style*="float: left"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.mega-store .layout-page__main .saf_blog_thumb .blog_text[style*="height"] {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* ===== List slider + cards (events, products, book, image_box) ===== */
.mega-store .l1-mod-slider {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-slider__layout {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
  gap: var(--mega-mod-gap);
}

.mega-store .l1-mod-slider__aside-col,
.mega-store .l1-mod-slider__track-col {
  flex: 1 1 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

@media (min-width: 992px) {
  .mega-store .l1-mod-slider__aside-col {
    flex: 0 0 33.333%;
    max-width: 33.333%;
  }

  .mega-store .l1-mod-slider__track-col {
    flex: 0 0 66.666%;
    max-width: 66.666%;
  }
}

.mega-store .l1-mod-slider--compact {
  display: flex;
  flex-direction: column;
  gap: var(--mega-mod-gap);
}

.mega-store .l1-mod-slider__track,
.mega-store .l1-mod-slider__swiper {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.mega-store .l1-mod-slider__nav {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.mega-store .l1-mod-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  box-sizing: border-box;
  float: none !important;
}

.mega-store .l1-mod-card__media {
  display: block;
  width: 100%;
}

.mega-store .l1-mod-card__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--mega-mod-radius);
}

.mega-store .l1-mod-card__body,
.mega-store .l1-mod-card__excerpt {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: break-word;
}

.mega-store .l1-mod-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0;
  width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-card__price--paid {
  font-size: clamp(1rem, 3vw, 1.35rem);
  color: #c00;
  border: 2px solid #c00;
  border-radius: 50%;
  padding: 0.35rem 0.65rem;
  line-height: 1.2;
}

.mega-store .l1-mod-card__price--free {
  font-weight: 700;
  color: #0a7a0a;
}

.mega-store .l1-mod-card__badge {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.mega-store .l1-mod-card__title {
  margin: 0.5rem 0;
  font-size: clamp(1rem, 2.5vw, 1.15rem);
}

.mega-store .l1-mod-card__title a {
  text-decoration: none;
  color: inherit;
}

.mega-store .l1-mod-card__excerpt {
  margin-bottom: 0.75rem;
  max-height: none;
  overflow: visible;
}

.mega-store .l1-mod-card__cta {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-top: auto;
  box-sizing: border-box;
}

.mega-store .l1-mod-card__more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.5rem;
}

.mega-store .l1-mod-card__more svg {
  width: 0.65rem;
  height: auto;
  flex-shrink: 0;
}

/* Brand slider */
.mega-store .l1-mod-brands {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-brands__slider {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
}

.mega-store .l1-mod-brands__item img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

/* ===== CMS content module ===== */
.mega-store .l1-mod-content__body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: break-word;
}

.mega-store .l1-mod-content__head .l1-mod-content__title,
.mega-store .l1-mod-content__head .l1-mod-price-list__title,
.mega-store .l1-mod-price-list__head .l1-mod-price-list__title,
.mega-store .l1-mod-gallery__head .l1-mod-gallery__title,
.mega-store .storefront-bold__module-split-head .storefront-bold__module-split-title {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

/* Module title band — em-scaled padding stays stable when font size / theme bg changes */
.mega-store {
  --mega-mod-head-font: clamp(1.15rem, 0.92rem + 0.55vw, 1.65rem);
  --mega-mod-head-pad-y: 0.55em;
  --mega-mod-head-pad-x: 0.85em;
  --mega-mod-head-line: 1.3;
  --mega-mod-head-radius: var(--mega-mod-radius, 10px);
}

.mega-store .l1-mod-content__head,
.mega-store .l1-mod-services__head,
.mega-store .l1-mod-price-list__head,
.mega-store .l1-mod-gallery__head,
.mega-store .storefront-bold__module-split-head.header,
.mega-store header.storefront-bold__module-split-head {
  display: block;
  position: static;
  float: none;
  clear: both;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-size: var(--mega-mod-head-font);
  line-height: var(--mega-mod-head-line);
  padding: var(--mega-mod-head-pad-y) var(--mega-mod-head-pad-x);
  margin: 0;
  background-clip: padding-box;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.mega-store .l1-mod-price-list .l1-mod-content__head,
.mega-store .l1-mod-price-list .l1-mod-price-list__head {
  --mega-mod-head-font: clamp(1.05rem, 0.88rem + 0.45vw, 1.45rem);
  --mega-mod-head-pad-y: 0.5em;
  --mega-mod-head-pad-x: 0.85em;
}

/* Theme / admin header background — keep text inset inside the colored band */
.mega-store .l1-mod-content__head[style*="background"],
.mega-store .l1-mod-services__head[style*="background"],
.mega-store .l1-mod-price-list__head[style*="background"],
.mega-store .l1-mod-gallery__head[style*="background"],
.mega-store .storefront-bold__module-split-head[style*="background"] {
  border-radius: var(--mega-mod-head-radius);
}

.mega-store [id^="module_no_"] .l1-mod-content__head,
.mega-store [id^="module_no_"] .l1-mod-services__head,
.mega-store [id^="module_no_"] .l1-mod-price-list__head,
.mega-store [id^="module_no_"] .l1-mod-gallery__head,
.mega-store [id^="module_no_"] .storefront-bold__module-split-head {
  box-sizing: border-box;
}

/* Layout-level title → body stack (all shops, layout1/2/3, every module type) */
.mega-store .l1-mod-content__stack {
  display: flex;
  flex-direction: column;
  gap: var(--mega-mod-stack-gap, clamp(1.25rem, 2.5vw, 1.75rem));
  width: 100%;
  min-width: 0;
  background: transparent;
}

.mega-store .l1-mod-content__stack > .l1-mod-content__head,
.mega-store .l1-mod-content__stack > .l1-mod-services__head,
.mega-store .l1-mod-content__stack > .l1-mod-price-list__head {
  margin: 0;
  flex: 0 0 auto;
}

.mega-store .l1-mod-content__stack > .l1-mod-content__body,
.mega-store .l1-mod-content__stack > .l1-mod-services__grid,
.mega-store .l1-mod-content__stack > .l1-mod-price-list__print-target,
.mega-store .l1-mod-content__stack > .l1-mod-price-list__pdf {
  flex: 0 0 auto;
  min-width: 0;
  margin-top: 0;
  background: transparent;
}

.mega-store .l1-mod-services.l1-mod-content .l1-mod-content__stack {
  --mega-mod-stack-gap: clamp(1.35rem, 2.8vw, 2.15rem);
}

.mega-store .l1-mod-price-list .l1-mod-content__stack {
  --mega-mod-stack-gap: clamp(0.85rem, 2vw, 1.15rem);
}

@media (min-width: 992px) {
  .mega-store .l1-mod-services.l1-mod-content .l1-mod-content__stack {
    --mega-mod-stack-gap: clamp(1.75rem, 1.2vw + 1rem, 2.75rem);
  }
}

/* Legacy direct-child title spacing (modules without __stack wrapper) */
.mega-store .l1-mod-content:not(.l1-mod-services):not(.l1-mod-price-list) > .l1-mod-content__head,
.mega-store .l1-mod-content:not(.l1-mod-services):not(.l1-mod-price-list) .storefront-bold__module-container > .l1-mod-content__head {
  margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
}

@media (min-width: 992px) {
  .mega-store .l1-mod-content:not(.l1-mod-services):not(.l1-mod-price-list) > .l1-mod-content__head,
  .mega-store .l1-mod-content:not(.l1-mod-services):not(.l1-mod-price-list) .storefront-bold__module-container > .l1-mod-content__head {
    margin-bottom: clamp(1.35rem, 1vw + 0.85rem, 2.25rem);
  }
}

/* ===== Marketing popup modal ===== */
.mega-store .l1-mod-popup__dialog {
  width: calc(100% - 1.5rem);
  max-width: 36rem;
  margin: 1rem auto;
}

@media (min-width: 576px) {
  .mega-store .l1-mod-popup__dialog.modal-lg {
    max-width: 48rem;
  }
}

.mega-store .l1-mod-popup__content {
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

.mega-store .l1-mod-popup__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.mega-store .l1-mod-popup__body img,
.mega-store .l1-mod-popup__body iframe,
.mega-store .l1-mod-popup__body video {
  max-width: 100%;
  height: auto;
}

.mega-store .l1-mod-popup__footer .l1-mod-popup__btn {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (min-width: 576px) {
  .mega-store .l1-mod-popup__footer .l1-mod-popup__btn {
    width: auto;
  }
}

.mega-store .l1-mod-popup__header {
  display: block;
  position: relative;
  padding-right: 2.5rem;
}

.mega-store .l1-mod-popup__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
}

/* ===== Ecom basic (legacy template) — safety net for floats / overflow ===== */
body.mega-store.theme-ecom-basic {
  --mega-mod-max: min(100%, 75rem);
  --mega-mod-pad-x: clamp(0.75rem, 3vw, 1.25rem);
  --mega-mod-gap: clamp(0.75rem, 2.5vw, 1.25rem);
}

body.mega-store.theme-ecom-basic .container {
  max-width: var(--mega-mod-max);
}

body.mega-store.theme-ecom-basic .saf_about_wrapper,
body.mega-store.theme-ecom-basic .saf_blog_wrapper,
body.mega-store.theme-ecom-basic .saf_partner_wrapper,
body.mega-store.theme-ecom-basic .saf_about_detail,
body.mega-store.theme-ecom-basic .saf_blog_thumb {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  float: none !important;
}

body.mega-store.theme-ecom-basic .saf_about_wrapper img,
body.mega-store.theme-ecom-basic .saf_blog_wrapper img,
body.mega-store.theme-ecom-basic .module_img_gallery,
body.mega-store.theme-ecom-basic #contentpagehere img {
  max-width: 100% !important;
  height: auto !important;
}

body.mega-store.theme-ecom-basic .saf_about_detail [style*="float:left"],
body.mega-store.theme-ecom-basic .saf_about_detail [style*="float: left"],
body.mega-store.theme-ecom-basic .saf_blog_thumb [style*="float"] {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
}

body.mega-store.theme-ecom-basic .blogSlider,
body.mega-store.theme-ecom-basic .partner_slider,
body.mega-store.theme-ecom-basic .swiper-container {
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden;
}

body.mega-store.theme-ecom-basic .saf_about_detail .row,
body.mega-store.theme-ecom-basic .saf_blog_wrapper .row {
  display: flex;
  flex-wrap: wrap;
  margin-left: 0;
  margin-right: 0;
  gap: var(--mega-mod-gap);
}

body.mega-store.theme-ecom-basic .saf_about_detail [class*="col-"],
body.mega-store.theme-ecom-basic .saf_blog_wrapper [class*="col-"] {
  flex: 1 1 100%;
  max-width: 100%;
  min-width: 0;
  padding-left: 0;
  padding-right: 0;
  float: none !important;
}

/* ===== Module row chrome (mega-module-row / mega-module-slot) ===== */
.mega-store .mega-module-row {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  float: none !important;
}

.mega-store .mega-module-slot {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* ===== Deep CMS prose (all layouts + ecom basic pages) ===== */
.mega-store .mega-commerce--cms #contentpagehere,
.mega-store .mega-commerce--cms .l1-cms__prose,
.mega-store .l1-page-content__prose,
.mega-store #contentpagehere.l1-cms__prose,
.mega-store .l1-mod-content__body,
.mega-store .storefront-bold__prose {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  box-sizing: border-box;
}

.mega-store .mega-commerce--cms #contentpagehere img,
.mega-store .l1-cms__prose img,
.mega-store #contentpagehere img,
.mega-store .storefront-bold__prose img {
  max-width: 100% !important;
  height: auto !important;
}

.mega-store .mega-commerce--cms #contentpagehere iframe,
.mega-store .mega-commerce--cms #contentpagehere video,
.mega-store .mega-commerce--cms #contentpagehere embed,
.mega-store #contentpagehere iframe,
.mega-store .l1-cms__prose iframe {
  max-width: 100%;
  width: 100%;
  height: auto;
  min-height: 12rem;
  aspect-ratio: 16 / 9;
  border: 0;
}

.mega-store table.l1-cms__table,
.mega-store .l1-cms__prose table,
.mega-store #contentpagehere table,
.mega-store .storefront-bold__prose table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
}

/* ---------------------------------------------------------------------------
   v18 — Responsive content-module / CMS prose TABLES (all layouts)
   ---------------------------------------------------------------------------
   Editors often use tables to lay out images side by side (team photos,
   before/after, "two service columns"). The old rule forced ALL such tables
   to display:block + overflow-x:auto at every width, so on phones they could
   overflow/scroll and on 4K they could blow up.

   Treatment:
   - Image/layout tables (detected via :has(td img)) stay as REAL fit-to-width
     tables. Each image keeps the same column as its caption, scales DOWN on
     small phones (no horizontal scroll) and is capped by the module container
     on 4K (no upscaling blur). Rounded corners for polish.
   - Genuine DATA tables (no images) keep a touch-scroll fallback on phones.
   Layout1 bold's #contentpagehere card treatment (storefront-modern-bem.css)
   is more specific and still wins where it already applies.
--------------------------------------------------------------------------- */
.mega-store .layout-page__main .content-module table:has(td img),
.mega-store table.l1-cms__table:has(td img),
.mega-store .l1-cms__prose table:has(td img),
.mega-store #contentpagehere table:has(td img),
.mega-store .storefront-bold__prose table:has(td img) {
  display: table;
  table-layout: fixed;
  width: 100%;
  max-width: 100%;
}

.mega-store .layout-page__main .content-module table:has(td img) td,
.mega-store table.l1-cms__table:has(td img) td,
.mega-store .l1-cms__prose table:has(td img) td,
.mega-store #contentpagehere table:has(td img) td,
.mega-store .storefront-bold__prose table:has(td img) td {
  vertical-align: top;
  padding: clamp(0.3rem, 1.4vw, 0.85rem);
  text-align: center;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.mega-store .layout-page__main .content-module table:has(td img) td img,
.mega-store table.l1-cms__table:has(td img) td img,
.mega-store .l1-cms__prose table:has(td img) td img,
.mega-store #contentpagehere table:has(td img) td img,
.mega-store .storefront-bold__prose table:has(td img) td img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: clamp(8px, 1.4vw, 14px);
}

/* ---------------------------------------------------------------------------
   v49 — Team / profile tables → card grid (content module, all layouts)
   --------------------------------------------------------------------------- */
.mega-store .visually-hidden,
.mega-store .l1-page-content__pdf-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.mega-store .l1-cms__team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(1.15rem, 3vw, 2rem);
  margin: clamp(1rem, 2.5vw, 1.75rem) 0;
  align-items: stretch;
}

.mega-store .l1-cms__team-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: clamp(12px, 1.8vw, 18px);
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.94) 100%);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 clamp(8px, 2vw, 16px) clamp(20px, 4vw, 32px) rgba(15, 23, 42, 0.08);
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.mega-store .l1-cms__team-card:hover {
  transform: translateY(-3px);
  border-color: rgba(var(--skin-accent-rgb, 15, 118, 110), 0.28);
  box-shadow:
    0 2px 4px rgba(15, 23, 42, 0.08),
    0 clamp(12px, 3vw, 24px) clamp(28px, 5vw, 40px) rgba(15, 23, 42, 0.12);
}

.mega-store .l1-cms__team-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: rgba(15, 23, 42, 0.04);
}

.mega-store .l1-cms__team-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  border-radius: 0;
  margin: 0;
}

.mega-store .l1-cms__team-card__body {
  flex: 1 1 auto;
  padding: clamp(0.85rem, 2vw, 1.15rem) clamp(0.95rem, 2.2vw, 1.25rem) clamp(1rem, 2.4vw, 1.35rem);
  text-align: center;
  font-size: clamp(0.92rem, 0.88rem + 0.18vw, 1.02rem);
  line-height: 1.5;
  color: var(--skin-text, rgba(15, 23, 42, 0.88));
}

.mega-store .l1-cms__team-card__body a {
  color: var(--skin-accent, var(--sf-module-accent, #0f766e));
  font-weight: 600;
  text-decoration: none;
}

.mega-store .l1-cms__team-card__body a:hover {
  text-decoration: underline;
}

.mega-store table.l1-cms__team-table {
  border: 0;
  background: transparent;
}

.mega-store table.l1-cms__team-table tbody {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: clamp(1.15rem, 3vw, 2rem);
}

.mega-store table.l1-cms__team-table tr {
  display: contents;
}

.mega-store table.l1-cms__team-table td {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  padding: clamp(0.85rem, 2vw, 1.15rem);
  border-radius: clamp(12px, 1.8vw, 18px);
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 clamp(6px, 1.5vw, 12px) clamp(18px, 3vw, 28px) rgba(15, 23, 42, 0.08);
}

.mega-store table.l1-cms__team-table td img {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: clamp(8px, 1.2vw, 12px);
}

/* Team grid — full photos on small phones (build 20260601-team-mobile-v2) */
@media (max-width: 575.98px) {
  .mega-store .l1-cms__team-grid,
  .mega-store table.l1-cms__team-table tbody {
    grid-template-columns: 1fr !important;
    gap: 1.15rem !important;
  }

  .mega-store .l1-cms__team-card__media {
    aspect-ratio: auto;
    min-height: 0;
    height: auto;
    max-height: none;
    padding: 0.35rem 0.5rem 0;
    background: rgba(15, 23, 42, 0.03);
  }

  .mega-store .l1-cms__team-card__media img,
  .mega-store .l1-cms__team-grid img[width],
  .mega-store .l1-cms__team-grid img[style],
  .mega-store #contentpagehere .l1-cms__team-grid img,
  .mega-store .storefront-bold__module-body .l1-cms__team-grid img,
  .mega-store [id^="module_no_"] .l1-cms__team-card__media img,
  .mega-store [id^="module_no_"] .l1-cms__team-grid img {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(78vw, 420px) !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }

  .mega-store table.l1-cms__team-table td img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 200px;
    aspect-ratio: 4 / 5;
  }
}

/* Genuine data tables (no images): horizontal touch-scroll on phones only. */
@media (max-width: 767.98px) {
  .mega-store table.l1-cms__table:not(:has(td img)),
  .mega-store .l1-cms__prose table:not(:has(td img)),
  .mega-store #contentpagehere table:not(:has(td img)),
  .mega-store .storefront-bold__prose table:not(:has(td img)) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* =====================================================================
   v19 — SERVICES / FEATURES MODULE  (module_type=services_list)
   ---------------------------------------------------------------------
   A reusable repeater: heading + description + optional icon + optional
   link, rendered as a responsive card grid on EVERY layout. Columns come
   from per_row (--svc-cols, 2-4): 1 col on phones, 2 on small tablets,
   up to per_row on desktop, capped by the module container on 4K.
   Inherits per-module theme colors via --sf-module-* custom properties.
   ===================================================================== */

.mega-store .l1-mod-services__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.85rem, 2vw, 1.5rem);
  width: 100%;
  margin: 0;
}
@media (min-width: 576px) {
  .mega-store .l1-mod-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 992px) {
  .mega-store .l1-mod-services__grid {
    grid-template-columns: repeat(var(--svc-cols, 3), minmax(0, 1fr));
  }
  .mega-store .l1-mod-services__grid--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.mega-store .l1-mod-services__item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: clamp(1rem, 2.2vw, 1.6rem);
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: clamp(10px, 1.4vw, 16px);
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  min-width: 0;
}
.mega-store .l1-mod-services__item--link:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.12);
  border-color: rgba(15, 23, 42, 0.18);
}

.mega-store .l1-mod-services__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(2.6rem, 5vw, 3.25rem);
  height: clamp(2.6rem, 5vw, 3.25rem);
  border-radius: 50%;
  font-size: clamp(1.1rem, 2.4vw, 1.45rem);
  line-height: 1;
  background: var(--sf-module-header-bg, rgba(15, 23, 42, 0.06));
  color: var(--sf-module-header-color, var(--sf-module-text, inherit));
}

.mega-store .l1-mod-services__photo-wrap {
  width: 100%;
  margin: 0 0 0.35rem;
  border-radius: clamp(8px, 1.2vw, 12px);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: rgba(15, 23, 42, 0.04);
}
.mega-store .l1-mod-services__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.mega-store .l1-mod-services--size-small .l1-mod-services__photo-wrap {
  aspect-ratio: 16 / 10;
  max-height: 140px;
}
.mega-store .l1-mod-services--size-large .l1-mod-services__photo-wrap {
  aspect-ratio: 4 / 3;
  max-height: 220px;
}

.mega-store .l1-mod-services__heading {
  margin: 0;
  font-size: clamp(1.05rem, 1.2rem + 0.4vw, 1.4rem);
  line-height: 1.25;
  color: var(--sf-module-text, inherit);
}

.mega-store .l1-mod-services__desc {
  margin: 0;
  color: var(--sf-module-text, inherit);
  opacity: 0.85;
  font-size: clamp(0.92rem, 0.9rem + 0.2vw, 1.02rem);
  line-height: 1.6;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* Whole-card link (language-neutral): stretched anchor + hover arrow. */
.mega-store .l1-mod-services__stretch {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  font-size: 0;
  overflow: hidden;
}
.mega-store .l1-mod-services__arrow {
  position: absolute;
  top: clamp(0.75rem, 2vw, 1.1rem);
  right: clamp(0.75rem, 2vw, 1.1rem);
  font-size: 1.5rem;
  line-height: 1;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  color: var(--sf-module-text, inherit);
}
.mega-store .l1-mod-services__item--link:hover .l1-mod-services__arrow {
  opacity: 0.7;
  transform: translateX(0);
}

/* Compact half-column slots (body_2/3/6/7): never more than 2 columns. */
.mega-store .storefront-bold__module-section--compact .l1-mod-services__grid {
  grid-template-columns: 1fr;
}
@media (min-width: 992px) {
  .mega-store .storefront-bold__module-section--compact .l1-mod-services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ---- Display size presets (admin "Display Size") -------------------------
   "dynamic" = the fluid clamp defaults above. small/medium/large pin the
   icon, typography and padding so the block never looks oversized on big
   screens. These win over the base (2 classes vs 1).                        */
.mega-store .l1-mod-services--size-small .l1-mod-services__item {
  padding: 0.9rem;
  gap: 0.4rem;
}
.mega-store .l1-mod-services--size-small .l1-mod-services__icon {
  width: 2.4rem;
  height: 2.4rem;
  font-size: 1rem;
}
.mega-store .l1-mod-services--size-small .l1-mod-services__heading {
  font-size: 1.02rem;
}
.mega-store .l1-mod-services--size-small .l1-mod-services__desc {
  font-size: 0.9rem;
}

.mega-store .l1-mod-services--size-medium .l1-mod-services__item {
  padding: 1.25rem;
  gap: 0.5rem;
}
.mega-store .l1-mod-services--size-medium .l1-mod-services__icon {
  width: 3rem;
  height: 3rem;
  font-size: 1.25rem;
}
.mega-store .l1-mod-services--size-medium .l1-mod-services__heading {
  font-size: 1.2rem;
}
.mega-store .l1-mod-services--size-medium .l1-mod-services__desc {
  font-size: 0.98rem;
}

.mega-store .l1-mod-services--size-large .l1-mod-services__item {
  padding: 1.75rem;
  gap: 0.65rem;
}
.mega-store .l1-mod-services--size-large .l1-mod-services__icon {
  width: 3.75rem;
  height: 3.75rem;
  font-size: 1.6rem;
}
.mega-store .l1-mod-services--size-large .l1-mod-services__heading {
  font-size: 1.5rem;
}
.mega-store .l1-mod-services--size-large .l1-mod-services__desc {
  font-size: 1.08rem;
}

.mega-store .l1-mod-services--size-xl .l1-mod-services__photo-wrap {
  aspect-ratio: 4 / 3;
  max-height: clamp(160px, 18vw, 260px);
}

.mega-store .l1-mod-services--size-dynamic .l1-mod-services__photo-wrap {
  max-height: clamp(120px, 28vw, 200px);
}

/* ---- Content module image size presets (admin module_size on type=content) ---- */
.mega-store .l1-mod-content--size-dynamic .storefront-bold__prose img,
.mega-store .l1-mod-content--size-dynamic .storefront-bold__prose table td img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: clamp(120px, 32vw, 280px);
}

.mega-store .l1-mod-content--size-small .storefront-bold__prose img,
.mega-store .l1-mod-content--size-small .storefront-bold__prose table td img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: clamp(72px, 20vw, 120px);
}

.mega-store .l1-mod-content--size-medium .storefront-bold__prose img,
.mega-store .l1-mod-content--size-medium .storefront-bold__prose table td img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: clamp(100px, 24vw, 180px);
}

.mega-store .l1-mod-content--size-large .storefront-bold__prose img,
.mega-store .l1-mod-content--size-large .storefront-bold__prose table td img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: clamp(140px, 28vw, 240px);
}

.mega-store .l1-mod-content--size-xl .storefront-bold__prose img,
.mega-store .l1-mod-content--size-xl .storefront-bold__prose table td img {
  width: auto;
  max-width: min(100%, 420px);
  height: auto;
  max-height: clamp(160px, 22vw, 320px);
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 1600px) {
  .mega-store .l1-mod-content--size-xl .storefront-bold__prose table:has(td img) {
    max-width: min(100%, 56rem);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Build: 20260531-platform-modules-v48 */

/* =====================================================================
   v20 — MULTI-COLUMN MODULE BANDS (body_2/3 & body_6/7 two-column rows)
   ---------------------------------------------------------------------
   Paired module columns should read as a tidy grid: equal-height cards,
   a consistent vertical gap when they stack on phones, and the existing
   4K container cap. Equal-height previously existed ONLY for layout1's
   home "tail"; this generalises it to every two-column module band on
   every layout. Additive — it does not change the card look/padding that
   each layout already defines.
   ===================================================================== */
.mega-store .layout-page__module-row > .row,
.mega-store .storefront-bold__module-row > .row {
  align-items: stretch;
  row-gap: var(--mega-mod-gap, 1rem);
}
@media (min-width: 576px) {
  .mega-store .layout-page__module-row > .row.align-items-stretch > [class*="col-"],
  .mega-store .storefront-bold__module-row > .row.align-items-stretch > [class*="col-"] {
    display: flex;
  }
  .mega-store .layout-page__module-row > .row.align-items-stretch > [class*="col-"] > .content-module,
  .mega-store .storefront-bold__module-row > .row.align-items-stretch > [class*="col-"] > .content-module {
    width: 100%;
    height: 100%;
  }
  /* Let the inner section fill the card so content distributes evenly. */
  .mega-store .layout-page__module-row > .row.align-items-stretch > [class*="col-"] > .content-module > .storefront-bold__module-section,
  .mega-store .storefront-bold__module-row > .row.align-items-stretch > [class*="col-"] > .content-module > .storefront-bold__module-section {
    height: 100%;
  }
}

/* =====================================================================
   v21 — HERO legibility scrim (legacy hero used by layout2 / layout3)
   ---------------------------------------------------------------------
   layout1 bold already has .l1-hero__shade. The legacy .hero__slide had
   only text-shadows, so titles/copy/buttons could be hard to read over a
   bright or busy uploaded photo. Add a subtle gradient overlay (only when
   the slide has a background image) and keep the copy above it. The slide
   is already background-size:cover, so 4K crops (no stretch); we also cap
   the copy width on ultra-wide. Scoped :not(.storefront-bold) → layout2/3.
   ===================================================================== */
body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .hero__slide,
body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .saf_hero_slide {
  position: relative;
}
body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .hero__slide:not(.hero__slide--no-image)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg,
    rgba(0, 0, 0, 0.34) 0%,
    rgba(0, 0, 0, 0.12) 38%,
    rgba(0, 0, 0, 0.20) 70%,
    rgba(0, 0, 0, 0.46) 100%);
}
/* Keep the slide copy above the scrim. */
body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .hero__slide-inner,
body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .hero__copy {
  position: relative;
  z-index: 2;
}
/* Ultra-wide: cap the copy container so hero text doesn't stretch on 4K. */
@media (min-width: 1600px) {
  body.storefront--modern:not(.storefront-bold) .hero.saf_hero_wrapper .hero__slide-inner.container {
    max-width: 1320px;
  }
}

/* =====================================================================
   v22 — Card media uniformity + "Read More" affordance (.l1-mod-card)
   ---------------------------------------------------------------------
   image_box / blog / events / product cards already flex to equal CARD
   height, but their thumbnails used height:auto, so images of different
   sizes left the media areas uneven and titles/Read-More didn't line up
   across a row. Give the media a consistent aspect ratio (object-fit
   cover crops cleanly — no stretch/crash) so every card matches, and add
   a subtle hover nudge to the Read More arrow. The @supports guard keeps
   browsers without aspect-ratio on the previous safe behaviour.
   ===================================================================== */
.mega-store .l1-mod-card__media {
  overflow: hidden;
  border-radius: var(--mega-mod-radius);
}
@supports (aspect-ratio: 1 / 1) {
  .mega-store .l1-mod-card__media {
    aspect-ratio: 16 / 10;
  }
  .mega-store .l1-mod-card__media img {
    height: 100%;
  }
}
.mega-store .l1-mod-card__more {
  transition: gap 0.2s ease, color 0.2s ease;
}
.mega-store .l1-mod-card__more svg {
  transition: transform 0.2s ease;
}
.mega-store .l1-mod-card__more:hover svg {
  transform: translateX(3px);
}

/* =====================================================================
   v23 — Inner-page title banner parity for layout2 / layout3
   ---------------------------------------------------------------------
   The page-title band (.l1-pagetitle / .sf-pagetitle: heading + breadcrumb
   shown on CMS pages, listings, etc.) is fully polished ONLY for
   storefront-bold.theme-layout1. Layout2/3 emit the same markup but those
   rules don't match, so their inner-page banners fell back to legacy,
   under-styled output. Give the NON-bold modern layouts a clean, fluid,
   centered banner that matches the rest of the platform. Scoped to
   body.storefront--modern:not(.storefront-bold) so layout1 bold and
   ecom-basic are untouched. Layout2/3 use a sticky (not fixed/transparent)
   header, so no header offset is needed here.
   ===================================================================== */
body.storefront--modern:not(.storefront-bold) .l1-pagetitle,
body.storefront--modern:not(.storefront-bold) .sf-pagetitle {
  position: relative;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  background-color: var(--skin-pagetitle-bg, #1e293b);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle .saf_img_overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: rgba(15, 23, 42, 0.48);
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--mega-mod-max, 1200px);
  margin: 0 auto;
  padding: clamp(1.25rem, 4vw, 2.75rem) var(--mega-mod-pad-x, 1rem);
  box-sizing: border-box;
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__stack,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle__grid {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__heading,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle .pagetitleheading {
  margin: 0;
  font-size: clamp(1.3rem, 3.4vw, 2.1rem);
  line-height: 1.2;
  color: #fff;
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__breadcrumb,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle .breadcrumb {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: clamp(0.8rem, 2.2vw, 0.95rem);
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__breadcrumb li,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle .breadcrumb li {
  color: rgba(255, 255, 255, 0.72);
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__breadcrumb a,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle .breadcrumb a {
  color: rgba(255, 255, 255, 0.88);
  text-decoration: none;
}

body.storefront--modern:not(.storefront-bold) .l1-pagetitle__breadcrumb a:hover,
body.storefront--modern:not(.storefront-bold) .l1-pagetitle .breadcrumb a:hover {
  color: #fff;
  text-decoration: underline;
}

/* =====================================================================
   v24 — Product listing (PLP) card STRUCTURAL baseline for layout2/3
   ---------------------------------------------------------------------
   The product card scaffolding (flex column, equal height, uniform image
   aspect ratio, .pi-text padding) lives in the ecom-basic block above,
   which is scoped :not(.theme-layout2):not(.theme-layout3). So layout2/3
   only received their own SKIN (border/colour/font) and were missing the
   responsive structure -> uneven images, no text padding, unequal heights.
   This block restores ONLY the structural properties for layout2/3 (no
   border/background/shadow), so their skin files stay in full control of
   the look while the grid lines up cleanly on every device.
   ===================================================================== */
.mega-store.theme-layout2 .product-item.mega-commerce__card,
.mega-store.theme-layout3 .product-item.mega-commerce__card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.mega-store.theme-layout2 .product-item .pi-pic,
.mega-store.theme-layout3 .product-item .pi-pic {
  position: relative;
  overflow: hidden;
}

.mega-store.theme-layout2 .product-item .pi-pic img,
.mega-store.theme-layout3 .product-item .pi-pic img {
  width: 100%;
  height: auto;
  display: block;
}

@supports (aspect-ratio: 1 / 1) {
  .mega-store.theme-layout2 .product-item .pi-pic img,
  .mega-store.theme-layout3 .product-item .pi-pic img {
    aspect-ratio: 1 / 1;
    height: 100%;
    object-fit: cover;
  }
}

.mega-store.theme-layout2 .product-item .pi-text,
.mega-store.theme-layout3 .product-item .pi-text {
  flex: 1 1 auto;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mega-store.theme-layout2 .product-item .pi-text h5,
.mega-store.theme-layout3 .product-item .pi-text h5 {
  font-size: clamp(0.9rem, 2.5vw, 1rem);
  line-height: 1.35;
  margin: 0;
}

/* PLP grid row gap so cards breathe vertically on wrap (layout2/3) */
.mega-store.theme-layout2 .mega-commerce--listing .product-list .row,
.mega-store.theme-layout3 .mega-commerce--listing .product-list .row {
  row-gap: var(--mega-mod-gap, 1rem);
}

/* =====================================================================
   v25 — Product detail (PDP) gallery image + buy-box hardening
   ---------------------------------------------------------------------
   ALL layouts render the main product image as <img class="product-big-img">
   inside .product-pic-zoom, but every existing rule targeted ".product-large
   img" (a class that isn't in this markup). So the main PDP image had NO
   responsive width rule of its own — it only survived if a global img rule
   happened to constrain it. Pin it for every layout so it can never overflow
   on phones or balloon on 4K. Universal + safe (natural responsive defaults).
   ===================================================================== */
.mega-store .product-pic-zoom {
  width: 100%;
  max-width: 100%;
}

.mega-store .product-pic-zoom img,
.mega-store .product-big-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}

.mega-store .product-thumbs-track .pt img {
  display: block;
  width: 100%;
  height: auto;
}

/* Buy-box (qty + Add to Cart): on non-bold layouts (layout2/3 + ecom-basic)
   let the row wrap and make the CTA comfortably tappable on phones. Layout1
   bold keeps its own sf-pdp buy-box styling (excluded via :not). */
.mega-store:not(.storefront-bold) .product-details .quantity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
}

@media (max-width: 575.98px) {
  .mega-store:not(.storefront-bold) .product-details .quantity .pd-cart,
  .mega-store:not(.storefront-bold) .product-details .quantity .primary-btn {
    flex: 1 1 100%;
    text-align: center;
  }
}

/* =====================================================================
   v26 — Checkout form responsiveness for layout2 / layout3
   ---------------------------------------------------------------------
   The full checkout baseline (input sizing, labels, field spacing, order
   summary list, payment-method labels, mobile column stacking, full-width
   buttons) lived in the ecom-basic block, scoped
   :not(.theme-layout2):not(.theme-layout3). So layout2/3 checkout fields
   were unsized (could overflow, iOS zoom on focus) and the summary/payment
   rows were unstyled. Mirror the STRUCTURE for layout2/3 and use the skin
   tokens (--skin-border / --skin-radius) for borders so it matches each
   layout's identity rather than forcing a generic look. font-size:16px on
   inputs prevents the iOS auto-zoom on focus.
   ===================================================================== */
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form input[type="text"],
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form input[type="email"],
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form input[type="tel"],
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form input[type="password"],
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form select,
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form textarea,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form input[type="text"],
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form input[type="email"],
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form input[type="tel"],
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form input[type="password"],
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form select,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form textarea {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  border: 1px solid var(--skin-border, rgba(15, 23, 42, 0.15));
  border-radius: var(--skin-radius, 12px);
  padding: 0.55rem 0.85rem;
  box-sizing: border-box;
}

.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form label,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
}

.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form .col-lg-6,
.mega-store.theme-layout2 .mega-commerce--checkout .checkout-form .col-lg-12,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form .col-lg-6,
.mega-store.theme-layout3 .mega-commerce--checkout .checkout-form .col-lg-12 {
  margin-bottom: 0.65rem;
}

.mega-store.theme-layout2 .mega-commerce--checkout .order-table,
.mega-store.theme-layout3 .mega-commerce--checkout .order-table {
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
}

.mega-store.theme-layout2 .mega-commerce--checkout .order-table li,
.mega-store.theme-layout3 .mega-commerce--checkout .order-table li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--skin-border, rgba(15, 23, 42, 0.08));
}

.mega-store.theme-layout2 .mega-commerce--checkout .payment-method-label,
.mega-store.theme-layout3 .mega-commerce--checkout .payment-method-label {
  display: block;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--skin-border, rgba(15, 23, 42, 0.12));
  border-radius: var(--skin-radius, 12px);
  margin-top: 0.35rem;
  cursor: pointer;
}

@media (max-width: 991.98px) {
  .mega-store.theme-layout2 .mega-commerce--checkout .checkout-form > .row,
  .mega-store.theme-layout3 .mega-commerce--checkout .checkout-form > .row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mega-store.theme-layout2 .mega-commerce--checkout .checkout-form > .row > [class*="col-lg-"],
  .mega-store.theme-layout3 .mega-commerce--checkout .checkout-form > .row > [class*="col-lg-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }
}

@media (max-width: 767.98px) {
  .mega-store.theme-layout2 .mega-commerce--checkout .checkout-form .row .col-lg-6,
  .mega-store.theme-layout2 .mega-commerce--checkout .checkout-form .row .col-sm-6,
  .mega-store.theme-layout2 .mega-commerce--checkout .checkout-form .row .col-sm-12,
  .mega-store.theme-layout3 .mega-commerce--checkout .checkout-form .row .col-lg-6,
  .mega-store.theme-layout3 .mega-commerce--checkout .checkout-form .row .col-sm-6,
  .mega-store.theme-layout3 .mega-commerce--checkout .checkout-form .row .col-sm-12 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store.theme-layout2 .mega-commerce--checkout .order-btn .place-btn,
  .mega-store.theme-layout2 .mega-commerce--checkout .order-btn .site-btn,
  .mega-store.theme-layout3 .mega-commerce--checkout .order-btn .place-btn,
  .mega-store.theme-layout3 .mega-commerce--checkout .order-btn .site-btn {
    width: 100%;
    min-height: 2.75rem;
  }
}

.mega-store .mega-commerce--cms #contentpagehere [class*="col-"],
.mega-store #contentpagehere [class*="col-"] {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  width: auto !important;
  float: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (min-width: 576px) {
  .mega-store .mega-commerce--cms #contentpagehere .col-sm-6,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-sm-6"],
  .mega-store #contentpagehere .col-sm-6,
  .mega-store #contentpagehere [class*="col-sm-6"] {
    flex: 1 1 calc(50% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(50% - var(--mega-mod-gap, 1rem) / 2) !important;
  }
}

@media (min-width: 768px) {
  .mega-store .mega-commerce--cms #contentpagehere .col-md-4,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-md-4"],
  .mega-store #contentpagehere .col-md-4,
  .mega-store #contentpagehere [class*="col-md-4"] {
    flex: 1 1 calc(33.333% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(33.333% - var(--mega-mod-gap, 1rem) / 1.5) !important;
  }

  .mega-store .mega-commerce--cms #contentpagehere .col-md-6,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-md-6"],
  .mega-store #contentpagehere .col-md-6,
  .mega-store #contentpagehere [class*="col-md-6"] {
    flex: 1 1 calc(50% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(50% - var(--mega-mod-gap, 1rem) / 2) !important;
  }
}

@media (min-width: 992px) {
  .mega-store .mega-commerce--cms #contentpagehere .col-lg-4,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-lg-4"],
  .mega-store #contentpagehere .col-lg-4,
  .mega-store #contentpagehere [class*="col-lg-4"] {
    flex: 1 1 calc(33.333% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(33.333% - var(--mega-mod-gap, 1rem) / 1.5) !important;
  }

  .mega-store .mega-commerce--cms #contentpagehere .col-lg-5,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-lg-5"],
  .mega-store #contentpagehere .col-lg-5,
  .mega-store #contentpagehere [class*="col-lg-5"] {
    flex: 1 1 calc(41.666% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(41.666% - var(--mega-mod-gap, 1rem) / 2) !important;
  }

  .mega-store .mega-commerce--cms #contentpagehere .col-lg-6,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-lg-6"],
  .mega-store #contentpagehere .col-lg-6,
  .mega-store #contentpagehere [class*="col-lg-6"] {
    flex: 1 1 calc(50% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(50% - var(--mega-mod-gap, 1rem) / 2) !important;
  }

  .mega-store .mega-commerce--cms #contentpagehere .col-lg-7,
  .mega-store .mega-commerce--cms #contentpagehere [class*="col-lg-7"],
  .mega-store #contentpagehere .col-lg-7,
  .mega-store #contentpagehere [class*="col-lg-7"] {
    flex: 1 1 calc(58.333% - var(--mega-mod-gap, 1rem)) !important;
    max-width: calc(58.333% - var(--mega-mod-gap, 1rem) / 2) !important;
  }
}

.mega-store .mega-commerce--cms #contentpagehere .row,
.mega-store #contentpagehere .row {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  gap: var(--mega-mod-gap, 1rem);
}

/* Cookie bar — mobile */
.mega-store .platform-cookie-bar {
  max-width: 100vw;
  box-sizing: border-box;
}

.mega-store .platform-cookie-bar__inner,
.mega-store .platform-cookie-bar__body {
  max-width: 100%;
  overflow-wrap: break-word;
}

@media (max-width: 575.98px) {
  .mega-store .platform-cookie-bar__actions,
  .mega-store .platform-cookie-bar__accept {
    width: 100%;
    max-width: 100%;
  }
}

/* ===== Commerce pages (cart, checkout, PDP) — all layouts; layout2/3 site-bem overrides win ===== */
.mega-store .product-shop.page-details .product-large img {
  max-width: 100%;
  height: auto;
}

.mega-store .product-tab .nav {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.5rem;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.mega-store .product-tab .nav > li {
  flex: 0 0 auto;
}

.mega-store .product-tab-link {
  display: inline-block;
  white-space: nowrap;
}

.mega-store .product-shop.page-details .product-thumbs-track .owl-stage {
  display: flex !important;
  gap: 0.5rem;
}

.mega-store .product-shop.page-details .product-thumbs-track .pt {
  flex: 0 0 auto;
}

.mega-store .product-options__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.mega-store .product-options__pill {
  min-height: 2.5rem;
  padding: 0.35rem 0.85rem;
}

.mega-store .page-details__rte {
  overflow-wrap: break-word;
  word-break: break-word;
}

.mega-store .page-details__rte img {
  max-width: 100%;
  height: auto;
}

@media (max-width: 767.98px) {
  .mega-store .mega-pdp__info {
    margin-top: 1rem;
  }

  .mega-store .product-details,
  .mega-store .product-details__panel {
    padding: 0.85rem;
  }

  /* Cart: card rows (shared layout/cart.php markup) */
  .mega-store .cart-page__table-wrap {
    overflow-x: visible;
  }

  .mega-store .cart-table__inner {
    display: block;
    min-width: 100%;
    width: 100%;
  }

  .mega-store .cart-table__inner thead {
    display: none;
  }

  .mega-store .cart-table__inner tbody tr {
    display: block;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: var(--mega-mod-radius, 12px);
    margin-bottom: 0.75rem;
    padding: 0.75rem;
    background: #fff;
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
  }

  .mega-store .cart-table__inner tbody tr td {
    display: block;
    width: 100% !important;
    padding: 0.35rem 0 !important;
    border: none !important;
  }

  .mega-store .cart-table__inner tbody tr td::before {
    display: block;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(15, 23, 42, 0.55);
    margin-bottom: 0.2rem;
  }

  .mega-store .cart-table__inner tbody tr td.cart-pic::before { content: ""; }
  .mega-store .cart-table__inner tbody tr td.cart-title::before { content: "Product"; }
  .mega-store .cart-table__inner tbody tr td.p-price::before { content: "Price"; }
  .mega-store .cart-table__inner tbody tr td.qua-col::before { content: "Qty"; }
  .mega-store .cart-table__inner tbody tr td:nth-child(5)::before { content: "Tax"; }
  .mega-store .cart-table__inner tbody tr td:nth-child(6)::before {
    content: "Line total";
    font-weight: 700;
  }
  .mega-store .cart-table__inner tbody tr td.close-td {
    text-align: right;
    padding-top: 0.5rem !important;
  }
  .mega-store .cart-table__inner tbody tr td.close-td::before { content: ""; }

  /* Sticky totals — ecom-basic + layout1 (layout2/3 use site-bem) */
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--cart .cart-page__main {
    padding-bottom: 6rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--cart .cart-page__aside .proceed-checkout,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--cart .proceed-checkout.cart-page__total {
    position: sticky;
    bottom: 0;
    z-index: 1100;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: var(--mega-mod-radius, 12px);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
    padding: 1rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--cart .proceed-checkout .proceed-btn {
    display: block;
    width: 100%;
    text-align: center;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-section {
    padding-bottom: 6.5rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-total {
    position: sticky;
    bottom: 0;
    z-index: 1100;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: var(--mega-mod-radius, 12px);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
    padding: 1rem;
  }
}

@media (max-width: 575.98px) {
  .mega-store .cart-buttons,
  .mega-store .cart-page__actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .mega-store .cart-buttons .primary-btn,
  .mega-store .cart-page__actions .primary-btn {
    width: 100%;
    text-align: center;
  }

  .mega-store .coupon-form {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .mega-store .coupon-form .site-btn {
    width: 100%;
  }
}

/* ===== Product listing (shop grid) — ecom-basic + layout1; layout2/3 use site-bem ===== */
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--listing .product-list .row {
  row-gap: var(--mega-mod-gap, 1rem);
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-item.mega-commerce__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-item .pi-pic {
  position: relative;
  overflow: hidden;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-item .pi-pic img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-item .pi-text {
  flex: 1 1 auto;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-item .pi-text h5 {
  font-size: clamp(0.9rem, 2.5vw, 1rem);
  line-height: 1.35;
  margin: 0;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .filter-widget {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  padding: 0.85rem 1rem;
  margin-bottom: 0.75rem;
  background: #fff;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .filter-widget .fw-title {
  font-size: 0.95rem;
  margin-bottom: 0.65rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .filter-catagories {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.35rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-listing__search-form .advanced-search .input-group {
  display: flex;
  width: 100%;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-listing__search-form input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 0.65rem 0.85rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-listing__search-form button[type="submit"] {
  border: 0;
  background: rgba(15, 23, 42, 0.06);
  padding: 0 0.85rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option {
  margin-bottom: 1rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .select-option select {
  max-width: 100%;
  min-height: 2.75rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--listing .pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  padding-left: 0;
  list-style: none;
}

@media (max-width: 991.98px) {
  /* Show sidebar search/categories on tablet/phone (markup uses d-none d-md-block) */
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--listing .produts-sidebar-filter.d-none.d-md-block {
    display: block !important;
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    margin-bottom: 1rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--listing .product-shop > .container > .row {
    display: flex;
    flex-direction: column;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--listing .produts-sidebar-filter {
    order: -1;
  }
}

@media (max-width: 767.98px) {
  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .row {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .col-lg-5,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .col-lg-7,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .col-md-5,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .col-md-7 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    text-align: left !important;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .select-option {
    width: 100%;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .product-show-option .select-option select {
    width: 100%;
  }
}

/* ===== Account / login / register — ecom-basic + layout1 ===== */
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--account.user-auth-page {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth-page__section {
  padding: var(--mega-mod-pad-y, 1rem) 0;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__card,
.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__inner {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__input,
.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth .form-control {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  border-radius: var(--mega-mod-radius, 12px);
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__submit,
.mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth .cbtn.user-auth__submit {
  width: 100%;
  min-height: 2.75rem;
  border-radius: var(--mega-mod-radius, 12px);
}

@media (max-width: 767.98px) {
  .mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth-page__row {
    margin-left: 0;
    margin-right: 0;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth-page__container {
    padding-left: var(--mega-mod-pad-x, 0.75rem);
    padding-right: var(--mega-mod-pad-x, 0.75rem);
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__row--split {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__forgot {
    width: 100%;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .user-auth__grid .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
}

/* ===== Checkout multi-step — ecom-basic + layout1 ===== */
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form input[type="text"],
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form input[type="email"],
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form input[type="tel"],
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form input[type="password"],
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form select,
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form textarea {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  border: 1px solid rgba(15, 23, 42, 0.15);
  border-radius: var(--mega-mod-radius, 12px);
  padding: 0.55rem 0.85rem;
  box-sizing: border-box;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .col-lg-6,
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .col-lg-12 {
  margin-bottom: 0.65rem;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .place-order {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  padding: 1rem;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-table {
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-table li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .payment-method-label {
  display: block;
  padding: 0.65rem 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: var(--mega-mod-radius, 12px);
  margin-top: 0.35rem;
  cursor: pointer;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-content .content-btn {
  display: inline-block;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
  border-radius: var(--mega-mod-radius, 12px);
}

@media (max-width: 991.98px) {
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form > .row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form > .row > [class*="col-lg-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .place-order {
    order: -1;
  }
}

@media (max-width: 767.98px) {
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-lg-6,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-md-6,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-sm-6,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-sm-2,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-sm-10,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-form .row .col-sm-12 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .alert.alert-info.row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .alert .pull-right {
    float: none !important;
    align-self: flex-start;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-btn .place-btn,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-btn .site-btn,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-section .place-btn,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .checkout-section .site-btn {
    width: 100%;
    min-height: 2.75rem;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout #step_2 > .row {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* ===== Contact page + CMS/module forms (all layouts; layout2/3 theme-skin + site-bem) ===== */
.mega-store .mega-commerce--cms .contact-main,
.mega-store .mega-commerce--cms .form-main {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store .contactform .form-control,
.mega-store .mega-commerce--cms .form-main .form-control,
.mega-store .mega-commerce--cms #contentpagehere input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.mega-store .mega-commerce--cms #contentpagehere select,
.mega-store .mega-commerce--cms #contentpagehere textarea,
.mega-store .bolxdatabooking input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.mega-store .bolxdatabooking select,
.mega-store .bolxdatabooking textarea {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  box-sizing: border-box;
  border: 1px solid rgba(15, 23, 42, 0.15);
  border-radius: var(--mega-mod-radius, 12px);
  padding: 0.55rem 0.85rem;
}

.mega-store .contactform textarea.form-control,
.mega-store .mega-commerce--cms #contentpagehere textarea {
  min-height: 7rem;
  resize: vertical;
}

.mega-store .contactform .displalabel,
.mega-store .contactform label,
.mega-store .mega-commerce--cms .form-main label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
}

.mega-store .contact-icon {
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: var(--mega-mod-radius, 12px);
  background: #fff;
}

.mega-store .contact-icon .icon {
  display: inline-block;
  margin-bottom: 0.35rem;
}

.mega-store .contactform .primary-btn,
.mega-store .mega-commerce--cms #contentpagehere button[type="submit"],
.mega-store .mega-commerce--cms #contentpagehere input[type="submit"] {
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
}

.mega-store .contact-map iframe,
.mega-store .maps.contact-map iframe {
  width: 100% !important;
  max-width: 100%;
  min-height: min(50vh, 22rem);
  border: 0;
  display: block;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .form-main {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  padding: 1rem;
  background: #fff;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.06);
}

@media (max-width: 767.98px) {
  .mega-store .contact-main > .container > .row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mega-store .contact-main .col-md-4,
  .mega-store .contact-main .col-md-8 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store .contact-captcha-row .row {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
  }

  .mega-store .contact-captcha-row .col-sm-6 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store .contactform .form-group.col-md-12 {
    margin-bottom: 0.5rem;
  }

  .mega-store .contactform .primary-btn {
    width: 100%;
    display: block;
    text-align: center;
  }

  .mega-store .contactform .form-group .row .col-sm-4 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    margin-bottom: 0.35rem;
  }

  .mega-store .mega-commerce--cms #contentpagehere form .row > [class*="col-"] {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }
}

/* ===== Home page (ecom-basic + layout1 non-bold home modules) ===== */
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .product-item {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
  background: #fff;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .product-item .pi-pic img,
.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .img-slider-max {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .section-title h2 {
  font-size: clamp(1.25rem, 4vw, 1.75rem);
  line-height: 1.25;
}

.mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .about-main {
  padding: var(--mega-mod-pad-y, 1rem) var(--mega-mod-pad-x, 0.75rem);
}

@media (max-width: 767.98px) {
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .saf_hero_title,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .single-hero-items h1 {
    font-size: clamp(1.35rem, 5vw, 2rem) !important;
    line-height: 1.15 !important;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .saf_hero_desc,
  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .single-hero-items p {
    font-size: clamp(0.95rem, 2.8vw, 1.05rem) !important;
    max-width: 22em;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .single-hero-items .col-lg-5 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--home .primary-btn.saf_hero_btn {
    display: inline-block;
    margin-top: 0.75rem;
  }
}

/* ===== Checkout thank-you / cancel status pages ===== */
.mega-store .checkout-status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  margin: 0 auto 1rem;
  font-size: 1.75rem;
}

.mega-store .checkout-status-icon--success {
  background: rgba(22, 163, 74, 0.12);
  color: #16a34a;
}

.mega-store .checkout-status-icon--error {
  background: rgba(220, 38, 38, 0.12);
  color: #dc2626;
}

.mega-store .checkout-status-title {
  font-size: clamp(1.25rem, 4vw, 1.85rem);
  line-height: 1.2;
  margin-bottom: 0.75rem;
}

.mega-store .mega-commerce--checkout .cart--empty-message {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}

@media (max-width: 767.98px) {
  .mega-store .mega-commerce--checkout .checkout-section .row .col-sm-3 {
    display: none;
  }

  .mega-store .mega-commerce--checkout .checkout-section .col-sm-6,
  .mega-store .mega-commerce--checkout .checkout-section .text-center.col-sm-6 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    padding-left: var(--mega-mod-pad-x, 0.75rem);
    padding-right: var(--mega-mod-pad-x, 0.75rem);
  }

  .mega-store .mega-commerce--checkout .checkout-status-title {
    word-break: break-word;
  }
}

/* ===== iOS safe-area for sticky commerce bars ===== */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  @media (max-width: 767.98px) {
    .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--cart .proceed-checkout,
    .mega-store:not(.theme-layout2):not(.theme-layout3) .mega-commerce--checkout .order-total {
      padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    }

    body.theme-layout2 .mega-commerce--cart .cart-page__aside .proceed-checkout,
    body.theme-layout2 .mega-commerce--checkout .order-total,
    body.theme-layout3 .mega-commerce--cart .cart-page__aside .proceed-checkout,
    body.theme-layout3 .mega-commerce--checkout .order-total {
      padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    }
  }
}

/* ===== Blog listing + sidebar (mega-commerce--cms) ===== */
.mega-store .blog-section .blog-item img,
.mega-store .blog-section .bi-pic img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.mega-store .blog-section .list-group-item a {
  display: block;
  padding: 0.5rem 0;
  word-break: break-word;
}

@media (max-width: 991.98px) {
  .mega-store .blog-section > .container > .row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mega-store .blog-section .blog-sidebar__panel {
    order: -1;
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store .blog-section .col-lg-9,
  .mega-store .blog-section .col-sm-9 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store .blog-section .blog-box {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }
}

/* ===== FAQ accordion ===== */
.mega-store .mega-commerce--cms .panel-group .panel {
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--mega-mod-radius, 12px);
  margin-bottom: 0.5rem;
  overflow: hidden;
  background: #fff;
}

.mega-store .mega-commerce--cms .panel-group .panel-title a {
  display: block;
  width: 100%;
  padding: 0.85rem 1rem;
  font-size: 1rem;
  line-height: 1.35;
  text-decoration: none;
  color: inherit;
}

.mega-store .mega-commerce--cms .panel-group .panel-body {
  padding: 0.75rem 1rem 1rem;
  overflow-wrap: break-word;
  word-break: break-word;
}

.mega-store .mega-commerce--cms .panel-group .panel-body img {
  max-width: 100%;
  height: auto;
}

/* ===== Photo gallery grid ===== */
.mega-store .portfolio-item.row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-left: 0;
  margin-right: 0;
}

.mega-store .portfolio-item .item {
  flex: 1 1 calc(50% - 0.65rem);
  max-width: calc(50% - 0.65rem);
  min-width: 0;
  padding: 0;
}

.mega-store .portfolio-item .item img.img-fluid {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--mega-mod-radius, 12px);
}

@media (min-width: 768px) {
  .mega-store .portfolio-item .item {
    flex: 1 1 calc(33.333% - 0.65rem);
    max-width: calc(33.333% - 0.65rem);
  }
}

@media (min-width: 992px) {
  .mega-store .portfolio-item .item {
    flex: 1 1 calc(25% - 0.65rem);
    max-width: calc(25% - 0.65rem);
  }
}

/* ===== 404 error page ===== */
.mega-store .error-page .error-box {
  text-align: center;
  padding: clamp(2rem, 6vw, 4rem) var(--mega-mod-pad-x, 1rem);
  max-width: 36rem;
  margin: 0 auto;
}

.mega-store .error-page .error-box h1 {
  font-size: clamp(3rem, 18vw, 6rem);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.mega-store .error-page .error-box h3 {
  font-size: clamp(1.1rem, 3.5vw, 1.5rem);
  margin-bottom: 0.75rem;
}

.mega-store .error-page .error-box .btn,
.mega-store .error-page .error-box .btn-custom {
  display: inline-block;
  min-height: 2.75rem;
  padding: 0.65rem 1.25rem;
  margin-top: 0.5rem;
}

@media (max-width: 575.98px) {
  .mega-store .error-page .error-box .btn,
  .mega-store .error-page .error-box .btn-custom {
    width: 100%;
    max-width: 20rem;
  }
}

/* ===== Classification directory (list + detail) ===== */
.mega-store .mega-commerce--cms .breacrumb-section h3 {
  font-size: clamp(1.15rem, 3.5vw, 1.75rem);
  line-height: 1.25;
  word-break: break-word;
}

.mega-store .mega-commerce--cms .breacrumb-section .breadcrumb-text {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.25rem 0.5rem;
  font-size: clamp(0.8rem, 2.5vw, 0.95rem);
}

.mega-store .blog-section .nav-side-menu,
.mega-store .blog-details .nav-side-menu {
  position: relative;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
}

.mega-store .blog-section .nav-side-menu .cls-menu__brand,
.mega-store .blog-details .nav-side-menu .cls-menu__brand {
  padding-right: 3rem;
  box-sizing: border-box;
}

.mega-store .blog-section .nav-side-menu .toggle-btn,
.mega-store .blog-details .nav-side-menu .toggle-btn {
  display: block;
  cursor: pointer;
  position: absolute;
  right: 0.65rem;
  top: 0.55rem;
  z-index: 5;
  min-width: 2.5rem;
  min-height: 2.5rem;
  line-height: 2.5rem;
  text-align: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.92);
  color: #1e293b;
}

.mega-store .blog-section .nav-side-menu li a,
.mega-store .blog-details .nav-side-menu li a {
  display: block;
  padding: 0.35rem 0.75rem;
  word-break: break-word;
}

.mega-store .blog-section .cls-filter__spacer .card,
.mega-store .blog-details .cls-filter__spacer .card {
  width: 100%;
  margin-top: 0.75rem;
  border-radius: var(--mega-mod-radius, 12px);
}

.mega-store .blog-section .catviewaddlink,
.mega-store .blog-details .catviewaddlink {
  display: block;
  margin: 0.35rem 0;
  padding: 0.45rem 0.65rem;
  border-radius: 8px;
  background: rgba(15, 23, 42, 0.05);
  word-break: break-word;
}

.mega-store .blog-section .cls-card__img,
.mega-store .blog-section .blog-item .bi-pic img,
.mega-store .blog-section .pi-pic img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.mega-store .blog-section .cls-card__title {
  font-size: clamp(1rem, 2.8vw, 1.15rem);
  line-height: 1.3;
}

.mega-store .blog-section .col-lg-9 > .row,
.mega-store .blog-section .col-sm-9 > .row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-left: 0;
  margin-right: 0;
}

.mega-store .blog-section .col-lg-9 .blog-box,
.mega-store .blog-section .col-sm-9 .blog-box {
  flex: 1 1 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.mega-store .blog-details-inner .blog-large-pic img {
  max-width: 100%;
  height: auto;
  display: block;
}

.mega-store .blog-details-inner .blog-detail-desc,
.mega-store .blog-details-inner .blog-detail-desc img,
.mega-store .blog-details-inner .blog-detail-desc iframe {
  max-width: 100%;
  height: auto;
}

.mega-store .blog-details-inner .blog-detail-desc table {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (min-width: 576px) {
  .mega-store .blog-section .col-lg-9 .blog-box,
  .mega-store .blog-section .col-sm-9 .blog-box {
    flex: 1 1 calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

@media (min-width: 992px) {
  .mega-store .blog-section .col-lg-9 .blog-box {
    flex: 1 1 calc(33.333% - 0.75rem);
    max-width: calc(33.333% - 0.75rem);
  }

  .mega-store .blog-section .nav-side-menu .toggle-btn,
  .mega-store .blog-details .nav-side-menu .toggle-btn {
    display: none;
  }

  .mega-store .blog-section .nav-side-menu .menu-content,
  .mega-store .blog-details .nav-side-menu .menu-content {
    display: block !important;
    height: auto !important;
  }
}

@media (max-width: 991.98px) {
  .mega-store .blog-section > .container > .row,
  .mega-store .blog-details > .container > .row {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }

  .mega-store .blog-section > .container > .row > .col-sm-3,
  .mega-store .blog-section > .container > .row > .col-lg-3,
  .mega-store .blog-details > .container > .row > .col-sm-3,
  .mega-store .blog-details > .container > .row > .col-lg-3 {
    order: -1;
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
    padding-left: 0;
    padding-right: 0;
  }

  .mega-store .blog-section > .container > .row > .col-lg-9,
  .mega-store .blog-section > .container > .row > .col-sm-9,
  .mega-store .blog-details > .container > .row > .col-lg-9,
  .mega-store .blog-details > .container > .row > .col-sm-9 {
    width: 100%;
    max-width: 100%;
    flex: 0 0 100%;
  }

  .mega-store .blog-details-inner .blog-large-pic {
    max-width: 100% !important;
    width: 100% !important;
    float: none !important;
    padding: 0 0 1rem !important;
    margin: 0 auto 0.75rem !important;
    box-sizing: border-box;
  }

  .mega-store .blog-details-inner .blog-detail-desc {
    clear: both;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  .mega-store .blog-section .page-set .pagination,
  .mega-store .blog-section #pagination-container-- .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
  }
}

/* ===== CMS static page (home/pages.php — about-box) ===== */
.mega-store .mega-commerce--cms .about-box.site-main .row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--mega-mod-gap, 1rem);
  margin-left: 0;
  margin-right: 0;
}

.mega-store .mega-commerce--cms .about-box.site-main .row > [class*="col-"] {
  flex: 1 1 100%;
  max-width: 100%;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
}

@media (min-width: 992px) {
  .mega-store .mega-commerce--cms .about-box.site-main .row > .col-lg-5,
  .mega-store .mega-commerce--cms .about-box.site-main .row > [class*="col-lg-5"] {
    flex: 1 1 calc(41.666% - var(--mega-mod-gap, 1rem));
    max-width: calc(41.666% - var(--mega-mod-gap, 1rem) / 2);
  }

  .mega-store .mega-commerce--cms .about-box.site-main .row > .col-lg-7,
  .mega-store .mega-commerce--cms .about-box.site-main .row > [class*="col-lg-7"] {
    flex: 1 1 calc(58.333% - var(--mega-mod-gap, 1rem));
    max-width: calc(58.333% - var(--mega-mod-gap, 1rem) / 2);
  }
}

.mega-store .mega-commerce--cms .about-box.site-main .img-fluid {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--mega-mod-radius, 12px);
}

.mega-store .mega-commerce--cms .about-box.site-main h2.mb-4 {
  font-size: clamp(1.2rem, 3.5vw, 1.65rem);
  line-height: 1.25;
  margin-top: 0.5rem;
}

.mega-store .mega-commerce--cms .about-box .page__pdf-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  margin-bottom: 0.5rem;
}

@media (max-width: 991.98px) {
  .mega-store .mega-commerce--cms .about-box.site-main .row > .col-lg-5 {
    order: -1;
  }
}

/* ===== Product search empty / tracking fallback ===== */
.mega-store .commerce-search-empty__form {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  width: 100%;
  max-width: 28rem;
  margin: 1rem auto 0;
  text-align: left;
}

.mega-store .commerce-search-empty__input {
  width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  padding: 0.65rem 1rem;
  border-radius: var(--mega-mod-radius, 12px);
  box-sizing: border-box;
}

.mega-store .commerce-search-empty__submit {
  width: 100%;
  min-height: 2.75rem;
  border-radius: var(--mega-mod-radius, 12px);
}

.mega-store .commerce-search-empty__title {
  font-size: clamp(1.05rem, 3.2vw, 1.35rem);
  line-height: 1.35;
  margin-bottom: 0.5rem;
}

.mega-store .commerce-search-empty__hint {
  color: rgba(15, 23, 42, 0.65);
}

/* Legacy Shopify collection markup (if any old view still cached) */
.mega-store .shopify-section .collection-hero {
  min-height: clamp(8rem, 28vw, 14rem);
  position: relative;
}

.mega-store .shopify-section .collection-hero__title-wrapper {
  position: relative;
  z-index: 2;
  padding: var(--mega-mod-pad-y, 1rem) var(--mega-mod-pad-x, 0.75rem);
}

.mega-store .shopify-section .filters-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
}

.mega-store .shopify-section .filters-toolbar__item {
  flex: 1 1 100%;
  min-width: 0;
}

.mega-store .shopify-section .filters-toolbar__input,
.mega-store .shopify-section .shopify-sortby-select {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
}

@media (min-width: 576px) {
  .mega-store .shopify-section .filters-toolbar__item--count {
    flex: 0 0 auto;
  }

  .mega-store .shopify-section .filters-toolbar__item.text-right {
    flex: 1 1 auto;
    text-align: right;
  }
}

/* ===== Account pages — layout2 + layout3 (same markup as ecom-basic) ===== */
body.theme-layout2.mega-store .mega-commerce--account.user-auth-page,
body.theme-layout3.mega-store .mega-commerce--account.user-auth-page {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body.theme-layout2.mega-store .user-auth-page__section,
body.theme-layout3.mega-store .user-auth-page__section {
  padding: var(--mega-mod-pad-y, 1rem) 0;
}

body.theme-layout2.mega-store .user-auth__card,
body.theme-layout2.mega-store .user-auth__inner,
body.theme-layout3.mega-store .user-auth__card,
body.theme-layout3.mega-store .user-auth__inner {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

body.theme-layout2.mega-store .user-auth__input,
body.theme-layout2.mega-store .user-auth .form-control,
body.theme-layout3.mega-store .user-auth__input,
body.theme-layout3.mega-store .user-auth .form-control {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  font-size: 16px;
  border-radius: var(--mega-mod-radius, 12px);
}

body.theme-layout2.mega-store .user-auth__submit,
body.theme-layout2.mega-store .user-auth .cbtn.user-auth__submit,
body.theme-layout3.mega-store .user-auth__submit,
body.theme-layout3.mega-store .user-auth .cbtn.user-auth__submit {
  width: 100%;
  min-height: 2.75rem;
  border-radius: var(--mega-mod-radius, 12px);
}

@media (max-width: 767.98px) {
  body.theme-layout2.mega-store .user-auth-page__container,
  body.theme-layout3.mega-store .user-auth-page__container {
    padding-left: var(--mega-mod-pad-x, 0.75rem);
    padding-right: var(--mega-mod-pad-x, 0.75rem);
  }

  body.theme-layout2.mega-store .user-auth__row--split,
  body.theme-layout3.mega-store .user-auth__row--split {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
  }

  body.theme-layout2.mega-store .user-auth__forgot,
  body.theme-layout3.mega-store .user-auth__forgot {
    width: 100%;
  }

  body.theme-layout2.mega-store .user-auth__grid .col-md-6,
  body.theme-layout3.mega-store .user-auth__grid .col-md-6 {
    flex: 0 0 100%;
    max-width: 100%;
    width: 100%;
  }
}

/* ===== Store footer (all layouts) ===== */
.mega-store .saf_footer_wrapper .row,
.mega-store .saf_footer_wrapper .sf-footer__grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-left: 0;
  margin-right: 0;
}

.mega-store .saf_footer_wrapper .row > [class*="col-"],
.mega-store .saf_footer_wrapper .sf-footer__col {
  flex: 1 1 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.mega-store .saf_footer_wrapper .footer_logo {
  max-width: min(100%, 12rem);
  height: auto;
}

.mega-store .saf_newsLetter_wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
  max-width: 100%;
}

.mega-store .saf_newsLetter_wrap input[type="text"],
.mega-store .saf_newsLetter_wrap input[type="email"] {
  flex: 1 1 100%;
  min-width: 0;
  min-height: 2.75rem;
  font-size: 16px;
  padding: 0.55rem 0.85rem;
  border-radius: var(--mega-mod-radius, 12px);
  box-sizing: border-box;
}

.mega-store .saf_newsLetter_wrap button {
  flex: 0 0 auto;
  min-width: 2.75rem;
  min-height: 2.75rem;
  border-radius: var(--mega-mod-radius, 12px);
}

.mega-store .saf_copyright_wrapper {
  text-align: center;
  padding: 0.85rem var(--mega-mod-pad-x, 0.75rem);
  font-size: clamp(0.8rem, 2.5vw, 0.9rem);
  line-height: 1.45;
  word-break: break-word;
}

.mega-store .page-set .pagination,
.mega-store #pagination-container-- .pagination,
.mega-store .product-shop .pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
  padding-left: 0;
  list-style: none;
}

@media (min-width: 576px) {
  .mega-store .saf_newsLetter_wrap input[type="text"],
  .mega-store .saf_newsLetter_wrap input[type="email"] {
    flex: 1 1 auto;
  }
}

@media (min-width: 768px) {
  .mega-store .saf_footer_wrapper .row > .col-md-6,
  .mega-store .saf_footer_wrapper .sf-footer__col {
    flex: 1 1 calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

@media (min-width: 992px) {
  .mega-store .saf_footer_wrapper .row > .col-lg-4,
  .mega-store .saf_footer_wrapper .row > .col-xl-3,
  .mega-store .saf_footer_wrapper .sf-footer__col {
    flex: 1 1 calc(25% - 1rem);
    max-width: calc(25% - 1rem);
  }

  .mega-store .saf_footer_wrapper .row > .col-lg-6,
  .mega-store .saf_footer_wrapper .row > .col-xl-6 {
    flex: 1 1 calc(50% - 1rem);
    max-width: calc(50% - 1rem);
  }
}

/* ===== Home sections — layout2 + layout3 ===== */
body.theme-layout2 .mega-commerce--home .benefit-main .row,
body.theme-layout3 .mega-commerce--home .benefit-main .row,
body.theme-layout2 .mega-commerce--home .latest-blog .row,
body.theme-layout3 .mega-commerce--home .latest-blog .row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-left: 0;
  margin-right: 0;
}

body.theme-layout2 .mega-commerce--home .benefit-main [class*="col-"],
body.theme-layout3 .mega-commerce--home .benefit-main [class*="col-"],
body.theme-layout2 .mega-commerce--home .latest-blog [class*="col-"],
body.theme-layout3 .mega-commerce--home .latest-blog [class*="col-"] {
  flex: 1 1 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

body.theme-layout2 .mega-commerce--home .single-benefit,
body.theme-layout3 .mega-commerce--home .single-benefit {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  text-align: left;
}

body.theme-layout2 .mega-commerce--home .single-latest-blog img,
body.theme-layout3 .mega-commerce--home .single-latest-blog img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--mega-mod-radius, 12px);
}

@media (min-width: 576px) {
  body.theme-layout2 .mega-commerce--home .benefit-main .col-lg-4,
  body.theme-layout3 .mega-commerce--home .benefit-main .col-lg-4,
  body.theme-layout2 .mega-commerce--home .latest-blog .col-sm-6,
  body.theme-layout3 .mega-commerce--home .latest-blog .col-sm-6 {
    flex: 1 1 calc(50% - 0.75rem);
    max-width: calc(50% - 0.75rem);
  }
}

@media (min-width: 992px) {
  body.theme-layout2 .mega-commerce--home .benefit-main .col-lg-4,
  body.theme-layout3 .mega-commerce--home .benefit-main .col-lg-4 {
    flex: 1 1 calc(33.333% - 0.75rem);
    max-width: calc(33.333% - 0.75rem);
  }

  body.theme-layout2 .mega-commerce--home .latest-blog .col-lg-4,
  body.theme-layout3 .mega-commerce--home .latest-blog .col-lg-4 {
    flex: 1 1 calc(33.333% - 0.75rem);
    max-width: calc(33.333% - 0.75rem);
  }
}

/* ===== Home product swipers (all layouts) ===== */
.mega-store .saf_products_wrapper .product-swiper,
.mega-store .mega-commerce--home .product-swiper {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.mega-store .product-swiper .swiper-slide {
  height: auto;
  box-sizing: border-box;
}

.mega-store .product-swiper .home-slider-product-img,
.mega-store .product-swiper .product-item .pi-pic img {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.mega-store .product-swiper .product-item .pi-text h5 {
  font-size: clamp(0.9rem, 2.6vw, 1rem);
  line-height: 1.3;
  word-break: break-word;
}

.mega-store .product-swiper .swiper-button-prev,
.mega-store .product-swiper .swiper-button-next {
  width: 2.25rem;
  height: 2.25rem;
}

@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .mega-store .platform-cookie-bar {
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 575.98px) {
  .mega-store .product-swiper .swiper-button-prev,
  .mega-store .product-swiper .swiper-button-next {
    display: none;
  }

  .mega-store .saf_products_wrapper .section-title h2 {
    font-size: clamp(1.15rem, 4vw, 1.5rem);
  }
}

/* =====================================================================
   NON-BOLD MODERN LAYOUTS (layout2 / layout3): module + CMS prose DESIGN
   ---------------------------------------------------------------------
   WHY: layout2/3 reuse the SAME storefront-bold__* module/CMS markup that
   layout1 bold emits (generateModuleHtml + storefront_module_render_*),
   but they NEVER load the bold CSS stack — storefront-modern-bem.css and
   layout1-modules-bem.css are scoped to `body.storefront-bold`, which only
   layout1 bold ever gets. Result: on layout2/3 the module STRUCTURE is
   handled (rules above), but the TYPOGRAPHY / spacing / link design is
   browser-default → the "unstyled / not finished" look reported on shops.

   This block supplies the missing design as a complete baseline.

   SCOPE GUARANTEE:
     body.storefront--modern:not(.storefront-bold)
       • .storefront--modern is on layout1/2/3 (modern template) only
       • :not(.storefront-bold) removes layout1 bold
       • ecom-basic has NO .storefront--modern class (it also carries
         .mega-store, hence we key off .storefront--modern, not .mega-store)
       → resolves to exactly layout2 + layout3 (+ future non-bold modern)
   COLOURS: driven by --skin-* tokens, so each layout's palette still wins
   (layout2/3 define --skin-text / --skin-accent / --skin-accent-soft).
   ===================================================================== */

/* Flatten nested container + kill stacked legacy "about" padding so the
   .content-module slot padding (set in layout{2,3}-site-bem.css) is the
   single source of module padding — mirrors the layout1-bold reset. */
body.storefront--modern:not(.storefront-bold) .content-module .storefront-bold__module-section,
body.storefront--modern:not(.storefront-bold) .content-module > .saf_about_wrapper {
  margin: 0;
}
body.storefront--modern:not(.storefront-bold) .content-module .saf_about_detail,
body.storefront--modern:not(.storefront-bold) .content-module .saf_about_detail.storefront-bold__prose {
  padding: 0 !important;
  margin: 0;
  width: 100%;
  max-width: 100%;
}
/* Collapse empty intro/body so sparse modules don't reserve blank space. */
body.storefront--modern:not(.storefront-bold) .content-module .storefront-bold__module-intro:empty,
body.storefront--modern:not(.storefront-bold) .content-module .storefront-bold__module-body:empty,
body.storefront--modern:not(.storefront-bold) .content-module .saf_about_detail > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ----- Prose base typography (content modules, CMS bodies, blog text) ----- */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose,
body.storefront--modern:not(.storefront-bold) .saf_about_detail.storefront-bold__prose,
body.storefront--modern:not(.storefront-bold) .saf_single_blog_text.storefront-bold__prose,
body.storefront--modern:not(.storefront-bold) .l1-mod-content__body {
  font-size: clamp(0.975rem, 0.94rem + 0.18vw, 1.05rem);
  line-height: 1.7;
  color: var(--skin-text, #2b2b2b);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose > *:first-child {
  margin-top: 0;
}
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose p {
  margin: 0 0 1rem;
}

/* Headings */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h1,
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h2,
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h3,
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h4 {
  color: var(--skin-text, #1f2937);
  font-weight: 700;
  line-height: 1.3;
  margin: 1.25rem 0 0.65rem;
}
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h1 { font-size: clamp(1.4rem, 1.15rem + 1vw, 1.85rem); }
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h2 { font-size: clamp(1.2rem, 1.02rem + 0.7vw, 1.5rem); }
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h3 { font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.25rem); }
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose h4 { font-size: clamp(1rem, 0.96rem + 0.2vw, 1.125rem); }

/* Editor "heading" spans (image + title combined in one block) */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose .storefront-bold__prose-heading,
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose span[style*="font-size"] {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--skin-text, #1f2937);
}

/* Lists */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose ul,
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose ol {
  margin: 0 0 1.05rem;
  padding-left: 1.3rem;
}
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose li {
  margin-bottom: 0.3rem;
}

/* Links */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose a {
  color: var(--skin-accent, #c45c5c);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose a:hover {
  color: var(--skin-accent-soft, var(--skin-accent, #a84848));
}

/* Prose images: fluid + softly rounded (float images get a wrap on desktop) */
body.storefront--modern:not(.storefront-bold) .storefront-bold__prose img:not([style*="float"]) {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 0.5rem 0 1rem;
}
@media (min-width: 576px) {
  body.storefront--modern:not(.storefront-bold) .storefront-bold__prose img[style*="float: left"],
  body.storefront--modern:not(.storefront-bold) .storefront-bold__prose img[style*="float:left"] {
    float: left;
    width: clamp(4.5rem, 20vw, 7rem);
    max-width: 38%;
    height: auto;
    margin: 0.1rem 1rem 0.65rem 0 !important;
    border-radius: 10px;
  }
}

/* Module lead/intro text */
body.storefront--modern:not(.storefront-bold) .storefront-bold__module-intro {
  font-size: clamp(1.02rem, 0.98rem + 0.25vw, 1.15rem);
  line-height: 1.6;
  color: var(--skin-text, #475569);
  margin-bottom: 1rem;
}

/* Section heading (module title), when present */
body.storefront--modern:not(.storefront-bold) .storefront-bold__module-title,
body.storefront--modern:not(.storefront-bold) .l1-mod-content__title {
  font-size: clamp(1.3rem, 1.1rem + 0.9vw, 1.7rem);
  font-weight: 700;
  line-height: 1.25;
  color: var(--skin-text, #1f2937);
  margin: 0 0 0.85rem;
}

/* =====================================================================
   GRACEFUL EMPTY-CONTENT HANDLING (all storefront layouts)
   ---------------------------------------------------------------------
   A shop with sparse content shouldn't display "unfinished" fragments —
   e.g. a footer column showing a heading + divider but NO links because
   the owner hasn't added menu items yet. Hide such genuinely-empty blocks
   so every active shop reads as a complete, clean site.

   The :has()/:not(:has()) guards match ONLY empty blocks, so populated
   shops (e.g. layout1 shops with full footer menus) are never affected.
   Uses .mega-store .storefront__footer scope (the shared modern footer).
   ===================================================================== */

/* Footer "menu" column whose list has no links -> hide the whole column so
   the remaining footer columns stay balanced (a lone empty heading is the
   most visible "unfinished" artefact on sparse shops like troedelis). */
.mega-store .storefront__footer .row > [class*="col-"]:has(.saf_footer_menu:not(:has(li))) {
  display: none;
}

/* Empty social-link row in header/footer (no icons configured). */
.mega-store .top-social:not(:has(a)),
.mega-store .storefront__footer .saf_social:not(:has(a)) {
  display: none;
}

/* A footer contact list item whose value is blank (label with no data). */
.mega-store .storefront__footer .saf_footer_info:not(:has(a)):empty {
  display: none;
}

/* =====================================================================
   v23 — CMS PROSE DESIGN (all layouts): feature blocks, methods, pricing
   ---------------------------------------------------------------------
   Reusable BEM for CMS + content-module HTML. Works on layout1 bold
   (layout1-page.css may extend) and layout2/3/ecom-basic via platform CSS.
   Markup: .l1-cms__feature, .l1-cms__methods, .l1-cms__pricing-table
   ===================================================================== */

/* Hide empty editor headings (broken image placeholders, stray ###) */
.mega-store #contentpagehere h1:empty,
.mega-store #contentpagehere h2:empty,
.mega-store #contentpagehere h3:empty,
.mega-store #contentpagehere h4:empty,
.mega-store #contentpagehere h5:empty,
.mega-store #contentpagehere h6:empty,
.mega-store .storefront-bold__prose h1:empty,
.mega-store .storefront-bold__prose h2:empty,
.mega-store .storefront-bold__prose h3:empty,
.mega-store .storefront-bold__prose h4:empty,
.mega-store .l1-mod-content__body h1:empty,
.mega-store .l1-mod-content__body h2:empty,
.mega-store .l1-mod-content__body h3:empty,
.mega-store .l1-cms__feature-title:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Extend non-bold prose baseline to CMS page bodies (#contentpagehere) */
body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere,
body.storefront--modern:not(.storefront-bold) .mega-commerce--cms .l1-cms__prose,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose {
  font-size: clamp(0.975rem, 0.94rem + 0.18vw, 1.05rem);
  line-height: 1.7;
  color: var(--skin-text, #2b2b2b);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h1,
body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h2,
body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h3,
body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h4,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose h1,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose h2,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose h3 {
  color: var(--skin-text, #1f2937);
  font-weight: 700;
  line-height: 1.3;
  margin: 1.25rem 0 0.65rem;
}

body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h2,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose h2 {
  font-size: clamp(1.2rem, 1.02rem + 0.7vw, 1.5rem);
  padding-bottom: 0.35rem;
  border-bottom: 2px solid var(--skin-accent-soft, rgba(15, 23, 42, 0.12));
}

body.storefront--modern:not(.storefront-bold) .mega-commerce--cms #contentpagehere h3,
body.storefront--modern:not(.storefront-bold) .l1-page-content__prose h3 {
  font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.25rem);
}

/* Service / method feature block (image + text card) */
.mega-store .l1-cms__feature {
  display: grid;
  gap: clamp(0.85rem, 2.5vw, 1.35rem);
  margin: clamp(1.15rem, 3vw, 2rem) 0;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: var(--mega-mod-radius, 12px);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 6px 22px rgba(15, 23, 42, 0.06);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

body.theme-layout2 .l1-cms__feature,
body.theme-layout3 .l1-cms__feature {
  background: var(--skin-bg, rgba(255, 255, 255, 0.58));
  border-color: var(--skin-border, rgba(15, 23, 42, 0.10));
}

@media (min-width: 768px) {
  .mega-store .l1-cms__feature {
    grid-template-columns: min(38%, 20rem) 1fr;
    align-items: start;
  }

  .mega-store .l1-cms__feature--reverse {
    grid-template-columns: 1fr min(38%, 20rem);
  }

  .mega-store .l1-cms__feature--reverse .l1-cms__feature-media {
    order: 2;
  }

  .mega-store .l1-cms__feature--reverse .l1-cms__feature-body {
    order: 1;
  }
}

.mega-store .l1-cms__feature-media {
  margin: 0;
  line-height: 0;
  border-radius: clamp(8px, 1.2vw, 12px);
  overflow: hidden;
  background: rgba(15, 23, 42, 0.04);
}

.mega-store .l1-cms__feature-img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.mega-store .l1-cms__feature-body {
  min-width: 0;
}

.mega-store .l1-cms__feature-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.05rem, 0.98rem + 0.4vw, 1.28rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--skin-text, #1f2937);
}

.mega-store .l1-cms__feature-lead {
  margin: 0 0 0.65rem;
  font-size: clamp(0.92rem, 0.88rem + 0.15vw, 1rem);
  line-height: 1.65;
  color: var(--skin-text, #334155);
}

.mega-store .l1-cms__feature-lead strong:first-child,
.mega-store .l1-cms__feature-label {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--skin-accent, #8b6914);
  background: var(--skin-accent-soft, rgba(139, 105, 20, 0.12));
}

/* Methods / bullet lists in CMS prose */
.mega-store .l1-cms__methods {
  margin: clamp(0.85rem, 2vw, 1.25rem) 0;
  padding: clamp(0.85rem, 2vw, 1.15rem) clamp(1rem, 2.5vw, 1.35rem);
  border-left: 3px solid var(--skin-accent, #8b6914);
  border-radius: 0 var(--mega-mod-radius, 12px) var(--mega-mod-radius, 12px) 0;
  background: rgba(15, 23, 42, 0.03);
}

.mega-store .l1-cms__methods-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1rem, 0.96rem + 0.25vw, 1.12rem);
  font-weight: 700;
  color: var(--skin-text, #1f2937);
}

.mega-store .l1-cms__methods-list {
  margin: 0;
  padding-left: 1.2rem;
}

.mega-store .l1-cms__methods-list li {
  margin-bottom: 0.35rem;
  line-height: 1.55;
}

/* Sub-section blocks (e.g. Sickergruben sub-headings) */
.mega-store .l1-cms__subsection {
  margin: clamp(1rem, 2.5vw, 1.65rem) 0;
  padding-top: clamp(0.65rem, 1.5vw, 1rem);
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.mega-store .l1-cms__subsection-title {
  margin: 0 0 0.55rem;
  font-size: clamp(1.02rem, 0.96rem + 0.3vw, 1.18rem);
  font-weight: 700;
  color: var(--skin-text, #1f2937);
}

/* Pricing / offer tables (Angebote etc.) */
.mega-store table.l1-cms__pricing-table,
.mega-store .l1-cms__prose table.l1-cms__pricing-table,
.mega-store #contentpagehere table.l1-cms__pricing-table {
  display: table;
  width: 100%;
  max-width: 100%;
  margin: clamp(1rem, 2.5vw, 1.5rem) 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
  font-size: clamp(0.88rem, 0.84rem + 0.2vw, 0.98rem);
}

.mega-store table.l1-cms__pricing-table thead th,
.mega-store table.l1-cms__pricing-table tr:first-child th,
.mega-store table.l1-cms__pricing-table tr:first-child td {
  background: var(--skin-accent-soft, rgba(15, 23, 42, 0.06));
  color: var(--skin-text, #1f2937);
  font-weight: 700;
  text-align: left;
  padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.75rem, 2vw, 1rem);
  border-bottom: 1px solid rgba(15, 23, 42, 0.10);
}

.mega-store table.l1-cms__pricing-table td,
.mega-store table.l1-cms__pricing-table th {
  padding: clamp(0.55rem, 1.4vw, 0.75rem) clamp(0.75rem, 2vw, 1rem);
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  vertical-align: top;
  word-break: break-word;
}

.mega-store table.l1-cms__pricing-table tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 575.98px) {
  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table):not(:has(thead)) tr:first-child {
    display: none;
  }

  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table),
  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) tbody,
  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) tr,
  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) td {
    display: block;
    width: 100%;
  }

  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) tr {
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: var(--mega-mod-radius, 12px);
    background: rgba(255, 255, 255, 0.65);
  }

  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) td {
    border: 0;
    padding: 0.25rem 0;
  }

  .mega-store table.l1-cms__pricing-table:not(.l1-cms__price-table) td::before {
    content: attr(data-label);
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(15, 23, 42, 0.55);
    margin-bottom: 0.15rem;
  }
}

/* --------------------------------------------------------------------------
   Full price list (Preise) — .l1-cms__price-list + .l1-cms__price-table
   Markup: auto-tagged by storefront_cms_tag_pricing_tables + enhance helper
   -------------------------------------------------------------------------- */
.mega-store .l1-cms__price-list {
  margin: clamp(1.25rem, 3vw, 2rem) 0;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border-radius: calc(var(--mega-mod-radius, 12px) + 4px);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.92) 0%, rgba(248, 250, 252, 0.88) 100%);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 12px 40px rgba(15, 23, 42, 0.07);
}

.mega-store .l1-cms__price-list__validity,
.mega-store .storefront-bold__cms-body:has(#contentpagehere .l1-cms__price-list) .shortdescriptionclass,
.mega-store .l1-page-content:has(#contentpagehere .l1-cms__price-list) .shortdescriptionclass {
  margin: 0 0 clamp(0.85rem, 2vw, 1.15rem);
  padding: 0.55rem 0.85rem;
  border-radius: var(--mega-mod-radius, 12px);
  background: var(--skin-accent-soft, rgba(14, 165, 233, 0.10));
  border-left: 3px solid var(--skin-accent, #0ea5e9);
  font-size: clamp(0.86rem, 0.82rem + 0.15vw, 0.94rem);
  font-weight: 600;
  color: var(--skin-text, #1f2937);
}

.mega-store .l1-cms__price-list__validity p {
  margin: 0;
}

/* Flat CMS TOC duplicates table rows — section headers live in the table */
.mega-store .l1-cms__price-list__toc {
  display: none;
}

.mega-store table.l1-cms__price-table {
  margin: 0;
  border-radius: calc(var(--mega-mod-radius, 12px) + 2px);
  font-size: clamp(0.86rem, 0.82rem + 0.18vw, 0.96rem);
}

@media (min-width: 576px) {
  .mega-store table.l1-cms__price-table {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: separate !important;
  }

  .mega-store table.l1-cms__price-table thead {
    display: table-header-group !important;
  }

  .mega-store table.l1-cms__price-table tbody {
    display: table-row-group !important;
  }

  .mega-store table.l1-cms__price-table tr {
    display: table-row !important;
  }

  .mega-store table.l1-cms__price-table th,
  .mega-store table.l1-cms__price-table td {
    display: table-cell !important;
  }

  .mega-store table.l1-cms__price-table col.l1-cms__price-table__col--service,
  .mega-store table.l1-cms__price-table .l1-cms__price-table__col--service,
  .mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--service {
    width: 56% !important;
  }

  .mega-store table.l1-cms__price-table col.l1-cms__price-table__col--net,
  .mega-store table.l1-cms__price-table .l1-cms__price-table__col--net,
  .mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--net {
    width: 22% !important;
  }

  .mega-store table.l1-cms__price-table col.l1-cms__price-table__col--gross,
  .mega-store table.l1-cms__price-table .l1-cms__price-table__col--gross,
  .mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--gross {
    width: 22% !important;
  }

  /* Layout1 impressum table rules — legacy CMS tables only (not price_list module) */
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) td:has(.row),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) td:has(p),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) td:has(ul),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(1),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(2),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(3),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th {
    display: table-cell !important;
    padding: clamp(0.55rem, 1.4vw, 0.75rem) clamp(0.85rem, 2vw, 1.15rem) !important;
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--net,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--gross {
    text-align: right !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--net,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--gross {
    background: var(--pl-head-bg, var(--skin-accent, #0f766e)) !important;
    color: var(--pl-head-color, #fff) !important;
    border-bottom: 0 !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(1),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th:first-child {
    padding-left: clamp(1.15rem, 2.4vw, 1.5rem) !important;
    text-align: left !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(2),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--net {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(0.85rem, 2vw, 1.15rem) !important;
    text-align: right !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__row > td:nth-child(3),
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) thead th.l1-cms__price-table__col--gross {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(1.15rem, 2.4vw, 1.5rem) !important;
    text-align: right !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__section,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__note {
    display: table-row !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__section > td.l1-cms__price-table__section-cell,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__note > td.l1-cms__price-table__note-cell {
    display: table-cell !important;
    width: 100% !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__section > td.l1-cms__price-table__section-cell {
    background: linear-gradient(
      90deg,
      var(--pl-head-bg, var(--skin-accent, #0f766e)) 0%,
      color-mix(in srgb, var(--pl-head-bg, var(--skin-accent, #0f766e)) 72%, #fff) 100%
    ) !important;
    border: 0 !important;
    border-bottom: 0 !important;
    color: var(--pl-head-color, #fff) !important;
    font-weight: 700 !important;
    padding: clamp(0.7rem, 1.6vw, 0.95rem) clamp(0.85rem, 2vw, 1.1rem) !important;
    padding-left: clamp(1.15rem, 2.4vw, 1.5rem) !important;
    text-align: left !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-cms__price-table:not(.l1-mod-price-list__table) > tbody > tr.l1-cms__price-table__note > td.l1-cms__price-table__note-cell {
    background: var(--pl-note-bg, rgba(14, 165, 233, 0.06)) !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
    color: rgba(15, 23, 42, 0.78) !important;
    padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.85rem, 2vw, 1.1rem) !important;
    padding-left: clamp(1.15rem, 2.4vw, 1.5rem) !important;
    text-align: left !important;
  }
}

body.storefront-bold .storefront-bold__page--cms .pagedata.pagedata--scroll #contentpagehere:has(.l1-cms__price-list):not(:has(.l1-mod-price-list)),
body.storefront-bold .storefront-bold__page--cms .pagedata.pagedata--scroll #contentpagehere:has(table.l1-cms__price-table):not(:has(.l1-mod-price-list__table)),
body.storefront-bold .storefront-bold__page--cms .pagedata.pagedata--date #contentpagehere,
.mega-store .pagedata--scroll #contentpagehere:has(.l1-cms__price-list):not(:has(.l1-mod-price-list)),
.mega-store .pagedata--scroll #contentpagehere:has(table.l1-cms__price-table):not(:has(.l1-mod-price-list__table)),
.mega-store .pagedata--date #contentpagehere,
.mega-store .pagedata.pagedata--scroll,
.mega-store .pagedata.pagedata--date {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
  padding-right: 0 !important;
}

.mega-store .mega-commerce--cms:has(.l1-cms__price-list),
.mega-store .mega-commerce--cms:has(table.l1-cms__price-table) {
  overflow: visible;
}

body.storefront-bold .storefront-bold__footer,
.mega-store .storefront__footer {
  position: relative;
  z-index: 10;
  clear: both;
}

.mega-store table.l1-cms__price-table td,
.mega-store table.l1-cms__price-table th {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td,
.mega-store table.l1-cms__price-table thead th {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
}

.mega-store table.l1-cms__price-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--pl-head-bg, var(--skin-accent, #0f766e));
  color: var(--pl-head-color, #fff);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.72rem;
  border-bottom: 0;
  padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.85rem, 2vw, 1.15rem);
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--service,
.mega-store table.l1-cms__price-table thead th:first-child {
  padding-left: clamp(1.25rem, 2.6vw, 1.65rem);
  text-align: left;
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--net {
  padding-left: clamp(0.85rem, 2vw, 1.15rem);
  padding-right: clamp(0.85rem, 2vw, 1.15rem);
  text-align: right;
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--gross {
  padding-left: clamp(0.85rem, 2vw, 1.15rem);
  padding-right: clamp(1.25rem, 2.6vw, 1.65rem);
  text-align: right;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td {
  padding: clamp(0.55rem, 1.4vw, 0.75rem) clamp(0.85rem, 2vw, 1.15rem);
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--service {
  padding-left: clamp(1.25rem, 2.6vw, 1.65rem);
  text-align: left;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--net {
  padding-left: clamp(0.85rem, 2vw, 1.15rem);
  padding-right: clamp(0.85rem, 2vw, 1.15rem);
  color: var(--pl-net-color, var(--pl-text, var(--skin-text, #0f172a)));
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
  padding-left: clamp(0.85rem, 2vw, 1.15rem);
  padding-right: clamp(1.25rem, 2.6vw, 1.65rem);
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--net,
.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--net,
.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--gross,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--net,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross {
  font-weight: 600;
  font-variant-numeric: normal;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
  font-weight: 700;
  color: var(--pl-gross-color, var(--pl-accent, var(--skin-accent, #0f766e)));
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--service,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service {
  color: var(--pl-head-service, var(--pl-head-color, #fff));
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--net,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--net {
  color: var(--pl-head-net, var(--pl-head-color, #fff));
}

.mega-store table.l1-cms__price-table thead th.l1-cms__price-table__col--gross,
.mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross,
body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross {
  color: var(--pl-head-gross, var(--pl-head-color, #fff));
}

.mega-store .l1-mod-price-list__validity {
  color: var(--pl-validity-text, var(--pl-text, var(--skin-text, #1f2937)));
  background: var(--pl-validity-bg, color-mix(in srgb, var(--pl-accent, var(--skin-accent, #0f766e)) 10%, #fff));
  border-left-color: var(--pl-validity-border, var(--pl-accent, var(--skin-accent, #0f766e)));
}

.mega-store .l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn {
  color: var(--pl-pdf-text, #fff) !important;
  background: linear-gradient(
    135deg,
    var(--pl-pdf-bg, #dc2626) 0%,
    color-mix(in srgb, var(--pl-pdf-bg, #b91c1c) 82%, #000) 100%
  ) !important;
  border-color: color-mix(in srgb, var(--pl-pdf-bg, #b91c1c) 65%, #000) !important;
}

button.l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid transparent;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  text-decoration: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  min-height: 2.75rem;
  min-width: 2.75rem;
  padding: 0.65rem 1.15rem;
  user-select: none;
  -webkit-user-select: none;
}

button.l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn .fa,
button.l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn .storefront-bold__cms-pdf-btn__label {
  pointer-events: none;
}

button.l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn:disabled {
  cursor: wait;
}

.mega-store .l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn .fa,
.mega-store .l1-mod-price-list__pdf-btn.storefront-bold__cms-pdf-btn .storefront-bold__cms-pdf-btn__label {
  color: inherit !important;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__row:nth-child(even) td {
  background: var(--pl-row-alt-bg, rgba(15, 23, 42, 0.02));
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__section td {
  border-bottom: 0;
  padding: 0;
}

.mega-store table.l1-cms__price-table .l1-cms__price-table__section-cell {
  padding: clamp(0.7rem, 1.6vw, 0.95rem) clamp(0.85rem, 2vw, 1.1rem);
  padding-left: clamp(1.25rem, 2.6vw, 1.65rem);
  background: linear-gradient(
    90deg,
    var(--pl-head-bg, var(--skin-accent, #0f766e)) 0%,
    color-mix(in srgb, var(--pl-head-bg, var(--skin-accent, #0f766e)) 72%, #fff) 100%
  );
  color: var(--pl-head-color, #fff);
  font-weight: 700;
  font-size: clamp(0.92rem, 0.88rem + 0.2vw, 1.05rem);
  letter-spacing: 0.02em;
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__section + tr.l1-cms__price-table__row td {
  border-top: 0;
}

.mega-store table.l1-cms__price-table .l1-cms__price-table__note-cell {
  padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.85rem, 2vw, 1.1rem);
  padding-left: clamp(1.25rem, 2.6vw, 1.65rem);
  background: var(--pl-note-bg, rgba(14, 165, 233, 0.06));
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
  font-size: clamp(0.82rem, 0.78rem + 0.15vw, 0.9rem);
  line-height: 1.55;
  color: var(--pl-note-color, rgba(15, 23, 42, 0.78));
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__note:last-child .l1-cms__price-table__note-cell {
  border-bottom: 0;
  border-radius: 0 0 var(--mega-mod-radius, 12px) var(--mega-mod-radius, 12px);
}

@media (max-width: 767.98px) {
  .mega-store table.l1-cms__price-table thead th {
    position: static;
  }
}

@media (max-width: 575.98px) {
  .mega-store .l1-cms__price-list:not(.l1-mod-price-list__table-wrap) {
    padding: clamp(0.75rem, 3vw, 1rem);
    border-radius: var(--mega-mod-radius, 12px);
  }

  /* Legacy CMS price tables only — not price_list module (.l1-mod-price-list__table) */
  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table),
  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tbody {
    display: block;
    width: 100%;
    border: 0;
    box-shadow: none;
    background: transparent;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) thead {
    display: none;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__section {
    display: block;
    margin: clamp(1rem, 3vw, 1.35rem) 0 0.45rem;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__section td {
    display: block;
    padding: 0;
    border: 0;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) .l1-cms__price-table__section-cell {
    border-radius: var(--mega-mod-radius, 12px);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
    padding-left: clamp(1.15rem, 2.4vw, 1.5rem);
    background: linear-gradient(
      90deg,
      var(--pl-head-bg, var(--skin-accent, #0f766e)) 0%,
      color-mix(in srgb, var(--pl-head-bg, var(--skin-accent, #0f766e)) 72%, #fff) 100%
    ) !important;
    color: var(--pl-head-color, #fff) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__note {
    display: block;
    margin-bottom: 0.65rem;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__note td {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) .l1-cms__price-table__note-cell {
    border-radius: var(--mega-mod-radius, 12px);
    border: 1px dashed rgba(15, 23, 42, 0.12);
    background: var(--pl-note-bg, rgba(14, 165, 233, 0.06)) !important;
    color: var(--pl-note-color, rgba(15, 23, 42, 0.78)) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row {
    display: block;
    margin-bottom: 0.65rem;
    padding: 0.85rem 1rem 0.85rem clamp(1rem, 3vw, 1.25rem);
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: var(--mega-mod-radius, 12px);
    background: var(--pl-row-bg, #fff);
    box-shadow: 0 2px 10px rgba(15, 23, 42, 0.05);
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row td {
    display: block;
    width: 100%;
    padding: 0.2rem 0;
    border: 0;
    background: transparent !important;
    text-align: var(--pl-align-service, left) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--net,
  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--gross {
    text-align: var(--pl-align-net, right) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--gross {
    text-align: var(--pl-align-gross, right) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--service {
    font-weight: 600;
    font-size: 0.94rem;
    margin-bottom: 0.45rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    text-align: var(--pl-align-service, left) !important;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--service::before {
    display: none;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--net,
  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--gross {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.15rem 0;
  }

  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--net::before,
  .mega-store table.l1-cms__price-table:not(.l1-mod-price-list__table) tr.l1-cms__price-table__row .l1-cms__price-table__col--gross::before {
    content: attr(data-label);
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(15, 23, 42, 0.55);
    margin: 0;
  }
}

/* CMS service cards — platform baseline (layout1 bold extends in layout1-page.css) */
.mega-store .l1-cms__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  border-radius: var(--mega-mod-radius, 12px);
  overflow: hidden;
  background: var(--skin-bg, #fff);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  border: 1px solid rgba(15, 23, 42, 0.08);
}

.mega-store .l1-cms__card-media {
  display: block;
  line-height: 0;
  overflow: hidden;
  background: rgba(15, 23, 42, 0.04);
}

.mega-store .l1-cms__card-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.mega-store .l1-cms__card-body {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: clamp(0.85rem, 2vw, 1.15rem);
  flex: 1 1 auto;
}

.mega-store .l1-cms__card-title {
  margin: 0;
  font-size: clamp(1rem, 0.96rem + 0.25vw, 1.15rem);
  line-height: 1.3;
}

.mega-store .l1-cms__card-title a {
  color: var(--skin-text, #1f2937);
  text-decoration: none;
}

.mega-store .l1-cms__card-text {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.55;
  color: rgba(15, 23, 42, 0.72);
}

/* Image+text table rows: stack as cards on phones */
@media (max-width: 767.98px) {
  .mega-store #contentpagehere table.l1-cms__table:has(td img) tr,
  .mega-store .storefront-bold__prose table.l1-cms__table:has(td img) tr,
  .mega-store .layout-page__main .content-module table:has(td img) tr {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-bottom: 1rem;
    padding: 0.85rem;
    border: 1px solid rgba(15, 23, 42, 0.10);
    border-radius: var(--mega-mod-radius, 12px);
    background: rgba(255, 255, 255, 0.55);
  }

  .mega-store #contentpagehere table.l1-cms__table:has(td img) td,
  .mega-store .storefront-bold__prose table.l1-cms__table:has(td img) td,
  .mega-store .layout-page__main .content-module table:has(td img) td {
    display: block;
    width: 100% !important;
    padding: 0;
  }
}

/* --------------------------------------------------------------------------
   Price List module (.l1-mod-price-list) — platform module type price_list
   -------------------------------------------------------------------------- */
.mega-store .mega-commerce--cms .pagedata #contentpagehere:has(.l1-mod-price-list) {
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 767.98px) {
  .mega-store .mega-commerce--cms .pagedata #contentpagehere:has(.l1-mod-price-list) {
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px)) !important;
  }
}

.mega-store .l1-mod-price-list {
  margin: clamp(0.5rem, 2vw, 1rem) 0;
}

.mega-store .l1-mod-price-list__pdf {
  margin: 0 0 clamp(0.85rem, 2vw, 1.15rem);
  text-align: center;
}

.mega-store .l1-mod-price-list__validity {
  margin-bottom: clamp(0.75rem, 2vw, 1rem);
}

.mega-store .l1-mod-price-list__intro,
.mega-store .l1-mod-price-list__footer-notes {
  margin-bottom: clamp(0.85rem, 2.2vw, 1.15rem);
  padding-top: clamp(0.75rem, 2vw, 0.95rem);
  padding-bottom: clamp(0.75rem, 2vw, 0.95rem);
  padding-right: clamp(0.85rem, 2.2vw, 1.1rem);
  padding-left: clamp(1.25rem, 2.6vw, 1.65rem);
  border-radius: var(--mega-mod-radius, 12px);
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: var(--pl-note-bg, rgba(14, 165, 233, 0.06));
  color: var(--pl-note-color, var(--pl-text, rgba(15, 23, 42, 0.82)));
  font-size: clamp(0.9rem, 0.86rem + 0.2vw, 1rem);
  line-height: 1.6;
  max-width: 100%;
  box-sizing: border-box;
}

.mega-store .l1-mod-price-list__footer-notes {
  margin-top: clamp(0.85rem, 2.2vw, 1.15rem);
  margin-bottom: 0;
}

.mega-store .l1-mod-price-list__intro .l1-mod-price-list__note-text,
.mega-store .l1-mod-price-list__footer-notes .l1-mod-price-list__note-text {
  margin: 0 0 0.65rem;
}

.mega-store .l1-mod-price-list__intro .l1-mod-price-list__note-text:last-child,
.mega-store .l1-mod-price-list__footer-notes .l1-mod-price-list__note-text:last-child {
  margin-bottom: 0;
}

.mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th {
  hyphens: auto;
  overflow-wrap: anywhere;
  word-wrap: break-word;
  line-height: 1.25;
}

.mega-store .l1-mod-price-list__table-wrap {
  margin: 0;
}

.mega-store .content-module--cms-inline .l1-mod-price-list {
  margin: 0;
}

.mega-store #contentpagehere .content-module--price-list,
.mega-store #contentpagehere .l1-mod-price-list {
  max-width: 100%;
}

.mega-store .l1-mod-price-list.storefront-bold__module-section--cms-inline .container {
  width: 100%;
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
}

@media (max-width: 767.98px) {
  .mega-store .l1-mod-price-list.storefront-bold__module-section--cms-inline .container {
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px)) !important;
  }

  body.storefront-bold .storefront-bold__page--cms .pagedata #contentpagehere:has(.l1-mod-price-list),
  .mega-store .pagedata #contentpagehere:has(.l1-mod-price-list) {
    padding-left: max(0.75rem, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(0.75rem, env(safe-area-inset-right, 0px)) !important;
  }

  .mega-store #contentpagehere .content-module--price-list,
  .mega-store #contentpagehere .l1-mod-price-list {
    padding-left: max(0.25rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.25rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }
}

/* Price list module — cell + wrapper padding (restores layout after impressum :not() scope) */
.mega-store .l1-mod-price-list .l1-cms__price-list.l1-mod-price-list__table-wrap {
  padding: clamp(1rem, 2.5vw, 1.5rem);
}

@media (min-width: 576px) {
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table th,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table td,
  .mega-store table.l1-mod-price-list__table th,
  .mega-store table.l1-mod-price-list__table td {
    display: table-cell !important;
    box-sizing: border-box !important;
    padding-top: clamp(0.55rem, 1.4vw, 0.75rem) !important;
    padding-bottom: clamp(0.55rem, 1.4vw, 0.75rem) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__note-cell,
  .mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
  .mega-store table.l1-mod-price-list__table thead th:first-child,
  .mega-store table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--service,
  .mega-store table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  .mega-store table.l1-mod-price-list__table .l1-cms__price-table__note-cell {
    padding-left: clamp(1.25rem, 2.6vw, 1.65rem) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--net,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--net,
  .mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--net,
  .mega-store table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--net {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(0.85rem, 2vw, 1.15rem) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross,
  .mega-store table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross,
  .mega-store table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(1.25rem, 2.6vw, 1.65rem) !important;
  }
}

.mega-store table.l1-cms__price-table tr.l1-cms__price-table__spacer td {
  padding: 0.15rem 0;
  border: 0 !important;
  background: transparent !important;
  line-height: 0;
  font-size: 0;
}

/* Price list title band padding — owned by .l1-mod-price-list__head rules above */

/* Price List PDF export — force desktop table layout in html2pdf clone */
.l1-mod-price-list--pdf-export {
  box-sizing: border-box;
}

.l1-mod-price-list--pdf-export .l1-mod-price-list__validity {
  margin-bottom: 12px;
  padding: 8px 12px;
  border-left: 4px solid var(--pl-accent, #0f766e);
  background: color-mix(in srgb, var(--pl-accent, #0f766e) 8%, #fff);
  font-size: 10pt;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table {
  display: table !important;
  width: 100% !important;
  border-collapse: collapse !important;
  border: 1px solid rgba(15, 23, 42, 0.12) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  box-shadow: none !important;
  background: #fff !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead {
  display: table-header-group !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tbody {
  display: table-row-group !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tr {
  display: table-row !important;
  page-break-inside: avoid !important;
  break-inside: avoid !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table th,
.l1-mod-price-list--pdf-export table.l1-cms__price-table td {
  display: table-cell !important;
  width: auto !important;
  padding: 8px 10px !important;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
  background: transparent !important;
  text-align: inherit !important;
  box-shadow: none !important;
}

.l1-mod-price-list__pdf-btn.is-loading {
  opacity: 0.65;
  pointer-events: none;
}

.l1-mod-price-list__pdf-btn.is-error {
  opacity: 1;
  box-shadow: 0 0 0 2px #b91c1c inset;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th {
  background: var(--pl-head-bg, #0f766e) !important;
  font-size: 9pt !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--service {
  color: var(--pl-head-service, var(--pl-head-color, #fff)) !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--net {
  color: var(--pl-head-net, var(--pl-head-color, #fff)) !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--gross {
  color: var(--pl-head-gross, var(--pl-head-color, #fff)) !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table .l1-cms__price-table__section-cell {
  background: var(--pl-head-bg, #0f766e) !important;
  color: var(--pl-head-color, #fff) !important;
  font-weight: 700 !important;
  font-size: 10pt !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table .l1-cms__price-table__note-cell {
  background: var(--pl-note-bg, rgba(14, 165, 233, 0.08)) !important;
  color: var(--pl-note-color, #334155) !important;
  font-size: 9pt !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--net {
  color: var(--pl-net-color, var(--pl-text, #0f172a)) !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
  color: var(--pl-gross-color, var(--pl-accent, #0f766e)) !important;
  font-weight: 700 !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--service {
  color: var(--pl-head-service, var(--pl-head-color, #fff)) !important;
  font-weight: inherit !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--net {
  color: var(--pl-head-net, var(--pl-head-color, #fff)) !important;
  font-weight: inherit !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table thead th.l1-cms__price-table__col--gross {
  color: var(--pl-head-gross, var(--pl-head-color, #fff)) !important;
  font-weight: inherit !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tr.l1-cms__price-table__row .l1-cms__price-table__col--net::before,
.l1-mod-price-list--pdf-export table.l1-cms__price-table tr.l1-cms__price-table__row .l1-cms__price-table__col--gross::before {
  display: none !important;
  content: none !important;
}

.l1-mod-price-list--pdf-export table.l1-cms__price-table tr.l1-cms__price-table__spacer {
  display: none !important;
}

/* Price list module — phones/tablets: desktop table + horizontal scroll + same theme colors */
@media (max-width: 767.98px) {
  .mega-store .l1-mod-price-list,
  .mega-store .l1-mod-price-list .l1-mod-price-list__table-wrap,
  .mega-store #contentpagehere .l1-mod-price-list {
    overflow: visible;
    max-width: 100%;
  }

  .mega-store .l1-mod-price-list .l1-cms__price-list.l1-mod-price-list__table-wrap {
    padding: clamp(1rem, 3.5vw, 1.35rem) clamp(1rem, 3.2vw, 1.25rem);
    border-radius: var(--mega-mod-radius, 12px);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .mega-store .l1-mod-price-list__pdf,
  .mega-store .l1-mod-price-list__validity {
    padding-left: max(0.35rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.35rem, env(safe-area-inset-right, 0px));
    box-sizing: border-box;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table {
    display: table !important;
    width: 100% !important;
    min-width: min(100%, 520px);
    max-width: none;
    margin: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
    table-layout: fixed !important;
    border-collapse: separate !important;
    border-spacing: 0;
    font-size: clamp(0.76rem, 2.6vw, 0.88rem);
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table col.l1-cms__price-table__col--service {
    width: 48% !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table col.l1-cms__price-table__col--net,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table col.l1-cms__price-table__col--gross {
    width: 26% !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead {
    display: table-header-group !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tbody {
    display: table-row-group !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr {
    display: table-row !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__section,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__note,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__spacer {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table th,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table td {
    display: table-cell !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    max-width: none !important;
    padding-top: clamp(0.5rem, 1.2vw, 0.65rem) !important;
    padding-bottom: clamp(0.5rem, 1.2vw, 0.65rem) !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08) !important;
    box-shadow: none !important;
    text-align: inherit !important;
    white-space: nowrap;
    flex: none !important;
    justify-content: unset !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--service {
    white-space: normal;
    word-break: break-word;
    color: var(--pl-text, #0f172a) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th {
    position: static;
    font-size: 0.65rem;
    background: var(--pl-head-bg, var(--skin-accent, #0f766e)) !important;
    color: var(--pl-head-color, #fff) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th:first-child {
    padding-left: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    text-align: var(--pl-align-service, left) !important;
    color: var(--pl-head-service, var(--pl-head-color, #fff)) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th.l1-cms__price-table__col--net {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(0.85rem, 2vw, 1.15rem) !important;
    text-align: var(--pl-align-net, right) !important;
    color: var(--pl-head-net, var(--pl-head-color, #fff)) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    text-align: var(--pl-align-gross, right) !important;
    color: var(--pl-head-gross, var(--pl-head-color, #fff)) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__section-cell {
    padding: clamp(0.65rem, 1.4vw, 0.85rem) clamp(0.85rem, 2vw, 1.1rem) !important;
    padding-left: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: linear-gradient(
      90deg,
      var(--pl-head-bg, var(--skin-accent, #0f766e)) 0%,
      color-mix(in srgb, var(--pl-head-bg, var(--skin-accent, #0f766e)) 72%, #fff) 100%
    ) !important;
    color: var(--pl-head-color, #fff) !important;
    text-align: var(--pl-align-section, left) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__note-cell {
    padding: clamp(0.65rem, 1.5vw, 0.85rem) clamp(0.85rem, 2vw, 1.1rem) !important;
    padding-left: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    white-space: normal;
    border-radius: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
    background: var(--pl-note-bg, rgba(14, 165, 233, 0.06)) !important;
    color: var(--pl-note-color, rgba(15, 23, 42, 0.78)) !important;
    text-align: var(--pl-align-note, left) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--service {
    padding-left: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    font-weight: 600;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--net {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(0.85rem, 2vw, 1.15rem) !important;
    text-align: var(--pl-align-net, right) !important;
    color: var(--pl-net-color, var(--pl-text, #0f172a)) !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
    padding-left: clamp(0.85rem, 2vw, 1.15rem) !important;
    padding-right: clamp(1.25rem, 2.6vw, 1.65rem) !important;
    text-align: var(--pl-align-gross, right) !important;
    color: var(--pl-gross-color, var(--pl-accent, var(--skin-accent, #0f766e))) !important;
    font-weight: 700;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row .l1-cms__price-table__col--net::before,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row .l1-cms__price-table__col--gross::before {
    display: none !important;
    content: none !important;
  }

  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row:nth-child(even) td {
    background: var(--pl-row-alt-bg, rgba(15, 23, 42, 0.02)) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere .l1-mod-price-list table.l1-mod-price-list__table th,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere .l1-mod-price-list table.l1-mod-price-list__table td {
    display: table-cell !important;
    visibility: visible !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere .l1-mod-price-list table.l1-mod-price-list__table thead th {
    background: var(--pl-head-bg, var(--skin-accent, #0f766e)) !important;
    color: var(--pl-head-color, #fff) !important;
  }
}

/* Price list module — small phones: stronger cell inset (mirrors desktop fix) */
@media (max-width: 575.98px) {
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th:first-child,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--service,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__note-cell,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th.l1-cms__price-table__col--service,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th:first-child,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--service,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__note-cell {
    padding-left: clamp(1.35rem, 4.5vw, 1.75rem) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table tbody tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table thead th.l1-cms__price-table__col--gross,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table tr.l1-cms__price-table__row td.l1-cms__price-table__col--gross {
    padding-right: clamp(1.35rem, 4.5vw, 1.75rem) !important;
  }

  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  body.storefront-bold .storefront-bold__page--cms #contentpagehere table.l1-mod-price-list__table .l1-cms__price-table__note-cell,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__section-cell,
  .mega-store .l1-mod-price-list table.l1-mod-price-list__table .l1-cms__price-table__note-cell {
    padding-right: clamp(1.15rem, 3.8vw, 1.45rem) !important;
  }

  .mega-store .l1-mod-price-list .l1-cms__price-list.l1-mod-price-list__table-wrap {
    padding: clamp(1.05rem, 4vw, 1.4rem) clamp(1rem, 3.8vw, 1.3rem);
  }

  .mega-store .l1-mod-price-list__intro,
  .mega-store .l1-mod-price-list__footer-notes {
    padding-left: clamp(1.35rem, 4.5vw, 1.75rem);
    padding-right: clamp(1.15rem, 3.8vw, 1.45rem);
  }
}

