/* Giovision footer — sample: Logo | Hours+Social | Office | Services | Shop */

#colophon.footer-container,
footer#colophon,
#colophon {
  --gv-footer-ink: var(--gv-color-blue, #1f2a7c);
  --gv-footer-muted: #6b7280;
  --gv-footer-blue: var(--gv-color-blue, #1f2a7c);
  --gv-footer-row: 4px;
  --gv-footer-icon: 16px;
  --gv-footer-icon-gap: 8px;
  --gv-footer-head-gap: 8px;
  --gv-footer-group-gap: 14px;
  --gv-footer-social-gap: 16px;
  --gv-footer-col-gap: clamp(32px, 3.4vw, 56px);
  --gv-footer-band: min(var(--gio-header-max, 1320px), var(--gv-main-width, min(90%, calc(100% - 48px))));

  border-top: 1px solid rgba(31, 42, 124, 0.18) !important;
  border-bottom: none !important;
  background: #fff !important;
  margin-top: 0 !important;
  padding: 0 0 calc(10px + env(safe-area-inset-bottom, 0px)) !important;
}

#colophon .gv-site-footer,
.gv-site-footer {
  width: 100% !important;
  background: #fff !important;
  color: var(--gv-footer-ink) !important;
  font-size: 0.875rem !important;
  line-height: 1.35 !important;
}

#colophon .gv-site-footer__band {
  width: var(--gv-footer-band) !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 20px 0 16px !important;
  box-sizing: border-box !important;
}

/*
 * Desktop: one row, five columns. Office / services stack their groups tightly
 * (do not pin GioBeds to Sales row — that left a huge gap under Repairs).
 */
#colophon .gv-site-footer__grid {
  display: grid !important;
  grid-template-columns:
    max-content
    minmax(0, 1.15fr)
    minmax(0, 1.25fr)
    minmax(0, 1.15fr)
    minmax(0, 0.85fr) !important;
  grid-template-rows: auto !important;
  align-items: start !important;
  justify-items: start !important;
  column-gap: var(--gv-footer-col-gap) !important;
  row-gap: 0 !important;
}

#colophon .gv-site-footer__col {
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

#colophon .gv-site-footer__logo {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: block !important;
  width: auto !important;
  max-width: 48px !important;
  line-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: start !important;
}

#colophon .gv-site-footer__logo img {
  display: block !important;
  width: 48px !important;
  max-width: 48px !important;
  height: 48px !important;
  object-fit: contain !important;
}

#colophon .gv-site-footer__col--primary {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  align-self: start !important;
}

#colophon .gv-site-footer__social {
  margin-top: var(--gv-footer-social-gap) !important;
  width: 100% !important;
}

#colophon .gv-site-footer__col--office,
#colophon .gv-site-footer__col--services {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  align-self: start !important;
  gap: var(--gv-footer-group-gap) !important;
}

#colophon .gv-site-footer__col--office {
  grid-column: 3 !important;
  grid-row: 1 !important;
}

#colophon .gv-site-footer__col--services {
  grid-column: 4 !important;
  grid-row: 1 !important;
}

#colophon .gv-site-footer__col--shop {
  grid-column: 5 !important;
  grid-row: 1 !important;
  align-self: start !important;
}

#colophon.footer-container .gv-site-footer h2.gv-site-footer__heading,
#colophon .gv-site-footer .gv-site-footer__heading,
.footer-container .gv-site-footer h2 {
  margin: 0 0 var(--gv-footer-head-gap) !important;
  padding: 0 !important;
  min-height: 22px !important;
  display: flex !important;
  align-items: center !important;
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em !important;
  color: var(--gv-footer-blue) !important;
}

#colophon .gv-site-footer__group {
  margin: 0 !important;
  padding: 0 !important;
}

/* Group spacing comes from column flex gap — avoid double margin */
#colophon .gv-site-footer__col--office > .gv-site-footer__group + .gv-site-footer__group,
#colophon .gv-site-footer__col--services > .gv-site-footer__group + .gv-site-footer__group {
  margin-top: 0 !important;
}

