:root {
  color-scheme: light;
  --cream: #f5ede0;
  --cream-2: #fdf8f2;
  --card: #fffaf2;
  --ink: #321b2e;
  --muted: #78636d;
  --line: rgba(83, 32, 65, .16);
  --burgundy: #4a1535;
  --burgundy-2: #6d2751;
  --gold: #c78a32;
  --btn-bg-dark: #3d0f1e;
  --btn-bg-mid: #5a1a2e;
  --btn-gold: #c9a84c;
  --btn-gold-light: #f0d080;
  --btn-text: #f5e6b0;
  --btn-border: 1.5px solid #c9a84c;
  --kaspi: #ff4b4b;
  --video: #5a1f45;
  --shadow: 0 26px 70px rgba(55, 31, 28, .24);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background:
    radial-gradient(circle at 45% 8%, rgba(199, 138, 50, .28), transparent 24%),
    radial-gradient(circle at 82% 38%, rgba(90, 31, 69, .16), transparent 30%),
    var(--cream);
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  color: var(--ink);
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

.app {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 14px;
}

.screen {
  position: relative;
  width: min(100%, 410px);
  height: min(886px, calc(100vh - 28px));
  overflow: auto;
  border: 1px solid rgba(49, 28, 37, .18);
  border-radius: 38px;
  background: var(--cream-2);
  box-shadow: var(--shadow), inset 0 0 0 7px #111014, inset 0 0 0 9px rgba(255, 255, 255, .28);
  scrollbar-width: none;
}

.screen::-webkit-scrollbar {
  display: none;
}

.hero {
  position: relative;
  min-height: 330px;
  padding: 16px 18px 18px;
  overflow: hidden;
  text-align: center;
  background: linear-gradient(180deg, #f5ede0 0%, #fdf8f2 100%);
}

.hero::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  height: 96px;
  background: linear-gradient(180deg, rgba(253, 248, 242, 0), #fdf8f2 82%);
  opacity: 1;
}

.hero::after {
  content: none;
}

.hero-decor {
  position: absolute;
  bottom: 0;
  z-index: 0;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  opacity: .92;
  filter: saturate(.9) contrast(.98) brightness(1.02);
}

.decor-left {
  left: 0;
  width: 37%;
  object-position: left bottom;
  -webkit-mask-image: linear-gradient(90deg, #000 68%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 68%, transparent 100%);
}

.decor-right {
  right: 0;
  width: 40%;
  object-position: right bottom;
  -webkit-mask-image: linear-gradient(270deg, #000 68%, transparent 100%);
  mask-image: linear-gradient(270deg, #000 68%, transparent 100%);
}

.hero > *:not(.hero-decor) {
  position: relative;
  z-index: 3;
}

.brand-logo {
  width: 166px;
  height: 166px;
  display: block;
  object-fit: contain;
  margin: 12px auto -6px;
  border-radius: 50%;
  filter: drop-shadow(0 12px 20px rgba(79, 29, 66, .2));
}

.eyebrow {
  margin: 0 0 5px;
  color: #53364a;
  font-size: 12px;
  font-weight: 750;
}

.eyebrow::before,
.eyebrow::after {
  content: "⌘";
  margin: 0 9px;
  color: var(--gold);
  font-weight: 900;
}

h1 {
  max-width: 100%;
  margin: 0 auto 9px;
  color: #2a1020;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.08;
  letter-spacing: 0;
  font-weight: 800;
  text-shadow: none;
  text-align: center;
  white-space: nowrap;
}

h1::after {
  content: "✧";
  display: block;
  margin-top: 5px;
  color: var(--gold);
  font-family: Inter, sans-serif;
  font-size: 16px;
}

.hero-button {
  width: min(75vw, 307.5px);
  height: 52px;
  min-height: 52px;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0 auto;
  padding: 0 22px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  color: #fff;
  background:
    radial-gradient(circle at 24% 18%, rgba(255, 255, 255, .2), transparent 26%),
    linear-gradient(135deg, #3d0f28 0%, #641743 52%, #2a081b 100%);
  box-shadow:
    0 16px 34px rgba(93, 20, 60, .34),
    0 4px 20px rgba(93, 20, 60, .5),
    inset 0 1px 0 rgba(255, 255, 255, .2),
    inset 0 -10px 22px rgba(22, 2, 15, .22);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .22);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.hero-button::before {
  content: "";
  position: absolute;
  inset: -40% auto -40% -42%;
  z-index: -1;
  width: 42%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .34), transparent);
  animation: buttonShine 4.2s ease-in-out infinite;
}

.hero-button::after {
  content: "";
  position: absolute;
  inset: 4px;
  z-index: -1;
  border-radius: inherit;
  box-shadow: inset 0 0 18px rgba(255, 255, 255, .08);
}

.hero-button:hover {
  transform: translateY(-1px);
  filter: saturate(1.08) brightness(1.04);
  box-shadow:
    0 18px 38px rgba(93, 20, 60, .42),
    0 6px 24px rgba(93, 20, 60, .55),
    inset 0 1px 0 rgba(255, 255, 255, .24),
    inset 0 -10px 22px rgba(22, 2, 15, .2);
}

@keyframes buttonShine {
  0%,
  58% {
    transform: translateX(0) rotate(18deg);
    opacity: 0;
  }

  70% {
    opacity: .95;
  }

  100% {
    transform: translateX(420%) rotate(18deg);
    opacity: 0;
  }
}

.kaspi-sticky {
  position: sticky;
  top: 0;
  z-index: 12;
  padding: 10px 14px 8px;
  background: linear-gradient(180deg, rgba(253, 248, 242, .96), rgba(253, 248, 242, .68));
  backdrop-filter: blur(20px);
}

.kaspi-store-link {
  min-height: 58px;
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  padding: 10px 14px;
  border: 1px solid rgba(255, 255, 255, .58);
  border-radius: 20px;
  color: #fff;
  background:
    radial-gradient(circle at 18% 0%, rgba(255, 255, 255, .28), transparent 34%),
    linear-gradient(135deg, #3d0f28 0%, #7c1f55 52%, #e6373e 100%);
  box-shadow:
    0 18px 36px rgba(71, 18, 47, .24),
    inset 0 1px 0 rgba(255, 255, 255, .22),
    inset 0 -16px 28px rgba(32, 4, 22, .2);
}

.kaspi-store-link::before {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  z-index: -1;
  width: 30%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .34), transparent);
  animation: buttonShine 4.8s ease-in-out infinite;
}

.kaspi-store-icon {
  width: 34px;
  height: 34px;
  display: block;
  flex: 0 0 auto;
  border-radius: 13px;
  background: rgba(255, 255, 255, .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28);
}

.kaspi-store-icon::before {
  content: "";
  width: 19px;
  height: 19px;
  display: block;
  margin: 7px auto 0;
  background: #fff;
  -webkit-mask: url("/assets/icon-cart.svg") center / contain no-repeat;
  mask: url("/assets/icon-cart.svg") center / contain no-repeat;
}

.kaspi-store-link span:last-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.kaspi-store-link strong {
  font-size: 14px;
  line-height: 1;
  font-weight: 950;
}

.kaspi-store-link small {
  color: rgba(255, 255, 255, .76);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
}

.catalog {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 4px 14px 104px;
}

.catalog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(83, 32, 65, .09);
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .74), rgba(255, 248, 236, .46)),
    radial-gradient(circle at 12% 0%, rgba(199, 138, 50, .16), transparent 34%);
  box-shadow: 0 12px 28px rgba(71, 43, 33, .08), inset 0 1px 0 rgba(255, 255, 255, .72);
}

