/* Header / footer / hero polish (Phase 3) */
.gv-search-sheet {
  z-index: var(--gv-z-sheet) !important;
}

/*
 * Overlay chrome — keep checkout Select2 / sticky header from punching through
 * search sheet, mobile drawer, filter drawer, and mini-cart (failure 1.0.62/63).
 */
@media (max-width: 991px) {
  body.gv-search-sheet-open .select2-container,
  body.gv-search-sheet-open .select2-dropdown,
  body.gv-md-opened .select2-container,
  body.gv-md-opened .select2-dropdown,
  body.gv-filter-open .select2-container,
  body.gv-filter-open .select2-dropdown,
  body.show-filter-sidebar .select2-container,
  body.show-filter-sidebar .select2-dropdown,
  body.gv-minicart-open .select2-container,
  body.gv-minicart-open .select2-dropdown {
    z-index: 1 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.gv-search-sheet-open .ts-header,
  body.gv-search-sheet-open .header-sticky,
  body.gv-search-sheet-open .ts-header .header-sticky,
  body.gv-md-opened .ts-header,
  body.gv-md-opened .header-sticky,
  body.gv-md-opened .ts-header .header-sticky,
  body.gv-filter-open .ts-header,
  body.gv-filter-open .header-sticky,
  body.gv-filter-open .ts-header .header-sticky,
  body.show-filter-sidebar .ts-header,
  body.show-filter-sidebar .header-sticky,
  body.gv-minicart-open .ts-header,
  body.gv-minicart-open .header-sticky {
    z-index: 1 !important;
  }

  body.gv-filter-open,
  body.show-filter-sidebar,
  body.gv-md-opened,
  body.gv-search-sheet-open,
  body.gv-minicart-open {
    overflow: hidden !important;
  }

  .gv-md-overlay {
    z-index: var(--gv-z-overlay) !important;
  }

  .gv-md-drawer,
  #gvMdDrawer {
    z-index: var(--gv-z-drawer) !important;
    isolation: isolate !important;
  }
}

/* Softer hero overlay — keep faces readable */
.gv-hero-panel::before,
.elementor-element-7560cd0::before {
  background: linear-gradient(
    105deg,
    rgba(15, 31, 74, 0.55) 0%,
    rgba(15, 31, 74, 0.28) 48%,
    rgba(15, 31, 74, 0.12) 100%
  ) !important;
}

@media (min-width: 992px) {
  .ts-header .header-middle {
    min-height: 72px !important;
  }

  .ts-header .header-bottom {
    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 .shopping-cart-wrapper .cart-control,
  .ts-header .shopping-cart-wrapper .cart-total {
    align-items: center !important;
  }
}

/* Footer — one brand-blue top rule; no gray dividers; tighter rhythm */
#colophon.footer-container,
footer#colophon,
#colophon {
  /* Full-bleed top rule removed — boxed columns carry the blue frame */
  border-top: none !important;
  border-bottom: none !important;
  padding-top: var(--gv-space-4, 16px) !important;
  padding-bottom: var(--gv-space-3, 12px) !important;
  margin-top: 0 !important;
}

/* Elementor divider strip above footer columns (dee7d2f) — remove */
#colophon .elementor-element-dee7d2f,
#colophon .elementor-element-9928a3a,
#colophon .gv-footer-top-divider {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* Kill Elementor / gray divider lines inside footer (legal, columns, sections) */
#colophon .gv-footer-cols .e-con.e-child,
#colophon .elementor-element-a8cb60e .e-con.e-child,
#colophon .gv-footer-legal,
#colophon .elementor-element-2e524b1,
#colophon .gv-footer-legal > .e-con-inner,
#colophon .elementor-element-2e524b1 > .e-con-inner {
  border-top: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

/*
 * Footer columns — boxed to page content width (same band as trust strip /
 * product shortcodes), even column gutters. No outer frame border.
 */
#colophon .gv-footer-cols.e-con,
#colophon .elementor-element-a8cb60e.e-con,
#colophon .elementor .elementor-element.gv-footer-cols.e-con,
#colophon .elementor .elementor-element.elementor-element-a8cb60e.e-con {
  --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-left: auto !important;
  --margin-right: auto !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;
  background-color: #ffffff !important;
  --border-block-start-width: 0px !important;
  --border-block-end-width: 0px !important;
  --border-inline-start-width: 0px !important;
  --border-inline-end-width: 0px !important;
  --border-top-width: 0px !important;
  --border-right-width: 0px !important;
  --border-bottom-width: 0px !important;
  --border-left-width: 0px !important;
  --border-style: none !important;
  --border-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 20px 24px !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

