/**
 * Global UX polish — spacing, dividers, header alignment, mobile chrome.
 * Keep Giovision blue/red/green burger bars.
 */

/* ---- Breadcrumbs — clean blue/white (kill theme blue pills + grey band) ---- */
.breadcrumb-title-wrapper,
.breadcrumb-title-wrapper.breadcrumb-v1,
.breadcrumb-title-wrapper.breadcrumb-v2,
.breadcrumb-title-wrapper.breadcrumb-v3,
#main-content .breadcrumb-title-wrapper,
.page-container .breadcrumb-title-wrapper {
  --ts-breadcrumb-bg: transparent;
  padding-top: var(--gv-space-4) !important;
  padding-bottom: var(--gv-space-4) !important;
  margin: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
  color: var(--gv-color-text-muted) !important;
}

/* Theme v1 paints a full-bleed grey strip via :before — remove it */
.breadcrumb-title-wrapper.breadcrumb-v1 .breadcrumb-title:before,
.breadcrumb-title-wrapper.breadcrumb-v1 .breadcrumbs:before,
.breadcrumb-title-wrapper.breadcrumb-v2 .breadcrumb-title:before,
.breadcrumb-title-wrapper.breadcrumb-v2 .breadcrumbs:before,
.breadcrumb-title-wrapper .breadcrumbs:before,
.breadcrumb-title-wrapper .breadcrumb-title:before {
  content: none !important;
  display: none !important;
  background: none !important;
  background-color: transparent !important;
  width: 0 !important;
  height: 0 !important;
}

/* Title already lives in the product summary — hide heading only, keep crumb path */
.breadcrumb-title-wrapper h1.heading-title,
.breadcrumb-title-wrapper .page-title,
.breadcrumb-title-wrapper h1 {
  display: none !important;
}

.breadcrumb-title-wrapper .breadcrumb-title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
}

.breadcrumb-title-wrapper .breadcrumbs,
.breadcrumb-title-wrapper .breadcrumbs-container,
.breadcrumb-title-wrapper .woocommerce-breadcrumb,
.breadcrumb-title-wrapper .ts-breadcrumb {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--gv-text-xs) !important;
  line-height: 1.45 !important;
  font-weight: var(--gv-font-weight-regular) !important;
  color: var(--gv-color-text-muted) !important;
  background: transparent !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.breadcrumb-title-wrapper .breadcrumbs a,
.breadcrumb-title-wrapper .breadcrumbs-container a,
.breadcrumb-title-wrapper .woocommerce-breadcrumb a,
.breadcrumb-title-wrapper .ts-breadcrumb a,
.breadcrumb-title-wrapper .breadcrumbs span,
.breadcrumb-title-wrapper .breadcrumbs-container span,
.breadcrumb-title-wrapper .woocommerce-breadcrumb span,
.breadcrumb-title-wrapper .breadcrumbs > *,
.breadcrumb-title-wrapper .woocommerce-breadcrumb > * {
  display: inline !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: var(--gv-color-blue) !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 0 !important;
  line-height: inherit !important;
  text-decoration: none !important;
  text-transform: none !important;
  font-weight: var(--gv-font-weight-regular) !important;
}

.breadcrumb-title-wrapper .breadcrumbs a:hover,
.breadcrumb-title-wrapper .breadcrumbs-container a:hover,
.breadcrumb-title-wrapper .woocommerce-breadcrumb a:hover,
.breadcrumb-title-wrapper .ts-breadcrumb a:hover {
  color: var(--gv-color-navy) !important;
  text-decoration: underline !important;
  background: transparent !important;
}

/* Current crumb — quiet, not a blue chip */
.breadcrumb-title-wrapper .breadcrumbs > span:last-child,
.breadcrumb-title-wrapper .breadcrumbs span.current,
.breadcrumb-title-wrapper .breadcrumbs .breadcrumb_last,
.breadcrumb-title-wrapper .woocommerce-breadcrumb > span:last-child,
.breadcrumb-title-wrapper .woocommerce-breadcrumb .breadcrumb_last {
  color: var(--gv-color-text-muted) !important;
  font-weight: var(--gv-font-weight-regular) !important;
}

