html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body * {
  min-width: 0;
}

img,
video {
  max-width: 100%;
}

.site-footer {
  overflow: hidden;
}

.footer-inner {
  display: grid;
  grid-template-areas:
    "top"
    "norton"
    "legal"
    "bottom";
}

.footer-top {
  grid-template-columns: 1.5fr 1fr 1fr 1fr auto !important;
  grid-template-areas: "brand women support legal legit";
  align-items: start;
  padding-bottom: 0 !important;
  border-bottom: none !important;
}

.footer-brand {
  grid-area: brand;
  min-width: 0;
}

.footer-top > div:nth-child(2) {
  grid-area: women;
}

.footer-top > div:nth-child(3) {
  grid-area: support;
}

.footer-top > div:nth-child(4) {
  grid-area: legal;
}

.footer-legit,
.footer-norton-desktop {
  display: flex;
  align-items: center;
}

.footer-norton-desktop {
  grid-area: norton;
  justify-content: flex-end;
  padding: 18px 0 40px;
  border-bottom: 1px solid rgba(234, 243, 240, 0.12);
}

.footer-norton-slot {
  display: none !important;
}

.footer-legit {
  grid-area: legit;
  justify-content: flex-end;
  justify-self: end;
}

.footer-legit a {
  display: inline-block;
  margin-right: 0 !important;
}

.footer-legit img {
  width: 96px;
  height: auto;
  display: block;
}

@media (max-width: 1100px) {
  #vivio-nav {
    padding: 12px 18px !important;
  }

  #vivio-nav > div:first-child {
    gap: 18px !important;
  }

  .navlinks,
  .nav-right-links {
    display: none !important;
  }

  #navBurger {
    display: flex !important;
  }

  #mobileMenu {
    width: min(88vw, 360px) !important;
    max-width: 360px !important;
    padding: 20px 18px !important;
  }
}

@media (max-width: 980px) {
  .wrap {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .sct[style*="padding-top:60px"][style*="padding-bottom:60px"][style*="background:#fff"] {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }

  .sct {
    min-height: auto !important;
  }

  .hero-grid,
  .grid2,
  .grid3,
  .grid4,
  .split {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .steps-grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }

  .steps-grid > div {
    padding-bottom: 24px;
    border-bottom: 1px solid var(--line);
  }

  .steps-grid > div:last-child {
    padding-bottom: 0;
    border-bottom: none;
  }

  .steps-grid > div > .h:first-child {
    font-size: 96px !important;
    line-height: 0.84 !important;
    letter-spacing: -3px !important;
  }

  .steps-grid > div .hh {
    font-size: 24px !important;
    margin-top: 18px !important;
  }

  .team-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 16px !important;
    scroll-snap-type: none !important;
  }

  .team-grid > div,
  .team-span2 {
    flex: none !important;
    min-height: auto !important;
    grid-column: auto !important;
    scroll-snap-align: unset !important;
  }

  .brand-row {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    justify-items: start !important;
    text-align: left !important;
  }

  .brand-row > div:first-child {
    max-width: 140px;
    justify-self: center;
    margin: 0 auto;
  }

  .brand-row .btn {
    width: 100%;
    justify-content: center;
  }

  .hero-image-men {
    background-position: 74% 16% !important;
  }

  .hero-checks {
    gap: 12px !important;
  }

  #heroVisual {
    min-height: 380px !important;
  }

  .imgbox[style*="min-height:100%"] {
    min-height: 320px !important;
  }

  [style*="min-height:520px"] {
    min-height: 360px !important;
  }

  [style*="height:520px"] {
    height: auto !important;
    min-height: 400px !important;
  }

  [style*="min-height:70vh"],
  [style*="min-height:100vh"] {
    min-height: auto !important;
  }

  [style*="padding:80px 7vw"] {
    padding: 48px 18px !important;
  }

  [style*="padding:72px 7vw"] {
    padding: 48px 18px !important;
  }

  [style*="white-space:nowrap"] {
    white-space: normal !important;
  }

  .h.hero {
    font-size: 42px !important;
    line-height: 1.02 !important;
  }

  .h[style*="font-size:72px"] {
    font-size: 46px !important;
  }

  .h[style*="font-size:64px"] {
    font-size: 42px !important;
  }

  .h[style*="font-size:54px"] {
    font-size: 38px !important;
  }

  .h[style*="font-size:52px"] {
    font-size: 36px !important;
  }

  .h[style*="font-size:50px"] {
    font-size: 34px !important;
  }

  .h[style*="font-size:48px"] {
    font-size: 34px !important;
  }

  .h[style*="font-size:46px"] {
    font-size: 32px !important;
  }

  .h[style*="font-size:44px"] {
    font-size: 30px !important;
  }

  .split .h[style*="margin-top:18px"][style*="font-size:84px"],
  .split .h[style*="margin-top:18px"][style*="font-size:72px"] {
    font-size: 42px !important;
    line-height: 1.02 !important;
  }

  .hh[style*="font-size:32px"] {
    font-size: 28px !important;
  }

  .hh[style*="font-size:30px"] {
    font-size: 26px !important;
  }

  .vnav {
    padding: 12px 18px !important;
    gap: 12px;
  }

  .vnav > div:first-child {
    gap: 16px !important;
  }

  .vnav-links {
    display: none !important;
  }

  .vnav > div:last-child {
    margin-left: auto;
    gap: 8px !important;
  }

  .vnav > div:last-child a:first-child {
    display: none !important;
  }

  .vnav > div:last-child a:last-child {
    padding: 10px 16px !important;
    font-size: 12px !important;
  }

  .site-footer {
    padding: 44px 18px 24px !important;
  }

  .footer-top {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "brand legit"
      "norton norton"
      "women women"
      "support support"
      "legal legal" !important;
    gap: 20px 16px !important;
    padding-bottom: 28px !important;
    border-bottom: 1px solid rgba(234, 243, 240, 0.12) !important;
  }

  .footer-norton-slot {
    display: flex !important;
    justify-content: flex-start;
    justify-self: start;
    width: 100%;
  }

  .footer-norton-desktop {
    display: none !important;
  }

  .footer-legal-copy {
    padding-top: 18px !important;
  }

  .footer-bottom {
    padding-top: 18px !important;
  }
}

@media (max-width: 640px) {
  .vnav > div:last-child {
    display: none !important;
  }

  .footer-top {
    gap: 18px 12px !important;
  }

  .footer-legit img {
    width: 84px;
  }
}
