/* =========================================================
   VEXEN — CART MOBILE
   Source of truth: 393px Figma mobile frame
   ========================================================= */

html,
body {
  margin: 0;
  padding: 0;
  background: #0A0A0A;
}

body {
  min-width: 100%;
  overflow-x: hidden;
}

.CartMobile {
  position: relative;
  width: 393px;
  min-height: 1337px;
  margin: 0 auto;
  background: #0A0A0A;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  overflow: hidden;
}

/* ---------- Announcement ---------- */

.CartMobileAnnouncement {
  position: absolute;
  left: 0;
  top: 0;
  width: 393px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #3A0D10;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 10px;
  line-height: 15px;
  font-weight: 400;
  letter-spacing: .3px;
}

/* ---------- Header ---------- */

.CartMobileHeader {
  position: absolute;
  left: 0;
  top: 35px;
  width: 393px;
  height: 112px;
}

.CartMobileLogo {
  position: absolute;
  left: 50%;
  top: 30.8px;
  width: 121.43px;
  height: 20.67px;
  transform: translateX(-50%);
  display: block;
}

.CartMobileLogo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

 .CartMobileMenu {
  position: absolute;
  left: 42px;
  top: 25px;
  width: 32px;
  height: 32px;
  border: 2px solid #F2F2F0;
  border-radius: 50%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.67px;
  padding: 0;
}

.CartMobileMenu::before {
  display: none;
}

.CartMobileMenu span {
  width: 4px;
  height: 4px;
  flex: 0 0 4px;
  border-radius: 50%;
  background: #F2F2F0;
}

.CartMobileIcon {
  position: absolute;
  left: 320px;
  top: 25px;
  width: 32px;
  height: 32px;
  display: block;
}

.CartMobileIcon img {
  width: 32px;
  height: 32px;
  display: block;
  object-fit: contain;
}

.CartMobileBreadcrumb {
  position: absolute;
  left: 0;
  top: 56px;
  width: 393px;
  text-align: center;
  color: #8C8C8C;
  font-family: "e-Ukraine", sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
}

/* ---------- Main ---------- */

.CartMobileContent {
  position: absolute;
  left: 0;
  top: 0;
  width: 393px;
  min-height: 907px;
}

/* ---------- Title / continue ---------- */

.CartMobileTitle {
  position: absolute;
  left: 20px;
  top: 230px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 24px;
  line-height: 19px;
  font-weight: 400;
}

.CartMobileContinue {
  position: absolute;
  left: 20px;
  top: 265px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 400;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- Filled cart ---------- */

.CartMobileFilled {
  position: absolute;
  left: 0;
  top: 321px;
  width: 393px;
  height: 548px;
}

.CartMobileTableHeader {
  position: absolute;
  left: 20px;
  top: 0;
  width: 353px;
  display: flex;
  justify-content: space-between;
  color: #8C8C8C;
  font-family: "e-Ukraine", sans-serif;
  font-size: 14px;
  line-height: 16px;
  font-weight: 400;
}

.CartMobileLine {
  position: absolute;
  left: 20px;
  top: 40px;
  width: 353px;
  height: 1px;
  background: #292929;
}

.CartMobileProduct {
  position: absolute;
  left: 0;
  top: 72px;
  width: 393px;
  height: 176px;
}

 .CartMobileProductImage {
  position: absolute;
  left: 21px;
  top: 0;
  width: 91px;
  height: 91px;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  border: 0;
}

.CartMobileProductImage img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: rotate(9deg) scale(1.04);
  transform-origin: center;
  filter: drop-shadow(0 7px 9px rgba(0,0,0,.35));
}

.CartMobileProductInfo {
  position: absolute;
  left: 130px;
  top: 0;
  width: 145px;
}

.CartMobileProductName {
  width: 120px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 16px;
  line-height: 19px;
  font-weight: 500;
}

 .CartMobileProductPrice {
  margin-top: 8px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 14px;
  line-height: 19px;
  font-weight: 500;
}

