/* =====================================================================
 GIOVISION CUSTOM CSS v1.3.0
 Pair with: giovision/giovision-custom.js (enqueued by Giovision Site Custom plugin)
 Replaces ALL prior Giovision custom CSS blocks. Purge cache after deploy.
 PERF: avoid :has() where possible; minify this file in production (≈81KB).
 ===================================================================== */

/* ---- 1) Design tokens (single source of truth) ---- */
:root {
  --gio-blue: #1f2a7c;
  --gio-border: rgba(31, 42, 124, 0.22);
  --gio-border-soft: rgba(31, 42, 124, 0.15);
  --gio-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  --gio-h: 40px;
  --gio-menu-row-h: clamp(36px, 2.6vw + 24px, 42px);
  --gio-menu-pad-y: clamp(10px, 1.1vw, 14px);
  --gio-menu-h: calc(var(--gio-menu-row-h) + (var(--gio-menu-pad-y) * 2));
  --gio-menu-font: clamp(0.75rem, 0.68rem + 0.22vw, 0.875rem);
  --gio-menu-gap: clamp(6px, 1vw + 2px, 18px);
  --gio-icon-w: clamp(32px, 2.4vw + 20px, 40px);
  --gv-main-width: min(90%, calc(100% - clamp(16px, 4vw, 40px)));
  --gv-content-band: var(--gv-main-width);
  --gv-hero-width: var(--gv-content-band);
  --gv-hero-radius: clamp(6px, 0.6vw + 4px, 14px);
  --gv-hero-min-h: clamp(240px, 32vw + 96px, 480px);
  --gv-hero-pad-y: clamp(28px, 5vw + 8px, 64px);
  --gv-hero-pad-x: clamp(16px, 3.5vw + 4px, 48px);
  --gv-hero-title: clamp(1.6rem, 1rem + 2.8vw, 3.05rem);
  --gv-hero-sub: clamp(0.74rem, 0.62rem + 0.45vw, 1.05rem);
  --gv-hero-gap-below-menu: clamp(10px, 1.5vw, 18px);
  --gv-hero-shadow:
    0 4px 10px rgba(0, 0, 0, 0.08),
    0 14px 32px rgba(0, 0, 0, 0.14),
    0 28px 56px rgba(15, 31, 74, 0.14);
  --gv-hero-text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.88),
    0 3px 18px rgba(0, 0, 0, 0.62),
    0 0 36px rgba(15, 31, 74, 0.42);
  --gio-pad-x: clamp(8px, 0.5vw + 6px, 14px);
  --gio-radius: 6px;
  --gio-sub-min: 220px;
  --gio-sub-menu-max: 248px;
  --gio-header-logo-h: 64px;
  --gio-cat-w: 148px;
  --gio-cat-drop-w: 232px;
  --gio-mobile-header-pad-y: clamp(10px, 2.8vw, 14px);
  --gio-mobile-logo-h: clamp(40px, 12vw, 48px);
  --gio-mobile-logo-max-w: 58vw;
  --gio-mobile-header-min-h: clamp(56px, 16vw, 68px);
  --gio-mobile-touch: 44px;
  --gv-boxed: 1170px;
  --gv-gutter: 15px;
  --gio-ig-aspect: 4 / 5;
  --gv-blue: #1f2a7c;
  --gv-green: #00a651;
  --gv-red: #e31b23;
  --gv-burger-w: 28px;
  --gv-burger-bar: 3px;
  --gv-burger-gap: 5px;
  --gvc-navy: #0f1f4a;
  --gvc-white: #ffffff;
  --gvc-line-soft: rgba(15, 31, 74, 0.14);
  --gvc-line-strong: rgba(15, 31, 74, 0.30);
  --gvc-border: rgba(15, 31, 74, 0.16);
  --gvc-font-size: clamp(0.72rem, 0.62rem + 0.22vw, 0.90rem);
  --gvc-letter-space: clamp(0.07em, 0.08vw, 0.10em);
  --gvc-pad-y: clamp(0.20rem, 0.32vw, 0.30rem);
  --gvc-pad-x: clamp(0.78rem, 1.05vw, 0.98rem);
  --gvc-gap: clamp(0.56rem, 0.85vw, 0.78rem);
  --gvc-margin-top: clamp(0.85rem, 1.5vw, 1.2rem);
  --gvc-margin-bottom: clamp(1.05rem, 1.9vw, 1.6rem);
}

@media (min-width: 768px) and (max-width: 991px) {
  :root { --gv-gutter: 12px; }
}

/* ---- 2) Header menu utilities ---- */
#menu-item-5088 {
  display: none !important;
}

.gv-collapsible .gv-toggle-indicator {
  margin-left: 8px;
  font-size: 0.9em;
}

.gv-collapsible.gv-collapsed .gv-toggle-indicator::after {
  content: "▸";
  display: inline-block;
  transform: none;
}

.gv-collapsible.gv-open .gv-toggle-indicator::after {
  content: "▾";
  display: inline-block;
  transform: none;
}

