/* Phase 6.2 live-bridge — minimal adapters only; presentation comes from ported live CSS */

:root {
  --minimog-color-primary: #000;
}

/* Skip link — keyboard only */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
  padding: 12px 16px;
  background: #000;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}
.skip-link:focus,
.skip-link:focus-visible {
  left: 12px;
  top: 12px;
  outline: 2px solid #fff;
  outline-offset: 2px;
  clip: auto;
  clip-path: none;
  height: auto;
  width: auto;
  margin: 0;
  overflow: visible;
  white-space: normal;
}
.screen-reader-text:not(:focus):not(:focus-visible) {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
}

body {
  margin: 0;
  font-family: Jost, "Jost Fallback", sans-serif;
}

.branding__logo img.logo,
.branding__logo .dark-logo {
  width: 145px !important;
  max-width: 145px !important;
  height: auto !important;
  max-height: 41px !important;
}

.page-header-place-holder {
  height: 70px;
  display: block;
}

/* Live sticky header: only placeholder consumes document flow */
#page-header-inner {
  position: fixed !important;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 9999;
  background: #fff;
  min-height: 70px;
}

#page-header-inner .header-wrap {
  min-height: 70px;
  align-items: center;
}

@media (max-width: 1199px) {
  .page-header-place-holder {
    height: 50px;
  }
  #page-header-inner,
  #page-header-inner .header-wrap {
    min-height: 50px;
  }
  .branding__logo img.logo,
  .branding__logo .dark-logo {
    width: 100px !important;
    max-width: 100px !important;
    max-height: 28px !important;
  }
  /* Live mobile header: hamburger | logo | search — Login hidden */
  .header-buttons,
  a.tm-button.header-button {
    display: none !important;
  }
  #page-header-inner .container-wide {
    padding-left: 7px !important;
    padding-right: 7px !important;
    max-width: none !important;
    width: 100% !important;
  }
  #page-header-inner .header-wrap {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
  #page-header-inner .header-left,
  #page-header-inner .header-right {
    flex: 1 1 0;
    width: auto !important;
    max-width: none !important;
  }
  #page-header-inner .header-center {
    flex: 0 0 auto;
  }
  #page-header-inner .header-right .header-content-inner {
    display: flex !important;
    justify-content: flex-end !important;
    width: 100%;
  }
  #page-header-inner .page-open-popup-search {
    margin-right: 0 !important;
    margin-left: auto !important;
    position: relative;
    right: 8px;
  }
  #page-header-inner .header-right {
    display: flex !important;
    justify-content: flex-end !important;
    padding-right: 0 !important;
  }
}

.header-buttons .tm-button.header-button,
a.tm-button.header-button {
  font-weight: 500;
}

.container-wide {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 50px;
  padding-right: 50px;
  box-sizing: border-box;
}

