/* Shared visual language from the product details framework. */
:root {
  --brand-paper: #fbf8f3;
  --brand-tint: #f0eae9;
  --brand-ink: #332b35;
  --brand-purple: #4b315c;
  --brand-muted: #726774;
  --brand-line: #d8cdd5;
  --brand-radius-sm: 6px;
  --brand-radius-md: 8px;
  --brand-radius-lg: 12px;
  --brand-radius-pill: 999px;
  --media-radius: 12px;
  --buttons-radius: 6px;
  --buttons-radius-outset: 6px;
  --inputs-radius: 6px;
  --inputs-radius-outset: 6px;
  --badge-corner-radius: 999px;
  --brand-body: "Helvetica Neue", Helvetica, sans-serif;
  --brand-heading: Georgia, "Times New Roman", serif;
  --font-body-family: var(--brand-body);
  --font-heading-family: var(--brand-heading);
}
body { font-family: var(--brand-body); background: var(--brand-paper); color: var(--brand-ink); letter-spacing: 0; }
body, main, .product, .product__info-container, .footer, sticky-atc {
  --color-background: 251, 248, 243;
  --gradient-background: #fbf8f3;
  --color-foreground: 51, 43, 53;
  --color-button: 75, 49, 92;
  --color-button-text: 251, 248, 243;
  --color-base-accent-1: 75, 49, 92;
  --color-base-accent-2: 75, 49, 92;
}
.elorisse-header { display: flex; justify-content: center; align-items: center; height: 80px; background: var(--brand-paper); border-bottom: 1px solid var(--brand-line); }
.elorisse-header img { display: block; width: 160px; height: 45px; object-fit: contain; }
.product__title h1, .product__title h2 {
  font-family: var(--brand-heading); font-weight: 400; font-size: clamp(30px, 3vw, 44px); line-height: 1.12; letter-spacing: -1.5px; color: var(--brand-ink);
}
.product__info-container { font-family: var(--brand-body); }
.product__info-container .product__title { margin-bottom: 24px; }
.product__media-wrapper .product-media-container { border-radius: var(--brand-radius-lg); border: 1px solid var(--brand-line); overflow: hidden; box-shadow: none; }
.product__media-wrapper .global-media-settings, .product__media-wrapper .media { border-radius: var(--brand-radius-lg); }
.thumbnail.global-media-settings { border-radius: var(--brand-radius-sm); border: 1px solid var(--brand-line); box-shadow: none !important; overflow: hidden; transition: border-color .2s ease; }
.thumbnail.global-media-settings img { border-radius: calc(var(--brand-radius-sm) - 1px); }
.thumbnail[aria-current="true"] { border: 1.5px solid var(--brand-purple); box-shadow: none !important; }
.avatar-orders-bar { background: var(--brand-tint) !important; color: var(--brand-ink); border: 1px solid var(--brand-line); border-radius: var(--brand-radius-md); box-shadow: none; overflow: hidden; }
.avatar-orders-bar__content { background: var(--brand-tint) !important; border-left: 1px solid var(--brand-line) !important; }
.avatar-orders-bar__avatars::before { background: linear-gradient(to right, var(--brand-tint) 15%, transparent) !important; }
.avatar-orders-bar__avatars::after { background: linear-gradient(to left, var(--brand-tint) 15%, transparent) !important; }
.avatar-marquee__group img { border: 1.5px solid var(--brand-paper) !important; box-shadow: 0 0 0 1px var(--brand-line) !important; }
.avatar-orders-bar__text { font-family: var(--brand-body); }
.tp-rating-bar { border: 1px solid var(--brand-line) !important; border-radius: var(--brand-radius-md) !important; box-shadow: none !important; background: transparent !important; }
.tp-rating-score { border-right: 1px solid var(--brand-line) !important; }
.tp-star-box { border-radius: 3px !important; }
.halloween-bogo-banner {
  background: var(--brand-purple) !important; color: var(--brand-paper) !important; border: 1px solid var(--brand-purple) !important; border-radius: var(--brand-radius-md) !important; box-shadow: none !important; padding: 14px 18px !important;
}
.halloween-bogo-copy {
  display: flex; flex-direction: column; gap: 4px; min-width: 0;
}
.halloween-bogo-kicker {
  display: inline-flex; align-items: center; gap: 6px; font-family: var(--brand-body); font-size: 10px; font-weight: 500; letter-spacing: 1.1px; text-transform: uppercase; color: var(--brand-paper); opacity: .82; line-height: 1.2;
}
.halloween-bogo-dot {
  width: 6px; height: 6px; border-radius: 50%; background: #e6b89c; box-shadow: 0 0 0 3px rgba(230, 184, 156, 0.22); flex-shrink: 0;
}
.halloween-bogo-title { font-family: var(--brand-body); font-weight: 400 !important; font-size: 15px !important; letter-spacing: .2px; line-height: 1.25 !important; }
.halloween-bogo-label { color: var(--brand-paper) !important; opacity: .75; font-size: 10px; letter-spacing: 1.2px; }
.halloween-bogo-timer { background: var(--brand-paper) !important; color: var(--brand-purple) !important; box-shadow: none !important; border-radius: var(--brand-radius-sm) !important; border: 1px solid var(--brand-line) !important; font-family: var(--brand-body); font-variant-numeric: tabular-nums; font-size: 20px !important; }
.product-page-price { padding: 12px 0; }
.price, .price-item { font-family: var(--brand-body); letter-spacing: 0; }
.price .price-item--sale, .price .main-price { color: var(--brand-purple) !important; }
.price__compare-price { color: var(--brand-muted); }
.price__badge-sale { background: var(--brand-tint) !important; color: var(--brand-purple) !important; border: 1px solid var(--brand-line); border-radius: var(--brand-radius-pill); font-size: 10px; letter-spacing: .6px; }
.price__badge-sold-out { border-radius: var(--brand-radius-pill); }
.kaching-bundles__block-title { font: 11px var(--brand-body) !important; letter-spacing: 1.7px !important; color: var(--brand-muted) !important; }
.kaching-bundles__block-title::before, .kaching-bundles__block-title::after { height: 1px !important; background-color: var(--brand-line) !important; }
.kaching-bundles__bar-container { border: 1px solid var(--brand-line) !important; border-radius: var(--brand-radius-md) !important; background: transparent !important; box-shadow: none !important; transition: border-color .2s ease, background-color .2s ease; }
.kaching-bundles__bar-container:hover { border-color: var(--brand-purple) !important; box-shadow: none !important; }
.kaching-bundles__bar--selected .kaching-bundles__bar-container { border: 1.5px solid var(--brand-purple) !important; background: var(--brand-tint) !important; box-shadow: none !important; }
.kaching-bundles__bar-main { padding: 20px 16px !important; }
.kaching-bundles__bar-title { font-family: var(--brand-body) !important; font-size: 16px !important; font-weight: 400 !important; color: var(--brand-ink) !important; }
.kaching-bundles__bar-label { border-radius: var(--brand-radius-pill) !important; border: 1px solid var(--brand-line) !important; background: var(--brand-paper) !important; color: var(--brand-purple) !important; font-size: 10px !important; padding: 3px 10px !important; }
.kaching-bundles__bar-subtitle, .kaching-bundles__bar-full-price { color: var(--brand-muted) !important; font-size: 12px !important; }
.kaching-bundles__bar-price { font-family: var(--brand-body) !important; font-size: 18px !important; color: var(--brand-purple) !important; }
.kaching-bundles__bar-radio { width: 18px !important; height: 18px !important; border-radius: 50% !important; border: 1.5px solid var(--brand-line) !important; box-shadow: none !important; background: var(--brand-paper) !important; }
.kaching-bundles__bar--selected .kaching-bundles__bar-radio { border: 1.5px solid var(--brand-purple) !important; background: var(--brand-purple) !important; box-shadow: inset 0 0 0 3.5px var(--brand-paper) !important; }
.kaching-bundles__bar--selected .kaching-bundles__bar-radio::after { background: var(--brand-purple) !important; }
.kaching-bundles__bar-badge { filter: saturate(.3); }
.button, button, input, select { font-family: var(--brand-body); }
.button { border-radius: var(--brand-radius-sm); font-weight: 400; letter-spacing: .6px; box-shadow: none; }
.button::before, .button::after { border-radius: var(--brand-radius-sm); box-shadow: none !important; display: none; }
.button:disabled { background: var(--brand-purple); color: var(--brand-paper); opacity: .55; }
.quantity { border-radius: var(--brand-radius-sm); border: 1px solid var(--brand-line); }
.quantity::before, .quantity::after { display: none !important; }
:is(button, a, input, select, summary):focus-visible { outline: 2px solid #94769f; outline-offset: 3px; border-radius: var(--brand-radius-sm); }
sticky-atc.sticky-atc { background: var(--brand-paper) !important; color: var(--brand-ink) !important; border-top: 1px solid var(--brand-line); box-shadow: none; }
.sticky-atc__image img { border-radius: var(--brand-radius-sm); border: 1px solid var(--brand-line); }
.sticky-atc__title { font: 400 20px/1.2 var(--brand-heading); letter-spacing: -.5px; color: var(--brand-ink); }
.sticky-atc .select { background: transparent; border: 1px solid var(--brand-line); border-radius: var(--brand-radius-sm); }
.sticky-atc .select::before, .sticky-atc .select::after { display: none !important; }
.sticky-atc .select__select { background: transparent; color: var(--brand-ink); font-size: 12px; border-radius: var(--brand-radius-sm); }
.sticky-atc__button { border-radius: var(--brand-radius-sm); }
.footer { background: var(--brand-tint) !important; color: var(--brand-ink) !important; border-top: 1px solid var(--brand-line); }
.footer-block__heading { font: 400 30px/1.2 var(--brand-heading); letter-spacing: -1px; }
.footer-block__details-content, .footer .link { font: 14px/1.8 var(--brand-body); color: var(--brand-muted); }
.footer__content-bottom { border-color: var(--brand-line); }
.footer__copyright { color: var(--brand-muted); }
.scroll-to-top-btn { background: var(--brand-purple) !important; color: var(--brand-paper) !important; border-radius: var(--brand-radius-sm); border: 1px solid var(--brand-line); box-shadow: none; }
.preview-image-dialog { border: 1px solid var(--brand-line) !important; border-radius: var(--brand-radius-lg) !important; }
.sticky-atc-footer-spacer { background: var(--brand-paper) !important; }
@media (max-width: 600px) {
  .elorisse-header { height: 68px; }
  .elorisse-header img { width: 144px; height: 40px; }
  .product__title h1, .product__title h2 { font-size: 32px; }
  .halloween-bogo-banner { padding: 12px 12px !important; }
  .halloween-bogo-kicker { font-size: 9px; letter-spacing: .8px; gap: 5px; }
  .halloween-bogo-title { font-size: 12px !important; }
  .halloween-bogo-timer { font-size: 18px !important; }
  .kaching-bundles__bar-main { padding: 17px 12px !important; }
  .sticky-atc__title { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
.kaching-bundles__bar-most-popular--fancy { width: auto !important; height: auto !important; transform: none !important; background: var(--brand-purple) !important; color: var(--brand-paper) !important; padding: 4px 12px; top: -11px !important; right: 14px !important; border-radius: var(--brand-radius-pill) !important; border: 1px solid var(--brand-purple) !important; }
.brand-popular-label { font: 10px/1.4 var(--brand-body); letter-spacing: 1px; text-transform: uppercase; }
.kaching-bundles__bar-price, .price-item, .halloween-bogo-timer { font-weight: 400 !important; }

/* Express payment presentation. Actual checkout requires merchant integration. */
.express-payments { display: flex; flex-direction: column; gap: 10px; margin: 12px 0 24px; }
.express-payment { display: flex; justify-content: center; align-items: center; gap: 6px; width: 100%; min-height: 48px; padding: 10px 16px; border: 1px solid var(--brand-line); border-radius: var(--brand-radius-sm); opacity: 1; }
.express-payment__icon { display: block; width: auto; flex-shrink: 0; }
.express-payment__icon--paypal { height: 20px; }
.express-payment__icon--apple { width: 64px; height: auto; max-height: 48px; }
.express-payment__icon--google { height: 21px; }
.express-payment--paypal { background: #ffc439; border-color: #f2ba36; }
.express-payment--apple { background: #000; border-color: #000; color: #fff; padding-block: 0; }
.express-payment--google { background: #000; border-color: #000; color: #fff; }
@media (max-width: 749px) {
  .product__media-wrapper .product-media-container { border-top: 0; border-left: 0; border-right: 0; border-radius: 0 0 var(--brand-radius-lg) var(--brand-radius-lg); }
  .product__media-wrapper .global-media-settings, .product__media-wrapper .media { border-radius: 0 0 var(--brand-radius-lg) var(--brand-radius-lg); }
  .sticky-atc .sticky-atc-container { display: grid !important; grid-template-columns: minmax(0, 1fr) 116px; align-items: center; gap: 16px; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); }
  .sticky-atc .sticky-atc__image, .sticky-atc .sticky-atc__title,
  .sticky-atc .price__compare-price, .sticky-atc .price__badge-sale { display: none !important; }
  .sticky-atc .sticky-atc__left { display: flex !important; flex-direction: column; align-items: stretch; gap: 6px; min-width: 0; width: auto; padding: 0; }
  .sticky-atc .sticky-atc__left__content { min-width: 0; margin: 0; }
  .sticky-atc .sticky-atc__price { margin: 0; }
  .sticky-atc .price { font-size: 20px; line-height: 1.2; }
  .sticky-atc .price__container { margin: 0; }
  .sticky-atc .sticky-atc__picker--combined { display: block !important; width: 100%; margin: 0; }
  .sticky-atc .product-form__input { margin: 0; min-width: 0; }
  .sticky-atc .select { border: 1px solid var(--brand-line); border-radius: var(--brand-radius-sm); min-height: 28px; }
  .sticky-atc .select__select { height: 28px; min-height: 28px; padding: 0 22px 0 8px; font-size: 11px; letter-spacing: 0; overflow: hidden; text-overflow: ellipsis; }
  .sticky-atc .select .icon-caret { right: 6px; }
  .sticky-atc .sticky-atc__button { width: auto; margin: 0; }
  .sticky-atc .sticky-atc__button .button { width: 100%; min-width: 0; min-height: 48px; padding: 12px; font-size: 14px; white-space: nowrap; }
  .scroll-to-top-btn { bottom: calc(var(--purchase-bar-height, 90px) + 12px) !important; }
}

@media (max-width: 749px) {
  .sticky-atc .sticky-atc__button .button { white-space: nowrap; font-size: 14px; line-height: 1.4; letter-spacing: .3px; padding: 12px; }
}

/* Explicit purchase colors override legacy desktop and mobile button rules. */
.main-product-atc.button,
.main-product-atc.button:is(:hover, :focus-visible, :active, :disabled) {
  background: var(--brand-purple) !important;
  color: var(--brand-paper) !important;
  border-color: var(--brand-purple) !important;
}
.main-product-atc .main-atc__label,
.main-product-atc .sticky-atc__label { color: inherit !important; }
#bundle-save { scroll-margin-top: calc(var(--header-height, 100px) + 24px); }
.sticky-atc__bundle-text { color: var(--brand-ink); font-size: 12px; line-height: 1.4; }
/* Keep bundle decorations inside the product stacking context. */
.kaching-bundles__bars { isolation: isolate; }
sticky-atc.sticky-atc { z-index: 30 !important; }
.express-payment__icon { max-width: 100%; object-fit: contain; }
@media (max-width: 749px) {
  .sticky-atc__bundle-text { font-size: 11px; }
}

.halloween-bogo-timer.is-expired { white-space: nowrap; font-size: 14px !important; letter-spacing: 0; }