/* ---- 3) WooCommerce checkout & order review (canonical) ---- */
.woocommerce-checkout-review-order-table .product,
.woocommerce-checkout .shop_table.order_details .product {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 12px !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout-review-order-table .product .product-name,
.woocommerce-checkout .shop_table.order_details .product .product-name {
  flex: 1 1 0% !important;
  margin: 0 !important;
  min-width: 0 !important;
  word-break: break-word !important;
}

.woocommerce-checkout-review-order-table .product .product-total,
.woocommerce-checkout-review-order-table .product .amount,
.woocommerce-checkout .shop_table.order_details .product .product-total,
.woocommerce-checkout .shop_table.order_details .product .amount {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  margin-left: 8px !important;
}

.woocommerce-checkout-review-order-table tfoot tr,
.cart_totals table tfoot tr,
.shop_table.order_details tfoot tr {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 6px 0 !important;
}

.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td,
.cart_totals table tfoot tr th,
.cart_totals table tfoot tr td,
.shop_table.order_details tfoot tr th,
.shop_table.order_details tfoot tr td {
  display: block !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

.woocommerce-checkout-review-order-table tfoot th,
.cart_totals table tfoot tr th,
.shop_table.order_details tfoot tr th {
  flex: 1 1 auto !important;
  text-align: left !important;
  min-width: 0 !important;
}

.woocommerce-checkout-review-order-table tfoot td,
.cart_totals table tfoot tr td,
.shop_table.order_details tfoot tr td {
  flex: 0 0 auto !important;
  text-align: right !important;
  margin-left: 8px !important;
  white-space: nowrap !important;
}

.woocommerce-checkout-review-order-table tfoot tr th .amount,
.woocommerce-checkout-review-order-table tfoot tr th bdi,
.cart_totals table tfoot tr th .amount,
.shop_table.order_details tfoot tr th .amount {
  margin-left: auto !important;
  display: inline-block !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .amount,
.woocommerce-checkout .shop_table.order_details .amount,
.woocommerce-checkout-review-order-table .amount,
.woocommerce-checkout .amount bdi,
.woocommerce-checkout-review-order-table .amount bdi {
  white-space: nowrap !important;
}

.woocommerce-checkout-review-order-table tbody td:nth-child(2),
.woocommerce-checkout-review-order-table thead th:nth-child(2),
.woocommerce-checkout-review-order-table tfoot td:nth-child(2) {
  text-align: right !important;
  white-space: nowrap !important;
}

.woocommerce-checkout .cart_totals .shipping,
.woocommerce-checkout .shipping,
.woocommerce-checkout .woocommerce-shipping-totals {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  box-sizing: border-box !important;
  clear: both !important;
}

.woocommerce-checkout .shipping h3,
.woocommerce-checkout .shipping .shipping_title,
.woocommerce-checkout .shipping legend,
.woocommerce-checkout .shipping .title,
.woocommerce-checkout .shipping .shipping-method-title,
.woocommerce-checkout .cart_totals .shipping strong,
.woocommerce-checkout .cart_totals .shipping .title {
  display: block !important;
  order: -1 !important;
  width: 100% !important;
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

.woocommerce-checkout .woocommerce-shipping-methods,
.woocommerce-checkout .shipping_methods,
.woocommerce-checkout .woocommerce-shipping-methods ul {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce-checkout .woocommerce-shipping-methods li,
.woocommerce-checkout .shipping_methods li,
.woocommerce .woocommerce-shipping-methods li,
.shipping_methods li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 6px 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .woocommerce-shipping-methods li input[type="radio"],
.woocommerce-checkout .shipping input[type="radio"],
.shipping_methods li input[type="radio"] {
  position: static !important;
  margin: 2px 0 0 0 !important;
  flex: 0 0 auto !important;
}

.woocommerce-checkout .woocommerce-shipping-methods li label,
.woocommerce-checkout .shipping_methods li label,
.woocommerce-checkout .shipping label,
.shipping_methods li label {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  white-space: normal !important;
  word-break: break-word !important;
}

.woocommerce-checkout .woocommerce-shipping-methods li label > span,
.woocommerce-checkout .woocommerce-shipping-methods li label .method-title,
.woocommerce-checkout .shipping label .method-title,
.woocommerce-checkout .shipping label .shipping-option-label {
  display: block !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  white-space: normal !important;
}

.woocommerce-shipping-methods li .shipping-cost {
  margin-left: auto !important;
  flex: 0 0 auto !important;
  text-align: right !important;
  white-space: nowrap !important;
  display: inline-block !important;
  font-weight: 600 !important;
}

.woocommerce-checkout .cart_totals .shipping * {
  float: none !important;
}

/* ---- 4) Locked checkout fields ---- */
input[readonly],
select.locked-disabled {
  background-color: #f5f5f6 !important;
  color: #6b6b6b !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  pointer-events: none;
}

input[readonly]::placeholder {
  color: #bdbdbd;
}

.gv-locked,
.gv-locked-select,
.gv-locked-container {
  background: #f5f5f5 !important;
  color: #555 !important;
  border-color: #ddd !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

.gv-locked-container {
  pointer-events: none !important;
  user-select: none !important;
}

.gv-locked-select + .select2-container .select2-selection__arrow,
.gv-locked-container .chosen-single .dropdown,
.gv-locked-container .selectric .label {
  display: none !important;
}

/* ---- 5) Product cards — equal height + bottom-aligned CTA ---- */
.woocommerce .products > .product {
  height: 100%;
}

.woocommerce .products > .product .product-wrapper {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.woocommerce .products > .product .meta-wrapper {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.woocommerce .products > .product .heading-title,
.woocommerce .products > .product .price {
  flex-shrink: 0;
}

.woocommerce .products > .product .product-group-button-meta {
  margin-top: auto;
}

.woocommerce .products > .product .loop-add-to-cart .button {
  width: 100%;
  text-align: center;
}

/* ---- 6) Shop more / deals button ---- */
.shop-more {
  text-align: center;
  margin: 24px 0;
}

.shop-more .shop-more-button {
  display: inline-block;
  background-color: #ffffff !important;
  color: var(--gio-blue) !important;
  border: 1px solid var(--gio-blue) !important;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 10px 22px;
  cursor: pointer;
  text-decoration: none;
  opacity: 1 !important;
  pointer-events: auto !important;
  filter: none !important;
  transition: all 0.2s ease-in-out;
}

.shop-more .shop-more-button:hover {
  background-color: var(--gio-blue) !important;
  color: #ffffff !important;
  border-color: var(--gio-blue) !important;
}

/* ---- 7) Breadcrumbs & page titles hidden ---- */
.breadcrumbs,
.ts-breadcrumbs,
.ts-breadcrumb,
.woocommerce-breadcrumb,
.breadcrumb-wrapper,
.page-breadcrumb,
.page-title,
h1.page-title,
.ts-page-title,
.page-header,
.archive-header {
  display: none !important;
}

/* ---- 8) Category bar + dropdown menu ---- */
.ts-header .header-bottom,
.header-bottom {
  height: auto !important;
  min-height: var(--gio-menu-h) !important;
  max-height: none !important;
  padding-top: var(--gio-menu-pad-y) !important;
  padding-bottom: var(--gio-menu-pad-y) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin: 0 !important;
  margin-bottom: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--gio-border-soft) !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

.header-bottom .container {
  height: auto;
  min-height: var(--gio-menu-row-h);
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.header-bottom .header-left {
  width: var(--gv-content-band) !important;
  max-width: var(--gv-content-band) !important;
  flex: 0 0 var(--gv-content-band) !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.header-bottom .header-left,
.header-bottom .menu-wrapper,
.header-bottom .ts-menu,
.header-bottom .main-menu,
.header-bottom .main-menu > ul.menu,
.header-bottom .main-menu > ul.menu > li {
  height: auto;
  min-height: var(--gio-menu-row-h);
  display: flex;
  align-items: center;
}

.header-bottom .menu-wrapper,
.header-bottom .ts-menu,
.header-bottom nav.main-menu,
.header-bottom .main-menu,
.header-bottom .main-menu > ul.menu {
  width: 100%;
  justify-content: center;
  padding: 0 !important;
  margin: 0 !important;
}

.header-bottom .main-menu > ul.menu > li > a {
  height: var(--gio-menu-row-h);
  min-height: var(--gio-menu-row-h);
  display: inline-flex;
  align-items: center;
  padding: 0 12px !important;
  line-height: 1 !important;
}

.header-bottom .menu-wrapper,
.header-bottom .ts-menu,
.header-bottom nav.main-menu {
  overflow: visible !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.header-bottom ul#menu-categories {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: var(--gio-menu-gap) !important;
  width: 100% !important;
  height: var(--gio-menu-row-h) !important;
  min-height: var(--gio-menu-row-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.header-bottom ul#menu-categories > li {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  height: var(--gio-menu-row-h) !important;
  min-height: var(--gio-menu-row-h) !important;
  padding: 0 !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
}

.header-bottom ul#menu-categories > li::before {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--gio-icon-w) !important;
  height: var(--gio-menu-row-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-size: clamp(14px, 0.82rem + 0.28vw, 17px) !important;
  background: transparent !important;
  color: var(--gio-blue) !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.header-bottom ul#menu-categories > li > a {
  display: flex !important;
  align-items: center !important;
  height: var(--gio-menu-row-h) !important;
  min-height: var(--gio-menu-row-h) !important;
  padding: 0 var(--gio-pad-x) !important;
  margin: 0 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
  background: transparent !important;
  color: var(--gio-blue) !important;
  font-weight: 600 !important;
  font-size: var(--gio-menu-font) !important;
  border: 0 !important;
  box-shadow: none !important;
  transform: none !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.header-bottom ul#menu-categories > li:hover::before,
.header-bottom ul#menu-categories > li.current-menu-item::before,
.header-bottom ul#menu-categories > li.current-menu-parent::before,
.header-bottom ul#menu-categories > li.current-menu-ancestor::before {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

.header-bottom ul#menu-categories > li:hover > a,
.header-bottom ul#menu-categories > li.current-menu-item > a,
.header-bottom ul#menu-categories > li.current-menu-parent > a,
.header-bottom ul#menu-categories > li.current-menu-ancestor > a {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

.header-bottom ul#menu-categories li.menu-item-has-children > .sub-menu {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: auto !important;
  transform: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 1px solid var(--gio-border-soft) !important;
  box-shadow: var(--gio-shadow) !important;
  min-width: 100% !important;
  max-width: var(--gio-sub-menu-max) !important;
  width: max-content !important;
  z-index: 9999 !important;
}

.header-bottom ul#menu-categories .sub-menu li.menu-item-has-children > .sub-menu {
  top: 0 !important;
  left: 100% !important;
  min-width: var(--gio-sub-min) !important;
  max-width: var(--gio-sub-menu-max) !important;
  width: max-content !important;
}

.header-bottom ul#menu-categories .sub-menu > li {
  position: relative !important;
  margin: 0 !important;
  padding: 0 !important;
}

.header-bottom ul#menu-categories .sub-menu > li::before {
  display: none !important;
}

.header-bottom ul#menu-categories .sub-menu > li > a {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  min-height: 36px !important;
  height: auto !important;
  padding: 7px var(--gio-pad-x) !important;
  margin: 0 !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  background: #fff !important;
  color: var(--gio-blue) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.header-bottom ul#menu-categories .sub-menu > li + li > a {
  border-top: 1px solid rgba(31, 42, 124, 0.12) !important;
}

.header-bottom ul#menu-categories .sub-menu > li:hover > a,
.header-bottom ul#menu-categories .sub-menu > li > a:hover,
.header-bottom ul#menu-categories .sub-menu > li.current-menu-item > a {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

/* Parent category open — keep sibling sub-items on white/blue until hovered */
.header-bottom ul#menu-categories .sub-menu > li.current-menu-parent:not(.current-menu-item) > a,
.header-bottom ul#menu-categories .sub-menu > li.current-menu-ancestor:not(.current-menu-item) > a {
  background: #fff !important;
  color: var(--gio-blue) !important;
}

.header-bottom ul#menu-categories .sub-menu > li.current-menu-parent:not(.current-menu-item):hover > a,
.header-bottom ul#menu-categories .sub-menu > li.current-menu-ancestor:not(.current-menu-item):hover > a {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

.header-bottom ul#menu-categories > li.menu-item-has-children::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 12px;
  background: transparent;
}

.header-bottom ul#menu-categories .sub-menu li.menu-item-has-children::after {
  content: "";
  position: absolute;
  top: 0;
  right: -14px;
  width: 14px;
  height: 100%;
  background: transparent;
}

@media (max-width: 767px) {
  .header-bottom ul#menu-categories {
    flex-wrap: wrap !important;
    height: auto !important;
  }

  .header-bottom ul#menu-categories > li {
    height: var(--gio-menu-row-h) !important;
    min-height: var(--gio-menu-row-h) !important;
  }
}

@media (min-width: 992px) {
  .ts-header .header-bottom,
  .ts-header .header-bottom.hidden-phone {
    height: auto !important;
    min-height: var(--gio-menu-h) !important;
    margin-top: 0 !important;
    padding-top: var(--gio-menu-pad-y) !important;
    padding-bottom: var(--gio-menu-pad-y) !important;
  }

  .ts-header .header-bottom .container,
  .ts-header .header-bottom.hidden-phone .container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: center !important;
  }

  .ts-header .header-bottom .header-left,
  .ts-header .header-bottom.hidden-phone .header-left {
    width: var(--gv-content-band) !important;
    max-width: var(--gv-content-band) !important;
    flex: 0 0 var(--gv-content-band) !important;
    margin-inline: auto !important;
    padding: 0 !important;
  }

  .ts-header .header-bottom .menu-wrapper,
  .ts-header .header-bottom .ts-menu,
  .ts-header .header-bottom nav.main-menu,
  .ts-header .header-bottom.hidden-phone .menu-wrapper,
  .ts-header .header-bottom.hidden-phone .ts-menu,
  .ts-header .header-bottom.hidden-phone nav.main-menu {
    width: 100% !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .ts-header .header-bottom ul#menu-categories,
  .ts-header .header-bottom.hidden-phone ul#menu-categories {
    width: 100% !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ts-header .header-bottom ul#menu-categories > li > a,
  .ts-header .header-bottom.hidden-phone ul#menu-categories > li > a {
    justify-content: center !important;
    text-align: center !important;
    padding-left: var(--gio-pad-x) !important;
    padding-right: var(--gio-pad-x) !important;
  }

  .ts-header .header-bottom ul#menu-categories > li::before,
  .ts-header .header-bottom.hidden-phone ul#menu-categories > li::before {
    padding-left: 0 !important;
    width: var(--gio-icon-w) !important;
    box-sizing: border-box !important;
  }

  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-item:not(:hover):not(:focus-within),
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-parent:not(:hover):not(:focus-within),
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-ancestor:not(:hover):not(:focus-within) {
    background: transparent !important;
  }

  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-item:not(:hover):not(:focus-within)::before,
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-parent:not(:hover):not(:focus-within)::before,
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-ancestor:not(:hover):not(:focus-within)::before {
    background: transparent !important;
    color: var(--gio-blue) !important;
  }

  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-item:not(:hover):not(:focus-within) > a,
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-parent:not(:hover):not(:focus-within) > a,
  body.home:not(.gv-promo-clicked) .ts-header .header-bottom.hidden-phone ul#menu-categories > li.current-menu-ancestor:not(:hover):not(:focus-within) > a {
    background: transparent !important;
    color: var(--gio-blue) !important;
  }
}