/* Match live content column: (1440-1170)/2 = 135px inset */
.single-product-page.container,
.container.single-product-page {
  max-width: 1170px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

.woo-single-info {
  display: flex !important;
  flex-wrap: nowrap;
  gap: 70px;
  align-items: flex-start;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 1170px !important;
}
.woo-single-images.col {
  flex: 0 0 570px;
  max-width: 570px;
  width: 570px;
}
.summary.entry-summary.col {
  flex: 1 1 530px;
  max-width: 530px;
  width: 530px;
}

.woo-single-gallery.thumbs-slider-vertical {
  display: flex !important;
  flex-direction: row;
  gap: 0;
  align-items: flex-start;
  width: 570px;
  position: relative;
}
.woo-single-gallery.thumbs-slider-vertical .minimog-thumbs-swiper-wrap {
  order: 0;
  position: absolute !important;
  left: 0;
  top: 0;
  bottom: 0;
  width: 90px !important;
  flex: none;
  padding-right: 20px;
  box-sizing: border-box;
}
.woo-single-gallery.thumbs-slider-vertical .minimog-main-swiper {
  flex: 1 1 auto;
  width: 480px;
  max-width: 480px;
  margin-left: 90px;
}
.woo-single-gallery .minimog-main-swiper .swiper-slide,
.woo-single-gallery .minimog-main-swiper img {
  width: 480px !important;
  max-width: 480px !important;
  height: auto;
  aspect-ratio: 600 / 708;
  object-fit: fill;
  display: inline;
}

body.single-product .summary .product_title,
body.single-product .summary .product_title.entry-title {
  font-size: 30px !important;
  line-height: 1.54 !important;
  font-weight: 500;
  margin: 0 !important;
  padding: 0 !important;
}
body.single-product .summary .product-title-wrap {
  margin: 0 0 0 !important;
}
body.single-product .summary .entry-price-wrap {
  margin: 5px 0 0 !important;
  height: 7px !important;
  max-height: 7px !important;
  min-height: 7px !important;
  line-height: 7px !important;
  font-size: 14px !important;
  opacity: 0 !important;
  overflow: hidden !important;
}
body.single-product .summary .entry-price-wrap .price {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 7px !important;
  font-size: 14px !important;
}
body.single-product .summary .woocommerce-product-details__short-description {
  margin-top: 20px !important;
  margin-bottom: 8px !important;
  line-height: 28px !important;
  font-size: 16px !important;
}
body.single-product .summary .live-viewing-visitors {
  margin-top: 23px !important;
  margin-bottom: 0 !important;
  font-size: 16px !important;
  line-height: 28px !important;
}
body.single-product .summary .isw-swatches.variations_form {
  margin-top: 22px !important;
}
body.single-product .summary .isw-swatch {
  margin-top: -5px !important;
  margin-bottom: -5px !important;
  margin-left: -5px !important;
  margin-right: -5px !important;
  width: calc(100% + 10px) !important;
  max-width: none !important;
}
body.single-product .summary {
  line-height: 28px !important;
}
body.single-product .summary .product-popup-links {
  margin-top: 0 !important;
}

.page-sidebar .widget-content-inner {
  max-height: none;
  overflow: visible;
}
.page-sidebar .widget-scrollable .widget-content-inner {
  max-height: 230px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.page-sidebar .btn-clear-filters {
  display: none !important;
}

/* Shop archive layout (live Minimog) */
body.archive .shop-content-wrapper.container-wide,
body.woocommerce-shop .shop-content-wrapper.container-wide {
  padding-left: 35px !important;
  padding-right: 50px !important;
}
body.archive .catalogue-layout {
  gap: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
}
body.archive .catalogue-layout .page-main-content {
  /* Live grid spans to container right edge: keep left gap pad, drop right pad */
  padding-right: 0 !important;
}
body.archive .catalogue-layout .page-sidebar {
  box-sizing: border-box;
}
body.archive .catalogue-layout .page-sidebar,
body.archive .page-sidebar {
  width: 342.5px !important;
  flex: 0 0 342.5px !important;
  max-width: 342.5px !important;
}
body.archive .page-main-content .entry-title.page-title {
  font-size: 34px !important;
  font-weight: 400 !important;
  line-height: 1.3;
  margin: 0 0 14px !important;
  width: 100%;
}
body.archive .archive-products-topbar {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  /* Live: title→card = 124.2px (ordering mb 10 + ~22 before grid). Topbar wraps title+actions. */
  margin: 0 0 32px !important;
}
body.archive .archive-products-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  min-height: 34px;
}
body.archive .archive-products-actions > .inner {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  height: 34px;
}
body.archive .js-product-ordering {
  margin: 0;
  display: inline-block;
}
body.archive .minimog-nice-select-wrap {
  display: inline-block;
  position: relative;
  height: 34px;
  vertical-align: middle;
}
body.archive .minimog-nice-select-current {
  display: flex;
  align-items: center;
  height: 34px;
  padding: 3px 18px 3px 0;
  font-size: 16px;
  font-weight: 500;
  color: #000;
  cursor: pointer;
  background-image: url("../svg/select-arrow.svg");
  background-repeat: no-repeat;
  background-position: 99% 50%;
  background-size: 10px auto;
  white-space: nowrap;
}
body.archive ul.minimog-nice-select {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 9999;
  width: 200px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  border: 1px solid #e5e5e5;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
body.archive .minimog-nice-select-wrap.open ul.minimog-nice-select,
body.archive ul.minimog-nice-select:not([hidden]) {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
body.archive ul.minimog-nice-select .item {
  padding: 8px 14px;
  font-size: 14px;
  cursor: pointer;
}
body.archive ul.minimog-nice-select .item.selected,
body.archive ul.minimog-nice-select .item:hover {
  background: #f5f5f5;
}
body.archive .archive-layout-switcher {
  display: block;
}
body.archive .archive-layout-switcher > .inner {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 34px;
}
body.archive .archive-layout-switcher .switcher-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: #f2f2f2;
  color: #666;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
body.archive .archive-layout-switcher .switcher-item:hover,
body.archive .archive-layout-switcher .switcher-item:focus-visible {
  background: #ebebeb;
  color: #000;
  outline: 2px solid #000;
  outline-offset: 1px;
}
body.archive .archive-layout-switcher .switcher-item.current,
body.archive .archive-layout-switcher .switcher-item[aria-pressed="true"] {
  background: #e0e0e0;
  color: #000;
}
/* legacy stub buttons (unused) */
body.archive .archive-columns-switcher { display: none !important; }
body.archive .minimog-product .minimog-grid.products {
  display: grid !important;
  grid-template-columns: repeat(var(--grid-columns-desktop, 3), minmax(0, 1fr)) !important;
  gap: calc(var(--grid-gutter-desktop, 30) * 1px) !important;
}
/* Explicit column states — do not rely on Minimog columns-* alone */
body.archive [data-catalogue-grid][data-grid-columns="3"],
html[data-catalogue-cols="3"] body.archive [data-catalogue-grid] {
  --grid-columns-desktop: 3;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.archive [data-catalogue-grid][data-grid-columns="4"],
html[data-catalogue-cols="4"] body.archive [data-catalogue-grid] {
  --grid-columns-desktop: 4;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
html[data-catalogue-cols="4"] body.archive .minimog-grid-wrapper[data-infinite-scroll],
html[data-catalogue-cols="4"] body.archive .minimog-product .minimog-grid.products {
  --grid-columns-desktop: 4;
}
html[data-catalogue-cols="3"] body.archive .minimog-grid-wrapper[data-infinite-scroll],
html[data-catalogue-cols="3"] body.archive .minimog-product .minimog-grid.products {
  --grid-columns-desktop: 3;
}
body.archive .minimog-product .product-main-image img,
body.archive .minimog-product .product-hover-image img {
  aspect-ratio: 3 / 4;
  width: 100%;
  height: auto;
  object-fit: cover;
  display: block;
}
body.archive .minimog-product .woocommerce-loop-product__title {
  font-size: 16px !important;
  font-weight: 500;
  line-height: 24px !important;
  margin: 0 !important;
}
.minimog-product .product-action.quick-view-btn {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.minimog-product .product-action.quick-view-btn .quick-view-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}
.page-footer-wrapper h2.tm-collapsible__title,
.page-footer-wrapper h3.elementor-heading-title {
  font-size: inherit;
  font-weight: inherit;
  margin: inherit;
  line-height: inherit;
}
body.archive .minimog-product .term-shape {
  width: 26px !important;
  height: 26px !important;
}
body.archive .minimog-product .loop-product-variation-selector {
  margin-top: 1px !important;
}
body.archive .minimog-product .product-thumbnail {
  margin-bottom: 21px !important;
}
body.archive .minimog-product .product-info {
  padding-bottom: 20px !important;
  line-height: 0 !important;
}
body.archive .archive-columns-switcher {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
body.archive .archive-columns-switcher .column-btn {
  display: inline-block;
  width: 28px;
  height: 28px;
  border: 1px solid #ddd;
  background:
    linear-gradient(#bbb,#bbb) center/1px 60% no-repeat;
  opacity: .55;
  cursor: default;
}
body.archive .archive-columns-switcher .column-btn[data-cols="1"] {
  background: linear-gradient(#bbb,#bbb) center/40% 60% no-repeat;
}
body.archive .archive-columns-switcher .column-btn[data-cols="2"] {
  background:
    linear-gradient(#bbb,#bbb) 35% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 65% center/1px 60% no-repeat;
}
body.archive .archive-columns-switcher .column-btn[data-cols="3"] {
  background:
    linear-gradient(#bbb,#bbb) 30% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 50% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 70% center/1px 60% no-repeat;
}
body.archive .archive-columns-switcher .column-btn[data-cols="4"] {
  background:
    linear-gradient(#bbb,#bbb) 28% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 42% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 58% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 72% center/1px 60% no-repeat;
}
body.archive .archive-columns-switcher .column-btn[data-cols="5"] {
  background:
    linear-gradient(#bbb,#bbb) 22% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 36% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 50% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 64% center/1px 60% no-repeat,
    linear-gradient(#bbb,#bbb) 78% center/1px 60% no-repeat;
}
body.archive .archive-columns-switcher .column-btn.active {
  opacity: 1;
  border-color: #999;
  background-color: #eee;
}

/* Match live content column: (1440-1170)/2 = 135px inset */
.single-product-page.container,
.container.single-product-page {
  max-width: 1170px !important;
  width: 1170px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 300;
  font-display: block;
  src: url("../live/webfonts/fa-light-300.woff2") format("woff2");
}
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url("../live/webfonts/fa-regular-400.woff2") format("woff2");
}
@font-face {
  font-family: "Font Awesome 5 Pro";
  font-style: normal;
  font-weight: 900;
  font-display: block;
  src: url("../live/webfonts/fa-solid-900.woff2") format("woff2");
}

/* Mega menu open (SmartMenus substitute) */
.menu-item.has-mega-menu:hover > .mega-menu,
.menu-item.has-mega-menu.is-open > .mega-menu,
[data-mega-root].is-open > .mega-menu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.menu-item .mega-menu {
  display: none;
}
.menu-item.has-mega-menu .mega-menu {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  z-index: 999;
  background: #fff;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.06);
  max-height: none;
  overflow: visible;
  padding: 37px 0 43px;
}
/* Live Minimog style-10 category tiles (wc-frontend) — do not force 41px */
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .cat-wrap {
  display: flex !important;
  align-items: center !important;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .minimog-image-wrapper {
  flex-shrink: 0;
  margin: 0 10px 0 0 !important;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .minimog-image {
  width: 38px !important;
  max-width: 100%;
  border: 1px solid #e0dbdb;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .minimog-image:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .minimog-image .cat-image {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 9;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .minimog-image img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 0 !important;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .category-name,
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .category-name a {
  font-size: 16px !important;
  line-height: 1.375 !important;
  font-weight: 500 !important;
  margin: 0 !important;
}
.menu-item.has-mega-menu .mega-menu .minimog-product-categories.style-10 .category-count {
  display: none !important;
}

[data-media-root].is-open > .sub-menu,
[data-media-root]:hover > .sub-menu {
  display: block;
  visibility: visible;
  opacity: 1;
}

/* Search popup open state — match Minimog modal */
#popup-search.page-search-popup {
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: none;
  background: rgba(0, 0, 0, 0.6);
}
#popup-search.page-search-popup.open,
#popup-search.page-search-popup:not([hidden]) {
  display: block;
}
#popup-search[hidden] {
  display: none !important;
}
#popup-search .inner {
  position: relative;
  background: #fff;
  padding: 32px 0;
  min-height: 146px;
  box-sizing: border-box;
}
#popup-search .search-popup-heading {
  display: none !important;
}
#popup-search .search-popup-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #000;
  z-index: 2;
}
#popup-search .popup-search-form {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  max-width: 655px;
  height: 45px;
  margin: 0 auto;
}
#popup-search .search-field {
  width: 100%;
  height: 45px;
  border: 1px solid #ddd;
  border-radius: 5px;
  padding: 3px 81px 3px 18px;
  font-size: 15px;
  background: transparent;
  outline: none;
}
#popup-search .search-submit {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
}
#popup-search .search-btn-text {
  display: none;
}
#popup-search .search-clear {
  display: none;
}
#popup-search .search-field__icon {
  display: none;
}
#popup-search .popular-search-keywords {
  max-width: 655px;
  margin: 9px auto 0;
  font-size: 16px;
  text-align: left;
}
#popup-search .popular-search-keywords a {
  color: #111;
  text-decoration: underline;
  margin-left: 8px;
}
#popup-search .row-search-popup-heading {
  position: relative;
  min-height: 0;
}
#popup-search .col-search-popup-branding {
  display: flex;
  align-items: center;
}
#popup-search .popup-search-logo img {
  width: 145px;
  height: auto;
}