#colophon .gv-site-footer ul,
#colophon .gv-site-footer ul.gv-site-footer__list,
#colophon .gv-site-footer ul.gv-site-footer__hours-list,
#colophon .gv-site-footer li,
#colophon .gv-site-footer .gv-site-footer__list > li,
#colophon .gv-site-footer .gv-site-footer__hours-list > li {
  list-style: none !important;
  list-style-type: none !important;
  list-style-image: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

#colophon .gv-site-footer .gv-site-footer__list > li::before,
#colophon .gv-site-footer .gv-site-footer__list > li::marker,
#colophon .gv-site-footer .gv-site-footer__hours-list > li::before,
#colophon .gv-site-footer .gv-site-footer__hours-list > li::marker {
  content: none !important;
  display: none !important;
}

#colophon .gv-site-footer .gv-site-footer__list a {
  display: flex !important;
  align-items: flex-start !important;
  gap: var(--gv-footer-icon-gap) !important;
  min-height: 22px !important;
  padding: var(--gv-footer-row) 0 !important;
  color: var(--gv-footer-ink) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  transition: color 0.18s ease;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#colophon .gv-site-footer .gv-site-footer__list a .gv-site-footer__ico {
  margin-top: 2px !important;
}

#colophon .gv-site-footer .gv-site-footer__list a span {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}

#colophon .gv-site-footer .gv-site-footer__list a:hover,
#colophon .gv-site-footer .gv-site-footer__list a:focus-visible {
  color: var(--gv-footer-blue) !important;
}

#colophon .gv-site-footer .gv-site-footer__list a:focus-visible {
  outline: 2px solid var(--gv-footer-blue) !important;
  outline-offset: 2px !important;
}

#colophon .gv-site-footer .gv-site-footer__ico {
  flex: 0 0 var(--gv-footer-icon) !important;
  width: var(--gv-footer-icon) !important;
  height: var(--gv-footer-icon) !important;
  margin: 0 !important;
  color: var(--gv-footer-blue) !important;
  fill: currentColor;
  display: block !important;
}

/* Hours: tight day | time (do not stretch clocks to column edge) */
#colophon .gv-site-footer .gv-site-footer__hours-list {
  display: grid !important;
  grid-template-columns: max-content max-content !important;
  column-gap: 16px !important;
  row-gap: 0 !important;
  align-items: center !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#colophon .gv-site-footer .gv-site-footer__hours-list > li {
  display: contents !important;
}

#colophon .gv-site-footer .gv-site-footer__day,
#colophon .gv-site-footer .gv-site-footer__time {
  display: grid !important;
  grid-template-columns: var(--gv-footer-icon) auto !important;
  align-items: center !important;
  column-gap: var(--gv-footer-icon-gap) !important;
  min-height: 22px !important;
  padding: var(--gv-footer-row) 0 !important;
  color: var(--gv-footer-ink) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  line-height: 1.3 !important;
  min-width: 0 !important;
}

#colophon .gv-site-footer .gv-site-footer__time {
  white-space: nowrap !important;
  font-variant-numeric: tabular-nums !important;
}

#colophon .gv-site-footer .gv-site-footer__time span {
  white-space: nowrap !important;
}

/* Legal */
#colophon .gv-site-footer__legal {
  width: var(--gv-footer-band) !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  padding: 10px 0 2px !important;
  border-top: 1px solid rgba(31, 42, 124, 0.16) !important;
  box-sizing: border-box !important;
}

#colophon .gv-site-footer__legal-inner {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 4px 16px !important;
}

#colophon .gv-site-footer__legal-left,
#colophon .gv-site-footer__legal-right,
#colophon.footer-container .gv-site-footer__legal p {
  margin: 0 !important;
  font-size: 0.75rem !important;
  line-height: 1.4 !important;
  color: var(--gv-footer-muted) !important;
}

#colophon.footer-container .gv-site-footer__legal a,
#colophon .gv-site-footer__legal a {
  color: var(--gv-footer-muted) !important;
  text-decoration: none !important;
}

#colophon.footer-container .gv-site-footer__legal a:hover,
#colophon.footer-container .gv-site-footer__legal a:focus-visible,
#colophon .gv-site-footer__legal a:hover,
#colophon .gv-site-footer__legal a:focus-visible {
  color: var(--gv-footer-blue) !important;
  text-decoration: underline !important;
}