/* ---- 9) Header — logo, alignment, search bar (canonical) ---- */
.ts-header .logo img.sticky-logo {
  display: none !important;
}

@media (min-width: 992px) {
  .ts-header .header-sticky,
  .ts-header .header-middle {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .ts-header .logo img {
    display: none !important;
  }

  .ts-header .logo img.normal-logo {
    display: block !important;
    max-height: var(--gio-header-logo-h) !important;
    width: auto !important;
    height: auto !important;
  }

  .ts-header .logo img.mobile-logo {
    display: none !important;
  }

  .ts-header .header-middle .logo a img.normal-logo,
  .ts-header .header-middle .logo img.normal-logo,
  .ts-header .header-sticky .logo a img.normal-logo,
  .ts-header .header-sticky .logo img.normal-logo {
    max-height: var(--gio-header-logo-h) !important;
    width: auto !important;
    height: auto !important;
  }

  .ts-header .header-middle .container {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: clamp(12px, 2vw, 20px) !important;
    padding-top: 6px !important;
    padding-bottom: 6px !important;
  }

  .ts-header .header-middle .header-left {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    max-width: 210px !important;
  }

  .ts-header .header-middle .header-center {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .ts-header .header-middle .header-right {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
  }

  .ts-header .header-middle .header-left,
  .ts-header .header-middle .header-right,
  .ts-header .header-middle .logo-wrapper,
  .ts-header .header-middle .logo,
  .ts-header .header-middle .logo a,
  .ts-header .header-middle .shopping-cart-wrapper {
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
  }

  .ts-header .header-middle .ts-search-by-category {
    width: 100% !important;
    max-width: 640px !important;
    margin: 0 auto !important;
  }

  .ts-header .header-middle .shopping-cart-wrapper .cart-total .label,
  .ts-header .header-middle .shopping-cart-wrapper .cart-total .woocommerce-Price-amount {
    color: var(--gio-blue) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
  }
}

@media (max-width: 991px) {
  .ts-header,
  .ts-header .header-template,
  .ts-header .header-middle,
  .ts-header .header-sticky,
  .ts-header .sticky-wrapper {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  /* One row — logo left, cart + menu right (readable logo + touch-friendly height) */
  .ts-header .header-middle .container {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    align-content: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    padding: var(--gio-mobile-header-pad-y) 12px !important;
    min-height: var(--gio-mobile-header-min-h) !important;
    max-height: none !important;
    height: auto !important;
  }

  .ts-header .header-middle .container > .header-left,
  .ts-header .header-middle .container > .header-right {
    width: auto !important;
    float: none !important;
    clear: none !important;
  }

  .ts-header .header-middle .header-left {
    display: flex !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: flex-start !important;
    order: 1 !important;
    min-width: 0 !important;
    max-width: calc(100% - 108px) !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
  }

  .ts-header .header-middle .header-right {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: flex-end !important;
    order: 2 !important;
    gap: 10px !important;
    padding: 0 4px 0 0 !important;
    margin: 0 !important;
    height: auto !important;
    min-height: 0 !important;
  }

  .ts-header .header-middle .logo-wrapper,
  .ts-header .header-middle .logo,
  .ts-header .header-middle .logo a {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: var(--gio-mobile-logo-h) !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
  }

  .ts-header .logo img {
    display: none !important;
  }

  .ts-header .logo img.normal-logo,
  .ts-header .header-middle .logo img.normal-logo,
  .ts-header .header-middle .logo a img.normal-logo,
  .ts-header .header-sticky .logo img.normal-logo {
    display: none !important;
    max-height: 0 !important;
    visibility: hidden !important;
  }

  .ts-header .logo img.mobile-logo,
  .ts-header .header-middle .logo img.mobile-logo,
  .ts-header .header-middle .logo a img.mobile-logo {
    display: block !important;
    height: var(--gio-mobile-logo-h) !important;
    max-height: var(--gio-mobile-logo-h) !important;
    width: auto !important;
    max-width: min(var(--gio-mobile-logo-max-w), 240px) !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  /* Fallback: single desktop logo asset when mobile-logo is absent */
  .ts-header .header-middle .logo a img.normal-logo:only-of-type,
  .ts-header .header-middle .logo img.normal-logo:only-of-type {
    display: block !important;
    visibility: visible !important;
    height: var(--gio-mobile-logo-h) !important;
    max-height: var(--gio-mobile-logo-h) !important;
    width: auto !important;
    max-width: min(var(--gio-mobile-logo-max-w), 240px) !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  .ts-header .header-middle .shopping-cart-wrapper,
  .ts-header .header-middle .shopping-cart-wrapper a,
  .ts-header .header-middle .shopping-cart-wrapper .cart-control {
    display: flex !important;
    align-items: center !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
  }

  .ts-header .header-middle .shopping-cart-wrapper .cart-icon,
  .ts-header .header-middle .shopping-cart-wrapper .ic-cart,
  .ts-header .header-middle .shopping-cart-wrapper i {
    font-size: 22px !important;
    line-height: 1 !important;
  }

  .ts-header .header-middle .shopping-cart-wrapper .cart-number {
    min-width: 18px !important;
    min-height: 18px !important;
    font-size: 11px !important;
    line-height: 18px !important;
  }

  .ts-header .logo svg {
    height: var(--gio-mobile-logo-h) !important;
    max-height: var(--gio-mobile-logo-h) !important;
    max-width: min(var(--gio-mobile-logo-max-w), 240px) !important;
    width: auto !important;
  }

  .ts-header .ts-mobile-icon-toggle,
  .ts-header .icon-menu-sticky-header.visible-phone {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--gio-mobile-touch) !important;
    height: var(--gio-mobile-touch) !important;
    min-width: var(--gio-mobile-touch) !important;
    min-height: var(--gio-mobile-touch) !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  #gvMdOpen.gv-md-open {
    width: var(--gio-mobile-touch) !important;
    height: var(--gio-mobile-touch) !important;
  }

  #gvMdOpen .gv-burger {
    width: 22px !important;
    height: 16px !important;
  }
}

@media (max-width: 480px) {
  :root {
    --gio-mobile-header-pad-y: clamp(8px, 2.4vw, 12px);
    --gio-mobile-logo-h: clamp(38px, 11.5vw, 44px);
    --gio-mobile-logo-max-w: 56vw;
    --gio-mobile-header-min-h: clamp(52px, 15vw, 62px);
  }

  .ts-header .header-middle .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
    gap: 8px !important;
  }

  .ts-header .header-middle .header-left {
    max-width: calc(100% - 100px) !important;
  }
}

.ts-header .ts-search-by-category,
.ts-header .ts-search-by-category * {
  box-sizing: border-box !important;
}

.ts-header .ts-search-by-category {
  width: 100%;
  max-width: var(--gv-boxed);
  margin: 0 auto;
}

.ts-header .ts-search-by-category form {
  position: relative;
  display: flex !important;
  align-items: stretch !important;
  height: var(--gio-h) !important;
  min-height: var(--gio-h) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--gio-border) !important;
  border-radius: var(--gio-radius) !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
  gap: 0 !important;
}

/* TS theme wraps input + button in .search-table — must flex or button floats with gaps */
.ts-header .ts-search-by-category .search-table,
.ts-header .ts-search-by-category .search-content {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: stretch !important;
  align-self: stretch !important;
}

.ts-header .ts-search-by-category .select-category,
.ts-header .ts-search-by-category select.select-category {
  flex: 0 0 var(--gio-cat-w) !important;
  width: var(--gio-cat-w) !important;
  max-width: var(--gio-cat-w) !important;
  min-width: var(--gio-cat-w) !important;
  height: 100% !important;
  min-height: 100% !important;
  align-self: stretch !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-right: 1px solid var(--gio-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ts-header .ts-search-by-category .search-field {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  display: flex !important;
  align-items: stretch !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  gap: 0 !important;
}

.ts-header .ts-search-by-category .search-button {
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  align-self: stretch !important;
  display: flex !important;
  align-items: stretch !important;
  height: auto !important;
  min-height: 100% !important;
  width: auto !important;
  min-width: 86px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 1 !important;
}

.ts-header .ts-search-by-category .select-category select,
.ts-header .ts-search-by-category select.select-category,
select.select-category {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background-color: #fff !important;
  color: var(--gio-blue) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 0 26px 0 12px !important;
  line-height: calc(var(--gio-h) - 2px) !important;
  text-align: left !important;
  text-align-last: left !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7l5 6 5-6' fill='none' stroke='%231f2a7c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px center !important;
  background-size: 12px 12px !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ts-header .ts-search-by-category .select-category select:hover,
.ts-header .ts-search-by-category .select-category select:focus {
  background-color: var(--gio-blue) !important;
  color: #fff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 7l5 6 5-6' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

.ts-search-by-category select.select-category option {
  background: #fff !important;
  color: var(--gio-blue) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
}

.ts-header .ts-search-by-category select::-ms-expand,
select.select-category::-ms-expand {
  display: none !important;
}

select.select-category option {
  text-align: left;
  padding: 2px 10px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

.ts-header .ts-search-by-category form select.select2-hidden-accessible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  flex: 0 0 0 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

.ts-header .ts-search-by-category form .select2-container {
  flex: 0 0 var(--gio-cat-w) !important;
  width: var(--gio-cat-w) !important;
  max-width: var(--gio-cat-w) !important;
  min-width: var(--gio-cat-w) !important;
  height: 100% !important;
  min-height: 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  border: 0 !important;
  border-right: 1px solid var(--gio-border) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.ts-header .ts-search-by-category .select-category .select2-container,
.ts-header .ts-search-by-category form > .select2-container {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
}

.ts-header .ts-search-by-category .select-category .select2-container .select2-selection--single {
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.ts-header .ts-search-by-category .select-category .select2-container--open .select2-selection--single,
.ts-header .ts-search-by-category .select-category .select2-container--focus .select2-selection--single,
.ts-header .ts-search-by-category .select-category .select2-container:hover .select2-selection--single {
  background: var(--gio-blue) !important;
}

.ts-header .ts-search-by-category .select-category .select2-container .select2-selection__rendered {
  color: var(--gio-blue) !important;
  padding-left: 12px !important;
  padding-right: 26px !important;
  line-height: var(--gio-h) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  transition: color 0.15s ease;
}

.ts-header .ts-search-by-category .select-category .select2-container--open .select2-selection__rendered,
.ts-header .ts-search-by-category .select-category .select2-container--focus .select2-selection__rendered,
.ts-header .ts-search-by-category .select-category .select2-container:hover .select2-selection__rendered {
  color: #fff !important;
}

.ts-header .ts-search-by-category .select-category .select2-container .select2-selection__arrow {
  height: 100% !important;
  width: 38px !important;
  right: 6px !important;
  top: 0 !important;
}

.ts-header .ts-search-by-category .select-category .select2-container .select2-selection__arrow b {
  border-color: var(--gio-blue) transparent transparent transparent !important;
  border-width: 5px 5px 0 5px !important;
  transition: border-color 0.15s ease;
}

.ts-header .ts-search-by-category .select-category .select2-container--open .select2-selection__arrow b,
.ts-header .ts-search-by-category .select-category .select2-container--focus .select2-selection__arrow b,
.ts-header .ts-search-by-category .select-category .select2-container:hover .select2-selection__arrow b {
  border-color: #fff transparent transparent transparent !important;
}

.ts-header .ts-search-by-category .select-category .chosen-container {
  width: 100% !important;
  height: 100% !important;
}

.ts-header .ts-search-by-category .select-category .chosen-container-single .chosen-single {
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 26px 0 12px !important;
  color: var(--gio-blue) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: var(--gio-h) !important;
}

.ts-header .ts-search-by-category .select-category .chosen-container-single .chosen-single div {
  width: 38px !important;
}

.ts-header .ts-search-by-category .select-category .chosen-container-single .chosen-single div b {
  background: none !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 5px solid transparent !important;
  border-right: 5px solid transparent !important;
  border-top: 5px solid var(--gio-blue) !important;
  margin-top: 2px !important;
}

.ts-header .ts-search-by-category .select-category .nice-select {
  width: 100% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--gio-blue) !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 26px 0 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: var(--gio-h) !important;
}

.ts-header .ts-search-by-category .select-category .nice-select:after {
  right: 10px !important;
  border-bottom: 2px solid var(--gio-blue) !important;
  border-right: 2px solid var(--gio-blue) !important;
}

/* Text input only — must not width:100% in flex row or it clips .search-button */
.ts-header .ts-search-by-category input[type="text"],
.ts-header .ts-search-by-category input[type="search"] {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  align-self: stretch !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 12px !important;
  font-size: 13px !important;
  line-height: normal !important;
  background: #fff !important;
}

.ts-header .ts-search-by-category .search-field input[type="hidden"] {
  display: none !important;
  flex: 0 0 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
}

.ts-header .ts-search-by-category .search-button input[type="submit"],
.ts-header .ts-search-by-category .search-button button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  flex-shrink: 0 !important;
  align-self: stretch !important;
  width: auto !important;
  min-width: 86px !important;
  height: 100% !important;
  min-height: var(--gio-h) !important;
  margin: 0 !important;
  border: 0 !important;
  border-left: 1px solid var(--gio-border) !important;
  border-radius: 0 !important;
  outline: none !important;
  background: var(--gio-blue) !important;
  color: #fff !important;
  padding: 0 14px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  box-shadow: none !important;
  white-space: nowrap !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
}

.ts-header .ts-search-by-category .search-button input[type="submit"]:hover,
.ts-header .ts-search-by-category .search-button button:hover {
  filter: brightness(0.95);
}

.ts-search-by-category select option {
  background: #fff !important;
  color: #111 !important;
  padding: 2px 10px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

.ts-header .ts-search-by-category select.select-category option,
select.select-category option {
  min-height: 0 !important;
}

.select2-container--default .select2-results > .select2-results__options {
  max-height: 320px !important;
}

.select2-container--default .select2-results__option {
  padding: 5px 12px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.chosen-container .chosen-results li {
  padding: 5px 12px !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.ts-header .ts-search-by-category .chosen-container .chosen-drop {
  border: 1px solid var(--gio-border-soft) !important;
  box-shadow: var(--gio-shadow) !important;
  max-width: var(--gio-cat-drop-w) !important;
}

.ts-header .ts-search-by-category .chosen-container .chosen-results li {
  padding: 7px 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--gio-blue) !important;
  background: #fff !important;
  border-top: 1px solid rgba(31, 42, 124, 0.12) !important;
}

.ts-header .ts-search-by-category .chosen-container .chosen-results li:first-child {
  border-top: 0 !important;
}

.ts-header .ts-search-by-category .chosen-container .chosen-results li.highlighted,
.ts-header .ts-search-by-category .chosen-container .chosen-results li.result-selected {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

/* Category Select2 — match #menu-categories sub-menu (blue/white) */
.gv-cat-select2-dropdown.select2-dropdown {
  width: var(--gio-cat-drop-w) !important;
  min-width: var(--gio-cat-w) !important;
  max-width: min(var(--gio-cat-drop-w), 92vw) !important;
  border: 1px solid var(--gio-border-soft) !important;
  box-shadow: var(--gio-shadow) !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.gv-cat-select2-dropdown .select2-results__options {
  max-height: 280px !important;
  padding: 0 !important;
}

.gv-cat-select2-dropdown .select2-results__option {
  padding: 7px 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  line-height: 1.25 !important;
  color: var(--gio-blue) !important;
  background: #fff !important;
  border-top: 1px solid rgba(31, 42, 124, 0.12) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.gv-cat-select2-dropdown .select2-results__option:first-child {
  border-top: 0 !important;
}

.gv-cat-select2-dropdown .select2-results__option--highlighted,
.gv-cat-select2-dropdown .select2-results__option--highlighted[aria-selected],
.gv-cat-select2-dropdown .select2-results__option[aria-selected="true"] {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

/* Generic Select2 (non-category) */
.select2-results__option--highlighted:not(.gv-cat-select2-dropdown .select2-results__option),
.select2-results__option[aria-selected="true"]:not(.gv-cat-select2-dropdown .select2-results__option) {
  background: var(--gio-blue) !important;
  color: #fff !important;
}

/* Shop sidebar — brand filter labels (title case via JS; tighten list spacing) */
.woocommerce-widget-layered-nav-list .woocommerce-layered-nav-item,
.widget_layered_nav li,
.berocket_aapf_widget ul li {
  margin-bottom: 2px !important;
}

.woocommerce-widget-layered-nav-list a,
.widget_layered_nav li a,
.berocket_aapf_widget ul li label {
  font-size: 13px !important;
  line-height: 1.3 !important;
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

/* ---- 10) Sticky header tricolour burger (desktop) ---- */
@media (min-width: 992px) {
  .ts-header .header-sticky .icon-menu-sticky-header {
    cursor: pointer;
    line-height: 1;
  }

  .ts-header .header-sticky .icon-menu-sticky-header .icon {
    background: none !important;
    position: relative !important;
    display: inline-block !important;
    width: var(--gv-burger-w) !important;
    height: calc((var(--gv-burger-bar) * 3) + (var(--gv-burger-gap) * 2)) !important;
    background:
      linear-gradient(var(--gv-blue), var(--gv-blue)) 0 0 / 100% var(--gv-burger-bar) no-repeat,
      linear-gradient(var(--gv-green), var(--gv-green)) 0 calc(var(--gv-burger-bar) + var(--gv-burger-gap)) / 100% var(--gv-burger-bar) no-repeat,
      linear-gradient(var(--gv-red), var(--gv-red)) 0 calc((var(--gv-burger-bar) * 2) + (var(--gv-burger-gap) * 2)) / 100% var(--gv-burger-bar) no-repeat !important;
    border-radius: 2px !important;
    opacity: 1 !important;
  }

  .ts-header .header-sticky .icon-menu-sticky-header .icon:before,
  .ts-header .header-sticky .icon-menu-sticky-header .icon:after {
    content: none !important;
  }

  .ts-header .header-sticky .icon-menu-sticky-header:hover .icon {
    filter: saturate(1.1);
  }
}

/* ---- 11) Mobile burger + drawer (full v7.4 shell) ---- */
@media (min-width: 992px) {
  .gv-md-overlay,
  .gv-md-drawer,
  .gv-md-open {
    display: none !important;
  }
}

@media (max-width: 991px) {
  .ts-header .header-middle .header-search,
  .ts-header .header-middle .search-wrapper,
  .ts-header .header-middle .ts-search-by-category,
  .ts-header .header-middle form[role="search"],
  .ts-header .header-middle .woocommerce-product-search,
  .ts-header .header-middle input[type="search"],
  .ts-header .header-middle input[type="text"][name="s"],
  .ts-header .header-middle .aws-container,
  .ts-header .header-middle .dgwt-wcas-search-wrapp,
  .ts-header .header-middle [class*="search"] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  .ts-header .header-middle [aria-label*="menu" i]:not(.gv-md-open),
  .ts-header .header-middle [class*="mobile-menu"]:not(.gv-md-open),
  .ts-header .header-middle [class*="menu-toggle"]:not(.gv-md-open),
  .ts-header .header-middle [class*="offcanvas"]:not(.gv-md-open),
  .ts-header .header-middle [class*="canvas"]:not(.gv-md-open),
  .ts-header .header-middle [class*="hamburger"]:not(.gv-md-open),
  .ts-header .header-middle [class*="toggle"]:not(.gv-md-open),
  .ts-header .header-middle [aria-label*="close" i]:not(#gvMdClose):not(.gv-md-close),
  .mm-btn_close,
  .mobile-menu-close,
  .ts-menu-close,
  .ts-close-menu,
  .ts-mobile-menu-close {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .mobile-menu-wrapper,
  .ts-menu-mobile,
  #ts-mobile-menu,
  .mm-menu,
  .mm-panels,
  .mm-panel,
  .ts-mobile-menu,
  .ts-mobile-nav,
  .mobile-nav-wrapper,
  .mobile-menu-container,
  .mobile-menu-overlay,
  .menu-overlay,
  .ts-menu-overlay {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .ts-header .header-middle .header-right {
    position: relative !important;
    z-index: 99980 !important;
    overflow: visible !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .gv-md-open {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    border-radius: 14px !important;
    border: 1px solid var(--gio-border) !important;
    background: #fff !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
    z-index: 999999 !important;
    pointer-events: auto !important;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08) !important;
  }

  .gv-md-open:not(.gv-md-mounted) {
    position: fixed !important;
    top: 12px !important;
    right: 12px !important;
  }

  .gv-md-open.gv-md-mounted {
    position: relative !important;
    top: auto !important;
    right: auto !important;
  }

  .gv-md-open .gv-burger {
    width: 18px !important;
    height: 14px !important;
    position: relative !important;
    display: block !important;
  }

  .gv-md-open .gv-burger .gv-line {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    height: 2px !important;
    border-radius: 2px !important;
    display: block !important;
  }

  .gv-md-open .gv-burger .gv-l1 { top: 0 !important; background: var(--gio-blue) !important; }
  .gv-md-open .gv-burger .gv-l2 { top: 6px !important; background: var(--gv-green) !important; }
  .gv-md-open .gv-burger .gv-l3 { bottom: 0 !important; background: var(--gv-red) !important; }

  .gv-md-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0, 0, 0, 0.55) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.18s ease !important;
    z-index: 999998 !important;
  }

  .gv-md-drawer {
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    height: 100vh !important;
    width: min(92vw, 420px) !important;
    background: #fff !important;
    transform: translateX(102%) !important;
    transition: transform 0.2s ease !important;
    z-index: 999999 !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25) !important;
  }

  body.gv-md-opened .gv-md-overlay { opacity: 1 !important; pointer-events: auto !important; }
  body.gv-md-opened .gv-md-drawer { transform: translateX(0) !important; }
  body.gv-md-opened { overflow: hidden !important; }

  .gv-md-head {
    background: var(--gio-blue) !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 14px !important;
    min-height: 56px !important;
  }

  .gv-md-title { font-size: 16px !important; font-weight: 900 !important; margin: 0 !important; }
  .gv-md-close {
    width: 48px !important;
    height: 48px !important;
    border: 0 !important;
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
    font-size: 26px !important;
    border-radius: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
  }

  .gv-md-body {
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 14px 14px calc(24px + env(safe-area-inset-bottom)) !important;
  }

  .gv-md-drawer .widget-container {
    padding: 0 0 14px !important;
    margin: 0 0 14px !important;
    border-bottom: 1px solid rgba(31, 42, 124, 0.12) !important;
  }

  .gv-md-drawer .widget-title,
  .gv-md-drawer .heading-title {
    font-size: 18px !important;
    font-weight: 900 !important;
    margin: 12px 0 10px !important;
    color: #0f172a !important;
  }

  .gv-md-drawer .widget_search form,
  .gv-md-drawer form.search-form {
    display: flex !important;
    gap: 10px !important;
  }

  .gv-md-drawer input[type="text"],
  .gv-md-drawer input[type="search"] {
    width: 100% !important;
    height: 46px !important;
    border-radius: 14px !important;
    border: 1px solid var(--gio-border) !important;
    padding: 0 14px !important;
    font-size: 16px !important;
  }

  .gv-md-drawer .widget_search button,
  .gv-md-drawer .widget_search input[type="submit"],
  .gv-md-drawer form.search-form button,
  .gv-md-drawer form.search-form input[type="submit"] {
    border-radius: 14px !important;
    background: var(--gio-blue) !important;
    color: #fff !important;
    height: 46px !important;
    padding: 0 16px !important;
    font-weight: 800 !important;
  }

  #gvMdBrandsBlock .gv-md-row {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-height: 52px !important;
    width: 100% !important;
    text-decoration: none !important;
    color: #111827 !important;
    border-bottom: 1px solid rgba(31, 42, 124, 0.1) !important;
  }

  #gvMdBrandsBlock .gv-md-rowbox {
    width: 22px !important;
    height: 22px !important;
    border-radius: 4px !important;
    border: 1px solid rgba(17, 24, 39, 0.22) !important;
    flex: 0 0 22px !important;
  }

  #gvMdBrandsBlock .gv-md-rowtext { flex: 1 1 auto !important; font-size: 16px !important; font-weight: 600 !important; }
  #gvMdBrandsBlock .gv-md-rowcount { margin-left: auto !important; }

  .gv-md-brands-titletext {
    font-size: 18px !important;
    font-weight: 400 !important;
    color: var(--gio-blue) !important;
  }

  .gv-md-brands-titleicon { color: var(--gio-blue) !important; font-weight: 900 !important; }

  .gv-md-brands-titlebtn {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 12px 0 10px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    cursor: pointer !important;
    text-align: left !important;
  }
}

#gvMdOpen.gv-md-open {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  -webkit-tap-highlight-color: transparent !important;
  width: 36px !important;
  height: 36px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

#gvMdOpen.gv-md-open::before,
#gvMdOpen.gv-md-open::after {
  content: none !important;
  display: none !important;
}

#gvMdOpen .gv-burger {
  width: 22px !important;
  height: 16px !important;
  background: transparent !important;
  border: 0 !important;
}

#gvMdOpen .gv-burger .gv-l2 {
  top: 7px !important;
}

@media (max-width: 991px) {
  .gv-md-drawer .widget_pages > .widget-title,
  .gv-md-drawer .widget_nav_menu > .widget-title {
    display: none !important;
  }
}

/* ---- 12) Single product image ---- */
.single-product .woocommerce-product-gallery__image img {
  max-width: 100%;
  margin: 0 auto;
  display: block;
}

/* ---- 13) Hide subcategory tiles on category archives ---- */
body.tax-product_cat .products > .product-category {
  display: none !important;
}

/* ---- 14) Featured badge visibility ---- */
.ts-product-wrapper.featured.list .product-label .featured {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ---- 15) Homepage service row + Instagram (Smash Balloon) ---- */
/* Shared content width — service icon grid + IG feed (match --gv-main-width) */

@media (min-width: 768px) {
  .elementor-element-c33c37c > .e-con-inner,
  .elementor-element-5485b6c > .e-con-inner,
  .elementor-element-b6b8174 > .e-con-inner {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 767px) {
  .elementor-element-c33c37c > .e-con-inner,
  .elementor-element-5485b6c > .e-con-inner,
  .elementor-element-b6b8174 > .e-con-inner {
    padding-left: max(16px, var(--gv-gutter)) !important;
    padding-right: max(16px, var(--gv-gutter)) !important;
    box-sizing: border-box !important;
  }
}

/* ---- Service section top divider (above icon row; match bottom divider width) ---- */
/* Widget 9c4b86d sits in product container a653e97 — full width without this rule */
.elementor-element-9c4b86d > .elementor-widget-container {
  width: var(--gv-main-width) !important;
  max-width: var(--gv-main-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  .elementor-element-9c4b86d > .elementor-widget-container {
    padding-left: max(16px, var(--gv-gutter)) !important;
    padding-right: max(16px, var(--gv-gutter)) !important;
  }
}

/* Keep plugin grid/column layout — do NOT flex #sbi_images (breaks column widths) */

#sb_instagram,
#sb_instagram * {
  box-sizing: border-box;
}

#sb_instagram {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: none !important;
  background: transparent !important;
}

#sb_instagram .sb_instagram_header {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto 16px !important;
  padding: 0 !important;
  border: none !important;
}

#sb_instagram #sbi_images {
  max-width: 100% !important;
  width: 100% !important;
  margin: 0 auto 20px !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Tighter tile gutter = slightly larger images (plugin default padding is 5px) */
#sb_instagram .sbi_item {
  padding: 2px !important;
}

#sb_instagram .sbi_item,
#sb_instagram .sbi_photo_wrap,
#sb_instagram .sbi_photo {
  height: auto !important;
  max-width: 100% !important;
}

#sb_instagram .sbi_photo_wrap {
  width: 100% !important;
  overflow: hidden !important;
  border-radius: 6px;
}

#sb_instagram .sbi_photo {
  display: block !important;
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: var(--gio-ig-aspect) !important;
  height: auto !important;
  padding: 0 !important;
  padding-bottom: 0 !important;
  overflow: hidden !important;
  border: none !important;
  border-radius: 6px;
  background: transparent !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

#sb_instagram .sbi_photo img,
#sb_instagram .sbi_photo video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

#sb_instagram .sbi_photo.sbi_loader {
  background-size: cover !important;
  background-position: center center !important;
}

#sb_instagram .sbi_photo .sbi_playbtn,
#sb_instagram .sbi_photo .sbi_lightbox_carousel_icon {
  z-index: 2 !important;
}

#sb_instagram .sbi_photo:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

#sb_instagram .sbi_load_btn {
  display: none !important;
}

#sb_instagram #sbi_load,
#sb_instagram .sbi_follow_btn {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: none !important;
}