/* Slash separators — theme uses bare <span>/</span> (no .sep class) */
.breadcrumb-title-wrapper .br_separator,
.breadcrumb-title-wrapper .delimiter,
.breadcrumb-title-wrapper .breadcrumbs .sep,
.breadcrumb-title-wrapper .woocommerce-breadcrumb .sep,
.breadcrumb-title-wrapper .breadcrumbs-container > span,
.breadcrumb-title-wrapper .breadcrumbs > span:not(.current):not(.breadcrumb_last),
.breadcrumb-title-wrapper .woocommerce-breadcrumb > span:not(.current):not(.breadcrumb_last) {
  display: inline !important;
  color: rgba(15, 31, 74, 0.4) !important;
  background: transparent !important;
  border: none !important;
  padding: 0 0.55em !important;
  margin: 0 !important;
  font-weight: 400 !important;
}

.page-container {
  padding-top: var(--gv-space-4) !important;
}

/* Shop: drop oversized Elementor/theme top gap */
body.woocommerce-shop .page-container,
body.post-type-archive-product .page-container,
body.tax-product_cat .page-container {
  padding-top: var(--gv-space-4) !important;
}

/* ---- Header search row — equal heights ---- */
@media (min-width: 992px) {
  .ts-header .header-middle .container,
  .ts-header .header-sticky .header-middle .container,
  .ts-header.is-sticky .header-middle > .container,
  .is-sticky .header-middle > .container {
    align-items: center !important;
    padding-top: clamp(4px, 0.5vw, 8px) !important;
    padding-bottom: clamp(4px, 0.5vw, 8px) !important;
  }

  .ts-header .ts-search-by-category form,
  .ts-header .ts-search-by-category .search-table,
  .ts-header .ts-search-by-category .search-content {
    align-items: stretch !important;
    height: var(--gio-h, 44px) !important;
    min-height: var(--gio-h, 44px) !important;
  }

  .ts-header .ts-search-by-category select.select-category,
  .ts-header .ts-search-by-category .select-category select,
  .ts-header .ts-search-by-category input[type='text'],
  .ts-header .ts-search-by-category input[type='search'],
  .ts-header .ts-search-by-category .search-button,
  .ts-header .ts-search-by-category .search-button button,
  .ts-header .ts-search-by-category .search-button input[type='submit'] {
    min-height: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
  }

  .ts-header .header-bottom {
    border-top: 1px solid var(--gv-color-border) !important;
    border-bottom: none !important;
    margin-top: 0 !important;
    padding-top: var(--gio-menu-pad-y, 4px) !important;
    padding-bottom: var(--gio-menu-pad-y, 4px) !important;
    min-height: var(--gio-menu-row-h, 34px) !important;
  }

  .ts-header .header-bottom ul#menu-categories > li > a {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* Theme floating search sidebar — superseded by header search + gv search sheet.
 * Closed state uses translateX(width) but layout left can leave a ~15px sliver
 * (visible “SE…” from the Search button) on the right edge of desktop viewports. */
#ts-search-sidebar,
#ts-search-sidebar .ts-sidebar-content,
#ts-search-sidebar .overlay {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  transform: none !important;
  z-index: -1 !important;
}