/* Inner fills the boxed frame; legal shares the same content width */
#colophon .gv-footer-cols > .e-con-inner,
#colophon .elementor-element-a8cb60e > .e-con-inner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
  row-gap: 12px !important;
}

#colophon .gv-footer-legal > .e-con-inner,
#colophon .elementor-element-2e524b1 > .e-con-inner,
#colophon .elementor .elementor-element.gv-footer-legal > .e-con-inner,
#colophon .elementor .elementor-element.elementor-element-2e524b1 > .e-con-inner {
  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;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/* Kill Elementor section top padding that inflates space under the line */
#colophon > .elementor,
#colophon .elementor-location-footer,
#colophon .e-con.e-parent:first-child,
#colophon .elementor > .elementor-element:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

#colophon .e-con-boxed > .e-con-inner {
  padding-top: var(--gv-space-2) !important;
  padding-bottom: var(--gv-space-2) !important;
}

#colophon .elementor-widget {
  margin-bottom: var(--gv-space-2) !important;
}

#colophon .elementor-widget-heading {
  margin-bottom: var(--gv-space-2) !important;
}

#colophon .elementor-icon-list-item {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

/* Hide About / Contact / Order column titles — keep Opening Hours */
#colophon .elementor-element-109c330,
#colophon .elementor-element-60095ae,
#colophon .elementor-element-33d642d,
#colophon .gv-footer-cols .e-con.e-child > .elementor-widget-heading,
#colophon .elementor-element-a8cb60e .e-con.e-child > .elementor-widget-heading {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Logo — left-align with hours (Elementor centers a width-initial widget) */
#colophon .elementor-element-189f918,
#colophon .gv-footer-cols .e-con.e-child:first-child .elementor-widget-image,
#colophon .elementor-element-a8cb60e .e-con.e-child:first-child .elementor-widget-image {
  text-align: left !important;
  align-self: flex-start !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  --width: auto !important;
}

#colophon .elementor-element-189f918 .elementor-widget-container,
#colophon .gv-footer-cols .e-con.e-child:first-child .elementor-widget-image .elementor-widget-container {
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
}

#colophon .elementor-element-189f918 img,
#colophon .gv-footer-cols .e-con.e-child:first-child .elementor-widget-image img {
  display: block !important;
  margin-left: 0 !important;
  margin-right: auto !important;
}

/* Shared body type — match Contact/Order (regular weight, muted ink) */
#colophon .elementor-icon-list-text,
#colophon .elementor-icon-list-item a {
  font-weight: 500 !important;
  color: #374151 !important;
}

#colophon .elementor-icon-list-item a:hover,
#colophon .elementor-icon-list-item a:focus-visible {
  color: #1f2a7c !important;
}

/* Opening Hours rows were Elementor-bold — force regular like Contact body */
#colophon .gv-footer-hours .elementor-icon-list-text,
#colophon .elementor-element-327a27f .elementor-icon-list-text,
#colophon .elementor-element-327a27f .elementor-icon-list-item .elementor-icon-list-text {
  font-weight: 500 !important;
  color: #374151 !important;
}

/* Icons — brand blue across all columns (About was black) */
#colophon .elementor-icon-list-icon,
#colophon .elementor-icon-list-icon i,
#colophon .elementor-icon-list-icon svg,
#colophon .elementor-icon-list-icon svg path {
  color: #1f2a7c !important;
  fill: #1f2a7c !important;
  stroke: #1f2a7c !important;
}

/* Contact subheads stay bold blue */
#colophon .elementor-element-47fe894 .elementor-icon-list-item:not(:has(a)) .elementor-icon-list-text {
  font-weight: 700 !important;
  color: #1f2a7c !important;
}

#colophon .gv-footer-legal,
#colophon .elementor-element-2e524b1 {
  margin-top: var(--gv-space-3, 12px) !important;
  padding-top: var(--gv-space-3, 12px) !important;
  padding-bottom: var(--gv-space-3, 12px) !important;
}