.catalog-header h2 {
  position: relative;
  margin: 0;
  color: var(--ink);
  font-size: 19px;
  line-height: 1.1;
  font-weight: 900;
  white-space: nowrap;
}

.catalog-header h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--burgundy), var(--gold));
  opacity: .78;
}

.catalog-header span {
  flex: 0 0 auto;
  color: var(--muted);
  padding: 7px 10px;
  border: 1px solid rgba(83, 32, 65, .1);
  border-radius: 999px;
  background: rgba(255, 255, 255, .68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .62);
  font-size: 12px;
  font-weight: 900;
}

.search-bar {
  width: 100%;
  min-height: 50px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 15px;
  border: 1px solid rgba(83, 32, 65, .12);
  border-radius: 17px;
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 12px 24px rgba(71, 43, 33, .07), inset 0 1px 0 rgba(255, 255, 255, .76);
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.search-bar:focus-within {
  border-color: rgba(90, 31, 69, .3);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 15px 30px rgba(71, 43, 33, .1), 0 0 0 4px rgba(90, 31, 69, .07);
}

.search-icon {
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  background: linear-gradient(135deg, var(--burgundy), var(--gold));
  -webkit-mask: url("/assets/icon-search.svg") center / contain no-repeat;
  mask: url("/assets/icon-search.svg") center / contain no-repeat;
}

.search-bar input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  color: var(--ink);
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
}

.search-bar input::placeholder {
  color: var(--muted);
}

.filter-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.filter-select {
  min-width: 0;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid rgba(83, 32, 65, .12);
  border-radius: 16px;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .88), rgba(255, 250, 242, .72));
  box-shadow: 0 10px 22px rgba(71, 43, 33, .07), inset 0 1px 0 rgba(255, 255, 255, .76);
  font-size: 13px;
  font-weight: 900;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.filter-select:hover {
  transform: translateY(-1px);
  border-color: rgba(90, 31, 69, .22);
  box-shadow: 0 12px 26px rgba(71, 43, 33, .1), inset 0 1px 0 rgba(255, 255, 255, .8);
}

.select-arrow {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  background: var(--muted);
  -webkit-mask: url("/assets/icon-chevron-down.svg") center / contain no-repeat;
  mask: url("/assets/icon-chevron-down.svg") center / contain no-repeat;
}

.products-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.product {
  height: 132px;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(83, 32, 65, .14);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(71, 43, 33, .12);
}

.product-media {
  position: relative;
  height: 100%;
}

.photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 16px 0 0 16px;
}

.product-badge {
  position: absolute;
  left: 8px;
  top: 8px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 5px 10px;
  overflow: hidden;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 8px 18px rgba(32, 8, 24, .24), inset 0 1px 0 rgba(255, 255, 255, .28);
  animation: badgeFloat 3.2s ease-in-out infinite;
}

.product-badge::before {
  content: "";
  position: absolute;
  inset: -30% auto -30% -55%;
  width: 48%;
  transform: rotate(18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .5), transparent);
  animation: badgeShine 3.8s ease-in-out infinite;
}

.product-badge::after {
  content: "";
  width: 5px;
  height: 5px;
  margin-left: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 0 10px rgba(255, 255, 255, .86);
}

.badge-hit {
  background: linear-gradient(135deg, #ff4260, #d61d52);
}

.badge-new {
  background: linear-gradient(135deg, #7d38d8, #4d177f);
}

.badge-sale {
  background: linear-gradient(135deg, #f4a528, #d5681e);
}

@keyframes badgeFloat {
  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-1px);
  }
}

@keyframes badgeShine {
  0%,
  56% {
    transform: translateX(0) rotate(18deg);
    opacity: 0;
  }

  70% {
    opacity: .95;
  }

  100% {
    transform: translateX(420%) rotate(18deg);
    opacity: 0;
  }
}

.content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 11px 12px;
}

.category-name {
  margin: 0 0 4px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1;
  font-weight: 850;
}

.content h2 {
  margin: 0 0 7px;
  color: #2a1020;
  font-size: 15px;
  line-height: 1.12;
  letter-spacing: 0;
  font-weight: 900;
}

.actions {
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.actions a {
  min-width: 70px;
  min-height: 30px;
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 0 10px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 8px 16px rgba(40, 15, 34, .12), inset 0 1px 0 rgba(255, 255, 255, .22);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.actions a:hover {
  transform: translateY(-1px);
  filter: brightness(1.04) saturate(1.05);
  box-shadow: 0 10px 20px rgba(40, 15, 34, .16), inset 0 1px 0 rgba(255, 255, 255, .24);
}

.actions a::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, .18), transparent 52%);
  pointer-events: none;
}

