/* RP search modal geometry candidate 20261011.
 * Keep the input outside the scrolling list. Preview containing block is
 * .search-result, outside the static list scroller; never the hovered row.
 * Append after the existing Bootstrap/search rules. CSS-only; no live changes.
 */
#search-modal {
    overflow: hidden;
}

#search-modal .modal-dialog {
    width: calc(100% - 2rem);
    height: calc(100% - 2rem);
    margin: 1rem auto;
}

#search-modal .modal-content {
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

#search-modal .modal-body,
#search-modal .modal-body > form,
#search-modal .search-product {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
}

#search-modal .modal-body {
    margin: 0 !important;
    padding: 0 !important;
}

#search-modal .search-product > .input-group {
    flex: 0 0 auto;
}

#search-modal .search-product > .search-result {
    flex: 1 1 0;
    min-height: 0;
    position: relative;
}

#search-modal .search-result > .search-result-div {
    position: static;
    height: 100%;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
}

/* Bootstrap position-relative is important; only result rows are reset. */
#search-modal .search-result-div .on-search-card {
    position: static !important;
}

/* Override inline 400px sizing and Bootstrap start-100/margin utilities. */
#search-modal .search-result-div .preview-product-search {
    left: 50% !important;
    right: auto !important;
    top: 0 !important;
    width: 50% !important;
    min-width: 0 !important;
    max-height: 100%;
    margin: 0 !important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    box-sizing: border-box;
}

/* The preview is a stable adjacent panel, not a pointer to the hovered row. */
#search-modal .preview-product-search::before {
    display: none;
}

#search-modal .preview-product-search .col-5 > img {
    object-fit: contain;
}

/* Product and category thumbnails share one non-shrinking image column. */
#search-modal .search-result-div .on-search-card > .col-12 > .product-small-row > img {
    flex: 0 0 70px;
    width: 70px;
    height: 70px;
    object-fit: contain;
}

#search-modal .search-result-div .on-search-card > .col-12 > .product-small-row > .product-small-row-content {
    flex: 1 1 0;
    min-width: 0;
}

/* Match col-lg-6: below this breakpoint the list occupies the whole width. */
@media (max-width: 991.98px) {
    #search-modal .search-result-div .preview-product-search {
        display: none !important;
    }
}

/*
 * Candidate only: /search/ and /fr/search/ mobile result layout.
 * Add rp-search-results-layout to this view's outer .row, and
 * rp-search-results-main to its existing main .col. No other markup change.
 * Assumes the verified RightColumn wrapper is .ps-2.padding-top-40,
 * with direct children .search-with-categories-div and optional modules.
 * Desktop rules, input state, forms, handlers, and search ranking are untouched.
 */
@supports (display: contents) {
  @media (max-width: 991.98px) {
    .rp-search-results-layout > .rp-search-results-main,
    .rp-search-results-layout > .sidebar-right,
    .rp-search-results-layout > .sidebar-right > .ps-2.padding-top-40 {
      display: contents;
    }

    /* The flattened children remain descendants, not DOM children, of .row.
       Restore the column gutter that disappeared with their wrapper boxes. */
    .rp-search-results-layout > .rp-search-results-main > *,
    .rp-search-results-layout > .sidebar-right > .ps-2.padding-top-40 > * {
      flex: 0 0 100%;
      width: 100%;
      max-width: 100%;
      min-width: 0;
      padding-inline: calc(var(--bs-gutter-x, 1.5rem) * .5);
    }

    .rp-search-results-layout > .rp-search-results-main > * {
      order: 2;
    }

    .rp-search-results-layout > .rp-search-results-main > h1 {
      order: 0;
    }

    /* Product columns already supply their own half-gutters. */
    .rp-search-results-layout > .rp-search-results-main > .product-row {
      margin-inline: 0;
      padding-inline: 0;
    }

    /* Keep existing and future sidebar modules below the actual results. */
    .rp-search-results-layout > .sidebar-right > .ps-2.padding-top-40 > * {
      order: 3;
    }

    .rp-search-results-layout > .sidebar-right > .ps-2.padding-top-40 > .search-with-categories-div {
      order: 1;
      padding-top: 0 !important;
    }

    .rp-search-results-layout > .sidebar-right > .ps-2.padding-top-40 > .search-with-categories-div > .full-search {
      padding-top: 0 !important;
    }
  }
}

@media (min-width: 992px) {
  #search-modal .search-result-div.rp-search-has-selection .on-search-card .preview-product-search { display: none !important; }
  #search-modal .search-result-div.rp-search-has-selection .on-search-card.rp-search-active .preview-product-search { display: flex !important; }
}
.search-result .search-result-div .on-search-card > .col-12 > .product-small-row > img { flex: 0 0 70px; width: 70px; height: 70px; object-fit: contain; }
.search-result .search-result-div .on-search-card > .col-12 > .product-small-row > .product-small-row-content { flex: 1 1 0; min-width: 0; }
@media (max-width: 991.98px) {
  .full-page-reviews-pagination .page-link { min-width: 28px; padding: 6px 5px; }
}