.CartMobileProductSize {
  margin-top: 8px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  letter-spacing: .48px;
}

.CartMobileQuantity {
  position: absolute;
  left: 0;
  top: 106px;
  height: 38px;
  display: flex;
  align-items: center;
}

.CartMobileQuantity button {
  width: 28px;
  height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 28px;
  line-height: 38px;
  font-weight: 400;
  cursor: pointer;
  transition: color 160ms ease, transform 160ms ease;
}

.CartMobileQuantity button:active {
  color: #C63436;
  transform: translateY(2px);
}

.CartMobileQuantity span {
  width: 40px;
  text-align: center;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 24px;
  line-height: 32px;
  font-weight: 400;
}

.CartMobileRemove {
  position: absolute;
  left: 261px;
  top: 112px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transition: transform 180ms ease;
}

.CartMobileRemove img {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
}

.CartMobileRemove:active {
  transform: scale(.88) rotate(-8deg);
}

.CartMobileProductTotal {
  position: absolute;
  right: 20px;
  top: 30px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 16px;
  line-height: 19px;
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
}

.CartMobileLine--bottom {
  top: 248px;
}

/* ---------- Summary ---------- */

.CartMobileSummary {
  position: absolute;
  left: 20px;
  top: 296px;
  width: 353px;
  height: 72px;
}

.CartMobileSummaryNote {
  position: absolute;
  left: 0;
  top: 0;
  width: 173px;
  color: #8C8C8C;
  font-family: "e-Ukraine", sans-serif;
  font-size: 10px;
  line-height: 15px;
  font-weight: 400;
}

.CartMobileSummaryRight {
  position: absolute;
  right: 0;
  top: 0;
  width: 134px;
  text-align: right;
}

.CartMobileSummaryLabel {
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 18px;
  line-height: 19px;
  font-weight: 400;
}

.CartMobileSummaryTotal {
  margin-top: 16px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 24px;
  line-height: 19px;
  font-weight: 500;
  white-space: nowrap;
}

/* ---------- Buttons ---------- */

.CartMobileOrderButton,
.CartMobileEmptyButton {
  position: absolute;
  left: 80px;
  width: 236.34px;
  height: 60px;
  border: 0;
  border-radius: 11.7px;
  background: #E8E8E8;
  color: #0A0A0A;
  font-family: "e-Ukraine", sans-serif;
  font-size: 18.72px;
  line-height: 24.96px;
  font-weight: 500;
  letter-spacing: .56px;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  transition:
    background-color 220ms ease,
    transform 160ms ease;
}

.CartMobileOrderButton {
  top: 420px;
}

.CartMobileOrderButton span,
.CartMobileEmptyButton span {
  position: relative;
  z-index: 2;
  transition: transform 220ms ease;
}

.CartMobileOrderButton img,
.CartMobileEmptyButton img {
  position: absolute;
  width: 10.26px;
  height: 7.36px;
  right: 20px;
  opacity: 0;
  transform: rotate(-37deg) translateX(8px);
  transition:
    opacity 180ms ease,
    transform 220ms ease;
}

.CartMobileOrderButton:active,
.CartMobileEmptyButton:active {
  transform: scale(.97);
  background: #C63436;
}

.CartMobileOrderButton:active span,
.CartMobileEmptyButton:active span {
  transform: translateX(-8px);
}

.CartMobileOrderButton:active img,
.CartMobileEmptyButton:active img {
  opacity: 1;
  transform: rotate(-37deg) translateX(0);
}

/* ---------- Filled cart button height ---------- */

.CartMobileOrderButton {
  height: 46.02px;
}

/* ---------- Empty state ---------- */

.CartMobileEmpty {
  position: absolute;
  left: 0;
  top: 321px;
  width: 393px;
  height: 500px;
  text-align: center;
}