/* Desktop — equal columns, roomier gutters; logo on row 1; lists align on row 2 */
@media (min-width: 992px) {
  #colophon .gv-footer-cols > .e-con-inner,
  #colophon .elementor-element-a8cb60e > .e-con-inner {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    align-items: start !important;
    justify-content: stretch !important;
    column-gap: clamp(24px, 2.8vw, 40px) !important;
    row-gap: 10px !important;
    gap: 10px clamp(24px, 2.8vw, 40px) !important;
  }

  #colophon .gv-footer-cols .e-con.e-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    --width: auto !important;
  }

  /* Logo + hours share parent rows via subgrid so siblings start on the hours row */
  #colophon .gv-footer-cols .e-con.e-child:first-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: grid !important;
    grid-template-rows: subgrid !important;
    align-content: start !important;
    row-gap: 0 !important;
  }

  /* Kill logo/hours widget margins that offset Opening Hours below sibling list tops */
  #colophon .gv-footer-cols .e-con.e-child:first-child > .elementor-widget-image,
  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child > .elementor-widget-image {
    margin-bottom: 0 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:first-child > .gv-footer-hours,
  #colophon .gv-footer-cols .e-con.e-child:first-child > .elementor-element-327a27f,
  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child > .gv-footer-hours,
  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child > .elementor-element-327a27f {
    margin-top: 0 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(2),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(3),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(3) {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(4),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(4) {
    grid-column: 4 !important;
    grid-row: 2 !important;
  }
}

/* Tablet — 2×2; About sits beside logo+hours so it must drop to the hours row */
@media (min-width: 768px) and (max-width: 991px) {
  #colophon .gv-footer-cols.e-con,
  #colophon .elementor-element-a8cb60e.e-con {
    padding: 16px 18px !important;
  }

  #colophon .gv-footer-cols > .e-con-inner,
  #colophon .elementor-element-a8cb60e > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto auto auto !important;
    column-gap: clamp(20px, 3vw, 32px) !important;
    row-gap: var(--gv-space-5, 24px) !important;
    gap: var(--gv-space-5, 24px) clamp(20px, 3vw, 32px) !important;
    align-items: start !important;
  }

  #colophon .gv-footer-cols .e-con.e-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:first-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child:first-child {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    display: grid !important;
    grid-template-rows: subgrid !important;
    align-content: start !important;
    row-gap: 0 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(2),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(2) {
    grid-column: 2 !important;
    grid-row: 2 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(3),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(3) {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }

  #colophon .gv-footer-cols .e-con.e-child:nth-child(4),
  #colophon .elementor-element-a8cb60e .e-con.e-child:nth-child(4) {
    grid-column: 2 !important;
    grid-row: 3 !important;
  }
}

@media (max-width: 767px) {
  #colophon .gv-footer-cols.e-con,
  #colophon .elementor-element-a8cb60e.e-con {
    --width: calc(100% - 30px) !important;
    width: calc(100% - 30px) !important;
    max-width: calc(100% - 30px) !important;
    padding: 16px 12px !important;
  }

  #colophon .gv-footer-cols > .e-con-inner,
  #colophon .elementor-element-a8cb60e > .e-con-inner,
  #colophon .gv-footer-legal > .e-con-inner,
  #colophon .elementor-element-2e524b1 > .e-con-inner {
    width: 100% !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  #colophon .gv-footer-legal > .e-con-inner,
  #colophon .elementor-element-2e524b1 > .e-con-inner {
    width: calc(100% - 30px) !important;
    max-width: calc(100% - 30px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #colophon .gv-footer-cols .e-con.e-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child {
    margin-bottom: 0 !important;
    padding-top: var(--gv-space-3, 12px) !important;
    padding-bottom: var(--gv-space-3, 12px) !important;
  }

  #colophon .gv-footer-cols .e-con.e-child + .e-con.e-child,
  #colophon .elementor-element-a8cb60e .e-con.e-child + .e-con.e-child {
    border-top: 1px solid rgba(31, 42, 124, 0.16) !important;
  }
}

/* Homepage section spacing — reduce excessive Elementor gaps where bridged */
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;
}

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;
}

/* Instagram band — tighter above/below now that follow CTA is removed */
body.home .gv-band-ig,
body.home .elementor-element-5485b6c {
  margin-top: var(--gv-space-4) !important;
  margin-bottom: var(--gv-space-3) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  --padding-block-start: 0px !important;
  --padding-block-end: 0px !important;
}

body.home .gv-hero-wrap {
  margin-bottom: var(--gv-space-5) !important;
}