.kaspi {
  color: #fff;
  background: linear-gradient(135deg, #ff5757, #e02020);
  border-color: var(--kaspi) !important;
}

.kaspi span {
  width: 15px;
  height: 15px;
  display: inline-block;
  background: #fff;
  -webkit-mask: url("/assets/icon-cart.svg") center / contain no-repeat;
  mask: url("/assets/icon-cart.svg") center / contain no-repeat;
}

.video {
  color: #fff;
  background: linear-gradient(135deg, #7b31d2, #4e168a);
  border-color: #6b2ba3 !important;
}

.video span {
  width: 14px;
  height: 14px;
  display: inline-block;
  background: #fff;
  -webkit-mask: url("/assets/icon-play.svg") center / contain no-repeat;
  mask: url("/assets/icon-play.svg") center / contain no-repeat;
}

.bottom-nav {
  position: fixed;
  z-index: 10;
  left: 50%;
  bottom: 0;
  width: min(100%, 410px);
  height: 64px;
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  padding: 6px 12px;
  background:
    radial-gradient(circle at 16% 0%, rgba(224, 64, 122, .22), transparent 32%),
    linear-gradient(180deg, rgba(35, 12, 24, .96), rgba(16, 5, 11, .98));
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 -18px 42px rgba(26, 10, 18, .32), inset 0 1px 0 rgba(255, 255, 255, .05);
  backdrop-filter: blur(20px);
}

.bottom-nav a {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 3px;
  justify-self: center;
  align-self: center;
  min-width: 58px;
  height: 52px;
  padding: 6px 8px;
  border-radius: 16px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 11px;
  font-weight: 600;
  transition: color .2s ease, background-color .2s ease, padding .2s ease, transform .2s ease;
}

.bottom-nav a:hover {
  color: rgba(255, 255, 255, .68);
  transform: translateY(-1px);
}

.bottom-nav a.active {
  padding: 6px 16px;
  color: #e0407a;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 134, 182, .22), transparent 62%),
    rgba(180, 40, 100, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 8px 18px rgba(0, 0, 0, .18);
  font-weight: 700;
}

.bottom-nav .nav-icon {
  position: relative;
  width: 24px;
  height: 24px;
  display: block;
  background: currentColor;
  line-height: 1;
  -webkit-mask: var(--nav-icon) center / contain no-repeat;
  mask: var(--nav-icon) center / contain no-repeat;
}

.nav-home {
  --nav-icon: url("/assets/nav-home.svg");
}

.nav-flame {
  --nav-icon: url("/assets/nav-flame.svg");
}

.nav-sparkles {
  --nav-icon: url("/assets/nav-sparkles.svg");
}

.nav-tag {
  --nav-icon: url("/assets/nav-tag.svg");
}

.bottom-nav .nav-label {
  width: auto;
  height: auto;
  display: block;
  font-size: 11px;
  line-height: 1;
}

.hero-button,
.kaspi-store-link,
.bottom-nav {
  font-family: Georgia, "Times New Roman", serif;
}

.hero-button {
  width: min(75vw, 302px);
  height: 48px;
  min-height: 48px;
  padding: 0 64px;
  border: var(--btn-border);
  border-radius: 999px;
  color: var(--btn-text);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .08), transparent 36%),
    linear-gradient(135deg, var(--btn-bg-mid), var(--btn-bg-dark));
  box-shadow:
    0 10px 18px rgba(37, 9, 22, .34),
    0 4px 0 rgba(35, 10, 18, .32),
    inset 0 0 28px rgba(240, 208, 128, .17),
    inset 0 1px 0 rgba(255, 255, 255, .16);
  font-size: 14px;
  font-weight: 900;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .45), 0 0 12px rgba(240, 208, 128, .2);
}

.hero-button::before {
  inset: 0;
  z-index: 0;
  width: auto;
  transform: none;
  background: url("/assets/ornament-festive-rich.svg") center / 132% 110% no-repeat;
  animation: none;
  opacity: .95;
  mix-blend-mode: screen;
}

.hero-button::after {
  inset: 4px 8px;
  z-index: 0;
  border-radius: inherit;
  border-top: 1px solid rgba(240, 208, 128, .44);
  border-bottom: 1px solid rgba(240, 208, 128, .3);
  background: linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 48%, rgba(0, 0, 0, .14));
  box-shadow: inset 0 0 18px rgba(240, 208, 128, .1);
}

.hero-button:hover {
  transform: translateY(-1px);
  filter: brightness(1.07) saturate(1.04);
  box-shadow:
    0 12px 24px rgba(37, 9, 22, .38),
    0 0 22px rgba(201, 168, 76, .2),
    inset 0 0 34px rgba(240, 208, 128, .22),
    inset 0 1px 0 rgba(255, 255, 255, .18);
}

.hero-button:active,
.kaspi-store-link:active,
.bottom-nav a:active {
  transform: scale(.97);
}

.kaspi-sticky {
  padding: 9px 14px 8px;
  background: linear-gradient(180deg, rgba(253, 248, 242, .96), rgba(253, 248, 242, .7));
}

.kaspi-store-link {
  min-height: 58px;
  justify-content: center;
  gap: 0;
  padding: 0 72px;
  border: 2px solid rgba(201, 168, 76, .96);
  border-radius: 18px;
  color: var(--btn-text);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .08), transparent 36%),
    linear-gradient(135deg, var(--btn-bg-mid), var(--btn-bg-dark));
  box-shadow:
    0 12px 20px rgba(37, 9, 22, .34),
    0 4px 0 rgba(35, 10, 18, .32),
    inset 0 0 30px rgba(240, 208, 128, .17),
    inset 0 1px 0 rgba(255, 255, 255, .15);
}

.kaspi-store-link::before {
  inset: 0;
  z-index: 0;
  width: auto;
  transform: none;
  background: url("/assets/ornament-festive-rich.svg") center / 132% 110% no-repeat;
  animation: none;
  opacity: .98;
  mix-blend-mode: screen;
}

.kaspi-store-link::after {
  content: "";
  position: absolute;
  inset: 5px 9px;
  z-index: 0;
  border-top: 1px solid rgba(240, 208, 128, .46);
  border-bottom: 1px solid rgba(240, 208, 128, .34);
  border-radius: 14px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 48%, rgba(0, 0, 0, .13));
}

.kaspi-store-link > * {
  position: relative;
  z-index: 2;
}

.kaspi-store-link span:last-child {
  width: 100%;
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 0;
  text-align: center;
}

.kaspi-store-icon {
  display: none;
}

.kaspi-store-icon::before {
  background: var(--btn-gold-light);
}

.kaspi-store-link strong {
  color: var(--btn-text);
  font-size: 16px;
  letter-spacing: 0;
  text-transform: none;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .45), 0 0 12px rgba(240, 208, 128, .18);
}

.kaspi-store-link small {
  display: none;
}

.bottom-nav {
  left: 50%;
  bottom: 8px;
  width: min(calc(100% - 24px), 386px);
  height: 58px;
  overflow: hidden;
  grid-template-columns: repeat(4, 1fr);
  padding: 4px;
  border: 2px solid rgba(201, 168, 76, .94);
  border-radius: 13px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .08), transparent 36%),
    linear-gradient(135deg, var(--btn-bg-mid), var(--btn-bg-dark));
  box-shadow:
    0 -14px 32px rgba(35, 10, 18, .2),
    0 10px 22px rgba(37, 9, 22, .34),
    0 3px 0 rgba(35, 10, 18, .32),
    inset 0 0 26px rgba(240, 208, 128, .16),
    inset 0 1px 0 rgba(255, 255, 255, .12);
  backdrop-filter: blur(18px);
}

.bottom-nav::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: url("/assets/ornament-festive-nav.svg") center / 100% 100% no-repeat;
  opacity: .92;
  mix-blend-mode: screen;
}

.bottom-nav::after {
  content: "";
  position: absolute;
  inset: 4px;
  z-index: 0;
  border-top: 1px solid rgba(240, 208, 128, .43);
  border-bottom: 1px solid rgba(240, 208, 128, .32);
  pointer-events: none;
}

