/* Lane catalog/product/search: OpenCart additions on top of theme.css (static classes stay verbatim) */

/* card: one component everywhere, equal heights, cart button = wish button height */
.sv-grid > .sv-card, .sv-track > div > .sv-card { height: 100%; }
.sv-card .card-body { flex: 1 1 auto; }
.sv-stars .is-off { color: #d4d2cf; }
.sv-price-old { font-size: .62em; font-weight: 500; color: var(--sv-muted); margin-left: 8px; }
.sv-card-actions .sv-add { height: 40px; min-height: 40px; }
.sv-card-actions .sv-add .sv-add-txt { overflow: hidden; text-overflow: ellipsis; }

/* toolbar: sort + per page in one row, arrow never touches the edge */
.sv-toolbar-right { flex-wrap: nowrap; }
.sv-toolbar .select { padding-left: 14px; padding-right: 36px; background-position: calc(100% - 18px) calc(1px + 50%), calc(100% - 13px) calc(1px + 50%); min-width: 0; }

/* filters: no inner scrollbars, clean inputs */
.sv-filters .input { min-width: 0; padding: 0 12px; }
.sv-filters .input::-webkit-outer-spin-button, .sv-filters .input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sv-filters .input[type=number] { -moz-appearance: textfield; }
.sv-filters .sv-f-name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.sv-filters .sv-f-count { font-size: 12px; color: var(--sv-muted); }
.sv-filters .sv-f-more summary { cursor: pointer; font-size: 13px; color: var(--sv-red); padding: 4px 0; list-style: none; font-weight: 700; }
.sv-filters .sv-f-more summary::-webkit-details-marker { display: none; }
.sv-filters .sv-f-more[open] summary { display: none; }
.sv-listing .drawer-side { overflow: visible; }

/* pagination: one line */
.sv-pager .join { flex-wrap: nowrap; }
.sv-pager .join-item { white-space: nowrap; }
.sv-pager-left { justify-content: flex-start; margin-top: 16px; }
.sv-empty-sm { padding: 34px 20px; }
.sv-empty-sm .sv-empty-ico { width: 72px; height: 72px; font-size: 28px; }
.sv-cat-desc { margin-top: 30px; }

/* product gallery: thumbs under the main image, 6 per row, smooth horizontal scroll */
.sv-gallery { min-width: 0; }
.sv-thumbs { overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.sv-thumbs::-webkit-scrollbar { display: none; }
.sv-thumbs button { flex: 0 0 calc((100% - 50px) / 6); width: auto; height: auto; aspect-ratio: 1 / 1; max-width: 96px; scroll-snap-align: start; }
.sv-gallery-main .sv-arrow { z-index: 6; }
.sv-gallery-main img { touch-action: pan-y; }

/* lightbox: full screen, contrasting arrows and close */
.sv-lightbox .modal-box { position: relative; width: 96vw; max-width: 1200px; height: 92vh; max-height: 92vh; padding: 56px 70px; display: flex; align-items: center; justify-content: center; border-radius: var(--sv-radius); }
.sv-lightbox img { max-height: 100%; height: 100%; }
.sv-lightbox .sv-lb-close { position: absolute; top: 12px; right: 12px; z-index: 7; background: var(--sv-ink); color: #fff; border: 0; width: 40px; height: 40px; min-height: 40px; }
.sv-lightbox .sv-lb-close:hover { background: var(--sv-red); }
.sv-lightbox .sv-arrow { background: var(--sv-ink); color: #fff; border-color: var(--sv-ink); }
.sv-lightbox .sv-arrow:hover { background: var(--sv-red); border-color: var(--sv-red); }

/* buy box */
.sv-buybox .sv-price { display: flex; align-items: baseline; flex-wrap: nowrap; }
.sv-discounts { margin-top: 8px; font-size: 13px; color: var(--sv-green); }
.sv-options { display: grid; gap: 14px; margin-top: 18px; }
.sv-opt .sv-lbl { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; }
.sv-opt .sv-req { color: var(--sv-red); }
.sv-opt.is-missing .select, .sv-opt.is-missing .sv-chip span { border-color: var(--sv-red); }
.sv-opt-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.sv-chip input { position: absolute; opacity: 0; pointer-events: none; }
.sv-chip span { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--sv-line); border-radius: 100px; padding: 7px 14px; font-size: 13px; cursor: pointer; background: #fff; }
.sv-chip input:checked + span { border-color: var(--sv-red); background: var(--sv-soft); color: var(--sv-red); }
.sv-buyrow .sv-qty { flex: 0 0 auto; }

/* tabs + specs + reviews */
.sv-tabs .tab-content { overflow: visible; }
.sv-spec { table-layout: fixed; }
.sv-spec td, .sv-spec th { overflow-wrap: anywhere; vertical-align: top; }
.sv-reviews { display: grid; gap: 14px; }
.sv-review { border: 1px solid var(--sv-line); border-radius: var(--sv-radius); padding: 14px 16px; }
.sv-review p { font-size: 14px; line-height: 1.6; margin-top: 6px; color: #3b3835; }
.sv-review-form .rating input { width: 28px; height: 28px; }
.sv-review-form .rating input.mask-star-2 { background-color: var(--sv-yellow); }

@media (max-width: 1023px) {
  .sv-filters { width: 300px; max-width: 86vw; }
  .sv-lightbox .modal-box { width: 100vw; max-width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; padding: 56px 12px; }
  .sv-lightbox .sv-arrow-prev { left: 8px; } .sv-lightbox .sv-arrow-next { right: 8px; }
}
@media (max-width: 767px) {
  .sv-toolbar-right { gap: 8px; }
  .sv-toolbar .select:first-child, .sv-toolbar .select:last-child { width: auto; flex: 1 1 0; font-size: 12px; padding-left: 10px; padding-right: 28px; background-position: calc(100% - 14px) calc(1px + 50%), calc(100% - 9px) calc(1px + 50%); }
  .sv-price-old { display: none; }
  .sv-card .sv-price { font-size: 16px; }
  .sv-tabs.tabs { display: grid; grid-template-columns: repeat(3, auto); }
  .sv-tabs .tab { font-size: 13px; padding: 0 6px; }
  .sv-tabs .tab-content { grid-column: 1 / -1; }
  .sv-spec th { width: 42%; }
  .sv-gallery-main .sv-arrow { width: 36px; height: 36px; min-height: 36px; }
  .sv-thumbs button { width: auto; height: auto; }
  .sv-buyrow .sv-add { min-width: 0; }
  .sv-crumbs.breadcrumbs > ul { overflow: hidden; }
}
.sv-pager .btn-disabled { background: #fff; color: var(--sv-muted); border-color: var(--sv-line); }
.sv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