.popup-search-products .minimog-grid.is-loading {
  opacity: .45;
  pointer-events: none;
}

.minimog-product .product-main-image {
  aspect-ratio: 300 / 400;
  width: 100%;
  overflow: hidden;
}
.minimog-product .product-main-image picture,
.minimog-product .product-hover-image picture {
  display: block;
  width: 100%;
  height: 100%;
}
.minimog-product .product-main-image img,
.minimog-product .product-hover-image img {
  width: 100%;
  height: 100%;
  aspect-ratio: 300 / 400;
  object-fit: cover;
  display: block;
}
.minimog-product .product-thumbnail {
  position: relative;
  overflow: hidden;
}
.minimog-product .product-hover-image {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .35s ease;
}
.minimog-product .product:hover .product-hover-image {
  opacity: 1;
}
.minimog-product .woocommerce-loop-product__title {
  font-size: 16px;
  font-weight: 500;
  margin: 0;
  line-height: 24px;
}
.minimog-product .loop-product-variation-selector .inner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}
.minimog-product .js-product-variation-term,
.minimog-product .term-link-rest {
  margin: 10px 5px 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  box-sizing: border-box;
  padding: 9px;
  text-decoration: none;
  color: inherit;
}
.minimog-product .term-shape {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  flex: 0 0 auto;
}
.minimog-product .term-shape-bg {
  display: block;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}