.bottom-nav a {
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 100%;
  height: 48px;
  gap: 2px;
  padding: 5px 3px;
  border-radius: 8px;
  color: rgba(245, 230, 176, .76);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 900;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .48);
}

.bottom-nav a + a {
  border-left: 1px solid rgba(240, 208, 128, .26);
}

.bottom-nav a:hover {
  color: var(--btn-gold-light);
  transform: translateY(-1px);
}

.bottom-nav a.active {
  padding: 5px 3px;
  color: var(--btn-gold-light);
  background: rgba(201, 168, 76, .12);
  box-shadow: inset 0 0 0 1px rgba(240, 208, 128, .26), inset 0 0 18px rgba(240, 208, 128, .1);
}

.bottom-nav .nav-icon {
  width: 21px;
  height: 21px;
}

.bottom-nav .nav-label {
  color: inherit;
  font-size: 10.5px;
  font-weight: 900;
}

.hero-button,
.kaspi-store-link {
  border: 2px solid rgba(201, 168, 76, .96);
  color: #f5e6b0;
  background:
    linear-gradient(180deg, rgba(122, 47, 67, .72), rgba(61, 15, 30, .96)),
    linear-gradient(135deg, #5a1a2e, #3d0f1e);
  box-shadow:
    0 10px 18px rgba(35, 9, 20, .38),
    0 3px 0 rgba(38, 11, 20, .46),
    inset 0 0 22px rgba(240, 208, 128, .16),
    inset 0 1px 0 rgba(255, 255, 255, .16);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.hero-button {
  height: 47px;
  min-height: 47px;
  width: min(72vw, 278px);
  padding: 0 74px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 950;
}

.kaspi-store-link {
  min-height: 58px;
  border-radius: 19px;
  padding: 0 88px;
}

.hero-button::before,
.kaspi-store-link::before {
  inset: 0;
  z-index: 0;
  width: auto;
  transform: none;
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg"),
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-repeat: no-repeat;
  background-position:
    left 5px center,
    right 5px center,
    center 6px,
    center calc(100% - 6px);
  background-size:
    78px 44px,
    78px 44px,
    96px 19px,
    96px 19px;
  opacity: .98;
  mix-blend-mode: normal;
  animation: none;
}

.kaspi-store-link::before {
  background-position:
    left 8px center,
    right 8px center,
    center 6px,
    center calc(100% - 6px);
  background-size:
    86px 48px,
    86px 48px,
    110px 21px,
    110px 21px;
}

.hero-button::after,
.kaspi-store-link::after {
  content: "";
  position: absolute;
  inset: 5px 8px;
  z-index: 0;
  border: 1px solid rgba(240, 208, 128, .32);
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, .1), transparent 48%, rgba(0, 0, 0, .16));
  box-shadow: none;
  pointer-events: none;
}

.kaspi-store-link span:last-child,
.kaspi-store-link strong {
  position: relative;
  z-index: 2;
}

.kaspi-store-link strong {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 15px;
  font-weight: 950;
  white-space: nowrap;
}

.bottom-nav {
  height: 58px;
  border: 2px solid rgba(201, 168, 76, .96);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(122, 47, 67, .62), rgba(61, 15, 30, .97)),
    linear-gradient(135deg, #5a1a2e, #3d0f1e);
  box-shadow:
    0 -12px 28px rgba(35, 10, 18, .16),
    0 9px 18px rgba(35, 9, 20, .34),
    0 3px 0 rgba(38, 11, 20, .46),
    inset 0 0 22px rgba(240, 208, 128, .15),
    inset 0 1px 0 rgba(255, 255, 255, .12);
}

.bottom-nav::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg"),
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-repeat: no-repeat;
  background-position:
    left 4px center,
    right 4px center,
    center 5px,
    center calc(100% - 5px);
  background-size:
    72px 42px,
    72px 42px,
    94px 17px,
    94px 17px;
  opacity: .86;
  mix-blend-mode: normal;
}

.bottom-nav::after {
  inset: 5px;
  border: 1px solid rgba(240, 208, 128, .28);
  border-left: 0;
  border-right: 0;
}

.bottom-nav a {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: rgba(245, 230, 176, .82);
}

.bottom-nav a.active {
  background: rgba(201, 168, 76, .1);
  box-shadow: inset 0 0 0 1px rgba(240, 208, 128, .2);
}

.hero-button::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg");
  background-position:
    left 5px center,
    right 5px center;
  background-size:
    68px 39px,
    68px 39px;
}

.bottom-nav {
  grid-template-columns: repeat(3, 1fr);
}

.bottom-nav a:first-child {
  display: none;
}

.bottom-nav a:nth-child(2) {
  color: #f5e6b0;
  background: rgba(201, 168, 76, .1);
  box-shadow: inset 0 0 0 1px rgba(240, 208, 128, .2);
}

.bottom-nav::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg");
  background-position:
    left 4px center,
    right 4px center;
  background-size:
    44px 28px,
    44px 28px;
}

@media (max-width: 520px) {
  .app {
    padding: 0;
  }

  .screen {
    width: 100%;
    height: 100vh;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .bottom-nav {
    bottom: 8px;
    width: calc(100% - 24px);
  }
}

@media (max-width: 360px) {
  .screen {
    font-size: 14px;
  }

  .hero {
    min-height: 330px;
  }

  .brand-logo {
    width: 154px;
    height: 154px;
  }

  h1 {
    font-size: 22px;
  }

  .catalog {
    padding-left: 12px;
    padding-right: 12px;
  }

  .actions {
    gap: 5px;
  }
}

/* Final festive ornament pass: edge SVGs, reference-like proportions. */
.hero-button,
.kaspi-store-link,
.bottom-nav {
  background:
    linear-gradient(180deg, rgba(105, 35, 55, .62), rgba(49, 12, 25, .98)),
    linear-gradient(135deg, #5a1a2e 0%, #3d0f1e 100%);
  border: 2px solid rgba(201, 168, 76, .98);
  color: #f5e6b0;
  box-shadow:
    0 12px 18px rgba(35, 9, 20, .42),
    0 3px 0 rgba(27, 8, 15, .56),
    inset 0 0 24px rgba(240, 208, 128, .17),
    inset 0 1px 0 rgba(255, 255, 255, .18);
}

.hero-button {
  width: min(64vw, 246px);
  height: 47px;
  min-height: 47px;
  padding: 0 58px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
  letter-spacing: 0;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .35);
}

.hero-button::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg");
  background-repeat: no-repeat;
  background-position:
    left 4px center,
    right 4px center;
  background-size:
    61px 34px,
    61px 34px;
  opacity: .98;
}

.hero-button::after {
  inset: 5px 8px;
  border-color: rgba(240, 208, 128, .34);
  border-left-color: transparent;
  border-right-color: transparent;
  background: linear-gradient(180deg, rgba(255, 255, 255, .11), transparent 50%, rgba(0, 0, 0, .18));
}

