@charset "UTF-8";

/* SavorIP R7.5.1 — product viewport and touch-scroll correction.
   This file changes presentation only; catalog, image, generation and payment
   behavior remain owned by the existing product modules. */

html.r751-product-picker-open,
html.r751-product-picker-open body {
  overflow: hidden !important;
  overscroll-behavior: none;
}

dialog.art-picker-dialog[open] {
  box-sizing: border-box !important;
  inset: 0 !important;
  width: min(1120px, calc(100vw - 32px)) !important;
  max-width: min(1120px, calc(100vw - 32px)) !important;
  height: min(840px, calc(var(--r751-viewport-height, 100dvh) - 32px)) !important;
  max-height: calc(var(--r751-viewport-height, 100dvh) - 32px) !important;
  margin: auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
}

.art-picker-dialog-card {
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch;
  /* Do not let the vertical modal cancel the phone artwork rail's x gesture. */
  touch-action: auto;
  scrollbar-gutter: stable;
}

/* Keep the desktop workspace header on one row at notebook widths. */
@media (min-width: 981px) and (max-width: 1480px) {
  .app-header-inner {
    width: calc(100% - 28px) !important;
    gap: 14px !important;
  }

  .app-nav {
    gap: 12px !important;
  }

  .app-nav a {
    font-size: 11px !important;
  }

  .app-header-actions {
    height: 100% !important;
    flex: 0 0 auto !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    align-content: center !important;
    gap: 7px !important;
  }

  .app-header-actions > * {
    margin-block: 0 !important;
    transform: none !important;
  }

  .app-header-actions .store-pill {
    display: none !important;
  }
}

@media (max-width: 760px) {
  dialog.art-picker-dialog[open] {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: var(--r751-viewport-height, 100dvh) !important;
    max-height: var(--r751-viewport-height, 100dvh) !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #fffdf8 !important;
  }

  .art-picker-dialog-card {
    min-height: 0 !important;
    padding:
      calc(12px + env(safe-area-inset-top, 0px))
      12px
      calc(86px + env(safe-area-inset-bottom, 0px)) !important;
    scroll-padding-top: calc(12px + env(safe-area-inset-top, 0px));
  }

  .art-picker-dialog .dialog-close {
    position: sticky !important;
    top: max(8px, env(safe-area-inset-top, 0px)) !important;
    right: auto !important;
    float: none !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 0 -44px auto !important;
    display: grid !important;
    place-items: center !important;
    z-index: 2147482500 !important;
    border: 1px solid rgba(6, 48, 38, .20) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 8px 24px rgba(0, 32, 24, .16) !important;
    color: #07382d !important;
    touch-action: manipulation;
  }

  .art-picker-dialog .view-eyebrow {
    margin: 3px 54px 5px 0 !important;
    font-size: 8px !important;
  }

  .art-picker-dialog h2 {
    max-width: none !important;
    margin: 0 !important;
    padding-right: 52px !important;
    font-size: clamp(24px, 7.3vw, 31px) !important;
    line-height: 1.18 !important;
    word-break: keep-all !important;
  }

  .product-picker-guide {
    margin: 8px 0 10px !important;
    font-size: 10.5px !important;
    line-height: 1.5 !important;
    word-break: keep-all !important;
  }

  .product-archive-health {
    margin: 9px 0 !important;
    padding: 9px 10px !important;
    gap: 3px 8px !important;
    border-radius: 12px !important;
  }

  .product-archive-health strong,
  .product-archive-health span {
    font-size: 9.5px !important;
    line-height: 1.4 !important;
  }

  .product-picker-categories {
    width: calc(100% + 24px) !important;
    margin-inline: -12px !important;
    padding: 3px 12px 9px !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x !important;
  }

  .product-picker-categories button {
    min-height: 40px !important;
  }

  .art-picker-dialog #artPickerSearch {
    width: 100% !important;
    min-height: 46px !important;
    margin: 2px 0 8px !important;
    font-size: 16px !important;
  }

  .product-picker-count {
    min-height: 18px !important;
    margin: 0 0 7px !important;
  }

  /* R7.7.1 phone archive: sixteen thumbnails per swipeable 4 x 4 page. */
  #artPickerGrid.artwork-grid,
  #artPickerGrid.compact-grid {
    box-sizing: border-box !important;
    width: calc(100% + 24px) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-inline: -12px !important;
    padding: 2px 12px 14px !important;
    display: flex !important;
    grid-template-columns: none !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-inline: 12px !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    /* Vertical gestures remain native; R7.5.1.3 handles x dragging in JS. */
    touch-action: pan-y !important;
    cursor: grab;
  }

  #artPickerGrid .product-art-page {
    box-sizing: border-box;
    flex: 0 0 calc(100vw - 24px);
    width: calc(100vw - 24px);
    min-width: 0;
    padding: 2px;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  #artPickerGrid .product-art-page-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(4, minmax(0, 1fr));
    gap: 7px;
  }

  #artPickerGrid.r751-horizontal-dragging {
    scroll-snap-type: none !important;
    cursor: grabbing !important;
    user-select: none !important;
  }

  #artPickerGrid .product-art-choice {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    aspect-ratio: 1 / 1.22;
    padding: 3px !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    contain: layout paint;
  }

  #artPickerGrid .product-art-choice[role="button"] {
    cursor: pointer;
    touch-action: pan-y;
    -webkit-tap-highlight-color: rgba(7, 57, 45, .14);
  }

  #artPickerGrid .product-art-choice.is-selecting {
    opacity: .68;
    outline: 3px solid #e6bc58;
    outline-offset: -3px;
    pointer-events: none;
  }

  #artPickerGrid .product-art-choice img {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  #artPickerGrid .product-art-choice > span {
    padding: 3px 2px 1px;
    font-size: 9px !important;
    line-height: 1.2 !important;
    word-break: keep-all !important;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  #artPickerGrid .product-art-choice > em,
  #artPickerGrid .product-art-choice > small,
  #artPickerGrid .product-art-choice > b { display: none !important; }

  #artPickerGrid .product-art-actions {
    box-sizing: border-box !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
    padding: 9px !important;
  }

  #artPickerGrid .product-art-actions button {
    min-height: 46px !important;
    white-space: normal !important;
    word-break: keep-all !important;
  }

  .product-picker-more {
    min-height: 48px !important;
    margin: 12px auto 0 !important;
  }

  .product-art-page-indicator {
    margin: -6px 0 8px;
    color: #76591c;
    font-size: 11px;
    font-weight: 900;
    text-align: center;
  }
}

@media (max-width: 380px) {
  #artPickerGrid .product-art-page-grid { gap: 5px; }
  #artPickerGrid .product-art-choice > span { font-size: 8px !important; }
}

@media (prefers-reduced-motion: reduce) {
  #artPickerGrid.artwork-grid,
  #artPickerGrid.compact-grid,
  .art-picker-dialog-card {
    scroll-behavior: auto !important;
  }
}
