:root {
  /* Bundle variables (set by JS via orichiApplyThemeVars from API response) */
  --bundle-card-background: #ffffff; /* setting.BundleCardBackground */
  --bundle-card-border-radius: 8px; /* setting.BundleCardBorderRadius */
  --bundle-card-border-color: #e5e7eb; /* setting.BundleCardBorderColor */
  --bundle-featured-background: #f3f4f6; /* setting.BundleFeaturedBackground */
  --bundle-featured-border-style: solid; /* setting.BundleFeaturedBorderStyle */
  --bundle-featured-border-color: #f43f5e; /* setting.BundleFeaturedBorderColor */
  --bundle-popular-badge-background: #fee2e2; /* setting.BundlePopularBadgeBackground */
  --bundle-popular-badge-color: #b91c1c; /* setting.BundlePopularBadgeColor */
  --bundle-save-badge-background: #fef3c7; /* setting.BundleSaveBadgeBackground */
  --bundle-save-badge-color: #92400e; /* setting.BundleSaveBadgeColor */
  --bundle-save-badge-border-radius: 4px; /* setting.BundleSaveBadgeBorderRadius */
}

/* Bundle item */
.bundle-item {
  display: flex;
  position: relative;
  cursor: pointer;
  justify-content: space-between;
  background: var(--bundle-card-background);
  border-radius: var(--bundle-card-border-radius);
  padding: 20.5px 26px;
  border: 1px solid var(--bundle-card-border-color);
}

.bundle-item--selected {
  display: flex;
  position: relative;
  cursor: pointer;
  justify-content: space-between;
  background: var(--bundle-featured-background);
  border-radius: var(--bundle-card-border-radius);
  padding: 20.5px 26px;
  border: 1px var(--bundle-featured-border-style) var(--bundle-featured-border-color);

  & .select-variant-list {
    display: block;
  }
}

.bundle-item-popular {
  display: flex;
  position: absolute;
  top: -12px;
  right: 26px;
  color: var(--bundle-popular-badge-color);
  overflow: hidden;
}

.bundle-item-shimmer {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -50%;
  width: 40%;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  animation: shimmer 2.2s linear infinite;
}

.bundle-item-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #2cd12a;
  position: relative;
  z-index: 1;
  animation: blink 1.2s infinite;
}

.bundle-item-left {
  display: flex;
  gap: 12px;
}

.bundle-item-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.bundle-item-badge {
  background: var(--bundle-save-badge-background);
  color: var(--bundle-save-badge-color);
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--bundle-save-badge-border-radius);
}

.bundle-item-title {
  font-size: 17px;
  color: #151c32;
  z-index: 20;
}
.bundle-item-subtitle {
  color: #64748b;
  margin-top: 3px;
  z-index: 20;
}
.bundle-item-price {
  font-size: 18px;
  color: #151c32;
  font-weight: 700;
}
.bundle-item-old-price {
  color: #94a3b8;
  text-decoration: line-through;
  margin-top: 3px;
  text-align: right;
}
.bundle-item-image {
  width: 42px;
  height: 42px;
  object-fit: cover;
  border-radius: 8px;
}

.bundle-table {
  position: relative;
  margin: 12px 0;

  .orichi-Polaris-DataTable__ScrollContainer {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
}

/* Custom Select Dropdown Styles */
.custom-select-container {
  position: relative;
  width: 80px;
}

.custom-select-trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 11px;
  background: var(--bundle-variant-dropdowns-background);
  border: 1px solid var(--bundle-variant-dropdowns-border);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  user-select: none;
}

.custom-select-trigger:hover {
  border-color: #9ca3af;
}

.custom-select-trigger:focus-within {
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}

.custom-select-value {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #374151;
}