.kaspi-store-link {
  min-height: 58px;
  border-radius: 18px;
  padding: 0 74px;
  overflow: hidden;
}

.kaspi-store-link::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg"),
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-repeat: no-repeat;
  background-position:
    left 5px center,
    right 5px center,
    center 5px,
    center calc(100% - 5px);
  background-size:
    74px 41px,
    74px 41px,
    96px 15px,
    96px 15px;
  opacity: .98;
}

.kaspi-store-link::after {
  inset: 5px 9px;
  border-color: rgba(240, 208, 128, .32);
  border-left-color: transparent;
  border-right-color: transparent;
}

.kaspi-store-link strong {
  font-size: 15px;
  font-weight: 950;
  letter-spacing: 0;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .35);
}

.kaspi-store-link small {
  color: rgba(245, 230, 176, .68);
}

.bottom-nav {
  grid-template-columns: repeat(3, 1fr);
  height: 58px;
  width: min(330px, calc(100% - 28px));
  border-radius: 11px;
  padding: 4px 8px;
  overflow: hidden;
}

.bottom-nav::before {
  background-image:
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-repeat: no-repeat;
  background-position:
    center 4px,
    center calc(100% - 4px);
  background-size:
    82px 12px,
    82px 12px;
  opacity: .7;
}

.bottom-nav::after {
  inset: 5px;
  border: 1px solid rgba(240, 208, 128, .28);
  border-left: 0;
  border-right: 0;
  border-radius: 8px;
}

.bottom-nav a:first-child {
  display: none;
}

.bottom-nav a {
  min-width: 0;
  gap: 2px;
  color: rgba(245, 230, 176, .76);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.bottom-nav a + a {
  border-left: 1px solid rgba(240, 208, 128, .36);
}

.bottom-nav a:nth-child(2) {
  color: #f6d27c;
  background: transparent;
  box-shadow: none;
}

.bottom-nav .nav-icon {
  width: 21px;
  height: 21px;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .36));
}

.bottom-nav .nav-label {
  color: inherit;
  font-size: 10.5px;
  font-weight: 900;
  text-shadow: 0 1px 0 rgba(0, 0, 0, .28);
}

@media (max-width: 520px) {
  .bottom-nav {
    bottom: 8px;
    width: calc(100% - 24px);
  }
}

@media (max-width: 360px) {
  .hero-button {
    width: min(68vw, 230px);
    padding: 0 52px;
    font-size: 12.5px;
  }

  .hero-button::before {
    background-size:
      55px 31px,
      55px 31px;
  }

  .kaspi-store-link {
    padding: 0 62px;
  }
}

/* Tighten ornaments so they frame the text instead of covering it. */
.hero-button {
  width: min(66vw, 254px);
  padding: 0 48px;
}

.hero-button::before {
  background-position:
    left 7px center,
    right 7px center;
  background-size:
    48px 27px,
    48px 27px;
}

.kaspi-store-link {
  padding: 0 64px;
}

.kaspi-store-link::before {
  background-position:
    left 7px center,
    right 7px center,
    center 5px,
    center calc(100% - 5px);
  background-size:
    58px 32px,
    58px 32px,
    82px 13px,
    82px 13px;
}

.bottom-nav::before {
  background-image:
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-position:
    center -2px,
    center calc(100% + 2px);
  background-size:
    70px 10px,
    70px 10px;
  opacity: .42;
}

.bottom-nav a {
  position: relative;
  z-index: 2;
}

.bottom-nav a:nth-child(2) {
  background: rgba(240, 208, 128, .06);
}

@media (max-width: 360px) {
  .hero-button {
    width: min(70vw, 238px);
    padding: 0 44px;
  }

  .hero-button::before {
    background-size:
      43px 25px,
      43px 25px;
  }

  .kaspi-store-link {
    padding: 0 56px;
  }

  .kaspi-store-link::before {
    background-size:
      51px 30px,
      51px 30px,
      72px 12px,
      72px 12px;
  }
}

/* Modern store polish: restore 4-tab nav and refine all CTA buttons. */
.hero-button,
.kaspi-store-link {
  isolation: isolate;
  color: #fff4cf;
  background:
    radial-gradient(circle at 50% -35%, rgba(240, 208, 128, .34), transparent 38%),
    linear-gradient(180deg, rgba(108, 33, 58, .96), rgba(53, 12, 30, .99));
  border: 1.7px solid rgba(240, 208, 128, .86);
  box-shadow:
    0 14px 24px rgba(48, 13, 30, .34),
    0 3px 0 rgba(44, 10, 24, .5),
    inset 0 0 0 1px rgba(255, 255, 255, .08),
    inset 0 0 26px rgba(240, 208, 128, .16);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.hero-button {
  width: min(70vw, 270px);
  height: 50px;
  min-height: 50px;
  padding: 0 56px;
  font-size: 14px;
  font-weight: 950;
}

.hero-button::before {
  background-position:
    left 8px center,
    right 8px center;
  background-size:
    46px 27px,
    46px 27px;
  opacity: .9;
}

.hero-button::after,
.kaspi-store-link::after {
  inset: 5px 9px;
  border: 1px solid rgba(240, 208, 128, .34);
  border-left-color: transparent;
  border-right-color: transparent;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .14), transparent 46%, rgba(0, 0, 0, .18));
}

.hero-button:hover,
.kaspi-store-link:hover {
  transform: translateY(-1px);
  filter: brightness(1.06) saturate(1.04);
  box-shadow:
    0 16px 28px rgba(48, 13, 30, .38),
    0 0 26px rgba(201, 168, 76, .18),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    inset 0 0 30px rgba(240, 208, 128, .2);
}

.kaspi-store-link {
  min-height: 60px;
  padding: 0 66px;
  border-radius: 20px;
}

.kaspi-store-link::before {
  background-position:
    left 8px center,
    right 8px center,
    center 6px,
    center calc(100% - 6px);
  background-size:
    54px 31px,
    54px 31px,
    76px 12px,
    76px 12px;
  opacity: .9;
}

.kaspi-store-link strong {
  color: #fff7db;
  font-size: 15px;
  font-weight: 950;
}

.kaspi-store-link small {
  color: rgba(255, 244, 207, .72);
}