.CartMobileEmptyTitle {
  margin-top: 64px;
  color: #F2F2F0;
  font-family: "Unbounded", sans-serif;
  font-size: 28px;
  line-height: 34px;
  font-weight: 500;
}

.CartMobileEmptyText {
  margin-top: 22px;
  color: #8C8C8C;
  font-family: "e-Ukraine", sans-serif;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}

.CartMobileEmptyButton {
  position: relative;
  left: auto;
  top: auto;
  margin: 38px auto 0;
  width: 270px;
}

/* ---------- Footer — same system as FAQ mobile ---------- */

.CartMobileFooter {
  position: absolute;
  left: 0;
  top: 907px;
  width: 393px;
  height: 430px;
  overflow: hidden;
  background: #141414;
  color: #F2F2F0;
}

.CartMobileFooterBrand {
  position: absolute;
  left: 42px;
  top: 30px;
  color: #F2F2F0;
  font-family: "Unbounded", sans-serif;
  font-size: 14.4px;
  font-weight: 500;
  line-height: 19.2px;
}

.CartMobileFooterBrand span {
  display: block;
  margin-top: 4.8px;
  font-family: "e-Ukraine", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
}

.CartMobileFooterLanguage {
  position: absolute;
  left: 244px;
  top: 36px;
  display: flex;
  gap: 12px;
  align-items: center;
  font-family: "e-Ukraine", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0.54px;
}

.CartMobileFooterLanguage span {
  width: 48px;
  height: 27px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 7.5px;
}

.CartMobileFooterLanguage .LangEn {
  color: #818181;
  background: #242424;
}

.CartMobileFooterLanguage .LangUa {
  color: #0A0A0A;
  background: #E8E8E8;
}

.CartMobileFooterNav {
  position: absolute;
  left: 23px;
  top: 152px;
  width: 347px;
  display: grid;
  grid-template-columns: 160px 160px;
  column-gap: 27px;
  row-gap: 38px;
}

.CartMobileFooterNav a {
  width: 160px;
  color: #F2F2F0;
  text-align: center;
  font-family: "e-Ukraine", sans-serif;
  font-size: 17.28px;
  font-weight: 500;
  line-height: 23.04px;
  letter-spacing: 0.35px;
  text-decoration: none;
}

.CartMobileFooterSocials {
  position: absolute;
  left: 44px;
  top: 316px;
  width: 305px;
  display: flex;
  justify-content: space-between;
}

.CartMobileFooterSocials a {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  letter-spacing: 0.36px;
  text-decoration: none;
}

.CartMobileFooterSocials img {
  width: 19.5px;
  height: 19.5px;
  display: block;
  object-fit: contain;
}

.CartMobileFooterLine {
  width: 401px;
  height: 1px;
  position: absolute;
  left: 0;
  top: 356.48px;
  background: #292929;
}

.CartMobileFooterBottom {
  position: absolute;
  left: 44px;
  right: 44px;
  top: 380px;
  display: flex;
  justify-content: space-between;
  color: #F2F2F0;
  font-family: "e-Ukraine", sans-serif;
  font-size: 10px;
  font-weight: 400;
  line-height: 15px;
  white-space: nowrap;
}

/* ---------- Hidden states ---------- */

.CartMobileEmpty[hidden],
.CartMobileFilled[hidden] {
  display: none !important;
}

/* ---------- Small viewport scaling ---------- */

@media (max-width: 392px) {
  .CartMobile {
    transform-origin: top center;
    transform: scale(calc(100vw / 393));
  }

  body {
    min-height: calc(1337px * (100vw / 393));
  }
}


/* ---------- Mobile menu trigger reset ---------- */
.CartMobileMenu {
  box-sizing: border-box;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

body.vexen-menu-open {
  overflow: hidden;
}

/* ---------- Header / mobile menu layering ---------- */

.CartMobileHeader {
  z-index: 1100;
}

.VexenMobileMenu {
  z-index: 1200;
}