#sb_instagram .sbi_follow_btn a,
#sb_instagram .sbi_follow_btn a:visited,
#sb_instagram .sbi_follow_btn a[style] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  min-height: 44px !important;
  padding: 0 26px !important;
  border-radius: 6px !important;
  border: 2px solid var(--gio-blue) !important;
  background: transparent !important;
  color: var(--gio-blue) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.4px !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
  line-height: 1 !important;
  margin: 0 auto !important;
  transition: all 0.25s ease;
}

#sb_instagram .sbi_follow_btn a:hover,
#sb_instagram .sbi_follow_btn a:focus,
#sb_instagram .sbi_follow_btn a:active {
  background: var(--gio-blue) !important;
  color: #fff !important;
  box-shadow: 0 6px 18px rgba(31, 42, 124, 0.25);
}

#sb_instagram .sbi_follow_btn a i,
#sb_instagram .sbi_follow_btn a svg,
#sb_instagram .sbi_follow_btn svg {
  font-size: 18px !important;
  width: 18px !important;
  height: 18px !important;
  fill: currentColor !important;
}

@media (max-width: 767px) {
  #sb_instagram {
    margin-bottom: 24px !important;
    padding: 0 12px !important;
  }

  #sb_instagram #sbi_images .sbi_item {
    max-width: 100% !important;
  }

  #sb_instagram .sbi_photo:hover {
    transform: none;
    box-shadow: none;
  }

  #sb_instagram .sbi_follow_btn a {
    width: 100%;
    max-width: 320px;
    margin: 0 auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #sb_instagram .sbi_photo {
    transition: none !important;
  }

  #sb_instagram .sbi_photo:hover {
    transform: none !important;
  }
}