/* ---- Mobile: one search control (ours), hide theme search-icon ---- */
@media (max-width: 991px) {
  .ts-header .header-right .search-button.search-icon,
  .ts-header .header-right .search-button.search-icon.visible-phone,
  .ts-header .search-button.search-icon.visible-phone {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .ts-header .header-middle .header-right {
    gap: 8px !important;
  }

  /* Always show our search + burger once present (don't depend on JS mount opacity alone) */
  .gv-md-open.gv-md-mounted,
  .gv-search-open.gv-search-open-mounted,
  #gvMdOpen.gv-md-mounted,
  #gvSearchOpen.gv-search-open-mounted {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: relative !important;
  }

  .breadcrumb-title-wrapper .page-title,
  .breadcrumb-title-wrapper h1.heading-title {
    display: none !important;
  }

  .breadcrumb-title-wrapper .breadcrumbs,
  .breadcrumb-title-wrapper .woocommerce-breadcrumb {
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
}

/* ---- Soften heavy rules / dividers ---- */
.woocommerce .woocommerce-ordering,
.before-loop-wrapper {
  border-color: var(--gv-color-border) !important;
}

.before-loop-wrapper {
  margin-bottom: var(--gv-space-4) !important;
  padding-bottom: var(--gv-space-3) !important;
}

/* Brand “show more” — sentence case */
.gv-brand-filter-more {
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ---- Homepage rhythm ---- */
body.home .gv-hero-wrap,
body.home .elementor-element-cefed05 {
  margin-bottom: var(--gv-space-4) !important;
}

body.home .gv-testimonials,
body.home .elementor-element-b03e7dc {
  margin-top: var(--gv-space-3) !important;
  margin-bottom: var(--gv-section-y-tight) !important;
}

body.home .gv-band-service,
body.home .gv-band-products {
  margin-top: var(--gv-section-y-tight) !important;
  margin-bottom: var(--gv-section-y-tight) !important;
}

/* Extra breath above trust band (after products); keep IG close below */
body.home .gv-band-service,
body.home .elementor-element-c33c37c {
  margin-top: clamp(28px, 3.5vw, 44px) !important;
  margin-bottom: var(--gv-space-4) !important;
}

body.home .gv-band-ig,
body.home .elementor-element-5485b6c {
  margin-top: var(--gv-space-4) !important;
  margin-bottom: var(--gv-space-3) !important;
}

/*
 * Home trust / service band — boxed to match product content width
 * (Elementor product sections: 50px side pad + 85% inner), blue border.
 * Grid lives on .e-con-inner (not display:contents) so the outer can
 * shrink and carry the border without going full-bleed.
 *
 * Specificity must beat Elementor post CSS
 * (.elementor-17547 .elementor-element.elementor-element-c33c37c).
 * Use literal fallbacks — bare var(--gv-*) alone can invalidate the decl.
 */
body.home .elementor .elementor-element.gv-band-service.e-con,
body.home .elementor .elementor-element.elementor-element-c33c37c.e-con,
body.home .elementor-17547 .elementor-element.elementor-element-c33c37c {
  --gap: 16px !important;
  --margin-top: clamp(28px, 3.5vw, 44px) !important;
  --margin-bottom: 0px !important;
  --padding-block-start: 0px !important;
  --padding-block-end: 0px !important;
  --padding-inline-start: 0px !important;
  --padding-inline-end: 0px !important;
  --padding-top: 0px !important;
  --padding-bottom: 0px !important;
  --padding-left: 0px !important;
  --padding-right: 0px !important;
  /* Match product shortcode column: 85% of (viewport − 100px Elementor side pad) */
  --width: min(1170px, calc((100% - 100px) * 0.85)) !important;
  width: min(1170px, calc((100% - 100px) * 0.85)) !important;
  max-width: min(1170px, calc((100% - 100px) * 0.85)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: clamp(28px, 3.5vw, 44px) !important;
  --margin-left: auto !important;
  --margin-right: auto !important;
  background-color: #ffffff !important;
  /* Elementor paints borders via custom props — set both systems */
  --border-block-start-width: 1px !important;
  --border-block-end-width: 1px !important;
  --border-inline-start-width: 1px !important;
  --border-inline-end-width: 1px !important;
  --border-top-width: 1px !important;
  --border-right-width: 1px !important;
  --border-bottom-width: 1px !important;
  --border-left-width: 1px !important;
  --border-style: solid !important;
  --border-color: #1f2a7c !important;
  border-style: solid !important;
  border-width: 1px !important;
  border-color: #1f2a7c !important;
  border-radius: 6px !important;
  padding: 16px 24px !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  display: block !important;
}

body.home .elementor .elementor-element.gv-band-service.e-con > .e-con-inner,
body.home .elementor .elementor-element.elementor-element-c33c37c.e-con > .e-con-inner,
body.home .elementor-17547 .elementor-element.elementor-element-c33c37c > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

@media (min-width: 992px) {
  body.home .elementor .elementor-element.gv-band-service.e-con > .e-con-inner > .elementor-element,
  body.home .elementor .elementor-element.elementor-element-c33c37c.e-con > .e-con-inner > .elementor-element,
  body.home .elementor-17547 .elementor-element.elementor-element-c33c37c > .e-con-inner > .elementor-element {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    --width: 100% !important;
  }
}

/* Narrow tablet: 2×2 until there is room for four */
@media (min-width: 768px) and (max-width: 991px) {
  body.home .elementor .elementor-element.gv-band-service.e-con > .e-con-inner,
  body.home .elementor .elementor-element.elementor-element-c33c37c.e-con > .e-con-inner,
  body.home .elementor-17547 .elementor-element.elementor-element-c33c37c > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px 24px !important;
  }
}

body.home .gv-band-service .elementor-widget-icon-box,
body.home .elementor-element-c33c37c .elementor-widget-icon-box {
  margin: 0 !important;
}

body.home .gv-band-service .elementor-icon-box-wrapper,
body.home .elementor-element-c33c37c .elementor-icon-box-wrapper {
  align-items: center !important;
  gap: var(--gv-space-3) !important;
}

body.home .gv-band-service .elementor-icon,
body.home .elementor-element-c33c37c .elementor-icon {
  font-size: 32px !important;
  line-height: 1 !important;
  width: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--gv-color-blue) !important;
  fill: var(--gv-color-blue) !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

body.home .gv-band-service .elementor-icon-box-icon,
body.home .elementor-element-c33c37c .elementor-icon-box-icon {
  flex-shrink: 0 !important;
  margin: 0 !important;
  padding-top: 0 !important;
  align-self: center !important;
}

body.home .gv-band-service .elementor-icon-box-title,
body.home .gv-band-service .elementor-icon-box-title a,
body.home .elementor-element-c33c37c .elementor-icon-box-title,
body.home .elementor-element-c33c37c .elementor-icon-box-title a {
  margin-block-end: var(--gv-space-1) !important;
  font-size: var(--gv-text-xs) !important;
  font-weight: var(--gv-font-weight-bold) !important;
  line-height: var(--gv-leading-tight) !important;
  letter-spacing: 0.03em !important;
  color: var(--gv-color-blue) !important;
  text-transform: uppercase !important;
}

body.home .gv-band-service .elementor-icon-box-description,
body.home .elementor-element-c33c37c .elementor-icon-box-description {
  margin: 0 !important;
  font-size: var(--gv-text-xs) !important;
  font-weight: var(--gv-font-weight-regular) !important;
  line-height: var(--gv-leading-normal) !important;
  color: var(--gv-color-text-secondary) !important;
  max-width: none !important;
}

body.home .gv-divider-service .elementor-divider,
body.home .elementor-element-9c4b86d .elementor-divider {
  padding-block-start: var(--gv-space-2) !important;
  padding-block-end: var(--gv-space-2) !important;
}

/* Top divider — thin brand blue (band also has its own top rule) */
body.home .gv-divider-service .elementor-divider-separator,
body.home .elementor-element-9c4b86d .elementor-divider-separator {
  border-block-start-width: 1px !important;
  border-block-start-color: var(--gv-color-blue) !important;
  border-top-color: var(--gv-color-blue) !important;
}

/* Hide Elementor top divider when band already draws the blue rule */
body.home .gv-divider-service,
body.home .elementor-element-9c4b86d,
body.home .elementor-element-1798e4c,
body.home .gv-divider-service-bottom {
  display: none !important;
}

@media (max-width: 767px) {
  /* Keep band inset with page content + blue border (not full-bleed) */
  body.home .elementor .elementor-element.gv-band-service.e-con,
  body.home .elementor .elementor-element.elementor-element-c33c37c.e-con,
  body.home .elementor-17547 .elementor-element.elementor-element-c33c37c {
    --gap: 16px !important;
    --width: calc(100% - 30px) !important;
    width: calc(100% - 30px) !important;
    max-width: calc(100% - 30px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    --border-block-start-width: 1px !important;
    --border-block-end-width: 1px !important;
    --border-inline-start-width: 1px !important;
    --border-inline-end-width: 1px !important;
    --border-style: solid !important;
    --border-color: #1f2a7c !important;
    border-style: solid !important;
    border-width: 1px !important;
    border-color: #1f2a7c !important;
    border-radius: 6px !important;
    padding: 16px 12px !important;
    display: block !important;
  }

  body.home .elementor .elementor-element.gv-band-service.e-con > .e-con-inner,
  body.home .elementor .elementor-element.elementor-element-c33c37c.e-con > .e-con-inner,
  body.home .elementor-17547 .elementor-element.elementor-element-c33c37c > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.home .gv-band-service .elementor-icon-box-wrapper,
  body.home .elementor-element-c33c37c .elementor-icon-box-wrapper,
  body.home .elementor-element-c33c37c .elementor-position-inline-start .elementor-icon-box-wrapper,
  body.home .elementor-element-c33c37c.elementor-mobile-position-block-start .elementor-icon-box-wrapper,
  body.home .elementor-element-c33c37c .elementor-mobile-position-block-start .elementor-icon-box-wrapper {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: var(--gv-space-3) !important;
  }

  body.home .gv-band-service .elementor-icon-box-icon,
  body.home .elementor-element-c33c37c .elementor-icon-box-icon {
    margin: 0 !important;
    margin-inline-end: 0 !important;
    align-self: center !important;
  }

  body.home .gv-band-service .elementor-icon-box-content,
  body.home .elementor-element-c33c37c .elementor-icon-box-content {
    flex: 1 1 auto !important;
    text-align: left !important;
    max-width: none !important;
  }

  body.home .gv-band-service .elementor-icon-box-description,
  body.home .elementor-element-c33c37c .elementor-icon-box-description {
    max-width: none !important;
  }

  body.home .gv-band-service .elementor-icon,
  body.home .elementor-element-c33c37c .elementor-icon {
    font-size: 28px !important;
    width: 28px !important;
    height: 28px !important;
  }
}

/* Instagram bio line — clamp long facebook URL dump visually */
#sb_instagram .sbi_header_text,
#sb_instagram .sbi_bio,
.sbi_header .sbi_bio {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  color: var(--gv-color-text-secondary) !important;
  font-size: var(--gv-text-sm) !important;
}

/* Footer legal — no gray divider; compact bar */
#colophon .gv-footer-legal,
#colophon .elementor-element-2e524b1 {
  border-top: none !important;
  padding-top: var(--gv-space-3) !important;
  margin-top: var(--gv-space-2) !important;
}

/*
 * Header search — beat theme `.search-table .search-button input[type^="submit"]`
 * which forces padding: 16px 30px !important (misaligns text + white inset gaps).
 */
.ts-header .ts-search-by-category form {
  display: flex !important;
  align-items: stretch !important;
  height: var(--gio-h, 44px) !important;
  min-height: var(--gio-h, 44px) !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
  border-radius: var(--gio-radius, 6px) !important;
  /* Navy underlay — zoom/subpixel gaps show brand blue, not a white hairline */
  background: var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
}

.ts-header .ts-search-by-category .search-table,
.ts-header .ts-search-by-category .search-field,
.ts-header .ts-search-by-category .search-content,
.ts-header .ts-search-by-category .search-field.search-content {
  display: flex !important;
  align-items: stretch !important;
  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;
  gap: 0 !important;
}

.ts-header .ts-search-by-category select.select-category,
.ts-header .ts-search-by-category .select-category select {
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 28px 0 12px !important;
  border: 0 !important;
  border-right: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  line-height: calc(var(--gio-h, 44px) - 2px) !important;
  font-size: var(--gio-ui-font, 13px) !important;
  box-sizing: border-box !important;
}

.ts-header .ts-search-by-category .search-table .search-field input[type='text'],
.ts-header .ts-search-by-category .search-table .search-field input[type='search'],
.ts-header .ts-search-by-category .search-field input[name='s'],
.ts-header .ts-search-by-category input[name='s'] {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  background: #ffffff !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  font-size: var(--gio-ui-font, 13px) !important;
  font-weight: 500 !important;
  line-height: calc(var(--gio-h, 44px) - 2px) !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

.ts-header .ts-search-by-category .search-table .search-field input[type='text']::placeholder,
.ts-header .ts-search-by-category .search-field input[name='s']::placeholder,
.ts-header .ts-search-by-category input[name='s']::placeholder {
  color: rgba(31, 42, 124, 0.55) !important;
  opacity: 1 !important;
  line-height: calc(var(--gio-h, 44px) - 2px) !important;
  position: static !important;
  top: auto !important;
  transform: none !important;
}

/* Blue end-cap — fill flush; no inset ring (zoom hairline). */
.ts-header .ts-search-by-category .search-table .search-button,
.ts-header .ts-search-by-category .search-field .search-button,
.ts-header .ts-search-by-category .search-button {
  display: flex !important;
  align-items: stretch !important;
  align-self: stretch !important;
  flex: 0 0 auto !important;
  position: relative !important;
  width: auto !important;
  min-width: 88px !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: #1f2a7c !important;
  background-color: #1f2a7c !important;
  box-shadow: none !important;
}

.ts-header .ts-search-by-category .search-table .search-button:before,
.ts-header .ts-search-by-category .search-table .search-button:after,
.ts-header .ts-search-by-category .search-button:before,
.ts-header .ts-search-by-category .search-button:after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.ts-header .ts-search-by-category .search-table .search-button input[type='submit'],
.ts-header .ts-search-by-category .search-table .search-button input[type^='submit'],
.ts-header .ts-search-by-category .search-field .search-button input[type='submit'],
.ts-header .ts-search-by-category .search-field .search-button input[type^='submit'],
.ts-header .ts-search-by-category .search-button input[type='submit'],
.ts-header .ts-search-by-category .search-button input[type^='submit'],
.ts-header .ts-search-by-category .search-button button {
  display: block !important;
  width: 100% !important;
  min-width: 88px !important;
  height: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  background: #1f2a7c !important;
  background-color: #1f2a7c !important;
  background-image: none !important;
  color: #ffffff !important;
  font-size: var(--gio-ui-font, 13px) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  /* input[type=submit] cannot flex-center — match line-height to bar inner height */
  line-height: calc(var(--gio-h, 44px) - 2px) !important;
  text-align: center !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
}

/* Hover invert only — never :focus-within (click keeps focus → white frame + double edge).
 * No inset ring — form border already navy; inset caused a zoom hairline. */
.ts-header .ts-search-by-category .search-table .search-button:hover:not(.gv-search-busy):not(:has([aria-busy='true'])):not(:has(:disabled)),
.ts-header .ts-search-by-category .search-button:hover:not(.gv-search-busy):not(:has([aria-busy='true'])):not(:has(:disabled)) {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #1f2a7c !important;
  box-shadow: none !important;
  filter: none !important;
}

.ts-header .ts-search-by-category .search-table .search-button:hover:not(.gv-search-busy) input[type^='submit']:not(:disabled):not([aria-busy='true']),
.ts-header .ts-search-by-category .search-button:hover:not(.gv-search-busy) input[type^='submit']:not(:disabled):not([aria-busy='true']),
.ts-header .ts-search-by-category .search-button:hover:not(.gv-search-busy) button:not(:disabled):not([aria-busy='true']),
.ts-header .ts-search-by-category .search-table .search-button input[type^='submit']:hover:not(:disabled):not([aria-busy='true']),
.ts-header .ts-search-by-category .search-button input[type^='submit']:hover:not(:disabled):not([aria-busy='true']),
.ts-header .ts-search-by-category .search-button button:hover:not(:disabled):not([aria-busy='true']) {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #1f2a7c !important;
  box-shadow: none !important;
}

/* Busy / disabled — solid blue end-cap, no inset border */
.ts-header .ts-search-by-category .search-button.gv-search-busy,
.ts-header .ts-search-by-category .search-button:has([aria-busy='true']),
.ts-header .ts-search-by-category .search-button:has(:disabled),
.ts-header .ts-search-by-category .search-button.gv-search-busy input[type^='submit'],
.ts-header .ts-search-by-category .search-button.gv-search-busy button,
.ts-header .ts-search-by-category .search-button input[type^='submit'][aria-busy='true'],
.ts-header .ts-search-by-category .search-button input[type^='submit']:disabled,
.ts-header .ts-search-by-category .search-button button[aria-busy='true'],
.ts-header .ts-search-by-category .search-button button:disabled {
  background: #1f2a7c !important;
  background-color: #1f2a7c !important;
  color: #ffffff !important;
  box-shadow: none !important;
  border: 0 !important;
  filter: none !important;
}

/* Kill clipped focus rings that become a thick dark top line while typing */
.ts-header .ts-search-by-category input[name='s']:focus,
.ts-header .ts-search-by-category input[name='s']:focus-visible,
.ts-header .ts-search-by-category input[type='text']:focus,
.ts-header .ts-search-by-category input[type='text']:focus-visible,
.ts-header .ts-search-by-category input[type='search']:focus,
.ts-header .ts-search-by-category input[type='search']:focus-visible,
.ts-header .ts-search-by-category select:focus,
.ts-header .ts-search-by-category select:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

.ts-header .ts-search-by-category form:focus-within {
  border-color: var(--gv-color-blue, #1f2a7c) !important;
  outline: none !important;
  box-shadow: none !important;
}

/*
 * Swiper carousel nav — brand blue discs (theme reset uses rgba(0,0,0,0.8)).
 * Matches primary button: blue rest, white+blue hover.
 */
body .swiper-button-next,
body .swiper-button-prev,
.woocommerce .related.products .swiper-button-next,
.woocommerce .related.products .swiper-button-prev,
.woocommerce .upsells.products .swiper-button-next,
.woocommerce .upsells.products .swiper-button-prev,
.woocommerce .cross-sells.products .swiper-button-next,
.woocommerce .cross-sells.products .swiper-button-prev,
body .ts-product.ts-slider .swiper-button-next,
body .ts-product.ts-slider .swiper-button-prev,
body .products.swiper .swiper-button-next,
body .products.swiper .swiper-button-prev {
  background: var(--gv-color-blue, #1f2a7c) !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

body .swiper-button-next:hover,
body .swiper-button-prev:hover,
body .swiper-button-next:focus-visible,
body .swiper-button-prev:focus-visible,
.woocommerce .related.products .swiper-button-next:hover,
.woocommerce .related.products .swiper-button-prev:hover,
body .ts-product.ts-slider .swiper-button-next:hover,
body .ts-product.ts-slider .swiper-button-prev:hover,
body .products.swiper .swiper-button-next:hover,
body .products.swiper .swiper-button-prev:hover {
  background: #ffffff !important;
  background-image: none !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
}

body .swiper-button-next:after,
body .swiper-button-prev:after {
  color: inherit !important;
}

/*
 * Chat with Sales — late win over buttons.css .button.alt
 * White fill + brand-blue border / text / icon.
 */
.single-product .omw-btn,
.single-product .wa-order-button,
.single-product a.button.omw_send_order,
.single-product .woo-order-on-whatsapp a,
.single-product [class*='order-on-whatsapp'] a,
.single-product .omw_whatsapp_button a,
.single-product .div_evowap_btn a,
.single-product .div_evowap_btn .button,
.single-product a.button[href*='wa.me'],
.single-product a.button[href*='whatsapp'] {
  background-color: #ffffff !important;
  background-image: none !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
  fill: var(--gv-color-blue, #1f2a7c) !important;
}

.single-product .omw-btn:hover,
.single-product .wa-order-button:hover,
.single-product a.button.omw_send_order:hover,
.single-product .woo-order-on-whatsapp a:hover,
.single-product .div_evowap_btn a:hover,
.single-product a.button[href*='wa.me']:hover {
  background-color: #ffffff !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
}

.single-product .div_evowap_btn a img,
.single-product a.button.omw_send_order img,
.single-product a.button[href*='wa.me'] img,
.single-product .woo-order-on-whatsapp a img {
  filter: brightness(0) saturate(100%) invert(14%) sepia(60%) saturate(2500%) hue-rotate(220deg) brightness(0.85) !important;
  opacity: 1 !important;
}

.single-product .div_evowap_btn a i,
.single-product .div_evowap_btn a svg,
.single-product a.button.omw_send_order i,
.single-product a.button.omw_send_order svg,
.single-product a.button[href*='wa.me'] i,
.single-product a.button[href*='wa.me'] svg {
  color: var(--gv-color-blue, #1f2a7c) !important;
  fill: var(--gv-color-blue, #1f2a7c) !important;
}

/* ---- Quick-view / popup close — solid blue rest + hover ---- */
.ts-popup-modal .close,
#ts-quickshop-modal .close,
#ts-add-to-cart-popup-modal .close,
.ts-popup-modal .quickshop-container > .close,
.ts-popup-modal .add-to-cart-popup-container > .close {
  background: var(--gv-color-blue) !important;
  background-color: var(--gv-color-blue) !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-color-blue) !important;
  box-shadow: none !important;
  border-radius: var(--gv-radius-sm) !important;
  width: 32px !important;
  height: 32px !important;
  line-height: 30px !important;
  transition: background-color var(--gv-transition, 150ms ease),
    color var(--gv-transition, 150ms ease),
    border-color var(--gv-transition, 150ms ease);
}

.ts-popup-modal .close:hover,
.ts-popup-modal .close:focus-visible,
#ts-quickshop-modal .close:hover,
#ts-quickshop-modal .close:focus-visible,
#ts-add-to-cart-popup-modal .close:hover,
#ts-add-to-cart-popup-modal .close:focus-visible,
.ts-popup-modal .quickshop-container > .close:hover,
.ts-popup-modal .add-to-cart-popup-container > .close:hover {
  background: var(--gv-color-blue) !important;
  background-color: var(--gv-color-blue) !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-color-blue) !important;
  box-shadow: none !important;
  filter: none !important;
}

.ts-popup-modal .close:after,
#ts-quickshop-modal .close:after,
#ts-add-to-cart-popup-modal .close:after {
  color: inherit !important;
}

/* ---- Pagination — always-on brand blue (theme hardcodes #000) ---- */
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span,
.ts-pagination ul li a,
.ts-pagination ul li span,
.pagination-wrap ul.pagination > li > a,
.pagination-wrap ul.pagination > li > span,
.post-nav-links > a,
.post-nav-links > span {
  color: var(--gv-color-blue) !important;
  border-color: var(--gv-color-border) !important;
  background: var(--gv-color-bg) !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus-visible,
.woocommerce nav.woocommerce-pagination ul li span.current,
.ts-pagination ul li a:hover,
.ts-pagination ul li span.current,
.pagination-wrap ul.pagination > li > a:hover,
.pagination-wrap ul.pagination > li > span.current,
.post-nav-links > .current,
.post-nav-links > a:hover,
.post-nav-links > a:focus {
  background: var(--gv-color-blue) !important;
  color: #fff !important;
  border-color: var(--gv-color-blue) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.dots,
.ts-pagination ul li span.dots,
.pagination-wrap ul.pagination > li > span.dots {
  color: var(--gv-color-text-muted) !important;
  background: transparent !important;
  border-color: transparent !important;
}