.actions {
  width: 100%;
  margin-top: auto;
  padding-top: 7px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.actions a {
  min-width: 0;
  min-height: 32px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: 0;
  box-shadow:
    0 8px 15px rgba(44, 12, 28, .15),
    inset 0 1px 0 rgba(255, 255, 255, .25);
}

.actions a span {
  flex: 0 0 auto;
}

.video {
  background:
    radial-gradient(circle at 35% 0%, rgba(240, 208, 128, .2), transparent 48%),
    linear-gradient(135deg, #6330b2, #3b176d);
  border-color: rgba(240, 208, 128, .28) !important;
}

.kaspi {
  background:
    radial-gradient(circle at 35% 0%, rgba(255, 255, 255, .22), transparent 46%),
    linear-gradient(135deg, #ff4b4b, #cf1717);
  border-color: rgba(255, 255, 255, .18) !important;
}

.search-bar,
.filter-select {
  box-shadow:
    0 10px 22px rgba(70, 36, 20, .08),
    inset 0 1px 0 rgba(255, 255, 255, .88);
}

.filter-select {
  border-radius: 18px;
  font-weight: 900;
}

.bottom-nav {
  bottom: 10px;
  width: min(390px, calc(100% - 20px));
  height: 68px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  padding: 6px;
  border: 1.5px solid rgba(240, 208, 128, .42);
  border-radius: 24px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 0%, rgba(240, 208, 128, .16), transparent 34%),
    radial-gradient(circle at 82% 0%, rgba(224, 64, 122, .16), transparent 34%),
    linear-gradient(180deg, rgba(65, 18, 37, .95), rgba(25, 7, 15, .98));
  box-shadow:
    0 -12px 32px rgba(53, 24, 12, .12),
    0 16px 32px rgba(39, 10, 22, .25),
    inset 0 1px 0 rgba(255, 255, 255, .12),
    inset 0 0 24px rgba(240, 208, 128, .08);
  backdrop-filter: blur(20px);
}

.bottom-nav::before {
  background:
    linear-gradient(90deg, transparent, rgba(240, 208, 128, .24), transparent) center 6px / 46% 1px no-repeat,
    linear-gradient(90deg, transparent, rgba(240, 208, 128, .18), transparent) center calc(100% - 6px) / 46% 1px no-repeat;
  opacity: 1;
}

.bottom-nav::after {
  inset: 5px;
  border: 1px solid rgba(240, 208, 128, .16);
  border-radius: 20px;
}

.bottom-nav a:first-child {
  display: grid !important;
}

.bottom-nav a {
  height: 56px;
  min-width: 0;
  padding: 6px 3px;
  border: 0;
  border-radius: 18px;
  color: rgba(255, 244, 207, .58);
  background: transparent;
  box-shadow: none;
  transition: transform .2s ease, color .2s ease, background-color .2s ease, box-shadow .2s ease;
}

.bottom-nav a + a {
  border-left: 0;
}

.bottom-nav a.active,
.bottom-nav a:first-child {
  color: #f6d27c;
  background:
    radial-gradient(circle at 50% 0%, rgba(240, 208, 128, .24), transparent 58%),
    rgba(240, 208, 128, .1);
  box-shadow:
    inset 0 0 0 1px rgba(240, 208, 128, .2),
    0 8px 18px rgba(0, 0, 0, .16);
}

.bottom-nav a:nth-child(2) {
  color: rgba(255, 244, 207, .58);
  background: transparent;
  box-shadow: none;
}

.bottom-nav a:hover {
  color: #fff4cf;
  background: rgba(255, 255, 255, .05);
  transform: translateY(-1px);
}

.bottom-nav .nav-icon {
  width: 23px;
  height: 23px;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .36));
}

.bottom-nav .nav-label {
  font-size: 10.5px;
  font-weight: 850;
}

@media (max-width: 360px) {
  .hero-button {
    width: min(74vw, 248px);
    padding: 0 48px;
    font-size: 13px;
  }

  .hero-button::before {
    background-size:
      40px 24px,
      40px 24px;
  }

  .kaspi-store-link {
    padding: 0 54px;
  }

  .kaspi-store-link::before {
    background-size:
      47px 29px,
      47px 29px,
      68px 11px,
      68px 11px;
  }
}

/* Premium minimal polish: cleaner modern buttons with restrained ornament. */
@keyframes premiumButtonSheen {
  0% {
    transform: translateX(-150%) skewX(-18deg);
    opacity: 0;
  }

  28% {
    opacity: .45;
  }

  58% {
    opacity: 0;
  }

  100% {
    transform: translateX(160%) skewX(-18deg);
    opacity: 0;
  }
}

.hero-button,
.kaspi-store-link,
.actions a,
.bottom-nav a {
  -webkit-tap-highlight-color: transparent;
}

.hero-button,
.kaspi-store-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
  color: #fff4d5;
  background:
    radial-gradient(circle at 50% -55%, rgba(255, 229, 151, .34), transparent 42%),
    linear-gradient(180deg, #6a203f 0%, #46122b 54%, #2c0b1b 100%);
  border: 1.5px solid rgba(240, 208, 128, .82);
  box-shadow:
    0 14px 28px rgba(46, 12, 29, .34),
    0 3px 0 rgba(40, 9, 23, .48),
    inset 0 0 0 1px rgba(255, 255, 255, .1),
    inset 0 0 24px rgba(240, 208, 128, .13);
  text-shadow: 0 1px 0 rgba(0, 0, 0, .4);
}

.hero-button {
  width: min(74vw, 292px);
  height: 52px;
  min-height: 52px;
  padding: 0 58px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 950;
  white-space: nowrap;
}

.hero-button::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg");
  background-repeat: no-repeat;
  background-position:
    left 12px center,
    right 12px center;
  background-size:
    38px 23px,
    38px 23px;
  opacity: .74;
}

.hero-button::after,
.kaspi-store-link::after {
  content: "";
  position: absolute;
  inset: 5px 10px;
  z-index: 0;
  border: 1px solid rgba(240, 208, 128, .26);
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: inherit;
  background:
    linear-gradient(90deg, transparent 0%, rgba(255, 246, 208, .26) 48%, transparent 58%) -140% 0 / 42% 100% no-repeat,
    linear-gradient(180deg, rgba(255, 255, 255, .12), transparent 50%, rgba(0, 0, 0, .16));
  pointer-events: none;
  animation: premiumButtonSheen 5.8s ease-in-out infinite;
}

.hero-button:hover,
.kaspi-store-link:hover,
.actions a:hover {
  transform: translateY(-1px);
  filter: brightness(1.06) saturate(1.04);
}

.kaspi-sticky {
  padding: 10px 14px 9px;
}

.kaspi-store-link {
  min-height: 62px;
  border-radius: 22px;
  padding: 0 68px;
}

.kaspi-store-link::before {
  background-image:
    url("/assets/ornament-edge-left.svg"),
    url("/assets/ornament-edge-right.svg"),
    url("/assets/ornament-center-flourish.svg"),
    url("/assets/ornament-center-flourish.svg");
  background-repeat: no-repeat;
  background-position:
    left 10px center,
    right 10px center,
    center 6px,
    center calc(100% - 6px);
  background-size:
    48px 29px,
    48px 29px,
    76px 12px,
    76px 12px;
  opacity: .78;
}