/* ---- 16) Footer icons + spacing (Elementor flex-safe — do NOT grid e-con-inner) ---- */
#colophon a,
#colophon p,
#colophon li,
#colophon .elementor-icon-list-text {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

#colophon .elementor-icon-list-icon svg {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  display: inline-block;
}

#colophon .elementor-icon-list-icon {
  width: 16px;
  min-width: 16px;
  line-height: 1;
}

#colophon .elementor-icon-list-item {
  align-items: center;
}

#colophon .elementor-icon-list-text {
  white-space: normal !important;
}

#colophon h6.elementor-heading-title {
  color: var(--gio-blue) !important;
  font-weight: 700 !important;
}

#colophon .elementor-widget-image img {
  max-width: 160px !important;
  height: auto !important;
}

#colophon .elementor-icon-list-item a {
  color: #374151 !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

#colophon .elementor-icon-list-item a:hover,
#colophon .elementor-icon-list-item a:focus-visible {
  color: var(--gio-blue) !important;
}

/* Contact sub-headings — desktop + mobile */
#colophon .elementor-element-47fe894 .elementor-icon-list-item:not(:has(a)) .elementor-icon-list-text {
  display: block !important;
  margin-top: 8px !important;
  font-size: clamp(0.78rem, 0.74rem + 0.14vw, 0.86rem) !important;
  font-weight: 700 !important;
  color: var(--gio-blue) !important;
  line-height: 1.25 !important;
}