.minimog-product .term-name {
  display: none;
}
@media (max-width: 1199px) {
  .minimog-product .minimog-grid.products {
    grid-template-columns: repeat(var(--grid-columns-tablet-extra, 3), minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1199px) {
  body.archive .archive-layout-switcher {
    display: none !important;
  }
}

@media (max-width: 767px) {
  body.archive .minimog-product .minimog-grid.products,
  body.archive .minimog-grid.products[data-catalogue-grid],
  body.archive .minimog-grid.lazy-grid.products,
  body.archive [data-catalogue-grid][data-grid-columns="3"],
  body.archive [data-catalogue-grid][data-grid-columns="4"],
  html[data-catalogue-cols="3"] body.archive [data-catalogue-grid],
  html[data-catalogue-cols="4"] body.archive [data-catalogue-grid] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }

  body.archive .archive-layout-switcher {
    display: none !important;
  }

  body.archive .archive-products-actions[data-desktop-catalogue-actions]:not(.is-mobile-sort-open) {
    display: none !important;
  }

  body.archive .archive-products-actions[data-desktop-catalogue-actions].is-mobile-sort-open {
    display: block !important;
    justify-content: stretch;
    margin: 0 0 12px !important;
  }

  body.archive .mobile-only-toolbar [data-filter-toggle],
  body.archive .mobile-only-toolbar .btn-open-sidebar1,
  body.archive .mobile-only-toolbar .mobile-sort-label {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 44px !important;
    writing-mode: horizontal-tb !important;
    transform: none !important;
    z-index: 1 !important;
  }

  body.archive .shop-content-wrapper.container-wide,
  body.woocommerce-shop .shop-content-wrapper.container-wide,
  body.archive .container-wide {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  body.archive .minimog-product .grid-item,
  body.archive .minimog-product .product-wrapper {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  body.archive .minimog-product .woocommerce-loop-product__title {
    font-size: 14px !important;
    line-height: 1.35 !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    white-space: normal !important;
  }

  body.archive .minimog-product .term-shape {
    width: 22px !important;
    height: 22px !important;
  }

  body.archive .minimog-product .loop-product-variation-selector .inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
    gap: 0;
    max-width: 100%;
  }

  body.archive .minimog-product .js-product-variation-term,
  body.archive .minimog-product .term-link-rest {
    margin: 8px 4px 0 0 !important;
    flex: 0 0 auto;
  }

  body.archive .minimog-product .product-main-image img,
  body.archive .minimog-product .product-hover-image img {
    object-fit: cover !important;
  }
}
/* Home editorial CTAs — live black filled buttons (all viewports) */
body.home .elementor-21412 .elementor-element-29d20f5 button,
body.home .elementor-21412 .elementor-element-e6d086d button,
.elementor-21412 .elementor-element-29d20f5 button,
.elementor-21412 .elementor-element-e6d086d button {
  display: inline-block !important;
  font-weight: 500 !important;
  border: 1px solid #000 !important;
  box-sizing: border-box !important;
  padding: 0 35px !important;
  line-height: 43px !important;
  font-size: 16px !important;
  font-family: Jost, sans-serif !important;
  background: #000 !important;
  color: #fff !important;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
body.home .elementor-21412 .elementor-element-29d20f5 button:hover,
body.home .elementor-21412 .elementor-element-e6d086d button:hover,
.elementor-21412 .elementor-element-29d20f5 button:hover,
.elementor-21412 .elementor-element-e6d086d button:hover {
  background: #222 !important;
  border-color: #222 !important;
  color: #fff !important;
}

@media (max-width: 767px) {
  /* Home editorial: Elementor kit uses 28px body line-height; without it text blocks collapse ~75–80px */
  body.home .elementor-element-29d20f5,
  body.home .elementor-element-e6d086d,
  body.home .elementor-element-1665054 {
    line-height: 28px !important;
  }
  body.home .elementor-element-29d20f5 > div,
  body.home .elementor-element-e6d086d > div,
  body.home .elementor-element-1665054 > div {
    line-height: 28px !important;
  }
  body.home .elementor-element-29d20f5 button,
  body.home .elementor-element-e6d086d button {
    font-weight: 500 !important;
    border: 1px solid #000 !important;
    box-sizing: border-box !important;
    padding: 0 35px !important;
    line-height: 43px !important;
    font-size: 16px !important;
    font-family: Jost, sans-serif !important;
    background: #000 !important;
    color: #fff !important;
    cursor: pointer;
  }
  body.home .elementor-element-d391ba8 .tm-swiper img,
  body.home .elementor-element-560d48b .tm-swiper img,
  body.home .elementor-element-72df6ba img {
    object-fit: fill;
  }
}

.site-content,
.page-content {
  min-height: 40vh;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Live archive/shop title-bar offset (~100px); not on home hero or single product */
body.archive .page-content,
body.tax-product_cat .page-content,
body.post-type-archive-product .page-content,
body.woocommerce-shop .page-content {
  margin-top: 100px !important;
}

body.home .page-content,
body.single-product .page-content {
  margin-top: 0 !important;
}

/* SR7 CSS injects a fullscreen body::before overlay without runtime — remove it */
body::before {
  content: none !important;
  display: none !important;
}

/* Prevent 100vw / stretched footer from causing horizontal scroll on tablet/mobile */
html, body {
  overflow-x: hidden;
}
#page {
  overflow-x: hidden;
  max-width: 100%;
}
sr7-module {
  display: block;
  position: relative;
  width: 100%;
  overflow: hidden;
  background: #000;
  height: 900px;
}
sr7-adjuster,
sr7-content,
sr7-mask,
sr7-bg {
  height: 900px;
}
sr7-content {
  display: block;
  width: 100%;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  overflow: hidden;
}
/* sr7.css hides .sr7-layer until runtime init — force visible for static port */
sr7-module sr7-slide {
  visibility: visible !important;
  pointer-events: auto !important;
}
sr7-module sr7-bg.sr7-layer,
sr7-module .sr7-layer {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}
sr7-module .sr7-hero-poster,
sr7-module sr7-media {
  display: block !important;
}

/* Hero media stack — black stage + loader; poster only on failure / reduced-motion */
.palazzo-hero-port sr7-bg {
  background: #000 !important;
}
.palazzo-hero-port sr7-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1;
  pointer-events: none !important;
  overflow: hidden;
  opacity: 0;
  visibility: visible;
  transition: opacity 0.4s ease;
}
.palazzo-hero-port .sr7-hero-poster {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  z-index: 0;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.palazzo-hero-loader {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease, visibility 0.35s ease;
  background: #000;
}
/* Loader visible for the entire pre-ready window (even before JS adds is-hero-loading) */
.palazzo-hero-port:not(.is-ready):not(.hero-video-ready):not(.is-hero-fallback) .palazzo-hero-loader,
.palazzo-hero-port.is-hero-loading .palazzo-hero-loader {
  opacity: 1;
  visibility: visible;
}
.palazzo-hero-loader__ring {
  width: 28px;
  height: 28px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-top-color: rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  animation: palazzo-hero-spin 0.9s linear infinite;
}
@keyframes palazzo-hero-spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .palazzo-hero-loader__ring {
    animation: none;
    border-color: rgba(255, 255, 255, 0.35);
  }
}
.palazzo-hero-port.is-ready .palazzo-hero-loader,
.palazzo-hero-port.hero-video-ready .palazzo-hero-loader,
.palazzo-hero-port.is-hero-fallback .palazzo-hero-loader {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.palazzo-hero-port.is-ready .sr7-hero-poster,
.palazzo-hero-port.hero-video-ready .sr7-hero-poster {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: none;
  animation: none !important;
}
.palazzo-hero-port.is-ready sr7-media,
.palazzo-hero-port.hero-video-ready sr7-media {
  opacity: 1 !important;
}
/* Failure / reduced-motion / automation: local poster only */
.palazzo-hero-port.is-hero-fallback .sr7-hero-poster,
html.palazzo-hero-poster-only .palazzo-hero-port:not(.is-ready):not(.hero-video-ready) .sr7-hero-poster {
  opacity: 1 !important;
  visibility: visible !important;
}
html.palazzo-hero-poster-only .palazzo-hero-port:not(.is-ready):not(.hero-video-ready) .sr7-hero-poster {
  animation: palazzo-hero-ken 18s ease-in-out infinite alternate;
}
html.palazzo-hero-poster-only .palazzo-hero-port:not(.is-ready):not(.hero-video-ready) sr7-media,
.palazzo-hero-port.is-hero-fallback sr7-media {
  opacity: 0 !important;
}
html.palazzo-hero-poster-only .palazzo-hero-loader {
  opacity: 0 !important;
  visibility: hidden !important;
}
@keyframes palazzo-hero-ken {
  from { transform: scale(1); }
  to { transform: scale(1.06); }
}

/* Vimeo iframe: JS sets true 16:9 cover pixel size. Do NOT force non-16:9 % sizes
   (that letterboxes with black side bars inside the player). */
.sr7-vimeo-iframe {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  border: 0 !important;
  pointer-events: none !important;
  max-width: none !important;
  max-height: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
}

/* Clip oversized cover video to hero frame */
.palazzo-hero-port sr7-bg,
.palazzo-hero-port sr7-media {
  overflow: hidden !important;
}

/* About: full-bleed like home — kill gap-beside gutters on the hero section */
.elementor-328 .elementor-element-4679952,
.elementor-328 .elementor-element-4679952 .elementor-container,
.elementor-328 .elementor-element-4679952 .elementor-column,
.elementor-328 .elementor-element-4679952 .elementor-widget-wrap,
.about-hero-sr7 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.palazzo-hero-about,
.about-hero-sr7 sr7-module {
  overflow: hidden !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  left: 0 !important;
}
.palazzo-hero-about sr7-content.sr7-content-port {
  left: 0 !important;
  width: 100% !important;
  max-width: none !important;
}
.palazzo-hero-about sr7-mask {
  overflow: hidden !important;
  width: 100% !important;
}
.palazzo-hero-about sr7-bg {
  overflow: hidden !important;
  width: 100% !important;
}
.palazzo-hero-about sr7-media,
.palazzo-hero-about .sr7-hero-poster {
  width: 100% !important;
  height: 100% !important;
}

/* Home: true full-bleed */
.palazzo-hero-home,
body.home .elementor-element-c321108 {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.home .elementor-element-c321108 .elementor-container,
body.home .elementor-element-c321108 .elementor-column,
body.home .elementor-element-c321108 .elementor-widget-wrap {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 1024px) {
  sr7-module,
  sr7-adjuster,
  sr7-content,
  sr7-mask,
  sr7-bg { height: 565px !important; }
  .palazzo-hero-about sr7-content.sr7-content-port {
    left: 0 !important;
    width: 100% !important;
  }
}
/* SR7 mobile: design 480×349, scales with viewport width (390→~283) */
@media (max-width: 767px) {
  sr7-module,
  sr7-adjuster,
  sr7-content,
  sr7-mask,
  sr7-bg {
    height: calc(283.0625 * (100vw / 390)) !important;
    max-height: calc(283.0625 * (100vw / 390)) !important;
    box-sizing: border-box !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .palazzo-hero-about sr7-content.sr7-content-port {
    left: 0 !important;
    width: 100% !important;
  }
}

/* Home editorial carousels — show one slide (live swiper substitute) */
.elementor-21412 .tm-swiper .swiper-wrapper {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.elementor-21412 .tm-swiper .swiper-slide {
  position: absolute;
  inset: 0;
  width: 100% !important;
  margin: 0 !important;
  opacity: 0;
  transition: opacity .6s ease;
  z-index: 0;
}
.elementor-21412 .tm-swiper .swiper-slide.swiper-slide-active,
.elementor-21412 .tm-swiper .swiper-slide.minimog-slide-active {
  opacity: 1;
  z-index: 1;
}
.elementor-21412 .tm-swiper .swiper-slide .image,
.elementor-21412 .tm-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* —— Mobile menu: prefer live Minimog CSS; only fix hidden attribute + open contract —— */
#page-mobile-main-menu[hidden] {
  display: none !important;
}
#page-mobile-main-menu:not([hidden]) {
  display: block;
}
body.page-mobile-menu-opened {
  overflow: hidden;
}

/* Ensure hamburger wins when body is .mobile-menu (live: .desktop-menu hides it) */
body.mobile-menu .page-open-mobile-menu {
  display: flex !important;
  align-items: center;
  cursor: pointer;
}
body.mobile-menu #page-navigation {
  display: none !important;
}
body.desktop-menu .page-open-mobile-menu {
  display: none !important;
}

/* —— PDP gallery / summary —— */
.single-product-page {
  padding: 22px 0 72px;
}
.woocommerce-breadcrumb {
  padding: 12px 0 24px;
  font-size: 13px;
  color: #777;
}
.woocommerce-breadcrumb a {
  color: inherit;
  text-decoration: none;
}
.woocommerce-breadcrumb .separator {
  margin: 0 8px;
  opacity: 0.5;
}

/* Live Minimog title-bar breadcrumbs (insight_core) — quiet, left-aligned */
#page-breadcrumb.page-breadcrumb {
  --breadcrumb-align: flex-start;
  --breadcrumb-color-text: #666;
  --breadcrumb-color-link: #111;
  --breadcrumb-color-separator: #bbb;
  text-align: left;
  padding: 18px 0 6px;
  margin: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
#page-breadcrumb .page-breadcrumb-wrap {
  margin: 0;
  padding: 0;
}
#page-breadcrumb .insight_core_breadcrumb {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  font-size: 0;
  justify-content: var(--breadcrumb-align, flex-start);
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 100%;
}
#page-breadcrumb .insight_core_breadcrumb a,
#page-breadcrumb .insight_core_breadcrumb li {
  font-family: Jost, "Jost Fallback", sans-serif;
  font-size: 13px;
  font-weight: 400;
  line-height: 20px;
  letter-spacing: 0.01em;
}
#page-breadcrumb .insight_core_breadcrumb > li a,
#page-breadcrumb .insight_core_breadcrumb > li span {
  display: block;
  padding: 2px 0;
}
#page-breadcrumb .insight_core_breadcrumb li {
  color: var(--breadcrumb-color-text, #666);
  list-style-type: none;
  margin: 0 10px 0 0;
}
#page-breadcrumb .insight_core_breadcrumb li + li {
  padding-left: 16px;
  position: relative;
}
#page-breadcrumb .insight_core_breadcrumb li + li:before {
  color: var(--breadcrumb-color-separator, #bbb);
  content: "\f105";
  font-family: "Font Awesome 5 Free", "Font Awesome 5 Pro", FontAwesome;
  font-weight: 900;
  font-size: 10px;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%) translateY(1px);
}
#page-breadcrumb .insight_core_breadcrumb li:last-child {
  margin: 0;
}
#page-breadcrumb .insight_core_breadcrumb a {
  color: var(--breadcrumb-color-link, #111);
  text-decoration: none;
}
#page-breadcrumb .insight_core_breadcrumb a:hover {
  color: #999;
}
#page-breadcrumb .insight_core_breadcrumb .item-current span {
  color: #666;
}
@media (max-width: 767px) {
  #page-breadcrumb.page-breadcrumb {
    padding: 12px 0 4px;
  }
  #page-breadcrumb .insight_core_breadcrumb a,
  #page-breadcrumb .insight_core_breadcrumb li {
    font-size: 12px;
    line-height: 18px;
  }
  #page-breadcrumb .insight_core_breadcrumb li {
    margin-right: 8px;
  }
  #page-breadcrumb .insight_core_breadcrumb li + li {
    padding-left: 14px;
  }
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0;
}
/* Match live Minimog thumb rail */
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide {
  width: 70px;
  height: 82.6px;
  margin-bottom: 10px;
  cursor: pointer;
  opacity: 1 !important;
  border: 0 !important;
  box-sizing: border-box;
  position: relative;
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-thumbnail-wrap {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-thumbnail-wrap:before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid transparent;
  border-radius: 0;
  z-index: 1;
  pointer-events: none;
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide-thumb-active .swiper-thumbnail-wrap:before,
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide.active .swiper-thumbnail-wrap:before {
  border-color: #000;
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide.product-main-thumbnail .swiper-thumbnail-wrap,
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide-thumb-active .swiper-thumbnail-wrap,
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide.active .swiper-thumbnail-wrap {
  padding: 0;
}
.woo-single-gallery .minimog-thumbs-swiper img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block;
  margin: 0 !important;
  transition: transform 0.25s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide-thumb-active .swiper-thumbnail-wrap img,
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide.active .swiper-thumbnail-wrap img,
.woo-single-gallery .minimog-thumbs-swiper .swiper-slide:hover .swiper-thumbnail-wrap img {
  transform: scale3d(0.86, 0.86, 0.86);
}
.woo-single-gallery .minimog-main-swiper {
  position: relative;
  overflow: hidden;
}
.woo-single-gallery .minimog-main-swiper img {
  display: inline !important;
  transition: opacity 0.25s ease;
}
.woo-single-gallery .swiper-nav-buttons-wrap {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
}
.woo-single-gallery .swiper-nav-buttons {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8px;
}
.woo-single-gallery .swiper-nav-button {
  pointer-events: auto;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.woo-single-gallery .swiper-button-prev .nav-button-icon::before {
  content: "‹";
  font-size: 22px;
}
.woo-single-gallery .swiper-button-next .nav-button-icon::before {
  content: "›";
  font-size: 22px;
}
.woo-single-gallery .nav-button-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.summary.entry-summary .product_title {
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  margin: 0 0 16px;
}
.isw-swatch--isw_image {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 12px 0;
}
body.single-product .summary .isw-swatch--isw_image .isw-term,
.isw-term {
  display: inline-block;
  width: 74px;
  height: 74px;
  border: 0;
  padding: 5px;
  box-sizing: border-box;
  overflow: hidden;
  cursor: pointer;
}
.isw-term.isw-selected,
.isw-term.selected {
  outline: 1px solid #111;
  outline-offset: -1px;
}
.isw-term .term-shape,
.isw-term img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  display: block;
}
.reset_variations {
  font-size: 13px;
  text-decoration: underline;
  color: #111;
}
.live-viewing-visitors {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 20px;
  font-size: 14px;
  color: #444;
}
.live-viewing-visitors .minimog-animate-pulse {
  animation: palazzo-pulse 1.4s ease-in-out infinite;
}
@keyframes palazzo-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
.product-popup-links {
  margin-top: 20px;
}
.product-popup-link a {
  color: #111;
  text-decoration: underline;
  font-size: 14px;
}

.entry-product-section {
  margin-top: 56px;
  padding-top: 24px;
}
.entry-product-section-heading {
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 20px;
}
body.single-product .entry-product-content-section.entry-product-section {
  margin-top: 0 !important;
  padding-top: 92px !important;
}
body.single-product .entry-product-content-section .entry-product-section-heading {
  font-size: 36px !important;
  line-height: 1.32 !important;
  margin: 0 0 40px !important;
  font-weight: 500;
}
/* Live: related uses centered .container (max 1270, pad 50) → content x=135 @1440 */
body.single-product .related.products.entry-product-section {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 0 !important;
  padding-top: 92px !important;
  padding-bottom: 0 !important;
  overflow: visible;
  position: relative;
  box-sizing: border-box;
}
body.single-product .related.products > .container {
  max-width: 1270px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 50px !important;
  padding-right: 50px !important;
  box-sizing: border-box;
}
body.single-product .related.products .entry-product-section-heading {
  font-size: 36px !important;
  line-height: 1.32 !important;
  font-weight: 400 !important;
  margin: 0 0 43px !important;
  max-width: 1170px;
  width: 100%;
  text-align: center;
}
/* Live Minimog: swiper viewport 1170px clips 5th slide (starts at x=1335) */
body.single-product .related.products .tm-swiper,
body.single-product .related.products .swiper-inner,
body.single-product .related.products .swiper {
  width: 1170px !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
body.single-product .related.products .related-grid {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  width: max-content !important;
  max-width: none !important;
  justify-content: start;
}
body.single-product .related.products .swiper-slide,
body.single-product .related.products .grid-item.product {
  width: 270px !important;
  max-width: 270px !important;
  margin-right: 30px !important;
  flex: 0 0 270px !important;
}
body.single-product .related.products .loop-product-variation-selector {
  display: block !important;
  margin-top: 1px !important;
}
body.single-product .related.products .product-info {
  padding-bottom: 0 !important;
}
body.single-product .related.products .grid-item.product,
body.single-product .related.products .product-wrapper,
body.single-product .related.products .swiper-slide .product-wrapper {
  width: 270px !important;
  max-width: 270px !important;
  height: 442px !important;
  max-height: 442px !important;
}
body.single-product .related.products .product-thumbnail {
  margin-bottom: 21px !important;
}
body.single-product .related.products .product-main-image img,
body.single-product .related.products .product-hover-image img {
  width: 270px !important;
  height: 360px !important;
  object-fit: fill !important;
  aspect-ratio: auto !important;
  display: inline !important;
}
.minimog-accordion .accordion-section {
  border-bottom: 1px solid #e5e5e5;
}
.minimog-accordion .accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 0;
  cursor: pointer;
}
.minimog-accordion .accordion-title {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
}
.minimog-accordion .accordion-content {
  padding: 0 0 16px;
  font-size: 14px;
  line-height: 1.6;
  color: #444;
}
.minimog-accordion .accordion-section:not(.active) .opened-icon {
  display: none;
}
.minimog-accordion .accordion-section.active .closed-icon {
  display: none;
}

/* Related uses flex carousel row (style-carousel-01); do not force grid. */
.related.products .related-grid {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
}

.pdp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.pdp-lightbox[hidden] {
  display: none !important;
}
.pdp-lightbox img {
  max-width: min(96vw, 1200px);
  max-height: 92vh;
  object-fit: contain;
}
.pdp-lightbox-close {
  position: absolute;
  top: 16px;
  right: 20px;
  background: none;
  border: 0;
  color: #fff;
  font-size: 36px;
  cursor: pointer;
}
body.lightbox-open {
  overflow: hidden;
}

@media (max-width: 1024px) {
  .woo-single-info {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .woo-single-gallery.thumbs-slider-vertical {
    grid-template-columns: 1fr;
  }
  .woo-single-gallery .minimog-thumbs-swiper-wrap {
    order: 2;
  }
  .woo-single-gallery .minimog-thumbs-swiper .swiper-wrapper {
    flex-direction: row;
    overflow-x: auto;
  }
  body.single-product .related.products > .container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  body.single-product .related.products .tm-swiper,
  body.single-product .related.products .swiper-inner,
  body.single-product .related.products .swiper {
    width: 100% !important;
  }
  body.single-product .related.products .swiper-slide,
  body.single-product .related.products .grid-item.product {
    width: calc((100% - 40px) / 3) !important;
    max-width: none !important;
    flex: 0 0 calc((100% - 40px) / 3) !important;
    margin-right: 20px !important;
  }
  body.single-product .related.products .grid-item.product,
  body.single-product .related.products .product-wrapper,
  body.single-product .related.products .swiper-slide .product-wrapper {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
  }
  body.single-product .related.products .product-main-image img,
  body.single-product .related.products .product-hover-image img {
    width: 100% !important;
    height: auto !important;
  }
}

@media (max-width: 767px) {
  body.single-product .related.products .swiper-slide,
  body.single-product .related.products .grid-item.product {
    width: calc((100% - 16px) / 2) !important;
    flex: 0 0 calc((100% - 16px) / 2) !important;
    margin-right: 16px !important;
  }
  .woo-single-gallery .minimog-main-swiper .swiper-slide,
  .woo-single-gallery .minimog-main-swiper img {
    max-width: 100%;
  }
}

/* Catalogue infinite scroll */
.catalogue-infinite-sentinel {
  width: 100%;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}
.catalogue-infinite-loader {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 28px 0 8px;
  min-height: 48px;
}
.catalogue-infinite-loader[hidden] {
  display: none !important;
}
.catalogue-infinite-loader .spinner {
  width: 28px;
  height: 28px;
  border: 2px solid #ddd;
  border-top-color: #111;
  border-radius: 50%;
  animation: palazzo-spin 0.7s linear infinite;
}
@keyframes palazzo-spin {
  to { transform: rotate(360deg); }
}

/*
 * Quick View — rebuilt from live Minimog QV stacking + imageCover geometry.
 * Layer order: backdrop → modal shell → media/content → close control.
 * Wrap height is set by JS from main image aspect (capped at 100vh-60), matching live.
 */
.minimog-modal.modal-quick-view-popup {
  --modal-width: 1040px;
  --modal-spacing: 0;
  --spacing: 40px;
  --modal-rounded: 0;
  z-index: 100001;
}
.minimog-modal.modal-quick-view-popup:not(.open) {
  display: none !important;
}
.minimog-modal.modal-quick-view-popup.open {
  display: flex !important;
  pointer-events: auto;
}
.minimog-modal.modal-quick-view-popup .modal-overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(0, 0, 0, 0.5);
  opacity: 1;
}
.minimog-modal.modal-quick-view-popup .modal-content {
  position: relative;
  z-index: 1;
  width: var(--modal-width);
  max-width: calc(100vw - 50px);
  pointer-events: auto;
}
.minimog-modal.modal-quick-view-popup .button-close-modal {
  z-index: 2;
}
.minimog-modal.modal-quick-view-popup .modal-content-wrap {
  position: relative;
  z-index: 1;
  background: var(--minimog-color-box-white-background, #fff);
  border-radius: var(--modal-rounded, 0);
  max-height: calc(100vh - 60px);
  overflow: hidden;
}
.minimog-modal.modal-quick-view-popup .modal-content-inner {
  padding: 0 !important;
  height: 100%;
  background: var(--minimog-color-box-white-background, #fff);
}
.minimog-modal.modal-quick-view-popup .product-quick-view-content {
  height: 100%;
  background: var(--minimog-color-box-white-background, #fff);
}
.minimog-modal.modal-quick-view-popup .product-quick-view-content .woo-single-info {
  display: flex !important;
  position: relative;
  align-items: stretch;
  gap: 0 !important;
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
.minimog-modal.modal-quick-view-popup .quick-view-col-images {
  position: relative;
  width: 50%;
  flex: 0 0 50%;
  height: 100%;
  overflow: hidden;
  background: transparent;
}
.minimog-modal.modal-quick-view-popup .quick-view-col-summary {
  position: relative;
  width: 50%;
  flex: 0 0 50%;
  height: 100%;
  margin: 0;
  padding: 30px 0;
  overflow: hidden;
  background: var(--minimog-color-box-white-background, #fff);
  box-sizing: border-box;
}
.minimog-modal.modal-quick-view-popup .quick-view-col-summary > .inner-content {
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  position: relative;
  box-sizing: border-box;
}
.minimog-modal.modal-quick-view-popup .quick-view-col-summary > .inner-content > .inner {
  padding-left: 37px;
  padding-right: 43px;
}
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover {
  position: absolute !important;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
}
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .tm-swiper,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .swiper-inner,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .swiper,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .swiper-wrapper,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .swiper-slide,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .woo-single-gallery,
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover .woocommerce-product-gallery__image {
  height: 100% !important;
  width: 100% !important;
  max-width: none !important;
}
.minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover;
}
.minimog-modal.modal-quick-view-popup .product_title.entry-title,
.minimog-modal.modal-quick-view-popup .product_title.entry-title a {
  font-family: var(--minimog-typography-headings-font-family, Jost), sans-serif;
  font-size: 30px;
  line-height: 1.54;
  font-weight: var(--minimog-typography-headings-font-weight, 400);
  margin: 0;
  color: var(--minimog-color-heading, #000);
  text-decoration: none;
}
.minimog-modal.modal-quick-view-popup .isw-swatch--isw_image {
  display: flex;
  flex-wrap: wrap;
  --size: 64px;
  margin: -5px;
}
.minimog-modal.modal-quick-view-popup .isw-swatch--isw_image .isw-term {
  padding: 5px;
  box-sizing: border-box;
}
.minimog-modal.modal-quick-view-popup .isw-swatch--isw_image .term-shape {
  width: var(--size);
  height: var(--size);
  border-radius: 5px;
  overflow: hidden;
  display: block;
}
.minimog-modal.modal-quick-view-popup .isw-swatch--isw_image .term-shape img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 5px;
  display: block;
}
.minimog-modal.modal-quick-view-popup .isw-swatch--isw_image .term-name {
  display: none;
}
.minimog-modal.modal-quick-view-popup .isw-term.isw-selected .term-shape,
.minimog-modal.modal-quick-view-popup .isw-term.selected .term-shape {
  box-shadow: 0 0 0 2px #111;
}
.minimog-modal.modal-quick-view-popup .product-popup-links {
  margin-top: 20px;
}
.minimog-modal.modal-quick-view-popup .product-action.open-product-share-popup-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: inherit;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
}
/* Hard ban: never show legacy Woo commerce chrome in public QV */
.minimog-modal.modal-quick-view-popup .entry-price-wrap,
.minimog-modal.modal-quick-view-popup .price,
.minimog-modal.modal-quick-view-popup .amount,
.minimog-modal.modal-quick-view-popup .quantity,
.minimog-modal.modal-quick-view-popup .single_add_to_cart_button,
.minimog-modal.modal-quick-view-popup .entry-product-quantity-wrapper,
.minimog-modal.modal-quick-view-popup form.cart,
.minimog-modal.modal-quick-view-popup .woocommerce-variation-add-to-cart {
  display: none !important;
}
body.minimog-modal-opened {
  overflow: hidden;
}
@media (max-width: 767px) {
  .minimog-modal.modal-quick-view-popup {
    --modal-width: 510px;
  }
  .minimog-modal.modal-quick-view-popup .product-quick-view-content .woo-single-info {
    flex-direction: column;
    height: auto !important;
  }
  .minimog-modal.modal-quick-view-popup .quick-view-col-images,
  .minimog-modal.modal-quick-view-popup .quick-view-col-summary {
    width: 100%;
    flex: none;
    height: auto;
  }
  .minimog-modal.modal-quick-view-popup .product-quick-view-content .image-cover {
    position: relative !important;
    min-height: 280px;
  }
  .minimog-modal.modal-quick-view-popup .quick-view-col-summary > .inner-content {
    height: auto !important;
    max-height: none;
    overflow: visible;
  }
}

/* Off-sidebar filter close control */
.btn-close-off-sidebar {
  display: none;
  position: sticky;
  top: 8px;
  float: right;
  z-index: 2;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  color: #111;
  text-decoration: none;
  font-size: 22px;
}
@media (max-width: 1199px) {
  .btn-close-off-sidebar {
    display: flex;
  }
}

[data-catalogue-results].is-loading {
  opacity: 0.5;
  pointer-events: none;
}

/* ===== Owner-fail fixes: footer stretch + CMS pages ===== */
#page-footer-wrapper,
#page-footer,
#page-footer .elementor-6422 {
  width: 100%;
  max-width: 100%;
}
#page-footer .elementor-section-stretched,
#page-footer .elementor-element-18b27eab {
  width: 100% !important;
  max-width: 100vw !important;
  left: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
}
#page-footer .elementor-container {
  max-width: 1170px;
  margin-left: auto;
  margin-right: auto;
}

/* About hero uses shared sr7-module / Vimeo port (same as Home) */

.elementor-338 .elementor-custom-embed iframe {
  width: 100%;
  border: 0;
}
.wpforms-confirmation-container-full {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #c8e6c9;
  background: #f1f8f2;
}
.wpforms-error-container {
  border-color: #f5c2c7;
  background: #fdecee;
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

/* ===== Fairs archive (Minimog blog grid) ===== */
.palazzo-fairs-archive {
  padding: 48px 0 72px;
}
.palazzo-fairs-archive .minimog-blog-grid .minimog-grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns-desktop, 3), minmax(0, 1fr));
  gap: calc(var(--grid-gutter-desktop, 30) * 1px);
}
.palazzo-fairs-archive .post-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.palazzo-fairs-archive .post-thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 740 / 480;
  object-fit: cover;
}
.palazzo-fairs-archive .post-caption {
  padding-top: 14px;
}
.palazzo-fairs-archive .post-categories {
  margin-bottom: 6px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.palazzo-fairs-archive .post-categories a {
  color: inherit;
  text-decoration: none;
}
.palazzo-fairs-archive .post-title {
  margin: 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.35;
}
.palazzo-fairs-archive .post-title a {
  color: inherit;
  text-decoration: none;
}
.palazzo-fairs-archive .post-title a:hover {
  opacity: 0.7;
}
.palazzo-fair-show {
  padding: 48px 0 72px;
}
.palazzo-fair-show__crumb {
  margin: 0 0 12px;
  font-size: 14px;
}
.palazzo-fair-show__crumb a {
  color: inherit;
  text-decoration: none;
}
.palazzo-fair-show .entry-title {
  margin: 0 0 24px;
  font-size: 36px;
  font-weight: 500;
}
.palazzo-fair-show__image {
  margin-bottom: 24px;
  max-width: 740px;
}
.palazzo-fair-show__image img {
  display: block;
  width: 100%;
  height: auto;
}
.palazzo-fair-show .entry-content {
  max-width: 720px;
  font-size: 16px;
  line-height: 1.7;
}

/* Palazzo Mag (elementor-24554) + Media hub tiles */
.tm-image-box {
  display: block;
  text-decoration: none;
  color: inherit;
}
.tm-image-box__wrap {
  display: flex;
  flex-direction: column;
}
.tm-image-box__image img {
  display: block;
  width: 100%;
  height: auto;
}
.tm-image-box__content {
  padding-top: 14px;
}
.tm-image-box__title {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.35;
}
.elementor-24554 .e-con-inner,
.elementor-22324 .palazzo-media-hub .e-con-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  padding: 40px 0 72px;
}
.elementor-22324 .palazzo-media-hub {
  width: 100%;
}

