.popup {
  position: fixed;
  bottom: var(--gutter-large);
  width: calc(100% - (var(--gutter-large) * 2));
  background: var(--color-background-main);
  color: var(--color-text-main);
  border: 1px solid var(--color-borders-main);
  transform: translateY(3.125rem);
  opacity: 0;
  transition: all 300ms linear 50ms;
  z-index: 999;
  overflow: hidden;
  visibility: hidden;
}
html[dir=rtl] .popup {
  left: var(--gutter-large);
}
html[dir=ltr] .popup {
  right: var(--gutter-large);
}
.popup.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.popup--has-shadow {
  box-shadow: 0 0 1.875rem 0.375rem rgba(0, 0, 0, 0.15);
}
.popup-size--small {
  max-width: 21.25rem;
}
.popup-size--large {
  max-width: 33.75rem;
}
.popup--newsletter input {
  padding-inline-end: 3.125rem;
}
.popup--newsletter button[type=submit] {
  top: var(--gutter-small);
  position: absolute;
  width: 50px;
  height: calc(100% - var(--gutter-small));
  padding-top: 9px;
}
html[dir=rtl] .popup--newsletter button[type=submit] {
  left: 0;
}
html[dir=ltr] .popup--newsletter button[type=submit] {
  right: 0;
}
.no-touchevents .popup--newsletter button[type=submit]:hover svg {
  transform: scale(1.1);
}
.popup--newsletter button[type=submit] svg {
  width: 70%;
  height: 70%;
}
.popup--cart .mini-cart-popup {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  text-align: center;
}
.popup--cart .mini-cart-popup__checkmark {
  width: 5rem;
  height: 5rem;
}
.popup--cart .mini-cart-popup__checkmark .path {
  stroke-dasharray: 1000;
  stroke-dashoffset: 0;
}
.popup--cart .mini-cart-popup__checkmark .path.circle {
  stroke-dashoffset: 1000;
}
.popup--cart .mini-cart-popup__checkmark .path.check {
  stroke-dashoffset: -100;
}
.popup--cart.active .mini-cart-popup__checkmark .path.circle {
  animation: dash 0.9s ease-in-out forwards;
}
.popup--cart.active .mini-cart-popup__checkmark .path.check {
  animation: dash-check 0.9s 0.35s ease-in-out forwards;
}
.popup-product + .popup-close {
  transform: scale(0.65);
  top: var(--gutter-small);
}
.popup-product .popup-heading {
  background-color: lightgray;
  padding: var(--gutter-small) var(--gutter-regular);
  line-height: 1;
}
.popup-product_layout {
  padding: var(--gutter-small) var(--gutter-regular) var(--gutter-regular);
  display: grid;
  grid-template-columns: 6.25rem auto;
  gap: var(--gutter-regular);
}
.popup-product .product-item__price {
  margin-bottom: calc(var(--gutter-small) / 2);
  margin-top: calc(var(--gutter-small) / 2);
}
.popup-product .product-item__title {
  margin-bottom: calc(var(--gutter-small) / 2);
  line-height: 1.3;
}
.popup-product .product-price--unit {
  opacity: 0.62;
  margin: -0.375rem 0 0.125rem;
}
@media screen and (max-width: 474px) {
  .popup-product .product-price--unit {
    font-size: calc(
				13px / 16 * var(--base-body-primary-size) + 0px
			);
  }
}
@media screen and (min-width: 475px) and (max-width: 1023px) {
  .popup-product .product-price--unit {
    font-size: calc(
					14px / 16 * var(--base-body-primary-size) + 0px
				);
  }
}
@media screen and (min-width: 1024px) {
  .popup-product .product-price--unit {
    font-size: calc(
				15px / 16 * var(--base-body-primary-size) + 0px
			);
  }
}
.popup-product_image img {
  border-radius: 0 !important;
}
.popup-product_image .svg-placeholder {
  position: relative;
}

.popup-age-verification {
  position: fixed;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  opacity: 0;
  transition: all 300ms linear 50ms;
  overflow: hidden;
  visibility: hidden;
  top: 0;
  z-index: 1001;
  text-align: center;
  padding: var(--gutter-regular);
}
html[dir=rtl] .popup-age-verification {
  right: 0;
}
html[dir=ltr] .popup-age-verification {
  left: 0;
}
.popup-age-verification__content {
  position: absolute;
  width: 100%;
  max-width: 33.75rem;
  background: var(--color-background-main);
  color: var(--color-text-main);
  border: 1px solid var(--color-borders-main);
  top: 50%;
  left: 50%;
  padding: var(--gutter-regular);
  transform: translate(-50%, -50%);
}
.popup-age-verification .button {
  width: auto;
}
.popup-age-verification.active {
  opacity: 1;
  visibility: visible;
}

.popup-close {
  position: absolute;
  top: 1.25rem;
  z-index: 999;
  cursor: pointer;
  transition: all 150ms linear;
}
html[dir=rtl] .popup-close {
  left: 1.25rem;
}
html[dir=ltr] .popup-close {
  right: 1.25rem;
}
.no-touchevents .popup-close:hover {
  transform: scale(1.1);
}

.stacked-popups {
  position: fixed;
  bottom: var(--gutter-regular);
  display: grid;
  grid-template-columns: 100%;
  gap: var(--gutter-regular);
  justify-items: end;
  z-index: 999;
  pointer-events: none;
  width: calc(100% - (var(--gutter-regular) * 2));
}
html[dir=rtl] .stacked-popups {
  left: var(--gutter-regular);
}
html[dir=ltr] .stacked-popups {
  right: var(--gutter-regular);
}
.stacked-popups--align-left {
  justify-items: start;
}
.stacked-popups .popup {
  pointer-events: all;
  position: relative;
  bottom: 0;
  width: 100%;
}
html[dir=rtl] .stacked-popups .popup {
  left: 0;
}
html[dir=ltr] .stacked-popups .popup {
  right: 0;
}
@media screen and (max-width: 474px) {
  .stacked-popups .popup {
    max-width: 100%;
  }
}
.stacked-popups .popup-title {
  padding-inline-end: 2.5rem;
  font-family: var(--font-stack-headings-primary);
  font-weight: var(--font-weight-headings-primary);
  font-style: var(--font-style-headings-primary);
  line-height: 1;
}
@media screen and (max-width: 474px) {
  .stacked-popups .popup-title {
    font-size: calc(
				18px / 60 * var(--base-headings-primary-size) + 0px
			);
  }
}
@media screen and (min-width: 475px) and (max-width: 1023px) {
  .stacked-popups .popup-title {
    font-size: calc(
					20px / 60 * var(--base-headings-primary-size) + 0px
				);
  }
}
@media screen and (min-width: 1024px) {
  .stacked-popups .popup-title {
    font-size: calc(
				20px / 60 * var(--base-headings-primary-size) + 0px
			);
  }
}
.stacked-popups .popup-title--has-background {
  background-color: red;
  width: 100%;
}

.popup-text--no-content {
  background-color: rgba(0, 0, 0, 0.04);
}
.popup-text--no-content svg {
  width: 100%;
  height: 100%;
}

.cta-stacked {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9375rem;
}

@keyframes dash {
  0% {
    stroke-dashoffset: 1000;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes dash-check {
  0% {
    stroke-dashoffset: -100;
  }
  100% {
    stroke-dashoffset: 900;
  }
}