#colophon .elementor-element-47fe894 .elementor-icon-list-item:not(:has(a)):first-child .elementor-icon-list-text {
  margin-top: 0 !important;
}

@media (min-width: 768px) {
  #colophon .elementor-element-a8cb60e > .e-con-inner {
    gap: clamp(16px, 2.5vw, 28px) !important;
    padding-top: clamp(16px, 2vw, 24px) !important;
    padding-bottom: clamp(12px, 1.8vw, 18px) !important;
  }

  #colophon .elementor-widget {
    margin-bottom: 8px !important;
  }

  #colophon .elementor-widget-heading {
    margin-bottom: 6px !important;
  }

  #colophon .elementor-element-2e524b1 > .e-con-inner {
    padding-top: 12px !important;
    padding-bottom: 14px !important;
    border-top: 1px solid var(--gio-border-soft) !important;
  }

  #colophon .elementor-element-2e524b1 .elementor-widget-text-editor p {
    font-size: clamp(0.72rem, 0.68rem + 0.12vw, 0.8rem) !important;
    line-height: 1.35 !important;
    color: #6b7280 !important;
  }
}

@media (max-width: 767px) {
  #colophon.footer-container,
  footer#colophon {
    padding: 0 0 88px !important;
  }

  #colophon .e-con-boxed > .e-con-inner {
    padding-left: max(16px, var(--gv-gutter)) !important;
    padding-right: max(16px, var(--gv-gutter)) !important;
  }

  #colophon .elementor-widget-image {
    display: none !important;
  }

  /* Stack footer columns — one section per row */
  #colophon .elementor-element-a8cb60e > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    padding-top: 8px !important;
    padding-bottom: 4px !important;
  }

  #colophon .elementor-element-a8cb60e .e-con.e-child {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    padding: 16px 0 !important;
    border-top: 1px solid var(--gio-border-soft) !important;
  }

  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child {
    border-top: none !important;
    padding-top: 4px !important;
  }

  #colophon .elementor-widget {
    margin-bottom: 0 !important;
  }

  #colophon .elementor-widget-heading {
    margin-bottom: 10px !important;
  }

  #colophon h6.elementor-heading-title {
    margin: 0 0 10px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.2 !important;
  }

  /* Opening hours section title (logo hidden on mobile) */
  #colophon .elementor-element-2d7e884 .elementor-element-327a27f > .elementor-widget-container::before {
    content: "Opening Hours";
    display: block;
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    color: var(--gio-blue);
    letter-spacing: 0.02em;
    line-height: 1.2;
  }

  /* Cancel theme mobile-2-columns split — single neat column (except hours grid below) */
  #colophon .mobile-2-columns .elementor-icon-list-items {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    columns: 1 !important;
    -webkit-columns: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #colophon .elementor-icon-list-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 5px 0 !important;
  }

  #colophon .elementor-icon-list-item a {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    width: 100% !important;
    min-height: 40px !important;
    padding: 2px 0 !important;
    color: #374151 !important;
    text-decoration: none !important;
  }

  #colophon .elementor-icon-list-item a:hover,
  #colophon .elementor-icon-list-item a:focus-visible {
    color: var(--gio-blue) !important;
  }

  #colophon .elementor-icon-list-text {
    white-space: normal !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    color: #374151 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  #colophon .elementor-icon-list-icon {
    flex: 0 0 16px !important;
    width: 16px !important;
    min-width: 16px !important;
    margin-top: 2px !important;
    line-height: 1 !important;
    color: var(--gio-blue) !important;
  }

  #colophon .elementor-icon-list-icon svg,
  #colophon .elementor-icon-list-icon i {
    width: 16px !important;
    height: 16px !important;
    font-size: 15px !important;
    line-height: 1 !important;
  }

  /* Opening hours — day | time pairs in a aligned 2-column grid */
  #colophon .elementor-element-327a27f .elementor-icon-list-items {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    column-gap: 12px !important;
    row-gap: 6px !important;
    align-items: center !important;
  }

  #colophon .elementor-element-327a27f .elementor-icon-list-item {
    padding: 3px 0 !important;
    min-height: 0 !important;
  }

  #colophon .elementor-element-327a27f .elementor-icon-list-item:nth-child(even) {
    justify-content: flex-end !important;
  }

  #colophon .elementor-element-327a27f .elementor-icon-list-item:nth-child(even) .elementor-icon-list-text {
    text-align: right !important;
    white-space: nowrap !important;
  }

  #colophon .elementor-element-47fe894 .elementor-icon-list-item:not(:has(a)) {
    padding-top: 12px !important;
    padding-bottom: 2px !important;
  }

  #colophon .elementor-element-f1eecb7 + .elementor-element-f1eecb7 {
    display: none !important;
  }

  /* Copyright / legal row */
  #colophon .elementor-element-2e524b1 > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 14px 0 18px !important;
    border-top: 1px solid var(--gio-border-soft) !important;
  }

  #colophon .elementor-element-2e524b1 .elementor-widget-text-editor,
  #colophon .elementor-element-2e524b1 .elementor-widget-text-editor .elementor-widget-container {
    width: 100% !important;
    text-align: center !important;
  }

  #colophon .elementor-element-2e524b1 .elementor-widget-text-editor {
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
    color: #6b7280 !important;
  }

  #colophon .elementor-element-2e524b1 .elementor-widget-text-editor p {
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* ---- 17) Mobile checkout totals (scoped — no html/body overflow) ---- */
@media (max-width: 767px) {
  .woocommerce-checkout,
  .woocommerce-checkout .site-content,
  .woocommerce-checkout #primary,
  .woocommerce-checkout #main {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  .woocommerce-checkout-review-order,
  .woocommerce-checkout-review-order-table,
  .woocommerce-checkout-review-order-table-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout-review-order-table {
    table-layout: fixed !important;
  }

  .woocommerce-checkout-review-order-table th:last-child,
  .woocommerce-checkout-review-order-table td:last-child {
    text-align: right !important;
    white-space: nowrap !important;
    min-width: 110px !important;
  }

  .woocommerce-checkout-review-order-table th,
  .woocommerce-checkout-review-order-table td {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order {
    padding-right: 0 !important;
    margin-right: 0 !important;
  }

  .woocommerce ul.products li.product,
  .woocommerce .related ul.products li.product {
    display: flex !important;
    flex-direction: column;
    height: 100%;
  }

  .woocommerce ul.products li.product > * {
    flex-shrink: 0;
  }

  .woocommerce ul.products li.product .button,
  .woocommerce ul.products li.product .add_to_cart_button {
    margin-top: auto !important;
    margin-bottom: 0 !important;
  }
}

/* ---- 18) Site-wide boxed layout (tablet/desktop) ---- */
@media (min-width: 768px) {
  /* Prevent phantom frame lines on the page shell (clip/hidden on #page caused visible borders) */
  html,
  body:not(.wp-admin),
  #page,
  #page.site,
  .site,
  .site-content,
  #wrapper,
  .wrapper {
    border: none !important;
    outline: none !important;
  }

  body:not(.wp-admin) .container,
  body:not(.wp-admin) .ts-header .container,
  body:not(.wp-admin) .header-template .container,
  body:not(.wp-admin) .ts-footer .container,
  body:not(.wp-admin) #colophon .container,
  body:not(.wp-admin) .site-footer .container,
  body:not(.wp-admin) .footer-container .container {
    width: 100% !important;
    max-width: var(--gv-boxed) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--gv-gutter) !important;
    padding-right: var(--gv-gutter) !important;
    box-sizing: border-box !important;
  }

  body:not(.wp-admin) .container.container-fluid,
  body:not(.wp-admin) .container.container-full,
  body:not(.wp-admin) .container.fullwidth,
  body:not(.wp-admin) .container.full-width {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Elementor: header/footer templates only — do NOT box every page section (caused side frame lines) */
  body:not(.wp-admin) .elementor-location-header .elementor-section > .elementor-container,
  body:not(.wp-admin) .elementor-location-footer .elementor-section > .elementor-container,
  body:not(.wp-admin) .elementor-location-header .e-con > .e-con-inner,
  body:not(.wp-admin) .elementor-location-footer .e-con > .e-con-inner,
  body:not(.wp-admin) #colophon .e-con-boxed > .e-con-inner,
  body:not(.wp-admin) #colophon.footer-container .e-con-boxed > .e-con-inner {
    width: 100% !important;
    max-width: var(--gv-boxed) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--gv-gutter) !important;
    padding-right: var(--gv-gutter) !important;
    box-sizing: border-box !important;
  }

  body:not(.wp-admin) .elementor-location-header .elementor-section.elementor-section-stretched,
  body:not(.wp-admin) .elementor-location-footer .elementor-section.elementor-section-stretched {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* TS footer: #colophon IS .footer-container (not a child of it) */
  body:not(.wp-admin) #colophon.footer-container,
  body:not(.wp-admin) .ts-footer,
  body:not(.wp-admin) .site-footer#colophon {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  body:not(.wp-admin) .ts-footer .footer-container .container,
  body:not(.wp-admin) #colophon .container,
  body:not(.wp-admin) .site-footer .container {
    max-width: var(--gv-main-width) !important;
    width: var(--gv-main-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Header middle + footer containers — match main 90% band */
  body:not(.wp-admin) .ts-header .header-middle .container {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body:not(.wp-admin) .ts-header .header-bottom .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: center !important;
  }

  /* Main content — 90% centered (shop, categories, pages) */
  body:not(.wp-admin):not(.woocommerce-checkout) #primary,
  body:not(.wp-admin):not(.woocommerce-checkout) #main,
  body:not(.wp-admin):not(.woocommerce-checkout) .content-area,
  body:not(.wp-admin):not(.woocommerce-checkout) .site-main,
  body:not(.wp-admin):not(.woocommerce-checkout) .main-content,
  body:not(.wp-admin):not(.woocommerce-checkout) .content-wrapper,
  body:not(.wp-admin):not(.woocommerce-checkout) #main.site-main > .elementor,
  body:not(.wp-admin):not(.woocommerce-checkout) #primary > main.elementor {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  body:not(.wp-admin):not(.woocommerce-checkout) .elementor-location-main > .elementor {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-inline: auto !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .site-content,
  body.woocommerce-page:not(.woocommerce-checkout) .site-content,
  body.tax-product_cat:not(.woocommerce-checkout) .site-content {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
    box-sizing: border-box !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .site-content #primary,
  body.woocommerce:not(.woocommerce-checkout) .site-content #main,
  body.woocommerce:not(.woocommerce-checkout) .site-content .woocommerce,
  body.woocommerce-page:not(.woocommerce-checkout) .site-content #primary,
  body.woocommerce-page:not(.woocommerce-checkout) .site-content #main,
  body.woocommerce-page:not(.woocommerce-checkout) .site-content .woocommerce,
  body.tax-product_cat:not(.woocommerce-checkout) .site-content #primary,
  body.tax-product_cat:not(.woocommerce-checkout) .site-content #main {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    padding-inline: 0 !important;
  }

  .woocommerce ul.products,
  .woocommerce div.products,
  .woocommerce-page ul.products,
  .woocommerce-page div.products {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  .woocommerce ul.products {
    justify-content: flex-start !important;
  }

  body:not(.wp-admin) #colophon .e-con-boxed > .e-con-inner,
  body:not(.wp-admin) #colophon.footer-container .e-con-boxed > .e-con-inner {
    width: var(--gv-main-width) !important;
    max-width: var(--gv-main-width) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

}

/* ---- 19) Testimonials widget ---- */
.elementor-element-b03e7dc {
  --gv-blue: var(--theme-color, var(--ts-primary-color, #1d3b8b));
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .content,
.elementor-element-b03e7dc .ts-testimonial-wrapper .content p,
.elementor-element-b03e7dc .ts-testimonial-wrapper blockquote {
  font-size: 15px !important;
  line-height: 1.35 !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating {
  margin: 0 0 6px !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating,
.elementor-element-b03e7dc .ts-testimonial-wrapper .rating * {
  color: var(--gv-blue) !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating:before,
.elementor-element-b03e7dc .ts-testimonial-wrapper .rating span:before,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating:before,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating span:before {
  color: var(--gv-blue) !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating svg,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating svg {
  fill: var(--gv-blue) !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating {
  padding-left: 8px !important;
  padding-right: 8px !important;
  background-clip: content-box !important;
  background-origin: content-box !important;
  overflow: visible !important;
}

.elementor-element-b03e7dc .ts-testimonial-wrapper .rating > span,
.elementor-element-b03e7dc .ts-testimonial-wrapper .star-rating > span {
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  display: block !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  .elementor-element-b03e7dc .ts-testimonial-wrapper .content,
  .elementor-element-b03e7dc .ts-testimonial-wrapper .content p,
  .elementor-element-b03e7dc .ts-testimonial-wrapper blockquote {
    font-size: 14px !important;
  }
}

/* ---- 20) Elementor divider ---- */
.elementor-widget-divider .elementor-divider {
  margin-top: var(--gvc-margin-top) !important;
  margin-bottom: var(--gvc-margin-bottom) !important;
}

.elementor-widget-divider .elementor-divider-separator {
  display: flex !important;
  align-items: center !important;
  gap: var(--gvc-gap) !important;
  width: 100% !important;
  min-width: 0 !important;
  border: 0 !important;
}

.elementor-widget-divider .elementor-divider-separator::before,
.elementor-widget-divider .elementor-divider-separator::after {
  content: "";
  flex: 1 1 auto;
  min-width: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--gvc-line-soft) 16%,
    var(--gvc-line-strong) 50%,
    var(--gvc-line-soft) 84%,
    transparent 100%
  );
}

.elementor-widget-divider .elementor-divider__text {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
  max-width: 100% !important;
  padding: var(--gvc-pad-y) var(--gvc-pad-x) !important;
  border: 1px solid var(--gvc-border) !important;
  border-radius: 999px !important;
  background: var(--gvc-white) !important;
  color: var(--gvc-navy) !important;
  font-size: var(--gvc-font-size) !important;
  font-weight: 700 !important;
  letter-spacing: var(--gvc-letter-space) !important;
  line-height: 1.12 !important;
  text-transform: uppercase !important;
  box-shadow: 0 2px 8px rgba(15, 31, 74, 0.05) !important;
}

@media (max-width: 480px) {
  .elementor-widget-divider .elementor-divider__text {
    letter-spacing: 0.06em !important;
    padding-inline: clamp(0.70rem, 3.8vw, 0.90rem) !important;
  }
}

/* ---- 21) Homepage hero — 80% centered band (matches row menu) ---- */
body.home .ts-header {
  margin-bottom: 0 !important;
}

body.home #main,
body.home .site-content,
body.home #content,
body.home .content-wrapper {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

body.home .elementor-element-cefed05 {
  width: 100% !important;
  max-width: 100% !important;
  --padding-top: 0px !important;
  --padding-block-start: 0px !important;
  --gap: 0px !important;
  padding-top: var(--gv-hero-gap-below-menu) !important;
  padding-bottom: clamp(12px, 2vw, 24px) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.home .elementor-element-cefed05 > .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  box-sizing: border-box !important;
  gap: 0 !important;
  display: flex !important;
  justify-content: center !important;
}

body.home .elementor-element-7560cd0 {
  width: var(--gv-content-band) !important;
  max-width: var(--gv-content-band) !important;
  flex: 0 0 var(--gv-content-band) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: var(--gv-hero-radius) !important;
  overflow: hidden !important;
  box-shadow: var(--gv-hero-shadow) !important;
  background-size: cover !important;
  background-position: center 32% !important;
  background-repeat: no-repeat !important;
}

body.home .elementor-element-7560cd0 > .e-con-inner {
  position: relative !important;
  width: 100% !important;
  min-height: var(--gv-hero-min-h) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: var(--gv-hero-pad-y) var(--gv-hero-pad-x) !important;
  box-sizing: border-box !important;
  gap: clamp(10px, 1.4vw, 16px) !important;
  background-size: cover !important;
  background-position: center 32% !important;
  background-repeat: no-repeat !important;
}

body.home .elementor-element-7560cd0 .elementor-element-5a0d93c,
body.home .elementor-element-7560cd0 .elementor-element-9ae4716 {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: min(52ch, 92%) !important;
  margin-inline: auto !important;
}

body.home .elementor-element-7560cd0 .elementor-heading-title {
  color: #fff !important;
  font-size: var(--gv-hero-title) !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: clamp(0.005em, 0.01vw, 0.02em) !important;
  text-shadow: var(--gv-hero-text-shadow) !important;
  margin: 0 !important;
  text-wrap: balance !important;
}

body.home .elementor-element-7560cd0 .elementor-element-9ae4716 h3,
body.home .elementor-element-7560cd0 .elementor-element-9ae4716 strong {
  color: #fff !important;
  font-size: var(--gv-hero-sub) !important;
  font-weight: 700 !important;
  letter-spacing: clamp(0.1em, 0.08em + 0.12vw, 0.18em) !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
  text-shadow: var(--gv-hero-text-shadow) !important;
  margin: 0 !important;
  text-wrap: balance !important;
}

@media (max-width: 480px) {
  body.home .elementor-element-7560cd0 {
    border-radius: clamp(4px, 1.5vw, 8px) !important;
    box-shadow:
      0 3px 8px rgba(0, 0, 0, 0.08),
      0 10px 22px rgba(0, 0, 0, 0.12) !important;
  }
}

/* ---- 23) WooCommerce products — same width as Elementor sections above/below ---- */
@media (min-width: 768px) {
  /* Single 90% shell = .site-content; inner Elementor + products fill 100% of it */
  body.woocommerce:not(.woocommerce-checkout) .elementor-location-main > .elementor,
  body.woocommerce-page:not(.woocommerce-checkout) .elementor-location-main > .elementor,
  body.tax-product_cat:not(.woocommerce-checkout) .elementor-location-main > .elementor,
  body.woocommerce:not(.woocommerce-checkout) #main.site-main > .elementor,
  body.woocommerce-page:not(.woocommerce-checkout) #main.site-main > .elementor,
  body.tax-product_cat:not(.woocommerce-checkout) #main.site-main > .elementor,
  body.woocommerce:not(.woocommerce-checkout) #primary > main.elementor,
  body.tax-product_cat:not(.woocommerce-checkout) #primary > main.elementor {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .elementor-location-main .e-con.e-parent,
  body.woocommerce-page:not(.woocommerce-checkout) .elementor-location-main .e-con.e-parent,
  body.tax-product_cat:not(.woocommerce-checkout) .elementor-location-main .e-con.e-parent,
  body.woocommerce:not(.woocommerce-checkout) #main .elementor > .e-con.e-parent,
  body.tax-product_cat:not(.woocommerce-checkout) #main .elementor > .e-con.e-parent {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    left: auto !important;
    right: auto !important;
    box-sizing: border-box !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .elementor-location-main .e-con > .e-con-inner,
  body.woocommerce-page:not(.woocommerce-checkout) .elementor-location-main .e-con > .e-con-inner,
  body.tax-product_cat:not(.woocommerce-checkout) .elementor-location-main .e-con > .e-con-inner,
  body.woocommerce:not(.woocommerce-checkout) #main .elementor .e-con > .e-con-inner,
  body.tax-product_cat:not(.woocommerce-checkout) #main .elementor .e-con > .e-con-inner {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
    --padding-left: 0px !important;
    --padding-right: 0px !important;
    --container-default-padding-left: 0px !important;
    --container-default-padding-right: 0px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .elementor-location-main .elementor-widget-container,
  body.woocommerce-page:not(.woocommerce-checkout) .elementor-location-main .elementor-widget-container,
  body.tax-product_cat:not(.woocommerce-checkout) .elementor-location-main .elementor-widget-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .elementor-widget-woocommerce-products,
  body.woocommerce:not(.woocommerce-checkout) .elementor-widget-wc-archive-products,
  body.woocommerce-page:not(.woocommerce-checkout) .elementor-widget-woocommerce-products,
  body.tax-product_cat:not(.woocommerce-checkout) .elementor-widget-woocommerce-products,
  body.tax-product_cat:not(.woocommerce-checkout) [class*="elementor-widget-woocommerce"] {
    width: 100% !important;
    max-width: 100% !important;
  }

  body.woocommerce:not(.woocommerce-checkout) .woocommerce ul.products,
  body.woocommerce:not(.woocommerce-checkout) .woocommerce div.products,
  body.woocommerce-page:not(.woocommerce-checkout) .woocommerce ul.products,
  body.woocommerce-page:not(.woocommerce-checkout) .woocommerce div.products,
  body.tax-product_cat:not(.woocommerce-checkout) .woocommerce ul.products,
  body.tax-product_cat:not(.woocommerce-checkout) .woocommerce div.products,
  body.tax-product_cat:not(.woocommerce-checkout) ul.products,
  body.tax-product_cat:not(.woocommerce-checkout) .ts-product-wrapper ul.products,
  body.tax-product_cat:not(.woocommerce-checkout) .products-wrapper ul.products {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
  }
}

/* ---- 22) Disable TS live search dropdown ---- */
#ts-search-result-container.ts-search-result-container {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* END: GIOVISION CUSTOM CSS v1.3.0 */