#colophon .gv-site-footer__legal-right {
  margin-left: auto !important;
  text-align: right !important;
}

/* Tablet — 2×2 */
@media (min-width: 768px) and (max-width: 991px) {
  #colophon .gv-site-footer__band,
  #colophon .gv-site-footer__legal {
    width: calc(100% - 36px) !important;
  }

  #colophon .gv-site-footer__grid {
    grid-template-columns: max-content 1fr 1fr !important;
    grid-template-rows: auto auto auto !important;
    column-gap: 28px !important;
    row-gap: 22px !important;
  }

  #colophon .gv-site-footer__logo {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  #colophon .gv-site-footer__col--primary {
    grid-column: 2 / -1 !important;
    grid-row: 1 !important;
    display: flex !important;
  }

  #colophon .gv-site-footer__col--office,
  #colophon .gv-site-footer__col--services {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--gv-footer-group-gap) !important;
  }

  #colophon .gv-site-footer__col--office {
    grid-column: 1 / 2 !important;
    grid-row: 2 !important;
  }

  #colophon .gv-site-footer__col--services {
    grid-column: 2 / 3 !important;
    grid-row: 2 !important;
  }

  #colophon .gv-site-footer__col--shop {
    grid-column: 3 / 4 !important;
    grid-row: 2 !important;
  }
}

/* Mobile stack */
@media (max-width: 767px) {
  #colophon.footer-container,
  footer#colophon,
  #colophon {
    --gv-footer-row: 6px;
    --gv-footer-group-gap: 16px;
    --gv-footer-social-gap: 14px;
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px)) !important;
  }

  #colophon .gv-site-footer__band,
  #colophon .gv-site-footer__legal {
    width: calc(100% - 30px) !important;
  }

  #colophon .gv-site-footer__band {
    padding: 14px 0 6px !important;
  }

  #colophon .gv-site-footer__grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    grid-template-rows: none !important;
  }

  #colophon .gv-site-footer__logo {
    display: none !important;
  }

  #colophon .gv-site-footer__col {
    padding: 12px 0 !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }

  #colophon .gv-site-footer__col--office,
  #colophon .gv-site-footer__col--services {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--gv-footer-group-gap) !important;
  }

  #colophon .gv-site-footer__col + .gv-site-footer__col {
    border-top: 1px solid rgba(31, 42, 124, 0.16) !important;
  }

  #colophon .gv-site-footer__col--primary {
    padding-top: 2px !important;
  }

  #colophon .gv-site-footer .gv-site-footer__hours-list {
    column-gap: 10px !important;
  }

  #colophon .gv-site-footer__legal {
    padding-top: 12px !important;
  }

  #colophon .gv-site-footer__legal-inner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 4px !important;
  }

  #colophon .gv-site-footer__legal-right {
    margin-left: 0 !important;
    text-align: left !important;
  }
}

/*
 * Ecomall paints .footer-container.loading::before as a full opaque shield
 * (position:absolute; inset 0; z-index:4). Theme JS removes .loading after 30ms;
 * if that stalls (or never runs), every footer link is unclickable while the
 * custom markup still looks fine. Our footer never needs that lazy shell.
 */
#colophon.footer-container.loading:has(.gv-site-footer)::before,
#colophon.footer-container.loading:has(.gv-site-footer)::after,
#colophon.loading:has(.gv-site-footer)::before,
#colophon.loading:has(.gv-site-footer)::after {
  content: none !important;
  display: none !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  z-index: -1 !important;
  width: 0 !important;
  height: 0 !important;
}

#colophon:has(.gv-site-footer),
#colophon:has(.gv-site-footer) a {
  pointer-events: auto !important;
}

#colophon:has(.gv-site-footer) > .elementor:not(:has(.gv-site-footer)),
#colophon.gv-footer-rebuilt > .elementor:not(:has(.gv-site-footer)) {
  display: none !important;
}

#colophon:has(.gv-site-footer) .elementor-element-dee7d2f,
#colophon:has(.gv-site-footer) .elementor-element-9928a3a,
#colophon:has(.gv-site-footer) .gv-footer-top-divider {
  display: none !important;
}