/* Videos (elementor-22326) */
.elementor-22326 .e-con.e-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  padding: 40px 0 72px;
}
.palazzo-video-clickplay {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #111;
  overflow: hidden;
}
.palazzo-video-clickplay .elementor-custom-embed-image-overlay {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.palazzo-video-clickplay .elementor-custom-embed-play {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.palazzo-video-clickplay .e-eicon-play {
  width: 36px;
  height: 36px;
  fill: currentColor;
}
.palazzo-video-clickplay iframe.elementor-video-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Fair detail gallery */
.palazzo-fair-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.palazzo-fair-gallery__item {
  margin: 0;
  overflow: hidden;
  background: #f3f3f3;
}
.palazzo-fair-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

@media (max-width: 1199px) {
  .palazzo-fairs-archive .minimog-blog-grid .minimog-grid {
    grid-template-columns: repeat(var(--grid-columns-tablet-extra, 2), minmax(0, 1fr));
    gap: calc(var(--grid-gutter-tablet-extra, 30) * 1px);
  }
  .palazzo-fair-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .palazzo-fairs-archive .minimog-blog-grid .minimog-grid {
    grid-template-columns: repeat(var(--grid-columns-mobile-extra, 1), minmax(0, 1fr));
    gap: calc(var(--grid-gutter-mobile-extra, 30) * 1px);
  }
  .palazzo-fair-show .entry-title {
    font-size: 28px;
  }
  .elementor-24554 .e-con-inner,
  .elementor-22324 .palazzo-media-hub .e-con-inner,
  .elementor-22326 .e-con.e-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .palazzo-fair-gallery {
    grid-template-columns: 1fr;
  }
}