.kaspi-store-link span:last-child {
  gap: 3px;
}

.kaspi-store-link strong {
  color: #fff7dc;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: 0;
}

.kaspi-store-link small {
  color: rgba(255, 244, 213, .72);
  font-size: 11px;
}

.catalog {
  padding-bottom: 104px;
}

.actions {
  width: 100%;
  margin-top: auto;
  padding-top: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.actions a {
  min-width: 0;
  min-height: 34px;
  padding: 0 9px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 950;
  letter-spacing: 0;
  box-shadow:
    0 8px 16px rgba(45, 13, 30, .15),
    inset 0 1px 0 rgba(255, 255, 255, .28);
}

.actions a::after {
  background:
    linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .22) 52%, transparent 62%) -120% 0 / 44% 100% no-repeat,
    linear-gradient(180deg, rgba(255, 255, 255, .16), transparent 54%);
  transition: background-position .35s ease;
}

.actions a:hover::after {
  background-position: 160% 0, 0 0;
}

.video {
  background:
    radial-gradient(circle at 28% 0%, rgba(240, 208, 128, .24), transparent 46%),
    linear-gradient(135deg, #6b2eb7 0%, #4d1b87 52%, #34105f 100%);
  border-color: rgba(240, 208, 128, .3) !important;
}

.kaspi {
  background:
    radial-gradient(circle at 28% 0%, rgba(255, 255, 255, .24), transparent 46%),
    linear-gradient(135deg, #ff5757 0%, #e32020 52%, #b90d12 100%);
  border-color: rgba(255, 255, 255, .2) !important;
}

.bottom-nav {
  bottom: 10px;
  width: min(386px, calc(100% - 22px));
  height: 70px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 7px;
  border-radius: 26px;
  border: 1px solid rgba(240, 208, 128, .38);
  background:
    linear-gradient(90deg, transparent, rgba(240, 208, 128, .14), transparent) center 7px / 42% 1px no-repeat,
    radial-gradient(circle at 50% -18%, rgba(240, 208, 128, .2), transparent 34%),
    linear-gradient(180deg, rgba(73, 20, 43, .92), rgba(24, 7, 16, .96));
  box-shadow:
    0 -12px 30px rgba(61, 32, 17, .12),
    0 18px 34px rgba(36, 9, 21, .28),
    inset 0 1px 0 rgba(255, 255, 255, .12),
    inset 0 0 24px rgba(240, 208, 128, .08);
  backdrop-filter: blur(22px);
}

.bottom-nav::before {
  background: none;
}

.bottom-nav::after {
  inset: 6px;
  border-radius: 21px;
  border: 1px solid rgba(255, 255, 255, .07);
}

.bottom-nav a:first-child {
  display: grid !important;
}

.bottom-nav a {
  height: 56px;
  min-width: 0;
  padding: 6px 2px;
  border-radius: 20px;
  color: rgba(255, 244, 213, .56);
  background: transparent;
  box-shadow: none;
  border-left: 0;
}

.bottom-nav a.active,
.bottom-nav a:first-child {
  color: #ffe191;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 229, 151, .32), transparent 58%),
    linear-gradient(180deg, rgba(240, 208, 128, .15), rgba(240, 208, 128, .07));
  box-shadow:
    inset 0 0 0 1px rgba(240, 208, 128, .24),
    inset 0 1px 0 rgba(255, 255, 255, .1),
    0 9px 18px rgba(0, 0, 0, .17);
}

.bottom-nav a:nth-child(2) {
  color: rgba(255, 244, 213, .56);
  background: transparent;
  box-shadow: none;
}

.bottom-nav .nav-icon {
  width: 22px;
  height: 22px;
}

.bottom-nav .nav-label {
  font-size: 10.5px;
  font-weight: 850;
}

@media (max-width: 360px) {
  .hero-button {
    width: min(76vw, 260px);
    padding: 0 50px;
    font-size: 13px;
  }

  .hero-button::before {
    background-position:
      left 9px center,
      right 9px center;
    background-size:
      34px 21px,
      34px 21px;
  }

  .kaspi-store-link {
    padding: 0 56px;
  }

  .kaspi-store-link::before {
    background-size:
      42px 26px,
      42px 26px,
      68px 11px,
      68px 11px;
  }

  .bottom-nav {
    width: calc(100% - 18px);
    gap: 4px;
  }
}

/* Layout correction: keep every button locked to its own centered lane. */
.hero-button,
.kaspi-store-link {
  box-sizing: border-box;
  text-align: center;
}

.hero-button {
  justify-self: center;
  margin-left: auto;
  margin-right: auto;
}

.kaspi-store-link {
  width: 100%;
}

.kaspi-store-link > span:last-child {
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.product {
  height: 138px;
  grid-template-columns: 120px minmax(0, 1fr);
}

.content {
  display: grid;
  grid-template-rows: auto 1fr auto;
  min-height: 0;
  padding: 10px 10px 10px 11px;
}

.category-name {
  margin-bottom: 4px;
}

.content h2 {
  min-height: 0;
  margin: 0;
  font-size: 14.5px;
  line-height: 1.12;
}

.actions {
  width: 100%;
  height: 33px;
  margin: 0;
  padding: 0;
  align-self: end;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 7px;
}

.actions a {
  width: 100%;
  height: 33px;
  min-height: 33px;
  min-width: 0;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  box-sizing: border-box;
}

.actions a span {
  width: 13px;
  height: 13px;
}

.bottom-nav {
  box-sizing: border-box;
  height: 66px;
  bottom: 9px;
  align-items: center;
}

.bottom-nav a {
  width: 100%;
  height: 52px;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  box-sizing: border-box;
}

.bottom-nav .nav-icon {
  flex: 0 0 auto;
}

.bottom-nav .nav-label {
  flex: 0 0 auto;
  line-height: 1;
}

.catalog {
  padding-bottom: 122px;
}

@media (max-width: 360px) {
  .product {
    height: 136px;
    grid-template-columns: 116px minmax(0, 1fr);
  }

  .content {
    padding: 9px 9px 9px 10px;
  }

  .content h2 {
    font-size: 14px;
  }

  .actions {
    gap: 6px;
  }

  .actions a {
    height: 32px;
    min-height: 32px;
    padding: 0 6px;
    font-size: 11px;
  }
}

/* OTBASY archive fix: new admin products must always show Video/Kaspi actions and icons. */
.product {
  min-height: 150px !important;
  height: auto !important;
  grid-template-columns: 122px minmax(0, 1fr) !important;
}

.product-media,
.content {
  min-height: 150px !important;
}

.content {
  display: grid !important;
  grid-template-rows: auto minmax(42px, 1fr) 34px !important;
  overflow: visible !important;
}

.content h2 {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.actions {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  align-self: end !important;
  width: 100% !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 8px !important;
  z-index: 3;
}

.actions a {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 34px !important;
  min-height: 34px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  pointer-events: auto;
}

.actions a span {
  display: inline-block !important;
  flex: 0 0 13px !important;
  width: 13px !important;
  height: 13px !important;
  background: #fff !important;
}

.video span {
  -webkit-mask: url("/assets/icon-play.svg") center / contain no-repeat !important;
  mask: url("/assets/icon-play.svg") center / contain no-repeat !important;
}

.kaspi span {
  -webkit-mask: url("/assets/icon-cart.svg") center / contain no-repeat !important;
  mask: url("/assets/icon-cart.svg") center / contain no-repeat !important;
}

.search-icon {
  -webkit-mask: url("/assets/icon-search.svg") center / contain no-repeat !important;
  mask: url("/assets/icon-search.svg") center / contain no-repeat !important;
}

.select-arrow {
  -webkit-mask: url("/assets/icon-chevron-down.svg") center / contain no-repeat !important;
  mask: url("/assets/icon-chevron-down.svg") center / contain no-repeat !important;
}

.nav-home { --nav-icon: url("/assets/nav-home.svg") !important; }
.nav-flame { --nav-icon: url("/assets/nav-flame.svg") !important; }
.nav-sparkles { --nav-icon: url("/assets/nav-sparkles.svg") !important; }
.nav-tag { --nav-icon: url("/assets/nav-tag.svg") !important; }

.catalog {
  padding-bottom: 132px !important;
}

@media (max-width: 360px) {
  .product {
    grid-template-columns: 116px minmax(0, 1fr) !important;
    min-height: 148px !important;
  }

  .product-media,
  .content {
    min-height: 148px !important;
  }

  .actions {
    gap: 6px !important;
  }

  .actions a {
    height: 33px !important;
    min-height: 33px !important;
    font-size: 11px !important;
    padding: 0 6px !important;
  }
}

/* Mobile nav tweak: do not keep "Все" permanently highlighted. */
.bottom-nav a:first-child,
.bottom-nav a:first-child.active {
  color: rgba(255, 244, 213, .56) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bottom-nav a:first-child:hover {
  color: #fff4cf !important;
  background: rgba(255, 255, 255, .05) !important;
}

.bottom-nav a.active:not(:first-child) {
  color: #ffe191;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 229, 151, .32), transparent 58%),
    linear-gradient(180deg, rgba(240, 208, 128, .15), rgba(240, 208, 128, .07));
  box-shadow:
    inset 0 0 0 1px rgba(240, 208, 128, .24),
    inset 0 1px 0 rgba(255, 255, 255, .1),
    0 9px 18px rgba(0, 0, 0, .17);
}

/* Product photo gallery */
.product-media {
  cursor: zoom-in;
  isolation: isolate;
}

.product-media::after {
  content: attr(data-gallery-count) " фото";
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 999px;
  color: #fff7df;
  background: rgba(32, 10, 23, .62);
  box-shadow: 0 8px 18px rgba(30, 10, 22, .22), inset 0 1px 0 rgba(255, 255, 255, .18);
  backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  pointer-events: none;
}

.product-media:focus-visible {
  outline: 2px solid rgba(201, 168, 76, .72);
  outline-offset: -4px;
}

body.gallery-open {
  overflow: hidden;
}

.gallery-modal {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 18px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.gallery-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.gallery-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 16%, rgba(240, 208, 128, .16), transparent 38%),
    rgba(18, 6, 14, .82);
  backdrop-filter: blur(18px);
}

.gallery-sheet {
  position: relative;
  z-index: 1;
  width: min(100%, 430px);
  max-height: calc(100dvh - 32px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto auto;
  gap: 13px;
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgba(240, 208, 128, .24);
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255, 249, 239, .96), rgba(246, 232, 212, .94)),
    #fbf0df;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, .46),
    inset 0 1px 0 rgba(255, 255, 255, .75);
  transform: translateY(18px) scale(.97);
  transition: transform .24s ease;
}

.gallery-modal.is-open .gallery-sheet {
  transform: translateY(0) scale(1);
}

.gallery-close {
  position: absolute;
  right: 18px;
  top: 18px;
  z-index: 4;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  color: #fff6df;
  background: rgba(41, 12, 30, .72);
  box-shadow: 0 12px 28px rgba(32, 9, 22, .24), inset 0 1px 0 rgba(255, 255, 255, .2);
  backdrop-filter: blur(14px);
  font-size: 26px;
  line-height: 1;
}

.gallery-stage {
  position: relative;
  min-height: 0;
  overflow: hidden;
  border-radius: 22px;
  background:
    radial-gradient(circle at 50% 0%, rgba(240, 208, 128, .18), transparent 42%),
    linear-gradient(180deg, #2a1020, #12070f);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
}

.gallery-image {
  display: block;
  width: 100%;
  height: min(68dvh, 620px);
  min-height: 390px;
  object-fit: cover;
  object-position: center;
  user-select: none;
  -webkit-user-drag: none;
}

.gallery-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  color: #fff5d5;
  background: rgba(40, 12, 29, .64);
  box-shadow: 0 12px 26px rgba(21, 6, 16, .24), inset 0 1px 0 rgba(255, 255, 255, .18);
  backdrop-filter: blur(12px);
  font-size: 32px;
  line-height: 1;
  transform: translateY(-50%);
  transition: transform .2s ease, background .2s ease;
}

.gallery-nav:active {
  transform: translateY(-50%) scale(.94);
}

.gallery-prev {
  left: 12px;
}

.gallery-next {
  right: 12px;
}

.gallery-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: #2a1020;
}

.gallery-title {
  min-width: 0;
  overflow: hidden;
  font-size: 17px;
  font-weight: 950;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gallery-counter {
  flex: 0 0 auto;
  padding: 6px 10px;
  border: 1px solid rgba(90, 31, 69, .12);
  border-radius: 999px;
  color: rgba(60, 25, 47, .72);
  background: rgba(255, 255, 255, .58);
  font-size: 12px;
  font-weight: 900;
}

.gallery-dots {
  display: flex;
  justify-content: center;
  gap: 7px;
}

.gallery-dot {
  width: 7px;
  height: 7px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background: rgba(74, 21, 53, .24);
  transition: width .2s ease, background .2s ease;
}

.gallery-dot.is-active {
  width: 22px;
  border-radius: 999px;
  background: #5a1a2e;
}

@media (max-width: 430px) {
  .gallery-modal {
    padding: 10px;
  }

  .gallery-sheet {
    width: 100%;
    border-radius: 24px;
    padding: 10px;
  }

  .gallery-image {
    height: min(66dvh, 560px);
    min-height: 330px;
  }

  .gallery-nav {
    width: 38px;
    height: 38px;
    font-size: 29px;
  }
}
