/* CRPRT 2026 bundle card hotfix: ensure the stylesheet is active and the modal scrolls reliably. */
.product-detail-dialog.is-bundle-product {
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr) !important;
  grid-template-rows: minmax(0, 1fr) !important;
  align-items: stretch !important;
  width: min(1120px, calc(100vw - 40px)) !important;
  height: min(780px, calc(100dvh - 32px)) !important;
  min-height: 0 !important;
  max-height: calc(100dvh - 32px) !important;
  overflow: hidden !important;
}
.product-detail-dialog.is-bundle-product,
.product-detail-dialog.is-bundle-product * { box-sizing: border-box; }
.product-detail-dialog.is-bundle-product .detail-media-column {
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
}
.product-detail-dialog.is-bundle-product .detail-info-column {
  display: block !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  max-height: 100% !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.38) rgba(255,255,255,.04);
  padding-bottom: 22px !important;
}
.product-detail-dialog.is-bundle-product .detail-info-column::-webkit-scrollbar { width: 8px; }
.product-detail-dialog.is-bundle-product .detail-info-column::-webkit-scrollbar-track { background: rgba(255,255,255,.035); }
.product-detail-dialog.is-bundle-product .detail-info-column::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border: 2px solid #0b0b0b; border-radius: 8px; }
.product-detail-dialog.is-bundle-product .bundle-picker { width: 100%; min-width: 0; }
.product-detail-dialog.is-bundle-product .bundle-component { min-width: 0; }
.product-detail-dialog.is-bundle-product .bundle-picker-footer {
  position: sticky !important;
  bottom: -1px !important;
  z-index: 10 !important;
  margin-top: 14px !important;
  padding: 16px 0 max(12px, env(safe-area-inset-bottom)) !important;
  background: linear-gradient(to bottom, rgba(11,11,11,.92), #0b0b0b 24%) !important;
}
.product-detail-dialog.is-bundle-product .bundle-add-button { flex: 0 0 auto; cursor: pointer; }
.product-detail-dialog.is-bundle-product .bundle-component-heading { grid-template-columns: auto minmax(0,1fr) auto; }
.product-detail-dialog.is-bundle-product .bundle-component-title { min-width: 0; overflow-wrap: anywhere; }
.product-detail-dialog.is-bundle-product .bundle-component-footer { align-items: center; }
.product-detail-dialog.is-bundle-product .bundle-guide-button { flex: 0 0 auto; cursor: pointer; }
.product-detail-dialog.is-bundle-product .detail-info-column,
.product-detail-dialog.is-bundle-product .detail-info-column p,
.product-detail-dialog.is-bundle-product .detail-info-column h1,
.product-detail-dialog.is-bundle-product .detail-info-column h2,
.product-detail-dialog.is-bundle-product .detail-info-column h3,
.product-detail-dialog.is-bundle-product .detail-info-column button,
.product-detail-dialog.is-bundle-product .detail-info-column a { cursor: none; }
@media (max-width: 900px) and (min-width: 761px) {
  .product-detail-dialog.is-bundle-product {
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) !important;
    width: calc(100vw - 28px) !important;
  }
  .product-detail-dialog.is-bundle-product .detail-info-column { padding: 42px 18px 20px !important; }
}
@media (max-width: 760px) {
  .product-detail-dialog.is-bundle-product {
    display: flex !important;
    flex-direction: column !important;
    width: min(560px, calc(100vw - 16px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 16px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
  }
  .product-detail-dialog.is-bundle-product .detail-media-column {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: min(70vw, 310px) !important;
    min-height: 210px !important;
    max-height: 310px !important;
    padding: 42px 16px 8px !important;
  }
  .product-detail-dialog.is-bundle-product .detail-info-column {
    flex: 0 0 auto !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 22px 16px max(18px, env(safe-area-inset-bottom)) !important;
  }
  .product-detail-dialog.is-bundle-product .bundle-picker-footer { position: sticky !important; }
}
@media (max-width: 420px) {
  .product-detail-dialog.is-bundle-product .bundle-component-heading { grid-template-columns: auto minmax(0,1fr); }
  .product-detail-dialog.is-bundle-product .bundle-fixed-tag { grid-column: 2; justify-self: start; }
  .product-detail-dialog.is-bundle-product .bundle-component-footer { align-items: flex-start; flex-direction: column; }
  .product-detail-dialog.is-bundle-product .bundle-picker-footer { align-items: stretch; flex-direction: column; }
  .product-detail-dialog.is-bundle-product .bundle-picker-total { flex-direction: row; justify-content: space-between; align-items: baseline; }
  .product-detail-dialog.is-bundle-product .bundle-add-button { width: 100%; }
}

/* ALOV bundle card polish — clearer hierarchy, spacing and action area. */
.product-detail-dialog.is-bundle-product .detail-info-column {
  background: #f3f2ed !important;
  color: #171715 !important;
  padding: 34px 30px 24px !important;
  scrollbar-color: rgba(20,20,18,.30) rgba(20,20,18,.05) !important;
}
.product-detail-dialog.is-bundle-product .detail-info-column::-webkit-scrollbar-track { background: rgba(20,20,18,.05) !important; }
.product-detail-dialog.is-bundle-product .detail-info-column::-webkit-scrollbar-thumb { background: rgba(20,20,18,.28) !important; border-color: #f3f2ed !important; }
.product-detail-dialog.is-bundle-product .detail-category,
.product-detail-dialog.is-bundle-product .bundle-intro-kicker,
.product-detail-dialog.is-bundle-product .bundle-component-eyebrow,
.product-detail-dialog.is-bundle-product .bundle-fixed-tag { display: none !important; }
.product-detail-dialog.is-bundle-product .detail-title { color: #171715 !important; margin: 0 0 8px !important; line-height: 1.05 !important; }
.product-detail-dialog.is-bundle-product .detail-price { color: #171715 !important; margin: 8px 0 14px !important; font-size: clamp(24px, 2.2vw, 30px) !important; line-height: 1.1 !important; }
.product-detail-dialog.is-bundle-product .detail-description { color: #5d5c56 !important; line-height: 1.6 !important; }
.product-detail-dialog.is-bundle-product .detail-description-extra { color: #77766f !important; }
.product-detail-dialog.is-bundle-product .bundle-picker { gap: 14px !important; margin-top: 18px !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-intro { padding-bottom: 13px !important; border-color: rgba(20,20,18,.13) !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-intro p { color: #171715 !important; font-size: clamp(18px, 1.7vw, 22px) !important; line-height: 1.2 !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-intro small { color: #66655f !important; font-size: 12px !important; line-height: 1.5 !important; }
.product-detail-dialog.is-bundle-product .bundle-component { padding: 15px !important; border-color: rgba(20,20,18,.13) !important; border-radius: 12px !important; background: #fff !important; }
.product-detail-dialog.is-bundle-product .bundle-component-heading { display: block !important; margin-bottom: 10px !important; }
.product-detail-dialog.is-bundle-product .bundle-component-title { color: #171715 !important; font-size: 14px !important; line-height: 1.35 !important; }
.product-detail-dialog.is-bundle-product .bundle-component-product { gap: 12px !important; margin-bottom: 14px !important; }
.product-detail-dialog.is-bundle-product .bundle-component-thumb { flex-basis: 64px !important; width: 64px !important; height: 64px !important; background: #eeede8 !important; }
.product-detail-dialog.is-bundle-product .bundle-component-product-name { color: #22221f !important; font-size: 13px !important; }
.product-detail-dialog.is-bundle-product .bundle-component-product-meta { color: #77766f !important; }
.product-detail-dialog.is-bundle-product .bundle-size-label { color: #5f5e58 !important; }
.product-detail-dialog.is-bundle-product .bundle-size-selected-label { color: #252520 !important; }
.product-detail-dialog.is-bundle-product .bundle-size-option { border-color: #d2d1ca !important; color: #252520 !important; background: transparent !important; }
.product-detail-dialog.is-bundle-product .bundle-size-option:hover,
.product-detail-dialog.is-bundle-product .bundle-size-option:focus-visible { border-color: #171715 !important; }
.product-detail-dialog.is-bundle-product .bundle-size-option.is-selected { background: #171715 !important; border-color: #171715 !important; color: #fff !important; }
.product-detail-dialog.is-bundle-product .bundle-selection-hint { color: #77766f !important; }
.product-detail-dialog.is-bundle-product .bundle-guide-button { color: #33332f !important; border-color: rgba(20,20,18,.35) !important; }
.product-detail-dialog.is-bundle-product .bundle-guide-button:hover,
.product-detail-dialog.is-bundle-product .bundle-guide-button:focus-visible { color: #000 !important; border-color: #000 !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-error { color: #a32d25 !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-footer {
  display: grid !important;
  grid-template-columns: minmax(0, .75fr) minmax(190px, 1.25fr) !important;
  align-items: center !important;
  gap: 14px !important;
  margin-top: 2px !important;
  padding: 16px 0 4px !important;
  border-top: 1px solid rgba(20,20,18,.15) !important;
  background: #f3f2ed !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-total { min-width: 0 !important; gap: 5px !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-total span { color: #77766f !important; font-size: 9px !important; letter-spacing: .12em !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-total strong { color: #171715 !important; font-size: clamp(23px, 2vw, 29px) !important; line-height: 1.1 !important; white-space: nowrap !important; }
.product-detail-dialog.is-bundle-product .bundle-add-button {
  display: flex !important; width: 100% !important; min-width: 0 !important; min-height: 52px !important;
  align-items: center !important; justify-content: space-between !important; gap: 10px !important;
  padding: 0 16px !important; border: 1px solid #171715 !important; border-radius: 7px !important;
  background: #171715 !important; color: #fff !important; white-space: normal !important;
  line-height: 1.25 !important; text-align: left !important; overflow-wrap: anywhere !important;
}
.product-detail-dialog.is-bundle-product .bundle-add-button:hover,
.product-detail-dialog.is-bundle-product .bundle-add-button:focus-visible { background: #34342f !important; border-color: #34342f !important; color: #fff !important; }
.product-detail-dialog.is-bundle-product .bundle-add-button span:first-child { min-width: 0 !important; }
.product-detail-dialog.is-bundle-product .bundle-add-button span:last-child { flex: 0 0 auto !important; }
.product-detail-dialog.is-bundle-product .detail-info-column,
.product-detail-dialog.is-bundle-product .detail-info-column p,
.product-detail-dialog.is-bundle-product .detail-info-column h1,
.product-detail-dialog.is-bundle-product .detail-info-column h2,
.product-detail-dialog.is-bundle-product .detail-info-column h3,
.product-detail-dialog.is-bundle-product .detail-info-column button,
.product-detail-dialog.is-bundle-product .detail-info-column a { cursor: none !important; }
.product-card.is-bundle-card .bundle-card-badge { display: none !important; }
@media (max-width: 760px) {
  .product-detail-dialog.is-bundle-product .detail-media-column {
    height: min(100vw, 430px) !important; min-height: 300px !important; max-height: 430px !important;
    padding: 42px 12px 8px !important;
  }
  .product-detail-dialog.is-bundle-product .detail-image-stage { width: 100% !important; min-height: 0 !important; }
  .product-detail-dialog.is-bundle-product .detail-image { width: 100% !important; height: 100% !important; max-width: 100% !important; object-fit: contain !important; }
  .product-detail-dialog.is-bundle-product .detail-info-column { padding: 24px 18px max(22px, env(safe-area-inset-bottom)) !important; }
  .product-detail-dialog.is-bundle-product .bundle-picker-footer { grid-template-columns: minmax(0,1fr) !important; gap: 12px !important; }
  .product-detail-dialog.is-bundle-product .bundle-picker-total { flex-direction: row !important; justify-content: space-between !important; align-items: baseline !important; }
  .product-detail-dialog.is-bundle-product .bundle-add-button { min-height: 54px !important; }
}
@media (max-width: 420px) {
  .product-detail-dialog.is-bundle-product .detail-media-column { height: 94vw !important; min-height: 285px !important; }
  .product-detail-dialog.is-bundle-product .detail-info-column { padding-inline: 15px !important; }
  .product-detail-dialog.is-bundle-product .bundle-component { padding: 13px !important; }
}


/* ALOV bundle polish v4: framed picker, persistent single-action footer, product titles only. */
.product-detail-dialog.is-bundle-product .detail-bundle-picker,
.product-detail-dialog.is-bundle-product #detail-bundle-picker,
.product-detail-dialog.is-bundle-product .bundle-picker {
  box-sizing: border-box !important;
  min-width: 0 !important;
  padding: 18px !important;
  border: 1px solid #d7d6cf !important;
  border-radius: 14px !important;
  background: #f3f2ed !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker {
  gap: 14px !important;
  margin-top: 18px !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-intro {
  padding: 0 0 13px !important;
  border-bottom: 1px solid #dddbd4 !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-intro p { color: #171715 !important; }
.product-detail-dialog.is-bundle-product .bundle-picker-intro small { color: #66655f !important; }

/* The product name is enough: remove category/role headings above each product. */
.product-detail-dialog.is-bundle-product .bundle-component-heading,
.product-detail-dialog.is-bundle-product .bundle-component-eyebrow,
.product-detail-dialog.is-bundle-product .bundle-fixed-tag,
.product-detail-dialog.is-bundle-product .bundle-component-product-meta {
  display: none !important;
}
.product-detail-dialog.is-bundle-product .bundle-component-product { margin-top: 0 !important; }
.product-detail-dialog.is-bundle-product .bundle-component-product-name {
  color: #22221f !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
}
.product-detail-dialog.is-bundle-product .bundle-component-size-block {
  border-top-color: #e4e2db !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-footer {
  position: sticky !important;
  bottom: 0 !important;
  z-index: 30 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 0 !important;
  margin: 8px -18px -18px !important;
  padding: 13px 18px max(14px, env(safe-area-inset-bottom)) !important;
  border-top: 1px solid #d7d6cf !important;
  border-radius: 0 0 13px 13px !important;
  background: #f3f2ed !important;
  box-shadow: 0 -8px 18px rgba(20, 20, 18, .045) !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-total { display: none !important; }
.product-detail-dialog.is-bundle-product .bundle-add-button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 18px !important;
  border-radius: 7px !important;
  text-align: left !important;
  white-space: normal !important;
}
@media (max-width: 760px) {
  .product-detail-dialog.is-bundle-product .detail-info-column { padding-bottom: 24px !important; }
  .product-detail-dialog.is-bundle-product .detail-bundle-picker,
  .product-detail-dialog.is-bundle-product #detail-bundle-picker,
  .product-detail-dialog.is-bundle-product .bundle-picker { padding: 14px !important; }
  .product-detail-dialog.is-bundle-product .bundle-picker-footer {
    margin: 8px -14px -14px !important;
    padding: 12px 14px max(14px, env(safe-area-inset-bottom)) !important;
    border-radius: 0 0 13px 13px !important;
  }
  .product-detail-dialog.is-bundle-product .bundle-add-button { min-height: 56px !important; }
}
@media (max-width: 420px) {
  .product-detail-dialog.is-bundle-product .detail-bundle-picker,
  .product-detail-dialog.is-bundle-product #detail-bundle-picker,
  .product-detail-dialog.is-bundle-product .bundle-picker { padding: 12px !important; }
  .product-detail-dialog.is-bundle-product .bundle-picker-footer {
    margin: 8px -12px -12px !important;
    padding: 11px 12px max(13px, env(safe-area-inset-bottom)) !important;
  }
}


/* ALOV bundle polish v5: clean component frame, natural CTA flow and matching price typography. */
.product-detail-dialog.is-bundle-product .detail-bundle-picker,
.product-detail-dialog.is-bundle-product #detail-bundle-picker,
.product-detail-dialog.is-bundle-product .bundle-picker {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: #f3f2ed !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-intro {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Normalize all four edges of the first component card to avoid the broken top stroke. */
.product-detail-dialog.is-bundle-product .bundle-component.bundle-component--top {
  border: 1px solid #deddd6 !important;
  border-top: 1px solid #deddd6 !important;
  border-radius: 12px !important;
  margin-top: 0 !important;
  padding-top: 15px !important;
  background: #fff !important;
  background-clip: padding-box !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Keep the CTA in normal document flow directly after the component grid, never sticky. */
.product-detail-dialog.is-bundle-product .bundle-picker-footer {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  width: 100% !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.product-detail-dialog.is-bundle-product .bundle-picker-total { display: none !important; }
.product-detail-dialog.is-bundle-product .bundle-add-button {
  width: 100% !important;
  min-height: 54px !important;
  margin: 0 !important;
  padding: 0 18px !important;
}

/* Match the regular product-card price: same face, 23px size and regular weight. */
.product-detail-dialog.is-bundle-product .detail-price {
  font-family: inherit !important;
  font-size: 23px !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  letter-spacing: normal !important;
}

/* Force the custom cursor to dark ink while the bundle dialog is under the pointer. */
@media (pointer: fine) {
  body:has(.product-detail-dialog.is-bundle-product:hover) .cursor-dot {
    background: #111 !important;
  }
  body:has(.product-detail-dialog.is-bundle-product:hover) .cursor-outline {
    border-color: rgba(17,17,17,.42) !important;
  }
  body:has(.product-detail-dialog.is-bundle-product:hover).hovering .cursor-outline {
    background: rgba(17,17,17,.055) !important;
    border-color: rgba(17,17,17,.22) !important;
  }
  body:has(.product-detail-dialog.is-bundle-product:hover).hovering-text .cursor-outline {
    background: #111 !important;
    box-shadow: 0 0 8px rgba(0,0,0,.15) !important;
  }
}

@media (max-width: 760px) {
  .product-detail-dialog.is-bundle-product .bundle-picker-footer {
    position: static !important;
    margin-top: 14px !important;
    padding: 0 !important;
  }
}
