/* Sticky navbar + footer at bottom — scoped to avoid breaking product absolute layouts */
html {
  height: 100%;
}
body {
  min-height: 100%;
  min-height: 100dvh;
}

/*
 * Product pages rely on these classes, but some scraped CSS packs omit them.
 * Without this, PC + WAP images render together and the hero looks shattered.
 */
@media screen and (min-width: 981px) {
  .one-pcHide,
  br.one-pcHide {
    display: none !important;
  }
}
@media screen and (max-width: 980px) {
  .one-wapHide,
  br.one-wapHide {
    display: none !important;
  }
}

/* KV hero fill */
#one-dom-container .one-kv-section {
  position: relative;
  overflow: hidden;
}
#one-dom-container .one-kv-section > picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#one-dom-container .one-kv-section > picture img.cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Sticky main header only (outer wrapper) */
#gw_header,
#header,
header.new-head-wrap {
  position: sticky !important;
  top: 0 !important;
  z-index: 10000 !important;
  width: 100%;
  background: #fff;
}
#gw_header .vep-new-header .vep-pc-nav-box,
#gw_header .vep-new-header .vep-header-wap-box,
#header .vep-new-header .vep-pc-nav-box,
#header .vep-new-header .vep-header-wap-box,
.vep-new-header .vep-pc-nav-box,
.vep-new-header .vep-header-wap-box {
  background-color: #fff !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

/*
 * Site-wide header = homepage style:
 * no search / account icons; nav links right-aligned and visible.
 */
#gw_header .vep-pc-search-icon,
#gw_header .vep-pc-account-box,
#gw_header .vep-pc-search-list,
#gw_header .vep-pc-search-shade-box,
#gw_header .vep-pc-account-list-box,
#gw_header .vep-wap-search-icon,
#gw_header .vep-wap-account-box,
#gw_header .vep-wap-search-list,
#gw_header .vep-wap-account-list-box,
#gw_header .vep-wap-account-shade-box,
#header .vep-pc-search-icon,
#header .vep-pc-account-box,
#header .vep-pc-search-list,
#header .vep-pc-search-shade-box,
#header .vep-pc-account-list-box,
#header .vep-wap-search-icon,
#header .vep-wap-account-box,
#header .vep-wap-search-list,
#header .vep-wap-account-list-box,
#header .vep-wap-account-shade-box,
.vep-new-header .vep-pc-search-icon,
.vep-new-header .vep-pc-account-box,
.vep-new-header .vep-pc-search-list,
.vep-new-header .vep-pc-search-shade-box,
.vep-new-header .vep-pc-account-list-box,
.vep-new-header .vep-wap-search-icon,
.vep-new-header .vep-wap-account-box,
.vep-new-header .vep-wap-search-list,
.vep-new-header .vep-wap-account-list-box,
.vep-new-header .vep-wap-account-shade-box,
.vep-new-header .vep-pc-nav-submenu-trigger {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

#gw_header .vep-pc-nav,
#header .vep-pc-nav,
.vep-new-header .vep-pc-nav {
  display: flex !important;
  align-items: center;
  justify-content: flex-start;
  width: 100% !important;
  max-width: 1440px;
  min-width: 0 !important;
  height: 86px;
  margin: 0 auto;
  box-sizing: border-box;
  position: relative;
}

#gw_header .vep-pc-logo-box,
#header .vep-pc-logo-box,
.vep-new-header .vep-pc-logo-box {
  position: relative !important;
  float: none !important;
  flex: 0 0 auto;
  width: auto !important;
  min-width: 104px;
  margin-left: 28px;
  margin-right: 96px; /* room for absolute "Gujarat" label */
  z-index: 2;
}

/* "Gujarat" beside vivo logo (PC) */
#gw_header .vep-pc-logo-box .local-gujarat-label,
#header .vep-pc-logo-box .local-gujarat-label,
.vep-new-header .vep-pc-logo-box .local-gujarat-label {
  position: absolute;
  left: 132px; /* logo width 104 + gap */
  top: 27px;   /* same as .vep-pc-logo margin-top */
  height: 28px;
  line-height: 28px;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: #575c66;
  white-space: nowrap;
  cursor: default;
  user-select: none;
  pointer-events: none;
}

#gw_header .vep-wap-logo-box,
#header .vep-wap-logo-box,
.vep-new-header .vep-wap-logo-box {
  position: relative !important;
  width: auto !important;
  min-width: 72px;
}

/* "Gujarat" beside vivo logo (WAP) */
#gw_header .vep-wap-logo-box .local-gujarat-label,
#header .vep-wap-logo-box .local-gujarat-label,
.vep-new-header .vep-wap-logo-box .local-gujarat-label {
  position: absolute;
  left: calc(50% + 44px);
  top: 18px;
  height: 24px;
  line-height: 24px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: #575c66;
  white-space: nowrap;
  cursor: default;
  user-select: none;
  pointer-events: none;
}

#gw_header .vep-pc-nav > div[role="navigation"],
#header .vep-pc-nav > div[role="navigation"],
.vep-new-header .vep-pc-nav > div[role="navigation"] {
  float: none !important;
  position: relative !important;
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 24px !important;
  min-width: 0;
  overflow: visible !important;
}

#gw_header .vep-pc-nav-list,
#header .vep-pc-nav-list,
.vep-new-header .vep-pc-nav-list {
  float: none !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: 100% !important;
  max-width: none !important;
  height: 86px !important;
  margin: 0 !important;
  overflow: visible !important;
  gap: 0;
}

#gw_header .vep-pc-nav-item,
#header .vep-pc-nav-item,
.vep-new-header .vep-pc-nav-item {
  float: none !important;
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  visibility: visible !important;
  opacity: 1 !important;
}

#gw_header .vep-pc-nav-link,
#header .vep-pc-nav-link,
.vep-new-header .vep-pc-nav-link {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  color: #242933 !important;
  white-space: nowrap !important;
  font-size: 14px !important;
  line-height: 86px !important;
  padding: 0 20px !important;
  font-weight: 500 !important;
}

#gw_header .vep-pc-nav-link:hover,
#header .vep-pc-nav-link:hover,
.vep-new-header .vep-pc-nav-link:hover {
  color: #415fff !important;
}

/* Force dark logo/icons on white header (immersive pages) */
#gw_header .vep-pc-logo-path,
#header .vep-pc-logo-path,
.vep-new-header .vep-pc-logo-path,
#gw_header .vep-wap-logo-path,
#header .vep-wap-logo-path,
.vep-new-header .vep-wap-logo-path {
  fill: #242933 !important;
}

/* Product secondary bar (Overview / Gallery / Parameter / Buy now) */
.product-nav-bar-box,
.product-nav-bar,
.product-nav-tab {
  display: none !important;
}

/* Footer at bottom of short pages — do NOT flex product shells */
body:not(:has(#one-dom-container)) {
  display: flex !important;
  flex-direction: column !important;
}
body:not(:has(#one-dom-container)) > #__nuxt,
body:not(:has(#one-dom-container)) > #__nuxt > .app,
body:not(:has(#one-dom-container)) > main {
  /* Grow only if needed for short pages, but don't invent empty white gap:
     flex-grow on these wrappers paints white below content before the footer. */
  flex: 0 0 auto;
  width: 100%;
}

/* Breadcrumb strip above dark footer (padding-top:78px white gap) */
.bottom-crumbs,
#vivo-foot-path {
  display: none !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
}

footer#footer,
#local-injected-footer {
  margin-top: auto;
  flex-shrink: 0;
  width: 100%;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 5;
  background: #242933 !important;
}

/* Product / long pages: keep footer flush under content */
body:has(#one-dom-container) footer#footer,
body:has(#one-dom-container) #local-injected-footer,
body:has(.product-detail) footer#footer,
body:has(.product-detail) #local-injected-footer {
  margin-top: 0 !important;
}

/* Hide header nav items (PC + WAP) */
.vep-pc-nav-item:has(a[href*="bbs.vivo.com"]),
.vep-pc-nav-item:has(a[href*="vivonewsroom"]),
.vep-pc-nav-item:has(a[href*="iqoo.com"]),
.vep-pc-nav-item:has(a[href*="shop.vivo.com"]),
.vep-pc-nav-item:has(a[href*="where-to-buy"]),
.vep-pc-nav-item:has(a[data-nav-e-store]),
.vep-pc-nav-item:has(a[data-nav-retailers]),
.vep-pc-nav-item:has(a[data-include-click-stat*="name=Community"]),
.vep-pc-nav-item:has(a[data-include-click-stat*="name=vivo Newsroom"]),
.vep-pc-nav-item:has(a[data-include-click-stat*="name=iQOO"]),
.vep-pc-nav-item:has(a[data-include-click-stat*="name=E-Store"]),
.vep-pc-nav-item:has(a[data-include-click-stat*="name=vivo Exclusive store"]),
.vep-wap-nav-item:has(a[href*="bbs.vivo.com"]),
.vep-wap-nav-item:has(a[href*="vivonewsroom"]),
.vep-wap-nav-item:has(a[href*="iqoo.com"]),
.vep-wap-nav-item:has(a[href*="shop.vivo.com"]),
.vep-wap-nav-item:has(a[href*="where-to-buy"]),
.vep-wap-nav-item:has(a[data-nav-e-store]),
.vep-wap-nav-item:has(a[data-nav-retailers]),
.vep-wap-nav-item:has(a[data-include-click-stat*="name=Community"]),
.vep-wap-nav-item:has(a[data-include-click-stat*="name=vivo Newsroom"]),
.vep-wap-nav-item:has(a[data-include-click-stat*="name=iQOO"]),
.vep-wap-nav-item:has(a[data-include-click-stat*="name=E-Store"]),
.vep-wap-nav-item:has(a[data-include-click-stat*="name=vivo Exclusive store"]) {
  display: none !important;
}

/* Hide orphaned WAP account/search fragments when wap header box is absent */
body:not(:has(.vep-header-wap-box)) .vep-wap-account-list-box,
body:not(:has(.vep-header-wap-box)) .vep-wap-account-list,
body:not(:has(.vep-header-wap-box)) .vep-wap-account-shade-box,
body:not(:has(.vep-header-wap-box)) .vep-wap-search-list {
  display: none !important;
  max-height: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Hide footer columns: Purchase Online, About vivo + country switcher */
.vep-footer-category-item[data-include-view-stat*="Purchase Online"],
.vep-footer-category-item[data-include-view-stat*="About vivo"],
a.vep-footer-region,
.vep-footer-region,
a.vep-footer-region-link,
.vep-footer-region-link,
.vep-footer-msg-region {
  display: none !important;
}

/* Hide footer contact: phone + email */
ul.vep-footer-msg,
.vep-footer-msg,
.vep-footer-msg-hotline,
.vep-footer-msg-emaillink,
.vep-footer-msg-link[href^="tel:"],
.vep-footer-msg-link[href*="emailSupport"] {
  display: none !important;
}

/* Hide footer links: vivo Exclusive store, Service Center */
.vep-footer-category-dd:has(a[data-include-click-stat*="name=vivo Exclusive store"]),
.vep-footer-category-dd:has(a[data-include-click-stat*="name=Service Center"]),
.vep-footer-category-dd:has(a[href*="where-to-buy"]),
.vep-footer-category-dd:has(a[href*="service-center"]) {
  display: none !important;
}

/* Support Contact Us: two items centered */
.home-container-contact .container-contact-list.list-two {
  display: flex !important;
  justify-content: center;
  flex-wrap: wrap;
  gap: 48px 80px;
}
.home-container-contact .container-contact-list.list-two .contact-list-item {
  width: auto !important;
  max-width: 220px;
}

/* Full-width footer link columns (remaining cols; 2 sub-cols of links each) */
@media screen and (min-width: 981px) {
  .vep-new-footer .vep-footer-content {
    width: 100% !important;
    max-width: 1440px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    box-sizing: border-box;
  }
  .vep-new-footer .vep-footer-category-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    gap: 0 28px;
  }
  .vep-new-footer .vep-footer-category-item {
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    height: auto !important;
    overflow: visible !important;
    border-bottom: none !important;
  }
  .vep-new-footer .vep-footer-category-item > ul {
    column-count: 2;
    column-gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .vep-new-footer .vep-footer-category-dd {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
  }
}