@font-face {
  font-family: 'The Starlight Cafe';
  src: url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.eot');
  src: url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.eot?#iefix') format('embedded-opentype'),
    url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.woff2') format('woff2'),
    url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.woff') format('woff'),
    url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.ttf') format('truetype'),
    url('../../../../fonts/TheStarlightCafe/TheStarlightCafe-Bold.svg#TheStarlightCafe-Bold') format('svg');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

.starcafe-bold {
  font-family: 'The Starlight Cafe';
}


.container.promo-wrapper {
  width: 1443px !important;
  margin-top: 60px;
  margin-bottom: 60px;
  max-width: 100%;
}

#nov-banner {
  position: relative;
  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.2);
  background-image: url("../images/sub/back.jpg");
  background-image: image-set(url("../images/sub/back.webp") 1x, url("../images/sub/back@2x.webp") 2x);
  background-image: -webkit-image-set(url("../images/sub/back.webp") 1x, url("../images/sub/back@2x.webp") 2x);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;

}

/* <picture> wrappers must not affect the banner layout */
#nov-banner picture {
  display: contents;
}

#nov-banner .button {
  width: 197px;
  height: 43px;
  color: black;
  text-align: center;
  font-size: 18px;
  font-style: normal;
  font-weight: 900;
  line-height: normal;
  text-transform: uppercase;
  border-radius: 54px;
  background: white;
  margin-top: 10px;
  padding: 0;
  border: none;
  text-decoration: none;
}

@supports (text-box: trim-both cap alphabetic) {
  #nov-banner .button span {
    text-box: trim-both cap alphabetic;
  }
}

#nov-banner .banner-inner {
  gap: 20px;
  width: 100%;
}

#nov-banner .cta-text {
  color: #FFF;
  text-align: center;
  -webkit-text-stroke-width: 0.25px;
  -webkit-text-stroke-color: #FFF;
  font-size: 32px;
  font-style: normal;
  font-weight: 400;
  line-height: 40px;
  /* 125% */
  letter-spacing: 0.64px;
  margin-bottom: 0;
}

.yeti {
  margin-top: 11px;
  top: 11px;
  margin-right: -71px;
  z-index: 1;
}

.sign {
  top: -7px;
  animation: kf_sign_drop_desktop 3s linear infinite;
}

.sign[src*="sign-m"] {
  animation-name: kf_sign_drop_mobile;
  animation-duration: 2.76s;
}

/* sign drops in from above the banner, so clip only the top edge (yeti may still overhang the sides/bottom) */
#nov-banner .banner-inner {
  clip-path: inset(0 -100vw -100px -100vw);
}

@keyframes kf_sign_drop_desktop {
  0% {
    translate: 0px -267px;
  }

  4% {
    animation-timing-function: ease-in;
    translate: 0px -267px;
  }

  24% {
    animation-timing-function: ease-out;
    translate: 0px 7.125px;
  }

  30% {
    animation-timing-function: ease-in-out;
    translate: 0px -3.167px;
  }

  36% {
    translate: 0px 0px;
  }

  100% {
    translate: 0px 0px;
  }
}

@keyframes kf_sign_drop_mobile {
  0% {
    translate: 0px -342.546px;
  }

  4.348% {
    animation-timing-function: ease-in;
    translate: 0px -342.546px;
  }

  26.087% {
    animation-timing-function: ease-out;
    translate: 0px 5.952px;
  }

  32.609% {
    animation-timing-function: ease-in-out;
    translate: 0px -2.645px;
  }

  39.13% {
    translate: 0px 0px;
  }

  100% {
    translate: 0px 0px;
  }
}

@keyframes kf_sign_drop_mobile_cqw {
  0% {
    translate: 0cqw -92.58cqw;
  }

  4.348% {
    animation-timing-function: ease-in;
    translate: 0cqw -92.58cqw;
  }

  26.087% {
    animation-timing-function: ease-out;
    translate: 0cqw 1.6086cqw;
  }

  32.609% {
    animation-timing-function: ease-in-out;
    translate: 0cqw -0.7149cqw;
  }

  39.13% {
    translate: 0cqw 0cqw;
  }

  100% {
    translate: 0cqw 0cqw;
  }
}

@media (prefers-reduced-motion: reduce) {

  .sign,
  .sign[src*="sign-m"] {
    animation: none;
  }
}

@media screen and (max-width: 1200px) {
  #nov-banner .cta-text {
    font-size: 18px;
  }
}

@media screen and (max-width: 991px) {
  #nov-banner .banner-inner {
    gap: 0;
  }

  .yeti {
    margin-right: 19px;
    margin-left: 0;
  }
}


@media screen and (max-width: 767px) {
  #nov-banner .banner-inner {
    flex-direction: column;
  }

  #nov-banner {
    padding: 0;
    margin-bottom: 20px;
  }

  #nov-banner {
    border-radius: 0;
    width: 100%;
    gap: 0;
    box-shadow: none;
    background-image: url("../images/sub/back-m.jpg");
    background-image: image-set(url("../images/sub/back-m.webp") 1x, url("../images/sub/back-m@2x.webp") 2x);
    background-image: -webkit-image-set(url("../images/sub/back-m.webp") 1x, url("../images/sub/back-m@2x.webp") 2x);
    background-position: bottom;
  }

  .container.promo-wrapper {
    margin-bottom: 15px;
    margin-top: 15px;
  }

  #nov-banner .banner-inner {
    padding: 0;
    padding-bottom: 31px;
  }

  .sign {
    top: 0;
  }

  #nov-banner .cta-text {
    -webkit-text-stroke-width: 0.28px;
    font-size: 19.8px;
    line-height: 26.7px;
    letter-spacing: 0.416px;
  }

  #nov-banner .button {
    width: 140px;
    height: 30px;
    border-radius: 41.442px;
    background: #FFF;
    color: #000;
    font-size: 14px;
    margin-top: 8px;
  }
}

/* mobile sizes are in cqw of .promo-wrapper's content box (1cqw = 3.7px at a 400px wide viewport) */
@media screen and (max-width: 567px) {
  .container.promo-wrapper {
    container-type: inline-size;
  }

  #nov-banner .banner-inner {
    padding-bottom: 8.3784cqw;
  }

  .sign[src*="sign-m"] {
    width: 87.027cqw;
    height: auto;
    animation-name: kf_sign_drop_mobile_cqw;
  }

  #nov-banner .cta-text {
    -webkit-text-stroke-width: 0.0757cqw;
    font-size: 5.3514cqw;
    line-height: 7.2162cqw;
    letter-spacing: 0.1124cqw;
  }

  #nov-banner .button {
    width: 37.8378cqw;
    height: 8.1081cqw;
    border-radius: 11.2005cqw;
    font-size: 3.7838cqw;
    margin-top: 2.1622cqw;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 567px) {
  .sign[src*="sign-m"] {
    animation: none;
  }
}