/* v20 — isolated compact footer; overrides all legacy footer sizing */
.footer-v20,
#contacts.footer-v20 {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: var(--black) !important;
  color: var(--paper) !important;
  border-top: 1px solid rgba(238, 233, 223, .14) !important;
}

.footer-v20 .footer-main {
  display: grid !important;
  grid-template-columns: minmax(420px, 500px) minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  align-items: start !important;
  align-content: start !important;
  justify-content: stretch !important;
  width: min(100%, 1600px) !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 auto !important;
  padding: 54px var(--pad) 50px !important;
  gap: clamp(54px, 5vw, 92px) !important;
}

.footer-v20 .footer-cta {
  display: block !important;
  align-self: start !important;
  justify-self: start !important;
  width: 100% !important;
  max-width: 500px !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 clamp(34px, 3.5vw, 58px) 0 0 !important;
  border-right: 1px solid rgba(238, 233, 223, .16) !important;
}

.footer-v20 .footer-eyebrow {
  margin: 0 !important;
  font-size: 9px !important;
  line-height: 1.2 !important;
  letter-spacing: .16em !important;
}

.footer-v20 .footer-cta-title {
  max-width: 500px !important;
  margin: 18px 0 0 !important;
  font-size: clamp(44px, 3vw, 52px) !important;
  line-height: .96 !important;
  letter-spacing: -.04em !important;
}

.footer-v20 .footer-cta-title span {
  display: block !important;
  white-space: nowrap !important;
}

.footer-v20 .footer-cta-copy {
  max-width: 360px !important;
  margin: 18px 0 0 !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

.footer-v20 .footer-order-button {
  width: 300px !important;
  min-height: 50px !important;
  margin: 24px 0 0 !important;
  padding: 0 18px !important;
}

.footer-v20 .footer-hours {
  margin: 10px 0 0 !important;
  font-size: 9px !important;
  line-height: 1.4 !important;
}

.footer-v20 .footer-desktop-nav {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(120px, 1fr)) !important;
  align-items: start !important;
  align-content: start !important;
  align-self: start !important;
  justify-self: stretch !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 3px 0 0 !important;
  gap: clamp(28px, 3vw, 50px) !important;
}

.footer-v20 .footer-column {
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.footer-v20 .footer-column h3 {
  margin: 0 0 20px !important;
  font-size: 9px !important;
}

.footer-v20 .footer-column a,
.footer-v20 .footer-column p {
  margin: 0 0 11px !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.footer-v20 .footer-mobile-nav {
  display: none !important;
}

.footer-v20 .footer-bottom {
  display: grid !important;
  grid-template-columns: auto 1fr auto auto !important;
  align-items: center !important;
  min-height: 74px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 15px var(--pad) !important;
  gap: clamp(22px, 3vw, 48px) !important;
  border-top: 1px solid rgba(238, 233, 223, .14) !important;
}

.footer-v20 .footer-bottom .brand--footer,
.footer-v20 .footer-bottom .footer-logo {
  width: 86px !important;
}

.footer-v20 .footer-bottom p,
.footer-v20 .footer-bottom small {
  font-size: 9px !important;
}

.footer-v20 .footer-to-top {
  width: 40px !important;
  height: 40px !important;
  font-size: 18px !important;
}

@media (max-width: 1180px) and (min-width: 821px) {
  .footer-v20 .footer-main {
    grid-template-columns: minmax(350px, 410px) minmax(0, 1fr) !important;
    gap: 46px !important;
    padding-top: 48px !important;
    padding-bottom: 46px !important;
  }

  .footer-v20 .footer-cta {
    max-width: 410px !important;
    padding-right: 34px !important;
  }

  .footer-v20 .footer-cta-title {
    font-size: 42px !important;
  }

  .footer-v20 .footer-cta-title span {
    white-space: normal !important;
  }

  .footer-v20 .footer-desktop-nav {
    grid-template-columns: repeat(2, minmax(150px, 1fr)) !important;
    row-gap: 28px !important;
  }
}

@media (max-width: 820px) {
  .footer-v20 .footer-main {
    display: block !important;
    width: 100% !important;
    padding: 46px 24px 0 !important;
  }

  .footer-v20 .footer-cta {
    max-width: none !important;
    padding: 0 0 30px !important;
    border-right: 0 !important;
  }

  .footer-v20 .footer-cta-title {
    max-width: 340px !important;
    margin-top: 15px !important;
    font-size: clamp(37px, 10.5vw, 45px) !important;
    line-height: .97 !important;
  }

  .footer-v20 .footer-cta-title span {
    white-space: normal !important;
  }

  .footer-v20 .footer-cta-copy {
    max-width: 315px !important;
    margin-top: 15px !important;
  }

  .footer-v20 .footer-order-button {
    width: 100% !important;
    min-height: 52px !important;
    margin-top: 21px !important;
  }

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

  .footer-v20 .footer-mobile-nav {
    display: block !important;
    margin: 0 -24px !important;
    border-top: 1px solid rgba(238, 233, 223, .14) !important;
  }

  .footer-v20 .footer-mobile-group summary {
    min-height: 56px !important;
  }

  .footer-v20 .footer-bottom {
    grid-template-columns: auto 1fr auto !important;
    min-height: 78px !important;
    padding: 17px 24px !important;
    gap: 16px !important;
  }

  .footer-v20 .footer-bottom small {
    display: none !important;
  }

  .footer-v20 .footer-bottom .brand--footer,
  .footer-v20 .footer-bottom .footer-logo {
    width: 78px !important;
  }
}