.custom-select-arrow {
  width: 10px;
  height: 10px;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.custom-select-container.open .custom-select-arrow {
  transform: rotate(180deg);
}

.custom-select-menu {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-top: none;
  border-radius: 0 0 4px 4px;
  margin-top: -1px;
  max-height: 0;
  overflow: hidden;
  z-index: 1000;
  transition: max-height 0.2s ease;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  display: none;
}

.custom-select-menu.open {
  display: block;
  max-height: 300px;
  overflow-y: auto;
  border-radius: 8px;
}

.custom-select-menu.open .custom-select-arrow {
  transform: rotate(180deg);
}

.custom-options-wrapper {
  display: flex;
  flex-direction: column;
}

.custom-option {
  padding: 10px 12px;
  cursor: pointer;
  transition: background-color 0.15s ease;
  color: #374151;
  border-bottom: 1px solid #f3f4f6;
}

.custom-option:last-child {
  border-bottom: none;
}

.custom-option:hover {
  background-color: #f3f4f6;
}

.custom-option.selected {
  background-color: #cecece;
  font-weight: 600;
}

.bundle-variant-selector .custom-select-trigger {
  padding: 6px 10px;
}

.bundle-variant-selector .custom-option {
  padding: 8px 10px;
}

.container-select-variant {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.select-variant-list {
  padding-top: 4px;
  display: none;
}

.select-variant-item {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 10px 0;

  & > p {
    color: #94a3b8;
    font-weight: 800;
  }
}

.orichi-gift-rewards {
  margin-top: 20px;
}

.orichi-gift-rewards__header {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.orichi-gift-rewards__title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: #303030;
}

.orichi-gift-rewards__cart {
  font-size: 16px;
  font-weight: 600;
  color: #6b7280;
  white-space: nowrap;
}

.orichi-gift-rewards__subtitle {
  font-size: 12px;
  color: #616161;
  margin: 0 0 10px;
}

.orichi-gift-rewards__info {
  font-size: 12px;
  color: #616161;
  margin: 0 0 10px;
}

.orichi-gift-rewards__progress {
  margin-bottom: 18px;
  z-index: 1;
}

.orichi-gift-rewards__line {
  position: relative;
  height: 4px;
  background: #e5e7eb;
  border-radius: 999px;
  margin: 18px 30px 0;
}

.orichi-gift-rewards__line-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  background: #3d8b73;
  border-radius: 999px;
  display: block !important;
}

.orichi-gift-rewards__points {
  margin-top: -22px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  z-index: 10;
}

.orichi-gift-rewards__point {
  width: 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}

.orichi-gift-rewards__point-icon {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f1f1;
  border: 1px solid #f1f1f1;
  color: #8a8a8a;
}
.orichi-gift-rewards__point-icon div {
  position: relative;
  display: flex;
  height: 20px;
  width: 28px;
  align-items: center;
  justify-content: center;
}
.orichi-gift-rewards__point-icon svg {
  width: 16px;
  height: 16px;
}

.orichi-gift-rewards__point.is-active .orichi-gift-rewards__point-icon {
  background: #008060;
  color: #fff;
  border-color: #008060;
}

.orichi-gift-rewards__point-label {
  color: #616161;
  font-size: 12px;
}

.orichi-gift-rewards__point-check {
  display: inline-block;
  margin-left: 4px;
}

.orichi-gift-rewards__point.is-active .orichi-gift-rewards__point-label {
  color: #008060;
}

.orichi-gift-rewards__note {
  color: #7b8490;
  font-size: 15px;
  margin-bottom: 18px;
}

.orichi-gift-rewards__cards {
  display: grid;
  gap: 14px;
}

.orichi-gift-rewards__cards--classic {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.orichi-gift-rewards__cards--modern {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.orichi-gift-card {
  min-width: 0;
  box-sizing: border-box;
  position: relative;
}

.orichi-gift-card--classic {
  border: 1px solid #008060;
  border-radius: 8px;
  background: #fff;
  padding: 8px;
}

.orichi-gift-card--classic.orichi-gift-card--locked {
  background: #fafbfc;
}

.orichi-gift-card--classic.orichi-gift-card--classic-dimmed {
  opacity: 0.55;
}

.orichi-gift-card.orichi-gift-card--selected {
  border-color: #008060;
  box-shadow: 0 0 0 2px #008060 inset;
}

.orichi-gift-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  width: fit-content;
}

.orichi-gift-card__badge--green {
  background: #3d8b73;
  color: #fff;
}

.orichi-gift-card__badge--gray {
  background: #e5e7eb;
  color: #6b7280;
}

.orichi-gift-card__badge--locked {
  background: #f8d7d8;
  color: #ba5b58;
}

.orichi-gift-card__badge--dark {
  background: #2f3136;
  color: #fff;
}

.orichi-gift-card__title {
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #303030;
}

.orichi-gift-card__body {
  display: flex;
  align-items: center;
  gap: 12px;
}

.orichi-gift-card__content {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.orichi-gift-card__header {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.orichi-gift-card__choice {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.orichi-gift-card__choice-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.orichi-gift-card__choice-box {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  border: 1px solid #9ca3af;
  background: #fff;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.orichi-gift-card__choice-input:checked + .orichi-gift-card__choice-box {
  background: #4b5563;
  border-color: #4b5563;
}

.orichi-gift-card__choice-input:checked + .orichi-gift-card__choice-box::after {
  content: "✓";
  color: #fff;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
}

.orichi-gift-card__choice-input:disabled + .orichi-gift-card__choice-box {
  opacity: 0.5;
}

.orichi-gift-card__thumb {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: #f3f4f6;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

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

.orichi-gift-card__thumb--locked {
  position: relative;
}

.orichi-gift-card__thumb--locked img {
  filter: blur(2.5px);
  opacity: 0.4;
}

.orichi-gift-card__thumb-lock {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.16);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
}

.orichi-gift-card__thumb--placeholder {
  background: #e5e7eb;
}

.orichi-gift-card__control {
  width: 100%;
  min-width: 0;
}

.orichi-gift-card__select {
  width: 100%;
  height: 32px;
  border: 1px solid #a7aeb8;
  border-radius: 8px;
  background: #fff;
  padding: 0 10px;
  font-size: 12px;
  color: #303030;
}

.orichi-gift-card__select:disabled {
  background: #fff;
  border-color: #d7dbe2;
  color: #b7bcc5;
  opacity: 1;
  cursor: not-allowed;
}

.orichi-gift-card--modern {
  border: 1px solid #d5dde8;
  border-radius: 22px;
  background: #fff;
  padding: 12px;
}

.orichi-gift-card--classic .orichi-gift-card__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  white-space: normal;
  line-height: 1.35;
  flex: 1;
  min-height: calc(1.35em * 2);
}

.orichi-gift-card--classic.orichi-gift-card--locked .orichi-gift-card__title {
  color: #c6c8cd;
}

.orichi-gift-card--modern .orichi-gift-card__title {
  text-align: center;
  margin-bottom: 12px;
}

.orichi-gift-card__visual {
  position: relative;
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.orichi-gift-card--modern .orichi-gift-card__badge {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.orichi-gift-card__visual-image {
  max-width: 100%;
  max-height: 132px;
  display: block;
}

.orichi-gift-card__visual-image.is-blurred {
  opacity: 0.72;
}

.orichi-gift-card__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.orichi-gift-card__overlay-icon {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12);
}

.orichi-gift-card__overlay-text {
  color: #6b7280;
  font-size: 14px;
  text-align: center;
}

.orichi-gift-card__pill {
  position: absolute;
  left: 50%;
  bottom: 50%;
  transform: translate(-50%, 50%);
  border: 1px solid #b6d3ff;
  background: #eaf2ff;
  color: #1f5199;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 999px;
  padding: 8px 14px;
  text-align: center;
  min-width: 120px;
  line-height: 1.2;
}

.orichi-gift-card--modern .orichi-gift-card__select:disabled {
  opacity: 0.55;
  pointer-events: none;
}

.orichi-gift-card__effective {
  display: none;
}

.orichi-gift-card[data-effective="true"] .orichi-gift-card__effective {
  display: inline-block;
}

@media (max-width: 720px) {
  .orichi-gift-rewards__title {
    font-size: 22px;
  }

  .orichi-gift-rewards__cart,
  .orichi-gift-rewards__subtitle {
    font-size: 16px;
  }

  .orichi-gift-rewards__cards--classic,
  .orichi-gift-rewards__cards--modern {
    grid-template-columns: 1fr;
  }
}
@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@600&display=swap");
/* ── LIVE DOT ── */
@keyframes live-blink {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.15;
  }
}
@keyframes live-ring {
  0% {
    r: 5;
    opacity: 0.5;
  }
  100% {
    r: 11;
    opacity: 0;
  }
}
.orichi-live-dot {
  animation: live-blink 1.2s ease-in-out infinite;
}
.orichi-live-ring {
  animation: live-ring 1.5s ease-out infinite;
}

/* ── SHIMMER ── */
@keyframes shimmer-move {
  0% {
    x: -65px;
  }
  100% {
    x: 145px;
  }
}
.orichi-shimmer-sweep {
  animation: shimmer-move 2s linear infinite;
}

/* ── FIRE ── */
@keyframes f1 {
  0%,
  100% {
    d: path(
      "M16 28 C10 23 8 17 12 11 C13.5 15 15 14 14.5 10 C17 14 20 11 18.5 7 C22 11 24 16 21 21.5 C19.5 24.5 18 27 16 28Z"
    );
  }
  50% {
    d: path(
      "M16 28 C9 22 8 16 13 10 C14 14.5 16 13 15 9 C18 13 21 10 19 6 C23 10.5 24.5 16 21 22 C19.5 25 18 27 16 28Z"
    );
  }
}
@keyframes f2 {
  0%,
  100% {
    d: path(
      "M16 27 C12 23 11 19 13.5 15 C14.5 18 16 17 15.5 14 C17.5 17 18 15 17 12.5 C20 15.5 20.5 19.5 18.5 23 C17.5 25 17 26.5 16 27Z"
    );
  }
  50% {
    d: path(
      "M16 27 C11 22 10.5 18 13 14 C14.5 17.5 16.5 16 15.5 13 C18 16.5 18.5 14.5 17 11.5 C20.5 15 21 19 18.5 23 C17.5 25.5 17 26.5 16 27Z"
    );
  }
}
@keyframes f3 {
  0%,
  100% {
    d: path(
      "M16 26 C14 23.5 13.5 21 15 18.5 C15.5 20.5 16.5 20 16 18 C17.5 20 17.5 18.5 16.5 16.5 C18.5 18.5 19 21 17.5 23.5 C17 25 16.5 25.5 16 26Z"
    );
  }
  50% {
    d: path(
      "M16 26 C13.5 23 13 20.5 15 17.5 C15.5 20 16.5 19 16 17 C17.5 19.5 17.5 18 16.5 15.5 C19 18 19.5 21 17.5 23.5 C17 25 16.5 25.5 16 26Z"
    );
  }
}
@keyframes glow-breathe {
  0%,
  100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.72;
  }
}
@keyframes glow-flicker {
  0%,
  100% {
    filter: brightness(1.15);
  }

  50% {
    filter: brightness(1.08);
  }
}
.orichi-f1 {
  animation: f1 0.45s ease-in-out infinite;
}
.orichi-f2 {
  animation: f2 0.38s ease-in-out infinite;
}
.orichi-f3 {
  animation: f3 0.3s ease-in-out infinite;
}
.orichi-glow {
  animation: glow-breathe 0.5s ease-in-out infinite;
}
.orichi-fire-badge {
  animation: glow-flicker 0.9s ease-in-out infinite;
}
.giftBoxLid {
  z-index: 21 !important;
}
.selector-display-none {
  display: none;
}
